El resultado de la función no tiene tipo implícito

A continuación se muestra un código de muestra que aborda el problema que estoy teniendo. El mensaje de error que recibo es

El resultado de la función 'muestra' en (1) no tiene tipo IMPLICIT.

Etiqueto donde la línea (1) está debajo.

Traté de seguiresta otra preguntaSin embargo, no pude resolverlo. Esta función está dentro de un módulo en mi programa y me aseguré de que el módulo tengacontains y termino el módulo después de esta función.

Yo tambien usoimplicit none en esta función, así que no estoy seguro de por qué recibo este mensaje. ¿Cómo puedo solucionar este mensaje de error?

AgregandoReal oComplex en frente defunction funciona, pero realmente no entiendo por qué. ¿No debería poder usar complejos ya que las matrices son complejas dentro de la función? ¿Cuál es más adecuado para mi función real? Ambos no producen errores de compilación.

real function Sample(func)   !this is line (1)
!complex function Sample(func)

implicit none

integer :: n,m
real :: x,y
complex, dimension(-9:9,-9:9), intent(in) :: func
complex, dimension(-9:9,-9:9) :: LocalF

LocalF = func

do n=-9,9
do m=-9,9

    x = real(n)*0.2
    y = real(m)*0.2
    LocalF(n,m)= cmplx(z1(x,y),z2(x,y)) !assume z1,z2 are well defined

end do
end do

end function Sample

Respuestas a la pregunta(2)

Su respuesta a la pregunta