2012-02-15 11 views
2

Fortranコードで$ HOSTNAME環境変数の値を使用したいとします。GET_ENVIRONMENT_VARIABLEのためにFortranプログラムに提示される環境変数

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

興味深いことに、上記のページの例では、「ホーム」環境変数を使用しています。この環境変数は私のために働く。

しかし、私は$ HOSTNAMEがない理由を見ない:

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

何が起こっていますか?実行時に私のFortranプログラムはどのような環境を見ますか?

何が価値がある、私は

答えて

8

これは実際には正常に動作しますが、ほとんどのプラットフォームでは、これらの環境変数名は大文字と小文字が区別されますのifort 12を使用していますについて。 gfortranやifortを使って自分の結果をLinuxのボックスに表示しますが、ホスト名の文字列を "HOSTNAME"に変更すると、期待通りの結果が得られます。

+0

おっと。愚かな私... – EMiller

関連する問題