.-,------------------------------------.
V |
>>-MODS----exit=--(--n,m--+----------------+--)-+--------------->
'-,-+---+-+----+-'
'-s-' '-,e-'
>--+-------------+---------------------------------------------><
'-HILEVEL=YES-'
The MODS statement is needed only when DFSORT passes control to
your routines at user exits. The MODS statement associates user routines
with specific DFSORT exits and provides DFSORT with descriptions of
these routines. For details about DFSORT user exits and how user routines
can be used, see Using your own user exit routines.
To use one of the user exits, you substitute its three-character
name (for example, E31) for the word
exit in the MODS statement
format
shown previously in this section. You
can specify any valid user exit, except E32. (E32 can be used only
in a merge operation invoked from a program; its address must be passed
in a parameter list.)
- exit
>>-exit=--(--n,m--+----------------+--)------------------------><
'-,-+---+-+----+-'
'-s-' '-,e-'
The values that follow the exit parameter describe
the user routine. These values are:
- n
- specifies the name of your routine (member name if your routine
is in a library). You can use any valid operating system name for
your routine. This allows you to keep several alternative routines
with different names in the same library.
- m
- specifies the number of bytes of main storage your routine uses.Include
storage obtained (via GETMAIN) by your routine (or, for example, by
OPEN) and the storage required to load the COBOL library subroutines.
- s
- specifies either the name of the DD statement in your DFSORT job
step that defines the library in which your routine is located or
SYSIN if your routine is in the input stream. SYSIN is not valid for
copy processing.
If a value is not specified for s, DFSORT uses
the following search order to find the library in which your routine
is located:
- The libraries identified by the STEPLIB DD statement
- The libraries identified by the JOBLIB DD statement (if there
is no STEPLIB DD statement)
- The link library.
- e
- specifies the linkage editor requirements of your routine or indicates
that your routine is written in COBOL. The following values are allowed:
- N
- specifies that your routine has already been bound
or link-edited and can be used in the DFSORT run without further binding or link-editing. This is the default for
e. N (specified or defaulted) can be overridden by the EXEC PARM parameters
'E15=COB' and 'E35=COB' or by the HILEVEL=YES parameter.
- N64
- specifies that your routine will use a 64-bit exit parameter list,
has already been bound or link-edited and can be used in the DFSORT
run without further binding or link-editing.
Note: N64 is only allowed
when DFSORT is invoked from a program with the 64-bit invocation parameter
list.
- C
- specifies that your E15 or E35 routine is written in COBOL. If
you code C for any other exit, it is ignored, and N is assumed. Your
COBOL-written routine must already have been link-edited. The COBEXIT
option of the OPTION statement specifies the library for the COBOL
exits.
- T
- specifies that your routine must be bound or link-edited
together with other routines to be used in the same phase (for example,
E1n routines) of DFSORT. See Dynamically binding or link-editing user exit routines for additional
information. This value is not valid for copy processing.
- S
- specifies that your routine requires binding
or link-editing but that it must be bound or link-edited
separately from the other routines (for example, E3n routines) to
be used in a particular phase of DFSORT. E11 and E31 exit routines
are the only routines eligible for separate binding
or link-editing. See Dynamically binding or link-editing user exit routines for additional
information. This value is not valid for copy processing.
If you do not specify a value for e, N is assumed.
- HILEVEL=YES
>>-HILEVEL=YES-------------------------------------------------><
specifies that:
- if an E15 routine is identified on the MODS statement, it is written
in COBOL
- if an E35 routine is identified on the MODS statement, it is written
in COBOL.
If you identify an E15 routine and an E35 routine on the MODS
statement, specify HILEVEL=YES only if both routines are written in
COBOL. If you do not identify an E15 or E35 routine on the MODS statement,
HILEVEL=YES is ignored.
Note: COBOL=YES can be used instead of
HILEVEL=YES.
Note: - The s parameter must be the same or omitted for each routine with
N, N64 or C for the e parameter (library concatenation
is allowed). These routines cannot be placed in SYSIN. Each such routine
must be a load module.
- Each routine for which T or S is specified for the e parameter
can be placed in any library or in SYSIN; they do not all have to
be in the same library or SYSIN (but can be). Some routines can even
be in different libraries (or the same library) and the rest can be
in SYSIN. Each such routine, if in a library, can be either an object
deck or a load module; if in SYSIN, it must be an object deck.
- If the same routine is used in both input (that is, E1n routines)
and output (that is, E3n routines) DFSORT program phases, a separate
copy of the routine must be provided for each exit.
- HILEVEL=YES can be used instead of C as the fourth parameter,
to indicate that an E15 or E35 routine is written in COBOL. In this
case, if T is specified as the fourth parameter for E15 or E35, DFSORT
terminates. If you identify an E15 routine and an E35 routine on the
MODS statement, specify HILEVEL=YES only if both routines are written
in COBOL.
- EXEC PARM parameter E15=COB can be used instead of C as the fourth
parameter, to indicate that an E15 is written in COBOL. In this case,
if T is specified as the fourth parameter for E15, DFSORT terminates.
- EXEC PARM parameter E35=COB can be used instead of C as the fourth
parameter, to indicate that an E35 is written in COBOL. In this case,
if T is specified as the fourth parameter for E35, DFSORT terminates.
- If HILEVEL=YES, E15=COB, or E35=COB is used instead of C as the
fourth parameter, to indicate that an exit is written in COBOL, the
fourth parameter for that exit must be specified as N or not specified.
- If a COBOL E15 or E35 is specified for a conventional merge or
tape work data set sort, DFSORT terminates.
- exit=(n,m) can be used to omit both the s and e parameters.
- exit=(n,m,,e) can be used to omit the s parameter, but not the
parameter.
- The s parameter must be specified for a conventional merge or
tape work data set sort, or when S or T is specified for the e parameter.
Default: None; must be specified if you use exit routines.
N is the default for the fourth parameter.
Applicable Functions: See Specification/override of DFSORT options.
For information on user exit routines in SYSIN, see System DD statements.
For details on how to design your routines, refer to Summary of rules for user exit routines.
When you are preparing your MODS statement,remember that DFSORT
must know the amount of main storage your routine needs so that it
can allocate main storage properly for its own use. If you do not
know the exact number of bytes your program requires (including requirements
for system services), make a slightly high estimate. The value of
m in the MODS statement is written the same way whether it is an exact
figure or an estimate: you do not precede the value by E for an estimate.