一般的に、モジュールを使うプログラムでは、ソースファイルのコンパイルの順番に注意しなくてはなりません。モジュールを use しているソースファイルよりも先に、モジュールのソースファイルをコンパイルする必要があります。
nAG Fortran コンパイラには、モジュールの依存関係を解析する機能があります。この機能を用いて、モジュールを含むソースファイルの正しいコンパイル順序を得ることができます。
コマンド
nagfor =depend [option]... file...
オプションの詳細は「nAG Fortran Compiler, Release 7.2 マニュアル - 2.22 依存関係解析」をご参照ください。
利用例
以下のプログラム例 main.f90、a.f90、b.f90 に対して、正しいコンパイル順序を依存関係解析を用いて調べてみます。
(先に答えを言えば、メインプログラムがモジュール A に依存しており、モジュール A がモジュール B に依存しているため、正しいコンパイル順序は b.f90 → a.f90 → main.f90 となります。コンパイルの順番を間違えると、モジュールが見つからないというコンパイルエラーが発生します。)
[ main.f90 ]
program main use A implicit none print *, ia, ib end program
[ a.f90 ]
module A use B implicit none integer, parameter :: ia = 123 end module
[ b.f90 ]
module B implicit none integer, parameter :: ib = 456 end module
コマンドラインから、以下のコマンドを打ち込んでください。
nagfor =depend -otype=blist *.f90
以下のように、コンパイルの順番が出力されます。
(上から順番にコンパイルすれば良い。)
b.f90 a.f90 main.f90