次のコードがあります。
PROGRAM EULER
REAL A,B,X,H
INTEGER N
PARAMETER (A=0.0,B=2.9884,N=10)
EXTERNAL RHS
REAL Y(0:N)
H=(B-A)/N
X=XIN+H
10 FORMAT(1X,G12.4,4X,G12.4)
Y(0)=0
DO I=1,N
CALL ESTEP(H,A+(I-1)*H,Y(I-1),RHS,Y(I))
WRITE (*,FMT=10) A+(I*H),Y(I)
END DO
END
SUBROUTINE ESTEP (H,XIN,YIN,RHS,YOUT)
REAL H,XIN,YIN,YOUT
CALL RHS(XIN,YIN,DYDX)
YOUT=YIN + H*DYDX
END
SUBROUTINE RHS(X,Y,DYDX)
REAL X,Y,DYDX
DYDX=2*X**3+Y**3
END
メイン プログラムでホーム ディレクトリの「data」というファイルを開き、x 値とそれに対応する解の値を「data」に 2 列の配置で書き込み、左列に x 値、y 列に書き込む必要があります。右にあります。「データ」ファイルの折れ線グラフも作成する必要があります。コードはコンパイルされ、ターミナルで実行すると正しい出力が得られますが、データファイルに書き込まれるとは思いません。そこがどうしようか迷っている部分です。gnuplot を使用しようとすると、次のようになります。
gnuplot> set style data lines
gnuplot> set output 'data.ps'
gnuplot> set terminal postscript
Terminal type set to 'postscript'
Options are 'landscape noenhanced defaultplex \
leveldefault monochrome colortext \
dashed dashlength 1.0 linewidth 1.0 butt noclip \
nobackground \
palfuncparam 2000,0.003 \
"Helvetica" 14 fontscale 1.0 '
gnuplot> plot 'data'
warning: Skipping unreadable file "data"
No data in plot
これは、データ ファイルがメイン プログラムで開かれていないためだと思います。この場合、どのようにコーディングしますか?