每次使用gfortran Fortran 90程序写入后,如何将输出刷新到文件?

ban*_*edo 9 fortran flush gfortran

我在Fortran 90程序中运行一个循环,它为循环的每次迭代输出数值到输出文件.问题是输出没有保存到文件中,而是保存了很多步骤.如何让它冲洗每一步?

示例代码:

open(unit=1,file='output')

do i = 1, 1000
 write(1,*) i
end do

close(unit=1)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

ire*_*ses 13

您需要使输出无缓冲.尝试将GFORTRAN_UNBUFFERED_ALL环境变量设置为"y","Y"或1.


Hig*_*ark 6

另一方面,如果gfortran实现它,则调用非标准子例程flush.并非所有编译器都实现了这一点.

  • `FLUSH`作为子程序(如`call FLUSH()`)是非标准的,但`FLUSH`语句是有效的Fortran 2003:`FLUSH(10)` (5认同)