Changing one module per step (MVS)

Under MVS™, the example in Figure 1 produces one executable program. Conflicting names in USER.INPUT.LOAD(MEM1) are replaced; USER.RESULT.LOAD(MEM1CHG) is the resulting executable program.

Figure 1. Changing conflicting names in an executable program under MVS
//CHGNAM     EXEC PROC=AFHWN,PGMLIB=USER.RESULT.LOAD,GONAME=MEM1CHG
//USERINP    DD   DSNAME=USER.INPUT.LOAD,DISP=SHR
//LKED.SYSIN DD   *
 INCLUDE SCEESAMP(AFHWNCH)
 INCLUDE USERINP(MEM1)
/*

The example in Figure 2 produces several executable programs. Conflicting names in USER.INPUT.LOAD(MEM1, MEM2, and MEM3) are replaced; the resulting executable programs are USER.RESULT.LOAD(MEM1CHG, MEM2CHG, and MEM3CHG).

Figure 2. Changing conflicting names in several executable programs under MVS
//CHGNAM1    EXEC PROC=AFHWN,PGMLIB=USER.RESULT.LOAD,GOPGM=MEM1CHG
//USERINP    DD   DSNAME=USER.INPUT.LOAD,DISP=SHR
//LKED.SYSIN DD   *
 INCLUDE SCEESAMP(AFHWNCH)
 INCLUDE USERINP(MEM1)
/*
//CHGNAM2    EXEC PROC=AFHWN,PGMLIB=USER.RESULT.LOAD,GOPGM=MEM2CHG
//USERINP    DD   DSNAME=USER.INPUT.LOAD,DISP=SHR
//LKED.SYSIN DD   *
 INCLUDE SCEESAMP(AFHWNCH)
 INCLUDE USERINP(MEM2)
/*
//CHGNAM3    EXEC PROC=AFHWN,PGMLIB=USER.RESULT.LOAD,GOPGM=MEM3CHG
//USERINP    DD   DSNAME=USER.INPUT.LOAD,DISP=SHR
//LKED.SYSIN DD   *
 INCLUDE SCEESAMP(AFHWNCH)
 INCLUDE USERINP(MEM3)
/*