相关疑难解决方法(0)

FORTRAN 90如何写出不同长度的超长输出线

我花了几个小时在互联网上寻找解决这个问题的方法,却找不到任何东西.我一直在尝试将未格式化的输出写入CSV输出文件,该文件具有多个不同长度和多种数据类型的非常长的行.我正在尝试首先编写一个长标题,指示将在下面写入的变量,用逗号分隔.然后在下面的行上,我正在写标题中指定的值.但是,通过顺序访问,长输出行被分成多个较短的行,这不是我所希望的.我尝试在open语句中使用recl控制行长度,但是在输出后只添加了一堆乱码文本和符号,但仍然出现相同的问题.我也试过使用直接访问,但行的长度不一样,所以也不行.我已经阅读过在Fortran2003中使用流i/o,但我使用的是Fortran90,所以这也不行.我正在使用Fortran 90和使用FTN95编译器的Plato IDE.我在下面添加了一个类似于我想要做的示例程序,使用数组和一些虚拟文本,我在下面包含了说明问题的输出.任何人都知道每个写声明我只能一行吗?任何帮助将不胜感激.任何人都知道每个写声明我只能一行吗?任何帮助将不胜感激.任何人都知道每个写声明我只能一行吗?任何帮助将不胜感激.

module types
  integer, parameter :: dp=selected_real_kind(15)
end module types

program blah
  use types
  use inputoutput

  implicit none

  integer :: i
  character(50)::fileNm
  integer :: unitout2=20
  real(dp), dimension(100) :: bigArray

  fileNm='predictout2.csv'
  open(unit=unitout2,file=fileNm,status="replace")

  do i=1,100
    bigArray(i)=i
  end do

  write(unitout2,*)"word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,&
  &word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,&
  &word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word"
  write(unitout2,*)bigArray

  close(unitout2)

end program
Run Code Online (Sandbox Code Playgroud)

这是上面程序的输出(没有recl):

 word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word
  ,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,word,wo
  rd,word,word,word,word,word
           1.00000000000              2.00000000000              3.00000000000              4.00000000000
           5.00000000000              6.00000000000              7.00000000000              8.00000000000
           9.00000000000              10.0000000000              11.0000000000              12.0000000000
           13.0000000000              14.0000000000              15.0000000000              16.0000000000
           17.0000000000              18.0000000000              19.0000000000              20.0000000000
           21.0000000000              22.0000000000              23.0000000000              24.0000000000
           25.0000000000              26.0000000000              27.0000000000              28.0000000000
           29.0000000000              30.0000000000              31.0000000000 …
Run Code Online (Sandbox Code Playgroud)

fortran fortran90 long-integer output

3
推荐指数
1
解决办法
7408
查看次数

Fortran READ(*,*), WRITE(*,*) 参数

这个问题已经在以前的 SO 问题中有所涉及。然而,之前的讨论似乎有些不完整。

Fortran 有几个 I/O 语句。有READ(*,*)andWRITE(*,*)等。第一个星号 (*) 是标准星号,表示从键盘到屏幕的输入或输出。我的问题是关于第二个星号:

第二个星号指定 I/O 元素的格式,即正在使用的数据类型。如果此星号保持不变,则 fortran 编译器将使用默认格式(无论是什么格式,都取决于编译器)。用户必须使用许多格式描述符来指定数据类型、精度等。

(1) 这些格式描述符是否适用于所有 Fortran 编译器和所有版本的 Fortran?

(2) 在哪里可以找到这些格式描述符的标准列表?例如,F8.3表示数字应使用字段宽度为 8 和小数点后 3 位的定点表示法打印。

编辑:可以在此处找到编辑描述符的参考:http : //fortranwiki.org/fortran/show/Edit+descriptors

fortran

2
推荐指数
1
解决办法
5282
查看次数

'写; 声明没有很多空格

write函数确实打印了columms之间有很多空格的参数,这最终给了我一个非常庞大的文件.那么我如何修剪输出,以便像一个空格.

open(unit=1,file='gfortran.txt')
write(1,ERR=1001)1,2,3 
Run Code Online (Sandbox Code Playgroud)

fortran

1
推荐指数
1
解决办法
3962
查看次数

标签 统计

fortran ×3

fortran90 ×1

long-integer ×1

output ×1