Fortran中是否有一个函数可以查询操作系统的类型?并将此类型作为字符串或类似的?基本上我想使用SYSTEM函数并在linux和windows机器上运行我的程序。我的程序使用功能SYSTEM在linux上运行良好,但现在我想做到一般,并在Windows上运行它。让我们说我正在寻找的这个函数叫做INQUIRE_SYSTEM。我的程序是:
USE IFPORT
stringSYSTEM = INQUIRE_SYSTEM()
if (TRIM(ADJUSTL(stringSYSTEM).eq.linux)) THEN ! linux systems
I = SYSTEM("mv final.out restart.dat")
If (I == -1) then
errnum = ierrno( )
print *, 'Error ', errnum
end if
else !dos systems
I = SYSTEM("rename final.out restart.dat")
If (I == -1) then
errnum = ierrno( )
print *, 'Error ', errnum
end if
非常感谢你的帮助。 甲
答案 0 :(得分:1)
一种方法是检查预处理器宏。根据您支持的操作系统构建列表。请参阅How do I check OS with a preprocessor directive?。
当文件类型为大写时,许多Fortran编译器将运行预处理器:F90。或者有一个编译器选项。代码示例:
#ifdef __GFORTRAN__
write (*, '( "gfortran" )' )
#endif
为什么需要了解Fortran程序的操作系统?