Error de compilación al portar de gfortran a ifort
-
06-07-2019 - |
Pregunta
Estoy intentando portar un programa de gfortran a ifort (Intel Fortran Compiler 11). Estoy atascado con dos archivos que solo se compilan con gfortran:
gfortran -x f77 -c daedrid.ff
gfortran -x f77-cpp-input -c daedris.ff
cuando intento ejecutar el compilador intel fortran con estos archivos, obtengo:
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)
y no se crean archivos de objeto.
Ahora, ¿cómo puedo resolver este problema o_O?
EDITAR: Cambiar el nombre de las extensiones de archivo de ff a fpp
cp daedrid.ff daedrid.fpp
cp daedrid.ff daedrid.fpp
ayuda:
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
ACTUALIZACIÓN: ¿Hay alguna manera de hacer que el compilador intel fortran funcione sin tener que cambiar el nombre de los archivos?
Solución
Las opciones que está buscando son -Tf
y -fpp
(y opcionalmente -fixed
o -free
. Desde ifort -help
, las líneas relevantes son:
-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
Entonces, en general, si tiene una fuente de forma fija que necesita preprocesamiento, usaría:
ifort -fpp -fixed -Tfa.ff
para compilar el archivo a.ff
.