In an
INTERFACE statement, a generic interface block must specify
one of the following:
- a generic name
- defined operator
- defined assignment
a derived-type input/output generic specification 
The generic name is a single name with which to reference all of the
procedures specified in the interface block. It can be the same as any accessible
generic name, or any of the procedure names in the interface block.
If two or more generic interfaces that are accessible in a scoping unit
have the same local name, they are interpreted as a single generic interface.