ループの反復ごとに出力ファイルに数値を出力する Fortran 90 プログラムでループを実行しています。問題は、出力がファイルに保存されず、非常に多くのステップごとに保存されることです。各ステップをフラッシュするにはどうすればよいですか?
コード例:
open(unit=1,file='output')
do i = 1, 1000
write(1,*) i
end do
close(unit=1)
前もって感謝します。
出力をバッファリングしないようにする必要があります。GFORTRAN_UNBUFFERED_ALL環境変数を「y」、「Y」、または 1 に設定してみてください。
もう 1 つの方法は、gfortran が実装している場合、非標準サブルーチン フラッシュを呼び出すことです。すべてのコンパイラがこれを実装しているわけではありません。
フラッシュする必要があるときは、ファイルを閉じて再度開きます。これは不器用で遅いですが、すべてのコンパイラで動作するFortran90のより良い方法を私は知りません。