Ответ 1
Вы можете указать gfortran, где ваши файлы модулей (файлы .mod) расположены с флагом компилятора -I
. Кроме того, вы можете сообщить компилятору, куда поместить скомпилированные модули с флагом -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
В то время как вышеприведенное выглядит как много усилий для ввода в командной строке, я обычно использую эту идею в своих make файлах.
Для справки эквивалентные флагов компилятора Intel fortran -I
и -module
. По сути ifort заменяет параметр -J
на -module
. Обратите внимание, что после модуля есть пробел, но не после J.