我正在尝试使用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.
答案 0 :(得分:0)
好吧,包含的文件不包含任何过程,这是模块pmu文件中“contains”和“end module”语句之间的所需。
将CPP与Fortran一起使用的另一个问题是Fortran include语句与CPP #include不同。特别是,未指定它们的交互。也就是说,如果你包含一个本身包含CPP指令的文件,那么如果你使用#include就会出现问题。