複数ファイルに分かれたプログラムをコンパイルするには
使用例(Intel Fortran)
ifort [options] main.f subroutine1.f subroutine2.f
または
ifort -c [options] main.f
ifort -c [options] subroutine1.f
ifort -c [options] subroutine2.f
ifort [options] main.o subroutine1.o subroutine2.o
使用例(gfortran)
gfortran [options] main.f subroutine1.f subroutine2.f
または
gfortran -c [options] main.f
gfortran -c [options] subroutine1.f
gfortran -c [options] subroutine2.f
gfortran [options] main.o subroutine1.o subroutine2.o
解説
プログラムが長い場合、管理の利便性からサブルーティンを別ファイルにしておくこと
がある。メインプログラムのサブルーティンプログラムをまとめてコンパイ
ルするには、上記の上段のようにコンパイルすれば良い。
一方、コンパイルに時間がかかる場合もある(最適化している場合等)。メインプログ
ラムだけ変更してサブルーティンプログラムに変更が無いのに上段のようにコンパイル
すると、変更の無いサブルーティンプログラムまで再コンパイルすることになり効率が
悪い。そのような場合、下段のように、実行ファイルの作成を「コンパイル」と「リン
ク」に分けると良い。「-c」オプションをつけると、当該プログラムだけ翻訳する。翻
訳されるとmain.oのように「.o」という拡張子のついたファイルが生成される。必要な
プログラムがすべて揃ったら、「.o」ファイルをリンクさせて、実行ファイルを作る。
変更の無いプログラムの「.o」ファイルを再度作る時間が省ける。
注意