Intent of dummy arguments
With the INTENT attribute, you can explicitly specify the intended use of a dummy argument. Use of this attribute may improve optimization of the program's calling procedure when an explicit interface exists. Also, the explicitness of argument intent may provide more opportunities for error checking. See INTENT for syntax details.
The following table outlines IBM® Open XL
Fortran's passing method for internal procedures (not
including assumed-shape dummy arguments and pointer dummy arguments):
| Argument Type | Intent(IN) | Intent(OUT) | Intent(INOUT) | No Intent |
|---|---|---|---|---|
| Non-CHARACTER Scalar | VALUE | default | default | default |
| CHARACTER*1 Scalar | VALUE | REFERENCE | REFERENCE | REFERENCE |
| CHARACTER*n Scalar | REFERENCE | REFERENCE | REFERENCE | REFERENCE |
| CHARACTER*(*) Scalar | default | default | default | default |
| Derived Type 1 Scalar | VALUE | default | default | default |
| Derived Type 2 Scalar | default | default | default | default |
| Non-CHARACTER Array | default | default | default | default |
| CHARACTER*1 Array | REFERENCE | REFERENCE | REFERENCE | REFERENCE |
| CHARACTER*n Array | REFERENCE | REFERENCE | REFERENCE | REFERENCE |
| CHARACTER*(*) Array | default | default | default | default |
| Derived Type 3 Array | default | default | default | default |

1 A data object of derived type with no array components or
CHARACTER*n components, where n > 1.
2 A data
object of derived type with array components or CHARACTER*n components, where
n > 1.
3 A data object of derived-type with
components of any type, size and rank.