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
这是其中子程序的一部分 展开
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
这是其中子程序的一部分 展开
1个回答
展开全部
1.每次 Close,再 Open,就会覆盖以前的记录。
2.你可以在程序一开始 Open,然后子程序中不要 close,程序结束时再 Close
3.也可以用 open (10,file=filename,ACCESS='APPEND' )。但这种方式只有 VF 系列编译器识别,其他编译器可能不认。
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 语法规定的。
我推荐你用第二种方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询