如何在格式化文件中写入大量列

时间:2015-04-28 12:51:56

标签: formatting fortran fortran90

我试图在fortran90中编写代码,允许我创建20个列(f10.6),在它们之间有一个空格到"输出文件"。 当我尝试使用4列创建文件时,它可以正常工作,但是当我尝试使用5列或更多列格式化文件时,它会错误地写入结果。

所以我的四列代码如下:

 do i=1, 200
     write(1,207) nq(i),plt_Dy1c4(i),plt_Dy3(i),plt_Dy4(i) 
       207   format(4(f10.6,x))
 end do

类似于五列似乎,但这不起作用:

 do i=1, 200
 write(1,207) nq(i),plt_Dy1c4(i),plt_Dy3(i),plt_Dy4(i),plt_Dy5
   207   format(5(f10.6,x))
end do

五列的输出文件有8200行而不是200行。

是否有任何声明应该用于创建包含多列的文件?

1 个答案:

答案 0 :(得分:1)

什么是plt_Dy5?我有一种唠叨的感觉,它是一个维度(200)的数组,正如你的其他plt_* vars似乎。

如果是这种情况,那么对于每个write()语句,除了其他数组的当前索引值之外,它还会写出plt_Dy5的全部200个值,总计为204值。

由于格式每行只允许5个值,这意味着每个write语句有41行。将此乘以200循环的循环,然后达到8200行。

因此,只需将plt_Dy5替换为plt_D5(i),您就可以了。