AUTOAddArg
DFAUTO Subroutine: Passes an argument name and value
and adds the argument to the argument list data structure.
Modules: USE DFAUTO, USE DFWINTY
Syntax
- CALL AUTOAddArg (invoke_args, name,
value [, intent_arg] [, type])
- invoke_args
The argument list data structure. Must be of type INTEGER(4)
on ia32 processors;
INTEGER(8) on ia64 processors.
- name
The argument's name of type CHARACTER*(*).
- value
The argument's value. Must be of type INTEGER(2), INTEGER(4), REAL(4),
REAL(8), LOGICAL(2), LOGICAL(4), CHARACTER*(*), or a single dimension array
of one of these types. Can also be of type VARIANT, which is defined in the DFWINTY module.
- intent_arg
Indicates the intended use of the argument by the called method.
Must be one of the following constants defined in the DFAUTO module:
- AUTO_ARG_IN: The argument's value is read by the called
method, but not written. This is the default value if intent_arg is not
specified.
- AUTO_ARG_OUT: The argument's value is written by the called
method, but not read.
- AUTO_ARG_INOUT: The argument's value is read and written by the called
method.
When the value of intent_arg is
AUTO_ARG_OUT or AUTO_ARG_INOUT, the variable used
in the value parameter should be declared using the
VOLATILE attribute.
This is because the value of the variable will be changed by the subsequent
call to AUTOInvoke. The compiler's global optimizations
need to know that the value can change unexpectedly.
- type
The variant type of the argument. Must be one of the following
constants defined in the DFWINTY module:
VARIANT Type |
Value Type |
VT_I2 |
INTEGER(2) |
VT_I4 |
INTEGER(4) |
VT_R4 |
REAL(4) |
VT_R8 |
REAL(8) |
VT_CY |
REAL(8) |
VT_DATE |
REAL(8) |
VT_BSTR |
CHARACTER*(*) |
VT_DISPATCH |
INTEGER(4) |
VT_ERROR |
INTEGER(4) |
VT_BOOL |
LOGICAL(2) |
VT_VARIANT |
TYPE(VARIANT) |
VT_UNKNOWN |
INTEGER(4) |