Purpose
A statement function defines a function in a single statement.
Format
>>-name--(--+---------------------+--)-- = --scalar_expression-->< '-dummy_argument_list-' |
Rules
A statement function is local to the scoping unit in which it is defined. It must not be defined in the scope of a module.
name determines the data type of the value returned from the statement function. If the data type of name does not match that of the scalar expression, the value of the scalar expression is converted to the type of name in accordance with the rules for assignment statements.
The names of the function and all the dummy arguments must be specified, explicitly or implicitly, to be scalar data objects.
The scalar expression can be composed of constants, references to variables, references to functions and function dummy procedures, and intrinsic operations. If the expression contains a reference to a function or function dummy procedure, the reference must not require an explicit interface, the function must not require an explicit interface or be a transformational intrinsic, and the result must be scalar. If an argument to a function or function dummy procedure is array-valued, it must be an array name.
With XL Fortran, the scalar expression can also reference a structure constructor.
The scalar expression can reference another statement function that is either:
Named constants and arrays whose elements are referenced in the expression must be declared earlier in the scoping unit or be made accessible by use or host association.
Variables that are referenced in the expression must be either:
If an entity in the expression is typed by the implicit typing rules, its type must agree with the type and type parameters given in any subsequent type declaration statement.
An external function reference in the scalar expression must not cause any dummy arguments of the statement function to become undefined or redefined.
If the statement function is defined in an internal subprogram and if it has the same name as an accessible entity from the host, precede the statement function definition with an explicit declaration of the statement function name. For example, use a type declaration statement.
The length specification for a statement function of type character or a statement function dummy argument of type character must be a constant specification expression.
PARAMETER (PI = 3.14159) REAL AREA,CIRCUM,R,RADIUS AREA(R) = PI * (R**2) ! Define statement functions CIRCUM(R) = 2 * PI * R ! AREA and CIRCUM ! Reference the statement functions PRINT *,'The area is: ',AREA(RADIUS) PRINT *,'The circumference is: ',CIRCUM(RADIUS)
Related Information