z/OS DFSORT Application Programming Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


MODS control statement

z/OS DFSORT Application Programming Guide
SC23-6878-00

Read syntax diagramSkip visual syntax diagram
         .-,------------------------------------.   
         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
Read syntax diagramSkip visual syntax diagram
>>-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:
  1. The libraries identified by the STEPLIB DD statement
  2. The libraries identified by the JOBLIB DD statement (if there is no STEPLIB DD statement)
  3. 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
Read syntax diagramSkip visual syntax diagram
>>-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:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. If a COBOL E15 or E35 is specified for a conventional merge or tape work data set sort, DFSORT terminates.
  9. exit=(n,m) can be used to omit both the s and e parameters.
  10. exit=(n,m,,e) can be used to omit the s parameter, but not the parameter.
  11. 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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014