Fortran写循环到多个文件?
我想在每个循环中创建新文件,我不知道怎么做Fortran写循环到多个文件?,fortran,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(
!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的初学者。
谢谢您现有的代码应该不会只向文件输出上一次写入语句。。。它是一个顺序文件,这意味着输出将按顺序添加到文件中。如果您只看到一个输出,那么这可能就是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
你能澄清一下这个问题吗?代码示例并没有真正的帮助。是要将整个数组
m
写入多个文件,还是要将m
的每个元素写入单独的文件?试着给我们你的问题的背景,这样我们就能够提出一个像样的答案。好的,我添加我的代码细节。我希望每次都在一个新文件中写入数组U。因为像这样,我只有文件1上的最后一个U。我想看到循环中计算的每个U。谢谢,这正是我想要的!好的,我不明白。我在想另一种方法,但我不知道如果可能的话,我能在同一个文件中,但在不同的U(I)列中写吗?但你的解决方案对我来说很好me@supertoto通过在write语句中使用ADVANCE='NO'
,可以在同一文件的不同列中写入。