Hallo,
es geht um Fortan 77. Vorab die Frage: Können Subroutines überhaupt Funktionen aufrufen?
Ich habe folgenden Aufbau (Metakommentare stehen in "") :
SUBROUTINE KALK_DELTAT (
c NLOC, NRET, NARG, RET, ARGS, CRESLT, CZ,DZ,IZ,LZ,RZ )
IMPLICIT NONE
"Variablendeklarationen und Anweisungen"
"Es folgt ein beispielhafter Funktionsaufruf"
C Initialsiere Verdampfungsenthalpie
VENT=dhv(TBETRB)
END
C **************Bereich für die Funktionen********************
CC Berechnung der Verdampfungsenthalpie
C Die Eingabe muss in Kelvin erfolgen. Die Ausgabe erfolgt in kJ*kg^-1.
DOUBLE PRECISION function dhv(t)
EXTERNAL grei, greii
DOUBLE PRECISION t
dhv=greii(t)-grei(t)
END
CC Berechnung der freien Gibbs-Energie (Region I)
C Die Eingabe muss in Kelvin erfolgen. Die Ausgabe erfolgt in kJ*kg^-1.
DOUBLE PRECISION function grei(t)
"Variablendeklarationen und Anweisungen"
END
CC Berechnung der freien Gibbs-Energie (Region II)
C Die Eingabe muss in Kelvin erfolgen. Die Ausgabe erfolgt in kJ*kg^-1.
DOUBLE PRECISION function greii(t)
"Variablendeklarationen und Anweisungen"
END
Beim Kompilieren erhalte ich die Fehlermeldung: "Function 'dhv' has no implicit type". Lösche ich das "IMPLICIT NONE" in der Subroutine, erhalte ich die Fehlermeldung, dass die Datentypen REAL(8) und REAL(4) kollidieren.
Danke und Grüße, gaussmath