C ''の部分を自分で埋めてプログラムを完成してください。 C PARAMETER文で定数Gを宣言する。 C 定数Gは重力加速度を表す。 PARAMETER (G=9.81) C PARAMETER文で定数DTとIMAXを宣言する。 C 定数DTは時間間隔、定数IMAXは時間積分の回数を表す。 PARAMETER (DT=0.01,IMAX=500) C 入力を求めるメッセージを標準出力に書き出す。 WRITE(6,*) 'U0, W0?' C READ文で入力値を読みこむ。 READ(5,*) U0,W0 C 水平速度U、鉛直速度W、水平座標X、鉛直座標Zに初期値を代入する。 C UにU0、WにW0、XとZに0.を代入する。 U = W = X = Z = C ファイルを開く。 C 機番は10以降の番号を指定する。 C STATUSは書き出しの場合は'UNKNOWN'を指定する。 C FORMはテキストファイルの場合は'FORMATTED'を指定する。 OPEN(10,FILE='output.txt',STATUS='UNKNOWN', + FORM='FORMATTED') C 水平座標Xと鉛直座標Zの初期値を機番10で指定されたファイルに書き出す。 C 機番10を指定する。 C 書式は'(1X,F9.3,1X,F9.3)'を指定する。 C '1X'は1文字の空白、 C 'F9.3'は全体が9ケタで小数点以下が3ケタの実数という意味である。 WRITE(10,'(1X,F9.3,1X,F9.3)') X,Z C ==== ここから時間積分 ==== C ここから時間積分のためのDOループが始まる。 C IMAX回だけ反復する。 DO 11 I=1,IMAX C 差分化された運動方程式にしたがって、 C U+、W+、X+、Z+を計算する。 UP = WP = XP = ZP = C U+、W+、X+、Z+の値をU、W、X、Zに代入して、 C 時間ステップをひとつ進める。 U = W = X = Z = C 水平座標Xと鉛直座標Zの値を機番10で指定されたファイルに書き出す。 C 機番10を指定する。 C 書式は'(1X,F9.3,1X,F9.3)'を指定する。 C '1X'は1文字の空白、 C 'F9.3'は全体が9ケタで小数点以下が3ケタの実数という意味である。 WRITE(10,'(1X,F9.3,1X,F9.3)') C ここでDOループ11が終了する。 11 CONTINUE C ==== ここまで時間積分 ==== C ファイルを閉じる。 CLOSE(10) STOP END