gpt4 book ai didi

linux - 如何在我的 Fortran 代码中检索架构类型(Linux 与 Windows)

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:23 24 4
gpt4 key购买 nike

如何在我的 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 编译器中可用。

关于linux - 如何在我的 Fortran 代码中检索架构类型(Linux 与 Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com