+------------------------Fortran 2003 Draft Standard-------------------------+
Purpose
A PROCEDURE statement declares a dummy procedure or external procedure.
Syntax
>>-PROCEDURE--(--+---------------------+--)--+---------------------------------+--> '-procedure_interface-' +-::------------------------------+ '-,--procedure_attribute_list--::-' >--procedure_entity_list--------------------------------------->< |
where:
Rules
If procedure_interface is the name of a procedure that has an explicit interface, the declared procedures have this explicit interface. The referenced procedure must already be declared. If the referenced procedure is an intrinsic procedure, it must be an intrinsic procedure whose name can be passed as an argument. If the referenced procedure is an elemental procedure, the procedure entity list must consist of external procedures.
If procedure_interface is a declaration type specifier, the declared procedures are functions with an implicit interface and the specified result type. If these functions are external functions, the function definitions must specify the same result type and type parameters.
If there is no procedure_interface, the PROCEDURE statement does not specify whether the declared procedures are subroutines or functions.
If you specify procedure language binding using the BIND attribute, procedure_interface must be the name of a procedure that is declared with procedure language binding.
If procedure language binding with NAME= is specified, the procedure entity list must consist of one procedure name. This procedure must not be a dummy procedure.
If OPTIONAL is specified, the declared procedures must be dummy procedures.
If PUBLIC or PRIVATE is specified, the declared procedures must be external procedures.
Examples
contains subroutine xxx(psi) PROCEDURE (real) :: psi real y1 y1 = psi() end subroutine end
Related Information
+---------------------End of Fortran 2003 Draft Standard---------------------+