Acceda a un parámetro desde una interfaz (Fortran)
Estoy usando un parámetro para corregir la precisión de los tipos utilizados. Esto funciona bien hasta que trato de usar el mismo tipo dentro de una interfaz. Considere este pequeño ejemplo:
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
Aquí, foo sería del tipo deseado, mientras que el compilador (gfortran) se queja de 'bar' y 'diversión'.
El error es
Error: Parameter 'k' at (1) has not been declared or is a variable, which does
not reduce to a constant expression
¿Hay alguna manera de hacer que esto funcione? (Por ahora, solo estoy escribiendo selected_real_kind (10) en todas partes, pero esto no es elegante en absoluto)
¡Gracias!