GET_ENVIRONMENT_VARIABLE函数使用哪些环境变量作为Fortran程序的参数?

3
我希望在我的Fortran代码中使用$HOSTNAME环境变量的值。
我的尝试是:
   CHARACTER(LEN=100) :: hostname
   INTEGER :: status_value = 0

   CALL GET_ENVIRONMENT_VARIABLE("hostname",hostname, STATUS=status_value) 

   IF (status_value == 2) THEN 
     WRITE(nout,*) 'WARNING: Processor does not support environment variables - hostname is unknown.'
     hostname = 'Unknown'
   ELSE IF (status_value == -1) THEN 
     WRITE(nout,*) 'WARNING: Hostname is too long for character variable - hostname is truncated.'
   ELSE IF (status_value == 1) THEN 
     WRITE(nout,*) 'WARNING: $HOSTNAME environment variable does not exist - hostname is unknown.'
     hostname = 'Unknown'

但我的结果是我总是得到"$HOSTNAME不存在"的结果。

我对状态值的解释基于这个链接: http://gcc.gnu.org/onlinedocs/gfortran/GET_005fENVIRONMENT_005fVARIABLE.html

有趣的是,上述页面中的示例使用了"HOME"环境变量。这个环境变量对我有效。

但我看不出为什么$HOSTNAME不行:

    MacBook-Pro:1N45 emiller$ echo $HOSTNAME  # My shell prompt
    MacBook-Pro.local

发生了什么?我的Fortran程序在运行时看到了什么环境?

值得一提的是,我正在使用iFort 12。

1个回答

9

这实际上很好用,但在大多数平台上,这些环境变量名是区分大小写的。我在我的linux系统中使用gfortran或ifort可以得到您的结果,但如果我将您的“hostname”字符串更改为“HOSTNAME”,那么我就能得到预期的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接