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!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage