Fortran 90 では、フォーマットされていないファイルへの書き込み (以下を参照) は、フォーマット済みのファイルへの書き込み (以下を参照) よりもはるかに高速であることがよくあります。
フォーマットされていないファイルの書き込み
OPEN ( Unit=86, File='out.dat', Form='unformatted', Action='Write')
WRITE (86) A, B, C
CLOSE (86)
フォーマット済みファイルの書き込み
OPEN ( Unit=86, File='out.dat', Form='formatted', Action='Write')
DO ii = 1,N
DO jj = 1,N
WRITE (*,86) A(ii,jj), B(ii,jj), C(ii,jj)
END DO
END DO
CLOSE (86)
ここで、A、B、Cはサイズ (N、N) の 2 次元配列です。CPU_Time
この場合、差は約 12 秒であることがわかりました。
大きな違いがあるのはなぜですか?フォーマットされた手順でループするのにかかる時間ですか?