为GET_ENVIRONMENT_VARIABLE向Fortran程序提供了哪些环境变量

EMi*_*ler 2 fortran hostname environment-variables

我想在我的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'
Run Code Online (Sandbox Code Playgroud)

但我的结果是我总是得到$ 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
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?我的Fortran程序在运行时看到了什么环境?

对于它的价值,我使用的是iFort 12.

Jon*_*rsi 8

这实际上工作正常,但在大多数平台上,这些环境变量名称区分大小写.我使用gfortran或ifort在我的linux机器上得到你的结果,但如果我将你的"主机名"字符串更改为"HOSTNAME",我会得到预期的结果.