如何在 Fortran 中运输 return 和刷新?

How to carriage return and flush in Fortran?

我一直想知道您是否可以在 Fortran 中回车 return 并刷新写入语句。在 Python/C++ 中,您可以 '/r' 然后刷新流。

我如何在 Fortran 中执行此操作?

一个回车符-return默认插入到写入语句的末尾,或者显式地使用ADVANCE说明符:

write(unit , '(A)') 'Hello World'
write(unit , '(A)' , ADVANCE = 'YES') 'Hello World'
write(unit , '(A)' , ADVANCE = 'YES') '-'

前面三个语句的结果是:

Hello World
Hello World
-

或者,可以通过指定 ADVANCE='NO':

来禁止回车-return
write(unit , '(A)' , ADVANCE = 'NO') 'Hello World'
write(unit , '(A)' , ADVANCE = 'NO') 'Hello World'
write(unit , '(A)' , ADVANCE = 'NO') '-'

产生:

Hello WorldHello World-

要在 Fortran90 中刷新,请关闭文件并重新打开。特定编译器 and/or 较新版本的 Fortran 标准提供 FLUSH 作为内在函数,但无论您的 Fortran 版本如何,关闭文件总是会产生刷新效果。