我在 Intel 编译器上的 Fortran 90 代码取决于它运行的操作系统,例如
if (OS=="win7") then
do X
else if (OS=="linux") then
do y
end if
我如何以编程方式执行此操作?
您可以使用预处理器指令来完成此任务,请参阅here http://fortranwiki.org/fortran/show/Predefined+preprocessor+macros and here http://geco.mines.edu/guide/ifort.html详情:
-
_WIN32
对于Windows
-
__linux
对于Linux
-
__APPLE__
适用于 Mac OSX
这是一个例子:
program test
#ifdef _WIN32
print *,'Windows'
#endif
#ifdef __linux
print *,'Linux'
#endif
end program
确保通过指定启用预处理器-fpp
//fpp
或者给文件一个大写F
/F90
在扩展名中。
您可以在中心位置执行此操作,例如定义描述操作系统的常量。这将避免到处都是这些宏。
请注意,没有指定适用于 Linux 的宏gfortran
。因为它仍然定义_WIN32
在 Windows 上,您也可以使用#else
如果你只考虑 Linux 和 Windows:
program test
#ifdef _WIN32
print *,'Windows'
#else
print *,'Linux'
#endif
end program
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)