Copyright Digital Equipment Corp. All rights reserved.

REFERENCE_and_VALUE

 Specify how a dummy argument is to be passed.

 REFERENCE specifies a dummy argument's memory location is to be
 passed instead of the argument's value.

 VALUE specifies a dummy argument's value is to be passed instead of
 the argument's memory location.

 When a dummy argument has the VALUE property, the actual argument
 passed to it can be of a different type.  If necessary, type
 conversion is performed before the subprogram is called.

 When a complex (KIND=4, KIND=8, or KIND=16) argument is passed by
 value, two floating-point arguments (one containing the real part,
 the other containing the imaginary part) are passed by immediate
 value.

 Character values, substrings, assumed-size arrays, and adjustable
 arrays cannot be passed by value.

 If REFERENCE (only) is specified for a character argument, the
 string is passed but the length is not passed. 

 If REFERENCE is specified for a character argument, and C (or
 STDCALL) has been specified for the routine, the string is passed
 but the length is not passed.  This is true even if REFERENCE is
 also specified for the routine.

 If REFERENCE and C (or STDCALL) are specified for a routine, but
 REFERENCE has not been specified for the argument, the string is
 passed with the length.

 VALUE is the default if the C or STDCALL property is specified in
 the subprogram definition.