FORTRAN Reference Manual
Program Units
FORTRAN Reference Manual—528615-001
4-3
Communication Between Program Units
Communication Between Program Units
A calling program unit and a referenced procedure can exchange data in common 
blocks and in arguments to the procedure. You can specify up to 63 arguments in a 
statement function or external function.
The calling program unit passes actual arguments to the referenced procedure. The 
arguments of the referenced procedure are called dummy arguments. When the 
referenced procedure executes, the actual arguments passed to it from the calling 
program unit replace the dummy arguments. To avoid error conditions, you must make 
sure that the type, order, and number of the actual and dummy arguments correspond.
•
If the dummy argument is a variable name, it can be associated with an actual 
argument that is a variable, array element, substring, or expression. Note, 
however, that if information is passed back from the subprogram using a dummy 
argument, its associated actual argument cannot be an expression.
If the associated actual argument is a constant or a symbolic constant, a function 
reference, an expression involving operators, or an expression enclosed in 
parentheses, the variable must not be redefined within the subprogram.
•
If the dummy argument is an array name, it can be associated with an actual 
argument that is an array, array element, or array element substring. The size and 
dimensions of associated arrays can be different. If the actual argument is a 
noncharacter array name, the size of the dummy array must not exceed the size of 
the actual array. Each actual array element becomes associated with the dummy 
array element that has the same subscript value as the actual array element.
If the actual argument is a noncharacter array element, the size of the dummy 
array must not exceed the size of the actual array plus one, minus the subscript 
value of the array element.
Association by array elements exists for character arrays if the lengths of dummy 
and actual array elements are the same. If they are not, association still exists, but 
the dummy and actual array elements will not consist of the same characters.
•
If the dummy argument is a RECORD name, it can be associated with a character 
array, character variable, or RECORD name.
•
If the dummy argument is a procedure name and the dummy procedure is to be 
referenced as a function, the actual procedure must be the name of an intrinsic 
function, external function, or dummy procedure. If the name of the dummy 
function is the same as the name of an intrinsic function, that intrinsic function 
cannot be referenced in the same subprogram.
If the dummy procedure is to be referenced as a subroutine, the actual procedure 
must be the name of a subroutine or dummy procedure.
To use a procedure name as an actual argument, the name must appear in an 
EXTERNAL statement (for external procedures or dummy procedures) or in an 
INTRINSIC statement (for intrinsic functions) in the referencing program unit. For 










