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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage