如何使用 nagfor 列出预定义的预处理器变量

How to list predefined preprocessor variables with nagfor

我想获取使用 nagfor Fortran 编译器时预定义的预处理器变量的列表。 gfortran 的等价物是

gfortran -E -dM foo.F90

但是

nagfor -F -Wp,-dM foo.F90

我明白了

NAG Fortran Compiler Release 5.3(854)
fpp: warning: bad option: -dM , ignored.

我查看了 nagfor documentation and the fpp documentation 但找不到答案。

我要找的是一些变量来确定文件是用 nagfor 编译的,所以相当于 gfortran __GFORTRAN__、ifort __INTEL_COMPILER 和 pgf90 __PGI.

我发现隐藏在 fpp 的文档中(4.5.4 Macro definition 6.2 版,5.3 版问题链接文档的第 5.4 节)

The macro NAGFOR is defined by default.

果然如此

#ifdef NAGFOR
  print '("nagfor says hello")'
#endif
end

通过预处理器时具有所需的结果。在我的例子中,宏取值 1,但我不知道它的一致性如何。

As Themos Tsikas comments, there are also the macros __NAG_COMPILER_RELEASE__NAG_COMPILER_BUILD 确实采用明确定义的值。