2017-01-19 9 views
2

Я запрограммировал некоторые fortran-подпрограммы. Я сохранил подпрограммы в рабочей папке с именем subroutines. Когда я компилирую Фортран, скажет main.f90 (находится в другой папке, чем subroutines), который использует подпрограммы (например sub1.f90, sub2.f90) папок subroutines, мне нужно копию каждую подпрограмму в папку main.f90 и затем компилировать как это:gfortran include directory с подпрограммами

gfortran -o main main.f90 sub1.f90 sub2.f90

, который выводит исполняемый файл, как требуется.

Мой вопрос: Есть ли опция компилятора в gfortran включить файлы из папки subroutineбез необходимости копировать каждую подпрограмму в папку main.f90?

Я пробовал эти два варианта:

gfortran -L/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90

gfortran -I/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90

обе эти опции компилятора возвращает ошибку: gfortran: No such file or directory

Единственный доступный Fortran компилятор в моем компьютере является gfortran (нет ifort).

+0

Вы почти наверняка лучше скомпилируете каждый файл '.f90', а затем окончательно соедините. Флаг '-I' относится к пути поиска для включенных файлов и файлов модулей. – francescalus

+0

Вы, вероятно, ищете какую-то систему сборки, например, make или лучшую современную альтернативу. –

ответ

0

Вы можете просто поместить полный путь в файл подпрограммы. Таким образом, вы бы увеличить свой сборник, как

gfortran -o main main.f90 subroutines/sub1.f90 subroutines/sub2.f90 

или умный способ сделать этот вызов является использование расширений, как так

gfortran -o main main.f90 subroutines/{sub1,sub2}.f90 

где фигурные скобки будут расширяться, чтобы быть таким же, как первое осложнение I показать.

+0

Спасибо, я не знал о втором методе, который вы упомянули. Это было очень полезно. – Sergio