xref: /original-bsd/contrib/dungeon/np1.F (revision a76afa45)
1C SPARSE-	START OF PARSE
2C
3C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
4C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
5C WRITTEN BY R. M. SUPNIK
6C
7C DECLARATIONS
8C
9C THIS ROUTINE DETAILS ON BIT 2 OF PRSFLG
10C
11	INTEGER  FUNCTION  SPARSE(LBUF,LLNT,VBFLAG)
12	IMPLICIT INTEGER(A-Z)
13	INTEGER  LBUF(40)
14	LOGICAL  LIT,OTEST,VBFLAG
15#include "parser.h"
16#include "gamestate.h"
17#include "debug.h"
18#include "objects.h"
19#include "oindex.h"
20#include "advers.h"
21#include "verbs.h"
22#include "vocab.h"
23C SPARSE, PAGE 2
24C
25C FUNCTIONS AND DATA
26C
27	OTEST(R)=(R.GT.0).AND.(R.LT.R50MIN)
28C
29C   THE FOLLOWING DATA STATEMENT ORIGINALLY WAS:
30C
31C	DATA R50MIN/1RA/,R50WAL/3RWAL/
32C
33	DATA R50MIN/1600/,R50WAL/36852/
34C
35C BUZZ WORDS--	IGNORED IN SYNTACTIC PROCESSING
36C
37C   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM:
38C
39C	DATA BVOC/3RAND,0,2RBY,0,2RIS,0,1RA,0,
40C&		2RAN,0,3RTHE,0,3RRUN,0,2RGO,0,3RPRO,3RCEE,0,0/
41C
42	DATA BVOC/2164,0,4200,0,15160,0,1600,0,
43&		2160,0,32325,0,29654,0,11800,0,26335,5005,0,0/
44C
45C
46C PREPOSITIONS--	MAPS PREPOSITIONS TO INDICES
47C
48C   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM:
49C
50C	DATA PVOC/3ROVE,1RR,1,3RWIT,1RH,2,3RUSI,2RNG,2,3RTHR,3ROUG,2,
51C&		2RAT,0,3,2RTO,0,4,2RIN,0,5,3RINS,3RIDE,5,3RINT,1RO,5,
52C&		3RDOW,1RN,6,2RUP,0,7,3RUND,2RER,8,2ROF,0,9,2RON,0,10,
53C&		3ROFF,0,11/
54C
55	DATA PVOC/24885,28800,1,37180,12800,2,34369,22680,2,
56&		32338,24847,2,2400,0,3,32600,0,4,14960,0,5,
57&		14979,14565,5,14980,0,5,7023,22400,6,34240,0,7,
58&		34164,8720,8,24240,0,9,24560,0,10,24246,0,11/
59C
60C
61C DIRECTIONS--	MAPS DIRECTIONS TO INDICES
62C
63C   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM:
64C
65C	DATA DVOC/1RN,0,"2000,3RNOR,2RTH,"2000,1RS,0,"12000,
66C&	 1RE,0,"6000,3REAS,1RT,"6000,1RW,0,"16000,3RWES,1RT,"16000,
67C&	 2RSE,0,"10000,2RSW,0,"14000,
68C&	 2RNE,0,"4000,2RNW,0,"20000,
69C&	 1RU,0,"22000,2RUP,0,"22000,1RD,0,"24000,3RDOW,1RN,"24000,
70C&	 3RLAU,3RNCH,"26000,3RLAN,1RD,"30000,3RENT,2RER,"32000,
71C&	 3REXI,1RT,"34000,3ROUT,0,"34000,3RLEA,2RVE,"34000,
72C&	 3RTRA,3RVEL,"36000,3RSOU,2RTH,"12000,
73C&	 2RIN,0,"32000,
74C&	 3RCRO,2RSS,"36000/
75C
76	DATA DVOC/22400,0,o"2000",23018,32320,o"2000",30400,0,o"12000",
77&		8000,0,o"6000",8059,32000,o"6000",36800,0,o"16000",
78&		37019,32000,o"16000",30600,0,o"10000",31320,0,o"14000",
79&		22600,0,o"4000",23320,0,o"20000",
80&		33600,0,o"22000",34240,0,o"22000",6400,0,o"24000",
81&		7023,22400,o"24000",19261,22528,o"26000",
82&		19254,6400,o"30000",8580,8720,o"32000",
83&		8969,32000,o"34000",24860,0,o"34000",
84&		19401,35400,o"34000",32721,35412,o"36000",
85&		31021,32320,o"12000",14960,0,o"32000",
86&		5535,31160,o"36000"/
87C
88C
89C SPARSE, PAGE 3
90C
91C ADJECTIVES--	MAPS ADJECTIVES TO OBJECT NUMBERS
92C
93C EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF A TWO WORD
94C ADJECTIVE IN RADIX-50 FOLLOWED BY ONE OR MORE OBJECT NUMBERS.
95C NOTE THAT ADJECTIVES CAN BE DISTINGUISHED FROM OBJECTS AS
96C FOLLOWS-- ALL ADJECTIVES ARE .GE. 1RA (1600), WHILE ALL OBJECTS
97C ARE .LE. OLNT (255 MAX).
98C
99C   THE DATA STATEMENT BELOW WAS CONVERTED FROM:
100C
101C	DATA AVOC1/3RBRO,2RWN,1,81,3RELO,3RNGA,1,3RHOT,0,3,3RPEP,3RPER,3,
102C&	 3RVIT,3RREO,4,3RJAD,1RE,6,3RHUG,1RE,8,3RENO,3RRMO,8,122,
103C&	 3RTRO,3RPHY,9,3RCLE,2RAR,10,3RLAR,2RGE,12,26,47,95,96,123,
104C&	 133,135,146,147,150,176,3RNAS,2RTY,13,3RELV,3RISH,14,
105C&	 3RBRA,2RSS,15,16,46,156,
106C&	 3RBRO,3RKEN,16,22,92,113,155,158,3RORI,3RENT,17,
107C&	 3RBLO,3RODY,20,3RRUS,2RTY,21,3RBUR,3RNED,22,
108C&	 3RDEA,1RD,22,3ROLD,0,25,41,44,45,3RLEA,3RTHE,25,
109C&	 3RPLA,3RTIN,26,3RPEA,2RRL,27,
110C&	 3RMOB,1RY,31,3RCRY,3RSTA,32,126,
111C&	 3RGOL,1RD,33,85,104,157,158,188,
112C&	 3RIVO,2RRY,34,3RSAP,3RPHI,37,3RWOO,3RDEN,38,67,136,137,
113C&	 165,173,174,175,3RWOO,1RD,38,67,136,137,165,173,174,175,
114C&	 3RSTE,2REL,39,125,189,
115C&	 3RDEN,3RTED,39,3RFAN,2RCY,40,3RANC,3RIEN,41,44,
116C&	 3RSMA,2RLL,5,46,52,53,89,102,103,153,187,
117C&	 3RBLA,2RCK,47,162,3RTOU,1RR,49,
118C&	 3RVIS,3RCOU,55,3RVIC,3RIOU,62,
119C&	 3RGLA,2RSS,10,126,132,3RTRA,1RP,66/
120C
121C
122	DATA AVOC1/3935,37360,1,81,8495,22681,1,13420,0,3,25816,25818,3,
123&	 35580,29015,4,16044,8000,6,13647,8000,8,8575,29335,8,122,
124&	 32735,25945,9,5285,2320,10,19258,11400,12,26,47,95,96,123,
125&	 133,135,146,147,150,176,22459,33000,13,8502,15168,14,
126&	 3921,31160,15,16,46,156,
127&	 3935,17814,16,22,92,113,155,158,24729,8580,17,
128&	 3695,24185,20,29659,33000,21,4058,22604,22,
129&	 6601,6400,22,24484,0,25,41,44,45,19401,32325,25,
130&	 26081,32374,26,25801,29280,27,
131&	 21402,40000,31,5545,31201,32,126,
132&	 11812,6400,33,85,104,157,158,188,
133&	 15295,29800,34,30456,25929,37,37415,6614,38,67,136,137,
134&	 165,173,174,175,37415,6400,38,67,136,137,165,173,174,175,
135&	 31205,8480,39,125,189,
136&	 6614,32204,39,9654,5800,40,2163,14614,41,44,
137&	 30921,19680,5,46,52,53,89,102,103,153,187,
138&	 3681,5240,47,162,32621,28800,49,
139&	 35579,5421,55,35563,15021,62,
140&	 11681,31160,10,126,132,32721,25600,66/
141C
142C
143C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
144C
145C	DATA AVOC2/3RFRO,2RNT,68,3RSTO,2RNE,69,150,214,3RMAN,3RGLE,72,
146C&	 3RRED,0,79,94,140,161,170,171,3RYEL,3RLOW,80,159,
147C&	 3RBLU,1RE,82,112,114,141,
148C&	 3RVAM,3RPIR,83,3RMAG,2RIC,90,
149C&	 3RSEA,3RWOR,90,3RTAN,0,91,3RSHA,2RRP,92,
150C&	 3RWIC,3RKER,98,3RCLO,2RTH,100,
151C&	 3RBRA,3RIDE,101,
152C&	 3RGAU,2RDY,108,3RSQU,3RARE,109,127,3RCLA,1RY,109,
153C&	 3RSHI,2RNY,110,3RTHI,1RN,110,
154C&	 3RGRE,2REN,115,143,3RPUR,3RPLE,116,3RWHI,2RTE,117,147,160,
155C&	 3RMAR,3RBLE,119,3RCOK,1RE,121,3REMP,2RTY,121,
156C&	 3RROU,2RND,128,3RTRI,3RANG,129,
157C&	2 3RRAR,1RE,134,3ROBL,3RONG,135,3REAT,3R$ME,138,
158C&	 3REAT,2RME,138,3RORA,3RNGE,139,3RECC,1RH,141/
159C
160C
161	DATA AVOC2/10335,23200,68,31215,22600,69,150,214,20854,11685,72,
162&		29004,0,79,94,140,161,170,171,40212,19823,80,159,
163&		3701,8000,82,112,114,141,
164&		35253,25978,83,20847,14520,90,
165&		30601,37418,90,32054,0,91,30721,29440,92,
166&		37163,17818,98,5295,32320,100,
167&		3921,14565,101,
168&		11261,7400,108,31101,2325,109,127,5281,4000,109,
169&		30729,23400,110,32329,22400,110,
170&		11925,8560,115,143,26458,26085,116,
171&		37129,32200,117,147,160,
172&		20858,3685,119,5411,8000,121,8536,33000,121,
173&		29421,22560,128,32729,2167,129,
174&		28858,8000,134,24092,24567,135,8060,43725,138,
175&		8060,21000,138,24721,22685,139,8123,12800,141/
176C
177C
178C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
179C
180C	DATA AVOC3/3RROC,2RKY,147,3RSHE,2RER,147,
181C&	 3R200,0,148,3RNEA,1RT,148,3RSHI,3RMME,151,
182C&	 3RZUR,3RICH,152,3RBIR,2RDS,153,154,155,
183C&	 3RENC,3RRUS,154,155,3RBEA,3RUTI,156,3RCLO,3RCKW,157,158,
184C&	 3RMEC,3RHAN,157,158,
185C&	 3RMAH,3ROGA,163,3RPIN,1RE,164,3RLON,1RG,166,
186C&	 3RCEN,3RTER,166,3RSHO,2RRT,167,1RT,0,168,
187C&	 3RCOM,3RPAS,169,211,3RBRO,3RNZE,172,3RCEL,1RL,174,175,
188C&	 3RLOC,3RKED,174,3RSUN,0,177,
189C&	 3RBAR,1RE,200,3RSON,1RG,203,
190C&	 3RNOR,2RTH,205,3RNOR,3RTHE,205,3RSOU,2RTH,206,
191C&	 3RSOU,3RTHE,206,3REAS,1RT,207,3REAS,3RTER,207,
192C&	 3RWES,1RT,208,3RWES,3RTER,208,3RDUN,3RGEO,215/
193C
194C
195	DATA AVOC3/29403,18600,147,30725,8720,147,
196&		52430,0,148,22601,32000,148,30729,21325,151,
197&		42458,14528,152,3578,7160,153,154,155,
198&		8563,29659,154,155,3401,34409,156,5295,5263,157,158,
199&		21003,12854,157,158,
200&		20848,24281,163,25974,8000,164,19814,11200,166,
201&		5014,32218,166,30735,29600,167,32000,0,168,
202&		5413,25659,169,211,3935,23445,172,5012,19200,174,175,
203&		19803,17804,174,31254,0,177,
204&		3258,8000,200,31014,11200,203,
205&		23018,32320,205,23018,32325,205,31021,32320,206,
206&		31021,32325,206,8059,32000,207,8059,32218,207,
207&		37019,32000,208,37019,32218,208,7254,11415,215/
208C
209C
210C
211	DATA AVOCND/-1/
212C SPARSE, PAGE 4
213C
214C VERBS--	MAPS VERBS TO SYNTAX SLOTS
215C
216C EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF ONE OR MORE
217C TWO WORD VERBS IN RADIX-50 FOLLOWED BY A SYNTAX WORD COUNT
218C FOLLOWED BY ONE OR MORE SYNTAXES.  NOTE THAT VERBS CAN BE
219C DISTINGUISHED FROM WORD COUNTS AS FOLLOWS--
220C ALL VERBS ARE .GE. 1RA (1600), WHILE ALL SYNTAX WORD COUNTS
221C ARE .LE. 255.
222C
223C SYNTAX ENTRIES CONSIST OF A FLAG WORD FOLLOWED BY 0, 1, OR 2
224C OBJECT DESCRIPTIONS.  THE FLAG WORD HAS THE FOLLOWING FORMAT--
225C
226C BIT <14>	IF 1, SYNTAX INCLUDES DIRECT OBJECT
227C BIT <13>	IF 1, SYNTAX INCLUDES INDIRECT OBJECT
228C BIT <12>	IF 1, DIRECT OBJECT IS IMPLICIT (STANDARD FORM)
229C BIT <11>	IF 1, DIRECT AND INDIRECT OBJECT MUST BE SWAPPED
230C			AFTER SYNTAX PROCESSING
231C BIT <10>	IF 1, THIS IS DEFAULT SYNTAX FOR ORPHANERY
232C BITS <8:0>	VERB NUMBER FOR VAPPLI
233C
234C OBJECT DESCRIPTIONS CONSIST OF A FLAG WORD AND TWO FWIM WORDS.
235C THE FLAG WORD HAS THE FOLLOWING FORMAT--
236C
237C BIT <14>	IF 1, SEARCH ADVENTURER FOR OBJECT
238C BIT <13>	IF 1, SEARCH ROOM FOR OBJECT
239C BIT <12>	IF 1, PARSER WILL TRY TO TAKE OBJECT
240C BIT <11>	IF 1, ADVENTURER MUST HAVE OBJECT
241C BIT <10>	IF 1, QUALIFYING BITS (NORMALLY -1,-1) ARE SAME
242C			AS FWIM BITS
243C BIT <9>	IF 1, OBJECT MUST BE REACHABLE
244C BITS <8:0>	PREPOSITION NUMBER FOR SYNMCH
245C
246C THE FWIM WORDS HAVE THE SAME FORMAT AS THE TWO OBJECT FLAG WORDS.
247C
248C NOTE THAT BITS 12 AND 11 OF OBJECT DESCRIPTIONS ACTUALLY HAVE
249C FOUR DISTINCT STATES--
250C
251C	BIT 12	BIT 11	MDLDESC		INTERPRETATION
252C	------	------	-------		---------------
253C
254C	  0	  0	 --		NO PARSER ACTION
255C	  0	  1	 HAVE		ADVENTURER MUST HAVE OBJECT
256C	  1	  0	 TRY		TRY TO TAKE, DONT CARE IF FAIL
257C	  1	  1	 TAKE		TRY TO TAKE, CARE IF FAIL
258C
259C SPARSE, PAGE 5
260C
261C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
262C
263C	DATA VVOC1/3RBRI,2REF,1,70,3RVER,3RBOS,1,71,
264C&	 3RSUP,3RERB,1,72,3RSTA,1RY,1,73,3RVER,3RSIO,1,74,
265C&	 3RSWI,1RM,3RBAT,2RHE,3RWAD,1RE,1,75,3RGER,3RONI,1,76,
266C&	 3RULY,3RSSE,3RODY,3RSSE,1,77,
267C&	 3RWEL,1RL,1,78,3RPRA,1RY,1,79,3RTRE,3RASU,1,80,
268C&	 3RTEM,3RPLE,1,81,3RBLA,2RST,1,82,3RSCO,2RRE,1,83,
269C&	 1RQ,0,3RQUI,1RT,1,84,3RHEL,1RP,1,40,3RINF,1RO,1,41,
270C&	 3RHIS,3RTOR,3RUPD,3RATE,1,42,3RBAC,1RK,1,43,
271C&	 3RSIG,1RH,3RMUM,3RBLE,1,44/
272C
273C
274	DATA VVOC1/3929,8240,1,70,35418,3819,1,71,
275&		31256,8722,1,72,31201,40000,1,73,35418,30775,1,74,
276&		31329,20800,3260,13000,36844,8000,1,75,11418,24569,1,76,
277&		34105,31165,24185,31165,1,77,
278&		37012,19200,1,78,26321,40000,1,79,32725,2381,1,80,
279&		32213,26085,1,81,3681,31200,1,82,30535,29000,1,83,
280&		27200,0,28049,32000,1,84,13012,25600,1,40,
281&		14966,24000,1,41,
282&		13179,32618,34244,2405,1,42,3243,17600,1,43,
283&		30767,12800,21653,3685,1,44/
284C
285C
286C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
287C
288C	DATA VVOC1A/3RCHO,2RMP,3RLOS,1RE,3RBAR,1RF,1,45,
289C&	 3RDUN,3RGEO,1,46,3RFRO,3RBOZ,1,47,3RFOO,0,3RBLE,3RTCH,
290C&	 3RBAR,0,1,48,3RREP,3RENT,1,49,3RHOU,2RRS,3RSCH,3REDU,1,50,
291C&	 3RWIN,0,1,51,3RYEL,1RL,3RSCR,3REAM,3RSHO,2RUT,1,52,
292C&	 3RHOP,0,3RSKI,1RP,1,53,3RFUC,1RK,3RSHI,1RT,3RDAM,1RN,
293C&	 3RCUR,2RSE,1,54,3RZOR,1RK,1,55,3RGRA,3RNIT,1,"50070,
294C&	 3RSAV,1RE,1,149,3RRES,3RTOR,1,150,3RTIM,1RE,1,90,
295C&	 3RDIA,3RGNO,1,94,3REXO,3RRCI,1,105,3RINV,3RENT,
296C&	 1RI,0,1,133,3RWAI,1RT,1,128,
297C&	 3RINC,3RANT,1,95,3RANS,3RWER,1,96/
298C
299C
300C
301	DATA VVOC1A/5135,21440,19819,8000,3258,9600,1,45,
302&		7254,11415,1,46,10335,3826,1,47,10215,0,3685,32128,
303&		3258,0,1,48,29016,8580,1,49,13421,29560,30528,8181,1,50,
304&		37174,0,1,51,40212,19200,30538,8053,30735,34400,1,52,
305&		13416,0,30849,25600,1,53,
306&		10443,17600,30729,32000,6453,22400,5658,30600,1,54,
307&		42218,17600,1,55,11921,22780,1,o"50070",
308&		30462,8000,1,149,29019,32618,1,150,32373,8000,1,90,
309&		6761,11775,1,94,8975,28929,1,105,14982,8580,
310&		14400,0,1,133,36849,32000,1,128,
311&		14963,2180,1,95,2179,37018,1,96/
312C
313C
314C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
315C
316C	DATA VVOC1B/3RAGA,2RIN,1,57,3RNOO,2RBJ,1,58,
317C&	 3RBUG,0,3RGRI,2RPE,3RCOM,3RPLA,1,59,
318C&	 3RFEA,3RTUR,3RCOM,3RMEN,3RSUG,3RGES,3RIDE,1RA,1,60,
319C&	 3RROO,1RM,1,65,3ROBJ,3RECT,1,66,3RRNA,2RME,1,67/
320C
321C
322C
323	DATA VVOC1B/1881,14960,1,57,23015,3600,1,58,
324&		4047,0,11929,25800,5413,26081,1,59,
325&		9801,32858,5413,21014,31247,11419,14565,1600,1,60,
326&		29415,20800,1,65,24090,8140,1,66,29361,21000,1,67/
327C
328C
329C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
330C
331C	DATA VVOC2/3RDEF,3RLAT,1,"50147,
332C&	 3RDES,3RCRI,3RWHA,1RT,3REXA,3RMIN,1,"50170,
333C&	 3RFIL,1RL,11,"60206,"61000,"200,0,"61002,"400,0,
334C&		"40206,"61000,"200,0,
335C&	 3RFIN,1RD,3RSEE,1RK,3RWHE,2RRE,3RSEE,0,4,"40177,"60000,-1,-1,
336C&	 3RFOL,3RLOW,2,"125,"50125,
337C&	 3RKIC,1RK,3RBIT,1RE,3RTAU,2RNT,1,"50153,3RLOW,2RER,1,"50156,
338C&	 3RPUS,1RH,3RPRE,2RSS,1,"50160,3RRIN,1RG,3RPEA,1RL,1,"50127,
339C&	 3RRUB,0,3RCAR,3RESS,3RTOU,2RCH,3RFON,3RDLE,1,"50157,
340C&	 3RSHA,2RKE,1,"50171,3RSPI,1RN,1,"50201,
341C&	 3RUNT,2RIE,3RFRE,1RE,1,"50161,3RWAL,1RK,9,"50216,
342C&		"40126,"61002,-1,-1,"40126,"61005,-1,-1/
343C
344C
345C
346	DATA VVOC2/6606,19260,1,o"50147",
347&		6619,5529,37121,32000,8961,21174,1,o"50170",
348&		9972,19200,11,
349&			o"60206",o"61000",o"200",0,o"61002",o"400",0,
350&			o"40206",o"61000",o"200",0,
351&		9974,6400,30605,17600,37125,29000,30605,0,4,
352&			o"40177",o"60000",-1,-1,
353&		10212,19823,2,o"125",o"50125",
354&		17963,17600,3580,8000,32061,23200,1,o"50153",
355&		19823,8720,1,o"50156",
356&		26459,12800,26325,31160,1,o"50160",
357&		29174,11200,25801,19200,1,o"50127",
358&		29642,0,4858,8779,32621,5120,10214,6885,1,o"50157",
359&		30721,17800,1,o"50171",31049,22400,1,o"50201",
360&		34180,14600,10325,8000,1,o"50161",
361&		36852,17600,9,o"50216",o"40126",o"61002",-1,-1,
362&			o"40126",o"61005",-1,-1/
363C
364C
365C
366C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
367C
368C	DATA VVOC3/3RATT,3RACK,3RFIG,2RHT,3RINJ,3RURE,3RHIT,0,3RHUR,1RT,
369C&		7,"60215,"21000,0,"200,"44002,0,"1000,
370C&	 3RBOA,2RRD,4,"40202,"21000,0,"2,
371C&	 3RBRU,2RSH,3RCLE,2RAN,5,"52130,"70130,"61002,-1,-1,
372C&	 3RBUR,1RN,3RIGN,3RITE,3RINC,3RINE,7,"60211,"61000,"20,0,
373C&		"64002,"10,0,
374C&	 3RCLI,2RMB,12,"40235,"20007,0,"4000,
375C&		"40236,"20006,0,"4000,"40234,"20000,0,"4000,
376C&	 3RCLO,2RSE,4,"40176,"61000,"10200,0,
377C&	 3RDIG,0,4,"40131,"44002,"4,0,
378C&	 3RDIS,3REMB,4,"40203,"20000,0,"2,
379C&	 3RDRI,2RNK,3RIMB,3RIBE,3RSWA,3RLLO,4,"40210,"61000,"400,0,
380C&	 3RDRO,1RP,3RREL,3REAS,11,"42221,"41000,-1,-1,
381C&		"60221,"41000,-1,-1,"61005,-1,-1,
382C&	 3REAT,0,3RCON,3RSUM,3RGOB,3RBLE,3RMUN,2RCH,3RTAS,2RTE,
383C&		4,"40207,"75000,"2000,0,
384C&	 3REXT,3RING,3RDOU,2RSE,4,"40174,"75000,"100,0/
385C
386C
387	DATA VVOC3/2420,1731,9967,13600,14970,34325,13180,0,13658,32000,
388&			7,o"60215",o"21000",0,o"200",o"44002",0,o"1000",
389&		3801,28960,4,o"40202",o"21000",0,o"2",
390&		3941,30720,5285,2160,5,o"52130",o"70130",o"61002",-1,-1,
391&		4058,22400,14694,15205,14963,14965,
392&			7,o"60211",o"61000",o"20",0,o"64002",o"10",0,
393&		5289,20880,12,o"40235",o"20007",0,o"4000",o"40236",
394&			o"20006",0,o"4000",o"40234",o"20000",0,o"4000",
395&		5295,30600,4,o"40176",o"61000",o"10200",0,
396&		6767,0,4,o"40131",o"44002",o"4",0,
397&		6779,8522,4,o"40203",o"20000",0,o"2",
398&		7129,22840,14922,14485,31321,19695,
399&			4,o"40210",o"61000",o"400",0,
400&		7135,25600,29012,8059,11,o"42221",o"41000",-1,-1,
401&			o"60221",o"41000",-1,-1,o"61005",-1,-1,
402&		8060,0,5414,31253,11802,3685,21654,5120,32059,32200,
403&			4,o"40207",o"75000",o"2000",0,
404&		8980,14967,7021,30600,4,o"40174",o"75000",o"100",0/
405C
406C
407C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
408C
409C	DATA VVOC4/3RGIV,1RE,3RHAN,1RD,3RDON,3RATE,11,"72222,"21004,
410C&		"40,0,"64222,"21000,"40,0,"61000,-1,-1,
411C&	 3RHEL,2RLO,2RHI,0,2,"2227,"50227,
412C&	 3RBLO,1RW,15,"62146,"61007,-1,-1,"61002,"4,0,
413C&		"40160,"61007,-1,-1,"40165,"61005,-1,-1,
414C&	 3RINF,3RLAT,4,"70146,"61002,"4,0,
415C&	 3RJUM,1RP,3RLEA,1RP,5,"133,"40133,"61001,-1,-1,
416C&	 3RKIL,1RL,3RMUR,3RDER,3RSLA,1RY,3RSTA,1RB,3RDIS,3RPAT,
417C&		7,"60213,"21000,0,"200,
418C&		"44002,0,"1000,
419C&	 3RKNO,2RCK,3RRAP,0,12,"42166,"61003,-1,-1,
420C&		"40166,"61012,-1,-1,"40215,"23006,"40,0,
421C&	 3RLIG,2RHT,11,"42173,"75000,"100,0,
422C&		"60211,"61000,"100,0,"54002,"10,0,
423C&	 3RLOC,1RK,4,"40134,"20000,-1,-1/
424C
425C
426C
427	DATA VVOC4/11582,8000,12854,6400,7014,2405,11,o"72222",o"21004",
428&			o"40",0,o"64222",o"21000",o"40",
429&			0,o"61000",-1,-1,
430&		13012,19800,13160,0,2,o"2227",o"50227",
431&		3695,36800,15,o"62146",o"61007",-1,-1,o"61002",o"4",0,
432&			o"40160",o"61007",-1,-1,o"40165",o"61005",-1,-1,
433&		14966,19260,4,o"70146",o"61002",o"4",0,
434&		16853,25600,19401,25600,
435&			5,o"133",o"40133",o"61001",-1,-1,
436&		17972,19200,21658,6618,30881,40000,31201,3200,
437&			6779,25660,7,o"60213",o"21000",0,o"200",
438&			o"44002",0,o"1000",
439&		18175,5240,28856,0,12,o"42166",o"61003",-1,-1,o"40166",
440&			o"61012",-1,-1,o"40215",o"23006",o"40",0,
441&		19567,13600,11,o"42173",o"75000",o"100",0,o"60211",
442&			o"61000",o"100",0,o"54002",o"10",0,
443&		19803,17600,4,o"40134",o"20000",-1,-1/
444C
445C
446C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
447C
448C	DATA VVOC5/3RLOO,1RK,1RL,0,3RSTA,2RRE,3RGAZ,1RE,
449C&		13,"167,"40167,"60003,-1,-1,
450C&		"40231,"61010,-1,-1,"40230,"60005,-1,-1,
451C&	 3RMEL,1RT,3RLIQ,3RUIF,4,"70145,"61002,"10,0,
452C&	 3RMOV,1RE,4,"40172,"20000,-1,-1,
453C&	 3RPUL,1RL,3RTUG,0,8,"42172,"21000,-1,-1,
454C&		"40172,"21012,-1,-1,
455C&	 3RMUN,1RG,3RHAC,1RK,3RFRO,1RB,3RDAM,3RAGE,
456C&		5,"52212,"70212,"44002,-1,-1,
457C&	 3ROPE,1RN,11,"42175,"61000,"10200,0,
458C&		"60175,"61000,"10200,0,"54002,"4,"1000,
459C&	 3RPIC,1RK,4,"40204,"61007,"20000,"40,
460C&	 3RPLU,1RG,3RGLU,1RE,3RPAT,2RCH,4,"70152,"61002,-1,-1,
461C&	 3RPOK,1RE,3RBRE,2RAK,3RJAB,0,7,"60212,"21000,0,"200,
462C&		"44002,0,"1000,
463C&	 3RPOU,1RR,3RSPI,2RLL,11,"42223,"42000,"400,0,
464C&		"60223,"42000,"400,0,"60005,-1,-1,
465C&		3RPUM,1RP,4,"60232,"60007,-1,-1/
466C
467C
468C
469	DATA VVOC5/19815,17600,19200,0,31201,29000,11266,8000,
470&			13,o"167",o"40167",o"60003",-1,-1,
471&			o"40231",o"61010",-1,-1,o"40230",o"60005",-1,-1,
472&		21012,32000,19577,33966,4,o"70145",o"61002",o"10",0,
473&		21422,8000,4,o"40172",o"20000",-1,-1,
474&		26452,19200,32847,0,8,o"42172",o"21000",-1,-1,
475&			o"40172",o"21012",-1,-1,
476&		21654,11200,12843,17600,10335,3200,6453,1885,
477&			5,o"52212",o"70212",o"44002",-1,-1,
478&		24645,22400,11,o"42175",o"61000",o"10200",0,o"60175",
479&			o"61000",o"10200",0,o"54002",o"4",o"1000",
480&		25963,17600,4,o"40204",o"61007",o"20000",o"40",
481&		26101,11200,11701,8000,25660,5120,
482&			4,o"70152",o"61002",-1,-1,
483&		26211,8000,3925,2040,16042,0,7,o"60212",o"21000",
484&			0,o"200",o"44002",0,o"1000",
485&		26221,28800,31049,19680,11,o"42223",o"42000",o"400",0,
486&			o"60223",o"42000",o"400",0,o"60005",-1,-1,
487&		26453,25600,4,o"60232",o"60007",-1,-1/
488C
489C
490C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
491C
492C	DATA VVOC6/3RPUT,0,3RINS,3RERT,3RSTU,2RFF,3RPLA,2RCE,
493C&		8,"72220,"61005,-1,-1,
494C&		"40221,"61006,-1,-1,
495C&	 3RRAI,2RSE,3RLIF,1RT,5,"52155,"40155,"61007,-1,-1,
496C&	 3RREA,1RD,3RSKI,1RM,11,"42144,"71000,"40000,0,
497C&		"60144,"71000,"40000,0,"61002,-1,-1,
498C&	 3RSTR,3RIKE,12,"60215,"23000,"40,0,
499C&		"44002,0,"1000,"42215,"23000,"40,0,"50173,
500C&	 3RSWI,2RNG,3RTHR,3RUST,7,"60214,"44000,0,"1000,
501C&		"21003,0,"200,
502C&	 3RTAK,1RE,3RGET,0,3RHOL,1RD,3RCAR,2RRY,3RREM,3ROVE,
503C&		4,"40204,"61000,"20000,"40,
504C&	 3RTEL,1RL,3RCOM,3RMAN,3RREQ,3RUES,4,"40217,"20000,0,"2000,
505C&	 3RTHR,2ROW,3RHUR,1RL,3RCHU,2RCK,14,"60224,"44000,-1,-1,
506C&		"21003,"40,0,"60224,"44000,-1,-1,"21002,"40,0/
507C
508C
509C
510	DATA VVOC6/26460,0,14979,8740,31221,9840,26081,5000,
511&			8,o"72220",o"61005",-1,-1,
512&			o"40221",o"61006",-1,-1,
513&		28849,30600,19566,32000,
514&			5,o"52155",o"40155",o"61007",-1,-1,
515&		29001,6400,30849,20800,11,o"42144",o"71000",o"40000",0,
516&			o"60144",o"71000",o"40000",0,o"61002",-1,-1,
517&		31218,14845,12,o"60215",o"23000",o"40",0,o"44002",
518&			0,o"1000",o"42215",o"23000",o"40",0,o"50173",
519&		31329,22680,32338,34380,7,o"60214",o"44000",0,o"1000",
520&			o"21003",0,o"200",
521&		32051,8000,11420,0,13412,6400,4858,29800,29013,24885,
522&			4,o"40204",o"61000",o"20000",o"40",
523&		32212,19200,5413,20854,29017,33819,
524&			4,o"40217",o"20000",0,o"2000",
525&		32338,24920,13658,19200,5141,5240,14,o"60224",o"44000",
526&			-1,-1,o"21003",o"40",0,o"60224",o"44000",
527&			-1,-1,o"21002",o"40",0/
528C
529C
530C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
531C
532C	DATA VVOC7/3RTIE,0,3RFAS,3RTEN,11,"70162,"61004,-1,-1,
533C&		"60163,"21000,"40,0,"65002,"4,0,
534C&	 3RTUR,1RN,3RSET,0,22,"62164,"61000,"2,0,
535C&		"64002,"4,0,
536C&		"40173,"75012,"100,0,"40174,"75013,"100,0,
537C&		"60237,"61000,"2,0,"20004,-1,-1,
538C&	 3RUNL,3ROCK,7,"60135,"21000,-1,-1,
539C&		"74002,"4,0,
540C&	 3RWAK,1RE,3RSUR,3RPRI,3RALA,2RRM,3RSTA,3RRTL,
541C&		8,"42150,"20000,"40,0,
542C&		"40150,"20007,"40,0,
543C&	 3RWAV,1RE,3RFLA,3RUNT,3RBRA,3RNDI,4,"40154,"40000,-1,-1,
544C&	 3RWIN,1RD,5,"50233,"40233,"61007,-1,-1/
545C
546C
547C
548	DATA VVOC7/32365,0,9659,32214,11,o"70162",o"61004",-1,-1,
549&		o"60163",o"21000",o"40",0,o"65002",o"4",0,
550&	 32858,22400,30620,0,22,o"62164",o"61000",o"2",0,
551&		o"64002",o"4",0,
552&		o"40173",o"75012",o"100",0,o"40174",o"75013",o"100",0,
553&		o"60237",o"61000",o"2",0,o"20004",-1,-1,
554&	 34172,24131,7,o"60135",o"21000",-1,-1,
555&		o"74002",o"4",0,
556&	 36851,8000,31258,26329,2081,29320,31201,29612,
557&		8,o"42150",o"20000",o"40",0,
558&		o"40150",o"20007",o"40",0,
559&	 36862,8000,10081,34180,3921,22569,4,o"40154",o"40000",-1,-1,
560&	 37174,6400,5,o"50233",o"40233",o"61007",-1,-1/
561C
562C
563	DATA VVOCND/-1/
564C SPARSE, PAGE 6
565C
566C OBJECTS--	MAPS OBJECTS TO OBJECT INDICES
567C
568C SAME FORMAT AS AVOC.
569C
570C
571C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
572C
573C	DATA OVOC1/3RBAG,0,1,25,100,3RSAC,1RK,1,3RGAR,3RLIC,2,
574C&	 3RCLO,2RVE,2,3RFOO,1RD,3,3RSAN,3RDWI,3,3RLUN,2RCH,3,
575C&	 3RDIN,3RNER,3,
576C&	 3RGUN,1RK,4,55,3RPIE,2RCE,4,143,186,3RSLA,1RG,4,3RCOA,1RL,5,
577C&	 3RPIL,1RE,5,18,38,78,87,88,122,3RHEA,1RP,5,
578C&	 3RFIG,3RURI,6,
579C&	 3RMAC,3RHIN,7,3RPDP,2R10,7,3RPDP,2R11,7,3RDRY,2RER,7,
580C&	 3RLID,0,7,3RDIA,3RMON,8,3RCAS,1RE,9,123,3RBOT,3RTLE,10,121,
581C&	 3RCON,3RTAI,10,3RWAT,2RER,11,209,3RQUA,3RNTI,11,209,
582C&	 3RLIQ,3RUID,11,209,3RH2O,0,11,209,
583C&	 3RROP,1RE,12,101,3RHEM,1RP,12,3RCOI,1RL,12,110,
584C&	 3RKNI,2RFE,13,21,3RBLA,2RDE,13,14,3RSWO,2RRD,14,3RORC,3RHRI,14,
585C&	 3RGLA,3RMDR,14,3RLAM,1RP,15,16,22,3RLAN,3RTER,15,16,22,
586C&	 3RRUG,0,17,3RCAR,3RPET,17,
587C&	 3RLEA,3RVES,18,3RLEA,1RF,18,3RTRO,2RLL,19,
588C&	 3RAXE,0,20,3RDIN,3RNER,3/
589C
590C
591	DATA OVOC1/3247,0,1,25,100,30443,17600,1,11258,19563,2,
592&	 5295,35400,2,10215,6400,3,30454,7329,3,20054,5120,3,
593&	 6774,22618,3,
594&	 12054,17600,4,55,25965,5000,4,143,186,30881,11200,4,5401,19200,5,
595&	 25972,8000,5,18,38,78,87,88,122,13001,25600,5,
596&	 9967,34329,6,
597&	 20843,13174,7,25776,50800,7,25776,50840,7,7145,8720,7,
598&	 19564,0,7,6761,21414,8,4859,8000,9,123,3820,32485,10,121,
599&	 5414,32049,10,36860,8720,11,209,28041,23209,11,209,
600&	 19577,33964,11,209,14095,0,11,209,
601&	 29416,8000,12,101, 13013,25600,12,5409,19200,12,110,
602&	 18169,9800,13,21,3681,6600,13,14,31335,28960,14,24723,13529,14,
603&	 11681,20978,14,19253,25600,15,16,22,19254,32218,15,16,22,
604&	 29647,0,17,4858,25820,17,
605&	 19401,35419,18,19401,9600,18,32735,19680,19,
606&	 2565,0,20,6774,22618,3/
607C
608C
609C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
610C
611C	DATA OVOC2/3RKEY,1RS,23,3RKEY,0,23,
612C&	 3RSET,0,23,3RBON,2RES,24,3RSKE,3RLET,24,3RBOD,1RY,24,73,
613C&	 3RCOI,2RNS,25,3RBAR,0,26,165,168,
614C&	 3RNEC,3RKLA,27,3RPEA,3RRLS,27,3RMIR,3RROR,28,29,212,
615C&	 3RICE,0,30,3RMAS,1RS,30,3RGLA,3RCIE,30,3RRUB,1RY,31,
616C&	 3RTRI,3RDEN,32,3RFOR,1RK,32,3RCOF,3RFIN,33,3RCAS,3RKET,33,
617C&	 3RTOR,2RCH,34,3RCAG,1RE,35,36,124,125,3RDUM,3RBWA,35,36,
618C&	 3RBAS,3RKET,35,36,98,113,3RBRA,3RCEL,37,
619C&	 3RJEW,2REL,37,3RTIM,3RBER,38,3RBOX,0,39,53,105,3RSTR,3RADI,40,
620C&	 3RVIO,3RLIN,40,3RENG,3RRAV,41,3RINS,3RCRI,41,44,3RGHO,2RST,42,
621C&	 3RSPI,3RRIT,42,3RFIE,2RND,42,3RGRA,2RIL,43,3RPRA,3RYER,44,47,
622C&	 3RTRU,2RNK,45,3RCHE,2RST,45,3RBEL,1RL,46,
623C&	 3RBOO,1RK,47,49,114,115,116,117,3RBIB,2RLE,47/
624C
625C
626	DATA OVOC2/17825,30400,23,17825,0,23,
627&	 30620,0,23,3814,8760,24,30845,19420,24,3804,40000,24,73,
628&	 5409,23160,25,3258,0,26,165,168,
629&	 22603,18081,27,25801,29299,27,21178,29418,28,29,212,
630&	 14525,0,30,20859,30400,30,11681,5165,30,29642,40000,31,
631&	 32729,6614,32,10218,17600,32,5406,9974,33,4859,17820,33,
632&	 32618,5120,34,4847,8000,35,36,124,125,7253,4121,35,36,
633&	 3259,17820,35,36,98,113,3921,5012,37,
634&	 16223,8480,37,32373,3418,38,3824,0,39,53,105,31218,1769,40,
635&	 35575,19574,40,8567,28862,41,14979,5529,41,44,11535,31200,42,
636&	 31049,29180,42,9965,22560,42,11921,14880,43,26321,40218,44,47,
637&	 32741,22840,45,5125,31200,45,3412,19200,46,
638&	 3815,17600,47,49,114,115,116,117,3562,19400,47/
639C
640C
641C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
642C
643C	DATA OVOC3/3RGOO,3RDBO,47,3RCAN,3RDLE,48,3RPAI,1RR,48,
644C&	 3RGUI,3RDEB,49,
645C&	 3RGUI,2RDE,49,3RPAP,2RER,50,122,143,186,3RNEW,3RSPA,50,
646C&	 3RISS,2RUE,50,3RREP,3RORT,50,3RMAG,3RAZI,50,3RNEW,1RS,50,
647C&	 3RMAT,3RCHB,51,
648C&	 3RMAT,2RCH,51,3RMAT,3RCHE,51,3RADV,3RERT,52,3RPAM,3RPHL,52,
649C&	 3RLEA,3RFLE,52,3RBOO,3RKLE,52,3RMAI,3RLBO,53,
650C&	 3RTUB,1RE,54,3RTOO,3RTHP,54,3RPUT,2RTY,55,3RMAT,3RERI,55,
651C&	 3RGLU,1RE,55,3RWRE,3RNCH,56,3RSCR,3REWD,57,
652C&	 3RCYC,3RLOP,58,3RMON,3RSTE,58,3RCHA,3RLIC,59,3RCUP,0,59,
653C&	 3RGOB,3RLET,59,3RPAI,3RNTI,60,149,3RART,0,60,149,
654C&	 3RCAN,3RVAS,60,3RPIC,3RTUR,60,3RWOR,1RK,60,
655C&	 3RMAS,3RTER,60,215,3RTHI,2REF,61,3RROB,3RBER,61,
656C&	 3RCRI,3RMIN,61,3RBAN,3RDIT,61,3RCRO,2ROK,61,3RGEN,1RT,61,
657C&	 3RGEN,3RTLE,61,3RMAN,0,61,3RTHU,1RG,61,
658C&	 3RBAG,3RMAN,61,3RSTI,3RLLE,62/
659C
660C
661	DATA OVOC3/11815,6495,47,4854,6885,48,25649,28800,48,
662&	 12049,6602,49,
663&	 12049,6600,49,256656,8720,50,122,143,186,22623,31041,50,
664&	 15179,33800,50,29016,24740,50,20847,2649,50,22623,30400,50,
665&	 20860,5122,51,
666&	 20860,5120,51,20860,5125,51,1782,8740,52,25653,25932,52,
667&	 19401,10085,52,3815,18085,52,20849,19295,53,
668&	 32842,8000,54,32615,32336,54,26460,33000,55,20860,8729,55,
669&	 11701,8000,55,37525,22528,56,30538,8924,57,
670&	 5803,19816,58,21414,31205,58,5121,19563,59,5656,0,59,
671&	 11802,19420,59,25649,23209,60,149,2340,0,60,149,
672&	 4854,35259,60,25963,32858,60,37418,17600,60,
673&	 20859,32218,60,215,32329,8240,61,29402,3418,61,
674&	 5529,21175,61,3254,6780,61,5535,24440,61,11414,32000,61,
675&	 11414,32485,61,20854,0,61,32341,11200,61,
676&	 3247,20854,61,31209,19685,62/
677C
678C
679C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
680C
681C	DATA OVOC4/3RWIN,3RDOW,63,3RBOL,1RT,64,3RNUT,0,64,
682C&	 3RGRA,2RTE,65,3RGRA,3RTIN,65,3RDOO,1RR,66,67,68,69,
683C&	 164,172,173,174,175,189,3RTRA,3RPDO,66,
684C&	 3RTRA,3RP$D,66,3RSWI,3RTCH,70,76,79,80,81,82,170,
685C&	 3RHEA,1RD,71,120,3RCOR,3RPSE,72,73,3RBOD,3RIES,73,
686C&	 3RDAM,0,74,3RGAT,2RES,74,76,3RGAT,1RE,74,76,
687C&	 3RFCD,0,74,3RRAI,1RL,75,3RRAI,3RLIN,75,
688C&	 3RBUT,3RTON,76,79,80,81,82,127,128,129,170,176,
689C&	 3RBUB,3RBLE,77,3RLEA,1RK,78,3RDRI,1RP,78,
690C&	 3RHOL,1RE,78,107,
691C&	 3RBAT,0,83,3RRAI,3RNBO,84,
692C&	 3RPOT,0,85,3RSTA,3RTUE,86,3RSCU,3RLPT,86,3RROC,1RK,86,
693C&	 3RBOA,1RT,87,88,90,3RPLA,3RSTI,87,88,
694C&	 3RPUM,1RP,89/
695C
696C
697	DATA OVOC4/37174,7023,63,3812,32000,64,23260,0,64,
698&	 11921,32200,65,11921,32374,65,7015,28800,66,67,68,69,
699&	 164,172,173,174,175,189,32721,25775,66,
700&	 32721,26684,66,31329,32128,70,76,79,80,81,82,170,
701&	 13001,6400,71,120,5418,26365,72,73,3804,14619,73,
702&	 6453,0,74,11260,8760,74,76,11260,8000,74,76,
703&	 9724,0,74,28849,19200,75,28849,19574,75,
704&	 4060,32614,76,79,80,81,82,127,128,129,170,176,
705&	 4042,3685,77,19401,17600,78,7129,25600,78,
706&	 13412,8000,78,107,
707&	 3260,0,83,28849,22495,84,
708&	 26220,0,85,31201,32845,86,30541,19860,86,29403,17600,86,
709&	 3801,32000,87,88,90,26081,31209,87,88,
710&	 26453,25600,89/
711C
712C
713C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
714C
715C	DATA OVOC5/3RAIR,3RPUM,89,3RAIR,3R$PU,89,3RLAB,2REL,91,112,
716C&	 3RFIN,3REPR,91,3RSTI,2RCK,92,3RBAR,3RREL,93,3RBUO,1RY,94,
717C&	 3REME,3RRAL,95,3RSHO,3RVEL,96,3RGUA,2RNO,97,3RCRA,1RP,97,
718C&	 3RSHI,1RT,97,3RHUN,1RK,97,3RBAL,3RLOO,98,113,
719C&	 3RREC,3REPT,99,3RWIR,1RE,101,110,
720C&	 3RHOO,1RK,102,103,3RZOR,3RKMI,104,148,3RCOI,1RN,104,
721C&	 3RSAF,1RE,105,3RCAR,1RD,106,188,3RNOT,1RE,106,186,
722C&	 3RSLO,1RT,107,187,3RCRO,2RWN,108,3RBRI,2RCK,109,
723C&	 3RFUS,1RE,110,3RGNO,2RME,111,152,
724C&	 3RSTA,2RMP,118,
725C&	 3RTOM,1RB,119,3RCRY,2RPT,119,3RGRA,2RVE,119,3RHEA,2RDS,120,
726C&	 3RPOL,2RES,120,3RIMP,3RLEM,120/
727C
728C
729	DATA OVOC5/1978,26453,89,1978,43861,89,19242,8480,91,112,
730&	 9974,8658,91,31209,5240,92,3258,29012,93,4055,40000,94,
731&	 8525,28852,95,30735,35412,96,12041,23000,97,5521,25600,97,
732&	 30729,32000,97,13654,17600,97,3252,19815,98,113,
733&	 29003,8660,99,37178,8000,101,110,
734&	 13415,17600,102,103,42218,18129,104,148,5409,22400,104,
735&	 30446,8000,105,4858,6400,106,188,23020,8000,106,186,
736&	 30895,32000,107,187,5535,37360,108,3929,5240,109,
737&	 10459,8000,110,11775,21000,111,152,
738&	 31201,21440,118,
739&	 32613,3200,119,5545,26400,119,11921,35400,119,13001,7160,120,
740&	 26212,8760,120,14936,19413,120/
741C
742C
743C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
744C
745C	DATA OVOC6/3RLOS,3RERS,120,3RCOK,2RES,121,
746C&	 3RLIS,3RTIN,122,3RSTA,2RCK,122,
747C&	 3RPRI,3RNTO,122,
748C&	 3RSPH,3RERE,126,3RBAL,1RL,126,
749C&	 3RETC,3RHIN,130,131,
750C&	 3RWAL,2RLS,130,131,198,205,206,207,208,3RWAL,1RL,
751C&	 130,131,159,160,161,162,163,164,198,205,206,207,208,
752C&	 3RFLA,2RSK,132,3RPOO,1RL,133,3RSEW,3RAGE,133,
753C&	 3RTIN,0,134,3RSAF,3RFRO,134,3RSPI,3RCES,134,3RTAB,2RLE,135,
754C&	 3RPOS,1RT,136,166,167,3RPOS,2RTS,136,3RBUC,3RKET,137,
755C&	 3RCAK,1RE,138,139,140,141,3RICI,2RNG,139,140,141,
756C&	 3RROB,2ROT,142,3RROB,2RBY,142,
757C&	 3RC3P,1RO,142,3RR2D,1R2,142/
758C
759C
760	DATA OVOC6/19819,8739,120,5411,8760,121,
761&	 19579,32374,122,31201,5240,122,
762&	 26329,23215,122,
763&	 31048,8725,126,3252,19200,126,
764&	 8803,13174,130,131,
765&	 36852,19960,130,131,198,205,206,207,208,36852,19200,
766&	 130,131,159,160,161,162,163,164,198,205,206,207,208,
767&	 10081,30840,132,26215,19200,133,30623,1885,133,
768&	 32374,0,134,30446,10335,134,31049,5019,134,32042,19400,135,
769&	 26219,32000,136,166,167,26219,32760,136,4043,17820,137,
770&	 4851,8000,138,139,140,141,14529,22680,139,140,141,
771&	 29402,24800,142,29402,4200,142,
772&	 6136,24000,142,30084,51200,142/
773C
774C
775C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
776C
777C	DATA OVOC6A/3RPAN,2REL,159,160,161,162,163,164,213,
778C&	 3RPOL,1RE,166,167,3RTBA,1RR,168,3RT$B,2RAR,168,
779C&	 3RARR,2ROW,169,3RPOI,2RNT,169,3RBEA,1RM,171,
780C&	 3RDIA,1RL,177,3RSUN,3RDIA,177,1R1,0,178,
781C&	 3RONE,0,178,1R2,0,179,3RTWO,0,179,1R3,0,180,
782C&	 3RTHR,2REE,180,1R4,0,181,3RFOU,1RR,181,1R5,0,182,
783C&	 3RFIV,1RE,182,1R6,0,183,3RSIX,0,183,1R7,0,184,
784C&	 3RSEV,2REN,184,1R8,0,185,3REIG,2RHT,185,
785C&	 3RWAR,3RNIN,186,3RSLI,1RT,187,
786C&	 2RIT,0,192,3RTHA,1RT,192,3RTHI,1RS,192/
787C
788C
789	DATA OVOC6A/25654,8480,159,160,161,162,163,164,213,
790&	 26212,8000,166,167,32081,28800,168,33082,2320,168,
791&	 2338,24920,169,26209,23200,169,3401,20800,171,
792&	 6761,19200,177,31254,6761,177,49600,0,178,
793&	 24565,0,178,51200,0,179,32935,0,179,52800,0,180,
794&	 32338,8200,180,54400,0,181,10221,28800,181,56000,0,182,
795&	 9982,8000,182,57600,0,183,30784,0,183,59200,0,184,
796&	 30622,8560,184,60800,0,185,8367,13600,185,
797&	 36858,22774,186,30889,32000,187,
798&	 15200,0,192,32321,32000,192,32329,30400,192/
799C
800C
801C   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
802C
803C	DATA OVOC7/2RME,0,193,3RMYS,3RELF,193,3RCRE,3RTIN,193,
804C&	 3RALL,0,194,3REVE,3RRYT,194,
805C&	 3RTRE,3RASU,195,3RVAL,3RUAB,195,3RSAI,3RLOR,196,3RTEE,2RTH,197,
806C&	 3RGRU,1RE,199,3RHAN,1RD,200,3RHAN,2RDS,200,
807C&	 3RLUN,2RGS,201,3RAIR,0,201,3RAVI,3RATO,202,
808C&	 3RFLY,2RER,202,3RTRE,1RE,144,145,204,
809C&	 3RCLI,2RFF,146,147,3RLED,2RGE,146,147,3RPOR,3RTRA,149,
810C&	 3RSTA,2RCK,148,3RBIL,2RLS,148,
811C&	 3RVAU,2RLT,150,3RCUB,1RE,150,3RLET,3RTER,67,150,
812C&	 3RCUR,3RTAI,151,3RLIG,2RHT,151,3RNES,1RT,153,
813C&	 3REGG,0,154,155,3RBAU,3RBLE,156,3RCAN,3RARY,157,158,
814C&	 3RBIR,1RD,203,3RSON,3RGBI,203,
815C&	 3RGUA,2RRD,210,3RGUA,3RRDI,210,3RROS,1RE,211,
816C&	 3RSTR,3RUCT,212,3RCHA,3RNNE,214,
817C&	 3RKEE,3RPER,215,3RLAD,3RDER,216/
818C
819C
820	DATA OVOC7/21000,0,193,21819,8486,193,5525,32374,193,
821&	 2092,0,194,8885,29820,194,
822&	 32725,2381,195,35252,33642,195,30449,19818,196,32205,32320,197,
823&	 11941,8000,199,12854,6400,200,12854,7160,200,
824&	 20054,11960,201,1978,0,201,2489,2415,202,
825&	 10105,8720,202,32725,8000,144,145,204,
826&	 5289,9840,146,147,19404,11400,146,147,26218,32721,149,
827&	 31201,5240,148,3572,19960,148,
828&	 35261,20000,150,5642,8000,150,19420,32218,67,150,
829&	 5658,32049,151,19567,13600,151,22619,32000,153,
830&	 8287,0,154,155,3261,3685,156,4854,2345,157,158,
831&	 3578,6400,203,31014,11289,203,
832&	 12041,28960,210,12041,28969,210,29419,8000,211,
833&	 31218,33740,212,5121,22965,214,
834&	 17805,25818,215,19244,6618,216/
835C
836C
837	DATA OVOCND/-1/
838C SPARSE, PAGE 7
839C
840C SET UP FOR PARSING
841C
842	SPARSE=-1
843C						!ASSUME PARSE FAILS.
844	ADJ=0
845C						!CLEAR PARTS HOLDERS.
846	ACT=0
847	PREP=0
848	PPTR=0
849	O1=0
850	O2=0
851	P1=0
852	P2=0
853#ifdef debug
854	DFLAG=and(PRSFLG,4).NE.0
855#endif
856C
857	BUZLNT=20
858	PRPLNT=48
859	DIRLNT=75
860C SPARSE, PAGE 8
861C
862C NOW LOOP OVER INPUT BUFFER OF LEXICAL TOKENS.
863C
864	DO 1000 I=1,LLNT,2
865C						!TWO WORDS/TOKEN.
866	  LBUF1=LBUF(I)
867C						!GET CURRENT TOKEN.
868	  LBUF2=LBUF(I+1)
869#ifdef debug
870	  if (dflag) write(0,*) 'lbuf1=',lbuf1,' lbuf2=',lbuf2
871#endif
872	  IF(LBUF1.EQ.0) GO TO 1500
873C						!END OF BUFFER?
874C
875C CHECK FOR BUZZ WORD
876C
877	  DO 50 J=1,BUZLNT,2
878	    IF((LBUF1.EQ.BVOC(J)).AND.(LBUF2.EQ.BVOC(J+1)))
879&		GO TO 1000
88050	  CONTINUE
881C
882C CHECK FOR ACTION OR DIRECTION
883C
884	  IF(ACT.NE.0) GO TO 75
885C						!GOT ACTION ALREADY?
886	  J=1
887C						!CHECK FOR ACTION.
888125	  IF((LBUF1.EQ.VVOC(J)).AND.(LBUF2.EQ.VVOC(J+1)))
889&		GO TO 3000
890150	  J=J+2
891C						!ADV TO NEXT SYNONYM.
892	  IF(.NOT.OTEST(VVOC(J))) GO TO 125
893C						!ANOTHER VERB?
894	  J=J+VVOC(J)+1
895C						!NO, ADVANCE OVER SYNTAX.
896	  IF(VVOC(J).NE.-1) GO TO 125
897C						!TABLE DONE?
898C
89975	  IF((ACT.NE.0).AND.((VVOC(ACT).NE.R50WAL).OR.
900&		(PREP.NE.0))) GO TO 200
901	  DO 100 J=1,DIRLNT,3
902C						!THEN CHK FOR DIR.
903	    IF((LBUF1.EQ.DVOC(J)).AND.(LBUF2.EQ.DVOC(J+1)))
904&		GO TO 2000
905100	  CONTINUE
906C
907C NOT AN ACTION, CHECK FOR PREPOSITION, ADJECTIVE, OR OBJECT.
908C
909200	  DO 250 J=1,PRPLNT,3
910C						!LOOK FOR PREPOSITION.
911	    IF((LBUF1.EQ.PVOC(J)).AND.(LBUF2.EQ.PVOC(J+1)))
912&		GO TO 4000
913250	  CONTINUE
914C
915	  J=1
916C						!LOOK FOR ADJECTIVE.
917300	  IF((LBUF1.EQ.AVOC(J)).AND.(LBUF2.EQ.AVOC(J+1)))
918&		GO TO 5000
919	  J=J+1
920325	  J=J+1
921C						!ADVANCE TO NEXT ENTRY.
922	  IF(OTEST(AVOC(J))) GO TO 325
923C						!A RADIX 50 CONSTANT?
924	  IF(AVOC(J).NE.-1) GO TO 300
925C						!POSSIBLY, END TABLE?
926C
927	  J=1
928C						!LOOK FOR OBJECT.
929450	  IF((LBUF1.EQ.OVOC(J)).AND.(LBUF2.EQ.OVOC(J+1)))
930&		GO TO 600
931	  J=J+1
932500	  J=J+1
933	  IF(OTEST(OVOC(J))) GO TO 500
934	  IF(OVOC(J).NE.-1) GO TO 450
935C
936C NOT RECOGNIZABLE
937C
938	  IF(VBFLAG) CALL RSPEAK(601)
939	  RETURN
940C SPARSE, PAGE 9
941C
942C OBJECT PROCESSING (CONTINUATION OF DO LOOP ON PREV PAGE)
943C
944600	  OBJ=GETOBJ(J,ADJ,0)
945C						!IDENTIFY OBJECT.
946#ifdef debug
947	  IF(DFLAG) PRINT 60,J,OBJ
948#ifdef NOCC
94960	  FORMAT('SPARSE- OBJ AT ',I6,'  OBJ= ',I6)
950#else NOCC
95160	  FORMAT(' SPARSE- OBJ AT ',I6,'  OBJ= ',I6)
952#endif NOCC
953#endif
954	  IF(OBJ.LE.0) GO TO 6000
955C						!IF LE, COULDNT.
956	  IF(OBJ.NE.ITOBJ) GO TO 650
957C						!"IT"?
958	  OBJ=GETOBJ(0,0,LASTIT)
959C						!FIND LAST.
960	  IF(OBJ.LE.0) GO TO 6000
961C						!IF LE, COULDNT.
962C
963650	  IF(PREP.EQ.9) GO TO 8000
964C						!"OF" OBJ?
965	  IF(PPTR.EQ.2) GO TO 7000
966C						!TOO MANY OBJS?
967	  PPTR=PPTR+1
968	  OBJVEC(PPTR)=OBJ
969C						!STUFF INTO VECTOR.
970	  PRPVEC(PPTR)=PREP
971700	  PREP=0
972	  ADJ=0
973C Go to end of do loop (moved "1000 CONTINUE" to end of module, to avoid
974C complaints about people jumping back into the doloop.)
975	  GOTO 1000
976C SPARSE, PAGE 10
977C
978C SPECIAL PARSE PROCESSORS
979C
980C 2000--	DIRECTION
981C
9822000	PRSA=WALKW
983	PRSO=DVOC(J+2)
984	SPARSE=1
985#ifdef debug
986	IF(DFLAG) PRINT 10,J
987#ifdef NOCC
98810	FORMAT('SPARSE- DIR AT ',I6)
989#else NOCC
99010	FORMAT(' SPARSE- DIR AT ',I6)
991#endif NOCC
992#endif debug
993	RETURN
994C
995C 3000--	ACTION
996C
9973000	ACT=J
998	OACT=0
999#ifdef debug
1000	IF(DFLAG) PRINT 20,J
1001#ifdef NOCC
100220	FORMAT('SPARSE- ACT AT ',I6)
1003#else NOCC
100420	FORMAT(' SPARSE- ACT AT ',I6)
1005#endif NOCC
1006	if(dflag) write(0,*) "count=",vvoc(j+2)," vnr=",vvoc(j+3)
1007#endif
1008	GO TO 1000
1009C
1010C 4000--	PREPOSITION
1011C
10124000	IF(PREP.NE.0) GO TO 4500
1013	PREP=PVOC(J+2)
1014	ADJ=0
1015#ifdef debug
1016	IF(DFLAG) PRINT 30,J
1017#ifdef NOCC
101830	FORMAT('SPARSE- PREP AT ',I6)
1019#else NOCC
102030	FORMAT(' SPARSE- PREP AT ',I6)
1021#endif NOCC
1022#endif debug
1023	GO TO 1000
1024C
10254500	IF(VBFLAG) CALL RSPEAK(616)
1026	RETURN
1027C
1028C 5000--	ADJECTIVE
1029C
10305000	ADJ=J
1031	J=(and(ONAME,OFLAG))
1032#ifdef debug
1033	IF(DFLAG) PRINT 40,ADJ,J
1034#ifdef NOCC
103540	FORMAT('SPARSE- ADJ AT ',I6,' ORPHAN= ',I6)
1036#else NOCC
103740	FORMAT(' SPARSE- ADJ AT ',I6,' ORPHAN= ',I6)
1038#endif NOCC
1039#endif debug
1040	IF((J.NE.0).AND.(I.GE.LLNT)) GO TO 600
1041	GO TO 1000
1042C
1043C 6000--	UNIDENTIFIABLE OBJECT (INDEX INTO OVOC IS J)
1044C
10456000	IF(OBJ.LT.0) GO TO 6100
1046	J=579
1047	IF(LIT(HERE)) J=618
1048	IF(VBFLAG) CALL RSPEAK(J)
1049	RETURN
1050C
10516100	IF(OBJ.NE.-10000) GO TO 6200
1052	IF(VBFLAG) CALL RSPSUB(620,ODESC2(AVEHIC(WINNER)))
1053	RETURN
1054C
10556200	IF(VBFLAG) CALL RSPEAK(619)
1056	IF(ACT.EQ.0) ACT=(and(OFLAG,OACT))
1057	CALL ORPHAN(-1,ACT,O1,PREP,J)
1058	RETURN
1059C
1060C 7000--	TOO MANY OBJECTS.
1061C
10627000	IF(VBFLAG) CALL RSPEAK(617)
1063	RETURN
1064C
1065C 8000--	RANDOMNESS FOR "OF" WORDS
1066C
10678000	IF(OBJVEC(PPTR).EQ.OBJ) GO TO 700
1068	IF(VBFLAG) CALL RSPEAK(601)
1069	RETURN
1070C
1071C End of do-loop.
1072C
10731000	CONTINUE
1074C						!AT LAST.
1075C
1076C NOW SOME MISC CLEANUP -- We fell out of the do-loop
1077C
10781500	IF(ACT.EQ.0) ACT=(and(OFLAG,OACT))
1079	IF(ACT.EQ.0) GO TO 9000
1080C						!IF STILL NONE, PUNT.
1081	IF(ADJ.NE.0) GO TO 10000
1082C						!IF DANGLING ADJ, PUNT.
1083C
1084	IF((OFLAG.NE.0).AND.(OPREP.NE.0).AND.(PREP.EQ.0).AND.
1085&		(O1.NE.0).AND.(O2.EQ.0).AND.(ACT.EQ.OACT))
1086&		GO TO 11000
1087C
1088	SPARSE=0
1089C						!PARSE SUCCEEDS.
1090	IF(PREP.EQ.0) GO TO 1750
1091C						!IF DANGLING PREP,
1092	IF((PPTR.EQ.0).OR.(PRPVEC(PPTR).NE.0))
1093&		GO TO 12000
1094	PRPVEC(PPTR)=PREP
1095C						!CVT TO 'PICK UP FROB'.
1096C
1097C 1750--	RETURN A RESULT
1098C
10991750	CONTINUE
1100C						!WIN.
1101#ifdef debug
1102	IF(DFLAG) PRINT 70,ACT,O1,O2,P1,P2
1103#ifdef NOCC
110470	FORMAT('SPARSE RESULTS- ',5I7)
1105#else NOCC
110670	FORMAT(' SPARSE RESULTS- ',5I7)
1107#endif NOCC
1108	if(dflag) write(0,*) "sparse=",sparse
1109#endif
1110	RETURN
1111C						!LOSE.
1112C
1113C 9000--	NO ACTION, PUNT
1114C
11159000	IF(O1.EQ.0) GO TO 10000
1116C						!ANY DIRECT OBJECT?
1117	IF(VBFLAG) CALL RSPSUB(621,ODESC2(O1))
1118C						!WHAT TO DO?
1119	CALL ORPHAN(-1,0,O1,0,0)
1120	RETURN
1121C
1122C 10000--	TOTAL CHOMP
1123C
112410000	IF(VBFLAG) CALL RSPEAK(622)
1125C						!HUH?
1126	RETURN
1127C
1128C 11000--	ORPHAN PREPOSITION.  CONDITIONS ARE
1129C		O1.NE.0, O2=0, PREP=0, ACT=OACT
1130C
113111000	IF(OSLOT.NE.0) GO TO 11500
1132C						!ORPHAN OBJECT?
1133	P1=OPREP
1134C						!NO, JUST USE PREP.
1135	GO TO 1750
1136C
113711500	O2=O1
1138C						!YES, USE AS DIRECT OBJ.
1139	P2=OPREP
1140	O1=OSLOT
1141	P1=0
1142	GO TO 1750
1143C
1144C 12000--	TRUE HANGING PREPOSITION.
1145C		ORPHAN FOR LATER.
1146C
114712000	CALL ORPHAN(-1,ACT,0,PREP,0)
1148C						!ORPHAN PREP.
1149	GO TO 1750
1150C
1151	END
1152