routine-name Specifies the name of the routine. Routine names must be unique within a package. Furthermore, routine names may not conflict with any token names used by LSE for any language using the package. parameter, . . . Specifies the names of the parameters of the routine. These parameters must be defined (using the DEFINE PARAMETER command) prior to expanding an instance of a call on this routine. However, the parameters do not need to be defined prior to the DEFINE ROUTINE command. If you omit this qualifier, then the routine is presumed to have no parameters. The following qualifiers are position-sensitive; they may be used only with the list of parameters to the routine. /BY_VALUE Indicates that the parameter is passed by value. /BY_REFERENCE Indicates that the parameter is passed by address. /BY_DESCRIPTOR Indicates that the address of the parameter descriptor is passed. /[NO]OPTIONAL Specifies whether the parameter is required or optional. The default is /NOOPTIONAL. The /BY_VALUE, /BY_REFERENCE, and /BY_DESCRIPTOR qualifiers are mutually exclusive. These qualifiers are used primarily for languages, such as COBOL, that require explicit specification of passing mechanisms for routine calls.