Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran写循环到多个文件?_Fortran - Fatal编程技术网

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'
,可以在同一文件的不同列中写入。