C PARAMETER文で定数IMAXを宣言する。 PARAMETER (IMAX=3) C 配列A、B、Cを宣言する。 C 配列AはIMAX行IMAX列の行列に対応する。 C また配列Bは要素数IMAXのベクトル、 C 配列Cは要素数IMAXのベクトルに対応する。 REAL A(IMAX,IMAX),B(IMAX),C(IMAX) C DATA文で配列A、Bを初期化する。 C 2次元配列の場合、 C A(1,1),A(2,1),...,A(IMAX,1),A(1,2),A(2,2),... C の順である点に注意する。 DATA A / 0.7, 0.7, 0.0, + -0.7, 0.7, 0.0, + 0.0, 0.0,-1.0/ DATA B / 2.0, 1.0,-1.0/ C 行列AとベクトルBの積を計算する。 CALL PRDCT (IMAX,A,B,C) C 結果を書き出す。 C ここからDOループ21が始まる。 DO 21 I=1,IMAX C C(I)の値を標準出力に書き出す。 WRITE(6,*) 'c[',I,']=',C(I) C ここでDOループ21が終了する。 21 CONTINUE STOP END C 行列AとベクトルBの積を計算する。 SUBROUTINE PRDCT (IMAX,A,B,C) REAL A(IMAX,IMAX),B(IMAX),C(IMAX) C ここからDOループ11が始まる。 DO 11 I=1,IMAX C C(I)にゼロを代入する。 C(I) = 0. C ここからDOループ12が始まる。 DO 12 J=1,IMAX C 行列Aの(I,J)成分とベクトルBの第J成分の積を、 C C(I)に加える。 C(I) = C(I) + A(I,J) * B(J) C ここでDOループ12が終了する。 12 CONTINUE C ここでDOループ11が終了する。 11 CONTINUE RETURN END