如何在格式化文件中写入大量列
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)
就可以了。
我正在尝试在 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)
就可以了。