Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

Procedure Characteristics

The characteristics of a procedure are as follows:

  • Whether it is classified as a function or subroutine

  • The characteristics of its result value if it is a function

  • The characteristics of its dummy arguments

  • Whether it is pure

  • Whether it is impure

  • Whether it is elemental

  • Whether it has the BIND attribute

Characteristics of Dummy Arguments

Each dummy argument has the characteristic that it is a dummy data object, a dummy procedure, or an asterisk indicating an alternate return indicator.

The characteristics of a dummy data object are as follows:

  • Its type and type parameters (if any)

  • Its shape

  • Its intent

  • Its corank

  • Its codimensions

  • Whether it is optional

  • Whether it is allocatable

  • Whether it has the ASYNCHRONOUS, CONTIGUOUS, VALUE, or VOLATILE attribute

  • Whether it is a pointer or a target

  • Whether it is polymorphic

  • Whether or not it is assumed rank or assumed type

If a type parameter of an object or a bound of an array is not a constant expression, a characteristic is the exact dependence on the entities in the expression. Another characteristic is whether a shape, size, or type parameter is assumed or deferred.

The characteristics of a dummy procedure are as follows:

  • Whether it is optional

  • The explicitness of its interface

  • Its characteristics as a procedure if the interface is explicit

  • Whether it is a pointer

An asterisk indicating an alternate return indicator has no characteristics.

Characteristics of Function Results

The characteristics of a function result are as follows:

  • Its type, type parameters (if any), and rank

  • Whether it is allocatable

  • Whether it has the CONTIGUOUS attribute

  • Whether it is a pointer

  • Whether it is a procedure pointer

  • Whether it is polymorphic

If a function result is an array that is not allocatable or a pointer, a characteristic is its shape.

If a type parameter of a function result or a bound of a function result array is not a constant expression, a characteristic is the exact dependence on the entities in the expression.

If type parameters of a function result are deferred, a characteristic is which parameters are deferred. Another characteristic is whether the length of a character function result is assumed.