> I have a function with the following prototype.
Prototype is called interface in Fortran :-)
> function f(x,y)
> implicit none
> real,dimension(:) :: x
> real :: y
> real,dimension(size(x)):: f
> ! .........
> end function
>
> And another function which can take f(,) as an argument.
>
subroutine integrate(f,a,b)
implicit none
real :: left,right
! declaration on f <==== (1)
interface
function f(x,y)
implicit none
real,dimension(:) :: x
real :: y
real,dimension(size(x)):: f
end function
end interface
end subroutine
program xxx
! . . .
interface
function f(x,y)
implicit none
real,dimension(:) :: x
real :: y
real,dimension(size(x)):: f
end function
end interface
! . . .
call integrate(g,a,b) ! <==== (2)
end program xxx
> My question is what is the most effective way of declaring(specifying) f
> within the subroutine integrate() (1) so that the compiler can check if g
> has a matching prototype at the stage (2) ?
>
This the best way to, I guess.
You need an interface if the called procedures are not in a
module, which is an alternative.
This may help you forward.
/---
Jan van Oosterwijk
|