Procedure pointer components
- procedure_interface
A declaration_type_spec or the name of a procedure that has an explicit interface. For more information, see Type Declaration.
If procedure_interface is a declaration_type_spec and the type specified is a parameterized derived type, all parameters used must be known at compile time.
- procedure_component_attr_spec_list
- Attributes from the following list:
- POINTER
- PASS
- NOPASS
- access_spec
- procedure_entity_name
- is the name of the procedure pointer that is being declared.
- null_init
- is a reference to the NULL intrinsic function.
The PASS attribute defines the passed-object dummy arguments of the type-bound procedure or procedure pointer component. When NOPASS is specified the procedure has no passed-object dummy argument.
PASS or NOPASS shall not both appear in the same procedure_component_attr_spec_list.
If the procedure pointer component has an implicit interface or has no arguments, NOPASS shall be specified.
If PASS(arg-name) appears, the interface shall have a dummy argument named arg-name which is the passed-object dummy arguments.
The passed-object dummy arguments must not be a pointer, must not be allocatable, and all its length type parameters must be assumed.
If neither PASS nor NOPASS is specified or PASS has no arg-name, the first dummy argument is the passed-object dummy argument.
POINTER must be present in each procedure_component_attr_spec_list.