Copyright Digital Equipment Corp. All rights reserved.

Generic_Names

 An interface block can be used to specify a generic name to
 reference all of the procedures within the interface block.
 Statement format for initial line in block:

    INTERFACE generic-name

 This kind of interface block can be used to extend or redefine a
 generic intrinsic procedure.

 The procedures that are given the generic name must be the same
 kind of subprogram:  all must be functions, or all must be
 subroutines.

 Any procedure reference involving a generic procedure name must be
 resolvable to one specific procedure; it must be unambiguous.

 EXAMPLES:

   INTERFACE GROUP_SUBS
     SUBROUTINE INTEGER_SUB (A, B)
       INTEGER, INTENT(INOUT) :: A, B
     END SUBROUTINE INTEGER_SUB
   
     SUBROUTINE REAL_SUB (A, B)
       REAL, INTENT(INOUT) :: A, B
     END SUBROUTINE REAL_SUB

     SUBROUTINE COMPLEX_SUB (A, B)
       COMPLEX, INTENT(INOUT) :: A, B
     END SUBROUTINE COMPLEX_SUB
   END INTERFACE 

 The three subroutines can be referenced by their individual
 specific names or by the group name GROUP_SUBS.

 The following example shows a reference to INTEGER_SUB:

 INTEGER V1, V2
 CALL GROUP_SUBS (V1, V2)