home *** CD-ROM | disk | FTP | other *** search
- 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
-