16.3.2 References to Specific Names

In a scoping unit, a procedure name is established to be specific if it is not established to be generic and any of the following is true:

To resolve a reference to a procedure name established to be specific, the following rules are used in the order shown:

  1. If either of the following is true, the dummy argument is a dummy procedure and the reference is to that dummy procedure:

    1. The scoping unit is a subprogram, and it contains an interface body with that procedure name.

    2. The procedure name has been declared EXTERNAL, and the procedure name is a dummy argument of that subprogram.

    The procedure invoked by the reference is the one supplied as the corresponding actual argument.

  2. If the scoping unit contains an interface body or the procedure name has been declared EXTERNAL, and Rule 1 does not apply, the reference is to an external procedure with that name.

  3. If the scoping unit contains an internal procedure or statement function with that procedure name, the reference is to that entity.

  4. If the procedure name has been declared INTRINSIC in the scoping unit, the reference is to the intrinsic procedure with that name.

  5. If the scoping unit contains a USE statement that makes the name of a module procedure accessible, the reference is to that procedure. (The USE statement allows renaming, so the name referenced may differ from the name of the module procedure.)

  6. If none of the preceding rules apply, the reference is resolved by applying these rules to the host scoping unit.


Previous Page Next Page Table of Contents