我试图在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行。
是否有任何声明应该用于创建包含多列的文件?
答案 0 :(得分:1)
什么是plt_Dy5
?我有一种唠叨的感觉,它是一个维度(200)的数组,正如你的其他plt_*
vars似乎。
如果是这种情况,那么对于每个write()
语句,除了其他数组的当前索引值之外,它还会写出plt_Dy5
的全部200个值,总计为204值。
由于格式每行只允许5个值,这意味着每个write语句有41行。将此乘以200循环的循环,然后达到8200行。
因此,只需将plt_Dy5
替换为plt_D5(i)
,您就可以了。