Fortran功能检查操作系统的类型

时间:2013-07-03 20:29:15

标签: fortran fortran2003

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

非常感谢你的帮助。 甲

1 个答案:

答案 0 :(得分:1)

一种方法是检查预处理器宏。根据您支持的操作系统构建列表。请参阅How do I check OS with a preprocessor directive?

当文件类型为大写时,许多Fortran编译器将运行预处理器:F90。或者有一个编译器选项。代码示例:

#ifdef __GFORTRAN__ 
    write (*, '( "gfortran" )' )
#endif

为什么需要了解Fortran程序的操作系统?