Fortran - Gibt eine anonyme Funktion aus dem Unterprogramm zurück
Ich versuche, einen Funktionsaufruf von einem Unterprogramm zu verallgemeinern. Meine Idee ist also so ähnlich
if (case1) then
call MainSubroutine1(myFun)
elseif (case2)
call MainSubroutine2(myFun)
end if
do i = 1,4
data = myFun(i)
end do
Mir ist klar, dass dies vage ist, aber ich bin mir nicht sicher, ob dies möglich ist.
Danke,
John
Bearbeiten 31.01.14 07:57 Uhr
Die vage Formulierung tut mir leid. Ich habe mir etwas ähnliches überlegt wie @haraldki, aber ich hatte gehofft, dass ich eine anonyme Funktion in MainSubroutine1 und MainSubroutine2 definieren und diese Definition in den Hauptcode übertragen kann.
Dies liegt daran, dass myFun von einer unterschiedlichen Streckungsverteilung abhängt (Gauß und Fermi-Dirac) und ich keine Funktion haben möchte, die nur eine Funktion aufruft, die eine Konstante hat.
Ist das möglich?
Danke nochmal.
John