SUBROUTINE UTIL(IOPTN,ITEST,IDATA,LBLNK, + ISTRT,ISTOP,LMOVE,IMOVE,IGOTO) DIMENSION LBLNK(32) DIMENSION LMOVE(32) C C 1) ITEST AND I/P C 2) INSERT DATA C 3) MOVE DATA FROM ARRAYS C 4) LOOK FOR MATCH DATA STATEMENTS C 5) LOOK AND BLANK C 6) CONVERT I5 TO 5I5 ARRAY C 7) LOOK FOR GREATER C 8) ARRAY ADD C 9) SWAP ARRAYS C 10) REVERSE ARRAYS C ITYPE = IOPTN ISAVE = IMOVE NDATA = IDATA IDIVD = 10 ** (ISTOP-ISTRT) DO 900 IGOTO = ISTRT,ISTOP IF (LBLNK(IGOTO) -ITEST) 100,200,300 100 GOTO (999,800,400,900,900,700,900,500,400,400), ITYPE C 1 2 3 4 5 6 7 8 9 10 200 GOTO (800,800,400,999,800,700,900,500,400,400), ITYPE C 1 2 3 4 5 6 7 8 9 10 300 GOTO (999,800,400,900,900,700,999,500,400,400), ITYPE C 1 2 3 4 5 6 7 8 9 10 400 NDATA = LMOVE(ISAVE) IF (ITYPE - 9) 410,405,405 405 LMOVE(ISAVE) = LBLNK(IGOTO) 410 ISAVE = ISAVE + 1 - (2 * (ITYPE/10)) GOTO 800 500 NDATA = LBLNK(IGOTO) + LMOVE(ISAVE) GOTO 410 700 NDATA = ISAVE/IDIVD ISAVE = ISAVE - ISAVE/IDIVD * IDIVD IDIVD = IDIVD/10 800 LBLNK(IGOTO) = NDATA 900 CONTINUE 999 RETURN END