我正在使用必须与各种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阅读手册页。
答案 0 :(得分:7)
您在__INTEL_COMPILER
之后定义{{1}}
答案 1 :(得分:2)
根据他们的文档,他们定义__INTEL_COMPILER = 910。 910可能是版本号,但您可能只需#ifdef就可以了。
我应该注意ifort不允许宏,除非你明确地用/ fpp标志打开它。