XL Fortran for AIX 8.1

Language Reference

INTERFACE

Purpose

The INTERFACE statement is the first statement of an interface block, which can specify an explicit interface for an external or dummy procedure.

Format



>>-INTERFACE--+--------------+---------------------------------><
              '-generic_spec-'
 
 

generic_spec



>>-+-generic_name---------------------+------------------------><
   +-OPERATOR--(--defined_operator--)-+
   '-ASSIGNMENT--(-- = --)------------'
 
 

defined_operator
is a defined unary operator, defined binary operator, or extended intrinsic operator

Rules

If generic_spec is present, the interface block is generic. If generic_spec is absent, the interface block is nongeneric. generic_name specifies a single name to reference all procedures in the interface block. At most, one specific procedure is invoked each time there is a procedure reference with a generic name.

+---------------------------------Fortran 95---------------------------------+

If a generic_spec appears in an INTERFACE statement, it must match the generic_spec in the corresponding END INTERFACE statement.

If the generic_spec in an INTERFACE statement is a generic_name, the generic_spec of the corresponding END INTERFACE statement must be the same generic_name.

+-----------------------------End of Fortran 95------------------------------+

An INTERFACE statement without a generic_spec can match any END INTERFACE statement, with or without a generic_spec.

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

You can always reference a procedure through its specific interface, if accessible. If a generic interface exists for a procedure, the procedure can also be referenced through the generic interface.

If generic_spec is OPERATOR(defined_operator), the interface block can define a defined operator or extend an intrinsic operator.

If generic_spec is ASSIGNMENT(=), the interface block can extend intrinsic assignment.

Examples

INTERFACE                            ! Nongeneric interface block
  FUNCTION VOL(RDS,HGT)
    REAL VOL, RDS, HGT
  END FUNCTION VOL
  FUNCTION AREA (RDS)
    REAL AREA, RDS
  END FUNCTION AREA
END INTERFACE
 
INTERFACE OPERATOR (.DETERMINANT.)   ! Defined operator interface
  FUNCTION DETERMINANT(X)
    INTENT(IN) X
    REAL X(50,50), DETERMINANT
  END FUNCTION
END INTERFACE
 
INTERFACE ASSIGNMENT(=)              ! Defined assignment interface
  SUBROUTINE BIT_TO_NUMERIC (N,B)
    INTEGER, INTENT(OUT) :: N
    LOGICAL, INTENT(IN)  :: B(:)
  END SUBROUTINE
END INTERFACE

Related Information


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]