C PARAMETER文で定数IMAXを宣言する。 C 定数IMAXはデータの個数を表す。 PARAMETER (IMAX=20) C 配列A、Bを宣言する。 REAL A(IMAX),B(IMAX) C データを読みこむ。 C ファイルを開く。 C 機番は10以降の番号を指定する。 C STATUSは読みこみの場合は'OLD'を指定する。 C FORMはテキストファイルの場合は'FORMATTED'を指定する。 OPEN(10,FILE='data05.txt',STATUS='OLD', + FORM='FORMATTED') C ここからデータを読みこむためのDOループが始まる。 C データの個数だけ反復する。 DO 11 I=1,IMAX C READ文でデータを読みこむ。 C 機番10を指定する。*は書式を指定しないことを示す。 C データファイルの各行の第1要素が年、 C 第2要素が配列Aに読みこむデータである。 READ(10,*) IY,A(I) C ここでDOループ11が終了する。 11 CONTINUE C ファイルを閉じる。 CLOSE(10) C 変数Sにゼロを代入する。 S = 0. C ここからDOループ21が始まる。 DO 21 I=1,IMAX C 変数SにA(I)の値を加える。 S = S + A(I) C ここでDOループ21が終了する。 21 CONTINUE C 平均値を計算する。 C 関数REALで整数型の変数を実数型に変換する。 AVE = S / REAL(IMAX) C ここからDOループ31が始まる。 DO 31 I=1,IMAX C A(I)と平均値との差を計算する。 B(I) = A(I) - AVE C ここでDOループ31が終了する。 31 CONTINUE C ここからデータを書き出すためのDOループが始まる。 C データの個数だけ反復する。 DO 41 I=1,IMAX C B(I)の値を標準出力に書き出す。 C 機番6を指定する。 C 書式は'(1X,I4,1X,F5.1)'を指定する。 C '1X'は1文字の空白、'I4'は4ケタの整数、 C 'F5.1'は全体が5ケタで小数点以下が1ケタの実数という意味である。 WRITE(6,'(1X,I4,1X,F5.1)') 1990+I,B(I) C ここでDOループ41が終了する。 41 CONTINUE STOP END