+------------------------Fortran 2003 Draft Standard-------------------------+

PROCEDURE

Purpose

A PROCEDURE statement declares a dummy procedure or external procedure.

Note:
XL Fortran does not currently support using the PROCEDURE statement to declare procedure pointers.

Syntax



>>-PROCEDURE--(--+---------------------+--)--+---------------------------------+-->
                 '-procedure_interface-'     +-::------------------------------+
                                             '-,--procedure_attribute_list--::-'
 
>--procedure_entity_list---------------------------------------><
 
 

where:

procedure_interface
is an interface name or declaration type specifier.

procedure_attribute_list
is a list of attributes from the following list:

::
is the double colon separator. It is required if attributes are specified.

procedure_entity_list
is a list of the procedures that are being declared.

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---------------------+

IBM Copyright 2003