      SUBROUTINE CLOSEF(IWARN,IERR)                                     00080 
      BYTE      DAT(9)        !date in ASCII                            00086 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             00087 
      LOGICAL*2 FORT          !.T. if fort output desired               00088 
      BYTE      FVER(21)      !ASCII FLECS version ident                00089 
      INTEGER*2 LINCNT        !# lines left for current page            00090 
      BYTE      LINE(106)     !task command line                        00091 
      LOGICAL*2 LIST          !.T. if listing output desired            00092 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          00093 
      INTEGER*2 P1(33)        !Page header string, line 1               00094 
      INTEGER*2 P2(59)        !Page header string, line 2               00095 
      INTEGER*2 PAGENO        !current FLL page #                       00096 
      LOGICAL*2 SPON          !state of /SP switch                      00097 
      BYTE      TIM(8)        !time in ASCII                            00098 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           00100 
     1 SPON,FLLON,P1,P2                                                 00101 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       00103 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     00104 
      INTEGER*2 SEVFLG,ERRFLG,WRNFLG                                    00111 
      COMMON/ERRS/SEVFLG,ERRFLG,WRNFLG                                  00112 
      INTEGER*2 BLANK(2)      !LOC, R/W, blank line                     00116 
      INTEGER*2 ERRMS(23)     !LOC, R/W, error message string           00117 
      INTEGER*2 IERR          !EXT, R, # of errors generated            00118 
      INTEGER*2 IWARN         !EXT, R, # of warnings                    00119 
      DATA BLANK /2,'  '/                                               00121 
      DATA ERRMS /42,3*'  ',3*'  ','ER','RO','RS',5*'  ',3*'  ',        00123 
     1 'WA','RN','IN','GS',0/                                           00124 
      IF(IERR.LT.0)THEN                                                 00128 
      CALL MSGOUT('F-Aborted due to table overflow.')                   00129 
      SEVFLG=SEVFLG+1                                                   00130 
      ELSEIF((IWARN.NE.0).OR.(IERR.NE.0))THEN                           00132 
      IF (IWARN.NE.0) WRNFLG=WRNFLG+1                                   00133 
      IF (IERR.NE.0) ERRFLG=ERRFLG+1                                    00134 
      CALL PUTNUM (ERRMS(4),IERR)       !insert # of errors             00136 
      CALL PUTNUM (ERRMS(15),IWARN)     !insert # of warnings           00137 
      CALL MSGOUT (ERRMS(5))            !output to TI:                  00139 
      IF(LIST)THEN                                                      00140 
      CALL PUT (0,BLANK,2)      !output blank line                      00141 
      CALL PUT (0,ERRMS,2)      !output to listing file                 00142 
      ENDIF                                                             00143 
      ENDIF                                                             00145 
      CALL FCLOSE                                                       00147 
      IF (IERR.LT.0) CALL EXFLE         !things are hopeless            00149 
      RETURN                                                            00151 
      END                                                               00152 
      SUBROUTINE EXFLE                                                  00213 
      INTEGER*2 SEVFLG,ERRFLG,WRNFLG                                    00215 
      INTEGER*2 STATUS,EXSUC,EXSEV,EXERR,EXWAR                          00216 
      COMMON/ERRS/SEVFLG,ERRFLG,WRNFLG                                  00218 
      PARAMETER (EXSUC=1)       !success                                00220 
      PARAMETER (EXWAR=3)       !warning                                00221 
      PARAMETER (EXERR=2)       !error                                  00222 
      PARAMETER (EXSEV=4)       !severe error                           00223 
      IF(SEVFLG.NE.0)THEN                                               00226 
      STATUS=EXSEV                                                      00226 
      ELSEIF(ERRFLG.NE.0)THEN                                           00227 
      STATUS=EXERR                                                      00227 
      ELSEIF(WRNFLG.NE.0)THEN                                           00228 
      STATUS=EXWAR                                                      00228 
      ELSE                                                              00229 
      STATUS=EXSUC                                                      00229 
      ENDIF                                                             00230 
      CALL EXIT (STATUS)                                                00232 
      END                                                               00233 
      SUBROUTINE GET(LINENO,STRING,ENDFIL,ERR1,ERR2)    !850211mao      00314 
      BYTE      DAT(9)        !date in ASCII                            00320 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             00321 
      LOGICAL*2 FORT          !.T. if fort output desired               00322 
      BYTE      FVER(21)      !ASCII FLECS version ident                00323 
      INTEGER*2 LINCNT        !# lines left for current page            00324 
      BYTE      LINE(106)     !task command line                        00325 
      LOGICAL*2 LIST          !.T. if listing output desired            00326 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          00327 
      INTEGER*2 P1(33)        !Page header string, line 1               00328 
      INTEGER*2 P2(59)        !Page header string, line 2               00329 
      INTEGER*2 PAGENO        !current FLL page #                       00330 
      LOGICAL*2 SPON          !state of /SP switch                      00331 
      BYTE      TIM(8)        !time in ASCII                            00332 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           00334 
     1 SPON,FLLON,P1,P2                                                 00335 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       00337 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     00338 
      INTEGER*2 NUMINC  !max depth include files                        00343 
      PARAMETER (NUMINC=3)                                              00345 
      LOGICAL*2 FLLONS(0:NUMINC) !saved values of FLLON                 00347 
      INTEGER*2 INCLVL  !.INCLUDE level now at (0-->main)               00348 
      LOGICAL*2 INCSTR  !.T. if just read .inc from main level          00349 
                        !(prevents * on that line)                      00350 
      LOGICAL*2 LICHNG  !.T. if should ignore FLLON                     00351 
      COMMON /INCDAT/ FLLONS,INCLVL,INCSTR,LICHNG                       00353 
      LOGICAL*2 ALECS,LSTFUL                                            00362 
      INTEGER*2 TYPIN,TYPLST,TYPOUT,CHCMNT                              00363 
      COMMON/MACVAL/ALECS,TYPIN,TYPLST,TYPOUT,CHCMNT,LSTFUL!850211mao   00364 
      INTEGER*2 LINENO,STNO,INPNO,NB,ERR1,ERR2,LEN      !850211mao      00368 
      INTEGER*2 NCHAR,I,N                                               00369 
      BYTE INPUT(80),STRING(82),TEST,TAB                                00370 
      LOGICAL*2 ENDFIL,GOTLIN,EOF                       !850213mao      00371 
      BYTE LENB(2)                                      !850213mao      00372 
      EQUIVALENCE (LEN,LENB(1))                 !850213mao              00374 
      DATA TAB/"11/                                                     00376 
      LINENO = LINENO + 1                                               00379 
      ENDFIL=.FALSE.                                    !850213mao      00380 
      LEN=0                                             !850213mao      00381 
      ERR1=0                                            !850213mao      00382 
      ASSIGN 32757 TO I32758                                            00384 
      GO TO 32758                                                       00384 
32757 IF(.NOT.ENDFIL)THEN                                               00385 
      IF(NCHAR.GT.0)THEN                                                00387 
      IF ((NCHAR.GT.72).AND.(INPUT(1).NE.CHCMNT)) NCHAR = 72            00394 
      STNO = 3                                                          00395 
      INPNO = 1                                                         00396 
      I32756=.TRUE.                                                     00397 
      DOWHILE(((I32756)).OR.(.NOT.((STNO.GT.74).OR.(INPNO.GT.NCHAR))))  00397 
      I32756=.FALSE.                                                    00397 
      IF(INPUT(INPNO).EQ.TAB)THEN                                       00403 
      ASSIGN 32754 TO I32755                                            00403 
      GO TO 32755                                                       00403 
32754 CONTINUE                                                          00404 
      ELSE                                                              00404 
      STRING(STNO) = INPUT(INPNO)                                       00405 
      STNO = STNO + 1                                                   00406 
      ENDIF                                                             00407 
      INPNO = INPNO + 1                                                 00408 
      ENDDO                                                             00409 
      IF(STNO.GT.75)THEN                                                00411 
      STNO = 75 !truncate to allowed #          !850213mao              00412 
      ERR1 = "177730    !IE.RBG as in FLERSX.MAC        !850213mao      00413 
      ERR2 = 1                                  !850213mao              00414 
      ENDIF                                                             00415 
      LEN=STNO-3                                        !850213mao      00417 
      I = LEN+2                                 !850213mao              00421 
      DOWHILE(STRING(I).EQ.(1H ))                                       00422 
      I = I-1                                                           00422 
      ENDDO                                                             00422 
      LEN = I-2                                 !850213mao              00423 
      ENDIF                                                             00425 
      ENDIF                                                             00426 
      STRING(1) = LENB(1)                               !850213mao      00428 
      STRING(2) = LENB(2)                               !850213mao      00429 
      RETURN                                                            00431 
32758 CONTINUE                                                          00433 
      I32753=.TRUE.                                                     00435 
      DOWHILE(((I32753)).OR.(.NOT.(GOTLIN .OR. ENDFIL)))                00435 
      I32753=.FALSE.                                                    00435 
      GOTLIN = .TRUE.                                                   00437 
      CALL FGET (NCHAR,INPUT,EOF,ERR1,ERR2)             !850213mao      00438 
      IF(EOF)THEN                                                       00440 
      IF(INCLVL.EQ.0)THEN                                               00442 
      ENDFIL=.TRUE.                                                     00442 
      ELSE                                                              00443 
      CALL ROPN (.TRUE.)        !go to previous level, close cur file   00444 
      GOTLIN=.FALSE.            !try again                              00445 
      ENDIF                                                             00446 
      ENDIF                                                             00447 
      ENDDO                                                             00449 
      GO TO I32758                                                      00450 
32752 CONTINUE                                                          00452 
      N = ((STNO-2+8-1)/8)*8+1                                          00459 
      NB = N - (STNO-2)                                                 00460 
      IF (NB.LT.1) NB = 1                                               00461 
      DO I = 1,NB                                                       00465 
      STRING(STNO) = (1H )                                              00466 
      STNO = STNO + 1                                                   00467 
      ENDDO                                                             00468 
      GO TO I32752                                                      00469 
32755 CONTINUE                                                          00471 
      IF(INPNO.EQ.NCHAR)THEN                                            00479 
      ELSEIF(INPUT(1).EQ.CHCMNT)THEN                                    00482 
      ASSIGN 32751 TO I32752                                            00482 
      GO TO 32752                                                       00482 
32751 CONTINUE                                                          00485 
      ELSEIF((STNO-3).GE.6)THEN                                         00485 
      ASSIGN 32750 TO I32752                                            00485 
      GO TO 32752                                                       00485 
32750 CONTINUE                                                          00487 
      ELSE                                                              00487 
      TEST = INPUT(INPNO + 1)                                           00490 
      IF(TEST.EQ.(1H ))THEN                                             00492 
      NB = 5                                                            00492 
      ELSEIF((TEST.GE.1H0).AND.(TEST.LE.1H9))THEN                       00493 
      NB = 5                                                            00493 
      ELSE                                                              00494 
      NB = 6                                                            00494 
      ENDIF                                                             00495 
      NB = NB - (STNO-3)                                                00496 
      DO I = 1,NB                                                       00498 
      STRING(STNO) = (1H )                                              00499 
      STNO = STNO + 1                                                   00500 
      ENDDO                                                             00501 
      ENDIF                                                             00503 
      GO TO I32755                                                      00504 
      END                                                               00505 
      SUBROUTINE NEWNAM (LEN,NAME)                                      00552 
      BYTE      DAT(9)        !date in ASCII                            00558 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             00559 
      LOGICAL*2 FORT          !.T. if fort output desired               00560 
      BYTE      FVER(21)      !ASCII FLECS version ident                00561 
      INTEGER*2 LINCNT        !# lines left for current page            00562 
      BYTE      LINE(106)     !task command line                        00563 
      LOGICAL*2 LIST          !.T. if listing output desired            00564 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          00565 
      INTEGER*2 P1(33)        !Page header string, line 1               00566 
      INTEGER*2 P2(59)        !Page header string, line 2               00567 
      INTEGER*2 PAGENO        !current FLL page #                       00568 
      LOGICAL*2 SPON          !state of /SP switch                      00569 
      BYTE      TIM(8)        !time in ASCII                            00570 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           00572 
     1 SPON,FLLON,P1,P2                                                 00573 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       00575 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     00576 
      INTEGER*2 I               !scratch                                00585 
      INTEGER*2 LEN             !EXT, R, # characters in name           00586 
      INTEGER*2 LENU            !# characters used from NAME            00587 
      BYTE      NAME(6) !EXT, R, characters input with .NAME            00588 
      LENU = MIN (6,LEN)                                                00590 
      IF(LENU.GT.0)THEN                                                 00592 
      DO I=1,LENU                                                       00593 
      NAMEHD(I) = NAME(I)                                               00593 
      ENDDO                                                             00593 
      ENDIF                                                             00594 
      IF(LENU.LT.6)THEN                                                 00596 
      DO I=LENU+1,6                                                     00597 
      NAMEHD(I) = (1H )                                                 00597 
      ENDDO                                                             00597 
      ENDIF                                                             00598 
      CALL NEWPG                !force new page         !850305mao      00600 
      RETURN                                                            00601 
      END                                                               00602 
      SUBROUTINE NEWPG                                                  00641 
      BYTE      DAT(9)        !date in ASCII                            00647 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             00648 
      LOGICAL*2 FORT          !.T. if fort output desired               00649 
      BYTE      FVER(21)      !ASCII FLECS version ident                00650 
      INTEGER*2 LINCNT        !# lines left for current page            00651 
      BYTE      LINE(106)     !task command line                        00652 
      LOGICAL*2 LIST          !.T. if listing output desired            00653 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          00654 
      INTEGER*2 P1(33)        !Page header string, line 1               00655 
      INTEGER*2 P2(59)        !Page header string, line 2               00656 
      INTEGER*2 PAGENO        !current FLL page #                       00657 
      LOGICAL*2 SPON          !state of /SP switch                      00658 
      BYTE      TIM(8)        !time in ASCII                            00659 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           00661 
     1 SPON,FLLON,P1,P2                                                 00662 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       00664 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     00665 
      LINCNT = 0        !# lines left on current page                   00672 
      RETURN                                                            00674 
      END                                                               00675 
      SUBROUTINE OPENF (CALLNO,DONE,SVER)                               00721 
      BYTE      DAT(9)        !date in ASCII                            00727 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             00728 
      LOGICAL*2 FORT          !.T. if fort output desired               00729 
      BYTE      FVER(21)      !ASCII FLECS version ident                00730 
      INTEGER*2 LINCNT        !# lines left for current page            00731 
      BYTE      LINE(106)     !task command line                        00732 
      LOGICAL*2 LIST          !.T. if listing output desired            00733 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          00734 
      INTEGER*2 P1(33)        !Page header string, line 1               00735 
      INTEGER*2 P2(59)        !Page header string, line 2               00736 
      INTEGER*2 PAGENO        !current FLL page #                       00737 
      LOGICAL*2 SPON          !state of /SP switch                      00738 
      BYTE      TIM(8)        !time in ASCII                            00739 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           00741 
     1 SPON,FLLON,P1,P2                                                 00742 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       00744 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     00745 
      INTEGER*2 NUMINC  !max depth include files                        00750 
      PARAMETER (NUMINC=3)                                              00752 
      LOGICAL*2 FLLONS(0:NUMINC) !saved values of FLLON                 00754 
      INTEGER*2 INCLVL  !.INCLUDE level now at (0-->main)               00755 
      LOGICAL*2 INCSTR  !.T. if just read .inc from main level          00756 
                        !(prevents * on that line)                      00757 
      LOGICAL*2 LICHNG  !.T. if should ignore FLLON                     00758 
      COMMON /INCDAT/ FLLONS,INCLVL,INCSTR,LICHNG                       00760 
      INTEGER*2 SEVFLG,ERRFLG,WRNFLG                                    00769 
      COMMON/ERRS/SEVFLG,ERRFLG,WRNFLG                                  00770 
      LOGICAL*2 ALECS,LSTFUL                                            00772 
      INTEGER*2 TYPIN,TYPLST,TYPOUT,CHCMNT                              00773 
      COMMON/MACVAL/ALECS,TYPIN,TYPLST,TYPOUT,CHCMNT,LSTFUL             00774 
      INTEGER*2 CNTALL,NUMLIN                                           00776 
      COMMON/FLINE/CNTALL,NUMLIN                                        00777 
      BYTE CNDVLB(8,10)                                                 00779 
      LOGICAL*2 PASFLG                                                  00780 
      INTEGER*2 CNDLVL,OFFLVL,COND,CNDVAL(4,10)                         00781 
      COMMON/COND/PASFLG,CNDLVL,OFFLVL,COND,CNDVAL                      00782 
      EQUIVALENCE (CNDVLB(1,1),CNDVAL(1,1))                             00783 
      INTEGER*2 CALLNO                                                  00787 
      LOGICAL*2 COON                                                    00788 
      INTEGER*2 DEVIND(2)                                               00789 
      LOGICAL*2 DONE                                                    00790 
      LOGICAL*2 EOF                                                     00791 
      LOGICAL*2 EQUAL                                                   00792 
      INTEGER*2 ERR                                                     00793 
      INTEGER*2 ERRNUM                                                  00794 
      LOGICAL*2 ERROR                                                   00795 
      INTEGER*2 FILIND(2)                                               00796 
      BYTE      FLLDEF(4)                                               00797 
      BYTE      FLXDEF(4)                                               00798 
      INTEGER*2 FLXDSC(2,4)                                             00799 
      BYTE      FTNDEF(4)                                               00800 
      INTEGER*2 FTNDSC(2,4)                                             00801 
      INTEGER*2 FUON                                                    00802 
      INTEGER*2 I                                                       00803 
      INTEGER*2 J                                                       00804 
      INTEGER*2 K                                                       00805 
      INTEGER*2 LENG                                                    00806 
      BYTE      LENGB(2)                                                00807 
      INTEGER*2 LENGTH                                                  00808 
      INTEGER*2 LSTDSC(2,4)                                             00809 
      LOGICAL*2 MORE                                                    00810 
      BYTE      SVER(23)                                                00811 
      INTEGER*2 UICIND(2)                                               00812 
      LOGICAL*2 WILD                                                    00813 
      COMMON/CSIVR1/DEVIND,UICIND,FILIND,MORE,WILD,EQUAL, !850327mao    00815 
     1 FUON,COON                                            !850327mao  00816 
      EQUIVALENCE (LENG,LENGB(1))                                       00818 
      DATA FLLDEF /'.','F','L','L'/                                     00821 
      DATA FLXDEF /'.','F','L','X'/                                     00822 
      DATA FTNDEF /'.','F','T','N'/                                     00823 
      ASSIGN 32757 TO I32758                                            00832 
      GO TO 32758                                                       00832 
32757 I32756=.TRUE.                                                     00834 
      DOWHILE(((I32756)).OR.(ERROR))                                    00834 
      I32756=.FALSE.                                                    00834 
      ERROR = .FALSE.                                                   00836 
      ASSIGN 32754 TO I32755                                            00838 
      GO TO 32755                                                       00838 
32754 ASSIGN 32752 TO I32753                                            00840 
      GO TO 32753                                                       00840 
32752 IF((MORE).AND.(.NOT.ERROR))THEN                                   00842 
      ASSIGN 32750 TO I32751                                            00843 
      GO TO 32751                                                       00843 
32750 CONTINUE                                                          00845 
      ELSE                                                              00845 
      LIST = .FALSE.                                                    00845 
      ENDIF                                                             00845 
      IF(.NOT.ERROR)THEN                                                00847 
      ASSIGN 32748 TO I32749                                            00847 
      GO TO 32749                                                       00847 
32748 CONTINUE                                                          00847 
      ENDIF                                                             00847 
      IF(.NOT.ERROR)THEN                                                00849 
      ASSIGN 32746 TO I32747                                            00849 
      GO TO 32747                                                       00849 
32746 CONTINUE                                                          00849 
      ENDIF                                                             00849 
      ENDDO                                                             00851 
      DONE = .FALSE.                                                    00853 
      FLLON = LIST                                                      00854 
      RETURN                                                            00856 
32755 CONTINUE                                                          00858 
      CALL GETCML(LINE,'FLE',LENGTH,106,EOF,1)                          00864 
      IF (EOF) CALL EXFLE       !task exit with status                  00866 
      LINE(LENGTH+1) = "15              !append <CR><LF>                00868 
      LINE(LENGTH+2) = "12                                              00869 
      P2(1) = LENGTH+12         !fill in string length                  00870 
      CALL CSI(DEVIND,UICIND,FILIND,MORE,WILD,EQUAL)                    00872 
      CALL CSISW('FU',FUON,2)                                           00873 
      CALL CSISW('SP',SPON,2)                                           00874 
      CALL CSISW('CO',COON,2)                                           00875 
      CALL CSIVAL('CO',CNDVAL(2,1),6)                                   00876 
      CALL CSIVAL('CO',CNDVAL(2,2),6)                                   00877 
      CALL CSIVAL('CO',CNDVAL(2,3),6)                                   00878 
      CALL CSIVAL('CO',CNDVAL(2,4),6)                                   00879 
      CALL CSIVAL('CO',CNDVAL(2,5),6)                                   00880 
      CALL CSIVAL('CO',CNDVAL(2,6),6)                                   00881 
      CALL CSIVAL('CO',CNDVAL(2,7),6)                                   00882 
      CALL CSIVAL('CO',CNDVAL(2,8),6)                                   00883 
      CALL CSIVAL('CO',CNDVAL(2,9),6)                                   00884 
      CALL CSIVAL('CO',CNDVAL(2,10),6)                                  00885 
      GO TO I32755                                                      00887 
32758 CONTINUE                                                          00889 
      IF(CALLNO.EQ.1)THEN                                               00890 
      P1(1) = 64                !initialize page header, line 1         00892 
      DO I=2,33                                                         00893 
      P1(I) = '  '                                                      00893 
      ENDDO                                                             00893 
      P1(27) = 'PA'                                                     00894 
      P1(28) = 'GE'                                                     00895 
      LENGB(1) = SVER(1)        !get string length for FLECS version    00897 
      LENGB(2) = SVER(2)                                                00898 
      IF (LENG.GT.21) LENG=21                                           00899 
      DO I = 1,LENG                                                     00900 
      FVER(I) = SVER(I+2)                                               00900 
      ENDDO                                                             00900 
      P2(1) = 116               !initialize page header, line 2         00902 
      DO I=2,59                                                         00903 
      P2(I) = '  '                                                      00903 
      ENDDO                                                             00903 
      ENDIF                                                             00904 
      CALL DATE(DAT(1))         !put date & time into page hdr, line 1  00906 
      CALL TIME(TIM(1))                                                 00907 
      PAGENO = 0                                                        00909 
      LINCNT = 0                                                        00910 
      INCLVL=0                                                          00911 
      INCSTR=.FALSE.                                                    00912 
      COND=0                                                            00913 
      FORT=.FALSE.                                                      00914 
      LIST=.FALSE.                                                      00915 
      GO TO I32758                                                      00917 
32747 CONTINUE                                                          00919 
      CALL FOPN (LINE,FLXDEF,FLXDSC,FORT,FTNDEF,FTNDSC,                 00921 
     1 LIST,FLLDEF,LSTDSC,ERRNUM)                                       00922 
      ERROR = ERRNUM.NE.0                                               00923 
      IF(ERROR)THEN                                                     00924 
      SEVFLG=SEVFLG+1                                                   00925 
      IF((1).EQ.(ERRNUM))THEN                                           00927 
      CALL MSGOUT ('F-Open error on input file')                        00928 
      ELSEIF((2).EQ.(ERRNUM))THEN                                       00930 
      CALL MSGOUT ('F-Open error on output FORT/MAC file')              00931 
      ELSEIF((3).EQ.(ERRNUM))THEN                                       00933 
      CALL MSGOUT('F-Open error on output FLL/ALL file')                00933 
      ENDIF                                                             00934 
      ENDIF                                                             00935 
      GO TO I32747                                                      00936 
32753 CONTINUE                                                          00938 
      CALL CSIGO(LINE,LENGTH,'O',ERR)                                   00940 
      IF(WILD)THEN                                                      00942 
      ERROR = .TRUE.                                                    00943 
      CALL MSGOUT                                                       00944 
     1 ('F-Wild cards are not allowed in FLE/ALE command line')         00945 
      ENDIF                                                             00946 
      IF(.NOT.EQUAL)THEN                                                00947 
      ERROR = .TRUE.                                                    00948 
      CALL MSGOUT (                                                     00949 
     1 'F-Must have an input file & at least one output file')          00950 
      ENDIF                                                             00951 
      IF(ERR)THEN                                                       00952 
      ERROR = .TRUE.                                                    00953 
      CALL MSGOUT (                                                     00954 
     1 'F-Syntax error or illegal switch in FORT/MAC file spec')        00955 
      ENDIF                                                             00956 
      IF(SPON.NE.2 .OR. COON.NE.2)THEN                                  00957 
      ERROR=.TRUE.                                                      00958 
      CALL MSGOUT ('F-/SP & /CO illegal on FORT/MAC file')              00959 
      ELSE                                                              00961 
      LSTFUL = FUON.NE.2 .AND. FUON                                     00961 
      ENDIF                                                             00961 
      FORT = .NOT.ERROR .AND.                                           00964 
     1 (DEVIND(1).NE.0 .OR. FILIND(1).NE.0)                             00965 
      IF(FORT)THEN                                                      00967 
      DO I=1,4                                                          00969 
      DO J=1,2                                                          00970 
      FTNDSC(J,I) = 0        !assume no filename                        00970 
      ENDDO                                                             00970 
      ENDDO                                                             00971 
      I=0               !pointer to end of spec                         00973 
      IF(DEVIND(1).NE.0)THEN                                            00975 
      FTNDSC(1,1) = DEVIND(2)-DEVIND(1)+2       !length, including :    00976 
      FTNDSC(2,1) = DEVIND(1)                   !index                  00977 
      FTNDSC(2,4) = DEVIND(1)                                           00978 
      I=DEVIND(2)+1                                                     00979 
      ENDIF                                                             00980 
      IF(UICIND(1).NE.0)THEN                                            00982 
      FTNDSC(1,2) = UICIND(2)-UICIND(1)+1       !length, including []   00983 
      FTNDSC(2,2) = UICIND(1)                   !index                  00984 
      IF (FTNDSC(2,4).EQ.0) FTNDSC(2,4) = UICIND(1)                     00985 
      I=UICIND(2)                                                       00986 
      ENDIF                                                             00987 
      IF(FILIND(1).NE.0)THEN                                            00989 
      FTNDSC(1,3) = FILIND(2)-FILIND(1)+1       !length                 00990 
      FTNDSC(2,3) = FILIND(1)                   !index                  00991 
      IF (FTNDSC(2,4).EQ.0) FTNDSC(2,4) = FILIND(1)                     00992 
      I=FILIND(2)                                                       00993 
      ENDIF                                                             00994 
      IF (FTNDSC(2,4).NE.0) FTNDSC(1,4) = I-FTNDSC(2,4)+1               00996 
      ENDIF                                                             00997 
      GO TO I32753                                                      00998 
32749 CONTINUE                                                          01000 
      CALL CSIGO(LINE,LENGTH,'I',ERR)                                   01002 
      ASSIGN 32744 TO I32745                                            01004 
      GO TO 32745                                                       01004 
32744 IF(.NOT.ERROR)THEN                                                01006 
      DO I=1,4                                                          01008 
      DO J=1,2                                                          01009 
      FLXDSC(J,I) = 0        !assume no filename                        01009 
      ENDDO                                                             01009 
      ENDDO                                                             01010 
      I=0                       !pointer to end of spec                 01012 
      IF(DEVIND(1).NE.0)THEN                                            01014 
      FLXDSC(1,1) = DEVIND(2)-DEVIND(1)+2       !length, including :    01015 
      FLXDSC(2,1) = DEVIND(1)                   !index                  01016 
      FLXDSC(2,4) = DEVIND(1)                                           01017 
      I=DEVIND(2)+1                                                     01018 
      ENDIF                                                             01019 
      IF(UICIND(1).NE.0)THEN                                            01021 
      FLXDSC(1,2) = UICIND(2)-UICIND(1)+1       !length, including []   01022 
      FLXDSC(2,2) = UICIND(1)                   !index                  01023 
      IF (FLXDSC(2,4).EQ.0) FLXDSC(2,4) = UICIND(1)                     01024 
      I=UICIND(2)                                                       01025 
      ENDIF                                                             01026 
      IF(FILIND(1).NE.0)THEN                                            01028 
      FLXDSC(1,3) = FILIND(2)-FILIND(1)+1       !length                 01029 
      FLXDSC(2,3) = FILIND(1)                   !index                  01030 
      IF (FLXDSC(2,4).EQ.0) FLXDSC(2,4) = FILIND(1)                     01031 
      I=FILIND(2)                                                       01032 
      ENDIF                                                             01033 
      IF (FLXDSC(2,4).NE.0) FLXDSC(1,4) = I-FLXDSC(2,4)+1               01035 
      ENDIF                                                             01037 
      GO TO I32749                                                      01038 
32751 CONTINUE                                                          01040 
      CALL CSIGO(LINE,LENGTH,'O',ERR)                                   01042 
      IF(ERR)THEN                                                       01043 
      ERROR = .TRUE.                                                    01044 
      CALL MSGOUT ('F-Syntax error or illegal sw in listing file')      01045 
      ENDIF                                                             01046 
      IF(WILD)THEN                                                      01047 
      ERROR = .TRUE.                                                    01048 
      CALL MSGOUT (                                                     01049 
     1 'F-Wild cards are not allowed in FLE/ALE command line')          01050 
      ENDIF                                                             01051 
      IF(MORE)THEN                                                      01052 
      ERROR=.TRUE.                                                      01053 
      CALL MSGOUT ('F-Only 2 output specs allowed')                     01054 
      ENDIF                                                             01055 
      IF(FUON.NE.2 .OR. COON.NE.2)THEN                                  01056 
      CALL MSGOUT ('F-/FU & /CO illegal on listing file')               01057 
      ERROR = .TRUE.                                                    01058 
      ENDIF                                                             01059 
      LIST = .NOT.ERROR .AND.                                           01063 
     1 (DEVIND(1).NE.0 .OR. FILIND(1).NE.0)                             01064 
      IF(LIST)THEN                                                      01065 
      DO I=1,4                                                          01067 
      DO J=1,2                                                          01068 
      LSTDSC(J,I) = 0        !assume no filename                        01068 
      ENDDO                                                             01068 
      ENDDO                                                             01069 
      I=0               !pointer to end of spec                         01071 
      IF(DEVIND(1).NE.0)THEN                                            01073 
      LSTDSC(1,1) = DEVIND(2)-DEVIND(1)+2       !length, including :    01074 
      LSTDSC(2,1) = DEVIND(1)                   !index                  01075 
      LSTDSC(2,4) = DEVIND(1)                                           01076 
      I=DEVIND(2)+1                                                     01077 
      ENDIF                                                             01078 
      IF(UICIND(1).NE.0)THEN                                            01080 
      LSTDSC(1,2) = UICIND(2)-UICIND(1)+1       !length, including []   01081 
      LSTDSC(2,2) = UICIND(1)                   !index                  01082 
      IF (LSTDSC(2,4).EQ.0) LSTDSC(2,4) = UICIND(1)                     01083 
      I=UICIND(2)                                                       01084 
      ENDIF                                                             01085 
      IF(FILIND(1).NE.0)THEN                                            01087 
      LSTDSC(1,3) = FILIND(2)-FILIND(1)+1       !length                 01088 
      LSTDSC(2,3) = FILIND(1)                   !index                  01089 
      IF (LSTDSC(2,4).EQ.0) LSTDSC(2,4) = FILIND(1)                     01090 
      I=FILIND(2)                                                       01091 
      ENDIF                                                             01092 
      IF (LSTDSC(2,4).NE.0) LSTDSC(1,4) = I-LSTDSC(2,4)+1               01094 
      ENDIF                                                             01095 
      GO TO I32751                                                      01097 
32745 CONTINUE                                                          01099 
      IF(ERR)THEN                                                       01101 
      ERROR = .TRUE.                                                    01102 
      CALL MSGOUT ('F-Switch or syntax error in input file spec')       01103 
      ENDIF                                                             01104 
      IF(WILD)THEN                                                      01105 
      ERROR = .TRUE.                                                    01106 
      CALL MSGOUT (                                                     01107 
     1 ' Wild cards are not allowed in FLE/ALE command line')           01108 
      ENDIF                                                             01109 
      IF(FILIND(1).EQ.0)THEN                                            01110 
      ERROR = .TRUE.                                                    01111 
      CALL MSGOUT ('F-Must give file name for input FLE/ALE file')      01112 
      ENDIF                                                             01113 
      IF(SPON.NE.2 .OR. FUON.NE.2)THEN                                  01115 
      ERROR=.TRUE.                                                      01116 
      CALL MSGOUT (' /SP & /FU illegal on input file spec')             01117 
      ELSE                                                              01119 
      IF(COON.EQ.2)THEN                                                 01121 
      COND=0                                                            01121 
      ELSE                                                              01122 
      COND=10                                                           01127 
      DOWHILE(COND.GT.0 .AND. CNDVAL(2,COND).EQ.0)                      01128 
      COND=COND-1                                                       01129 
      ENDDO                                                             01130 
      IF(COND.GT.0)THEN                                                 01132 
      DO I=1,COND                                                       01138 
      J=6                                                               01139 
      DOWHILE(J.GT.0 .AND. CNDVLB(J+2,I).EQ.0)                          01140 
      J=J-1                                                             01140 
      ENDDO                                                             01140 
      CNDVAL(1,I) = J                                                   01141 
      ENDDO                                                             01142 
      ENDIF                                                             01143 
      ENDIF                                                             01144 
      ENDIF                                                             01145 
      GO TO I32745                                                      01146 
      END                                                               01147 
      SUBROUTINE OPNINC (NCHAR,NAME,IERR)                               01196 
      BYTE      DAT(9)        !date in ASCII                            01202 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             01203 
      LOGICAL*2 FORT          !.T. if fort output desired               01204 
      BYTE      FVER(21)      !ASCII FLECS version ident                01205 
      INTEGER*2 LINCNT        !# lines left for current page            01206 
      BYTE      LINE(106)     !task command line                        01207 
      LOGICAL*2 LIST          !.T. if listing output desired            01208 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          01209 
      INTEGER*2 P1(33)        !Page header string, line 1               01210 
      INTEGER*2 P2(59)        !Page header string, line 2               01211 
      INTEGER*2 PAGENO        !current FLL page #                       01212 
      LOGICAL*2 SPON          !state of /SP switch                      01213 
      BYTE      TIM(8)        !time in ASCII                            01214 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           01216 
     1 SPON,FLLON,P1,P2                                                 01217 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       01219 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     01220 
      INTEGER*2 NUMINC  !max depth include files                        01225 
      PARAMETER (NUMINC=3)                                              01227 
      LOGICAL*2 FLLONS(0:NUMINC) !saved values of FLLON                 01229 
      INTEGER*2 INCLVL  !.INCLUDE level now at (0-->main)               01230 
      LOGICAL*2 INCSTR  !.T. if just read .inc from main level          01231 
                        !(prevents * on that line)                      01232 
      LOGICAL*2 LICHNG  !.T. if should ignore FLLON                     01233 
      COMMON /INCDAT/ FLLONS,INCLVL,INCSTR,LICHNG                       01235 
      INTEGER*2 DEVIND(2)  !pointer to device           !850304mao      01246 
      LOGICAL*2 ERR        !.T. if CSI error                            01247 
      INTEGER*2 FILDSC(2,4)!file descriptor array       !850304mao      01248 
      INTEGER*2 FILIND(2)  !pointer to filename !850304mao              01249 
      INTEGER*2 I          !scratch                                     01250 
      INTEGER*2 IERR       !EXT, R/W, error return                      01251 
      INTEGER*2 IPNT       !last good char in NAME                      01252 
      INTEGER*2 J          !scratch                                     01253 
      LOGICAL*2 LISET      !.T. if /LI; .F. if /-LI                     01254 
      BYTE      NAME(80)   !EXT, R, file name of include file           01255 
      INTEGER*2 NCHAR      !EXT, R, # characters in file name           01256 
      INTEGER*2 UICIND(2)  !pointer to directory        !850304mao      01257 
      COMMON /CSIVR2/ DEVIND,UICIND,FILIND,LISET        !850327mao      01259 
      IF(INCLVL.EQ.NUMINC)THEN                                          01261 
      IERR=1    !at max depth                                           01261 
      ELSE                                                              01262 
      CALL CSI(DEVIND,UICIND,FILIND)    !parse file name!850304mao      01264 
      CALL CSISW ('LI',LISET,.TRUE.)                                    01265 
      CALL CSIGO(NAME,NCHAR,'O',ERR)                                    01266 
      IF(ERR)THEN                                                       01268 
      IERR=2         !bad filename                                      01268 
      ELSE                                                              01269 
      FLLONS(INCLVL) = FLLON    !save FLL listing status                01271 
      INCLVL = INCLVL + 1       !next level                             01272 
      ASSIGN 32757 TO I32758                                            01274 
      GO TO 32758                                                       01274 
32757 CALL FOPNIN (INCLVL,NAME,FILDSC,IERR)             !850304mao      01275 
      IF(IERR.NE.0)THEN                                                 01277 
100   IERR=3                                                            01279 
      CALL ROPN(.FALSE.)                !go back to previous level      01280 
      ELSE                                                              01282 
      INCSTR = INCLVL.EQ.1              !set "no star" flag             01284 
      LICHNG = FLLON .AND. .NOT.LISET                                   01290 
      FLLON = LISET                                                     01292 
      ENDIF                                                             01294 
      ENDIF                                                             01295 
      ENDIF                                                             01296 
      RETURN                                                            01298 
32758 CONTINUE                                                          01300 
      DO I=1,4                                                          01302 
      DO J=1,2                                                          01303 
      FILDSC(J,I) = 0        !assume no filename                        01303 
      ENDDO                                                             01303 
      ENDDO                                                             01304 
      I=0               !pointer to end of spec                         01306 
      IF(DEVIND(1).NE.0)THEN                                            01308 
      FILDSC(1,1) = DEVIND(2)-DEVIND(1)+2       !length, including :    01309 
      FILDSC(2,1) = DEVIND(1)                   !index                  01310 
      FILDSC(2,4) = DEVIND(1)                                           01311 
      I=DEVIND(2)+1                                                     01312 
      ENDIF                                                             01313 
      IF(UICIND(1).NE.0)THEN                                            01315 
      FILDSC(1,2) = UICIND(2)-UICIND(1)+1       !length, including []   01316 
      FILDSC(2,2) = UICIND(1)                   !index                  01317 
      IF (FILDSC(2,4).EQ.0) FILDSC(2,4) = UICIND(1)                     01318 
      I=UICIND(2)                                                       01319 
      ENDIF                                                             01320 
      IF(FILIND(1).NE.0)THEN                                            01322 
      FILDSC(1,3) = FILIND(2)-FILIND(1)+1       !length                 01323 
      FILDSC(2,3) = FILIND(1)                   !index                  01324 
      IF (FILDSC(2,4).EQ.0) FILDSC(2,4) = FILIND(1)                     01325 
      I=FILIND(2)                                                       01326 
      ENDIF                                                             01327 
      IF (FILDSC(2,4).NE.0) FILDSC(1,4) = I-FILDSC(2,4)+1               01329 
      GO TO I32758                                                      01330 
      END                                                               01331 
      SUBROUTINE PUT(LINENO,STRING,IOCLAS)                              01380 
      BYTE      DAT(9)        !date in ASCII                            01386 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             01387 
      LOGICAL*2 FORT          !.T. if fort output desired               01388 
      BYTE      FVER(21)      !ASCII FLECS version ident                01389 
      INTEGER*2 LINCNT        !# lines left for current page            01390 
      BYTE      LINE(106)     !task command line                        01391 
      LOGICAL*2 LIST          !.T. if listing output desired            01392 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          01393 
      INTEGER*2 P1(33)        !Page header string, line 1               01394 
      INTEGER*2 P2(59)        !Page header string, line 2               01395 
      INTEGER*2 PAGENO        !current FLL page #                       01396 
      LOGICAL*2 SPON          !state of /SP switch                      01397 
      BYTE      TIM(8)        !time in ASCII                            01398 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           01400 
     1 SPON,FLLON,P1,P2                                                 01401 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       01403 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     01404 
      INTEGER*2 NUMINC  !max depth include files                        01409 
      PARAMETER (NUMINC=3)                                              01411 
      LOGICAL*2 FLLONS(0:NUMINC) !saved values of FLLON                 01413 
      INTEGER*2 INCLVL  !.INCLUDE level now at (0-->main)               01414 
      LOGICAL*2 INCSTR  !.T. if just read .inc from main level          01415 
                        !(prevents * on that line)                      01416 
      LOGICAL*2 LICHNG  !.T. if should ignore FLLON                     01417 
      COMMON /INCDAT/ FLLONS,INCLVL,INCSTR,LICHNG                       01419 
      INTEGER*2 CNTALL,NUMLIN                                           01428 
      COMMON/FLINE/CNTALL,NUMLIN                                        01429 
      LOGICAL*2 PASFLG                                                  01431 
      INTEGER*2 CNDLVL,OFFLVL,COND,CNDVAL(4,10)                         01432 
      COMMON/COND/PASFLG,CNDLVL,OFFLVL,COND,CNDVAL                      01433 
      BYTE STRING(82),OUTPUT(132),OUTF(80),LENB(2),NPB(2)               01437 
      INTEGER*2 LINENO, IOCLAS, LEN, I, K, NP                           01438 
      EQUIVALENCE (LEN,LENB(1))                                         01440 
      EQUIVALENCE (OUTPUT(1),OUTF(1))   !optimize fort IO               01441 
      EQUIVALENCE (NP,NPB(1))                                           01442 
      DATA NPB /"14,"40/                !forces new page                01444 
      LENB(1) = STRING(1)                                               01447 
      LENB(2) = STRING(2)                                               01448 
      IF(IOCLAS.EQ.1)THEN                                               01450 
      IF(FORT.AND.PASFLG)THEN                                           01451 
      ASSIGN 32757 TO I32758                                            01451 
      GO TO 32758                                                       01451 
32757 CONTINUE                                                          01451 
      ENDIF                                                             01451 
      ELSE                                                              01453 
      IF(LIST)THEN                                                      01454 
      IF(FLLON)THEN                                                     01456 
      ASSIGN 32755 TO I32756                                            01456 
      GO TO 32756                                                       01456 
32755 CONTINUE                                                          01457 
      ELSEIF(LICHNG)THEN                                                01457 
      LICHNG=.FALSE.                                                    01458 
      ASSIGN 32754 TO I32756                                            01459 
      GO TO 32756                                                       01459 
32754 CONTINUE                                                          01461 
      ENDIF                                                             01461 
      ENDIF                                                             01462 
      ENDIF                                                             01463 
      RETURN                                                            01464 
32758 CONTINUE                                                          01466 
      NUMLIN=NUMLIN+1                   !one more FORT line output      01468 
      DO I = 3,LEN+2                                                    01470 
      OUTF(I-2) = STRING(I) !Get the string                             01470 
      ENDDO                                                             01470 
      IF(LEN.LT.72)THEN                                                 01471 
      DO I = LEN+1,72                                                   01472 
      OUTF(I) = ' '                                                     01472 
      ENDDO                                                             01472 
      ENDIF                                                             01473 
      CALL PUTNUM (OUTF(73-2),LINENO)   !append input line #            01483 
      OUTF(78) = ' '                                                    01485 
      OUTF(79)=0                                                        01486 
      OUTF(80)=0                                                        01487 
      CALL FPUT (IOCLAS,OUTF,80)        !write to file                  01489 
      GO TO I32758                                                      01490 
32756 CONTINUE                                                          01492 
      IF(STRING(3).EQ."14)THEN                                          01494 
      LINCNT=0  !yes, new page                                          01495 
      STRING(3) = (1H ) !overwrite it                                   01496 
      ENDIF                                                             01497 
      IF(LINCNT.EQ.0)THEN                                               01499 
      PAGENO = PAGENO + 1                                               01500 
      IF(PAGENO.EQ.1)THEN                                               01501 
      P1(2) = '  '                                                      01501 
      ELSE                                                              01502 
      P1(2) = NP                                                        01502 
      ENDIF                                                             01502 
      CALL PUTNUM (P1(29),PAGENO)                                       01504 
      CALL FPUT (IOCLAS,P1(2),P1(1))                                    01505 
      CALL FPUT (IOCLAS,P2(2),P2(1))                                    01506 
      LINCNT = -55                                                      01507 
      ENDIF                                                             01508 
      DO I = 1,18                                                       01510 
      OUTPUT(I) = ' '                                                   01510 
      ENDDO                                                             01510 
      IF(INCLVL.GT.0)THEN                                               01512 
      IF(INCSTR)THEN                                                    01513 
      INCSTR=.FALSE.                                                    01513 
      ELSE                                                              01514 
      OUTPUT(2) = '*'                                                   01514 
      ENDIF                                                             01514 
      ENDIF                                                             01515 
      IF(LINENO.NE.0)THEN                                               01517 
      IF(LINENO.LT.0) OUTPUT(2) = 'E'                                   01518 
      CALL PUTNUM (OUTPUT(1),IABS(LINENO))                              01519 
      CALL PUTNUM (OUTPUT(9),NUMLIN)                                    01520 
      ENDIF                                                             01521 
      DO I = 3,LEN+2                                                    01523 
      OUTPUT(I+16) = STRING(I)                                          01523 
      ENDDO                                                             01523 
      CALL FPUT (IOCLAS,OUTPUT,LEN+18)                                  01524 
      LINCNT = LINCNT + 1                                               01525 
      GO TO I32756                                                      01526 
      END                                                               01527 
      SUBROUTINE ROPN (CLS)                                             01567 
      BYTE      DAT(9)        !date in ASCII                            01573 
      LOGICAL*2 FLLON         !.T. if output to FLL file on             01574 
      LOGICAL*2 FORT          !.T. if fort output desired               01575 
      BYTE      FVER(21)      !ASCII FLECS version ident                01576 
      INTEGER*2 LINCNT        !# lines left for current page            01577 
      BYTE      LINE(106)     !task command line                        01578 
      LOGICAL*2 LIST          !.T. if listing output desired            01579 
      BYTE      NAMEHD(6)     !ASCII char from .NAME directive          01580 
      INTEGER*2 P1(33)        !Page header string, line 1               01581 
      INTEGER*2 P2(59)        !Page header string, line 2               01582 
      INTEGER*2 PAGENO        !current FLL page #                       01583 
      LOGICAL*2 SPON          !state of /SP switch                      01584 
      BYTE      TIM(8)        !time in ASCII                            01585 
      COMMON /FILES/ PAGENO,LINCNT,FORT,LIST,                           01587 
     1 SPON,FLLON,P1,P2                                                 01588 
      EQUIVALENCE (P1(3),FVER(1)),(P1(16),DAT(1)),(P1(22),TIM(1))       01590 
      EQUIVALENCE (P2(3),NAMEHD(1)),(P2(7),LINE(1))                     01591 
      INTEGER*2 NUMINC  !max depth include files                        01596 
      PARAMETER (NUMINC=3)                                              01598 
      LOGICAL*2 FLLONS(0:NUMINC) !saved values of FLLON                 01600 
      INTEGER*2 INCLVL  !.INCLUDE level now at (0-->main)               01601 
      LOGICAL*2 INCSTR  !.T. if just read .inc from main level          01602 
                        !(prevents * on that line)                      01603 
      LOGICAL*2 LICHNG  !.T. if should ignore FLLON                     01604 
      COMMON /INCDAT/ FLLONS,INCLVL,INCSTR,LICHNG                       01606 
      LOGICAL*2 CLS                                                     01617 
      INCLVL = INCLVL - 1               !back to previous level         01619 
      FLLON = FLLONS(INCLVL)            !/LI setting for that level     01621 
      CALL FROPN (INCLVL,CLS)           !tell macro code what level     01623 
                                !to read from                           01624 
      RETURN                                                            01625 
      END                                                               01626 
