我想在每个循环创建新文件,我不知道该怎么做......
!file1, file2,....., file[n]
OPEN (1,FILE='file1.out',ACCESS='SEQUENTIAL',STATUS='UNKNOWN')
do ph=1,N6
do i=1,nx-1
A(i)=mu*U(i-1)
end do
do j=0,nx
U(j)=A(j)
end do
if (mod(ph,Ne)==0) then ! ?
WRITE(1,200) nt,U(i)
endif
200 format(5E12.4)
end do
或许,我可以用换行符或专栏写一下? 我是fortran的初学者。 感谢
答案 0 :(得分:2)
您现有的代码应该输出的不仅仅是上一次写入语句到文件...它是一个顺序文件,这意味着输出按顺序添加到文件中。如果您只看到一个输出,也许这就是IF语句导致输出的全部内容?
如果您仍希望输出到多个文件,输出到多个文件的最简单方法是重用单元号并让程序创建文件名。您需要关闭文件/单元并重新打开它。这比拥有多个打开的语句和单元号要容易得多,随着文件数量的增加,这很快就会变得尴尬。这是一个假设少于100个文件的代码片段:
do i=1, N
write (filename, '("myfile", I2.2, ".txt")' ) I
open (file=filename,unit=16,...)
calculations...
write (16,'(5E12.4)') nt,U(i)
close (16)
end do