Fortran编程输出文件的问题

本人小菜鸟,Fortran90编程输出文件的时候有个疑问,比如有N个循环,第一个循环往文件A.dat文件中输出一行数据,但是第二个循环再往A.dat输出数据的时候把第一次... 本人小菜鸟,Fortran90编程输出文件的时候有个疑问,比如有N个循环,第一个循环往文件A.dat文件中输出一行数据,但是第二个循环再往A.dat输出数据的时候把第一次循环的数据覆盖了,请问如何实现N次循环按顺序往A.dat文件中记录N个数据?用什么命令 ?
implicit none
integer i,j,Nx,Ny
real(8) :: Res(Nx,Ny)
character(len=50) name,Filename
logical alive
write(filename,*) trim(Name),".dat"
Write(*,*) "Saving ",trim(Name)," Please wait..."
open (10,file=filename)
Write(10,FMt="(D23.15\)"),Res(1,1),Res(2,1),Res(3,1),Res(4,1)
Write(10,*)
close(10)
Write(*,*) "Save ",trim(Name),"Complete!"
return
这是其中子程序的一部分
展开
 我来答
天河流纹石
2013-01-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7623
采纳率:76%
帮助的人:6684万
展开全部
1.每次 Close,再 Open,就会覆盖以前的记录。
2.你可以在程序一开始 Open,然后子程序中不要 close,程序结束时再 Close
3.也可以用 open (10,file=filename,ACCESS='APPEND' )。但这种方式只有 VF 系列编译器识别,其他编译器可能不认。
追问
大神,你写的第三个我不太懂,open (10,file=filename,ACCESS='APPEND' ),用这个命令的话,是不是就可以在子程序里面open和close了?我用的是CVF
追答
是的。append 就是每次Open时,把文件写入位置放在文件的最后。
CVF 也是支持的。但我不推荐这样做,因为这不是 Fortran 语法规定的。

我推荐你用第二种方法
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式