This example demonstrates the use of the NAg FORTRAN 77 library from within an HPF program. The cited example calls one of the simplest NAg library routines, X01AAF which returns the value of . Clearly, a far more substantial routine could have been called from within the extrinsic instead.
DOUBLE PRECISION FUNCTION Pi() DOUBLE PRECISION X01AAF, x Pi = X01AAF(x) END
The extrinsic does not need any mapping information because it does not reference any mapped objects.
The calling program could be:
PROGRAM Using_NAG_4_Pi !HPF$ PROCESSORS, DIMENSION(4) :: P DOUBLE PRECISION, DIMENSION(100) :: A !HPF$ DISTRIBUTE (BLOCK) ONTO P :: A INTERFACE EXTRINSIC(F77_LOCAL) DOUBLE PRECISION FUNCTION Pi() END FUNCTION Pi END INTERFACE A = Pi() END PROGRAM Using_NAG_4_Pi
All scalars in a program must have the same value. As Pi is a scalar routine each version of it must return the same value (which they do).
It must be ensured that the correct libraries are linked at compile time. Use the link editors' -l switch:
$ pghpf -Mnohpfc NagLib_Calc_u_like.f $ pghpf Extrinsic.hpf NagLib_Calc_u_like.o -lnag
Return to corresponding overview page