The SORT statement can be used to sort the records in a file. Note that SORT procedures should not be invoked by multiple threads simultaneously. The following program takes the names of the input and output files from the command line. RELEASE and RETURN statements are used in the input and output procedures, which input records, sort the records, and then output a sorted file.
$SET ANS85 select ifile assign to ipf organization is line sequential file status is ipstat. select sfile assign to "temp.dat". select ofile assign to opf organization is line sequential. fd ifile. 01 irec pic x(80). fd ofile. 01 orec pic x(80). sd sfile. 01 srec pic x(80). working-storage section. 01 ipstat. 03 iskey1 pic x. 03 iskey2 pic x. 01 ipf pic x(20). 01 opf pic x(20). 01 ext pic x(20). 01 clin pic x(132). 01 len pic 9(2) comp-x. 01 a pic 9(2) comp-x value 0. procedure division. accept clin from command-line unstring clin delimited by space into ipf, opf, ext if ext not = space display "too many arguments" end-if. sort sfile on ascending srec input procedure sortin output procedure sortout stop run. sortin section. open input ifile read ifile perform until ipstat not = "00" move irec to srec release srec read ifile end-perform close ifile. sortout section. return sfile at end go to sortout-exit display srec go to sortout. sortout-exit. display "Done".