Ошибка компиляции при портировании с gfortran на ifort - PullRequest
4 голосов
/ 22 июня 2009

Я пытаюсь перенести программу из gfortran в ifort (Intel Fortran Compiler 11). Я застрял с двумя файлами, которые компилируются только с gfortran:

gfortran -x f77 -c daedrid.ff
gfortran -x f77-cpp-input -c daedris.ff

когда я пытаюсь запустить компилятор intel fortran с этими файлами, я получаю:

ifort -fpp -c daedrid.ff
ifort: warning #10147: no action performed for specified file(s)
ifort -fpp -c daedris.ff
ifort: warning #10147: no action performed for specified file(s)

и объектные файлы не создаются.

Теперь, как я могу решить эту проблему o_O?

РЕДАКТИРОВАТЬ: Переименование расширений файлов из ff в fpp

cp daedrid.ff daedrid.fpp
cp daedrid.ff daedrid.fpp

помогает:

ifort -fpp -c daedrid.fpp
daedrid.fpp(1483): (col. 9) remark: LOOP WAS VECTORIZED.
daedrid.fpp(1490): (col. 11) remark: LOOP WAS VECTORIZED.
daedrid.fpp(1499): (col. 13) remark: LOOP WAS VECTORIZED.
ifort -fpp -c daedris.fpp
daedris.fpp(1626): (col. 9) remark: LOOP WAS VECTORIZED.

http://www.rcac.purdue.edu/userinfo/resources/black/userguide.cfm#compile_fortran_cpp

ОБНОВЛЕНИЕ: Есть ли способ заставить компилятор intel fortran работать без переименования файлов?

1 Ответ

5 голосов
/ 23 июля 2009

Вам нужны следующие варианты: -Tf и -fpp (и дополнительно -fixed или -free. Начиная с ifort -help соответствующие строки:

-Tf<file>     compile file as Fortran source

-fpp[n]    run Fortran preprocessor on source files prior to compilation
     n=0   disable running the preprocessor, equivalent to no fpp
     n=1,2,3  run preprocessor

-[no]fixed,-FI specifies source files are in fixed format
-[no]free, -FR specifies source files are in free format

Итак, в общем, если у вас есть источник фиксированной формы, который требует предварительной обработки, вы должны использовать:

ifort -fpp -fixed -Tfa.ff

для компиляции файла a.ff.

...