5

我正在使用必须与各种 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阅读手册页。

4

2 回答 2

2

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

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

于 2010-03-25T21:36:54.427 回答