0

次のコードがあります。

      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

これは、データ ファイルがメイン プログラムで開かれていないためだと思います。この場合、どのようにコーディングしますか?

4

0 に答える 0