3 Stimmen

Welche Umgebungsvariablen werden einem Fortran-Programm bei GET_ENVIRONMENT_VARIABLE angeboten?

Ich würde gerne den Wert der Umgebungsvariablen $HOSTNAME in meinem Fortran-Code verwenden.

Mein Versuch dazu ist:

   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'

Aber mein Ergebnis ist, dass ich immer das Ergebnis erhalte, dass $HOSTNAME nicht existiert.

Meine Interpretation des Statuswerts basiert auf dieser Tatsache: http://gcc.gnu.org/onlinedocs/gfortran/GET_005fENVIRONMENT_005fVARIABLE.html

Interessanterweise verwendet das Beispiel auf der obigen Seite die Umgebungsvariable "HOME". Diese Umgebungsvariable funktioniert bei mir.

Ich sehe aber keinen Grund, warum $HOSTNAME nicht funktionieren sollte:

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

Was ist hier los? Welche Umgebung sieht mein Fortran-Programm zur Laufzeit?

Ich verwende iFort 12, wenn Sie mich fragen.

9voto

Jonathan Dursi Punkte 48657

Das funktioniert eigentlich gut, aber auf den meisten Plattformen wird bei den Namen der Umgebungsvariablen zwischen Groß- und Kleinschreibung unterschieden. Ich erhalte Ihre Ergebnisse auf meinem Linux-Rechner mit gfortran oder ifort, aber wenn ich Ihren "hostname"-String in "HOSTNAME" ändere, erhalte ich die erwarteten Ergebnisse.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X