什么是区分ifort与其他fortran编译器的宏?

时间:2010-03-25 21:25:02

标签: preprocessor fortran intel

我正在使用必须与各种Fortran编译器一起工作的Fortran代码(并且与C ++和Java代码交互)。目前,我们正在使用gfortran和g95,但是我正在研究如何使用ifort,并且我遇到的第一个问题是如何确定如何在源代码中确定它是使用ifort还是不

例如,我目前有这段代码:

#if defined(__GFORTRAN__)
// Macro to add name-mangling bits to fortran symbols. Currently for gfortran only
#define MODFUNCNAME(mod,fname) __ ## mod ## _MOD_ ## fname
#else
// Macro to add name-mangling bits to fortran symbols. Currently for g95 only
#define MODFUNCNAME(mod,fname) mod ## _MP_ ## fname
#endif // if __GFORTRAN__

ifort的宏是什么?我尝试了 IFORT ,但这不对,进一步猜测似乎没有效果。我还尝试使用ifort -help和Google阅读手册页。

2 个答案:

答案 0 :(得分:7)

您在__INTEL_COMPILER之后定义{{1}}

答案 1 :(得分:2)

根据他们的文档,他们定义__INTEL_COMPILER = 910。 910可能是版本号,但您可能只需#ifdef就可以了。

我应该注意ifort不允许宏,除非你明确地用/ fpp标志打开它。