如何将不同的输出结果输入到文件的不同列
我想达到的目的是将每次计算的计算结果同时保存在一个文件的不同列中,每计算一次,就将计算结果保存在相应的列中,以下给出了主要的程序,但是最后得到的结果只有一列,查了一些资料,感觉是由于Fortran对数组的保存是有一定的优劣排序的,但是我还是想达到以上所述目的,请各位高手给予指点,感谢!open(10,file="result.dat") !!打开要保存的结果文件
do ii=1,npc !!进行npc次循环计算,假设npc=231
open(20,file='data.txt') !!data文件的结果在每次循环计算中是不断更新的,计算是子程序进行的,在此不显示
do i=1,ndc !!data文件中共有ndc个数据,假设ndc=500
read(20,*)data(i) !!读取data文件中的数据
result(i,ii)=data(i)!!ii控制不同的列,将每次循环计算的data数据存放在不同的列
enddo
close(20)
do i=1,ndc
write(30,31) result(i,ii)!!写入每次的data数据
31 format(231(<ndc>f16.7))!!定义数据格式,并给定共231列
enddo
close(10)
Open (10, File='result.dat')
Do ii = 1, npc
Open (20, File='data.txt')
Read( 20 , * ) data( : )
result( : , ii ) = data( : )
Close (20)
Do i = 1, ndc
Write (10, '(<ii>f16.7)') result( i , 1:ii )
End Do
End Do
Close (10) vvt 发表于 2015-7-9 08:27
Open (10, File='result.dat')
Do ii = 1, npc
Open (20, File='data. ...
感谢您的指点!我按您的命令运行了一下,但是输出的结果是(1,2,3,代表第1,2,3次计算保存的结果)
1
...
1
12
......
12
12 3
.........
12 3
我想实现的结果是:
12 3 4 567
.....................
12 3 4 567
求指点,再次表示感谢!
那你计算完成以后一起输出就好了,不需要在循环内部输出。
Open (10, File='result.dat')
Do ii = 1, npc
Open (20, File='data.txt')
Read( 20 , * ) data( : )
result( : , ii ) = data( : )
Close (20)
End Do
Do i = 1, ndc
Write (10, '(<npc>f16.7)') result( i , : )
End Do
Close (10) fcode 发表于 2015-7-9 10:00
那你计算完成以后一起输出就好了,不需要在循环内部输出。
是的,我改动了一下循环次序,保存最后一次计算结果就可以了:
Do ii = 1, npc
Open (20, File='data.txt')
Open (10, File='result.dat')
Read( 20 , * ) data( : )
result( : , ii ) = data( : )
Close (20)
Do i = 1, ndc
Write (10, '(<ii>f16.7)') result( i , 1:ii )
Close (10)
End Do
End Do
感谢两位指点!!!
页:
[1]