I'm using the NAG F95 Relase 4.0 compiler. I have specified the procedure:
FUNCTION Solver_pF_Zi( i, Func, ScaleFactors ) RESULT( pF_Z )
DOUBLE PRECISION, POINTER :: pF_Z
INTEGER, INTENT(IN) :: i
DOUBLE PRECISION, INTENT(IN), OPTIONAL :: ScaleFactors(3)
with the following INTERFACE definition for Func:
INTERFACE
FUNCTION Func( bp, Xm, Xp, mF, ScaleFactors )
USE BREAKPOINT
DOUBLE PRECISION, POINTER :: Func(:,:)
TYPE (Breakpoint_T), INTENT(IN) :: bp
DOUBLE PRECISION, INTENT(IN) :: Xm(7), Xp(7), mF
DOUBLE PRECISION, INTENT(IN) :: ScaleFactors(3)
END FUNCTION Func
END INTERFACE
This FUNCTION is called several times by code in another procedure of the
same module with a different Func argument whose interface is specified by
the BREAKPOINT module.
This appears to work. However, when I re-compile this code with the -C=all
switch, relink and execute the result, I get the errors:
Missing or Incorrect interface block
Dummy argument FUNC is a POINTER
Program terminated by fatal error
Abort (core dumped)
Can someone explain what this error means?
I haven't found anything in my F90 or F95 references that forbids a pointer
array function to be used as a procedure argument. Furthermore, I haven't
been able to get around the INTERFACE problem.
Your help is greatly appreciated in advance.
-------------------------------------------------------
Jack Hatfield
Sr. Software Engineer
Mission Analysis Software Team
Jet Propulsion Laboratory
4800 Oak Grove Dr
MS 301-140L
Pasadena, CA 91109-8099
Office: 301-140R
Email: [log in to unmask]
Phone: 818-354-2198
Fax: 818-393-9900
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|