Specifying runtime options in the EXEC statement

If the first program in your application is Language Environment-conforming or was compiled by a pre-Language Environment compiler supported by Language Environment, you can pass runtime options by using the PARM= parameter in your JCL. The general form for specifying runtime options in the PARM parameter of the EXEC statement is:
//[stepname] EXEC PGM=program_name,
//           PARM='[runtime options/][program parameters]'
For example, if you want to generate a storage report and runtime options report for program PROGRAM1, specify the following:
//GO1   EXEC PGM=PROGRAM1,PARM='RPTSTG(ON),RPTOPTS(ON)/'

The runtime options that are passed to the main routine must be followed by a slash (/) to separate them from program parameters. For HLL considerations to keep in mind when specifying runtime options, see Specifying runtime options and program arguments. The EXECOPS option for C and C++ is used to specify that runtime options passed as parameters at execution time are to be processed by Language Environment. The option NOEXECOPS specifies that runtime options are not to be processed from execution parameters and are to be treated as program parameters.

For z/OS XL C/C++, a user can specify either EXECOPS or NOEXECOPS in a #pragma runopts directive or as a compiler option. EXECOPS is the default for z/OS XL C/C++. When EXECOPS is in effect, you can pass runtime options in the EXEC statement in your JCL.

For Enterprise PL/I for z/OS and PL/I for MVS & VM, runtime options can be passed in your JCL if a PROCEDURE statement includes the OPTIONS(MAIN) clause. If the PROCEDURE statement specifies OPTIONS(MAIN NOEXECOPS), then runtime options cannot be passed in your JCL. Note that no PL/I compiler has an NOEXECOPS or EXECOPS compiler option, but they have the equivalent function by the specification of NOEXECOPS along with OPTIONS(MAIN).