-I
モジュールファイル(.modファイル)がどこにあるかは、コンパイラフラグでgfortranに伝えることができます。さらに、-J
コンパイラフラグを使用して、コンパイル済みモジュールを配置する場所をコンパイラに指示できます。gfortranのマニュアルページの「ディレクトリ検索のオプション」のセクションを参照してください。
これらを使用して、オブジェクト(.oファイル)とモジュールファイルの両方を同じディレクトリに配置しますが、すべてのソースファイルとは異なるディレクトリに配置するため、ソースディレクトリが乱雑になることはありません。例えば、
SRC = /path/to/project/src
OBJ = /path/to/project/obj
BIN = /path/to/project/bin
gfortran -J$(OBJ) -c $(SRC)/bar.f90 -o $(OBJ)/bar.o
gfortran -I$(OBJ) -c $(SRC)/foo.f90 -o $(OBJ)/foo.o
gfortran -o $(BIN)/foo.exe $(OBJ)/foo.o $(OBJ)/bar.o
上記はコマンドラインで入力するのに大変な労力のように見えますが、私は通常、このアイデアをmakefileで使用します。
-I
参考までに、同等のIntelFortranコンパイラフラグはと-module
です。基本的に、ifortは-J
オプションを。に置き換えます-module
。モジュールの後にスペースがありますが、Jの後にはないことに注意してください。