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