Some external routines process and reassign the value of an existing variable; such a routine will use the same variable for both input and output. GT.M thus allows arguments to the external call function to serve as both input and output for an external routine. If an external routine makes use of this feature, the external call table entry must contain an INPUT line and an OUTPUT line that reference the same POSITION. When INPUT and OUTPUT lines describe the same POSITION, external call processing enforces the following constraints:
INPUT and OUTPUT TYPE must match.
INPUT and OUTPUT MECHANISM must match.
no TYPE=STRING.
no [QUALIFIER=]PREALLOCATE in OUTPUT.
no [QUALIFIER=]OPTIONAL or OPTIONAL0 in INPUT.
INPUT arguments must not overlap.
OUTPUT arguments must not overlap.