PROGRAM FLECS 00068 INTEGER ACSEQ , ACTION, AELSE , AFSEQ , AGCONT, AGGOTO 00147 INTEGER AGRET , AGSTNO, AMSEQ ,ASSEQ , ATSEQ 00148 INTEGER BLN , NOCALL, CHC , CHSPAC, CHZERO 00149 INTEGER CINLIN !25-JAN-80 00150 INTEGER CLASS , CONTNO, DUMMY , ELSNO , ENDNO , ENTNO 00151 INTEGER ERRCL , ERROR , ERRSTK, ERSTOP, EXTYPE, FLXNO 00152 INTEGER FORTCL, GGOTON, GOTONO, GSTNO , HASH , HOLDNO 00153 INTEGER I , ITEMP , J , L , LEVEL , LINENO 00154 INTEGER LL , LP , LR , LT 00155 INTEGER LISTCL, LOOPNO, LSTLEV, LWIDTH, MAJCNT 00156 INTEGER MAX , MAXSTK, MINCNT, MLINE , NCHPWD, NEWNO 00157 INTEGER NEXTNO, NUNITS, NXIFNO, OFFSET, OFFST2, P 00158 INTEGER PARAM1, PARAM2, PARAM3, PARAM4, PDUMMY, PENT 00159 INTEGER PARAM5 !25-JAN-80 00160 INTEGER PRIME , PTABLE, Q , QM , QP , READ 00161 INTEGER REFNO , RETNO , RETRY , S , SAFETY, SASSN1 00162 INTEGER SASSN2, SB , SB5I1 , SB6 , SB6I , SB7 , SBGOTO 00163 INTEGER SCONT 00164 INTEGER SCOMMA, SCP , SDASH , SDOST , SDUM , SEEDNO, SEQ 00165 INTEGER SETUP , SFLX , SFORCE, SGOTO , SGOTOI, SGUP1 00166 INTEGER SGOTOP 00167 INTEGER SGUP2 , SHOLD , SIF , SIFP , SIFPN , SLIST 00168 INTEGER SNE , SOURCE, SPB , SPGOTO, SPINV , SPUTGO 00169 INTEGER SRP , SRTN , SSPACR, SST , SSTMAX, SSTOP 00170 INTEGER SRPCI 00171 INTEGER STACK , STNO , SVER , TCEXP , TCOND , TDO 00172 INTEGER TELSE , TEND , TESTNO, TEXEC , TFIN , TFORT 00173 INTEGER TIF , TINVOK, TMAX , TOP , TOPNO , TOPTYP 00174 INTEGER TRUNTL, TRWHIL, TSELCT, TTO , TUNLES, TUNTIL 00175 INTEGER TWHEN , TWHILE, UDO , UEXP , UFORT , ULEN 00176 INTEGER UOWSE , UPINV , USTART, UTYPE , WWIDTH 00177 LOGICAL COGOTO, FAKE , LONG 00184 LOGICAL DONE , ENDFIL, ENDPGM, ERLST , FIRST , FOUND , INSERT 00185 LOGICAL NOPGM , NOTFLG, PASS , SAVED ,SHORT , STREQ , STRLT 00186 DIMENSION UTYPE(3), USTART(3), ULEN(3) 00194 DIMENSION STACK(2000) 00197 DIMENSION ERRSTK(5) 00200 COMMON BLN , CLASS , DONE , ENDFIL, ENDPGM, ERLST 00209 COMMON ERROR , ERRSTK, ERSTOP, EXTYPE, FIRST , FLXNO 00210 COMMON FOUND , HOLDNO, LEVEL , LINENO, LSTLEV, MAJCNT 00211 COMMON MINCNT, MLINE , NOPGM , NUNITS, PASS , PTABLE, QP 00212 COMMON REFNO , SAVED , SFLX , SHOLD , SLIST , SOURCE 00213 COMMON SPINV , SPUTGO, SST , STACK , TOP , ULEN 00214 COMMON USTART, UTYPE , WWIDTH 00215 COMMON /PARAM/ PARAM1, PARAM2, PARAM3, PARAM4, PARAM5 !25-JAN-80 00300 DIMENSION SFLX (51) 00313 DIMENSION SHOLD (51) 00315 DIMENSION SLIST (101) 00317 DIMENSION SPINV (41) 00319 DIMENSION SPUTGO (11) 00321 DIMENSION SST (101) 00323 DIMENSION SASSN1 (8) 00329 DIMENSION SASSN2 (4) 00332 DIMENSION SB (2) 00335 DIMENSION SB5I1 (4) 00338 DIMENSION SB6 (4) 00341 DIMENSION SB7 (5) 00344 DIMENSION SB6I (5) 00347 DIMENSION SBGOTO (5) 00350 DIMENSION SCOMMA (2) 00353 DIMENSION SCONT (5) 00356 DIMENSION SCP (2) 00359 DIMENSION SDOST (6) 00362 DIMENSION SDASH (21) 00365 DIMENSION SDUM (9) 00370 DIMENSION SEQ (2) 00373 DIMENSION SFORCE (8) 00376 DIMENSION SGOTO (7) 00379 DIMENSION SGOTOI (8) 00382 DIMENSION SGOTOP (8) 00385 DIMENSION SGUP1 (30) 00388 DIMENSION SGUP2 (23) 00394 DIMENSION SIF (5) 00399 DIMENSION SIFP (6) 00402 DIMENSION SIFPN (8) 00405 DIMENSION SNE (3) 00408 DIMENSION SPB (2) 00411 DIMENSION SPGOTO (5) 00414 DIMENSION SRP (2) 00417 DIMENSION SRPCI (3) 00420 DIMENSION SRTN (7) 00423 DIMENSION SSPACR (3) 00426 DIMENSION SSTOP (9) 00429 DIMENSION SVER (12) 00432 DATA FORTCL /1/, LISTCL /2/, ERRCL /3/ 00441 DATA ACSEQ/1/, AELSE/2/, AFSEQ/3/, AGCONT/4/, AGGOTO/5/ 00442 DATA AGSTNO/6/, AMSEQ/7/, AGRET/8/, ASSEQ/9/, ATSEQ/10/ 00443 DATA UEXP/1/, UFORT/2/, UOWSE/3/, UPINV/4/, UDO/5/ 00444 DATA TCEXP/1/, TELSE/2/, TEND/3/, TEXEC/4/, TFIN/5/, TTO/6/ 00445 DATA TCOND/1/, TDO/2/, TFORT/3/, TIF/4/, TINVOK/5/, TRUNTL/6/ 00446 DATA TRWHIL/7/, TSELCT/8/, TUNLES/9/, TUNTIL/10/, TWHEN/11/ 00447 DATA TWHILE/12/ 00448 DATA SETUP /1/, RETRY /2/, READ /3/ 00449 DATA CHC /67/ 00450 DATA CINLIN /33/ !25-JAN-80 00451 DATA LWIDTH /132/ 00452 DATA MAXSTK /2000/ 00453 DATA NCHPWD /2/ 00454 DATA PRIME /53/ 00455 DATA SAFETY /35/ 00456 DATA SEEDNO /32760/ 00457 DATA LONG /.FALSE./ 00458 DATA SHORT /.TRUE./ 00459 DATA FAKE /.FALSE./ 00460 DATA COGOTO /.FALSE./ 00461 DATA CHSPAC /32/ 00462 DATA CHZERO /48/ 00463 DATA SSTMAX /200/ 00464 DATA SASSN1 / 13, 2H , 2H , 2H , 2HAS, 2HSI, 2HGN, 1H / 00465 DATA SASSN2 / 5, 2H T, 2HO , 1HI/ 00466 DATA SB / 1, 1H / 00467 DATA SB5I1 / 6, 2H , 2H , 2H 1/ 00468 DATA SB6 / 6, 2H , 2H , 2H / 00469 DATA SB7 / 7, 2H , 2H , 2H , 1H / 00470 DATA SB6I / 7, 2H , 2H , 2H , 1HI/ 00471 DATA SBGOTO / 7, 2H G, 2HO , 2HTO, 1H / 00472 DATA SCOMMA / 1, 1H,/ 00473 DATA SCONT / 8, 2HCO, 2HNT, 2HIN, 2HUE/ 00474 DATA SCP / 2, 2H,(/ 00475 DATA SDOST / 9, 2H , 2H , 2H , 2HDO, 1H / 00476 DATA SDASH / 40, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H-- 00477 1 , 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H-- 00478 1 , 2H--, 2H--, 2H--, 2H--/ 00479 DATA SDUM / 15, 2HDU, 2HMM, 2HY-, 2HPR, 2HOC, 2HED, 2HUR, 1HE/ 00480 DATA SEQ / 1, 1H=/ 00481 DATA SFORCE / 14, 2H , 2H , 2H , 2HCO, 2HNT, 2HIN, 2HUE/ 00482 DATA SGOTO / 12, 2H , 2H , 2H , 2HGO, 2H T, 2HO / 00483 DATA SGOTOI / 13, 2H , 2H , 2H , 2HGO, 2H T, 2HO , 1HI/ 00484 DATA SGOTOP / 13, 2H , 2H , 2H , 2HGO, 2H T, 2HO , 1H(/ 00485 DATA SGUP1 / 57, 2H**, 2H**, 2H* , 2HTR, 2HAN, 2HSL, 2HAT, 2HOR 00486 1 , 2H H, 2HAS, 2H U, 2HSE, 2HD , 2HUP, 2H I, 2HTS 00487 1 , 2H A, 2HLL, 2HOT, 2HED, 2H S, 2HPA, 2HCE, 2H F 00488 1 , 2HOR, 2H T, 2HAB, 2HLE, 1HS/ 00489 DATA SGUP2 / 44, 2H**, 2H**, 2H* , 2HTR, 2HAN, 2HSL, 2HAT, 2HIO 00490 1 , 2HN , 2HMU, 2HST, 2H T, 2HER, 2HMI, 2HNA, 2HTE 00491 1 , 2H I, 2HMM, 2HED, 2HIA, 2HTE, 2HLY/ 00492 DATA SIF / 8, 2H , 2H , 2H , 2HIF/ 00493 DATA SIFP / 9, 2H , 2H , 2H , 2HIF, 1H(/ 00494 DATA SIFPN / 14, 2H , 2H , 2H , 2HIF, 2H(., 2HNO, 2HT./ 00495 DATA SNE / 4, 2H.N, 2HE./ 00496 DATA SPB / 2, 2H) / 00497 DATA SPGOTO / 8, 2H) , 2HGO, 2H T, 2HO / 00498 DATA SRP / 1, 1H)/ 00499 DATA SRPCI / 4, 2H),, 2H I/ 00500 DATA SRTN / 12, 2H , 2H , 2H , 2HRE, 2HTU, 2HRN/ 00501 DATA SSPACR / 3, 2H. , 1H / 00502 DATA SSTOP / 15, 2H , 2H , 2H , 2HCA, 2HLL, 2H E, 2HXI, 1HT/ 00503 DATA SVER / 21, 2H(F, 2HLE, 2HCS, 2H V, 2HER, 2HSI, 2HON, 2H 2 00504 1 , 2H2., 2H38, 1H)/ 00505 ASSIGN 32757 TO I32758 00511 GO TO 32758 00511 32757 GO TO 32755 00512 32756 IF(DONE) GO TO 32754 00512 32755 NOCALL=NOCALL+1 !ONE MORE CALL MADE TO OPENF 00513 CALL OPENF(NOCALL,DONE,SVER) !GET CMD LINE, OPEN FTN,FLL,FLX 00514 IF(DONE) GO TO 32753 00515 ENDFIL=.FALSE. 00516 MINCNT=0 !NUMBER OF WARNINGS 00517 MAJCNT=0 !NUMBER OF ERRORS 00518 LINENO=0 !INITIALIZE LINE # FOR FLX FILE 00519 GO TO 32751 00520 32752 IF(ENDFIL) GO TO 32750 00520 32751 ASSIGN 32748 TO I32749 00521 GO TO 32749 00521 32748 ASSIGN 32746 TO I32747 00522 GO TO 32747 00522 32746 GO TO 32752 00523 32750 CALL CLOSEF(MINCNT,MAJCNT) !CLOSE FLX,FTN,FLL FILES 00524 32753 GO TO 32756 00526 32754 CALL EXFLE !MAO, 30-APR-80 00527 32745 CONTINUE 00528 ASSIGN 32743 TO I32744 00529 GO TO 32744 00529 32743 ASSIGN 32741 TO I32742 00530 GO TO 32742 00530 32741 IF(.NOT.(UTYPE(1).EQ.UEXP)) GO TO 32739 00531 GOTONO=NEWNO(0) 00532 STACK(TOP-2)=GOTONO 00533 ASSIGN 32737 TO I32738 00534 GO TO 32738 00534 32737 GO TO 32740 00535 32739 STACK(TOP-2)=0 !OTHERWISE CLAUSE 00536 32740 ASSIGN 32735 TO I32736 00537 GO TO 32736 00537 32735 GO TO I32745 00538 32734 CONTINUE 00539 TOP=TOP+4 00544 STACK(TOP)=ACSEQ 00545 STACK(TOP-1)=LINENO 00546 STACK(TOP-2)=0 00547 STACK(TOP-3)=0 00548 LEVEL=LEVEL+1 00549 ASSIGN 32733 TO I32742 00550 GO TO 32742 00550 32733 GO TO I32734 00551 32732 CONTINUE 00552 CONTNO=NEWNO(0) 00553 ASSIGN 32730 TO I32731 00554 GO TO 32731 00554 32730 CALL CPYSTR(SST,SDOST) 00555 CALL CATNUM(SST,CONTNO) 00556 CALL CATSTR(SST,SB) 00557 CALL CATSUB(SST,SFLX,USTART(1)+1,ULEN(1)-2) 00558 STNO=FLXNO 00559 FLXNO=0 00560 ASSIGN 32728 TO I32729 00561 GO TO 32729 00561 32728 ASSIGN 32727 TO I32736 00562 GO TO 32736 00562 32727 GO TO I32732 00563 32726 CONTINUE 00564 TOP=TOP-2 00565 ASSIGN 32725 TO I32742 00566 GO TO 32742 00566 32725 IF(.NOT.(NUNITS.EQ.1)) GO TO 32723 00567 IF(.NOT.(UTYPE(1).EQ.UPINV)) GO TO 32721 00568 ASSIGN 32719 TO I32720 00568 GO TO 32720 00568 32719 GO TO 32722 00568 32721 CALL CPYSUB(SST,SFLX,USTART(1),ULEN(1)) 00570 IF(STREQ(SST,SCONT)) GO TO 32718 00571 ASSIGN 32716 TO I32717 00571 GO TO 32717 00571 32716 CONTINUE 00571 32718 CONTINUE 00572 32722 GO TO 32724 00573 32723 ASSIGN 32714 TO I32715 00574 GO TO 32715 00574 32714 CONTINUE 00574 32724 GO TO I32726 00575 32713 CONTINUE 00576 ASSIGN 32711 TO I32712 00577 GO TO 32712 00577 32711 ASSIGN 32709 TO I32710 00579 GO TO 32710 00579 32709 IF (ENDFIL) ERROR=25 00580 ENDPGM=.TRUE. 00581 GO TO I32713 00582 32708 CONTINUE 00583 IF((TFORT).NE.(EXTYPE)) GO TO 32706 00585 ASSIGN 32705 TO I32710 00585 GO TO 32710 00585 32705 GO TO 32707 00586 32706 IF((TIF).NE.(EXTYPE)) GO TO 32704 00586 ASSIGN 32702 TO I32703 00586 GO TO 32703 00586 32702 GO TO 32707 00587 32704 IF((TUNLES).NE.(EXTYPE)) GO TO 32701 00587 ASSIGN 32699 TO I32700 00587 GO TO 32700 00587 32699 GO TO 32707 00588 32701 IF((TWHEN).NE.(EXTYPE)) GO TO 32698 00588 ASSIGN 32696 TO I32697 00588 GO TO 32697 00588 32696 GO TO 32707 00589 32698 IF((TWHILE).NE.(EXTYPE)) GO TO 32695 00589 ASSIGN 32693 TO I32694 00589 GO TO 32694 00589 32693 GO TO 32707 00590 32695 IF((TUNTIL).NE.(EXTYPE)) GO TO 32692 00590 ASSIGN 32690 TO I32691 00590 GO TO 32691 00590 32690 GO TO 32707 00591 32692 IF((TRWHIL).NE.(EXTYPE)) GO TO 32689 00591 ASSIGN 32687 TO I32688 00591 GO TO 32688 00591 32687 GO TO 32707 00592 32689 IF((TRUNTL).NE.(EXTYPE)) GO TO 32686 00592 ASSIGN 32684 TO I32685 00592 GO TO 32685 00592 32684 GO TO 32707 00593 32686 IF((TINVOK).NE.(EXTYPE)) GO TO 32683 00593 ASSIGN 32682 TO I32720 00593 GO TO 32720 00593 32682 GO TO 32707 00594 32683 IF((TCOND).NE.(EXTYPE)) GO TO 32681 00594 ASSIGN 32680 TO I32734 00594 GO TO 32734 00594 32680 GO TO 32707 00595 32681 IF((TSELCT).NE.(EXTYPE)) GO TO 32679 00595 ASSIGN 32677 TO I32678 00595 GO TO 32678 00595 32677 GO TO 32707 00596 32679 IF((TDO).NE.(EXTYPE)) GO TO 32676 00596 ASSIGN 32675 TO I32732 00596 GO TO 32732 00596 32675 CONTINUE 00597 32676 CONTINUE 00597 32707 GO TO I32708 00598 32717 CONTINUE 00599 STNO=FLXNO !IF STMNT # ON FLX LINE, PUT IT ON THIS LINE 00600 CALL CPYSTR(SST,SB6) !PUT IN 6 BLANKS 00601 IF(.NOT.(UTYPE(1).EQ.UFORT)) GO TO 32673 00602 J=1 00602 GO TO 32674 00602 32673 J=2 00603 32674 CALL CATSUB(SST,SFLX,USTART(J),ULEN(J)) !ADD ON FORTRAN LINE 00604 ASSIGN 32672 TO I32729 00605 GO TO 32729 00605 32672 GO TO I32717 00606 32703 CONTINUE 00607 IF(.NOT.(NUNITS.EQ.2.AND.UTYPE(2).EQ.UFORT)) GO TO 32670 00608 ASSIGN 32669 TO I32710 00608 GO TO 32710 00608 32669 GO TO 32671 00608 32670 ASSIGN 32667 TO I32668 00609 GO TO 32668 00609 32667 CONTINUE 00609 32671 GO TO I32703 00610 32720 CONTINUE 00611 ASSIGN 32665 TO I32666 00612 GO TO 32666 00612 32665 ENTNO=STACK(PENT+1) !START OF PROCEDURE STMNT # 00613 RETNO=NEWNO(0) !WHERE TO RETURN FROM THIS CALL 00614 MAX=MAX-(1+OFFSET) 00615 STACK(MAX+1)=STACK(PENT+3) 00616 STACK(PENT+3)=MAX+1 00617 STACK(MAX+2)=LINENO 00618 IF (LONG.OR.COGOTO) STACK(MAX+3)=RETNO 00619 IF(.NOT.(COGOTO)) GO TO 32663 00620 STACK(PENT-2)=STACK(PENT-2)+1 00621 CALL CPYSTR(SST,SB6I) 00622 CALL CATNUM(SST,ENTNO) 00623 CALL CATSTR(SST,SEQ) 00624 CALL CATNUM(SST,STACK(PENT-2)) 00625 GO TO 32664 00626 32663 CALL CPYSTR(SST,SASSN1) 00628 CALL CATNUM(SST,RETNO) 00629 CALL CATSTR(SST,SASSN2) 00630 CALL CATNUM(SST,ENTNO) !ASSIGN 'RETNO' TO I'ENTNO 00631 32664 STNO=FLXNO 00633 ASSIGN 32662 TO I32729 00634 GO TO 32729 00634 32662 GOTONO=ENTNO 00635 ASSIGN 32660 TO I32661 00636 GO TO 32661 00636 32660 NEXTNO=RETNO !NEXT STMNT #=RETURN PLACE FROM PROCEDURE 00637 GO TO I32720 00638 32685 CONTINUE 00639 NOTFLG=.FALSE. 00640 ASSIGN 32659 TO I32688 00641 GO TO 32688 00641 32659 GO TO I32685 00642 32688 CONTINUE 00643 ASSIGN 32658 TO I32742 00644 GO TO 32742 00644 32658 TESTNO=NEWNO(0) !# ON IF(.NOT. 00645 TOPNO=NEWNO(0) !# AT TOP OF SCOPE 00646 ENDNO=NEWNO(0) !# PAST END OF LOOP 00647 GOTONO=TOPNO 00648 ASSIGN 32657 TO I32661 00649 GO TO 32661 00649 32657 STNO=TESTNO 00650 GOTONO=ENDNO 00651 ASSIGN 32656 TO I32738 00652 GO TO 32738 00652 32656 GSTNO=ENDNO 00653 ASSIGN 32654 TO I32655 00654 GO TO 32655 00654 32654 GGOTON=TESTNO 00655 ASSIGN 32652 TO I32653 00656 GO TO 32653 00656 32652 NEXTNO=TOPNO !NEXT STMNT #=TOPNO 00657 ASSIGN 32651 TO I32736 00658 GO TO 32736 00658 32651 GO TO I32688 00659 32678 CONTINUE 00660 ASSIGN 32650 TO I32742 00661 GO TO 32742 00661 32650 LEVEL=LEVEL+1 00662 L=(ULEN(1)-1)/NCHPWD+6 !PREPARE TO STORE EXPRESSION ON STACK 00663 TOP=TOP+L+1 00664 IF(.NOT.(TOP+SAFETY.LT.MAX)) GO TO 32648 00665 STACK(TOP)=ASSEQ 00666 STACK(TOP-1)=LINENO 00667 STACK(TOP-2)=0 00668 STACK(TOP-3)=0 00669 STACK(TOP-4)=L 00670 STACK(TOP-L)=0 00671 CALL CATSUB(STACK(TOP-L),SFLX,USTART(1),ULEN(1)) !PUT EXP ON STAC 00672 GO TO 32649 00673 32648 ASSIGN 32646 TO I32647 00674 GO TO 32647 00674 32646 CONTINUE 00674 32649 GO TO I32678 00675 32645 CONTINUE 00676 LEVEL=LEVEL-1 00677 ASSIGN 32644 TO I32742 00678 GO TO 32742 00678 32644 STNO=STACK(TOP-2) 00679 IF(STNO.EQ.0) GO TO 32643 00680 ASSIGN 32641 TO I32642 00680 GO TO 32642 00680 32641 CONTINUE 00680 32643 ASSIGN 32639 TO I32640 00681 GO TO 32640 00681 32639 NEXTNO=STACK(TOP-3) !GET # BEYOND END OF CONDITIONAL 00682 ASSIGN 32637 TO I32638 00683 GO TO 32638 00683 32637 GO TO I32645 00684 32636 CONTINUE 00685 ASSIGN 32635 TO I32744 00686 GO TO 32744 00686 32635 ASSIGN 32634 TO I32742 00687 GO TO 32742 00687 32634 IF(.NOT.(UTYPE(1).EQ.UEXP)) GO TO 32632 00688 CALL CPYSTR(SST,SIFP) 00689 CALL CATSUB(SST,SFLX,USTART(1),ULEN(1)) 00690 CALL CATSTR(SST,SNE) 00691 I=STACK(TOP-4) 00692 CALL CATSTR(SST,STACK(TOP-I)) 00693 CALL CATSTR(SST,SPGOTO) 00694 NXIFNO=NEWNO(0) 00695 STACK(TOP-2)=NXIFNO 00696 CALL CATNUM(SST,NXIFNO) !"IF((E1.NE.(E))GOTO NXIFNO" 00697 STNO=0 00698 ASSIGN 32631 TO I32729 00699 GO TO 32729 00699 32631 GO TO 32633 00700 32632 STACK(TOP-2)=0 !FOR (OTHERWISE) 00701 32633 ASSIGN 32630 TO I32736 00702 GO TO 32736 00702 32630 GO TO I32636 00703 32629 CONTINUE 00704 ASSIGN 32628 TO I32742 00708 GO TO 32742 00708 32628 LEVEL=LEVEL-1 00709 TOP=TOP-2 00710 GO TO I32629 00711 32627 CONTINUE 00712 ASSIGN 32626 TO I32666 00713 GO TO 32666 00713 32626 IF(.NOT.(STACK(PENT+2).NE.0)) GO TO 32624 00714 ERROR=26 00715 MLINE=STACK(PENT+2) 00716 ENTNO=NEWNO(0) 00717 GO TO 32625 00718 32624 ENTNO=STACK(PENT+1) 00720 STACK(PENT+2)=LINENO 00721 32625 ASSIGN 32623 TO I32742 00723 GO TO 32742 00723 32623 ASSIGN 32622 TO I32640 00724 GO TO 32640 00724 32622 NEXTNO=ENTNO 00725 ASSIGN 32621 TO I32640 00726 GO TO 32640 00726 32621 TOP=TOP+2 00727 STACK(TOP)=AGRET 00728 IF(.NOT.(SHORT.OR.FAKE)) GO TO 32619 00729 STACK(TOP-1)=ENTNO !SHORT .T. IN THIS VERSI 00729 GO TO 32620 00729 32619 STACK(TOP-1)=STACK(PENT-1) 00730 32620 UTYPE(1)=0 00731 ASSIGN 32618 TO I32736 00732 GO TO 32736 00732 32618 GO TO I32627 00733 32700 CONTINUE 00734 IF(.NOT.(NUNITS.EQ.2.AND.UTYPE(2).EQ.UFORT)) GO TO 32616 00735 CALL CPYSTR(SST,SIFPN) 00736 CALL CATSUB(SST,SFLX,USTART(1),ULEN(1)) 00737 CALL CATSTR(SST,SPB) 00738 CALL CATSUB(SST,SFLX,USTART(2),ULEN(2)) 00739 STNO=FLXNO 00740 ASSIGN 32615 TO I32729 00741 GO TO 32729 00741 32615 GO TO 32617 00742 32616 NOTFLG=.FALSE. 00744 ASSIGN 32614 TO I32668 00745 GO TO 32668 00745 32614 CONTINUE 00746 32617 GO TO I32700 00747 32691 CONTINUE 00748 NOTFLG=.FALSE. 00749 ASSIGN 32613 TO I32694 00750 GO TO 32694 00750 32613 GO TO I32691 00751 32697 CONTINUE 00752 ENDNO=NEWNO(0) !PAST END OF WHEN-ELSE 00753 ELSNO=NEWNO(0) !START OF ELSE 00754 GSTNO=ENDNO 00755 ASSIGN 32612 TO I32655 00756 GO TO 32655 00756 32612 TOP=TOP+2 00757 STACK(TOP-1)=LINENO 00758 STACK(TOP)=AELSE !STACK CMD TO LOOK FOR ELSE 00759 GSTNO=ELSNO 00760 ASSIGN 32611 TO I32655 00761 GO TO 32655 00761 32611 GGOTON=ENDNO 00762 ASSIGN 32610 TO I32653 00763 GO TO 32653 00763 32610 GOTONO=ELSNO !WHERE TO GO IF LOGICAL CONDITION FALSE 00764 STNO=FLXNO 00765 FLXNO=0 00766 ASSIGN 32609 TO I32738 00767 GO TO 32738 00767 32609 ASSIGN 32608 TO I32736 00768 GO TO 32736 00768 32608 GO TO I32697 00769 32694 CONTINUE 00770 IF(.NOT.(FLXNO.NE.0)) GO TO 32606 00772 LOOPNO=FLXNO 00773 FLXNO=0 00774 GO TO 32607 00776 32606 IF(.NOT.(NEXTNO.NE.0)) GO TO 32605 00776 LOOPNO=NEXTNO 00777 NEXTNO=0 00778 GO TO 32607 00780 32605 LOOPNO=NEWNO(0) 00781 32607 ENDNO=NEWNO(0) 00784 GSTNO=ENDNO 00785 ASSIGN 32604 TO I32655 00786 GO TO 32655 00786 32604 GGOTON=LOOPNO 00787 ASSIGN 32603 TO I32653 00788 GO TO 32653 00788 32603 GOTONO=ENDNO 00789 STNO=LOOPNO 00790 ASSIGN 32602 TO I32738 00791 GO TO 32738 00791 32602 ASSIGN 32601 TO I32736 00792 GO TO 32736 00792 32601 GO TO I32694 00793 32736 CONTINUE 00794 IF(.NOT.(NUNITS.EQ.1)) GO TO 32599 00800 ASSIGN 32598 TO I32715 00800 GO TO 32715 00800 32598 GO TO 32600 00801 32599 IF(.NOT.(UTYPE(2).EQ.UPINV)) GO TO 32597 00801 ASSIGN 32596 TO I32720 00801 GO TO 32720 00801 32596 GO TO 32600 00802 32597 CALL CPYSUB(SST,SFLX,USTART(2),ULEN(2)) !IS IT JUST "CONTINUE"? 00803 IF(STREQ(SST,SCONT)) GO TO 32595 00804 ASSIGN 32594 TO I32717 00804 GO TO 32717 00804 32594 CONTINUE 00804 32595 CONTINUE 00806 32600 GO TO I32736 00807 32666 CONTINUE 00808 IF(.NOT.(UTYPE(1).EQ.UPINV)) GO TO 32592 00809 J=1 00809 GO TO 32593 00809 32592 J=2 00810 32593 CALL CPYSUB(SPINV,SFLX,USTART(J),ULEN(J)) 00811 IF(.NOT.(STREQ(SPINV,SDUM))) GO TO 32590 00812 PENT=PDUMMY 00813 STACK(PENT+2)=0 00814 GO TO 32591 00815 32590 P=MAXSTK-HASH(SPINV,PRIME) 00817 FOUND=.FALSE. 00818 IF(STACK(P).EQ.0) GO TO 32589 00819 GO TO 32587 00820 32588 IF(STACK(P).EQ.0.OR.FOUND) GO TO 32586 00820 32587 P=STACK(P) 00821 IF (STREQ(SPINV,STACK(P+4))) FOUND=.TRUE. 00822 GO TO 32588 00823 32586 CONTINUE 00824 32589 IF(.NOT.(FOUND)) GO TO 32584 00825 PENT=P 00825 GO TO 32585 00825 32584 TMAX=MAX-(4+OFFST2+(SPINV(1)+NCHPWD-1)/NCHPWD) 00827 IF(.NOT.(TMAX.LE.TOP+SAFETY)) GO TO 32582 00828 PENT=PDUMMY 00829 STACK(PENT+2)=0 00830 GO TO 32583 00831 32582 MAX=TMAX 00833 PENT=MAX+OFFST2 00834 IF (LONG.OR.COGOTO) STACK(PENT-1)=NEWNO(0) 00835 IF (COGOTO) STACK(PENT-2)=0 00836 STACK(PENT)=0 00837 STACK(P)=PENT 00838 STACK(PENT+1)=NEWNO(0) 00839 STACK(PENT+2)=0 00840 STACK(PENT+3)=0 00841 CALL CPYSTR(STACK(PENT+4),SPINV) 00842 32583 CONTINUE 00844 32585 CONTINUE 00845 32591 GO TO I32666 00846 32668 CONTINUE 00847 GOTONO=NEWNO(0) !GET STMNT # TO GOTO 00848 STNO=FLXNO 00849 FLXNO=0 00850 ASSIGN 32581 TO I32738 00851 GO TO 32738 00851 32581 GSTNO=GOTONO 00852 ASSIGN 32580 TO I32655 00853 GO TO 32655 00853 32580 ASSIGN 32579 TO I32736 00854 GO TO 32736 00854 32579 GO TO I32668 00855 32640 CONTINUE 00856 IF(.NOT.(NEXTNO.NE.0)) GO TO 32578 00861 CALL PUTNUM(SFORCE,NEXTNO) 00862 CALL PUT(LINENO,SFORCE,FORTCL) 00863 NEXTNO=0 00864 32578 GO TO I32640 00866 32744 CONTINUE 00867 ENDNO=STACK(TOP-3) 00871 IF(.NOT.(ENDNO.EQ.0)) GO TO 32576 00872 STACK(TOP-3)=NEWNO(0) 00873 GO TO 32577 00874 32576 GOTONO=ENDNO 00876 ASSIGN 32575 TO I32661 00877 GO TO 32661 00877 32575 CONTINUE 00878 32577 IF(.NOT.(NEXTNO.EQ.0)) GO TO 32573 00880 NEXTNO=STACK(TOP-2) 00880 GO TO 32574 00881 32573 IF(.NOT.(STACK(TOP-2).EQ.0)) GO TO 32572 00881 GO TO 32574 00882 32572 ASSIGN 32571 TO I32640 00883 GO TO 32640 00883 32571 NEXTNO=STACK(TOP-2) 00884 32574 GO TO I32744 00887 32570 CONTINUE 00888 STNO=STACK(TOP-1) 00889 ASSIGN 32569 TO I32642 00890 GO TO 32642 00890 32569 TOP=TOP-2 00891 GO TO I32570 00892 32568 CONTINUE 00893 GOTONO=STACK(TOP-1) 00897 ASSIGN 32567 TO I32661 00898 GO TO 32661 00898 32567 TOP=TOP-2 00899 GO TO I32568 00900 32566 CONTINUE 00948 STNO=0 00949 CALL CPYSTR(SST,SGOTOI) 00950 IF (LONG.OR.COGOTO) SST(1)=SST(1)-1 00951 CALL CATNUM(SST,STACK(TOP-1)) !GOTO I# 00952 IF(.NOT.(FAKE)) GO TO 32565 00953 CALL CATSTR(SST,SCP) 00954 CALL CATNUM(SST,STACK(TOP-1)) 00955 CALL CATSTR(SST,SRP) 00956 32565 ASSIGN 32564 TO I32729 00958 GO TO 32729 00958 32564 TOP=TOP-2 00959 GO TO I32566 00960 32563 CONTINUE 00961 ASSIGN 32562 TO I32640 00966 GO TO 32640 00966 32562 NEXTNO=STACK(TOP-1) 00967 TOP=TOP-2 00968 GO TO I32563 00969 32647 CONTINUE 00970 CALL PUT(0,SGUP1,ERRCL) 00971 CALL PUT(0,SGUP2,ERRCL) 00972 CALL CLOSEF(MINCNT,-1) 00973 CALL EXFLE !MAO, 30-APR-80 00974 GO TO I32647 00975 32561 CONTINUE 00976 CALL PUT(0,SB,LISTCL) !BLANK LINE 00977 CALL PUT(0,SDASH,LISTCL) !DASH LINE 00978 CALL PUT(0,SB,LISTCL) !BLANK LINE 00979 GO TO I32561 00980 32758 CONTINUE 00981 NOCALL=0 !# OF TIMES OPENF HAS BEEN CALLED 00982 PARAM1=NCHPWD !# OF CHARACTERS PER INTEGER WORD 00983 PARAM2=CHZERO 00984 PARAM3=CHSPAC 00985 PARAM4=CHC !COMMENT CHARACTER 00986 PARAM5=CINLIN !IN-LINE COMMENT CHAR !25-JAN-80 00987 BLN=0 00988 WWIDTH=LWIDTH-10 !11-SEP-75 00989 REFNO=(LWIDTH-16)/7 !11-SEP-75 00990 IF(.NOT.(SHORT.OR.FAKE)) GO TO 32559 00992 OFFSET=1 00993 OFFST2=1 00994 GO TO 32560 00996 32559 IF(.NOT.(COGOTO)) GO TO 32558 00996 OFFSET=2 00997 OFFST2=3 00998 GO TO 32560 01000 32558 OFFSET=2 01001 OFFST2=3 01002 32560 NOTFLG=.TRUE. 01005 ERLST=.FALSE. 01006 GO TO I32758 01007 32638 CONTINUE 01008 TOPTYP=STACK(TOP) 01009 IF((ASSEQ).NE.(TOPTYP)) GO TO 32556 01011 TOP=TOP-STACK(TOP-4)-1 01011 GO TO 32557 01012 32556 IF((ACSEQ).NE.(TOPTYP)) GO TO 32555 01012 TOP=TOP-4 01012 GO TO 32557 01013 32555 IF((AGGOTO).NE.(TOPTYP)) GO TO 32554 01013 TOP=TOP-2 01013 GO TO 32557 01014 32554 IF((AGCONT).NE.(TOPTYP)) GO TO 32553 01014 TOP=TOP-2 01014 GO TO 32557 01015 32553 IF((AFSEQ).NE.(TOPTYP)) GO TO 32552 01015 TOP=TOP-2 01015 GO TO 32557 01016 32552 IF((AELSE).NE.(TOPTYP)) GO TO 32551 01016 TOP=TOP-2 01016 GO TO 32557 01017 32551 IF((AGSTNO).NE.(TOPTYP)) GO TO 32550 01017 TOP=TOP-2 01017 GO TO 32557 01018 32550 IF((ATSEQ).NE.(TOPTYP)) GO TO 32549 01018 TOP=TOP-1 01018 GO TO 32557 01019 32549 IF((AMSEQ).NE.(TOPTYP)) GO TO 32548 01019 TOP=TOP-1 01019 GO TO 32557 01020 32548 IF((AGRET).NE.(TOPTYP)) GO TO 32547 01020 TOP=TOP-2 01020 32547 CONTINUE 01021 32557 GO TO I32638 01022 32749 CONTINUE 01023 DUMMY=NEWNO(SEEDNO) !INITIALIZE STMNT # GENERATOR 01024 ENDPGM=.FALSE. 01025 MAX=MAXSTK-(PRIME+OFFSET+3) 01026 PDUMMY=MAX+OFFSET 01027 DO 32546 I=MAX,MAXSTK 01028 STACK(I)=0 01028 32546 CONTINUE 01028 TOP=1 !START OF STACK 01029 STACK(TOP)=AMSEQ !INITIAL CMD IS LOOK FOR FLECS MAIN LINE OR FORT 01030 ERROR=0 01031 FIRST=.TRUE. !THIS IS FIRST READ ON THIS FILE 01032 NOPGM=.FALSE. 01033 NEXTNO=0 !STMNT # FOR NEXT STMNT PUT IN FTN FILE 01034 SOURCE=READ !GET INPUT FROM FILE 01035 LEVEL=0 01036 LSTLEV=0 01037 ASSIGN 32545 TO I32561 01038 GO TO 32561 01038 32545 GO TO I32749 01039 32747 CONTINUE 01040 GO TO 32543 01041 32544 IF(ENDPGM) GO TO 32542 01041 32543 IF(.NOT.(TOP+SAFETY.GT.MAX)) GO TO 32541 01042 ASSIGN 32540 TO I32647 01042 GO TO 32647 01042 32540 CONTINUE 01042 32541 ACTION=STACK(TOP) !ON FIRST PASS=AMSEQ 01043 IF((AGGOTO).NE.(ACTION)) GO TO 32538 01045 ASSIGN 32537 TO I32568 01045 GO TO 32568 01045 32537 GO TO 32539 01046 32538 IF((AGRET).NE.(ACTION)) GO TO 32536 01046 ASSIGN 32535 TO I32566 01046 GO TO 32566 01046 32535 GO TO 32539 01047 32536 IF((AGCONT).NE.(ACTION)) GO TO 32534 01047 ASSIGN 32533 TO I32570 01047 GO TO 32570 01047 32533 GO TO 32539 01048 32534 IF((AGSTNO).NE.(ACTION)) GO TO 32532 01048 ASSIGN 32531 TO I32563 01048 GO TO 32563 01048 32531 GO TO 32539 01049 32532 CALL ANALYZ !GET INPUT AND FIGURE OUT WHAT NEEDS DOING 01050 IF((AFSEQ).NE.(ACTION)) GO TO 32529 01052 IF((TEXEC).NE.(CLASS)) GO TO 32527 01054 ASSIGN 32526 TO I32708 01054 GO TO 32708 01054 32526 GO TO 32528 01055 32527 IF((TFIN).NE.(CLASS)) GO TO 32525 01055 ASSIGN 32524 TO I32629 01055 GO TO 32629 01055 32524 GO TO 32528 01056 32525 IF((TEND).NE.(CLASS)) GO TO 32523 01056 ERROR=1 01056 GO TO 32528 01057 32523 IF((TELSE).NE.(CLASS)) GO TO 32522 01057 ERROR=10 01057 GO TO 32528 01058 32522 IF((TTO).NE.(CLASS)) GO TO 32521 01058 ERROR=13 01058 GO TO 32528 01059 32521 IF((TCEXP).NE.(CLASS)) GO TO 32520 01059 ERROR=19 01059 32520 CONTINUE 01060 32528 GO TO 32530 01062 32529 IF((AMSEQ).NE.(ACTION)) GO TO 32519 01062 IF((TEXEC).NE.(CLASS)) GO TO 32517 01064 ASSIGN 32516 TO I32708 01064 GO TO 32708 01064 32516 GO TO 32518 01065 32517 IF((TEND).NE.(CLASS)) GO TO 32515 01065 IF(.NOT.(NOPGM)) GO TO 32513 01066 ENDPGM=.TRUE. 01066 GO TO 32514 01066 32513 ASSIGN 32512 TO I32713 01067 GO TO 32713 01067 32512 CONTINUE 01067 32514 GO TO 32518 01069 32515 IF((TFIN).NE.(CLASS)) GO TO 32511 01069 ERROR=5 01069 GO TO 32518 01070 32511 IF((TELSE).NE.(CLASS)) GO TO 32510 01070 ERROR=8 01070 GO TO 32518 01071 32510 IF((TTO).NE.(CLASS)) GO TO 32509 01071 STACK(TOP)=ATSEQ !NOTE TOP NOT SHIFTED!!-->ONLY PROC DFN LEGAL 01072 ASSIGN 32508 TO I32627 01073 GO TO 32627 01073 32508 GO TO 32518 01075 32509 IF((TCEXP).NE.(CLASS)) GO TO 32507 01075 ERROR=17 01075 32507 CONTINUE 01076 32518 GO TO 32530 01078 32519 IF((ASSEQ).NE.(ACTION)) GO TO 32506 01078 IF((TCEXP).NE.(CLASS)) GO TO 32504 01080 ASSIGN 32503 TO I32636 01080 GO TO 32636 01080 32503 GO TO 32505 01081 32504 IF((TFIN).NE.(CLASS)) GO TO 32502 01081 ASSIGN 32501 TO I32645 01081 GO TO 32645 01081 32501 GO TO 32505 01082 32502 IF((TEND).NE.(CLASS)) GO TO 32500 01082 ERROR=3 01082 GO TO 32505 01083 32500 IF((TELSE).NE.(CLASS)) GO TO 32499 01083 ERROR=12 01083 GO TO 32505 01084 32499 IF((TTO).NE.(CLASS)) GO TO 32498 01084 ERROR=15 01084 GO TO 32505 01085 32498 IF((TEXEC).NE.(CLASS)) GO TO 32497 01085 ERROR=23 01085 32497 CONTINUE 01086 32505 GO TO 32530 01088 32506 IF((ACSEQ).NE.(ACTION)) GO TO 32496 01088 IF((TCEXP).NE.(CLASS)) GO TO 32494 01090 ASSIGN 32493 TO I32745 01090 GO TO 32745 01090 32493 GO TO 32495 01091 32494 IF((TFIN).NE.(CLASS)) GO TO 32492 01091 ASSIGN 32491 TO I32645 01091 GO TO 32645 01091 32491 GO TO 32495 01092 32492 IF((TEND).NE.(CLASS)) GO TO 32490 01092 ERROR=2 01092 GO TO 32495 01093 32490 IF((TELSE).NE.(CLASS)) GO TO 32489 01093 ERROR=11 01093 GO TO 32495 01094 32489 IF((TTO).NE.(CLASS)) GO TO 32488 01094 ERROR=14 01094 GO TO 32495 01095 32488 IF((TEXEC).NE.(CLASS)) GO TO 32487 01095 ERROR=22 01095 32487 CONTINUE 01096 32495 GO TO 32530 01098 32496 IF((AELSE).NE.(ACTION)) GO TO 32486 01098 IF((TELSE).NE.(CLASS)) GO TO 32484 01100 ASSIGN 32483 TO I32726 01100 GO TO 32726 01100 32483 GO TO 32485 01101 32484 IF((TEND).NE.(CLASS)) GO TO 32482 01101 ERROR=4 01101 GO TO 32485 01102 32482 IF((TFIN).NE.(CLASS)) GO TO 32481 01102 ERROR=7 01102 GO TO 32485 01103 32481 IF((TTO).NE.(CLASS)) GO TO 32480 01103 ERROR=16 01103 GO TO 32485 01104 32480 IF((TCEXP).NE.(CLASS)) GO TO 32479 01104 ERROR=20 01104 GO TO 32485 01105 32479 IF((TEXEC).NE.(CLASS)) GO TO 32478 01105 ERROR=24 01105 32478 CONTINUE 01106 32485 GO TO 32530 01108 32486 IF((ATSEQ).NE.(ACTION)) GO TO 32477 01108 IF((TTO).NE.(CLASS)) GO TO 32475 01110 ASSIGN 32474 TO I32627 01110 GO TO 32627 01110 32474 GO TO 32476 01111 32475 IF((TEND).NE.(CLASS)) GO TO 32473 01111 ASSIGN 32472 TO I32713 01111 GO TO 32713 01111 32472 GO TO 32476 01112 32473 IF((TFIN).NE.(CLASS)) GO TO 32471 01112 ERROR=6 01112 GO TO 32476 01113 32471 IF((TELSE).NE.(CLASS)) GO TO 32470 01113 ERROR=9 01113 GO TO 32476 01114 32470 IF((TCEXP).NE.(CLASS)) GO TO 32469 01114 ERROR=18 01114 GO TO 32476 01115 32469 IF((TEXEC).NE.(CLASS)) GO TO 32468 01115 ERROR=21 01115 32468 CONTINUE 01116 32476 CONTINUE 01118 32477 CONTINUE 01118 32530 IF(.NOT.(NOPGM)) CALL LIST 01119 32539 GO TO 32544 01122 32542 GO TO I32747 01123 32715 CONTINUE 01124 TOP=TOP+2 01125 STACK(TOP-1)=LINENO 01126 STACK(TOP)=AFSEQ 01127 LEVEL=LEVEL+1 01128 GO TO I32715 01129 32731 CONTINUE 01130 TOP=TOP+2 01131 STACK(TOP-1)=CONTNO 01132 STACK(TOP)=AGCONT 01133 GO TO I32731 01134 32653 CONTINUE 01135 TOP=TOP+2 01136 STACK(TOP-1)=GGOTON 01137 STACK(TOP)=AGGOTO 01138 GO TO I32653 01139 32655 CONTINUE 01140 TOP=TOP+2 01141 STACK(TOP-1)=GSTNO 01142 STACK(TOP)=AGSTNO 01143 GO TO I32655 01144 32642 CONTINUE 01145 ASSIGN 32467 TO I32640 01146 GO TO 32640 01146 32467 CALL PUTNUM(SFORCE,STNO) 01147 CALL PUT(LINENO,SFORCE,FORTCL) 01148 STNO=0 01149 GO TO I32642 01150 32710 CONTINUE 01151 IF(.NOT.(NEXTNO.EQ.0)) GO TO 32465 01153 CALL PUT(LINENO,SFLX,FORTCL) 01153 GO TO 32466 01154 32465 IF(.NOT.(FLXNO.NE.0.OR.PASS)) GO TO 32464 01154 ASSIGN 32463 TO I32640 01155 GO TO 32640 01155 32463 CALL PUT(LINENO,SFLX,FORTCL) 01156 GO TO 32466 01158 32464 CALL CPYSTR(SST,SFLX) 01159 CALL PUTNUM(SST,NEXTNO) 01160 CALL PUT(LINENO,SST,FORTCL) 01161 NEXTNO=0 01162 32466 GO TO I32710 01165 32661 CONTINUE 01166 CALL CPYSTR(SPUTGO,SGOTO) 01167 CALL CATNUM(SPUTGO,GOTONO) 01168 IF(.NOT.(NEXTNO.NE.0)) GO TO 32462 01169 CALL PUTNUM(SPUTGO,NEXTNO) 01170 NEXTNO=0 01171 32462 CALL PUT(LINENO,SPUTGO,FORTCL) 01173 GO TO I32661 01174 32738 CONTINUE 01175 IF(.NOT.(NOTFLG)) GO TO 32460 01179 CALL CPYSTR(SST,SIFPN) 01179 GO TO 32461 01179 32460 CALL CPYSTR(SST,SIF) 01180 32461 CALL CATSUB(SST,SFLX,USTART(1),ULEN(1)) 01181 IF(.NOT.(NOTFLG)) GO TO 32458 01182 CALL CATSTR(SST,SPGOTO) 01182 GO TO 32459 01182 32458 CALL CATSTR(SST,SBGOTO) 01183 32459 CALL CATNUM(SST,GOTONO) 01184 ASSIGN 32457 TO I32729 01185 GO TO 32729 01185 32457 NOTFLG=.TRUE. 01186 GO TO I32738 01187 32729 CONTINUE 01188 IF(NEXTNO.EQ.0) GO TO 32456 01189 IF(.NOT.(STNO.EQ.0)) GO TO 32454 01190 STNO=NEXTNO 01191 NEXTNO=0 01192 GO TO 32455 01193 32454 ASSIGN 32453 TO I32640 01194 GO TO 32640 01194 32453 CONTINUE 01194 32455 CONTINUE 01195 32456 IF(STNO.EQ.0) GO TO 32452 01196 CALL PUTNUM(SST,STNO) 01197 STNO=0 01198 32452 IF(.NOT.(SST(1).LE.72)) GO TO 32450 01203 CALL PUT(LINENO,SST,FORTCL) 01203 GO TO 32451 01203 32450 CALL CPYSUB (SLIST,SST,1,72) 01205 CALL PUT(LINENO,SLIST,FORTCL) 01206 S=73 01207 L=66 01208 GO TO 32448 01209 32449 IF(S.GT.SST(1)) GO TO 32447 01209 32448 IF(S+L-1.GT.SST(1)) L=SST(1)-S+1 01210 CALL CPYSTR(SLIST,SB5I1) 01211 CALL CATSUB(SLIST,SST,S,L) 01212 CALL PUT(LINENO,SLIST,FORTCL) 01213 S=S+66 01214 GO TO 32449 01215 32447 CONTINUE 01216 32451 GO TO I32729 01217 32446 CONTINUE 01218 LL=0 01219 LR=STACK(LP) 01220 32445 IF(LR.EQ.0) GO TO 32444 01221 LT=STACK(LR) 01222 STACK(LR)=LL 01223 LL=LR 01224 LR=LT 01225 GO TO 32445 01226 32444 STACK(LP)=LL 01227 GO TO I32446 01228 32742 CONTINUE 01229 IF(.NOT.(FLXNO.NE.0)) GO TO 32443 01230 ASSIGN 32442 TO I32640 01231 GO TO 32640 01231 32442 NEXTNO=FLXNO 01232 FLXNO=0 01233 32443 GO TO I32742 01235 32712 CONTINUE 01236 P=MAX 01237 STACK(MAX)=0 01238 ITEMP=MAXSTK-PRIME+1 01239 DO 32441 I=ITEMP,MAXSTK 01240 IF(STACK(I).EQ.0) GO TO 32440 01241 STACK(P)=STACK(I) 01242 GO TO 32438 01243 32439 IF(STACK(P).EQ.0) GO TO 32437 01243 32438 P=STACK(P) 01244 LP=P+3 01245 ASSIGN 32436 TO I32446 01246 GO TO 32446 01246 32436 GO TO 32439 01247 32437 CONTINUE 01248 32440 CONTINUE 01249 32441 CONTINUE 01249 Q=MAX-1 01250 STACK(Q)=0 01251 32435 IF(STACK(MAX).EQ.0) GO TO 32434 01252 P=STACK(MAX) 01253 STACK(MAX)=STACK(P) 01254 QM=Q 01255 QP=STACK(QM) 01256 INSERT=.FALSE. 01257 32433 IF(INSERT) GO TO 32432 01258 IF(.NOT.(QP.EQ.0)) GO TO 32430 01260 INSERT=.TRUE. 01260 GO TO 32431 01261 32430 IF(.NOT.(STRLT(STACK(P+4),STACK(QP+4)))) GO TO 32429 01261 INSERT=.TRUE. 01261 GO TO 32431 01262 32429 QM=QP 01263 QP=STACK(QM) 01264 32431 GO TO 32433 01267 32432 STACK(P)=QP 01268 STACK(QM)=P 01269 GO TO 32435 01270 32434 PTABLE=STACK(Q) 01271 GO TO I32712 01272 END 01273