nAG Fortran コンパイラでは、プログラム単位と手続の間の呼び出し関係の表(コールグラフ)を作成することができます。既存のプログラムを解読する際の補助ツールとしてコールグラフをご利用ください。
コマンド
nagfor =callgraph [option]... file...
オプションの詳細は「nAG Fortran Compiler, Release 7.2 マニュアル - 2.21 コールグラフの生成」をご参照ください。
利用例(一度も呼び出されない手続を見つける)
以下のプログラム maths_funcs.f90 と use_funcs.f90 に対して、どこからも呼び出されない手続があるかどうか、コールグラフを用いて調べてみます。
[ maths_funcs.f90 ]
module maths_functions implicit none contains function add(a, b) integer, intent(in) :: a, b integer add add = a + b end function function subtract(a, b) integer, intent(in) :: a, b integer subtract subtract = a - b end function end module
[ use_funcs.f90 ]
program main use maths_functions implicit none integer :: a = 2, b = 3 print *, 'a + b =', add(a, b) end program
コマンドラインから、以下のコマンドを打ち込んでください。
nagfor =callgraph -calledby maths_funcs.f90 use_funcs.f90
以下のようなコールグラフが出力されます。
「呼び出しテーブル」を見ると、モジュール maths_functions に含まれる手続 subtract は「呼び出し元」が「無し」となっており、どこからも呼び出されないことが分かります。
コールグラフ 2015年01月08日 16:26 1: MAIN 2: ADD 3: SUBTRACT 呼び出しテーブル 手続 呼び出し元 ADD MAIN SUBTRACT 無し