This should resolve your problem, here I am assuming that your file is 80 bytes in length and your input data fills for first 15 bytes in each record
//STEP010 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
JAMES BURN
PROGRAMMER
JACK TINGLEY
ACCOUNTANT
/*
//SORTOUT DD DSN=OUTPUT.DATASET1,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,
// SPACE=(CYL,(2,1),RLSE),
// DCB=(RECFM=FB,LRECL=80)
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL OUTREC=(1,15,SEQNUM,5,ZD,60X)
//*
//STEP020 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=OUTPUT.DATASET1,DISP=SHR
//F1 DD DSN=OUTPUT.DATASET2,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,
// SPACE=(CYL,(2,1),RLSE),
// DCB=(BLKSIZE=0,RECFM=FB,LRECL=80)
//F2 DD DSN=OUTPUT.DATASET3,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,
// SPACE=(CYL,(2,1),RLSE),
// DCB=(BLKSIZE=0,RECFM=FB,LRECL=80)
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL FNAMES=F1,INCLUDE=(20,1,CH,EQ,C'1',OR,20,1,CH,EQ,C'3',OR,
20,1,CH,EQ,C'5',OR,20,1,CH,EQ,C'7',OR,
20,1,CH,EQ,C'9'),
OUTREC=(1,15,SEQNUM,5,ZD,60X)
OUTFIL FNAMES=F2,INCLUDE=(20,1,CH,EQ,C'2',OR,20,1,CH,EQ,C'4',OR,
20,1,CH,EQ,C'6',OR,20,1,CH,EQ,C'8',OR,
20,1,CH,EQ,C'0'),
OUTREC=(1,15,SEQNUM,5,ZD,60X)
//*
//STEP030 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTJNF1 DD DSN=OUTPUT.DATASET2,DISP=SHR
//SORTJNF2 DD DSN=OUTPUT.DATASET3,DISP=SHR
//F4 DD DSN=OUTPUT.DATASET4,
// DISP=(NEW,CATLG,DELETE),
// UNIT=XXXXX,
// SPACE=(CYL,(2,1),RLSE),
// DCB=(BLKSIZE=0,RECFM=FB,LRECL=80)
//SYSIN DD *
JOINKEYS FILE=F1,FIELDS=(16,5,A)
JOINKEYS FILE=F2,FIELDS=(16,5,A)
REFORMAT FIELDS=(F1:1,15,F2:1,15)
SORT FIELDS=COPY
OUTFIL FNAMES=F4,BUILD=(1,30,50X)
//*