Syntax of a type-bound procedure

The syntax of the type-bound procedure portion of a derived type definition is as follows:
Read syntax diagramSkip visual syntax diagram
                          .----------------------.   
                          V                      |   
>>-CONTAINS--+---------+----+-specific_binding-+-+-------------><
             '-PRIVATE-'    +-generic_binding--+     
                            '-final_binding----'     

CONTAINS
For more information see CONTAINS
PRIVATE
You can only specify a PRIVATE statement if the type definition is within the specification part of a module.
specific_binding
Binds a procedure to the type, or specifies a deferred binding in an abstract type. See Specific binding
generic_binding
Defines a generic interface. See Generic binding
final_binding
Defines a list of final subroutines. See Final binding

You can identify a procedure using a binding name in the scope of the type definition, or an operator for a generic binding. The binding name is the name of a procedure of the type name and is referred to in the same way as a component of a type. For a specific binding, this name is the binding_name. For a generic binding whose generic specification is generic_name, this name is the generic_name. A final binding, or a generic binding whose generic specification is not generic_name, has no binding name.