      SUBROUTINE ANALYZ                                                 00064 
      INTEGER NUMLIN                            !830307 MAO             00118 
      LOGICAL CNTALL                            !830307 MAO             00119 
      COMMON/FLINE/CNTALL,NUMLIN                !830307 MAO             00120 
      INTEGER DTYPE                             !22-JUN-81              00122 
      COMMON/DIR/DTYPE                  !22-JUN-81                      00123 
      LOGICAL PASFLG                                    !30JUN81MAO     00125 
      INTEGER CNDLVL                                    !30JUN81MAO     00126 
      INTEGER OFFLVL                                    !30JUN81MAO     00127 
      INTEGER COND                                      !30JUN81MAO     00128 
      INTEGER CNDVAL                                    !30JUN81MAO     00129 
      COMMON/COND/PASFLG,CNDLVL,OFFLVL,COND,CNDVAL(4,10) !30JUN81MAO    00130 
      LOGICAL*2 ALECS,LSTFUL    !14-FEB-80                              00133 
      INTEGER*2 TYPIN,TYPLST,TYPOUT,CHCMNT      !14-FEB-80              00134 
      COMMON/MACVAL/ALECS,TYPIN,TYPLST,TYPOUT,CHCMNT,LSTFUL !14-FEB-80  00135 
      INTEGER SAEND                                                     00137 
      INTEGER ERR1,ERR2                         !821129MAO              00140 
      COMMON/IOERR/ERR1,ERR2                            !821129MAO      00141 
      INTEGER FORMFD                                    !MAO15-SEP-80   00148 
      INTEGER DIRCH                                     !MAO22-JUN-81   00149 
      INTEGER KPAGE                                     !MAO22-JUN-81   00150 
      INTEGER KPIF,KPUNL,KPEND                          !30JUN81MAO     00151 
      INTEGER KNAME                                     !30JUN81MAO     00152 
      INTEGER TDIR                                      !MAO22-JUN-81   00153 
      INTEGER TOFF                                      !30JUN81MAO     00154 
      INTEGER DPAGE                                     !MAO22-JUN-81   00155 
      INTEGER KINCL,DINCL,UDIR                          !29-JUN-81MAO   00156 
      INTEGER DPIF,DPUNL,DPEND                          !30JUN81MAO     00157 
      INTEGER DNAME                                     !30JUN81MAO     00158 
      INTEGER DIMP,KIMP,KNONE                           !840307MAO      00159 
      INTEGER BLN   , CH    , CHC   , CHSPAC, CHTYP , CHTYPE            00160 
      INTEGER CINLIN                                    !25-JAN-80      00161 
      INTEGER CHZERO, CLASS , CPOS  , CSAVE , CURSOR, CWD               00162 
      INTEGER ERRCL , ERROR , ERRSTK, ERSTOP                            00163 
      INTEGER EXTYPE, FLXNO , FORTCL, HOLDNO, I     , KCOND             00164 
      INTEGER KDO   , KELSE , KEND  , KFIN  , KIF   , KREPT             00165 
      INTEGER KSELCT, KTO   , KUNLES, KUNTIL, KWHEN , KWHILE            00166 
      INTEGER LEN   , LEVEL , LINENO, LISTCL, LSTLEV, MAJCNT            00167 
      INTEGER MINCNT, MLINE , NCHPWD, NUNITS, PCNT  , PTABLE, QP        00168 
      INTEGER READ  , REFNO ,RETRY  , SB    , SB5   , SB6               00169 
      INTEGER SB7   , SDASH , SDUM  , SEND  , SETUP , SFLX              00170 
      INTEGER SFSPCR, SHOLD , SLIST , SLP   , SOURCE, SOWSE             00171 
      INTEGER SPINV , SPUTGO, SRP   , SSPACR, SST                       00172 
      INTEGER SSTMAX, STACK , START , TBLANK, TCEXP , TCOND             00173 
      INTEGER TDIGIT, TDO   , TELSE , TEND  , TEOL  , TEXEC             00174 
      INTEGER TFIN  , TFORT , THYPHN, TIF   , TINVOK, TLETTR            00175 
      INTEGER TLP   , TOP   , TOTHER, TRP   , TRUNTL, TRWHIL            00176 
      INTEGER TSELCT, TTO   , TUNLES, TUNTIL, TWHEN , TWHILE            00177 
      INTEGER UDO   , UEXP  , UFORT , ULEN  , UOWSE , UPINV             00178 
      INTEGER USTART, UTYPE , WWIDTH                                    00179 
      LOGICAL DRCTV                     !22-JUN-81 MAO                  00187 
      LOGICAL BADCH , CONT  , DONE  ,ENDFIL, ENDPGM, ERLST , FIRST      00188 
      LOGICAL FOUND , INDENT, INVOKE, NOPGM , PASS  , SAVED  , STREQ    00189 
      DIMENSION  UTYPE(3), USTART(3), ULEN(3)                           00197 
      DIMENSION STACK(2000)                                             00200 
      DIMENSION ERRSTK(5)                                               00203 
      COMMON BLN   , CLASS , DONE  , ENDFIL, ENDPGM, ERLST              00212 
      COMMON ERROR , ERRSTK, ERSTOP, EXTYPE, FIRST , FLXNO              00213 
      COMMON FOUND , HOLDNO, LEVEL , LINENO, LSTLEV, MAJCNT             00214 
      COMMON MINCNT, MLINE , NOPGM , NUNITS, PASS  , PTABLE, QP         00215 
      COMMON REFNO , SAVED , SFLX  , SHOLD , SLIST , SOURCE             00216 
      COMMON SPINV , SPUTGO, SST   , STACK , TOP   , ULEN               00217 
      COMMON USTART, UTYPE , WWIDTH                                     00218 
      COMMON /PARAM/ NCHPWD, CHZERO, CHSPAC, CHC, CINLIN   !25-JAN-80   00269 
      DIMENSION SFLX   (51)                                             00282 
      DIMENSION SHOLD  (51)                                             00284 
      DIMENSION SLIST  (101)                                            00286 
      DIMENSION SPINV  (41)                                             00288 
      DIMENSION SPUTGO (11)                                             00290 
      DIMENSION SST    (101)                                            00292 
      DIMENSION SB     (2)                                              00298 
      DIMENSION SB5    (4)                                              00301 
      DIMENSION SB6    (4)                                              00304 
      DIMENSION SB7    (5)                                              00307 
      DIMENSION SDASH  (21)                                             00310 
      DIMENSION SDUM   (9)                                              00315 
      DIMENSION SEND   (6)                                              00318 
      DIMENSION SFSPCR (3)                                              00321 
      DIMENSION SLP    (2)                                              00324 
      DIMENSION SOWSE  (7)                                              00327 
      DIMENSION SRP    (2)                                              00330 
      DIMENSION SSPACR (3)                                              00333 
      DIMENSION KCOND  (7)                                              00339 
      DIMENSION KDO    (2)                                              00342 
      DIMENSION KELSE  (3)                                              00345 
      DIMENSION KEND   (3)                                              00348 
      DIMENSION KFIN   (3)                                              00351 
      DIMENSION KIF    (2)                                              00354 
      DIMENSION KNAME(3)                                !30JUN81MAO     00357 
      DIMENSION KINCL(5)                                !29JUN81 MAO    00360 
      DIMENSION KIMP(5)                         !840307MAO              00363 
      DIMENSION KNONE(3)                                !840307MAO      00366 
      DIMENSION KPAGE(3)                !22-JUN-81 (MAO)                00369 
      DIMENSION KPEND(5)                                !30JUN81MAO     00372 
      DIMENSION KPIF (4)                                !30JUN81MAO     00375 
      DIMENSION KPUNL(6)                                !30JUN81MAO     00378 
      DIMENSION KREPT  (4)                                              00381 
      DIMENSION KSELCT (4)                                              00384 
      DIMENSION KTO    (2)                                              00387 
      DIMENSION KUNLES (4)                                              00390 
      DIMENSION KUNTIL (4)                                              00393 
      DIMENSION KWHEN  (3)                                              00396 
      DIMENSION KWHILE (4)                                              00399 
      DIMENSION SAEND(6)                                                00405 
      DATA FORMFD/"14/          !MAO15-SEP-80                           00415 
      DATA DIRCH /"56/  !DIRECTIVE FLAG CHARACTER !22-JUN-81 MAO        00416 
      DATA FORTCL /1/, LISTCL /2/, ERRCL /3/                            00417 
      DATA UEXP/1/, UFORT/2/, UOWSE/3/, UPINV/4/, UDO/5/                00418 
      DATA UDIR/6/                                      !29JUN81 MAO    00419 
      DATA TLETTR/1/, TDIGIT/2/, THYPHN/3/, TLP/4/, TRP/5/              00420 
      DATA TBLANK/6/, TOTHER/7/, TEOL/8/                                00421 
      DATA TCEXP/1/, TELSE/2/, TEND/3/, TEXEC/4/, TFIN/5/, TTO/6/       00422 
      DATA TDIR/7/                                      !22-JUN-81      00423 
      DATA TOFF/8/                                      !30JUN81MAO     00424 
      DATA TCOND/1/, TDO/2/, TFORT/3/, TIF/4/, TINVOK/5/, TRUNTL/6/     00425 
      DATA TRWHIL/7/, TSELCT/8/, TUNLES/9/, TUNTIL/10/, TWHEN/11/       00426 
      DATA TWHILE/12/                                                   00427 
      DATA DPAGE/1/                                     !22-JUN-81      00428 
      DATA DINCL/2/                                     !29JUN81MAO     00429 
      DATA DPIF /3/, DPUNL /4/, DPEND /5/               !30JUN81MAO     00430 
      DATA DNAME /6/                                    !30JUN81MAO     00431 
      DATA DIMP  /7/                                    !840307MAO      00432 
      DATA SETUP /1/, RETRY /2/, READ /3/                               00433 
      DATA SSTMAX /200/                                                 00434 
      DATA SB     /  1, 1H /                                            00435 
      DATA SB5    /  5, 2H  , 2H  , 1H /                                00436 
      DATA SB6    /  6, 2H  , 2H  , 2H  /                               00437 
      DATA SB7    /  7, 2H  , 2H  , 2H  , 1H /                          00438 
      DATA SDASH  / 40, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--  00439 
     1                , 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--  00440 
     1                , 2H--, 2H--, 2H--, 2H--/                         00441 
      DATA SDUM   / 15, 2HDU, 2HMM, 2HY-, 2HPR, 2HOC, 2HED, 2HUR, 1HE/  00442 
      DATA SEND   /  9, 2H  , 2H  , 2H  , 2HEN, 1HD/                    00443 
      DATA SFSPCR /  3, 2H.., 1H./                                      00444 
      DATA SLP    /  1, 1H(/                                            00445 
      DATA SOWSE  / 11, 2H(O, 2HTH, 2HER, 2HWI, 2HSE, 1H)/              00446 
      DATA SRP    /  1, 1H)/                                            00447 
      DATA SSPACR /  3, 2H. , 1H /                                      00448 
      DATA KCOND  / 11, 2HCO, 2HND, 2HIT, 2HIO, 2HNA, 1HL/              00449 
      DATA KDO    /  2, 2HDO/                                           00450 
      DATA KELSE  /  4, 2HEL, 2HSE/                                     00451 
      DATA KEND   /  3, 2HEN, 1HD/                                      00452 
      DATA KFIN   /  3, 2HFI, 1HN/                                      00453 
      DATA KIF    /  2, 2HIF/                                           00454 
      DATA KINCL /7, 2HIN, 2HCL, 2HUD, 1HE/             !29JUN81 MAO    00455 
      DATA KIMP  /8, 2HIM, 2HPL, 2HIC, 2HIT/            !840307MAO      00456 
      DATA KNAME / 4, 2HNA, 2HME/                       !30JUN81MAO     00457 
      DATA KNONE /4, 2HNO, 2HNE/                        !840307MAO      00458 
      DATA KPEND / 7, 2HPA, 2HSS, 2HEN, 1HD/            !30JUN81MAO     00459 
      DATA KPIF /6, 2HPA, 2HSS, 2HIF/                   !30JUN81MAO     00460 
      DATA KPUNL / 10, 2HPA, 2HSS, 2HUN, 2HLE, 2HSS/    !30JUN81MAO     00461 
      DATA KPAGE/  4, 2HPA, 2HGE/                       !22-JUN-81 MAO  00462 
      DATA KREPT  /  6, 2HRE, 2HPE, 2HAT/                               00463 
      DATA KSELCT /  6, 2HSE, 2HLE, 2HCT/                               00464 
      DATA KTO    /  2, 2HTO/                                           00465 
      DATA KUNLES /  6, 2HUN, 2HLE, 2HSS/                               00466 
      DATA KUNTIL /  5, 2HUN, 2HTI, 1HL/                                00467 
      DATA KWHEN  /  4, 2HWH, 2HEN/                                     00468 
      DATA KWHILE /  5, 2HWH, 2HIL, 1HE/                                00469 
      DATA SAEND  /10, 2H  ,2H  ,2H  ,2H.E,2HND/                        00473 
      IF((READ).NE.(SOURCE)) GO TO 32757                                00491 
      ASSIGN 32755 TO I32756                                            00491 
      GO TO 32756                                                       00491 
32755 GO TO 32758                                                       00492 
32757 IF((SETUP).NE.(SOURCE)) GO TO 32754                               00492 
      GO TO 32758                                                       00493 
32754 IF((RETRY).NE.(SOURCE)) GO TO 32753                               00493 
      LINENO=HOLDNO                                                     00494 
      CALL CPYSTR(SFLX,SHOLD)                                           00495 
32753 CONTINUE                                                          00497 
32758 ERROR=0                                                           00498 
      SAVED=.FALSE.     !HAVE NOT YET SAVED AN OLD LINE                 00499 
      NUNITS=0          !# OF UNITS OF INFO IN LINE                     00500 
      ERSTOP=0          !# OF ERRORS FOUND FOR THIS LINE                00501 
      CURSOR=0          !POSITION IN LINE OF CHARACTER SCAN             00502 
      CWD=2     !WORD IN LINE BEING LOOKED AT (WORD 1=CHARACTER COUNT)  00503 
      CPOS=0            !POSITION IN CWD OF CHARACTER                   00504 
      CLASS=0           !TYPE OF STATEMENT FOUND                        00505 
      ASSIGN 32751 TO I32752                                            00506 
      GO TO 32752                                                       00506 
32751 ASSIGN 32749 TO I32750                                            00507 
      GO TO 32750                                                       00507 
32749 IF(.NOT.(CONT.OR.PASS)) GO TO 32747                               00508 
      CLASS=TEXEC       !EXECUTABLE                                     00512 
      EXTYPE=TFORT      !PURE FORTRAN                                   00513 
      GO TO 32748                                                       00514 
32747 ASSIGN 32745 TO I32746                                            00515 
      GO TO 32746                                                       00515 
32745 CONTINUE                                                          00515 
32748 IF(.NOT.(.NOT.PASFLG)) GO TO 32743                                00517 
      IF(.NOT.(CLASS.EQ.TEND)) GO TO 32741                              00523 
      ERROR=404 !OOPS, HIT END WITH MISSING .PASSENDS!                  00524 
      CLASS=0                                                           00525 
      GO TO 32742                                                       00527 
32741 IF(.NOT.(CLASS.EQ.TDIR)) GO TO 32740                              00527 
      IF((DPIF).NE.(DTYPE)) GO TO 32738                                 00529 
      ASSIGN 32736 TO I32737                                            00530 
      GO TO 32737                                                       00530 
32736 ASSIGN 32734 TO I32735                                            00531 
      GO TO 32735                                                       00531 
32734 GO TO 32739                                                       00533 
32738 IF((DPUNL).NE.(DTYPE)) GO TO 32733                                00533 
      ASSIGN 32732 TO I32737                                            00534 
      GO TO 32737                                                       00534 
32732 ASSIGN 32731 TO I32735                                            00535 
      GO TO 32735                                                       00535 
32731 GO TO 32739                                                       00537 
32733 IF((DPEND).NE.(DTYPE)) GO TO 32730                                00537 
      ASSIGN 32729 TO I32735                                            00537 
      GO TO 32735                                                       00537 
32729 GO TO 32739                                                       00538 
32730 CLASS=TOFF                                                        00538 
32739 GO TO 32742                                                       00541 
32740 CLASS=TOFF                                                        00541 
32742 GO TO 32744                                                       00543 
32743 IF((TEXEC).NE.(CLASS)) GO TO 32727                                00546 
      IF((TFORT).NE.(EXTYPE)) GO TO 32725                               00548 
      CONTINUE  !PURE FORTRAN, NOTHING MORE TO DO                       00548 
      GO TO 32726                                                       00549 
32725 IF((TINVOK).NE.(EXTYPE)) GO TO 32724                              00549 
      ASSIGN 32723 TO I32735                                            00549 
      GO TO 32735                                                       00549 
32723 GO TO 32726                                                       00550 
32724 IF((TCOND).NE.(EXTYPE)) GO TO 32722                               00550 
      ASSIGN 32721 TO I32735                                            00550 
      GO TO 32735                                                       00550 
32721 GO TO 32726                                                       00551 
32722 IF((TSELCT).NE.(EXTYPE)) GO TO 32720                              00551 
      ASSIGN 32718 TO I32719                                            00552 
      GO TO 32719                                                       00552 
32718 IF(.NOT.(NUNITS.GT.1)) GO TO 32717                                00553 
      NUNITS=1                                                          00554 
      CURSOR=USTART(2)                                                  00555 
      ASSIGN 32715 TO I32716                                            00556 
      GO TO 32716                                                       00556 
32715 ASSIGN 32714 TO I32735                                            00557 
      GO TO 32735                                                       00557 
32714 CONTINUE                                                          00558 
32717 GO TO 32726                                                       00560 
32720 ASSIGN 32713 TO I32719                                            00560 
      GO TO 32719                                                       00560 
32713 CONTINUE                                                          00561 
32726 GO TO 32728                                                       00563 
32727 IF((TFIN).NE.(CLASS)) GO TO 32712                                 00563 
      ASSIGN 32711 TO I32735                                            00563 
      GO TO 32735                                                       00563 
32711 GO TO 32728                                                       00564 
32712 IF((TEND).NE.(CLASS)) GO TO 32710                                 00564 
      CONTINUE                   !END HIT                               00564 
      GO TO 32728                                                       00565 
32710 IF((TELSE).NE.(CLASS)) GO TO 32709                                00565 
      ASSIGN 32707 TO I32708                                            00565 
      GO TO 32708                                                       00565 
32707 GO TO 32728                                                       00566 
32709 IF((TTO).NE.(CLASS)) GO TO 32706                                  00566 
      CSAVE=CURSOR                                                      00567 
      ASSIGN 32704 TO I32705                                            00568 
      GO TO 32705                                                       00568 
32704 IF(.NOT.(FOUND)) GO TO 32702                                      00569 
      ASSIGN 32701 TO I32708                                            00569 
      GO TO 32708                                                       00569 
32701 GO TO 32703                                                       00569 
32702 ERSTOP=ERSTOP+1                                                   00571 
      ERRSTK(ERSTOP)=5                                                  00572 
      ASSIGN 32699 TO I32700                                            00573 
      GO TO 32700                                                       00573 
32699 SFLX(1)=CSAVE                                                     00574 
      CALL CATSTR(SFLX,SDUM)                                            00575 
      CURSOR=CSAVE                                                      00576 
      ASSIGN 32698 TO I32716                                            00577 
      GO TO 32716                                                       00577 
32698 ASSIGN 32697 TO I32705                                            00578 
      GO TO 32705                                                       00578 
32697 CONTINUE                                                          00579 
32703 GO TO 32728                                                       00581 
32706 IF((TCEXP).NE.(CLASS)) GO TO 32696                                00581 
      ASSIGN 32695 TO I32719                                            00581 
      GO TO 32719                                                       00581 
32695 GO TO 32728                                                       00582 
32696 IF((TDIR).NE.(CLASS)) GO TO 32694                                 00582 
      IF((DPAGE).NE.(DTYPE)) GO TO 32692                                00584 
      ASSIGN 32691 TO I32735                                            00584 
      GO TO 32735                                                       00584 
32691 GO TO 32693                                                       00585 
32692 IF((DINCL).NE.(DTYPE)) GO TO 32690                                00585 
      ASSIGN 32689 TO I32737                                            00586 
      GO TO 32737                                                       00586 
32689 ASSIGN 32688 TO I32735                                            00587 
      GO TO 32735                                                       00587 
32688 GO TO 32693                                                       00589 
32690 IF((DPIF).NE.(DTYPE)) GO TO 32687                                 00589 
      ASSIGN 32686 TO I32737                                            00590 
      GO TO 32737                                                       00590 
32686 ASSIGN 32685 TO I32735                                            00591 
      GO TO 32735                                                       00591 
32685 GO TO 32693                                                       00593 
32687 IF((DPUNL).NE.(DTYPE)) GO TO 32684                                00593 
      ASSIGN 32683 TO I32737                                            00594 
      GO TO 32737                                                       00594 
32683 ASSIGN 32682 TO I32735                                            00595 
      GO TO 32735                                                       00595 
32682 GO TO 32693                                                       00597 
32684 IF((DPEND).NE.(DTYPE)) GO TO 32681                                00597 
      ASSIGN 32680 TO I32735                                            00597 
      GO TO 32735                                                       00597 
32680 GO TO 32693                                                       00598 
32681 IF((DNAME).NE.(DTYPE)) GO TO 32679                                00598 
      ASSIGN 32678 TO I32737                                            00599 
      GO TO 32737                                                       00599 
32678 ASSIGN 32677 TO I32735                                            00600 
      GO TO 32735                                                       00600 
32677 GO TO 32693                                                       00602 
32679 IF((DIMP).NE.(DTYPE)) GO TO 32676                                 00602 
      ASSIGN 32675 TO I32735                                            00602 
      GO TO 32735                                                       00602 
32675 CONTINUE                                                          00603 
32676 CONTINUE                                                          00603 
32693 CONTINUE                                                          00605 
32694 CONTINUE                                                          00605 
32728 CONTINUE                                                          00606 
32744 IF(ERSTOP.GT.0)  CLASS=0                                          00607 
      LSTLEV=LEVEL                                                      00608 
      IF(.NOT.(LSTFUL)) GO TO 32674                                     00613 
      IF(.NOT.(CLASS.NE.TEXEC.OR.EXTYPE.NE.TFORT)) GO TO 32673          00614 
      CALL CPYSTR(SLIST,SFLX)           !PUT FLX LINE IN LIST STRING    00615 
      CALL PUTCH(SLIST(2),1,CHC)        !PUT COMMENT CHAR IN COL 1      00616 
      CALL PUT(LINENO,SLIST,FORTCL)             !PUT IT OUT             00617 
      IF(.NOT.(CNTALL)) NUMLIN=NUMLIN-1   !USUALLY DON'T COUNT !830307  00618 
32673 CONTINUE                                                          00620 
32674 RETURN                                                            00622 
32672 CONTINUE                                                          00623 
      CURSOR=CURSOR+1                                                   00624 
      CPOS=CPOS+1                                                       00625 
      IF(.NOT.(CPOS.GT.NCHPWD)) GO TO 32671                             00626 
      CWD=CWD+1                                                         00627 
      CPOS=1                                                            00628 
32671 IF(.NOT.(CURSOR.GT.SFLX(1))) GO TO 32669                          00630 
      CHTYPE=TEOL                                                       00630 
      GO TO 32670                                                       00630 
32669 CALL GETCH(SFLX(CWD),CPOS,CH)                                     00632 
      CHTYPE=CHTYP(CH)                                                  00633 
32670 GO TO I32672                                                      00635 
32668 CONTINUE                                                          00636 
        LSTLEV=LEVEL                                                    00637 
      IF(.NOT.(LSTLEV.EQ.0)) GO TO 32666                                00638 
      CALL PUT(BLN,SB,LISTCL)                                           00638 
      GO TO 32667                                                       00638 
32666 CALL CPYSTR(SLIST,SB6)                                            00640 
      DO 32665 I=1,LSTLEV                                               00641 
      CALL CATSTR(SLIST,SSPACR)                                         00641 
32665 CONTINUE                                                          00641 
      IF(.NOT.(SLIST(1).GT.WWIDTH)) GO TO 32663                         00642 
      CALL PUT(BLN,SB,LISTCL)                                           00642 
      GO TO 32664                                                       00642 
32663 CALL PUT(BLN,SLIST,LISTCL)                                        00643 
32664 CONTINUE                                                          00644 
32667 BLN=0                                                             00645 
      GO TO I32668                                                      00646 
32662 CONTINUE                                                          00647 
      IF(.NOT.(LSTFUL)) GO TO 32661                                     00654 
      CALL PUT(LINENO,SFLX,FORTCL)                                      00655 
      IF(.NOT.(CNTALL)) NUMLIN=NUMLIN-1   !USUALLY DONT COUNT !830307   00656 
32661 CURSOR=1                                                          00659 
      ASSIGN 32660 TO I32716                                            00660 
      GO TO 32716                                                       00660 
32660 INDENT=.TRUE.                                                     00661 
      I=2                                                               00662 
      GO TO 32658                                                       00663 
32659 IF(.NOT.(I.LE.6.AND.INDENT)) GO TO 32657                          00663 
32658 ASSIGN 32656 TO I32672                                            00664 
      GO TO 32672                                                       00664 
32656 IF ((CHTYPE.NE.TBLANK).AND.(CHTYPE.NE.TEOL)) INDENT=.FALSE.       00665 
      I=I+1                                                             00666 
      GO TO 32659                                                       00667 
32657 IF(.NOT.(INDENT)) GO TO 32654                                     00668 
      LSTLEV=LEVEL                                                      00669 
      CLASS=0                                                           00670 
      ASSIGN 32652 TO I32653                                            00671 
      GO TO 32653                                                       00671 
32652 GO TO 32655                                                       00672 
32654 CALL PUT(LINENO,SFLX,LISTCL)                                      00673 
32655 GO TO I32662                                                      00674 
32651 CONTINUE                                                          00675 
      CALL PUT(0,SB,LISTCL)                                             00676 
      CALL PUT(0,SDASH,LISTCL)                                          00677 
      CALL PUT(0,SB,LISTCL)                                             00678 
      GO TO I32651                                                      00679 
32653 CONTINUE                                                          00680 
      IF(.NOT.(CLASS.EQ.TTO)) GO TO 32650                               00681 
      ASSIGN 32649 TO I32651                                            00681 
      GO TO 32651                                                       00681 
32649 CONTINUE                                                          00681 
32650 IF (SFLX(1).LT.7)  CALL CATSTR(SFLX,SB7)                          00682 
      CALL CPYSUB(SLIST,SFLX,1,6)                                       00683 
      IF(LSTLEV.EQ.0) GO TO 32648                                       00684 
      DO 32647 I=1,LSTLEV                                               00685 
      CALL CATSTR(SLIST,SSPACR)                                         00685 
32647 CONTINUE                                                          00685 
32648 IF(.NOT.(CLASS.EQ.TFIN)) GO TO 32646                              00687 
      SLIST(1)=SLIST(1)-SSPACR(1)                                       00688 
      CALL CATSTR(SLIST,SFSPCR)                                         00689 
32646 CALL CATSUB(SLIST,SFLX,7,SFLX(1)-6)                               00691 
      IF (SLIST(1).GT.WWIDTH)  CALL CPYSTR(SLIST,SFLX)                  00692 
      IF(.NOT.(ERLST)) GO TO 32644                                      00693 
      CALL PUT(LINENO,SLIST,ERRCL)                                      00694 
      ERLST=.FALSE.                                                     00695 
      GO TO 32645                                                       00696 
32644 CALL PUT(LINENO,SLIST,LISTCL)                                     00697 
32645 GO TO I32653                                                      00698 
32756 CONTINUE                                                          00699 
      GO TO 32642                                                       00704 
32643 IF(FOUND) GO TO 32641                                             00704 
32642 CALL GET(LINENO,SFLX,ENDFIL,ERR1,ERR2)            !821129MAO      00705 
      IF(.NOT.(FIRST)) GO TO 32640                                      00706 
32639 IF(SFLX(1).GT.0.OR.ENDFIL) GO TO 32638                            00707 
      CALL GET(LINENO,SFLX,ENDFIL,ERR1,ERR2)            !821129MAO      00708 
      GO TO 32639                                                       00709 
32638 FIRST=.FALSE.                                                     00710 
      IF(ENDFIL) NOPGM=.TRUE.                                           00711 
32640 IF(.NOT.(ENDFIL)) GO TO 32637                                     00713 
      CALL CPYSTR(SFLX,SAEND)                                           00715 
      LINENO=0                                                          00720 
32637 CALL GETCH(SFLX(2),1,CH)                                          00722 
      IF(.NOT.(SFLX(1).EQ.0)) GO TO 32635                               00724 
      BLN=LINENO                                                        00725 
      IF(.NOT.(PASFLG)) GO TO 32634                                     00726 
      ASSIGN 32633 TO I32668                                            00726 
      GO TO 32668                                                       00726 
32633 CONTINUE                                                          00726 
32634 FOUND=.FALSE.                                                     00727 
      GO TO 32636                                                       00729 
32635 IF(.NOT.(CH.EQ.CHC.OR.CH.EQ.FORMFD)) GO TO 32632                  00729 
      IF(.NOT.(PASFLG)) GO TO 32631                                     00730 
      ASSIGN 32630 TO I32662                                            00730 
      GO TO 32662                                                       00730 
32630 CONTINUE                                                          00730 
32631 FOUND=.FALSE.                                                     00731 
      GO TO 32636                                                       00733 
32632 FOUND=.TRUE.                                                      00733 
32636 GO TO 32643                                                       00735 
32641 GO TO I32756                                                      00736 
32716 CONTINUE                                                          00737 
      CURSOR=CURSOR-1                                                   00741 
      CWD=(CURSOR-1)/NCHPWD+2                                           00742 
      CPOS=CURSOR-(CWD-2)*NCHPWD                                        00743 
      ASSIGN 32629 TO I32672                                            00744 
      GO TO 32672                                                       00744 
32629 GO TO I32716                                                      00745 
32700 CONTINUE                                                          00746 
      IF(SAVED) GO TO 32628                                             00750 
      SAVED=.TRUE.                                                      00751 
      HOLDNO=LINENO                                                     00752 
      CALL CPYSTR(SHOLD,SFLX)                                           00753 
32628 GO TO I32700                                                      00755 
32750 CONTINUE                                                          00756 
      ASSIGN 32627 TO I32672                                            00761 
      GO TO 32672                                                       00761 
32627 IF(.NOT.(CHTYPE.EQ.TEOL)) GO TO 32625                             00763 
      CONT=.FALSE.                                                      00763 
      GO TO 32626                                                       00764 
32625 IF(.NOT.(CH.EQ.CHZERO.OR.CH.EQ.CHSPAC)) GO TO 32624               00764 
      CONT=.FALSE.                                                      00764 
      GO TO 32626                                                       00765 
32624 CONT=.TRUE.                                                       00766 
      IF(.NOT.(CNTALL)) NUMLIN=NUMLIN-1   !USUALLY DONT COUNT !830307   00767 
32626 GO TO I32750                                                      00770 
32719 CONTINUE                                                          00771 
32623 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32622                           00775 
      ASSIGN 32621 TO I32672                                            00775 
      GO TO 32672                                                       00775 
32621 GO TO 32623                                                       00775 
32622 START=CURSOR                                                      00776 
      IF(.NOT.(CHTYPE.NE.TLP)) GO TO 32620                              00777 
      ERSTOP=ERSTOP+1                                                   00778 
      ERRSTK(ERSTOP)=3                                                  00779 
      ASSIGN 32619 TO I32700                                            00780 
      GO TO 32700                                                       00780 
32619 CALL CPYSTR(SST,SFLX)                                             00781 
      SFLX(1)=START-1                                                   00782 
      CALL CATSTR(SFLX,SLP)                                             00783 
      CALL CATSUB(SFLX,SST,START,SST(1)-START-1)                        00784 
32620 PCNT=1            !COUNT OF # OF (                                00786 
      FOUND=.TRUE.                                                      00787 
      GO TO 32617                                                       00788 
32618 IF(PCNT.EQ.0.OR..NOT.FOUND) GO TO 32616                           00788 
32617 ASSIGN 32615 TO I32672                                            00789 
      GO TO 32672                                                       00789 
32615 IF((TRP).NE.(CHTYPE)) GO TO 32613                                 00791 
      PCNT=PCNT-1                                                       00791 
      GO TO 32614                                                       00792 
32613 IF((TLP).NE.(CHTYPE)) GO TO 32612                                 00792 
      PCNT=PCNT+1                                                       00792 
      GO TO 32614                                                       00793 
32612 IF((TEOL).NE.(CHTYPE)) GO TO 32611                                00793 
      FOUND=.FALSE.                                                     00793 
32611 CONTINUE                                                          00794 
32614 GO TO 32618                                                       00795 
32616 IF(FOUND) GO TO 32610                                             00796 
      ERSTOP=ERSTOP+1                                                   00800 
      ERRSTK(ERSTOP)=4                                                  00801 
      ASSIGN 32609 TO I32700                                            00802 
      GO TO 32700                                                       00802 
32609 DO 32608 I=1,PCNT                                                 00803 
      CALL CATSTR(SFLX,SRP)                                             00803 
32608 CONTINUE                                                          00803 
      CURSOR=SFLX(1)                                                    00804 
      ASSIGN 32607 TO I32716                                            00805 
      GO TO 32716                                                       00805 
32607 CONTINUE                                                          00806 
32610 ASSIGN 32606 TO I32672                                            00807 
      GO TO 32672                                                       00807 
32606 NUNITS=NUNITS+1                                                   00808 
      UTYPE(NUNITS)=UEXP                !ASSUME (LOGICAL)               00809 
      USTART(NUNITS)=START                                              00810 
      ULEN(NUNITS)=CURSOR-START                                         00811 
      CALL CPYSUB(SST,SFLX,START,CURSOR-START)                          00812 
      IF(STREQ(SST,SOWSE)) UTYPE(NUNITS)=UOWSE  !OOPS, IS (OTHERWISE)   00813 
      ASSIGN 32605 TO I32708                                            00814 
      GO TO 32708                                                       00814 
32605 GO TO I32719                                                      00815 
32735 CONTINUE                                                          00816 
32604 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32603                           00817 
      ASSIGN 32602 TO I32672                                            00817 
      GO TO 32672                                                       00817 
32602 GO TO 32604                                                       00817 
32603 IF(.NOT.(CHTYPE.NE.TEOL.AND.CH.NE.CINLIN)) GO TO 32601            00818 
      ERSTOP=ERSTOP+1           !BAD STUFF ON THE LINE                  00819 
      ERRSTK(ERSTOP)=2                                                  00820 
      ASSIGN 32600 TO I32700                                            00821 
      GO TO 32700                                                       00821 
32600 SFLX(1)=CURSOR-1                                                  00822 
32601 GO TO I32735                                                      00824 
32746 CONTINUE                                                          00825 
      ASSIGN 32599 TO I32672                                            00830 
      GO TO 32672                                                       00830 
32599 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32598                           00831 
      ASSIGN 32597 TO I32672                                            00831 
      GO TO 32672                                                       00831 
32597 GO TO 32599                                                       00831 
32598 IF(.NOT.(CH.NE.DIRCH)) GO TO 32595                                00832 
      DRCTV=.FALSE.  !not a directive !22-JUN-81 MAO                    00832 
      GO TO 32596                                                       00832 
32595 DRCTV=.TRUE.      !is a directive         !22-JUN-81              00834 
      ASSIGN 32594 TO I32672                                            00835 
      GO TO 32672                                                       00835 
32594 CONTINUE                                                          00836 
32596 IF((TLETTR).NE.(CHTYPE)) GO TO 32592                              00838 
      START=CURSOR                                                      00839 
      INVOKE=.FALSE.                                                    00840 
      BADCH=.FALSE.                                                     00841 
      GO TO 32590                                                       00842 
32591 IF(BADCH) GO TO 32589                                             00842 
32590 ASSIGN 32588 TO I32672                                            00843 
      GO TO 32672                                                       00843 
32588 IF(.NOT.(CHTYPE.LE.TDIGIT)) GO TO 32586                           00845 
      CONTINUE       !0-9 AND A-Z ONLY (NOT BLANK)                      00845 
      GO TO 32587                                                       00846 
32586 IF(.NOT.(CHTYPE.EQ.THYPHN)) GO TO 32585                           00846 
      INVOKE=.TRUE.  !A PROCEDURE INVOCATION                            00846 
      GO TO 32587                                                       00847 
32585 BADCH=.TRUE.          !END OF SCAN                                00847 
32587 GO TO 32591                                                       00849 
32589 LEN=CURSOR-START                                                  00850 
      IF(.NOT.(INVOKE)) GO TO 32583                                     00851 
      CLASS=TEXEC                                                       00852 
      EXTYPE=TINVOK                                                     00853 
      NUNITS=1                                                          00854 
      UTYPE(1)=UPINV                                                    00855 
      USTART(1)=START                                                   00856 
      ULEN(1)=LEN                                                       00857 
      GO TO 32584                                                       00858 
32583 CALL CPYSUB(SST,SFLX,START,LEN)   !PUT "KEYWORD" IN SST           00860 
      CLASS=TEXEC               !BUT ASSUME PURE FORTRAN                00861 
      EXTYPE=TFORT                                                      00862 
      IF((2).NE.(SST(1))) GO TO 32581                                   00864 
      IF(.NOT.(STREQ(SST,KIF).AND..NOT.DRCTV)) GO TO 32579              00866 
      EXTYPE=TIF        !17AUG81 MAO                                    00866 
      GO TO 32580                                                       00867 
32579 IF(.NOT.(STREQ(SST,KTO))) GO TO 32578                             00867 
      CLASS=TTO                                                         00867 
      GO TO 32580                                                       00868 
32578 IF(.NOT.(STREQ(SST,KDO))) GO TO 32577                             00868 
32576 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32575                           00869 
      ASSIGN 32574 TO I32672                                            00869 
      GO TO 32672                                                       00869 
32574 GO TO 32576                                                       00869 
32575 IF(.NOT.(CHTYPE.EQ.TDIGIT)) GO TO 32572                           00870 
      EXTYPE=TFORT      !OOPS, REALLY FORT DO                           00870 
      GO TO 32573                                                       00870 
32572 EXTYPE=TDO                                                        00871 
32573 CONTINUE                                                          00873 
32577 CONTINUE                                                          00873 
32580 GO TO 32582                                                       00875 
32581 IF((3).NE.(SST(1))) GO TO 32571                                   00875 
      IF(.NOT.(STREQ(SST,KFIN))) GO TO 32569                            00877 
      CLASS=TFIN                                                        00877 
      GO TO 32570                                                       00878 
32569 IF(.NOT.(STREQ(SST,KEND))) GO TO 32568                            00878 
      IF (CHTYPE.EQ.TEOL) CLASS=TEND                                    00879 
      IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32567                           00881 
      CLASS=TEND                                        !22-JUN-81      00885 
32567 CONTINUE                                                          00887 
      DRCTV=.FALSE.     !previously set .T. for .END    !29JUN81MAO     00888 
32568 CONTINUE                                                          00890 
32570 GO TO 32582                                                       00892 
32571 IF((4).NE.(SST(1))) GO TO 32566                                   00892 
      IF(.NOT.(STREQ(SST,KWHEN))) GO TO 32564                           00894 
      EXTYPE=TWHEN                                                      00894 
      GO TO 32565                                                       00895 
32564 IF(.NOT.(STREQ(SST,KELSE))) GO TO 32563                           00895 
      CLASS=TELSE                                                       00895 
      GO TO 32565                                                       00896 
32563 IF(.NOT.(STREQ(SST,KPAGE) .AND. DRCTV)) GO TO 32562               00896 
      CLASS=TDIR                                !22-JUN-81              00897 
      DTYPE=DPAGE                               !22-JUN-81              00898 
      GO TO 32565                                                       00900 
32562 IF(.NOT.(STREQ(SST,KNAME) .AND. DRCTV)) GO TO 32561               00900 
      CLASS=TDIR                                                        00901 
      DTYPE=DNAME                                                       00902 
32561 CONTINUE                                                          00904 
32565 GO TO 32582                                                       00906 
32566 IF((5).NE.(SST(1))) GO TO 32560                                   00906 
      IF(.NOT.(STREQ(SST,KWHILE))) GO TO 32558                          00908 
      EXTYPE=TWHILE                                                     00908 
      GO TO 32559                                                       00909 
32558 IF(.NOT.(STREQ(SST,KUNTIL))) GO TO 32557                          00909 
      EXTYPE=TUNTIL                                                     00909 
32557 CONTINUE                                                          00910 
32559 GO TO 32582                                                       00912 
32560 IF((6).NE.(SST(1))) GO TO 32556                                   00912 
      IF(.NOT.(STREQ(SST,KREPT))) GO TO 32554                           00914 
32553 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32552                           00915 
      ASSIGN 32551 TO I32672                                            00915 
      GO TO 32672                                                       00915 
32551 GO TO 32553                                                       00915 
32552 START=CURSOR                                                      00916 
32550 IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32549                           00917 
      ASSIGN 32548 TO I32672                                            00917 
      GO TO 32672                                                       00917 
32548 GO TO 32550                                                       00917 
32549 LEN=CURSOR-START                                                  00918 
      CALL CPYSUB(SST,SFLX,START,LEN)                                   00919 
      IF(.NOT.(STREQ(SST,KWHILE))) GO TO 32546                          00921 
      EXTYPE=TRWHIL                                                     00921 
      GO TO 32547                                                       00922 
32546 IF(.NOT.(STREQ(SST,KUNTIL))) GO TO 32545                          00922 
      EXTYPE=TRUNTL                                                     00922 
32545 CONTINUE                                                          00923 
32547 GO TO 32555                                                       00925 
32554 IF(.NOT.(STREQ(SST,KSELCT))) GO TO 32544                          00925 
      EXTYPE=TSELCT                                                     00925 
      GO TO 32555                                                       00926 
32544 IF(.NOT.(STREQ(SST,KUNLES))) GO TO 32543                          00926 
      EXTYPE=TUNLES                                                     00926 
      GO TO 32555                                                       00927 
32543 IF(.NOT.(STREQ(SST,KPIF) .AND. DRCTV)) GO TO 32542                00927 
      CLASS=TDIR                                                        00928 
      DTYPE=DPIF                                                        00929 
32542 CONTINUE                                                          00931 
32555 GO TO 32582                                                       00933 
32556 IF((7).NE.(SST(1))) GO TO 32541                                   00933 
      IF(.NOT.(STREQ(SST,KINCL) .AND. DRCTV)) GO TO 32540               00934 
      CLASS=TDIR                                                        00935 
      DTYPE=DINCL                                                       00936 
32540 IF(.NOT.(STREQ(SST,KPEND) .AND. DRCTV)) GO TO 32539               00938 
      CLASS=TDIR                                                        00939 
      DTYPE=DPEND                                                       00940 
32539 CONTINUE                                                          00943 
      GO TO 32582                                                       00958 
32541 IF((10).NE.(SST(1))) GO TO 32538                                  00958 
      IF(.NOT.(STREQ(SST,KPUNL) .AND. DRCTV)) GO TO 32537               00959 
      CLASS=TDIR                                                        00960 
      DTYPE=DPUNL                                                       00961 
32537 GO TO 32582                                                       00964 
32538 IF((11).NE.(SST(1))) GO TO 32536                                  00964 
      IF (STREQ(SST,KCOND)) EXTYPE=TCOND                                00965 
32536 CONTINUE                                                          00967 
32582 CONTINUE                                                          00968 
32584 GO TO 32593                                                       00970 
32592 IF((TLP).NE.(CHTYPE)) GO TO 32535                                 00970 
      CLASS=TCEXP         !MUST BE COND OR SELECT SUBCLAUSE             00970 
      GO TO 32593                                                       00971 
32535 CLASS=TEXEC                                                       00975 
      EXTYPE=TFORT                                                      00976 
32593 GO TO I32746                                                      00979 
32737 CONTINUE                                                          00980 
32534 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32533                           00984 
      ASSIGN 32532 TO I32672                                            00984 
      GO TO 32672                                                       00984 
32532 GO TO 32534                                                       00984 
32533 NUNITS=1                                                          00985 
      UTYPE(1)=UDIR                                                     00986 
      USTART(1)=CURSOR                                                  00987 
32531 IF(.NOT.(CHTYPE.NE.TEOL.AND.CH.NE.CINLIN)) GO TO 32530            00989 
      ASSIGN 32529 TO I32672                                            00989 
      GO TO 32672                                                       00989 
32529 GO TO 32531                                                       00989 
32530 ULEN(1)=CURSOR-USTART(1)                                          00990 
      GO TO I32737                                                      00991 
32705 CONTINUE                                                          00992 
32528 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32527                           00993 
      ASSIGN 32526 TO I32672                                            00993 
      GO TO 32672                                                       00993 
32526 GO TO 32528                                                       00993 
32527 FOUND=.FALSE.                                                     00994 
      IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32525                           00995 
      START=CURSOR                                                      00996 
      GO TO 32523                                                       00997 
32524 IF(CHTYPE.GT.THYPHN) GO TO 32522                                  00997 
32523 ASSIGN 32521 TO I32672                                            00998 
      GO TO 32672                                                       00998 
32521 IF(CHTYPE.EQ.THYPHN) FOUND=.TRUE.                                 00999 
      GO TO 32524                                                       01000 
32522 CONTINUE                                                          01001 
32525 IF(.NOT.(FOUND)) GO TO 32520                                      01002 
      NUNITS=NUNITS+1                                                   01003 
      UTYPE(NUNITS)=UPINV                                               01004 
      USTART(NUNITS)=START                                              01005 
      ULEN(NUNITS)=CURSOR-START                                         01006 
32520 GO TO I32705                                                      01008 
32708 CONTINUE                                                          01009 
32519 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32518                           01014 
      ASSIGN 32517 TO I32672                                            01014 
      GO TO 32672                                                       01014 
32517 GO TO 32519                                                       01014 
32518 IF(CHTYPE.EQ.TEOL.OR.CH.EQ.CINLIN) GO TO 32516                    01015 
      CSAVE=CURSOR                                                      01016 
      ASSIGN 32515 TO I32705                                            01017 
      GO TO 32705                                                       01017 
32515 IF(.NOT.(FOUND)) GO TO 32513                                      01018 
      ASSIGN 32512 TO I32735                                            01018 
      GO TO 32735                                                       01018 
32512 GO TO 32514                                                       01018 
32513 NUNITS=NUNITS+1                                                   01023 
      UTYPE(NUNITS)=UFORT                                               01024 
      USTART(NUNITS)=CSAVE                                              01025 
      ULEN(NUNITS)=SFLX(1)+1-CSAVE                                      01026 
32514 CONTINUE                                                          01028 
32516 GO TO I32708                                                      01029 
32752 CONTINUE                                                          01030 
      FLXNO=0                                                           01037 
      PASS=.FALSE.                                                      01038 
      DO 32511 I=1,5                                                    01039 
      ASSIGN 32510 TO I32672                                            01040 
      GO TO 32672                                                       01040 
32510 IF((TBLANK).NE.(CHTYPE)) GO TO 32508                              01042 
      GO TO 32509                                                       01043 
32508 IF((TDIGIT).NE.(CHTYPE)) GO TO 32507                              01043 
      FLXNO=FLXNO*10+CH-CHZERO                                          01043 
      GO TO 32509                                                       01044 
32507 IF((TEOL).NE.(CHTYPE)) GO TO 32506                                01044 
      GO TO 32509                                                       01045 
32506 PASS=.TRUE.  !ILLEGAL CHAR IN COL 1-5                             01045 
32509 CONTINUE                                                          01047 
32511 CONTINUE                                                          01047 
      GO TO I32752                                                      01048 
      END                                                               01049 
