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)