      SUBROUTINE ANALYZ                                                 00065 
      INTEGER DTYPE                             !22-JUN-81              00113 
      COMMON/DIR/DTYPE                  !22-JUN-81                      00114 
      LOGICAL PASFLG                                    !30JUN81MAO     00116 
      INTEGER CNDLVL                                    !30JUN81MAO     00117 
      INTEGER OFFLVL                                    !30JUN81MAO     00118 
      INTEGER COND                                      !30JUN81MAO     00119 
      INTEGER CNDVAL                                    !30JUN81MAO     00120 
      COMMON/COND/PASFLG,CNDLVL,OFFLVL,COND,CNDVAL(4,10) !30JUN81MAO    00121 
      LOGICAL*2 ALECS,LSTFUL    !14-FEB-80                              00124 
      INTEGER*2 TYPIN,TYPLST,TYPOUT,CHCMNT      !14-FEB-80              00125 
      COMMON/MACVAL/ALECS,TYPIN,TYPLST,TYPOUT,CHCMNT,LSTFUL !14-FEB-80  00126 
      INTEGER SAEND                                                     00128 
      INTEGER FORMFD                                    !MAO15-SEP-80   00137 
      INTEGER DIRCH                                     !MAO22-JUN-81   00138 
      INTEGER KPAGE                                     !MAO22-JUN-81   00139 
      INTEGER KPIF,KPUNL,KPEND                          !30JUN81MAO     00140 
      INTEGER KNAME                                     !30JUN81MAO     00141 
      INTEGER TDIR                                      !MAO22-JUN-81   00142 
      INTEGER TOFF                                      !30JUN81MAO     00143 
      INTEGER DPAGE                                     !MAO22-JUN-81   00144 
      INTEGER KINCL,DINCL,UDIR                          !29-JUN-81MAO   00145 
      INTEGER DPIF,DPUNL,DPEND                          !30JUN81MAO     00146 
      INTEGER DNAME                                     !30JUN81MAO     00147 
      INTEGER BLN   , CH    , CHC   , CHSPAC, CHTYP , CHTYPE            00148 
      INTEGER CINLIN                                    !25-JAN-80      00149 
      INTEGER CHZERO, CLASS , CPOS  , CSAVE , CURSOR, CWD               00150 
      INTEGER ERRCL , ERROR , ERRSTK, ERSTOP                            00151 
      INTEGER EXTYPE, FLXNO , FORTCL, HOLDNO, I     , KCOND             00152 
      INTEGER KDO   , KELSE , KEND  , KFIN  , KIF   , KREPT             00153 
      INTEGER KSELCT, KTO   , KUNLES, KUNTIL, KWHEN , KWHILE            00154 
      INTEGER LEN   , LEVEL , LINENO, LISTCL, LSTLEV, MAJCNT            00155 
      INTEGER MINCNT, MLINE , NCHPWD, NUNITS, PCNT  , PTABLE, QP        00156 
      INTEGER READ  , REFNO ,RETRY  , SB    , SB5   , SB6               00157 
      INTEGER SB7   , SDASH , SDUM  , SEND  , SETUP , SFLX              00158 
      INTEGER SFSPCR, SHOLD , SLIST , SLP   , SOURCE, SOWSE             00159 
      INTEGER SP    , SPINV , SPUTGO, SRP   , SSPACR, SST               00160 
      INTEGER SSTMAX, STACK , START , TBLANK, TCEXP , TCOND             00161 
      INTEGER TDIGIT, TDO   , TELSE , TEND  , TEOL  , TEXEC             00162 
      INTEGER TFIN  , TFORT , THYPHN, TIF   , TINVOK, TLETTR            00163 
      INTEGER TLP   , TOP   , TOTHER, TRP   , TRUNTL, TRWHIL            00164 
      INTEGER TSELCT, TTO   , TUNLES, TUNTIL, TWHEN , TWHILE            00165 
      INTEGER UDO   , UEXP  , UFORT , ULEN  , UOWSE , UPINV             00166 
      INTEGER USTART, UTYPE , WWIDTH                                    00167 
      LOGICAL DRCTV                     !22-JUN-81 MAO                  00175 
      LOGICAL BADCH , CONT  , DONE  ,ENDFIL, ENDPGM, ERLST , FIRST      00176 
      LOGICAL FOUND , INDENT, INVOKE, NOPGM , PASS  , SAVED  , STREQ    00177 
      DIMENSION  UTYPE(3), USTART(3), ULEN(3)                           00185 
      DIMENSION STACK(2000)                                             00188 
      DIMENSION ERRSTK(5)                                               00191 
      COMMON BLN   , CLASS , DONE  , ENDFIL, ENDPGM, ERLST              00200 
      COMMON ERROR , ERRSTK, ERSTOP, EXTYPE, FIRST , FLXNO              00201 
      COMMON FOUND , HOLDNO, LEVEL , LINENO, LSTLEV, MAJCNT             00202 
      COMMON MINCNT, MLINE , NOPGM , NUNITS, PASS  , PTABLE, QP         00203 
      COMMON REFNO , SAVED , SFLX  , SHOLD , SLIST , SOURCE             00204 
      COMMON SPINV , SPUTGO, SST   , STACK , TOP   , ULEN               00205 
      COMMON USTART, UTYPE , WWIDTH                                     00206 
      COMMON /PARAM/ NCHPWD, CHZERO, CHSPAC, CHC, CINLIN   !25-JAN-80   00256 
      DIMENSION SFLX   (51)                                             00269 
      DIMENSION SHOLD  (51)                                             00271 
      DIMENSION SLIST  (101)                                            00273 
      DIMENSION SPINV  (41)                                             00275 
      DIMENSION SPUTGO (11)                                             00277 
      DIMENSION SST    (101)                                            00279 
      DIMENSION SB     (2)                                              00285 
      DIMENSION SB5    (4)                                              00288 
      DIMENSION SB6    (4)                                              00291 
      DIMENSION SB7    (5)                                              00294 
      DIMENSION SDASH  (21)                                             00297 
      DIMENSION SDUM   (9)                                              00302 
      DIMENSION SEND   (6)                                              00305 
      DIMENSION SFSPCR (3)                                              00308 
      DIMENSION SLP    (2)                                              00311 
      DIMENSION SOWSE  (7)                                              00314 
      DIMENSION SRP    (2)                                              00317 
      DIMENSION SSPACR (3)                                              00320 
      DIMENSION KCOND  (7)                                              00326 
      DIMENSION KDO    (2)                                              00329 
      DIMENSION KELSE  (3)                                              00332 
      DIMENSION KEND   (3)                                              00335 
      DIMENSION KFIN   (3)                                              00338 
      DIMENSION KIF    (2)                                              00341 
      DIMENSION KNAME(3)                                        !30JUN8100344 
      DIMENSION KINCL(5)                                        !29JUN8100347 
      DIMENSION KPAGE(3)                !22-JUN-81 (MAO)                00350 
      DIMENSION KPEND(5)                                        !30JUN8100353 
      DIMENSION KPIF (4)                                        !30JUN8100356 
      DIMENSION KPUNL(6)                                        !30JUN8100359 
      DIMENSION KREPT  (4)                                              00362 
      DIMENSION KSELCT (4)                                              00365 
      DIMENSION KTO    (2)                                              00368 
      DIMENSION KUNLES (4)                                              00371 
      DIMENSION KUNTIL (4)                                              00374 
      DIMENSION KWHEN  (3)                                              00377 
      DIMENSION KWHILE (4)                                              00380 
      DIMENSION SAEND(6)                                                00386 
      DATA FORMFD/"14/          !MAO15-SEP-80                           00396 
      DATA DIRCH /"56/  !DIRECTIVE FLAG CHARACTER !22-JUN-81 MAO        00397 
      DATA FORTCL /1/, LISTCL /2/, ERRCL /3/                            00398 
      DATA UEXP/1/, UFORT/2/, UOWSE/3/, UPINV/4/, UDO/5/                00399 
      DATA UDIR/6/                                              !29JUN8100400 
      DATA TLETTR/1/, TDIGIT/2/, THYPHN/3/, TLP/4/, TRP/5/              00401 
      DATA TBLANK/6/, TOTHER/7/, TEOL/8/                                00402 
      DATA TCEXP/1/, TELSE/2/, TEND/3/, TEXEC/4/, TFIN/5/, TTO/6/       00403 
      DATA TDIR/7/                                              !22-JUN-00404 
      DATA TOFF/8/                                              !30JUN8100405 
      DATA TCOND/1/, TDO/2/, TFORT/3/, TIF/4/, TINVOK/5/, TRUNTL/6/     00406 
      DATA TRWHIL/7/, TSELCT/8/, TUNLES/9/, TUNTIL/10/, TWHEN/11/       00407 
      DATA TWHILE/12/                                                   00408 
      DATA DPAGE/1/                                             !22-JUN-00409 
      DATA DINCL/2/                                             !29JUN8100410 
      DATA DPIF /3/, DPUNL /4/, DPEND /5/                       !30JUN8100411 
      DATA DNAME /6/                                            !30JUN8100412 
      DATA SETUP /1/, RETRY /2/, READ /3/                               00413 
      DATA SSTMAX /200/                                                 00414 
      DATA SB     /  1, 1H /                                            00415 
      DATA SB5    /  5, 2H  , 2H  , 1H /                                00416 
      DATA SB6    /  6, 2H  , 2H  , 2H  /                               00417 
      DATA SB7    /  7, 2H  , 2H  , 2H  , 1H /                          00418 
      DATA SDASH  / 40, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--  00419 
     1                , 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--  00420 
     1                , 2H--, 2H--, 2H--, 2H--/                         00421 
      DATA SDUM   / 15, 2HDU, 2HMM, 2HY-, 2HPR, 2HOC, 2HED, 2HUR, 1HE/  00422 
      DATA SEND   /  9, 2H  , 2H  , 2H  , 2HEN, 1HD/                    00423 
      DATA SFSPCR /  3, 2H.., 1H./                                      00424 
      DATA SLP    /  1, 1H(/                                            00425 
      DATA SOWSE  / 11, 2H(O, 2HTH, 2HER, 2HWI, 2HSE, 1H)/              00426 
      DATA SRP    /  1, 1H)/                                            00427 
      DATA SSPACR /  3, 2H. , 1H /                                      00428 
      DATA KCOND  / 11, 2HCO, 2HND, 2HIT, 2HIO, 2HNA, 1HL/              00429 
      DATA KDO    /  2, 2HDO/                                           00430 
      DATA KELSE  /  4, 2HEL, 2HSE/                                     00431 
      DATA KEND   /  3, 2HEN, 1HD/                                      00432 
      DATA KFIN   /  3, 2HFI, 1HN/                                      00433 
      DATA KIF    /  2, 2HIF/                                           00434 
      DATA KINCL /7, 2HIN, 2HCL, 2HUD, 1HE/                     !29JUN8100435 
      DATA KNAME / 4, 2HNA, 2HME/                               !30JUN8100436 
      DATA KPEND / 7, 2HPA, 2HSS, 2HEN, 1HD/                    !30JUN8100437 
      DATA KPIF /6, 2HPA, 2HSS, 2HIF/                           !30JUN8100438 
      DATA KPUNL / 10, 2HPA, 2HSS, 2HUN, 2HLE, 2HSS/            !30JUN8100439 
      DATA KPAGE/  4, 2HPA, 2HGE/               !22-JUN-81 MAO          00440 
      DATA KREPT  /  6, 2HRE, 2HPE, 2HAT/                               00441 
      DATA KSELCT /  6, 2HSE, 2HLE, 2HCT/                               00442 
      DATA KTO    /  2, 2HTO/                                           00443 
      DATA KUNLES /  6, 2HUN, 2HLE, 2HSS/                               00444 
      DATA KUNTIL /  5, 2HUN, 2HTI, 1HL/                                00445 
      DATA KWHEN  /  4, 2HWH, 2HEN/                                     00446 
      DATA KWHILE /  5, 2HWH, 2HIL, 1HE/                                00447 
      DATA SAEND  /10, 2H  ,2H  ,2H  ,2H.E,2HND/                        00451 
      IF((READ).NE.(SOURCE)) GO TO 32757                                00469 
      ASSIGN 32755 TO I32756                                            00469 
      GO TO 32756                                                       00469 
32755 GO TO 32758                                                       00470 
32757 IF((SETUP).NE.(SOURCE)) GO TO 32754                               00470 
      GO TO 32758                                                       00471 
32754 IF((RETRY).NE.(SOURCE)) GO TO 32753                               00471 
      LINENO=HOLDNO                                                     00472 
      CALL CPYSTR(SFLX,SHOLD)                                           00473 
32753 CONTINUE                                                          00475 
32758 ERROR=0                                                           00476 
      SAVED=.FALSE.     !HAVE NOT YET SAVED AN OLD LINE                 00477 
      NUNITS=0          !# OF UNITS OF INFO IN LINE                     00478 
      ERSTOP=0          !# OF ERRORS FOUND FOR THIS LINE                00479 
      CURSOR=0          !POSITION IN LINE OF CHARACTER SCAN             00480 
      CWD=2     !WORD IN LINE BEING LOOKED AT (WORD 1=CHARACTER COUNT)  00481 
      CPOS=0            !POSITION IN CWD OF CHARACTER                   00482 
      CLASS=0           !TYPE OF STATEMENT FOUND                        00483 
      ASSIGN 32751 TO I32752                                            00484 
      GO TO 32752                                                       00484 
32751 ASSIGN 32749 TO I32750                                            00485 
      GO TO 32750                                                       00485 
32749 IF(.NOT.(CONT.OR.PASS)) GO TO 32747                               00486 
      CLASS=TEXEC       !EXECUTABLE                                     00490 
      EXTYPE=TFORT      !PURE FORTRAN                                   00491 
      GO TO 32748                                                       00492 
32747 ASSIGN 32745 TO I32746                                            00493 
      GO TO 32746                                                       00493 
32745 CONTINUE                                                          00493 
32748 IF(.NOT.(.NOT.PASFLG)) GO TO 32743                                00495 
      IF(.NOT.(CLASS.EQ.TEND)) GO TO 32741                              00500 
      ERROR=404 !OOPS, HIT END WITH MISSING .PASSENDS!                  00501 
      CLASS=0                                                           00502 
      GO TO 32742                                                       00504 
32741 IF(.NOT.(CLASS.EQ.TDIR)) GO TO 32740                              00504 
      IF((DPIF).NE.(DTYPE)) GO TO 32738                                 00506 
      ASSIGN 32736 TO I32737                                            00507 
      GO TO 32737                                                       00507 
32736 ASSIGN 32734 TO I32735                                            00508 
      GO TO 32735                                                       00508 
32734 GO TO 32739                                                       00510 
32738 IF((DPUNL).NE.(DTYPE)) GO TO 32733                                00510 
      ASSIGN 32732 TO I32737                                            00511 
      GO TO 32737                                                       00511 
32732 ASSIGN 32731 TO I32735                                            00512 
      GO TO 32735                                                       00512 
32731 GO TO 32739                                                       00514 
32733 IF((DPEND).NE.(DTYPE)) GO TO 32730                                00514 
      ASSIGN 32729 TO I32735                                            00514 
      GO TO 32735                                                       00514 
32729 GO TO 32739                                                       00515 
32730 CLASS=TOFF                                                        00515 
32739 GO TO 32742                                                       00518 
32740 CLASS=TOFF                                                        00518 
32742 GO TO 32744                                                       00520 
32743 IF((TEXEC).NE.(CLASS)) GO TO 32727                                00523 
      IF((TFORT).NE.(EXTYPE)) GO TO 32725                               00525 
      CONTINUE  !PURE FORTRAN, NOTHING MORE TO DO                       00525 
      GO TO 32726                                                       00526 
32725 IF((TINVOK).NE.(EXTYPE)) GO TO 32724                              00526 
      ASSIGN 32723 TO I32735                                            00526 
      GO TO 32735                                                       00526 
32723 GO TO 32726                                                       00527 
32724 IF((TCOND).NE.(EXTYPE)) GO TO 32722                               00527 
      ASSIGN 32721 TO I32735                                            00527 
      GO TO 32735                                                       00527 
32721 GO TO 32726                                                       00528 
32722 IF((TSELCT).NE.(EXTYPE)) GO TO 32720                              00528 
      ASSIGN 32718 TO I32719                                            00529 
      GO TO 32719                                                       00529 
32718 IF(.NOT.(NUNITS.GT.1)) GO TO 32717                                00530 
      NUNITS=1                                                          00531 
      CURSOR=USTART(2)                                                  00532 
      ASSIGN 32715 TO I32716                                            00533 
      GO TO 32716                                                       00533 
32715 ASSIGN 32714 TO I32735                                            00534 
      GO TO 32735                                                       00534 
32714 CONTINUE                                                          00535 
32717 GO TO 32726                                                       00537 
32720 ASSIGN 32713 TO I32719                                            00537 
      GO TO 32719                                                       00537 
32713 CONTINUE                                                          00538 
32726 GO TO 32728                                                       00540 
32727 IF((TFIN).NE.(CLASS)) GO TO 32712                                 00540 
      ASSIGN 32711 TO I32735                                            00540 
      GO TO 32735                                                       00540 
32711 GO TO 32728                                                       00541 
32712 IF((TEND).NE.(CLASS)) GO TO 32710                                 00541 
      CONTINUE                   !END HIT                               00541 
      GO TO 32728                                                       00542 
32710 IF((TELSE).NE.(CLASS)) GO TO 32709                                00542 
      ASSIGN 32707 TO I32708                                            00542 
      GO TO 32708                                                       00542 
32707 GO TO 32728                                                       00543 
32709 IF((TTO).NE.(CLASS)) GO TO 32706                                  00543 
      CSAVE=CURSOR                                                      00544 
      ASSIGN 32704 TO I32705                                            00545 
      GO TO 32705                                                       00545 
32704 IF(.NOT.(FOUND)) GO TO 32702                                      00546 
      ASSIGN 32701 TO I32708                                            00546 
      GO TO 32708                                                       00546 
32701 GO TO 32703                                                       00546 
32702 ERSTOP=ERSTOP+1                                                   00548 
      ERRSTK(ERSTOP)=5                                                  00549 
      ASSIGN 32699 TO I32700                                            00550 
      GO TO 32700                                                       00550 
32699 SFLX(1)=CSAVE                                                     00551 
      CALL CATSTR(SFLX,SDUM)                                            00552 
      CURSOR=CSAVE                                                      00553 
      ASSIGN 32698 TO I32716                                            00554 
      GO TO 32716                                                       00554 
32698 ASSIGN 32697 TO I32705                                            00555 
      GO TO 32705                                                       00555 
32697 CONTINUE                                                          00556 
32703 GO TO 32728                                                       00558 
32706 IF((TCEXP).NE.(CLASS)) GO TO 32696                                00558 
      ASSIGN 32695 TO I32719                                            00558 
      GO TO 32719                                                       00558 
32695 GO TO 32728                                                       00559 
32696 IF((TDIR).NE.(CLASS)) GO TO 32694                                 00559 
      IF((DPAGE).NE.(DTYPE)) GO TO 32692                                00561 
      ASSIGN 32691 TO I32735                                            00561 
      GO TO 32735                                                       00561 
32691 GO TO 32693                                                       00562 
32692 IF((DINCL).NE.(DTYPE)) GO TO 32690                                00562 
      ASSIGN 32689 TO I32737                                            00563 
      GO TO 32737                                                       00563 
32689 ASSIGN 32688 TO I32735                                            00564 
      GO TO 32735                                                       00564 
32688 GO TO 32693                                                       00566 
32690 IF((DPIF).NE.(DTYPE)) GO TO 32687                                 00566 
      ASSIGN 32686 TO I32737                                            00567 
      GO TO 32737                                                       00567 
32686 ASSIGN 32685 TO I32735                                            00568 
      GO TO 32735                                                       00568 
32685 GO TO 32693                                                       00570 
32687 IF((DPUNL).NE.(DTYPE)) GO TO 32684                                00570 
      ASSIGN 32683 TO I32737                                            00571 
      GO TO 32737                                                       00571 
32683 ASSIGN 32682 TO I32735                                            00572 
      GO TO 32735                                                       00572 
32682 GO TO 32693                                                       00574 
32684 IF((DPEND).NE.(DTYPE)) GO TO 32681                                00574 
      ASSIGN 32680 TO I32735                                            00574 
      GO TO 32735                                                       00574 
32680 GO TO 32693                                                       00575 
32681 IF((DNAME).NE.(DTYPE)) GO TO 32679                                00575 
      ASSIGN 32678 TO I32737                                            00576 
      GO TO 32737                                                       00576 
32678 ASSIGN 32677 TO I32735                                            00577 
      GO TO 32735                                                       00577 
32677 CONTINUE                                                          00579 
32679 CONTINUE                                                          00579 
32693 CONTINUE                                                          00581 
32694 CONTINUE                                                          00581 
32728 CONTINUE                                                          00582 
32744 IF(ERSTOP.GT.0)  CLASS=0                                          00583 
      LSTLEV=LEVEL                                                      00584 
      IF(.NOT.(LSTFUL.AND.(CLASS.NE.TEXEC.OR.EXTYPE.NE.TFORT))) GO TO 3200589 
     1676                                                               00589 
      CALL CPYSTR(SLIST,SFLX)           !PUT FLX LINE IN LIST STRING    00590 
      CALL PUTCH(SLIST(2),1,CHC)        !PUT COMMENT CHAR IN COL 1      00591 
      CALL PUT(LINENO,SLIST,FORTCL)             !PUT IT OUT             00592 
32676 RETURN                                                            00595 
32675 CONTINUE                                                          00596 
      CURSOR=CURSOR+1                                                   00597 
      CPOS=CPOS+1                                                       00598 
      IF(.NOT.(CPOS.GT.NCHPWD)) GO TO 32674                             00599 
      CWD=CWD+1                                                         00600 
      CPOS=1                                                            00601 
32674 IF(.NOT.(CURSOR.GT.SFLX(1))) GO TO 32672                          00603 
      CHTYPE=TEOL                                                       00603 
      GO TO 32673                                                       00603 
32672 CALL GETCH(SFLX(CWD),CPOS,CH)                                     00605 
      CHTYPE=CHTYP(CH)                                                  00606 
32673 GO TO I32675                                                      00608 
32671 CONTINUE                                                          00609 
        LSTLEV=LEVEL                                                    00610 
      IF(.NOT.(LSTLEV.EQ.0)) GO TO 32669                                00611 
      CALL PUT(BLN,SB,LISTCL)                                           00611 
      GO TO 32670                                                       00611 
32669 CALL CPYSTR(SLIST,SB6)                                            00613 
      DO 32668 I=1,LSTLEV                                               00614 
      CALL CATSTR(SLIST,SSPACR)                                         00614 
32668 CONTINUE                                                          00614 
      IF(.NOT.(SLIST(1).GT.WWIDTH)) GO TO 32666                         00615 
      CALL PUT(BLN,SP,LISTCL)                                           00615 
      GO TO 32667                                                       00615 
32666 CALL PUT(BLN,SLIST,LISTCL)                                        00616 
32667 CONTINUE                                                          00617 
32670 BLN=0                                                             00618 
      GO TO I32671                                                      00619 
32665 CONTINUE                                                          00620 
      CURSOR=1                                                          00625 
      ASSIGN 32664 TO I32716                                            00626 
      GO TO 32716                                                       00626 
32664 INDENT=.TRUE.                                                     00627 
      I=2                                                               00628 
      GO TO 32662                                                       00629 
32663 IF(.NOT.(I.LE.6.AND.INDENT)) GO TO 32661                          00629 
32662 ASSIGN 32660 TO I32675                                            00630 
      GO TO 32675                                                       00630 
32660   IF ((CHTYPE.NE.TBLANK).AND.(CHTYPE.NE.TEOL)) INDENT=.FALSE.     00631 
      I=I+1                                                             00632 
      GO TO 32663                                                       00633 
32661 IF(.NOT.(INDENT)) GO TO 32658                                     00634 
      LSTLEV=LEVEL                                                      00635 
      CLASS=0                                                           00636 
      ASSIGN 32656 TO I32657                                            00637 
      GO TO 32657                                                       00637 
32656 GO TO 32659                                                       00638 
32658 CALL PUT(LINENO,SFLX,LISTCL)                                      00639 
32659 IF(LSTFUL)CALL PUT(LINENO,SFLX,FORTCL)                            00643 
      GO TO I32665                                                      00645 
32655 CONTINUE                                                          00646 
      CALL PUT(0,SB,LISTCL)                                             00647 
      CALL PUT(0,SDASH,LISTCL)                                          00648 
      CALL PUT(0,SB,LISTCL)                                             00649 
      GO TO I32655                                                      00650 
32657 CONTINUE                                                          00651 
      IF(.NOT.(CLASS.EQ.TTO)) GO TO 32654                               00652 
      ASSIGN 32653 TO I32655                                            00652 
      GO TO 32655                                                       00652 
32653 CONTINUE                                                          00652 
32654 IF (SFLX(1).LT.7)  CALL CATSTR(SFLX,SB7)                          00653 
      CALL CPYSUB(SLIST,SFLX,1,6)                                       00654 
      IF(LSTLEV.EQ.0) GO TO 32652                                       00655 
      DO 32651 I=1,LSTLEV                                               00656 
      CALL CATSTR(SLIST,SSPACR)                                         00656 
32651 CONTINUE                                                          00656 
32652 IF(.NOT.(CLASS.EQ.TFIN)) GO TO 32650                              00658 
      SLIST(1)=SLIST(1)-SSPACR(1)                                       00659 
      CALL CATSTR(SLIST,SFSPCR)                                         00660 
32650 CALL CATSUB(SLIST,SFLX,7,SFLX(1)-6)                               00662 
      IF (SLIST(1).GT.WWIDTH)  CALL CPYSTR(SLIST,SFLX)                  00663 
      IF(.NOT.(ERLST)) GO TO 32648                                      00664 
      CALL PUT(LINENO,SLIST,ERRCL)                                      00665 
      ERLST=.FALSE.                                                     00666 
      GO TO 32649                                                       00667 
32648 CALL PUT(LINENO,SLIST,LISTCL)                                     00668 
32649 GO TO I32657                                                      00669 
32756 CONTINUE                                                          00670 
      GO TO 32646                                                       00675 
32647 IF(FOUND) GO TO 32645                                             00675 
32646 CALL GET(LINENO,SFLX,ENDFIL)                                      00676 
      IF(.NOT.(FIRST)) GO TO 32644                                      00677 
32643 IF(SFLX(1).GT.0.OR.ENDFIL) GO TO 32642                            00678 
      CALL GET(LINENO,SFLX,ENDFIL)                                      00678 
      GO TO 32643                                                       00678 
32642 FIRST=.FALSE.                                                     00679 
      IF(ENDFIL) NOPGM=.TRUE.                                           00680 
32644 IF(.NOT.(ENDFIL)) GO TO 32641                                     00682 
      IF(.NOT.(ALECS)) GO TO 32639                                      00685 
      CALL CPYSTR(SFLX,SAEND)                                           00685 
      GO TO 32640                                                       00685 
32639 CALL CPYSTR(SFLX,SEND)                                            00689 
32640 LINENO=0                                                          00695 
32641 CALL GETCH(SFLX(2),1,CH)                                          00697 
      IF(.NOT.(SFLX(1).EQ.0)) GO TO 32637                               00699 
      BLN=LINENO                                                        00700 
      IF(.NOT.(PASFLG)) GO TO 32636                                     00701 
      ASSIGN 32635 TO I32671                                            00701 
      GO TO 32671                                                       00701 
32635 CONTINUE                                                          00701 
32636 FOUND=.FALSE.                                                     00702 
      GO TO 32638                                                       00704 
32637 IF(.NOT.(CH.EQ.CHC.OR.CH.EQ.FORMFD)) GO TO 32634                  00704 
      IF(.NOT.(PASFLG)) GO TO 32633                                     00705 
      ASSIGN 32632 TO I32665                                            00705 
      GO TO 32665                                                       00705 
32632 CONTINUE                                                          00705 
32633 FOUND=.FALSE.                                                     00706 
      GO TO 32638                                                       00708 
32634 FOUND=.TRUE.                                                      00708 
32638 GO TO 32647                                                       00710 
32645 GO TO I32756                                                      00711 
32716 CONTINUE                                                          00712 
      CURSOR=CURSOR-1                                                   00716 
      CWD=(CURSOR-1)/NCHPWD+2                                           00717 
      CPOS=CURSOR-(CWD-2)*NCHPWD                                        00718 
      ASSIGN 32631 TO I32675                                            00719 
      GO TO 32675                                                       00719 
32631 GO TO I32716                                                      00720 
32700 CONTINUE                                                          00721 
      IF(SAVED) GO TO 32630                                             00725 
      SAVED=.TRUE.                                                      00726 
      HOLDNO=LINENO                                                     00727 
      CALL CPYSTR(SHOLD,SFLX)                                           00728 
32630 GO TO I32700                                                      00730 
32750 CONTINUE                                                          00731 
      ASSIGN 32629 TO I32675                                            00736 
      GO TO 32675                                                       00736 
32629 IF(.NOT.(CHTYPE.EQ.TEOL)) GO TO 32627                             00738 
      CONT=.FALSE.                                                      00738 
      GO TO 32628                                                       00739 
32627 IF(.NOT.(CH.EQ.CHZERO.OR.CH.EQ.CHSPAC)) GO TO 32626               00739 
      CONT=.FALSE.                                                      00739 
      GO TO 32628                                                       00740 
32626 CONT=.TRUE.                                                       00740 
32628 GO TO I32750                                                      00742 
32719 CONTINUE                                                          00743 
32625 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32624                           00747 
      ASSIGN 32623 TO I32675                                            00747 
      GO TO 32675                                                       00747 
32623 GO TO 32625                                                       00747 
32624 START=CURSOR                                                      00748 
      IF(.NOT.(CHTYPE.NE.TLP)) GO TO 32622                              00749 
      ERSTOP=ERSTOP+1                                                   00750 
      ERRSTK(ERSTOP)=3                                                  00751 
      ASSIGN 32621 TO I32700                                            00752 
      GO TO 32700                                                       00752 
32621 CALL CPYSTR(SST,SFLX)                                             00753 
      SFLX(1)=START-1                                                   00754 
      CALL CATSTR(SFLX,SLP)                                             00755 
      CALL CATSUB(SFLX,SST,START,SST(1)-START-1)                        00756 
32622 PCNT=1            !COUNT OF # OF (                                00758 
      FOUND=.TRUE.                                                      00759 
      GO TO 32619                                                       00760 
32620 IF(PCNT.EQ.0.OR..NOT.FOUND) GO TO 32618                           00760 
32619 ASSIGN 32617 TO I32675                                            00761 
      GO TO 32675                                                       00761 
32617 IF((TRP).NE.(CHTYPE)) GO TO 32615                                 00763 
      PCNT=PCNT-1                                                       00763 
      GO TO 32616                                                       00764 
32615 IF((TLP).NE.(CHTYPE)) GO TO 32614                                 00764 
      PCNT=PCNT+1                                                       00764 
      GO TO 32616                                                       00765 
32614 IF((TEOL).NE.(CHTYPE)) GO TO 32613                                00765 
      FOUND=.FALSE.                                                     00765 
32613 CONTINUE                                                          00766 
32616 GO TO 32620                                                       00767 
32618 IF(FOUND) GO TO 32612                                             00768 
      ERSTOP=ERSTOP+1                                                   00772 
      ERRSTK(ERSTOP)=4                                                  00773 
      ASSIGN 32611 TO I32700                                            00774 
      GO TO 32700                                                       00774 
32611 DO 32610 I=1,PCNT                                                 00775 
      CALL CATSTR(SFLX,SRP)                                             00775 
32610 CONTINUE                                                          00775 
      CURSOR=SFLX(1)                                                    00776 
      ASSIGN 32609 TO I32716                                            00777 
      GO TO 32716                                                       00777 
32609 CONTINUE                                                          00778 
32612 ASSIGN 32608 TO I32675                                            00779 
      GO TO 32675                                                       00779 
32608 NUNITS=NUNITS+1                                                   00780 
      UTYPE(NUNITS)=UEXP                !ASSUME (LOGICAL)               00781 
      USTART(NUNITS)=START                                              00782 
      ULEN(NUNITS)=CURSOR-START                                         00783 
      CALL CPYSUB(SST,SFLX,START,CURSOR-START)                          00784 
      IF(STREQ(SST,SOWSE)) UTYPE(NUNITS)=UOWSE  !OOPS, REALLY (OTHERWISE00785 
      ASSIGN 32607 TO I32708                                            00786 
      GO TO 32708                                                       00786 
32607 GO TO I32719                                                      00787 
32735 CONTINUE                                                          00788 
32606 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32605                           00789 
      ASSIGN 32604 TO I32675                                            00789 
      GO TO 32675                                                       00789 
32604 GO TO 32606                                                       00789 
32605 IF(.NOT.(CHTYPE.NE.TEOL.AND.CH.NE.CINLIN)) GO TO 32603            00790 
      ERSTOP=ERSTOP+1           !BAD STUFF ON THE LINE                  00791 
      ERRSTK(ERSTOP)=2                                                  00792 
      ASSIGN 32602 TO I32700                                            00793 
      GO TO 32700                                                       00793 
32602 SFLX(1)=CURSOR-1                                                  00794 
32603 GO TO I32735                                                      00796 
32746 CONTINUE                                                          00797 
      ASSIGN 32601 TO I32675                                            00802 
      GO TO 32675                                                       00802 
32601 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32600                           00803 
      ASSIGN 32599 TO I32675                                            00803 
      GO TO 32675                                                       00803 
32599 GO TO 32601                                                       00803 
32600 IF(.NOT.(CH.NE.DIRCH)) GO TO 32597                                00804 
      DRCTV=.FALSE.  !not a directive !22-JUN-81 MAO                    00804 
      GO TO 32598                                                       00804 
32597 DRCTV=.TRUE.      !is a directive         !22-JUN-81              00806 
      ASSIGN 32596 TO I32675                                            00807 
      GO TO 32675                                                       00807 
32596 CONTINUE                                                          00808 
32598 IF((TLETTR).NE.(CHTYPE)) GO TO 32594                              00810 
      START=CURSOR                                                      00811 
      INVOKE=.FALSE.                                                    00812 
      BADCH=.FALSE.                                                     00813 
      GO TO 32592                                                       00814 
32593 IF(BADCH) GO TO 32591                                             00814 
32592 ASSIGN 32590 TO I32675                                            00815 
      GO TO 32675                                                       00815 
32590 IF(.NOT.(CHTYPE.LE.TDIGIT)) GO TO 32588                           00817 
      CONTINUE       !0-9 AND A-Z ONLY (BLANKS EXCLUD                   00817 
      GO TO 32589                                                       00818 
32588 IF(.NOT.(CHTYPE.EQ.THYPHN)) GO TO 32587                           00818 
      INVOKE=.TRUE.  !A PROCEDURE INVOCATION                            00818 
      GO TO 32589                                                       00819 
32587 BADCH=.TRUE.          !END OF SCAN                                00819 
32589 GO TO 32593                                                       00821 
32591 LEN=CURSOR-START                                                  00822 
      IF(.NOT.(INVOKE)) GO TO 32585                                     00823 
      CLASS=TEXEC                                                       00824 
      EXTYPE=TINVOK                                                     00825 
      NUNITS=1                                                          00826 
      UTYPE(1)=UPINV                                                    00827 
      USTART(1)=START                                                   00828 
      ULEN(1)=LEN                                                       00829 
      GO TO 32586                                                       00830 
32585 CALL CPYSUB(SST,SFLX,START,LEN)   !PUT "KEYWORD" IN SST           00832 
      CLASS=TEXEC               !BUT ASSUME PURE FORTRAN                00833 
      EXTYPE=TFORT                                                      00834 
      IF((2).NE.(SST(1))) GO TO 32583                                   00836 
      IF(.NOT.(STREQ(SST,KIF).AND..NOT.DRCTV)) GO TO 32581              00838 
      EXTYPE=TIF        !17AUG81 MAO                                    00838 
      GO TO 32582                                                       00839 
32581 IF(.NOT.(STREQ(SST,KTO))) GO TO 32580                             00839 
      CLASS=TTO                                                         00839 
      GO TO 32582                                                       00840 
32580 IF(.NOT.(STREQ(SST,KDO))) GO TO 32579                             00840 
32578 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32577                           00841 
      ASSIGN 32576 TO I32675                                            00841 
      GO TO 32675                                                       00841 
32576 GO TO 32578                                                       00841 
32577 IF(.NOT.(CHTYPE.EQ.TDIGIT)) GO TO 32574                           00842 
      EXTYPE=TFORT      !OOPS, REALLY FORT DO                           00842 
      GO TO 32575                                                       00842 
32574 EXTYPE=TDO                                                        00843 
32575 CONTINUE                                                          00845 
32579 CONTINUE                                                          00845 
32582 GO TO 32584                                                       00847 
32583 IF((3).NE.(SST(1))) GO TO 32573                                   00847 
      IF(.NOT.(STREQ(SST,KFIN))) GO TO 32571                            00849 
      CLASS=TFIN                                                        00849 
      GO TO 32572                                                       00850 
32571 IF(.NOT.(STREQ(SST,KEND))) GO TO 32570                            00850 
      IF (CHTYPE.EQ.TEOL) CLASS=TEND                                    00851 
      IF(.NOT.(ALECS .AND. CHTYPE.EQ.TBLANK)) GO TO 32569               00854 
      CLASS=TEND                                                !22-JUN-00858 
32569 DRCTV=.FALSE.     !previously set .T. for .END            !29JUN8100860 
32570 CONTINUE                                                          00864 
32572 GO TO 32584                                                       00866 
32573 IF((4).NE.(SST(1))) GO TO 32568                                   00866 
      IF(.NOT.(STREQ(SST,KWHEN))) GO TO 32566                           00868 
      EXTYPE=TWHEN                                                      00868 
      GO TO 32567                                                       00869 
32566 IF(.NOT.(STREQ(SST,KELSE))) GO TO 32565                           00869 
      CLASS=TELSE                                                       00869 
      GO TO 32567                                                       00870 
32565 IF(.NOT.(STREQ(SST,KPAGE) .AND. DRCTV)) GO TO 32564               00870 
      CLASS=TDIR                                !22-JUN-81              00871 
      DTYPE=DPAGE                               !22-JUN-81              00872 
      GO TO 32567                                                       00874 
32564 IF(.NOT.(STREQ(SST,KNAME) .AND. DRCTV)) GO TO 32563               00874 
      CLASS=TDIR                                                        00875 
      DTYPE=DNAME                                                       00876 
32563 CONTINUE                                                          00878 
32567 GO TO 32584                                                       00880 
32568 IF((5).NE.(SST(1))) GO TO 32562                                   00880 
      IF(.NOT.(STREQ(SST,KWHILE))) GO TO 32560                          00882 
      EXTYPE=TWHILE                                                     00882 
      GO TO 32561                                                       00883 
32560 IF(.NOT.(STREQ(SST,KUNTIL))) GO TO 32559                          00883 
      EXTYPE=TUNTIL                                                     00883 
32559 CONTINUE                                                          00884 
32561 GO TO 32584                                                       00886 
32562 IF((6).NE.(SST(1))) GO TO 32558                                   00886 
      IF(.NOT.(STREQ(SST,KREPT))) GO TO 32556                           00888 
32555 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32554                           00889 
      ASSIGN 32553 TO I32675                                            00889 
      GO TO 32675                                                       00889 
32553 GO TO 32555                                                       00889 
32554 START=CURSOR                                                      00890 
32552 IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32551                           00891 
      ASSIGN 32550 TO I32675                                            00891 
      GO TO 32675                                                       00891 
32550 GO TO 32552                                                       00891 
32551 LEN=CURSOR-START                                                  00892 
      CALL CPYSUB(SST,SFLX,START,LEN)                                   00893 
      IF(.NOT.(STREQ(SST,KWHILE))) GO TO 32548                          00895 
      EXTYPE=TRWHIL                                                     00895 
      GO TO 32549                                                       00896 
32548 IF(.NOT.(STREQ(SST,KUNTIL))) GO TO 32547                          00896 
      EXTYPE=TRUNTL                                                     00896 
32547 CONTINUE                                                          00897 
32549 GO TO 32557                                                       00899 
32556 IF(.NOT.(STREQ(SST,KSELCT))) GO TO 32546                          00899 
      EXTYPE=TSELCT                                                     00899 
      GO TO 32557                                                       00900 
32546 IF(.NOT.(STREQ(SST,KUNLES))) GO TO 32545                          00900 
      EXTYPE=TUNLES                                                     00900 
      GO TO 32557                                                       00901 
32545 IF(.NOT.(STREQ(SST,KPIF) .AND. DRCTV)) GO TO 32544                00901 
      CLASS=TDIR                                                        00902 
      DTYPE=DPIF                                                        00903 
32544 CONTINUE                                                          00905 
32557 GO TO 32584                                                       00907 
32558 IF((7).NE.(SST(1))) GO TO 32543                                   00907 
      IF(.NOT.(STREQ(SST,KINCL) .AND. DRCTV)) GO TO 32542               00908 
      CLASS=TDIR                                                        00909 
      DTYPE=DINCL                                                       00910 
32542 IF(.NOT.(STREQ(SST,KPEND) .AND. DRCTV)) GO TO 32541               00912 
      CLASS=TDIR                                                        00913 
      DTYPE=DPEND                                                       00914 
32541 GO TO 32584                                                       00917 
32543 IF((10).NE.(SST(1))) GO TO 32540                                  00917 
      IF(.NOT.(STREQ(SST,KPUNL) .AND. DRCTV)) GO TO 32539               00918 
      CLASS=TDIR                                                        00919 
      DTYPE=DPUNL                                                       00920 
32539 GO TO 32584                                                       00923 
32540 IF((11).NE.(SST(1))) GO TO 32538                                  00923 
      IF (STREQ(SST,KCOND)) EXTYPE=TCOND                                00924 
32538 CONTINUE                                                          00926 
32584 CONTINUE                                                          00927 
32586 GO TO 32595                                                       00929 
32594 IF((TLP).NE.(CHTYPE)) GO TO 32537                                 00929 
      CLASS=TCEXP         !MUST BE COND OR SELECT SUBCLAUSE             00929 
      GO TO 32595                                                       00930 
32537 CLASS=TEXEC                                                       00934 
      EXTYPE=TFORT                                                      00935 
32595 GO TO I32746                                                      00938 
32737 CONTINUE                                                          00939 
32536 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32535                           00943 
      ASSIGN 32534 TO I32675                                            00943 
      GO TO 32675                                                       00943 
32534 GO TO 32536                                                       00943 
32535 NUNITS=1                                                          00944 
      UTYPE(1)=UDIR                                                     00945 
      USTART(1)=CURSOR                                                  00946 
32533 IF(.NOT.(CHTYPE.NE.TEOL.AND.CH.NE.CINLIN)) GO TO 32532            00948 
      ASSIGN 32531 TO I32675                                            00948 
      GO TO 32675                                                       00948 
32531 GO TO 32533                                                       00948 
32532 ULEN(1)=CURSOR-USTART(1)                                          00949 
      GO TO I32737                                                      00950 
32705 CONTINUE                                                          00951 
32530 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32529                           00952 
      ASSIGN 32528 TO I32675                                            00952 
      GO TO 32675                                                       00952 
32528 GO TO 32530                                                       00952 
32529 FOUND=.FALSE.                                                     00953 
      IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32527                           00954 
      START=CURSOR                                                      00955 
      GO TO 32525                                                       00956 
32526 IF(CHTYPE.GT.THYPHN) GO TO 32524                                  00956 
32525 ASSIGN 32523 TO I32675                                            00957 
      GO TO 32675                                                       00957 
32523 IF(CHTYPE.EQ.THYPHN) FOUND=.TRUE.                                 00958 
      GO TO 32526                                                       00959 
32524 CONTINUE                                                          00960 
32527 IF(.NOT.(FOUND)) GO TO 32522                                      00961 
      NUNITS=NUNITS+1                                                   00962 
      UTYPE(NUNITS)=UPINV                                               00963 
      USTART(NUNITS)=START                                              00964 
      ULEN(NUNITS)=CURSOR-START                                         00965 
32522 GO TO I32705                                                      00967 
32708 CONTINUE                                                          00968 
32521 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32520                           00973 
      ASSIGN 32519 TO I32675                                            00973 
      GO TO 32675                                                       00973 
32519 GO TO 32521                                                       00973 
32520 IF(CHTYPE.EQ.TEOL.OR.CH.EQ.CINLIN) GO TO 32518                    00974 
      CSAVE=CURSOR                                                      00975 
      ASSIGN 32517 TO I32705                                            00976 
      GO TO 32705                                                       00976 
32517 IF(.NOT.(FOUND)) GO TO 32515                                      00977 
      ASSIGN 32514 TO I32735                                            00977 
      GO TO 32735                                                       00977 
32514 GO TO 32516                                                       00977 
32515 NUNITS=NUNITS+1                                                   00982 
      UTYPE(NUNITS)=UFORT                                               00983 
      USTART(NUNITS)=CSAVE                                              00984 
      ULEN(NUNITS)=SFLX(1)+1-CSAVE                                      00985 
32516 CONTINUE                                                          00987 
32518 GO TO I32708                                                      00988 
32752 CONTINUE                                                          00989 
      FLXNO=0                                                           00996 
      PASS=.FALSE.                                                      00997 
      DO 32513 I=1,5                                                    00998 
      ASSIGN 32512 TO I32675                                            00999 
      GO TO 32675                                                       00999 
32512 IF((TBLANK).NE.(CHTYPE)) GO TO 32510                              01001 
      GO TO 32511                                                       01002 
32510 IF((TDIGIT).NE.(CHTYPE)) GO TO 32509                              01002 
      FLXNO=FLXNO*10+CH-CHZERO                                          01002 
      GO TO 32511                                                       01003 
32509 IF((TEOL).NE.(CHTYPE)) GO TO 32508                                01003 
      GO TO 32511                                                       01004 
32508 PASS=.TRUE.  !ILLEGAL CHAR IN COL 1-5                             01004 
32511 CONTINUE                                                          01006 
32513 CONTINUE                                                          01006 
      GO TO I32752                                                      01007 
      END                                                               01008 
