使用Portland编译器进行Fortran预处理

时间:2011-05-19 17:55:33

标签: preprocessor fortran

我正在尝试使用pgf90预处理Fortran模块(pmu.F90)。该模块如下:

module pmu

   module variables

contains

   include 'file.F90'

end module 

file.F90是一个子程序,包含以下几行:

 #ifdef PART  

    startm1 = xstart - 1

    startm2 = xstart - 2

    endp1   = xend + 1

    endp2   = xend + 2 

 #else    

    startm1 = xstart - 1

    startm2 = xstart - 1

    endp1   = xend + 1

    endp2   = xend + 1 

 #endif 

如果我编译:

pgf90  -DPART    -Mfree -Mbounds -Msave -Mdclchk -r8 -Mpreprocess  -I/data/users/mrosso/fftw3/include    -c pmu.F90

我得到了

PGF90-S-0021-Label field of continuation line is not blank.

1 个答案:

答案 0 :(得分:0)

好吧,包含的文件不包含任何过程,这是模块pmu文件中“contains”和“end module”语句之间的所需。

将CPP与Fortran一起使用的另一个问题是Fortran include语句与CPP #include不同。特别是,未指定它们的交互。也就是说,如果你包含一个本身包含CPP指令的文件,那么如果你使用#include就会出现问题。