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.