The following example demonstrates a main program which calls an intrinsic function, (FLOOR), and an internal procedure, (Negative)
PROGRAM Main IMPLICIT NONE REAL x INTRINSIC FLOOR READ*, x PRINT*, FLOOR(x) PRINT*, Negative(x) CONTAINS REAL FUNCTION Negative(a) REAL, INTENT(IN) :: a Negative = -a END FUNCTION Negative END PROGRAM Main
Although not totally necessary, the intrinsic procedure is declared in an INTRINSIC statement (the type is not needed -- the compiler knows the types of all intrinsic functions).
The internal procedure is `contained within' the main program so does not require declaring in the main program;
The compiler is able to `see' the procedure and therefore knows its result type, number and type of arguments. Return to corresponding overview page