Fortran WRITE循环到多个文件?

时间:2012-02-25 10:39:01

标签: fortran

我想在每个循环创建新文件,我不知道该怎么做......

!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的初学者。 感谢

1 个答案:

答案 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