我正在使用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 -help和Google阅读手册页。
发布于 2010-03-25 21:33:28
您所追求的是__INTEL_COMPILER,如http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/win/compiler_f/bldaps_for/common/bldaps_use_presym.htm中所定义的
发布于 2010-03-25 21:36:54
根据他们的文档,他们定义了__INTEL_COMPILER=910。910可能是一个版本号,但您可能只需对其进行#ifdef。
我应该注意,ifort不允许宏,除非您使用/fpp标志打开它。
https://stackoverflow.com/questions/2519516
复制相似问题