Fortran コード内の 2 つの異なる場所 (メイン プログラムとサブルーチン) にフォーマットされていないファイルを書き込もうとしています。問題は、それを行うと結果が変わることです。これは、CFD コードでシミュレーションを行うために使用しているデータがメモリ割り当てによって上書きされていることが原因であると思われます。私は尋ねます: フォーマットされていないファイルを (書き込むために) コードで一度だけ使用することは可能ですか? つまり、すべてのデータを保存するために同じファイルを使用する必要があり、別のファイルではありません。
コードの 2 つの部分をコピーして貼り付け、説明したい内容を示します。
メインプログラムでは、ループは次のとおりです。
call numcar (isave,suffix)
longueur=index(nchamp,' ')-1
nfichier=nchamp(1:longueur)//suffix
longueur=index(nfichier,' ')-1
open(10,file=nfichier(1:longueur),form='unformatted')
write(10) real(uxn,4),real(uyn,4),real(wzn,4),real(ppo,4)
close(10)
! *****************************************
isave=isave+1
サブルーチンでは、ループは次のとおりです。
call numcar (isavediv,suffix1)
longueur1=index(ndiv,' ')-1
nfichier1=ndiv(1:longueur1)//suffix1
longueur1=index(nfichier1,' ')-1
open(20,file=nfichier1(1:longueur1),form='unformatted')
write(20) real(ppm,4)
close(20)
! *****************************************
isavediv=isavediv+1
すべての変数はすべてIMPLICIT NONE
、メイン プログラムとサブルーチンの両方で宣言されています。