Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 9/08/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Procedures that Require Explicit Interfaces

When a procedure is referenced, it must have an explicit interface in the following cases:

  • If a reference to the procedure appears in one of the following:

    • An actual argument that is specified with a keyword

    • In a context that requires it to be PURE

  • If the procedure has a dummy argument that is one of the following:

    • An object that has the ALLOCATABLE, ASYNCHRONOUS, OPTIONAL, POINTER, TARGET, VALUE, or VOLATILE attribute

    • An assumed-shape array

    • A polymorphic object (an object declared with a CLASS statement)

    • A coarray (an object declared with a CODIMENSION attribute or statement)

    • An object of a parameterized derived type

    • An object of assumed-rank or assumed-type

  • If the procedure has any of the following:

    • 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

  • If the procedure has the BIND attribute

Statement functions do not require an explicit interface.

See Also