module modull
contains
function fun( a )
  real, intent(in) :: a
  real :: fun
  fun = a
end function fun
end module modull
program t5
use modull
real :: a, b
b = foo( fun, a )
contains
function foo( f, a )
  real, intent(in) :: a
  interface
    function f( x )
      real, intent(in) :: x
      real :: f
    end function f
  end interface
  real :: foo
  foo = f( a )
end function foo
end program t5