date and time created 93/06/01 16:44:41 by bostic
[unix-history] / usr / src / contrib / dungeon / np1.F
CommitLineData
8b22683c
KB
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