Print

Print


Hi,

Do you have an external declaration for f_x,
or an interface for it in foofunc1 and foofunc2 ?

On Oct 27, 2008, at 12:45 PM, Tuan, Hoang-Trong wrote:

> Any one can help me,
>  I define a module to contain a list of functions. These function  
> has one
> arguments f_x which should be a function
>
> MODULE MY_UTILITIES
>  IMPLICIT NONE
>
> CONTAINS
> REAL FUNCTION FooFunc1(f_x, a, b)
> ...
>  FooFunc1 = f_x(a-b)
> END FUNCTION
>
> REAL FUNCTION FooFunc2 (f_x, a, b)
> ...
> FooFunc2 = FooFunc1 (f_x, a, b)  ! error at this point
>
> END FUNCTION
> END MODULES
>
> PROGRAM MY_PROGRAM
>  USE MY_UTILITIES
>  EXTERNAL  G_X
>  REAL :: a, b
>  INTEGER :: errCode
>
>  ...
>  errCode = FooFunc1(G_X, a,b)
> END PROGRAM MY_PROGRAM
>
> REAL FUNCTION G_X (...)
> END FUNCTION
>
> Ignoring other details of the functions. Eventhough I don't call the
> FooFunc2 function inside main program, when I compile the program,  
> an error
> is popped up:
>          error 327 - In the INTERFACE to FooFunc1, the first dummy  
> argument
> (F_X) was of type REAL(KIND=1) FUNCTION, whereas the actual argument  
> is of
> type REAL(KIND=1)
>
> NOTE: I use SilverFrost Plato IDE (Fortran 95 compiler).
>
> Tuan.
> George Mason Univ.

-- 
Cheers!

Dan Nagle