在 Fortran 程序中,我需要将数组写入具有特定格式的文件中。我非常适用于较小的数组(例如,下面示例中的 alen=10),但不适用于较大的数组:然后它将每行分成两部分,就好像超过了每行的最大字符数一样。
示例(与我程序中的结构非常相似):
PROGRAM output_probl
IMPLICIT NONE
INTEGER, PARAMETER :: alen=110
DOUBLE PRECISION, DIMENSION(alen)::a
INTEGER :: i,j
OPEN(20,file='output.dat')
30 format(I5,1x,110(e14.6e3,1x))
DO i=1,15
DO j=1,alen
a(j)=(i*j**2)*0.0123456789
ENDDO
write(20,30)i,(a(j),j=1,alen)
ENDDO
END PROGRAM output_probl
它可以正确编译和运行(使用 Compaq Visual Fortran)。只是输出文件有误。例如,如果我将每个数组项的字段宽度从 14 更改为 8,它会正常工作(这当然不是一个令人满意的解决方案)。我考虑了一个不合适的默认最大记录长度,但找不到如何更改它(即使使用似乎不起作用的 RECL - 如果您认为应该,欢迎使用 RECL 的具体示例)。
这可能是基本的,但我已经坚持了一段时间......欢迎任何帮助,非常感谢!