如何在我的 Fortran 代码中检索架构类型(Linux 与 Windows)?是否有某种内在函数或子程序提供此信息?然后我想在每次系统调用时使用这样的开关:
if (trim(adjustl(Arch))=='Linux') then
resul = system('ls > output.txt')
elseif (trim(adjustl(Arch))=='Windows')
resul = system('dir > output.txt')
else
write(*,*) 'architecture not supported'
stop
endif
谢谢A.
Fortran 2003 标准引入了 GET_ENVIRONMENT_VARIABLE
内部子例程。一种简单的调用形式是
call GET_ENVIRONMENT_VARIABLE (NAME, VALUE)
这将返回 VALUE
中名为 NAME
的变量的值。该例程还有其他可选参数,您最喜欢的引用文档将解释所有这些。这相当假设您可以找到一个环境变量来告诉您执行平台是什么。
如果您的编译器尚未实现此标准方法,则极有可能采用非标准方法;一个名为 getenv
的例程曾经在我最近使用的不止一个 Fortran 编译器上可用。
2008 标准引入了一个标准函数 COMPILER_OPTIONS
,如果编译器支持这种操作,它将返回一个包含用于程序的编译选项的字符串。与 GET_ENVIRONMENT_VARIABLE
相比,这似乎没有得到广泛实现,请参阅您的编译器文档集以了解详细信息和可用性。如果可用,它也可能对您有用。
您可能还对 2008 年引入的子例程 EXECUTE_COMMAND_LINE
感兴趣,它是您在片段。这已经在许多当前的 Fortran 编译器中可用。
我是一名优秀的程序员,十分优秀!