      INTEGERINPF(128),OUTF(128)
      INTEGERMAPDN
      INTEGERFD,ARGP,I,J,K,ARGMAP(26),STATUS
      INTEGERGETARG,LENGTH,CREATE,OPEN,CHKARG
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERDICT(17)
      DATADICT/244,233,237,229,242,223,228,233,227,244,233,239,238,225,2
     *42,249,0/
      CALLINITKW
      I0DECL=1
      CALLPTOC(7H_main_*,:252,SPNAME,7)
      DO 23000I=1,26
      ARGMAP(I)=-1
23000 CONTINUE
23001 CONTINUE
      ARGMAP(3)=0
      ARGMAP(15)=0
      ARGMAP(16)=0
      ARGMAP(20)=0
      K=1
      STATUS=CHKARG(K,ARGMAP)
      IF(.NOT.(STATUS .EQ. -3))GOTO23002
      CALLERROR(45HUsage: rf [-{c|p|t}] [ [-o outf] inf {inf} ].)
23002 CONTINUE
      IF(.NOT.(ARGMAP(16) .GT. 0))GOTO23004
      D0CTIO=CREATE(DICT,2)
      IF(.NOT.(D0CTIO .EQ. -3))GOTO23006
      CALLCANT(DICT)
23006 CONTINUE
      T0MEPR=1
      SPNUM=1
      CALLPRINT(D0CTIO,11H@.main@.*n.)
      GOTO23005
23004 CONTINUE
      T0MEPR=0
23005 CONTINUE
      IF(.NOT.(ARGMAP(20) .GT. 0))GOTO23008
      P0OGRA=1
      GOTO23009
23008 CONTINUE
      P0OGRA=0
23009 CONTINUE
      IF(.NOT.(ARGMAP(3) .GT. 0))GOTO23010
      S0CPRO=1
      GOTO23011
23010 CONTINUE
      S0CPRO=0
23011 CONTINUE
      IF(.NOT.(STATUS .EQ. -1))GOTO23012
      INFILE(1)=-10
      LINECT(1)=0
      OUTFIL=-11
      CALLPARSE
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23014
      CALLO0TPUT
23014 CONTINUE
      IF(.NOT.(S0CPRO .EQ. 1))GOTO23016
      CALLO0TSTC
23016 CONTINUE
      CALLO0TPUU
      GOTO23013
23012 CONTINUE
      CALLGETARG(K,OUTF,128)
      IF(.NOT.(ARGMAP(15) .GT. 0))GOTO23018
      ARGP=K+1
      GOTO23019
23018 CONTINUE
      CONTINUE
      I=LENGTH(OUTF)
23020 IF(.NOT.(I .GE. 1))GOTO23022
      IF(.NOT.(OUTF(I) .EQ. :257))GOTO23023
      GOTO23022
23025 CONTINUE
23023 CONTINUE
23021 I=I-1
      GOTO23020
23022 CONTINUE
      CONTINUE
      J=I+1
23026 IF(.NOT.(J .LT. I+31))GOTO23028
      IF(.NOT.(OUTF(J) .EQ. 0))GOTO23029
      GOTO23033
23029 IF(.NOT.(OUTF(J) .EQ. :256 .AND. MAPDN(OUTF(J+1)) .EQ. 242 .AND. O
     *UTF(J+2) .EQ. 0))GOTO23031
23033 CONTINUE
      GOTO23028
23034 CONTINUE
23031 CONTINUE
23027 J=J+1
      GOTO23026
23028 CONTINUE
      OUTF(J)=:256
      OUTF(J+1)=230
      OUTF(J+2)=0
      ARGP=K
23019 CONTINUE
      OUTFIL=CREATE(OUTF,2)
      IF(.NOT.(OUTFIL .EQ. -3))GOTO23035
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23037
      CALLCLOSE(D0CTIO)
23037 CONTINUE
      CALLCANT(OUTF)
23035 CONTINUE
      CONTINUE
23039 IF(.NOT.(GETARG(ARGP,INPF,128) .NE. -1))GOTO23041
      FD=OPEN(INPF,1)
      IF(.NOT.(FD .NE. -3))GOTO23042
      INFILE(1)=FD
      LINECT(1)=0
      LEVEL=1
      CALLPARSE
      CALLCLOSE(FD)
      GOTO23043
23042 CONTINUE
      CALLPRINT(-15,17H*s: can't open*n.,INPF)
23043 CONTINUE
23040 ARGP=ARGP+1
      GOTO23039
23041 CONTINUE
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23044
      CALLO0TPUT
      CALLCLOSE(D0CTIO)
23044 CONTINUE
      IF(.NOT.(S0CPRO .EQ. 1))GOTO23046
      CALLO0TSTC
23046 CONTINUE
      CALLO0TPUU
      CALLCLOSE(OUTFIL)
23013 CONTINUE
      CALL SWT
      STOP
23048 CONTINUE
      END
      INTEGERFUNCTIONALLDIG(STR)
      INTEGERSTR(1)
      INTEGERI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      ALLDIG=0
      IF(.NOT.(STR(1) .EQ. 0))GOTO23049
      RETURN
23051 CONTINUE
23049 CONTINUE
      CONTINUE
      I=1
23052 IF(.NOT.(STR(I) .NE. 0))GOTO23054
      IF(.NOT.(TYPE(STR(I)+1) .NE. 176))GOTO23055
      RETURN
23057 CONTINUE
23055 CONTINUE
23053 I=I+1
      GOTO23052
23054 CONTINUE
      ALLDIG=1
      RETURN
23058 CONTINUE
      END
      SUBROUTINEANDCOD(LAB)
      INTEGERLAB
      CALLS0MTCO
      CALLIFGO(LAB)
      RETURN
23059 CONTINUE
      END
      SUBROUTINEBALPAR
      INTEGERGETTOK
      INTEGERT,TOKEN(102)
      INTEGERNLPAR
      IF(.NOT.(GETTOK(TOKEN,102) .NE. :250))GOTO23060
      CALLSYNERR(19Hmissing left paren.)
      RETURN
23062 CONTINUE
23060 CONTINUE
      CALLOUTSTR(TOKEN)
      NLPAR=1
      CONTINUE
23063 CONTINUE
      T=GETTOK(TOKEN,102)
      IF(.NOT.(T .EQ. :273 .OR. T .EQ. :373 .OR. T .EQ. :375 .OR. T .EQ.
     * -1))GOTO23066
      CALLPBSTR(TOKEN)
      GOTO23065
23068 CONTINUE
23066 CONTINUE
      IF(.NOT.(T .EQ. :212))GOTO23069
      TOKEN(1)=0
      GOTO23070
23069 CONTINUE
      IF(.NOT.(T .EQ. :250))GOTO23071
      NLPAR=NLPAR+1
      GOTO23072
23071 CONTINUE
      IF(.NOT.(T .EQ. :251))GOTO23073
      NLPAR=NLPAR-1
23073 CONTINUE
23072 CONTINUE
23070 CONTINUE
      CALLOUTSTR(TOKEN)
23064 IF(.NOT.(NLPAR .LE. 0))GOTO23063
23065 CONTINUE
      IF(.NOT.(NLPAR .NE. 0))GOTO23075
      CALLSYNERR(33Hmissing parenthesis in condition.)
23075 CONTINUE
      RETURN
23077 CONTINUE
      END
      SUBROUTINEBRKNXT(SP,LEXTYP,LABVAL,TOKEN)
      INTEGERI,SP,LEVEL,TOKEN,LABVAL(100),LEXTYP(100)
      INTEGERTOKSTR(102),T
      INTEGERGETTOK,ALLDIG,CTOI,LABGEN
      T=GETTOK(TOKSTR,102)
      IF(.NOT.(T .EQ. :212 .OR. T .EQ. :273))GOTO23078
      LEVEL=1
      GOTO23079
23078 CONTINUE
      IF(.NOT.(ALLDIG(TOKSTR) .EQ. 1))GOTO23080
      I=1
      LEVEL=CTOI(TOKSTR,I)
      IF(.NOT.(TOKSTR(I) .NE. 0))GOTO23082
      LEVEL=0
23082 CONTINUE
      GOTO23081
23080 CONTINUE
      LEVEL=0
23081 CONTINUE
23079 CONTINUE
      IF(.NOT.(LEVEL .EQ. 0))GOTO23084
      CALLSYNERR(21Hillegal level number.)
23084 CONTINUE
      CONTINUE
      I=SP
23086 IF(.NOT.(I .GT. 0))GOTO23088
      IF(.NOT.(LEXTYP(I) .EQ. 10263 .OR. LEXTYP(I) .EQ. 10266 .OR. LEXTY
     *P(I) .EQ. 10268 .OR. LEXTYP(I) .EQ. 10269))GOTO23089
      LEVEL=LEVEL-1
      IF(.NOT.(LEVEL .LE. 0))GOTO23091
      CALLS0MTCO
      IF(.NOT.(TOKEN .EQ. 10264))GOTO23093
      CALLOUTGO(LABVAL(I)+1)
      GOTO23094
23093 CONTINUE
      CALLOUTGO(LABVAL(I))
23094 CONTINUE
      CALLOUTCON(LABGEN(1))
      RETURN
23095 CONTINUE
      GOTO23092
23091 CONTINUE
      I=I-1
23092 CONTINUE
23089 CONTINUE
23087 I=I-1
      GOTO23086
23088 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10264))GOTO23096
      CALLSYNERR(14Hillegal break.)
      GOTO23097
23096 CONTINUE
      CALLSYNERR(13Hillegal next.)
23097 CONTINUE
      RETURN
23098 CONTINUE
      END
      INTEGERFUNCTIONBUMPCH(CH)
      INTEGERCH
      IF(.NOT.(CH .LT. 225 .OR. CH .GT. 250))GOTO23099
      CH=225-1
23099 CONTINUE
      IF(.NOT.(CH .GE. 250))GOTO23101
      BUMPCH=0
      GOTO23102
23101 CONTINUE
      BUMPCH=1
      CH=CH+1
23102 CONTINUE
      RETURN
23103 CONTINUE
      END
      SUBROUTINECASEC(LAB)
      INTEGERLAB
      INTEGERSTR(102)
      INTEGERLEX,LENGTH,LABGEN
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      IF(.NOT.(CSP .GE. 10))GOTO23104
      CALLSYNERR(22Hcase nesting too deep.)
      RETURN
23106 CONTINUE
23104 CONTINUE
      CSP=CSP+1
      CSTACK(CSP)=CTOP+1
      IF(.NOT.(LEX(STR) .NE. 10267))GOTO23107
      GOTO23111
23107 IF(.NOT.(LENGTH(STR) .GT. 6))GOTO23109
      GOTO23114
23109 IF(.NOT.(TYPE(STR(1)+1) .NE. 225))GOTO23112
23114 CONTINUE
23111 CONTINUE
      CALLPBSTR(STR)
      CALLSYNERR(22Hillegal case variable.)
      CLAB(CTOP+1)=0
      CTOP=CTOP+6+1
      RETURN
23115 CONTINUE
23112 CONTINUE
      IF(.NOT.(CTOP+1+6+1 .GT. 400))GOTO23116
      CALLSYNERR(21Htoo many case labels.)
      RETURN
23118 CONTINUE
23116 CONTINUE
      CALLSCOPY(STR,1,CLAB,CTOP+1)
      CTOP=CTOP+6+1
      LAB=LABGEN(3)
      IF(.NOT.(LEX(STR) .NE. :373))GOTO23119
      CALLSYNERR(36Hcompound statement must follow case.)
      RETURN
23121 CONTINUE
23119 CONTINUE
      CALLPBSTR(STR)
      CALLS0MTCO
      CALLOUTGO(LAB)
      CALLOUTCON(LAB+2)
      RETURN
23122 CONTINUE
      END
      SUBROUTINECASEI(LAB)
      INTEGERLAB
      INTEGERLABGEN
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      IF(.NOT.(CTOP+1 .GE. 400))GOTO23123
      CALLSYNERR(21Htoo many case labels.)
      RETURN
23125 CONTINUE
23123 CONTINUE
      CTOP=CTOP+1
      CLAB(CTOP)=LABGEN(1)
      CALLOUTGO(LAB)
      CALLOUTCON(CLAB(CTOP))
      RETURN
23126 CONTINUE
      END
      SUBROUTINECASES(LAB)
      INTEGERI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERCGOTO(7)
      DATACGOTO/231,239,244,239,160,168,0/
      IF(.NOT.(CSP .LT. 1 .OR. CSP .GT. 10))GOTO23127
      CALLSYNERR(21Hcase stack underflow.)
      RETURN
23129 CONTINUE
23127 CONTINUE
      CALLOUTNUM(LAB)
      CALLOUTTAB
      CALLOUTSTR(CGOTO)
      CONTINUE
      I=CSTACK(CSP)+7
23130 IF(.NOT.(I .LT. CTOP-1))GOTO23132
      CALLOUTNUM(CLAB(I))
      CALLOUTCH(:254)
23131 I=I+1
      GOTO23130
23132 CONTINUE
      CALLOUTNUM(CLAB(I))
      CALLOUTCH(:251)
      CALLOUTCH(:254)
      I=CSTACK(CSP)
      CALLOUTSTR(CLAB(I))
      CALLOUTDON
      CTOP=CSTACK(CSP)-1
      CSP=CSP-1
      RETURN
23133 CONTINUE
      END
      INTEGERFUNCTIONDEFTOK(TOKEN,TOKSIZ)
      INTEGERGTOK
      INTEGERTOKSIZ
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERDEFN(200),T,TOKEN(TOKSIZ)
      INTEGERDEFNAM(7)
      INTEGERD0FNTE
      INTEGERLOOKUP,EQUAL
      DATADEFNAM/228,229,230,233,238,229,0/
      CONTINUE
      T=GTOK(TOKEN,TOKSIZ)
23134 IF(.NOT.(T .NE. -1))GOTO23136
      IF(.NOT.(T .NE. 10100))GOTO23137
      GOTO23136
23139 CONTINUE
23137 CONTINUE
      IF(.NOT.(EQUAL(TOKEN,DEFNAM) .EQ. 1))GOTO23140
      CALLGETDEF(TOKEN,TOKSIZ,DEFN,200)
      CALLINSTAL(TOKEN,DEFN)
      GOTO23135
23142 CONTINUE
23140 CONTINUE
      IF(.NOT.(LOOKUP(TOKEN,D0FNTE,D0FTAB) .EQ. 0))GOTO23143
      GOTO23136
23145 CONTINUE
23143 CONTINUE
      CALLPBSTR(MEM(D0FNTE))
23135 T=GTOK(TOKEN,TOKSIZ)
      GOTO23134
23136 CONTINUE
      IF(.NOT.(T .EQ. 10100))GOTO23146
      CALLLETDIG(TOKEN)
      CALLFOLD(TOKEN)
      CALLG0TSPN(TOKEN)
      CALLMKUNIQ(TOKEN)
23146 CONTINUE
      DEFTOK=T
      RETURN
23148 CONTINUE
      END
      SUBROUTINEDOCODE(LAB)
      INTEGERLABGEN
      INTEGERLAB
      INTEGERDOSTR(4)
      DATADOSTR/196,207,:240,0/
      CALLOUTTAB
      CALLOUTSTR(DOSTR)
      LAB=LABGEN(2)
      CALLOUTNUM(LAB)
      CALLEATUP
      CALLS0MTCO
      RETURN
23149 CONTINUE
      END
      SUBROUTINEDOSTAT(LAB)
      INTEGERLAB
      CALLOUTCON(LAB)
      CALLOUTCON(LAB+1)
      RETURN
23150 CONTINUE
      END
      SUBROUTINEEATUP
      INTEGERGETTOK
      INTEGERPTOKEN(102),T,LASTT,TOKEN(102)
      INTEGERNLPAR
      T=0
      NLPAR=0
      CONTINUE
23151 CONTINUE
      LASTT=T
      T=GETTOK(TOKEN,102)
      IF(.NOT.(T .EQ. :273))GOTO23154
      GOTO23153
23156 CONTINUE
23154 CONTINUE
      IF(.NOT.(T .EQ. :212))GOTO23157
      IF(.NOT.(LASTT .EQ. :254 .OR. LASTT .EQ. :337 .OR. LASTT .EQ. :253
     * .OR. LASTT .EQ. :255 .OR. LASTT .EQ. :252 .OR. LASTT .EQ. :374 .O
     *R. LASTT .EQ. :246))GOTO23159
      GOTO23152
23161 CONTINUE
23159 CONTINUE
      GOTO23153
23162 CONTINUE
23157 CONTINUE
      IF(.NOT.(T .EQ. :375))GOTO23163
      CALLPBSTR(TOKEN)
      GOTO23153
23165 CONTINUE
23163 CONTINUE
      IF(.NOT.(T .EQ. :373 .OR. T .EQ. -1))GOTO23166
      CALLSYNERR(24Hunexpected brace or EOF.)
      CALLPBSTR(TOKEN)
      GOTO23153
23168 CONTINUE
23166 CONTINUE
      IF(.NOT.(T .EQ. :337))GOTO23169
      GOTO23152
23171 CONTINUE
23169 CONTINUE
      IF(.NOT.(T .EQ. :250))GOTO23172
      NLPAR=NLPAR+1
      GOTO23173
23172 CONTINUE
      IF(.NOT.(T .EQ. :251))GOTO23174
      NLPAR=NLPAR-1
23174 CONTINUE
23173 CONTINUE
      CALLOUTTAB
      CALLOUTSTR(TOKEN)
23152 IF(.NOT.(NLPAR .LT. 0))GOTO23151
23153 CONTINUE
      IF(.NOT.(NLPAR .NE. 0))GOTO23176
      CALLSYNERR(23Hunbalanced parentheses.)
23176 CONTINUE
      CALLOUTDON
      RETURN
23178 CONTINUE
      END
      SUBROUTINEELSEIF(LAB)
      INTEGERLAB
      CALLOUTGO(LAB+1)
      CALLOUTCON(LAB)
      RETURN
23179 CONTINUE
      END
      SUBROUTINEENDSTC
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERSCALL(11)
      DATASCALL/227,225,236,236,160,227,164,229,238,228,0/
      IF(.NOT.(S0CPRO .EQ. 1))GOTO23180
      CALLOUTTAB
      CALLOUTSTR(SCALL)
      CALLOUTDON
23180 CONTINUE
      RETURN
23182 CONTINUE
      END
      SUBROUTINEE0TERS
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERI
      INTEGEREQUAL
      INTEGERENTER(14)
      INTEGERTRACE(14)
      INTEGERSINIT(12)
      INTEGERSMAIN(7)
      INTEGERSCINIT(12)
      DATAENTER/227,225,236,236,160,244,164,229,238,244,242,160,168,0/
      DATATRACE/227,225,236,236,160,244,164,244,242,225,227,160,168,0/
      DATASINIT/227,225,236,236,160,244,164,233,238,233,244,0/
      DATASMAIN/223,237,225,233,238,223,0/
      DATASCINIT/227,225,236,236,160,227,164,233,238,233,244,0/
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23183
      IF(.NOT.(EQUAL(SPNAME,SMAIN) .EQ. 1))GOTO23185
      CALLOUTTAB
      CALLOUTSTR(SINIT)
      CALLOUTDON
23185 CONTINUE
      CALLOUTTAB
      CALLOUTSTR(ENTER)
      CALLOUTNUM(SPNUM)
      CALLOUTCH(:251)
      CALLOUTDON
23183 CONTINUE
      IF(.NOT.(P0OGRA .EQ. 1))GOTO23187
      IF(.NOT.(EQUAL(SPNAME,SMAIN) .EQ. 1))GOTO23189
      CALLOUTTAB
      CALLOUTSTR(TRACE)
      CALLOUTCH(179)
      CALLOUTCH(:254)
      CALLOUTCH(176)
      CALLOUTCH(:251)
      CALLOUTDON
23189 CONTINUE
      CALLOUTTAB
      CALLOUTSTR(TRACE)
      CALLOUTCH(177)
      CALLOUTCH(:254)
      CALLOUTCH(:247)
      CALLOUTSTR(SPNAME)
      CALLOUTCH(:256)
      CALLOUTCH(:247)
      CALLOUTCH(:251)
      CALLOUTDON
23187 CONTINUE
      IF(.NOT.(S0CPRO .EQ. 1))GOTO23191
      IF(.NOT.(EQUAL(SPNAME,SMAIN) .EQ. 1))GOTO23191
      CALLOUTTAB
      CALLOUTSTR(SCINIT)
      CALLOUTDON
23191 CONTINUE
      RETURN
23193 CONTINUE
      END
      SUBROUTINEE0ITSU
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERI
      INTEGEREXIT(12)
      INTEGERTRACE(19)
      DATAEXIT/227,225,236,236,160,244,164,229,248,233,244,0/
      DATATRACE/227,225,236,236,160,244,164,244,242,225,227,160,168,178,
     *172,160,176,169,0/
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23194
      CALLOUTTAB
      CALLOUTSTR(EXIT)
      CALLOUTDON
23194 CONTINUE
      IF(.NOT.(P0OGRA .EQ. 1))GOTO23196
      CALLOUTTAB
      CALLOUTSTR(TRACE)
      CALLOUTDON
23196 CONTINUE
      RETURN
23198 CONTINUE
      END
      SUBROUTINEE0ITPR
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERSWT(9)
      INTEGERC0EANU(12)
      INTEGERT0ACEE(20)
      DATASWT/227,225,236,236,160,243,247,244,0/
      DATAC0EANU/227,225,236,236,160,244,164,227,236,245,240,0/
      DATAT0ACEE/227,225,236,236,160,244,164,244,242,225,227,160,168,178
     *,172,160,176,169,160,0/
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23199
      CALLOUTTAB
      CALLOUTSTR(C0EANU)
      CALLOUTDON
23199 CONTINUE
      IF(.NOT.(P0OGRA .EQ. 1))GOTO23201
      CALLOUTTAB
      CALLOUTSTR(T0ACEE)
      CALLOUTDON
23201 CONTINUE
      CALLOUTTAB
      CALLOUTSTR(SWT)
      CALLOUTDON
      RETURN
23203 CONTINUE
      END
      SUBROUTINEFOLD(TOKEN)
      INTEGERTOKEN(1)
      INTEGERI
      CONTINUE
      I=1
23204 IF(.NOT.(TOKEN(I) .NE. 0))GOTO23206
      IF(.NOT.(TOKEN(I) .GE. 193))GOTO23207
      IF(.NOT.(TOKEN(I) .LE. 218))GOTO23207
      TOKEN(I)=TOKEN(I)-193+225
23207 CONTINUE
23205 I=I+1
      GOTO23204
23206 CONTINUE
      RETURN
23209 CONTINUE
      END
      SUBROUTINEFORCOD(LAB)
      INTEGERGETTOK
      INTEGERT,TOKEN(102)
      INTEGERLENGTH,LABGEN
      INTEGERI,J,LAB,NLPAR
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERIFNOT(10)
      DATAIFNOT/201,198,:250,:256,206,207,212,:256,:250,0/
      LAB=LABGEN(3)
      CALLOUTCON(0)
      IF(.NOT.(GETTOK(TOKEN,102) .NE. :250))GOTO23210
      CALLSYNERR(19Hmissing left paren.)
      RETURN
23212 CONTINUE
23210 CONTINUE
      CALLEATUP
      T=GETTOK(TOKEN,102)
      IF(.NOT.(T .EQ. :273))GOTO23213
      CALLOUTCON(LAB)
      GOTO23214
23213 CONTINUE
      CALLOUTNUM(LAB)
      CALLS0MTCO
      CALLOUTTAB
      CALLOUTSTR(IFNOT)
      NLPAR=0
      CONTINUE
23215 IF(.NOT.(NLPAR .GE. 0))GOTO23216
      IF(.NOT.(T .EQ. :273))GOTO23217
      GOTO23216
23219 CONTINUE
23217 CONTINUE
      IF(.NOT.(T .EQ. :250))GOTO23220
      NLPAR=NLPAR+1
      GOTO23221
23220 CONTINUE
      IF(.NOT.(T .EQ. :251))GOTO23222
      NLPAR=NLPAR-1
23222 CONTINUE
23221 CONTINUE
      IF(.NOT.(T .NE. :212 .AND. T .NE. :337))GOTO23224
      CALLOUTSTR(TOKEN)
23224 CONTINUE
      T=GETTOK(TOKEN,102)
      GOTO23215
23216 CONTINUE
      CALLOUTCH(:251)
      CALLOUTCH(:251)
      CALLOUTGO(LAB+2)
      IF(.NOT.(NLPAR .LT. 0))GOTO23226
      CALLSYNERR(19Hinvalid for clause.)
23226 CONTINUE
23214 CONTINUE
      FORDEP=FORDEP+1
      J=1
      CONTINUE
      I=1
23228 IF(.NOT.(I .LT. FORDEP))GOTO23230
      J=J+LENGTH(FORSTK(J))+1
23229 I=I+1
      GOTO23228
23230 CONTINUE
      FORSTK(J)=0
      NLPAR=0
      CONTINUE
23231 IF(.NOT.(NLPAR .GE. 0))GOTO23232
      T=GETTOK(TOKEN,102)
      IF(.NOT.(T .EQ. :250))GOTO23233
      NLPAR=NLPAR+1
      GOTO23234
23233 CONTINUE
      IF(.NOT.(T .EQ. :251))GOTO23235
      NLPAR=NLPAR-1
23235 CONTINUE
23234 CONTINUE
      IF(.NOT.(NLPAR .GE. 0 .AND. T .NE. :212 .AND. T .NE. :337))GOTO232
     *37
      CALLSCOPY(TOKEN,1,FORSTK,J)
      J=J+LENGTH(TOKEN)
23237 CONTINUE
      GOTO23231
23232 CONTINUE
      LAB=LAB+1
      RETURN
23239 CONTINUE
      END
      SUBROUTINEFORS(LAB)
      INTEGERLENGTH
      INTEGERI,J,LAB
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      CALLOUTNUM(LAB)
      J=1
      CONTINUE
      I=1
23240 IF(.NOT.(I .LT. FORDEP))GOTO23242
      J=J+LENGTH(FORSTK(J))+1
23241 I=I+1
      GOTO23240
23242 CONTINUE
      IF(.NOT.(LENGTH(FORSTK(J)) .GT. 0))GOTO23243
      CALLOUTTAB
      CALLOUTSTR(FORSTK(J))
      CALLOUTDON
23243 CONTINUE
      CALLOUTGO(LAB-1)
      CALLOUTCON(LAB+1)
      FORDEP=FORDEP-1
      RETURN
23245 CONTINUE
      END
      SUBROUTINEGETDEF(TOKEN,TOKSIZ,DEFN,DEFSIZ)
      INTEGERGTOK,NGETCH
      INTEGERDEFSIZ,I,NLPAR,TOKSIZ
      INTEGERC,DEFN(DEFSIZ),TOKEN(TOKSIZ),TOK(102)
      IF(.NOT.(GTOK(TOK,102) .NE. :250))GOTO23246
      CALLSYNERR(19Hmissing left paren.)
23246 CONTINUE
      IF(.NOT.(GTOK(TOKEN,TOKSIZ) .NE. 10100))GOTO23248
      CALLSYNERR(15Hnon-alpha name.)
      GOTO23249
23248 CONTINUE
      IF(.NOT.(GTOK(TOK,102) .NE. :254))GOTO23250
      CALLSYNERR(24Hmissing comma in define.)
23250 CONTINUE
23249 CONTINUE
      NLPAR=0
      CONTINUE
      I=1
23252 IF(.NOT.(NLPAR .GE. 0))GOTO23254
      IF(.NOT.(I .GT. DEFSIZ))GOTO23255
      CALLSYNERR(20Hdefinition too long.)
      RETURN
23257 CONTINUE
      GOTO23256
23255 CONTINUE
      IF(.NOT.(NGETCH(DEFN(I)) .EQ. -1))GOTO23258
      CALLSYNERR(20Hmissing right paren.)
      RETURN
23260 CONTINUE
      GOTO23259
23258 CONTINUE
      IF(.NOT.(DEFN(I) .EQ. :250))GOTO23261
      NLPAR=NLPAR+1
      GOTO23262
23261 CONTINUE
      IF(.NOT.(DEFN(I) .EQ. :251))GOTO23263
      NLPAR=NLPAR-1
23263 CONTINUE
23262 CONTINUE
23259 CONTINUE
23256 CONTINUE
23253 I=I+1
      GOTO23252
23254 CONTINUE
      DEFN(I-1)=0
      RETURN
23265 CONTINUE
      END
      SUBROUTINEG0TSPN(TOKEN)
      INTEGERTOKEN(1)
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERFLAG
      INTEGEREQUAL
      INTEGERSUBR(11)
      INTEGERFUNC(9)
      DATAFLAG/0/
      DATASUBR/243,245,226,242,239,245,244,233,238,229,0/
      DATAFUNC/230,245,238,227,244,233,239,238,0/
      IF(.NOT.(FLAG .EQ. 1))GOTO23266
      CALLSCOPY(TOKEN,1,SPNAME,1)
      IF(.NOT.(T0MEPR .EQ. 1))GOTO23268
      CALLPUTLIN(TOKEN,D0CTIO)
      CALLPUTCH(:212,D0CTIO)
23268 CONTINUE
      SPNUM=SPNUM+1
      I0DECL=1
      FLAG=0
      GOTO23267
23266 CONTINUE
      IF(.NOT.(EQUAL(TOKEN,SUBR) .EQ. 1 .OR. EQUAL(TOKEN,FUNC) .EQ. 1))G
     *OTO23270
      FLAG=1
23270 CONTINUE
23267 CONTINUE
      RETURN
23272 CONTINUE
      END
      INTEGERFUNCTIONGETTOK(TOKEN,TOKSIZ)
      INTEGEREQUAL,OPEN,INDEX
      INTEGERJUNK,TOKSIZ,L,FD
      INTEGERDEFTOK
      INTEGERNAME(102),TOKEN(TOKSIZ)
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERINCL(8)
      DATAINCL/233,238,227,236,245,228,229,0/
      CONTINUE
23273 IF(.NOT.(LEVEL .GT. 0))GOTO23275
      CONTINUE
      GETTOK=DEFTOK(TOKEN,TOKSIZ)
23276 IF(.NOT.(GETTOK .NE. -1))GOTO23278
      IF(.NOT.(EQUAL(TOKEN,INCL) .EQ. 0))GOTO23279
      RETURN
23281 CONTINUE
23279 CONTINUE
      JUNK=DEFTOK(NAME,102)
      IF(.NOT.(LEVEL .GE. 5))GOTO23282
      CALLSYNERR(27Hincludes nested too deeply.)
      GOTO23283
23282 CONTINUE
      IF(.NOT.(JUNK .EQ. :247 .OR. JUNK .EQ. :242))GOTO23284
      CALLSCOPY(NAME,2,NAME,1)
      L=INDEX(NAME,JUNK)
      NAME(L)=0
23284 CONTINUE
      FD=OPEN(NAME,1)
      IF(.NOT.(FD .EQ. -3))GOTO23286
      CALLSYNERR(19Hcan't open include.)
      CALLPRINT(-15,16Hfile name: *s*n.,NAME)
      GOTO23287
23286 CONTINUE
      LEVEL=LEVEL+1
23287 CONTINUE
      LINECT(LEVEL)=0
      INFILE(LEVEL)=FD
23283 CONTINUE
23277 GETTOK=DEFTOK(TOKEN,TOKSIZ)
      GOTO23276
23278 CONTINUE
      IF(.NOT.(LEVEL .GT. 1))GOTO23288
      CALLCLOSE(INFILE(LEVEL))
23288 CONTINUE
23274 LEVEL=LEVEL-1
      GOTO23273
23275 CONTINUE
      GETTOK=-1
      RETURN
23290 CONTINUE
      END
      INTEGERFUNCTIONGTOK(LEXSTR,TOKSIZ)
      INTEGERC,LEXSTR(1)
      INTEGERNGETCH
      INTEGERI,T,TOKSIZ
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERORIFC(7)
      INTEGERANDIFC(8)
      DATAORIFC/239,242,233,230,160,168,0/
      DATAANDIFC/225,238,228,233,230,160,168,0/
1     C=NGETCH(C)
      IF(C .EQ. :240)GOTO1
      IF(C .EQ. :211)GOTO1
      IF(.NOT.(C .EQ. -1))GOTO23291
      T=-1
      GOTO23292
23291 CONTINUE
      T=TYPE(C+1)
23292 CONTINUE
      LEXSTR(1)=C
      IF(.NOT.(T .EQ. 225))GOTO23293
      CONTINUE
      I=1
23295 CONTINUE
      IF(.NOT.(T .NE. 225))GOTO23298
      IF(.NOT.(T .NE. :337))GOTO23298
      IF(.NOT.(T .NE. 176))GOTO23298
      IF(.NOT.(T .NE. :244))GOTO23298
      GOTO23297
23300 CONTINUE
23298 CONTINUE
      IF(.NOT.(C .EQ. :337))GOTO23301
      I=I-1
      GOTO23302
23301 CONTINUE
      IF(.NOT.(I .LT. TOKSIZ))GOTO23303
      LEXSTR(I)=C
23303 CONTINUE
23302 CONTINUE
      IF(.NOT.(NGETCH(C) .EQ. -1))GOTO23305
      T=-1
      GOTO23306
23305 CONTINUE
      T=TYPE(C+1)
23306 CONTINUE
23296 I=I+1
      GOTO23295
23297 CONTINUE
      CALLPUTBAK(C)
      T=10100
      GOTO23294
23293 CONTINUE
      IF(.NOT.(T .EQ. 176))GOTO23307
      CONTINUE
      I=1
23309 IF(.NOT.(T .EQ. 176))GOTO23311
      IF(.NOT.(I .LT. TOKSIZ))GOTO23312
      LEXSTR(I)=C
23312 CONTINUE
      IF(.NOT.(NGETCH(C) .EQ. -1))GOTO23314
      T=-1
      GOTO23315
23314 CONTINUE
      T=TYPE(C+1)
23315 CONTINUE
23310 I=I+1
      GOTO23309
23311 CONTINUE
      CALLPUTBAK(C)
      T=10101
      GOTO23308
23307 CONTINUE
      IF(.NOT.(T .EQ. :247 .OR. T .EQ. :242))GOTO23316
      LEXSTR(1)=T
      CONTINUE
      I=2
23318 IF(.NOT.(NGETCH(LEXSTR(I)) .NE. T))GOTO23320
      IF(.NOT.(I .GE. TOKSIZ-1))GOTO23321
      CALLSYNERR(14Hmissing quote.)
      LEXSTR(I)=T
      CALLPUTBAK(:212)
      GOTO23320
23323 CONTINUE
      GOTO23322
23321 CONTINUE
      IF(.NOT.(LEXSTR(I) .EQ. :212))GOTO23324
      IF(.NOT.(LEXSTR(I-1) .EQ. :337))GOTO23324
      I=I-1
      CONTINUE
23326 IF(.NOT.(NGETCH(LEXSTR(I)) .EQ. :240))GOTO23327
      GOTO23326
23327 CONTINUE
      IF(.NOT.(LEXSTR(I) .NE. LEXSTR(1)))GOTO23328
      CALLSYNERR(40Hcontin of literal must begin with quote.)
      LEXSTR(I)=LEXSTR(1)
      CALLPUTBAK(:212)
      GOTO23320
23330 CONTINUE
23328 CONTINUE
      I=I-1
      GOTO23325
23324 CONTINUE
      IF(.NOT.(LEXSTR(I) .EQ. :212))GOTO23331
      CALLSYNERR(14Hmissing quote.)
      LEXSTR(I)=LEXSTR(1)
      CALLPUTBAK(:212)
      GOTO23320
23333 CONTINUE
23331 CONTINUE
23325 CONTINUE
23322 CONTINUE
23319 I=I+1
      GOTO23318
23320 CONTINUE
      I=I+1
      GOTO23317
23316 CONTINUE
      IF(.NOT.(T .EQ. :243))GOTO23334
      CONTINUE
23336 IF(.NOT.(NGETCH(C) .NE. :212))GOTO23337
      GOTO23336
23337 CONTINUE
      T=:212
      LEXSTR(1)=:212
      I=2
      GOTO23335
23334 CONTINUE
      IF(.NOT.(T .EQ. :246))GOTO23338
      IF(.NOT.(NGETCH(C) .EQ. :246))GOTO23340
      T=:251
      CALLPBSTR(ANDIFC)
      LEXSTR(1)=:251
      I=2
      GOTO23341
23340 CONTINUE
      CALLPUTBAK(C)
      CALLRELATE(LEXSTR,I)
23341 CONTINUE
      GOTO23339
23338 CONTINUE
      IF(.NOT.(T .EQ. :374))GOTO23342
      IF(.NOT.(NGETCH(C) .EQ. :374))GOTO23344
      T=:251
      CALLPBSTR(ORIFC)
      LEXSTR(1)=:251
      I=2
      GOTO23345
23344 CONTINUE
      CALLPUTBAK(C)
      CALLRELATE(LEXSTR,I)
23345 CONTINUE
      GOTO23343
23342 CONTINUE
      IF(.NOT.(T .EQ. :276 .OR. T .EQ. :274 .OR. T .EQ. :376 .OR. T .EQ.
     * :275 .OR. T .EQ. :241))GOTO23346
      CALLRELATE(LEXSTR,I)
      GOTO23347
23346 CONTINUE
      I=2
23347 CONTINUE
23343 CONTINUE
23339 CONTINUE
23335 CONTINUE
23317 CONTINUE
23308 CONTINUE
23294 CONTINUE
      LEXSTR(I)=0
      GTOK=T
      RETURN
23348 CONTINUE
      END
      INTEGERFUNCTIONHASHFN(TOKEN,TOKSIZ)
      INTEGERTOKEN(1)
      INTEGERTOKSIZ
      INTEGERCH
      CH=TOKEN(TOKSIZ)
      IF(.NOT.(CH .GE. 193 .AND. CH .LE. 218))GOTO23349
      HASHFN=CH-193+1
      GOTO23350
23349 CONTINUE
      IF(.NOT.(CH .GE. 225 .AND. CH .LE. 250))GOTO23351
      HASHFN=CH-225+1
      GOTO23352
23351 CONTINUE
      HASHFN=26
23352 CONTINUE
23350 CONTINUE
      RETURN
23353 CONTINUE
      END
      SUBROUTINEIFCODE(LAB)
      INTEGERLABGEN
      INTEGERLAB
      CALLS0MTCO
      LAB=LABGEN(2)
      CALLIFGO(LAB)
      RETURN
23354 CONTINUE
      END
      SUBROUTINEIFGO(LAB)
      INTEGERLAB
      INTEGERIFNOT(9)
      DATAIFNOT/201,198,168,174,206,207,212,174,0/
      CALLOUTTAB
      CALLOUTSTR(IFNOT)
      CALLBALPAR
      CALLOUTCH(:251)
      CALLOUTGO(LAB)
      RETURN
23355 CONTINUE
      END
      SUBROUTINEINITDF(TOKEN)
      INTEGERTOKEN(1),WORK(20)
      CALLPTOC(TOKEN,:256,WORK,20)
      CALLMKDEF(WORK,WORK)
      RETURN
23356 CONTINUE
      END
      SUBROUTINEINITKW
      INTEGERI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERMKTABL
      INTEGERC
      INTEGERSSTOP(5)
      INTEGERS0UBRO(11)
      INTEGERS0UNCT(9)
      INTEGERS0NTEG(8)
      INTEGERSREAL(5)
      INTEGERS0OUBL(7)
      INTEGERS0OMPL(8)
      INTEGERS0OGIC(8)
      INTEGERS0IMEN(10)
      INTEGERS0QUIV(12)
      INTEGERS0OMMO(7)
      INTEGERS0ARAM(10)
      INTEGERS0XTER(9)
      INTEGERSDATA(5)
      INTEGERSTRACE(6)
      INTEGERSGO(5)
      INTEGERSRTN(7)
      INTEGERS0TRIN(7)
      INTEGERSCASE(5)
      INTEGERSFOR(4)
      INTEGERSREPT(7)
      INTEGERSUNTIL(6)
      INTEGERSDO(3)
      INTEGERSIF(3)
      INTEGERSELSE(5)
      INTEGERSWHILE(6)
      INTEGERSBREAK(6)
      INTEGERSNEXT(5)
      INTEGERSANDIF(6)
      INTEGERSORIF(5)
      INTEGERS0MPLI(9)
      INTEGERSSAVE(5)
      DATASSTOP/243,244,239,240,0/
      DATAS0UBRO/243,245,226,242,239,245,244,233,238,229,0/
      DATAS0UNCT/230,245,238,227,244,233,239,238,0/
      DATAS0NTEG/233,238,244,229,231,229,242,0/
      DATASREAL/242,229,225,236,0/
      DATAS0OUBL/228,239,245,226,236,229,0/
      DATAS0OMPL/227,239,237,240,236,229,248,0/
      DATAS0OGIC/236,239,231,233,227,225,236,0/
      DATAS0IMEN/228,233,237,229,238,243,233,239,238,0/
      DATAS0QUIV/229,241,245,233,246,225,236,229,238,227,229,0/
      DATAS0OMMO/227,239,237,237,239,238,0/
      DATAS0ARAM/240,225,242,225,237,229,244,229,242,0/
      DATAS0XTER/229,248,244,229,242,238,225,236,0/
      DATASDATA/228,225,244,225,0/
      DATASTRACE/244,242,225,227,229,0/
      DATASGO/231,239,244,239,0/
      DATASRTN/242,229,244,245,242,238,0/
      DATAS0TRIN/243,244,242,233,238,231,0/
      DATASCASE/227,225,243,229,0/
      DATASFOR/230,239,242,0/
      DATASREPT/242,229,240,229,225,244,0/
      DATASUNTIL/245,238,244,233,236,0/
      DATASDO/228,239,0/
      DATASIF/233,230,0/
      DATASELSE/229,236,243,229,0/
      DATASWHILE/247,232,233,236,229,0/
      DATASBREAK/226,242,229,225,235,0/
      DATASNEXT/238,229,248,244,0/
      DATASANDIF/225,238,228,233,230,0/
      DATASORIF/239,242,233,230,0/
      DATAS0MPLI/233,237,240,236,233,227,233,244,0/
      DATASSAVE/243,225,246,229,0/
      CALLDSINIT(13000)
      OUTP=0
      LEVEL=1
      BP=0
      FORDEP=0
      STRTOP=0
      CONTINUE
      C=:200
23357 IF(.NOT.(C .LE. :377))GOTO23359
      TYPE(C+1)=C
23358 C=C+1
      GOTO23357
23359 CONTINUE
      CONTINUE
      C=225
23360 IF(.NOT.(C .LE. 250))GOTO23362
      TYPE(C+1)=225
23361 C=C+1
      GOTO23360
23362 CONTINUE
      CONTINUE
      C=193
23363 IF(.NOT.(C .LE. 218))GOTO23365
      TYPE(C+1)=225
23364 C=C+1
      GOTO23363
23365 CONTINUE
      CONTINUE
      C=176
23366 IF(.NOT.(C .LE. 185))GOTO23368
      TYPE(C+1)=176
23367 C=C+1
      GOTO23366
23368 CONTINUE
      K0YWOR=MKTABL(1)
      CALLENTER(SIF,10261,K0YWOR)
      CALLENTER(SELSE,10262,K0YWOR)
      CALLENTER(SWHILE,10263,K0YWOR)
      CALLENTER(SDO,10266,K0YWOR)
      CALLENTER(SBREAK,10264,K0YWOR)
      CALLENTER(SNEXT,10265,K0YWOR)
      CALLENTER(SFOR,10268,K0YWOR)
      CALLENTER(SREPT,10269,K0YWOR)
      CALLENTER(S0TRIN,10280,K0YWOR)
      CALLENTER(SCASE,10274,K0YWOR)
      CALLENTER(SUNTIL,10270,K0YWOR)
      CALLENTER(SORIF,10272,K0YWOR)
      CALLENTER(SANDIF,10273,K0YWOR)
      CALLENTER(SRTN,10276,K0YWOR)
      CALLENTER(SGO,10271,K0YWOR)
      CALLENTER(SSTOP,10277,K0YWOR)
      CALLENTER(S0NTEG,10275,K0YWOR)
      CALLENTER(SREAL,10275,K0YWOR)
      CALLENTER(S0OUBL,10275,K0YWOR)
      CALLENTER(S0OMPL,10275,K0YWOR)
      CALLENTER(S0OGIC,10275,K0YWOR)
      CALLENTER(S0IMEN,10275,K0YWOR)
      CALLENTER(S0QUIV,10275,K0YWOR)
      CALLENTER(S0OMMO,10275,K0YWOR)
      CALLENTER(S0ARAM,10275,K0YWOR)
      CALLENTER(S0XTER,10275,K0YWOR)
      CALLENTER(SDATA,10275,K0YWOR)
      CALLENTER(STRACE,10275,K0YWOR)
      CALLENTER(S0UBRO,10275,K0YWOR)
      CALLENTER(S0UNCT,10275,K0YWOR)
      CALLENTER(S0MPLI,10275,K0YWOR)
      CALLENTER(SSAVE,10275,K0YWOR)
      D0FTAB=MKTABL(1)
      DO 23369I=1,26
      SYMTBL(I)=0
23369 CONTINUE
23370 CONTINUE
      NEXTSY=27
      CALLINITDF(9Hcontinue.)
      CALLINITDF(8Hcomplex.)
      CALLINITDF(10Hprecision.)
      CALLINITDF(8Hlogical.)
      CALLINITDF(8Hinclude.)
      CALLINITDF(9Himplicit.)
      CALLINITDF(10Hparameter.)
      CALLINITDF(9Hexternal.)
      CALLINITDF(10Hdimension.)
      CALLINITDF(8Hinteger.)
      CALLINITDF(12Hequivalence.)
      CALLINITDF(9Hfunction.)
      CALLINITDF(11Hsubroutine.)
      CSP=0
      CTOP=0
      RETURN
23371 CONTINUE
      END
      SUBROUTINEINSTAL(NAME,DEFN)
      INTEGERNAME(102),DEFN(200)
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERLENGTH
      INTEGERD0FNTE
      INTEGERDSGET
      D0FNTE=DSGET(LENGTH(DEFN)+1)
      CALLSCOPY(DEFN,1,MEM,D0FNTE)
      CALLENTER(NAME,D0FNTE,D0FTAB)
      RETURN
23372 CONTINUE
      END
      SUBROUTINELABELC(LEXSTR)
      INTEGERLEXSTR(1)
      INTEGERLENGTH
      IF(.NOT.(LENGTH(LEXSTR) .EQ. 5))GOTO23373
      IF(.NOT.(LEXSTR(1) .EQ. 178 .AND. LEXSTR(2) .EQ. 179))GOTO23375
      CALLSYNERR(33HWarning: possible label conflict.)
23375 CONTINUE
23373 CONTINUE
      CALLOUTSTR(LEXSTR)
      CALLOUTTAB
      RETURN
23377 CONTINUE
      END
      INTEGERFUNCTIONLABGEN(N)
      INTEGERN
      INTEGERLABEL
      DATALABEL/23000/
      LABGEN=LABEL
      LABEL=LABEL+N
      RETURN
23378 CONTINUE
      END
      SUBROUTINELETDIG(TOKEN)
      INTEGERTOKEN(1)
      INTEGERC
      INTEGERITOC,LENGTH
      INTEGERJUNK
      IF(.NOT.(TOKEN(5) .NE. 0))GOTO23379
      RETURN
23381 CONTINUE
23379 CONTINUE
      IF(.NOT.(LENGTH(TOKEN) .NE. 4))GOTO23382
      RETURN
23384 CONTINUE
23382 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. 204))GOTO23385
      IF(.NOT.(TOKEN(2) .EQ. 197))GOTO23385
      IF(.NOT.(TOKEN(3) .EQ. 212))GOTO23385
      IF(.NOT.(TOKEN(4) .GE. 193))GOTO23385
      IF(.NOT.(TOKEN(4) .LE. 218))GOTO23385
      C=225-193+TOKEN(4)
      GOTO23386
23385 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. 194))GOTO23387
      IF(.NOT.(TOKEN(2) .EQ. 201))GOTO23387
      IF(.NOT.(TOKEN(3) .EQ. 199))GOTO23387
      IF(.NOT.(TOKEN(4) .GE. 193))GOTO23387
      IF(.NOT.(TOKEN(4) .LE. 218))GOTO23387
      C=TOKEN(4)
      GOTO23388
23387 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. 196))GOTO23389
      IF(.NOT.(TOKEN(2) .EQ. 201))GOTO23389
      IF(.NOT.(TOKEN(3) .EQ. 199))GOTO23389
      IF(.NOT.(TOKEN(4) .GE. 176))GOTO23389
      IF(.NOT.(TOKEN(4) .LE. 185))GOTO23389
      C=TOKEN(4)
      GOTO23390
23389 CONTINUE
      RETURN
23391 CONTINUE
23390 CONTINUE
23388 CONTINUE
23386 CONTINUE
      JUNK=ITOC(C,TOKEN,102)
      RETURN
23392 CONTINUE
      END
      INTEGERFUNCTIONLEX(LEXSTR)
      INTEGERLEXSTR(102)
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERGETTOK
      INTEGEREQUAL,LOOKUP
      CONTINUE
23393 CONTINUE
      LEX=GETTOK(LEXSTR,102)
23394 IF(.NOT.(LEX .NE. :212))GOTO23393
23395 CONTINUE
      IF(.NOT.(LEX .EQ. -1 .OR. LEX .EQ. :273 .OR. LEX .EQ. :373 .OR. LE
     *X .EQ. :375))GOTO23396
      RETURN
23398 CONTINUE
23396 CONTINUE
      IF(.NOT.(LEX .EQ. 10101))GOTO23399
      LEX=10260
      GOTO23400
23399 CONTINUE
      IF(.NOT.(LOOKUP(LEXSTR,LEX,K0YWOR) .EQ. 0))GOTO23401
      LEX=10267
23401 CONTINUE
23400 CONTINUE
      RETURN
23403 CONTINUE
      END
      SUBROUTINEMKDEF(TOKEN,NEWTOK)
      INTEGERTOKEN(1),NEWTOK(1)
      INTEGERHASHFN,HASH,DEF,I,LASTI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      IF(.NOT.(NEXTSY+102*2+4 .GT. 6000))GOTO23404
      CALLSYNERR(22Hunique table overflow.)
      RETURN
23406 CONTINUE
23404 CONTINUE
      HASH=HASHFN(NEWTOK,LENGTH(NEWTOK))
      LASTI=HASH
      CONTINUE
      I=SYMTBL(HASH)
23407 IF(.NOT.(I .NE. 0))GOTO23409
      LASTI=I
23408 I=SYMTBL(I)
      GOTO23407
23409 CONTINUE
      SYMTBL(NEXTSY)=0
      SYMTBL(NEXTSY+1)=0
      CALLSCOPY(NEWTOK,1,SYMTBL,NEXTSY+2)
      SYMTBL(LASTI)=NEXTSY
      DEF=NEXTSY
      NEXTSY=NEXTSY+2+LENGTH(NEWTOK)+1
      HASH=HASHFN(TOKEN,LENGTH(TOKEN))
      SYMTBL(NEXTSY)=SYMTBL(HASH)
      SYMTBL(NEXTSY+1)=DEF
      CALLSCOPY(TOKEN,1,SYMTBL,NEXTSY+2)
      SYMTBL(HASH)=NEXTSY
      NEXTSY=NEXTSY+2+LENGTH(TOKEN)+1
      RETURN
23410 CONTINUE
      END
      SUBROUTINEMKSEEN(TOKEN,TOKSIZ)
      INTEGERTOKEN(1)
      INTEGERTOKSIZ
      INTEGERNEWSIZ,SEEN,BUMPCH,I
      INTEGERNEWTOK(102),JUNKC(102)
      CONTINUE
      I=1
23411 IF(.NOT.(I .LE. 6))GOTO23413
      IF(.NOT.(TOKEN(I) .EQ. 0))GOTO23414
      GOTO23413
23416 CONTINUE
23414 CONTINUE
      NEWTOK(I)=TOKEN(I)
23412 I=I+1
      GOTO23411
23413 CONTINUE
      NEWTOK(I)=0
      NEWSIZ=I-1
      IF(.NOT.(NEWSIZ .GE. 2))GOTO23417
      NEWTOK(2)=176
23417 CONTINUE
      CONTINUE
23419 IF(.NOT.(SEEN(NEWTOK,NEWSIZ,JUNKC,1) .EQ. 1))GOTO23420
      CONTINUE
      I=NEWSIZ
23421 IF(.NOT.(I .GT. 2))GOTO23423
      IF(.NOT.(BUMPCH(NEWTOK(I)) .EQ. 1))GOTO23424
      CONTINUE
      I=I+1
23426 IF(.NOT.(I .LE. NEWSIZ))GOTO23428
      NEWTOK(I)=225
23427 I=I+1
      GOTO23426
23428 CONTINUE
      GOTO23423
23429 CONTINUE
23424 CONTINUE
23422 I=I-1
      GOTO23421
23423 CONTINUE
      IF(.NOT.(I .EQ. 2))GOTO23430
      CALLSYNERR(23Hcan't make name unique.)
      GOTO23420
23432 CONTINUE
23430 CONTINUE
      GOTO23419
23420 CONTINUE
      CALLMKDEF(TOKEN,NEWTOK)
      CALLSCOPY(NEWTOK,1,TOKEN,1)
      RETURN
23433 CONTINUE
      END
      SUBROUTINEMKUNIQ(TOKEN)
      INTEGERTOKEN(1)
      INTEGERSEEN,TOKSIZ
      TOKSIZ=LENGTH(TOKEN)
      IF(.NOT.(TOKSIZ .GT. 6 .OR. TOKSIZ .EQ. 6 .AND. TOKEN(2) .EQ. 176)
     *)GOTO23434
      IF(.NOT.(SEEN(TOKEN,TOKSIZ,TOKEN,-1) .EQ. 0))GOTO23436
      CALLMKSEEN(TOKEN,TOKSIZ)
23436 CONTINUE
23434 CONTINUE
      RETURN
23438 CONTINUE
      END
      INTEGERFUNCTIONNGETCH(C)
      INTEGERC,LINE(102)
      INTEGERGETLIN
      INTEGERI,J
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      IF(.NOT.(BP .LE. 0))GOTO23439
      BP=GETLIN(LINE,INFILE(LEVEL))
      LINECT(LEVEL)=LINECT(LEVEL)+1
      IF(.NOT.(BP .EQ. -1))GOTO23441
      BP=1
      BUF(1)=-1
      GOTO23442
23441 CONTINUE
      J=1
      CONTINUE
      I=BP
23443 IF(.NOT.(I .GT. 0))GOTO23445
      BUF(J)=LINE(I)
      J=J+1
23444 I=I-1
      GOTO23443
23445 CONTINUE
23442 CONTINUE
23439 CONTINUE
      C=BUF(BP)
      BP=BP-1
      NGETCH=C
      RETURN
23446 CONTINUE
      END
      SUBROUTINEORCODE(LABVAL,LAB)
      INTEGERLABVAL,LAB
      INTEGERLABGEN
      LAB=LABGEN(3)
      CALLOUTGO(LAB+2)
      CALLOUTNUM(LABVAL)
      CALLS0MTCO
      CALLIFGO(LAB)
      RETURN
23447 CONTINUE
      END
      SUBROUTINEOTHERC(LEXSTR)
      INTEGERLEXSTR(1)
      CALLOUTTAB
      CALLOUTSTR(LEXSTR)
      CALLEATUP
      RETURN
23448 CONTINUE
      END
      SUBROUTINEOUTCH(C)
      INTEGERC
      INTEGERI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      IF(.NOT.(OUTP .GE. 72))GOTO23449
      CALLOUTDON
      DO 23451I=1,5
      OUTBUF(I)=:240
23451 CONTINUE
23452 CONTINUE
      OUTBUF(6)=:252
      OUTP=6
23449 CONTINUE
      OUTP=OUTP+1
      OUTBUF(OUTP)=C
      RETURN
23453 CONTINUE
      END
      SUBROUTINEOUTCON(N)
      INTEGERN
      INTEGERCONTIN(9)
      DATACONTIN/195,207,206,212,201,206,213,197,0/
      IF(.NOT.(N .GT. 0))GOTO23454
      CALLOUTNUM(N)
23454 CONTINUE
      CALLOUTTAB
      CALLOUTSTR(CONTIN)
      CALLOUTDON
      RETURN
23456 CONTINUE
      END
      SUBROUTINEOUTDON
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      IF(.NOT.(OUTP .EQ. 0))GOTO23457
      RETURN
23459 CONTINUE
23457 CONTINUE
      OUTBUF(OUTP+1)=:212
      OUTBUF(OUTP+2)=0
      CALLPUTLIN(OUTBUF,OUTFIL)
      OUTP=0
      RETURN
23460 CONTINUE
      END
      SUBROUTINEOUTGO(N)
      INTEGERN
      INTEGERGOTO(5)
      DATAGOTO/199,207,212,207,0/
      CALLOUTTAB
      CALLOUTSTR(GOTO)
      CALLOUTNUM(N)
      CALLOUTDON
      RETURN
23461 CONTINUE
      END
      SUBROUTINEOUTNUM(N)
      INTEGERCHARS(10)
      INTEGERITOC
      INTEGERI,LEN,N
      LEN=ITOC(N,CHARS,10)
      DO 23462I=1,LEN
      CALLOUTCH(CHARS(I))
23462 CONTINUE
23463 CONTINUE
      RETURN
23464 CONTINUE
      END
      SUBROUTINEO0TPUU
      INTEGERI,J,PTR
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      CALLOUTCH(195)
      CALLOUTDON
      CONTINUE
      I=1
23465 IF(.NOT.(I .LE. 27))GOTO23467
      CONTINUE
      PTR=SYMTBL(I)
23468 IF(.NOT.(PTR .NE. 0))GOTO23470
      IF(.NOT.(SYMTBL(PTR+1) .NE. 0))GOTO23471
      CALLOUTCH(195)
      CALLOUTTAB
      CALLOUTSTR(SYMTBL(PTR+2))
      CALLOUTCH(:240)
      J=SYMTBL(PTR+1)+2
      CALLOUTSTR(SYMTBL(J))
      CALLOUTDON
23471 CONTINUE
23469 PTR=SYMTBL(PTR)
      GOTO23468
23470 CONTINUE
23466 I=I+1
      GOTO23465
23467 CONTINUE
      RETURN
23473 CONTINUE
      END
      SUBROUTINEO0TPUT
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERS1(18)
      INTEGERS2(21)
      INTEGERS3(22)
      INTEGERS4(21)
      INTEGERS5(31)
      INTEGERS6(26)
      INTEGERS7(10)
      INTEGERS8(7)
      INTEGERS9(4)
      DATAS1/243,245,226,242,239,245,244,233,238,229,160,244,164,233,238
     *,233,244,0/
      DATAS2/233,238,244,229,231,229,242,170,178,160,243,240,172,160,238
     *,245,237,242,244,238,0/
      DATAS3/233,238,244,229,231,229,242,170,180,160,242,229,227,239,242
     *,228,160,168,180,172,160,0/
      DATAS4/233,238,244,229,231,229,242,170,180,160,243,244,225,227,235
     *,160,168,180,172,160,0/
      DATAS5/227,239,237,237,239,238,160,175,244,164,240,242,239,230,175
     *,160,238,245,237,242,244,238,172,160,242,229,227,239,242,228,0/
      DATAS6/227,239,237,237,239,238,160,175,244,164,243,244,225,235,175
     *,160,243,240,172,160,243,244,225,227,235,0/
      DATAS7/238,245,237,242,244,238,160,189,160,0/
      DATAS8/242,229,244,245,242,238,0/
      DATAS9/229,238,228,0/
      CALLOUTTAB
      CALLOUTSTR(S1)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S2)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S3)
      CALLOUTNUM(SPNUM)
      CALLOUTCH(:251)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S4)
      CALLOUTNUM(SPNUM)
      CALLOUTCH(:251)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S5)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S6)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S7)
      CALLOUTNUM(SPNUM)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S8)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(S9)
      CALLOUTDON
      RETURN
23474 CONTINUE
      END
      SUBROUTINEO0TSTC
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERLINE1(18)
      INTEGERLINE15(14)
      INTEGERLINE2(17)
      INTEGERLINE3(28)
      INTEGERLINE4(10)
      INTEGERLINE5(10)
      INTEGERLINE6(14)
      INTEGERLINE65(9)
      INTEGERLINE7(7)
      INTEGERLINE8(4)
      DATALINE1/211,213,194,210,207,213,212,201,206,197,160,195,164,201,
     *206,201,212,0/
      DATALINE15/201,206,212,197,199,197,210,160,204,201,205,201,212,0/
      DATALINE2/201,206,212,197,199,197,210,170,180,160,195,207,213,206,
     *212,168,0/
      DATALINE3/195,207,205,205,207,206,160,175,195,164,211,212,195,175,
     *160,204,201,205,201,212,172,160,195,207,213,206,212,0/
      DATALINE4/201,206,212,197,199,197,210,160,201,0/
      DATALINE5/196,207,160,177,160,201,189,177,172,0/
      DATALINE6/160,160,160,195,207,213,206,212,168,201,169,189,176,0/
      DATALINE65/204,201,205,201,212,160,189,160,0/
      DATALINE7/210,197,212,213,210,206,0/
      DATALINE8/197,206,196,0/
      CALLOUTTAB
      CALLOUTSTR(LINE1)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE15)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE2)
      CALLOUTNUM(LINECT(1))
      CALLOUTCH(:251)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE3)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE4)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE5)
      CALLOUTNUM(LINECT(1))
      CALLOUTDON
      CALLOUTNUM(1)
      CALLOUTTAB
      CALLOUTSTR(LINE6)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE65)
      CALLOUTNUM(LINECT(1))
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE7)
      CALLOUTDON
      CALLOUTTAB
      CALLOUTSTR(LINE8)
      CALLOUTDON
      RETURN
23475 CONTINUE
      END
      SUBROUTINEOUTSTR(STR)
      INTEGERC,STR(1)
      INTEGERMAPUP
      INTEGERI,J
      CONTINUE
      I=1
23476 IF(.NOT.(STR(I) .NE. 0))GOTO23478
      C=STR(I)
      IF(.NOT.(C .NE. :247 .AND. C .NE. :242))GOTO23479
      CALLOUTCH(MAPUP(C))
      GOTO23480
23479 CONTINUE
      I=I+1
      CONTINUE
      J=I
23481 IF(.NOT.(STR(J) .NE. C))GOTO23483
23482 J=J+1
      GOTO23481
23483 CONTINUE
      CALLOUTNUM(J-I)
      CALLOUTCH(200)
      CONTINUE
23484 IF(.NOT.(I .LT. J))GOTO23486
      CALLOUTCH(STR(I))
23485 I=I+1
      GOTO23484
23486 CONTINUE
23480 CONTINUE
23477 I=I+1
      GOTO23476
23478 CONTINUE
      RETURN
23487 CONTINUE
      END
      SUBROUTINEOUTTAB
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      CONTINUE
23488 IF(.NOT.(OUTP .LT. 6))GOTO23489
      OUTP=OUTP+1
      OUTBUF(OUTP)=:240
      GOTO23488
23489 CONTINUE
      RETURN
23490 CONTINUE
      END
      SUBROUTINEPARSE
      INTEGERLEXSTR(102)
      INTEGERLEX
      INTEGERLAB,LABL,LABVAL(100),LEXTYP(100),SP,TOKEN
      INTEGERLABGEN,LASTOK
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      SP=1
      LEXTYP(1)=-1
      LASTOK=0
      TOKEN=LEX(LEXSTR)
      CONTINUE
23491 IF(.NOT.(TOKEN .NE. -1))GOTO23492
      IF(.NOT.(TOKEN .EQ. 10280))GOTO23493
      CALLS0RING
      GOTO23494
23493 CONTINUE
      IF(.NOT.(TOKEN .NE. 10275 .AND. I0DECL .EQ. 1))GOTO23495
      CALLS0RINH
      CALLE0TERS
      I0DECL=0
      IF(.NOT.(SP .GT. 1))GOTO23497
      CALLSYNERR(46HProbable unmatched '(' or '{' in last routine.)
      SP=1
23497 CONTINUE
23495 CONTINUE
23494 CONTINUE
      IF(.NOT.(TOKEN .NE. 10272 .AND. TOKEN .NE. 10273))GOTO23499
      LABL=LABVAL(SP)
      CONTINUE
23501 IF(.NOT.(LEXTYP(SP) .EQ. 10272))GOTO23503
      CALLOUTCON(LABVAL(SP)+2)
23502 SP=SP-1
      GOTO23501
23503 CONTINUE
      LABVAL(SP)=LABL
23499 CONTINUE
      IF(.NOT.(SP .GT. 1))GOTO23504
      IF(.NOT.(LEXTYP(SP-1) .EQ. 10274 .AND. LEXTYP(SP) .EQ. :373 .AND. 
     *LASTOK .NE. 10260))GOTO23504
      CALLCASEI(LABVAL(SP-1)+1)
23504 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10261))GOTO23506
      CALLIFCODE(LAB)
      GOTO23507
23506 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10262))GOTO23508
      IF(.NOT.(LEXTYP(SP) .EQ. 10261))GOTO23510
      CALLELSEIF(LABVAL(SP))
      GOTO23511
23510 CONTINUE
      IF(.NOT.(LEXTYP(SP) .NE. 10274))GOTO23512
      CALLSYNERR(13Hillegal else.)
23512 CONTINUE
23511 CONTINUE
      GOTO23509
23508 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10268))GOTO23514
      CALLFORCOD(LAB)
      GOTO23515
23514 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10263))GOTO23516
      CALLWHILEC(LAB)
      GOTO23517
23516 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10266))GOTO23518
      CALLDOCODE(LAB)
      GOTO23519
23518 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10269))GOTO23520
      CALLREPCOD(LAB)
      GOTO23521
23520 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10273))GOTO23522
      IF(.NOT.(LEXTYP(SP) .EQ. 10261 .OR. LEXTYP(SP) .EQ. 10272))GOTO235
     *24
      CALLANDCOD(LABVAL(SP))
      TOKEN=LEX(LEXSTR)
      GOTO23491
23526 CONTINUE
      GOTO23525
23524 CONTINUE
      CALLSYNERR(14Hillegal andif.)
23525 CONTINUE
      GOTO23523
23522 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10272))GOTO23527
      IF(.NOT.(LEXTYP(SP) .EQ. 10261 .OR. LEXTYP(SP) .EQ. 10272))GOTO235
     *29
      CALLORCODE(LABVAL(SP),LAB)
      GOTO23530
23529 CONTINUE
      CALLSYNERR(13Hillegal orif.)
23530 CONTINUE
      GOTO23528
23527 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10274))GOTO23531
      CALLCASEC(LAB)
      GOTO23532
23531 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10260))GOTO23533
      CALLLABELC(LEXSTR)
23533 CONTINUE
23532 CONTINUE
23528 CONTINUE
23523 CONTINUE
23521 CONTINUE
23519 CONTINUE
23517 CONTINUE
23515 CONTINUE
23509 CONTINUE
23507 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10261))GOTO23535
      GOTO23539
23535 IF(.NOT.(TOKEN .EQ. 10262))GOTO23537
      GOTO23542
23537 IF(.NOT.(TOKEN .EQ. 10268))GOTO23540
      GOTO23545
23540 IF(.NOT.(TOKEN .EQ. 10263))GOTO23543
      GOTO23548
23543 IF(.NOT.(TOKEN .EQ. 10266))GOTO23546
      GOTO23551
23546 IF(.NOT.(TOKEN .EQ. 10272))GOTO23549
      GOTO23554
23549 IF(.NOT.(TOKEN .EQ. 10269))GOTO23552
      GOTO23557
23552 IF(.NOT.(TOKEN .EQ. 10274))GOTO23555
      GOTO23560
23555 IF(.NOT.(TOKEN .EQ. 10260))GOTO23558
      GOTO23563
23558 IF(.NOT.(TOKEN .EQ. :373))GOTO23561
23563 CONTINUE
23560 CONTINUE
23557 CONTINUE
23554 CONTINUE
23551 CONTINUE
23548 CONTINUE
23545 CONTINUE
23542 CONTINUE
23539 CONTINUE
      SP=SP+1
      IF(.NOT.(SP .GT. 100))GOTO23564
      CALLERROR(25Hstack overflow in parser.)
23564 CONTINUE
      LEXTYP(SP)=TOKEN
      LABVAL(SP)=LAB
      LASTOK=TOKEN
      TOKEN=LEX(LEXSTR)
      GOTO23562
23561 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10275))GOTO23566
      CALLOTHERC(LEXSTR)
      GOTO23567
23566 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10267))GOTO23568
      CALLS0MTCO
      CALLOTHERC(LEXSTR)
      GOTO23569
23568 CONTINUE
      IF(.NOT.(TOKEN .EQ. :375))GOTO23570
      IF(.NOT.(LEXTYP(SP) .EQ. :373))GOTO23572
      SP=SP-1
      GOTO23573
23572 CONTINUE
      CALLSYNERR(20Hillegal right brace.)
23573 CONTINUE
      GOTO23571
23570 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10276))GOTO23574
      CALLE0ITSU
      CALLS0MTCO
      CALLOTHERC(LEXSTR)
      CALLOUTCON(LABGEN(1))
      GOTO23575
23574 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10264 .OR. TOKEN .EQ. 10265))GOTO23576
      CALLBRKNXT(SP,LEXTYP,LABVAL,TOKEN)
      GOTO23577
23576 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10277))GOTO23578
      CALLS0MTCO
      CALLENDSTC
      CALLE0ITPR
      CALLOTHERC(LEXSTR)
      CALLOUTCON(LABGEN(1))
      GOTO23579
23578 CONTINUE
      IF(.NOT.(TOKEN .EQ. 10271))GOTO23580
      CALLS0MTCO
      CALLOTHERC(LEXSTR)
      CALLOUTCON(LABGEN(1))
23580 CONTINUE
23579 CONTINUE
23577 CONTINUE
23575 CONTINUE
23571 CONTINUE
23569 CONTINUE
23567 CONTINUE
      LASTOK=TOKEN
      TOKEN=LEX(LEXSTR)
      CALLUNSTAK(SP,LEXTYP,LABVAL,TOKEN)
23562 CONTINUE
      GOTO23491
23492 CONTINUE
      IF(.NOT.(SP .NE. 1))GOTO23582
      CALLSYNERR(15Hunexpected EOF.)
23582 CONTINUE
      RETURN
23584 CONTINUE
      END
      SUBROUTINEPBSTR(IN)
      INTEGERIN(1)
      INTEGERLENGTH
      INTEGERI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      CONTINUE
      I=LENGTH(IN)
23585 IF(.NOT.(I .GT. 0))GOTO23587
      BP=BP+1
      IF(.NOT.(BP .GT. 402))GOTO23588
      CALLERROR(32Htoo many characters pushed back.)
23588 CONTINUE
      BUF(BP)=IN(I)
23586 I=I-1
      GOTO23585
23587 CONTINUE
      RETURN
23590 CONTINUE
      END
      SUBROUTINEPUTBAK(C)
      INTEGERC
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      BP=BP+1
      IF(.NOT.(BP .GT. 402))GOTO23591
      CALLSYNERR(32Htoo many characters pushed back.)
      CALL SWT
      STOP
23593 CONTINUE
23591 CONTINUE
      BUF(BP)=C
      RETURN
23594 CONTINUE
      END
      SUBROUTINERELATE(TOKEN,EOSTR)
      INTEGERNGETCH
      INTEGERTOKEN(1)
      INTEGERLENGTH
      INTEGEREOSTR
      INTEGERDOTGE(7)
      INTEGERDOTGT(7)
      INTEGERDOTLT(7)
      INTEGERDOTLE(7)
      INTEGERDOTNE(7)
      INTEGERDOTEQ(7)
      INTEGERDOTOR(7)
      INTEGERDOTAND(8)
      INTEGERDOTNOT(8)
      DATADOTGE/160,174,199,197,174,160,0/
      DATADOTGT/160,174,199,212,174,160,0/
      DATADOTLT/160,174,204,212,174,160,0/
      DATADOTLE/160,174,204,197,174,160,0/
      DATADOTNE/160,174,206,197,174,160,0/
      DATADOTEQ/160,174,197,209,174,160,0/
      DATADOTOR/160,174,207,210,174,160,0/
      DATADOTAND/160,174,193,206,196,174,160,0/
      DATADOTNOT/160,174,206,207,212,174,160,0/
      IF(.NOT.(NGETCH(TOKEN(2)) .NE. :275))GOTO23595
      CALLPUTBAK(TOKEN(2))
23595 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. :276))GOTO23597
      IF(.NOT.(TOKEN(2) .EQ. :275))GOTO23599
      CALLSCOPY(DOTGE,1,TOKEN,1)
      GOTO23600
23599 CONTINUE
      CALLSCOPY(DOTGT,1,TOKEN,1)
23600 CONTINUE
      GOTO23598
23597 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. :274))GOTO23601
      IF(.NOT.(TOKEN(2) .EQ. :275))GOTO23603
      CALLSCOPY(DOTLE,1,TOKEN,1)
      GOTO23604
23603 CONTINUE
      CALLSCOPY(DOTLT,1,TOKEN,1)
23604 CONTINUE
      GOTO23602
23601 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. :376 .OR. TOKEN(1) .EQ. :241))GOTO23605
      IF(.NOT.(TOKEN(2) .EQ. :275))GOTO23607
      CALLSCOPY(DOTNE,1,TOKEN,1)
      GOTO23608
23607 CONTINUE
      CALLSCOPY(DOTNOT,1,TOKEN,1)
23608 CONTINUE
      GOTO23606
23605 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. :275))GOTO23609
      IF(.NOT.(TOKEN(2) .EQ. :275))GOTO23611
      CALLSCOPY(DOTEQ,1,TOKEN,1)
      GOTO23612
23611 CONTINUE
      TOKEN(2)=0
23612 CONTINUE
      GOTO23610
23609 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. :246))GOTO23613
      CALLSCOPY(DOTAND,1,TOKEN,1)
      GOTO23614
23613 CONTINUE
      IF(.NOT.(TOKEN(1) .EQ. :374))GOTO23615
      CALLSCOPY(DOTOR,1,TOKEN,1)
      GOTO23616
23615 CONTINUE
      TOKEN(2)=0
23616 CONTINUE
23614 CONTINUE
23610 CONTINUE
23606 CONTINUE
23602 CONTINUE
23598 CONTINUE
      EOSTR=LENGTH(TOKEN)+1
      RETURN
23617 CONTINUE
      END
      SUBROUTINEREPCOD(LAB)
      INTEGERLABGEN
      INTEGERLAB
      CALLOUTCON(0)
      LAB=LABGEN(3)
      CALLOUTCON(LAB)
      CALLS0MTCO
      LAB=LAB+1
      RETURN
23618 CONTINUE
      END
      INTEGERFUNCTIONSEEN(TOKEN,TOKSIZ,NEWTOK,LIMIT)
      INTEGERTOKEN(1),NEWTOK(1)
      INTEGERTOKSIZ,LIMIT
      INTEGERHASH,HASHFN,EQUAL,I
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      HASH=HASHFN(TOKEN,TOKSIZ)
      CONTINUE
      I=SYMTBL(HASH)
23619 IF(.NOT.(I .NE. 0))GOTO23621
      IF(.NOT.(EQUAL(TOKEN,SYMTBL(I+2)) .EQ. 1 .AND. (SYMTBL(I+1) .NE. 0
     * .OR. LIMIT .EQ. 1)))GOTO23622
      SEEN=1
      CALLSCOPY(SYMTBL,SYMTBL(I+1)+2,NEWTOK,1)
      RETURN
23624 CONTINUE
23622 CONTINUE
23620 I=SYMTBL(I)
      GOTO23619
23621 CONTINUE
      SEEN=0
      RETURN
23625 CONTINUE
      END
      SUBROUTINES0MTCO
      INTEGERSCALL(14)
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      DATASCALL/195,193,204,204,160,195,164,201,206,195,210,160,168,0/
      IF(.NOT.(S0CPRO .EQ. 1))GOTO23626
      CALLOUTTAB
      CALLOUTSTR(SCALL)
      CALLOUTNUM(LINECT(1))
      CALLOUTCH(:251)
      CALLOUTDON
23626 CONTINUE
      RETURN
23628 CONTINUE
      END
      SUBROUTINES0RING
      INTEGERSTR(102)
      INTEGERSIZE,JUNK,LENGTH
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERS0NTEG(8)
      DATAS0NTEG/233,238,244,229,231,229,242,0/
      IF(.NOT.(I0DECL .EQ. 0))GOTO23629
      CALLSYNERR(43Hstring declared after executable statement.)
      RETURN
23631 CONTINUE
23629 CONTINUE
      JUNK=LEX(STR)
      IF(.NOT.(TYPE(STR(1)+1) .NE. 225))GOTO23632
      CALLSYNERR(40Hvariable must follow string declaration.)
      RETURN
23634 CONTINUE
23632 CONTINUE
      CALLOUTTAB
      CALLOUTSTR(S0NTEG)
      CALLOUTSTR(STR)
      CALLOUTCH(:250)
      SIZE=LENGTH(STR)+1
      IF(.NOT.(STRTOP+SIZE+1 .GT. 1000))GOTO23635
      CALLSYNERR(28Htoo many string definitions.)
      STRTOP=0
      RETURN
23637 CONTINUE
23635 CONTINUE
      CALLSCOPY(STR,1,STRBUF,STRTOP+1)
      STRTOP=STRTOP+SIZE
      JUNK=LEX(STR)
      IF(.NOT.(STR(1) .NE. :247 .AND. STR(1) .NE. :242))GOTO23638
      CALLSYNERR(38Hquoted string must follow string decl.)
      STRTOP=STRTOP+1
      STRBUF(STRTOP)=0
      RETURN
23640 CONTINUE
23638 CONTINUE
      SIZE=LENGTH(STR)-1
      CALLOUTNUM(SIZE)
      CALLOUTCH(:251)
      CALLOUTDON
      IF(.NOT.(STRTOP+SIZE+1 .GT. 1000))GOTO23641
      CALLSYNERR(28Htoo many string definitions.)
      STRTOP=0
      RETURN
23643 CONTINUE
23641 CONTINUE
      CALLSCOPY(STR,2,STRBUF,STRTOP+1)
      STRTOP=STRTOP+SIZE
      STRBUF(STRTOP)=0
      RETURN
23644 CONTINUE
      END
      SUBROUTINES0RINH
      INTEGERI,LENGTH
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      INTEGERSDATA(5)
      DATASDATA/228,225,244,225,0/
      CONTINUE
      I=1
23645 IF(.NOT.(I .LE. STRTOP))GOTO23647
      CALLOUTTAB
      CALLOUTSTR(SDATA)
      CALLOUTSTR(STRBUF(I))
      I=I+LENGTH(STRBUF(I))+1
      CALLOUTCH(:257)
      CONTINUE
23648 IF(.NOT.(STRBUF(I) .NE. 0))GOTO23650
      CALLOUTNUM(STRBUF(I))
      CALLOUTCH(:254)
23649 I=I+1
      GOTO23648
23650 CONTINUE
      CALLOUTNUM(0)
      CALLOUTCH(:257)
      CALLOUTDON
      I=I+1
23646 GOTO23645
23647 CONTINUE
      STRTOP=0
      RETURN
23651 CONTINUE
      END
      SUBROUTINESYNERR(MSG)
      INTEGERMSG(1)
      INTEGERI
      COMMON/CDEFIO/BP,BUF(402)
      INTEGERBP
      INTEGERBUF
      COMMON/CFOR/FORDEP,FORSTK(200)
      INTEGERFORDEP
      INTEGERFORSTK
      COMMON/CLINE/LEVEL,LINECT(5),INFILE(5)
      INTEGERLEVEL,LINECT,INFILE
      COMMON/COUTLN/OUTFIL,OUTP,OUTBUF(102)
      INTEGEROUTFIL,OUTP
      INTEGEROUTBUF
      COMMON/CSYM/SYMTBL(6000),NEXTSY
      INTEGERSYMTBL,NEXTSY
      COMMON/CCASE/CSP,CSTACK(10),CTOP,CLAB(400)
      INTEGERCSP,CSTACK,CTOP,CLAB
      COMMON/CTRACE/SPNAME,T0MEPR,I0DECL,SPNUM,D0CTIO,P0OGRA,S0CPRO
      INTEGERSPNAME(102)
      INTEGERT0MEPR,P0OGRA,I0DECL,SPNUM,D0CTIO,S0CPRO
      COMMON/CSTR/STRBUF(1000),STRTOP
      INTEGERSTRBUF,STRTOP
      COMMON/TABCOM/D0FTAB,K0YWOR
      INTEGERD0FTAB,K0YWOR
      COMMON/TYPCOM/TYPE
      INTEGERTYPE(256)
      COMMON/DS$MEM/MEM
      INTEGERMEM(13000)
      CONTINUE
      I=1
23652 IF(.NOT.(I .LE. LEVEL))GOTO23654
      CALLPUTDEC(LINECT(I),6,-15)
23653 I=I+1
      GOTO23652
23654 CONTINUE
      CALLPRINT(-15,12H (*s): *p*n.,SPNAME,MSG)
      RETURN
23655 CONTINUE
      END
      SUBROUTINEUNSTAK(SP,LEXTYP,LABVAL,TOKEN)
      INTEGERLABVAL(100),LEXTYP(100),SP,TOKEN
      CONTINUE
23656 IF(.NOT.(SP .GT. 1))GOTO23658
      IF(.NOT.(LEXTYP(SP) .EQ. :373))GOTO23659
      GOTO23658
23661 CONTINUE
23659 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10261 .AND. TOKEN .EQ. 10262))GOTO23662
      GOTO23658
23664 CONTINUE
23662 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10274 .AND. TOKEN .EQ. 10262))GOTO23665
      CALLCASES(LABVAL(SP))
      GOTO23658
23667 CONTINUE
23665 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10261))GOTO23668
      CALLOUTCON(LABVAL(SP))
      GOTO23669
23668 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10262))GOTO23670
      IF(.NOT.(SP .GT. 2))GOTO23672
      SP=SP-1
23672 CONTINUE
      CALLOUTCON(LABVAL(SP)+1)
      GOTO23671
23670 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10266))GOTO23674
      CALLDOSTAT(LABVAL(SP))
      GOTO23675
23674 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10263))GOTO23676
      CALLWHILES(LABVAL(SP))
      GOTO23677
23676 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10268))GOTO23678
      CALLFORS(LABVAL(SP))
      GOTO23679
23678 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10269))GOTO23680
      CALLUNTILS(LABVAL(SP),TOKEN)
      GOTO23681
23680 CONTINUE
      IF(.NOT.(LEXTYP(SP) .EQ. 10274))GOTO23682
      CALLCASES(LABVAL(SP))
      CALLOUTCON(LABVAL(SP)+1)
23682 CONTINUE
23681 CONTINUE
23679 CONTINUE
23677 CONTINUE
23675 CONTINUE
23671 CONTINUE
23669 CONTINUE
23657 SP=SP-1
      GOTO23656
23658 CONTINUE
      RETURN
23684 CONTINUE
      END
      SUBROUTINEUNTILS(LAB,TOKEN)
      INTEGERLEX
      INTEGERLAB,TOKEN
      CALLOUTNUM(LAB)
      IF(.NOT.(TOKEN .EQ. 10270))GOTO23685
      CALLS0MTCO
      CALLIFGO(LAB-1)
      GOTO23686
23685 CONTINUE
      CALLOUTGO(LAB-1)
23686 CONTINUE
      CALLOUTCON(LAB+1)
      RETURN
23687 CONTINUE
      END
      SUBROUTINEWHILEC(LAB)
      INTEGERLABGEN
      INTEGERLAB
      CALLOUTCON(0)
      LAB=LABGEN(2)
      CALLOUTNUM(LAB)
      CALLS0MTCO
      CALLIFGO(LAB+1)
      RETURN
23688 CONTINUE
      END
      SUBROUTINEWHILES(LAB)
      INTEGERLAB
      CALLOUTGO(LAB)
      CALLOUTCON(LAB+1)
      RETURN
23689 CONTINUE
      END
C
C     STRINGC S0RING
C     SEQUIVALENCE S0QUIV
C     SDOUBLE S0OUBL
C     SSUBROUTINE S0UBRO
C     GETSPNAME G0TSPN
C     KEYWORDTABLE K0YWOR
C     DEFTABLE D0FTAB
C     STCPROFILE S0CPRO
C     PROGRAMTRACE P0OGRA
C     TIMEPROFILE T0MEPR
C     SUBROUTINE SUBROUTINE
C     EQUIVALENCE EQUIVALENCE
C     INCLUDE INCLUDE
C     CONTINUE CONTINUE
C     SSTRING S0TRIN
C     SEXTERNAL S0XTER
C     SLOGICAL S0OGIC
C     EXTERNAL EXTERNAL
C     LOGICAL LOGICAL
C     EXITPROGRAM E0ITPR
C     SCOMMON S0OMMO
C     SDIMENSION S0IMEN
C     SFUNCTION S0UNCT
C     FUNCTION FUNCTION
C     DIMENSION DIMENSION
C     PRECISION PRECISION
C     CLEANUP C0EANU
C     SPARAMETER S0ARAM
C     SINTEGER S0NTEG
C     EXITSUBR E0ITSU
C     ENTERSUBR E0TERS
C     INTEGER INTEGER
C     PARAMETER PARAMETER
C     STRINGS S0RINH
C     OUTPUTNAMES O0TPUU
C     OUTSTCBLOCKS O0TSTC
C     OUTPUTPBLOCKS O0TPUT
C     INDECLARATIONS I0DECL
C     SIMPLICIT S0MPLI
C     TRACEEXIT T0ACEE
C     DEFNTEXT D0FNTE
C     STMTCOUNT S0MTCO
C     IMPLICIT IMPLICIT
C     SCOMPLEX S0OMPL
C     COMPLEX COMPLEX
C     DICTIONARY D0CTIO
