


The modules of different programs do not have any common global variables. If certain values such as customer number and reservation date are to be passed to the successor program, when branching, they have to be passed via module parameters.
Example:

The parameter transfer for CALL, SWITCH, and SWITCHCALL is only possible when the called module has a declaration of formal parameters in the module header. In the module body, these formal parameters are used as local-dynamic variables of the relevant program.
Example:

The values of the current parameters are assigned to the formal parameters in the successor program. Arbitrary expressions and all kinds of variables, global as well as local, can be used as current parameters.
The assignment of current parameters to the formal parameters does not take place via the name (which can differ) but via the position in the parameter list.
The numbers of current and formal parameters do not have to agree. If no current parameter is to be assigned to the n-th formal parameter, the n-th current parameter is not specified in the call:

Vector slices can also be transferred as current parameters. The precondition for this is that the formal parameter is a vector.

In contrast to SWITCH, the parameters for CALL and SWITCHCALL function as input and output parameters. This becomes apparent when the current parameter is a variable and not an expression. After returning from the routine or form, the variable may have a changed value.

For transferring parameters, the same rules apply for functions as for routines: All parameters have the effect of input and output parameters. Functions communicate exclusively via parameters.
Syntax of formal parameters:



