Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Preprocessor 什么';是什么宏将ifort与其他fortran编译器区分开来? 我正在使用FORTRAN代码,它必须与各种FORTRAN编译器一起工作(并且与C++和java代码交互)。目前,我们使用gfortran和g95,但我正在研究如何使用ifort,我遇到的第一个问题是如何在源代码中确定它是否使用ifort_Preprocessor_Fortran_Intel - Fatal编程技术网

Preprocessor 什么';是什么宏将ifort与其他fortran编译器区分开来? 我正在使用FORTRAN代码,它必须与各种FORTRAN编译器一起工作(并且与C++和java代码交互)。目前,我们使用gfortran和g95,但我正在研究如何使用ifort,我遇到的第一个问题是如何在源代码中确定它是否使用ifort

Preprocessor 什么';是什么宏将ifort与其他fortran编译器区分开来? 我正在使用FORTRAN代码,它必须与各种FORTRAN编译器一起工作(并且与C++和java代码交互)。目前,我们使用gfortran和g95,但我正在研究如何使用ifort,我遇到的第一个问题是如何在源代码中确定它是否使用ifort,preprocessor,fortran,intel,Preprocessor,Fortran,Intel,例如,我现在有一段代码: #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. Currentl

例如,我现在有一段代码:

#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
和谷歌阅读手册页。

你要的是
\uu英特尔编译器
,正如中所定义的,根据他们的文档,他们定义了英特尔编译器=910。910可能是一个版本号,但您可能只需要在其上添加ifdef即可


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

谢谢!我还必须在CMAKLISTS.TXT文件中添加到CMACHYCI标志和CMACHOWSWIGHFLAGS变量,以便C++代码创建正确的绑定。是的,它是版本ID。对于iFRT版本11.1,值是1110。你也可以通过使用文件类型“F90”——大写)来获得宏/预处理。你说的“文件类型”是指文件的扩展名,还是指编译器标志?我知道我已经晚了,但我只是想发布一个关于样式的简要说明:
#if defined
子句中的默认情况应该是一个错误,以防止任何意外行为。因此,如果定义了(uu GFORTRAN)…,请尝试使用类似于
#elif已定义(uuu英特尔编译器)#否则#错误“未为编译器设置名称损坏宏。”