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

How to write a large amount of columns in a formatted file

我正在尝试在 fortran90 中编写代码,允许我创建 20 列 (f10.6),它们之间有一个 space 到 "output file"。 当我尝试仅使用 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 行。

是否有任何语句应该用于创建包含许多列的文件?

什么是plt_Dy5?我有一种挥之不去的感觉,它是一个维度为 (200) 的数组,就像您的其他 plt_* 变量一样。

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

由于格式每行仅允许 5 个值,这意味着每个写入语句有 41 行。将其乘以 200 次循环迭代,得到 8200 行。

所以只需将 plt_Dy5 替换为 plt_D5(i) 就可以了。