Determining When Procedures Require Explicit Interfaces
A procedure must have an explicit interface in the following cases:
- If the procedure has any of the following:
- A dummy argument that has the ALLOCATABLE, ASYNCHRONOUS, OPTIONAL, POINTER, TARGET, VALUE, or VOLATILE attribute
- A dummy argument that is an assumed-shape array
- A result that is an array, or a pointer, or is allocatable (functions only)
- A result whose length is neither assumed nor a constant (character functions only)
- If a reference to the procedure appears as follows:
- With an argument keyword
- As a reference by its generic name
- As a defined assignment (subroutines only)
- In an expression as a defined operator (functions only)
- In a context that requires it to be pure
- If the procedure is elemental
See Also