11

ループの反復ごとに出力ファイルに数値を出力する Fortran 90 プログラムでループを実行しています。問題は、出力がファイルに保存されず、非常に多くのステップごとに保存されることです。各ステップをフラッシュするにはどうすればよいですか?

コード例:

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

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

close(unit=1)

前もって感謝します。

4

4 に答える 4

14

出力をバッファリングしないようにする必要があります。GFORTRAN_UNBUFFERED_ALL環境変数を「y」、「Y」、または 1 に設定してみてください。

于 2009-10-07T19:49:44.217 に答える
6

もう 1 つの方法は、gfortran が実装している場合、非標準サブルーチン フラッシュを呼び出すことです。すべてのコンパイラがこれを実装しているわけではありません。

于 2009-10-08T12:13:07.307 に答える
1

フラッシュする必要があるときは、ファイルを閉じて再度開きます。これは不器用で遅いですが、すべてのコンパイラで動作するFortran90のより良い方法を私は知りません。

于 2009-12-26T04:45:34.283 に答える