%DESCR (VMS only)

Built-in Function: Changes the form of an actual argument. It passes an argument by descriptor.

Syntax

result = %DESCR (a)

a
(Input) An expression, record name, procedure name, array, character array section, or array element.

You must specify %DESCR in the actual argument list of a CALL statement or function reference. You cannot use it in any other context.

The following table lists the Compaq Fortran defaults for argument passing, and the allowed uses of %DESCR:

Actual Argument Data Type Default %DESCR
Expressions:
Logical REF Yes
Integer REF Yes
REAL(4) REF Yes
REAL(8) REF Yes
REAL(16) 1 REF Yes
COMPLEX(4) REF Yes
COMPLEX(8) REF Yes
COMPLEX(16) 1 REF Yes
Character DESCR 2 Yes
Hollerith REF No
Aggregate 2 REF No
Derived REF No
Array Name:
Numeric REF Yes
Character DESCR 2 Yes
Aggregate 3 REF No
Derived REF No
Procedure Name:
Numeric REF Yes
Character DESCR 2 Yes
1 VMS, U*X
2 On Tru64 UNIX, Linux, and Windows systems, a character argument is passed by address and hidden length.
3 In Compaq Fortran record structures

The %DESCR, %VAL, and %REF functions override related cDEC$ ATTRIBUTE settings.

See Also: CALL, %VAL, %REF