Intel® Fortran Compiler 18.0 Developer Guide and Reference
In a scoping unit, a procedure name is not established if it is not determined to be generic or specific.
To resolve a reference to a procedure name that is not established, the following rules are used in the order shown:
If both of the following are true, the dummy argument is a dummy procedure and the reference is to that dummy procedure:
The scoping unit is a subprogram.
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.
If both of the following are true, the procedure is an intrinsic procedure and the reference is to that intrinsic procedure:
The procedure name matches the name of an intrinsic procedure.
There is agreement between the intrinsic procedure definition and the reference of the name as a function or subroutine.
If neither of the preceding rules apply, the reference is to an external procedure with that name.