Purpose
The CALL statement invokes a subroutine to be executed.
Format
>>-CALL--name--+-------------------------------------+--------->< '-(--+---------------------------+--)-' '-actual_argument_spec_list-' |
Rules
Executing a CALL statement results in the following order of events:
A subprogram can call itself recursively, directly or indirectly, if the subroutine statement specifies the RECURSIVE keyword.
+-------------------------------IBM Extension--------------------------------+
An external subprogram can also refer to itself directly or indirectly if the -qrecur compiler option is specified.
+----------------------------End of IBM Extension----------------------------+
If a CALL statement includes one or more alternate return specifiers among its arguments, control may be transferred to one of the statement labels indicated, depending on the action specified by the subroutine in the RETURN statement.
+-------------------------------IBM Extension--------------------------------+
The argument list built-in functions %VAL and %REF are supplied to aid interlanguage calls by allowing arguments to be passed by value and by reference, respectively. They can only be specified in non-Fortran procedure references.
+----------------------------End of IBM Extension----------------------------+
INTERFACE SUBROUTINE SUB3(D1,D2) REAL D1,D2 END SUBROUTINE END INTERFACE ARG1=7 ; ARG2=8 CALL SUB3(D2=ARG2,D1=ARG1) ! subroutine call with argument keywords END SUBROUTINE SUB3(F1,F2) REAL F1,F2,F3,F4 F3 = F1/F2 F4 = F1-F2 PRINT *, F3, F4 END SUBROUTINE
Related Information