Zugriff auf einen Parameter über eine Schnittstelle (Fortran)
Ich benutze einen Parameter, um die Genauigkeit der verwendeten Typen zu bestimmen. Dies funktioniert einwandfrei, bis ich versuche, denselben Typ in einer Schnittstelle zu verwenden. Betrachten Sie dieses kleine Beispiel:
module Hello
implicit none
save
integer, parameter :: K = selected_real_kind(10)
contains
subroutine dosomething(fun)
real(K) :: foo
interface
function fun(bar)
real(K) :: bar
real(K) :: fun
end function fun
end interface
end subroutine
end module
Hier wäre foo vom gewünschten Typ, während der Compiler (gfortran) sich über 'bar' und 'fun' beschwert.
Der Fehler ist
Error: Parameter 'k' at (1) has not been declared or is a variable, which does
not reduce to a constant expression
Gibt es eine Möglichkeit, dies zum Laufen zu bringen? (Im Moment schreibe ich nur selected_real_kind (10) überall, aber das ist überhaupt nicht elegant)
Danke!