VMS Help  —  FORTRAN  Statements  INTERFACE
  The first statement of an interface block.  Interface blocks define
  explicit interfaces for external or dummy procedures.  They can
  also be used to define a generic name for procedures, a new
  operator for functions, and a new form of assignment for
  subroutines.  Format:

     INTERFACE [spec]
       [body]...
       [MODULE PROCEDURE nam]...
     END INTERFACE [spec]

     spec  Is one of the following:

           A generic name

           OPERATOR (op)

           The "op" is the defined unary, defined binary,
           or extended intrinsic operator being defined.

           ASSIGNMENT (=)

           A "spec" can only be included in the END INTERFACE
           statement if one was provided in the INTERFACE
           statement; both "spec"s must be identical.

     body  Is one or more function or subroutine subprograms.
           A function must end with END FUNCTION and a subroutine
           must end with END SUBROUTINE.

           The subprogram must not contain a statement function
           or a DATA, ENTRY or FORMAT statement; an entry name
           can be used as a procedure name.

           The subprogram can contain a USE statement.

     nam   Is the name of one or more module procedures that
           are accessible in the host. The MODULE PROCEDURE
           statement is only allowed if the interface block
           specifies a "spec" and has a host that is a module
           (or accesses a module by use association).

           The characteristics of module procedures are not
           given in interface blocks, but are assumed from
           the module subprogram definitions.

  Interface blocks can appear in the specification part of the
  program unit that invokes the external or dummy procedure.

  The characteristics specified for the external or dummy procedure
  must be consistent with those specified in the procedure's
  definition.

  An interface block must not appear in a block data program unit.

  An interface block comprises its own scoping unit, and does not
  inherit anything from its host through host association.

  A procedure must not have more than one explicit interface in a
  given scoping unit.

  For more information, see the HP Fortran for OpenVMS Language
  Reference Manual.

  EXAMPLES:

  The following example shows a simple procedure interface block with
  no generic specification:

    SUBROUTINE SUB_B (B, FB)
      REAL B
      ...
      INTERFACE
        FUNCTION FB (GN)
          REAL FB, GN
        END FUNCTION
      END INTERFACE
Additional Information: explode extract
Generic Names Generic Operators Generic Assignment
Close Help