【问题标题】:What environment variables are presented to a Fortran program for GET_ENVIRONMENT_VARIABLE为 GET_ENVIRONMENT_VARIABLE 向 Fortran 程序提供哪些环境变量
【发布时间】:2012-02-15 18:19:09
【问题描述】:

我想在我的 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。

【问题讨论】:

    标签: fortran environment-variables hostname


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 2019-09-21
      • 2016-09-01
      相关资源
      最近更新 更多