最適化プログラムをデバッグするには、次のことを行ってください。
-g を付けて、-On を付けずにメインプログラムをコンパイルする。
適切な -On を付けて、プログラムのルーチンを 1 つおきにコンパイルする。
dbx のもとで実行を開始する。
デバッグしたいルーチンに対して fix -g any.f を使用する。ただし、-On は付けない。
コンパイルされたルーチンに対して continue を使用する。
デバッグの主プログラム
PARAMETER ( n=2 )
REAL twobytwo(2,2) / 4 *-1 /
CALL mkidentity( twobytwo, n )
PRINT *, determinant( twobytwo )
END
デバッグのサブルーチン
SUBROUTINE mkidentity ( array, m )
REAL array(m,m)
DO 90 i = 1, m DO 20 j = 1, m
IF ( i .EQ. j ) THEN
array(i,j) = 1.
ELSE
array(i,j) = 0.
END IF
20 CONTINUE
90 CONTINUE
RETURN
END
デバッグの関数
REAL FUNCTION determinant ( a )
REAL a(2,2)
determinant = a(1,1) * a(2,2) - a(1,2) / a(2,1)
RETURN
END