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.

IBM extension begins The following table outlines IBM® Open XL Fortran's passing method for internal procedures (not including assumed-shape dummy arguments and pointer dummy arguments):

Table 1. Passing method and intent
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
IBM extension ends
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.