次の例で使用される 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)
|