次の例で使用される Repeat.f ソースコードを示します。
demo% cat Repeat.f PROGRAM repeat pn1 = 27.005 CALL subr1 ( pn1 ) CALL newf ( pn1 ) PRINT *, pn1 END SUBROUTINE subr1 ( x ) IF ( x .GT. 1.0 ) THEN CALL subr2 ( x * 0.5 ) END IF END SUBROUTINE newf( ix ) INTEGER PRNOK IF (ix .eq. 0) THEN ix = -1 ENDIF PRINT *, prnok ( ix ) END INTEGER FUNCTION prnok ( x ) prnok = INT ( x ) + .05 END SUBROUTINE unreach_sub() CALL sleep(1) END SUBROUTINE subr2 (x) CALL subr1(x+x) END |
例: -XlistX を使用して、エラー、警告、および相互参照を表示します。
demo% f95 -XlistX Repeat.f demo% cat Repeat.lst Repeat.f (月) 3 月 18 18:08:27 2002 ページ 1 FILE "Repeat.f" program repeat 4 CALL newf ( pn1 ) ^ **** エラー #418: 実引数 "pn1" は real ですが、仮引数は integer です。 "Repeat f" の 14 行目を参照してください。 5 PRINT *, pn1 ^ **** エラー #570: 変数 "pn1" は real として参照されていますが、 4 行目では integer として設定されています。 subroutine newf 19 PRINT *, prnok ( ix ) ^ **** エラー #418: 引数 "ix" は integer ですが、仮引数は real です。 "Repeat f" の 22 行目を参照してください。 function prnok 23 prnok = INT ( x ) + .05 ^ **** 警告 #1024: 型 "integer*4" の値への型 "real*4" の 疑わしい代入値 subroutine unreach_sub 26 SUBROUTINE unreach_sub() ^ **** 警告 #338: サブルーチン "unreach_sub" はプログラムから呼び出されません。 subroutine subr2 31 CALL subr1(x+x) ^ **** 警告 #348:"subr1" の再帰的呼び出し。動的呼び出しを参照してください: "Repeat f" の 10 行目 "Repeat f" の 3 行目 相互参照 (月) 3 月 18 18:08:27 2002 ページ 2 相 互 参 照 表 ソースファイル: Repeat.f 凡例: D 定義 / 宣言 U 単純な使用 M 変更箇所 A 実引数 C サブルーチン / 関数呼び出し I 初期設定: DATA または拡張宣言 E EQUIVALENCE での出現 N NAMELIST での出現 L モジュールを使用します 相互参照 (月) 3 月 18 15:40:57 2002 ページ 3 プ ロ グ ラ ム 形 式 プログラム ------- repeat <repeat> D 1:D 相互参照 (月) 3 月 18 03:40:57 午後 2002 ページ 4 関数とサブルーチン ------------------------- INT intrinsic <prnok> C 23:C newf <repeat> C 4:C <newf> D 14:D prnok int*4 <newf> DC 15:D 19:C <prnok> DM 22:D 23:M sleep <unreach_sub> C 27:C subr1 <repeat> C 3:C <subr1> D 8:D <subr2> C 31:C subr2 <subr1> C 10:C <subr2> D 30:D unreach_sub <unreach_sub> D 26:D 相互参照 (月) 3 月 18 03:40:57 午後 2002 ページ 5 変数と配列 -------------------- ix int*4 dummy <newf> DUMA 14:D 16:U 17:M 19:A pn1 real*4 <repeat> UMA 2:M 3:A 4:A 5:U x real*4 dummy <subr1> DU 8:D 9:U 10:U <subr2> DU 30:D 31:U 31:U <prnok> DA 22:D 23:A ------------------------------------------------------------------ 統計情報 (月) 3 月 18 15:40:57 2002 ページ 6 日付: (月) 3 月 18 15:40:57 2002 オプション: -XlistX ファイル: 2 (ソース: 1、ライブラリ: 1) 行: 33 (ソース: 33、ライブラリサブプログラム: 1) ルーチン: 6 (主: 1、サブルーチン: 4、関数: 1) メッセージ: 6 (エラー: 3、警告: 3) |