Ok, here is a SyncSort for z/OS 1.3.2 job that will produce the requested output:
//SORT EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
9 0 0 0
9 618.48 CAD 0 0
9 57.22 CAD 0 0
9V1046 85.58 CAD 0 0
9 156.79 CAD 0 0
9 144.48 CAD 0 0
9 202.6 CAD 202.6 PDR 0
9 24.71 CAD 0 0
944021 14930.49 USD 0 0
97802 300 USD 0 0
//SORTOUT DD SYSOUT=*
//SYSIN DD *
INREC IFTHEN=(WHEN=INIT,
BUILD=(1,6,7,10,JFY=(SHIFT=RIGHT),17,3,20,10,JFY=(SHIFT=RIGHT),
30,6,36,10,JFY=(SHIFT=RIGHT))),
IFTHEN=(WHEN=(16,1,CH,EQ,C'.'),OVERLAY=(7:9,8,C'00'),HIT=NEXT),
IFTHEN=(WHEN=(15,1,CH,EQ,C'.'),OVERLAY=(7:8,9,C'0'),HIT=NEXT),
IFTHEN=(WHEN=(14,1,CH,NE,C'.'),OVERLAY=(7:10,7,C'.00'),HIT=NEXT),
IFTHEN=(WHEN=(29,1,CH,EQ,C'.'),OVERLAY=(20:22,8,C'00'),HIT=NEXT),
IFTHEN=(WHEN=(28,1,CH,EQ,C'.'),OVERLAY=(20:21,9,C'0'),HIT=NEXT),
IFTHEN=(WHEN=(27,1,CH,NE,C'.'),OVERLAY=(20:23,7,C'.00'),HIT=NEXT),
IFTHEN=(WHEN=(45,1,CH,EQ,C'.'),OVERLAY=(36:38,8,C'00'),HIT=NEXT),
IFTHEN=(WHEN=(44,1,CH,EQ,C'.'),OVERLAY=(36:37,9,C'0'),HIT=NEXT),
IFTHEN=(WHEN=(43,1,CH,NE,C'.'),OVERLAY=(36:39,7,C'.00'))
SORT FIELDS=COPY
OUTREC IFTHEN=(WHEN=INIT,
FINDREP=(INOUT=(C' ',C'0'),STARTPOS=7,ENDPOS=16)),
IFTHEN=(WHEN=INIT,FINDREP=(INOUT=(C' ',C'0'),STARTPOS=20,ENDPOS=29)),
IFTHEN=(WHEN=INIT,FINDREP=(INOUT=(C' ',C'0'),STARTPOS=36,ENDPOS=45))
/*
There may be another way of accomplishing this task, but this is what I came up with on the fly. Give it a shot and let us know if you have any questions.
By the way, this is the output that was produced when I submitted the above application: