Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
zebra.f
Go to the documentation of this file.
1*-------------------------------------------------------------------------------
2*
3* This file contains the zebra's package subset needed to build h2root.
4* It cannot be used by any zebra application because many zebra functionalities
5* are missing.
6*
7*-------------------------------------------------------------------------------
8
9 SUBROUTINE mzebra (LIST)
10 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
11 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
12 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
13 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
14 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
15 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
16 +, nqhol0,nqholl(95)
17 CHARACTER CQALLC*96
18 COMMON /zbcdch/ cqallc
19 CHARACTER*1 CQLETT(96), CQNUM(10)
20 equivalence(cqlett(1),cqallc(1:1))
21 equivalence(cqnum(1), cqallc(27:27))
22 parameter(nqtcet=256)
23 COMMON /zceta/ iqceta(256),iqtcet(256)
24 COMMON /zheadp/iqhead(20),iqdate,iqtime,iqpage,nqpage(4)
25 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
26 COMMON /zmach/ nqbitw,nqbitc,nqchaw
27 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
28 COMMON /znatur/qpi2,qpi,qpiby2,qpbyhr
29 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
30 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
31 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
32 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
33 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
34 COMMON /quest/ iquest(100)
35 COMMON /zebq/ iqfenc(4), lq(100)
36 dimension iq(92), q(92)
37 equivalence(iq(1),lq(9)), (q(1),iq(1))
38 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
39 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
40 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
41 +, nqtrac,mqtrac(48)
42 equivalence(kqsp,nqoffs(1))
43 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
44 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
45 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
46 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
47 dimension iqcur(16)
48 equivalence (iqcur(1),lqstor)
49 COMMON /mzcl/ nqln,nqls,nqnio,nqid,nqnl,nqns,nqnd,nqioch(16)
50 +, lqsup,nqbia, nqiosv(3)
51 COMMON /jzuc/ lqjz,lqup,lqdw,lqsv,lqan, jqlev,jqflag(10)
52 common/rzcount/rzxio(2)
53 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
54 +, izrecl,imodec,imodeh
55 parameter(maxfiles=128, maxstrip=21)
56 CHARACTER*128 RZNAMES(MAXFILES),RZSFILE(MAXSTRIP)
57 common/rzcstrc/rznames,rzsfile
58 common/rzcstri/islast,istrip(maxfiles),nstrip(maxfiles),
59 + nrstrip(maxfiles)
60 CHARACTER*4 CVERSN
61 dimension list(9), inkeys(3)
62 DATA inkeys / 4hebra, 4hinit, 4hdone /
63 12 nqstor = -1
64 jqstor = -99
65 CALL vzeroi (nqofft,66)
66 CALL mzinco (list)
67 nqdcut = 201
68 nqwcut = 500
69 CALL ucopyi (inkeys,mqkeys,3)
70 CALL vzeroi (nqln, 28)
71 CALL vzeroi (lqjz, 16)
72 CALL vzeroi (nstrip, maxfiles)
73 jqlev = -1
74 rzxio(1) = 0.
75 rzxio(2) = 0.
76 imodeh = 0
77 CALL vfill (iqfenc,4,iqnil)
78 nqinit = -1
79 END
80
81*-------------------------------------------------------------------------------
82
83 SUBROUTINE mzinco (LIST)
84 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
85 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
86 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
87 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
88 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
89 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
90 +, nqhol0,nqholl(95)
91 CHARACTER CQALLC*96
92 COMMON /zbcdch/ cqallc
93 CHARACTER*1 CQLETT(96), CQNUM(10)
94 equivalence(cqlett(1),cqallc(1:1))
95 equivalence(cqnum(1), cqallc(27:27))
96 parameter(nqtcet=256)
97 COMMON /zceta/ iqceta(256),iqtcet(256)
98 COMMON /zheadp/iqhead(20),iqdate,iqtime,iqpage,nqpage(4)
99 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
100 COMMON /zmach/ nqbitw,nqbitc,nqchaw
101 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
102 COMMON /znatur/qpi2,qpi,qpiby2,qpbyhr
103 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
104 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
105 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
106 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
107 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
108 COMMON /quest/ iquest(100)
109 dimension list(9)
110 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
111 CALL vzeroi (iquest,100)
112 CALL vzeroi (iqvid,18)
113 CALL vzeroi (nqphas,15)
114 nqbitw = iqbitw
115 nqbitc = iqbitc
116 nqchaw = iqchaw
117 nqlnor = 58
118 nqlmax = 58
119 nqlpth = 0
120 nqrmax = 132
121 iqlpct = iqblan
122 iqnil = 16744448
123 cqallc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*/()$= ,.'
124 cqallc(65:90) = 'abcdefghijklmnopqrstuvwxyz'
125 cqallc(48:64) = '#''!:"_]&@?[>< ^;%'
126 cqallc(91:96) = '{|}~`?'
127 cqallc(61:61) = char(92)
128 CALL uctoh1 (cqallc, iqlett, 96)
129 CALL uctoh1 (' 1234567890', iqnum2, 11)
130 CALL izhnum (iqlett,nqholl,95)
131 nqhol0 = nqholl(45)
132 CALL vfill (iqceta,nqtcet,96)
133 DO 24 jc=95,1,-1
134 jh = nqholl(jc)
135 24 iqceta(jh+1) = jc
136 DO 26 jl=1,nqtcet
137 j = iqceta(jl)
138 IF (j.GE.64) THEN
139 IF (j.GE.94) THEN
140 j = 57
141 ELSEIF (j.EQ.93) THEN
142 j = 42
143 ELSEIF (j.EQ.92) THEN
144 j = 40
145 ELSEIF (j.EQ.91) THEN
146 j = 41
147 ELSEIF (j.EQ.64) THEN
148 j = 51
149 ELSE
150 j = j - 64
151 ENDIF
152 ENDIF
153 26 iqtcet(jl) = j
154 qpi = 4.*atan(1.)
155 qpi2 = 2.*qpi
156 qpiby2 = qpi/2.
157 qpbyhr = .0002998
158 iqread = 2
159 iqprnt = 3
160 iqpnch = 4
161 iqlog = iqprnt
162 iqttin = 5
163 iqtype = 6
164 itype = iqtype
165 IF (itype.EQ.0) itype = iqlog
166 nlist = list(1)
167 IF (nlist) 32, 38, 33
168 32 nlist = -nlist
169 IF (jbit(nlist,2).NE.0) nqlogd = -2
170 IF (jbit(nlist,1).NE.0) iqlog = itype
171 iqprnt = iqlog
172 GO TO 38
173 33 nqlogd = list(2)
174 IF (nlist.EQ.1) GO TO 38
175 IF (list(3).NE.0) THEN
176 IF (list(3).LT.0) THEN
177 iqlog = itype
178 ELSE
179 iqlog = list(3)
180 ENDIF
181 ENDIF
182 iqprnt = iqlog
183 IF (nlist.EQ.2) GO TO 38
184 IF (list(4).NE.0) THEN
185 IF (list(4).LT.0) THEN
186 iqprnt = itype
187 ELSE
188 iqprnt = list(4)
189 ENDIF
190 ENDIF
191 38 iqpr2 = iqprnt
192 nqlogm = nqlogd
193 iqdlun = iqprnt
194 iqflun = iqprnt
195 iqhlun = iqprnt
196 nqused = 0
197 CALL vblank (iqhead,20)
198 CALL vzeroi (iqdate,7)
199******CALL DATIME (IQDATE,IQTIME)
200 END
201
202*-------------------------------------------------------------------------------
203
204 SUBROUTINE mzpaw (NWORDS,CHOPT)
205 COMMON /pawc/ nwpaw,ixpawc,ihbook,ixhigz,ixku,ifence(5)
206 +, lmain, ipaw(4000000-11)
207 CHARACTER *(*) CHOPT
208 CALL uoptc (chopt,'M',ipaw)
209 IF (ipaw(1).NE.0) CALL mzebra(-1)
210 nw = max(nwords,10000)
211 CALL mzstor (ixpawc,'/PAWC/',' ',ifence,lmain,ipaw(1),ipaw(1),
212 + ipaw(5000),ipaw(nw-11))
213 nwpaw = nw
214 ihbook = 0
215 ixhigz = 0
216 ixku = 0
217 END
218
219*-------------------------------------------------------------------------------
220
221 SUBROUTINE mzstor (IXSTOR,CHNAME,CHOPT
222 +, IFENCE,LV,LLR,LLD,LIMIT,LAST)
223 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
224 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
225 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
226 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
227 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
228 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
229 +, nqhol0,nqholl(95)
230 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
231 COMMON /zmach/ nqbitw,nqbitc,nqchaw
232 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
233 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
234 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
235 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
236 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
237 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
238 COMMON /quest/ iquest(100)
239 COMMON /zebq/ iqfenc(4), lq(100)
240 dimension iq(92), q(92)
241 equivalence(iq(1),lq(9)), (q(1),iq(1))
242 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
243 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
244 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
245 +, nqtrac,mqtrac(48)
246 equivalence(kqsp,nqoffs(1))
247 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
248 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
249 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
250 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
251 dimension iqcur(16)
252 equivalence(iqcur(1),lqstor)
253 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
254 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
255 +, lqsyss(10), lqsysr(10), iqtdum(22)
256 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
257 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
258 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
259 +, nqdpsh(20),nqdred(20),nqdsiz(20)
260 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
261 dimension iqtabv(16)
262 equivalence(iqtabv(1),lqpsto)
263 parameter(nqwktt=2560)
264 COMMON /mzcwk/ iqwktb(nqwktt), iqwkfz(nqwktt)
265*
266 dimension ixstor(9),ifence(9)
267 dimension lv(9),llr(9),lld(9),limit(9),last(9)
268 dimension mmsysl(5), namela(2), namesy(2)
269 CHARACTER *(*) CHNAME,CHOPT
270 dimension namesr(2)
271 DATA namesr / 4hmzst, 4hor /
272 DATA mmsysl / 4hsysl,0,0,101,2/
273 DATA namela / 4hsyst, 4hem /
274 DATA namesy / 4hsyst, 4hem /
275 DATA namwsp / 4hqwsp /
276 DATA namedv / 4hqdiv /
277 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
278 IF (nqstor.NE.-1) GO TO 13
279 CALL vzeroi (nqofft,32)
280 lqatab = locf(iqtabv(1)) - 1
281 lqasto = locf(lq(1)) - 1
282 lqbtis = lqatab - lqasto
283 lqwktb = locf(iqwktb(1)) - lqasto
284 lqwkfz = locf(iqwkfz(1)) - lqasto
285 nqtsys = locf(iqdn2(20)) - lqatab
286 nqwktb = nqwktt
287 kqft = 342
288 IF (nqlogd.GE.-1)
289 +WRITE (iqlog,9011) lqatab,lqatab
290 9011 FORMAT (1x/' MZSTOR. ZEBRA table base TAB(0) in /MZCC/ at adr'
291 f,i12,1x,z11,' HEX')
292 13 CONTINUE
293 mqtrac(nqtrac+1) = namesr(1)
294 mqtrac(nqtrac+2) = namesr(2)
295 nqtrac = nqtrac + 2
296 CALL uoptc (chopt,'Q:',iquest)
297 logq = iquest(1)
298 iflspl = iquest(2)
299 jqstor = nqstor + 1
300 CALL vzeroi (kqt,27)
301 lqstor = locf(lv(1)) - 1
302 kqs = lqstor - lqasto
303 nfend = (lqstor+1) - locf(ifence(1))
304 nqfend = nfend
305 nqsnam(1) = iqblan
306 nqsnam(2) = iqblan
307 n = min(8, len(chname))
308 IF (n.NE.0) CALL uctoh (chname,nqsnam,4,n)
309 nqlogl = nqlogd
310 IF (logq.NE.0) nqlogl=-2
311 nqstru = locf(llr(1)) - (lqstor+1)
312 nqref = locf(lld(1)) - (lqstor+1)
313 nqlink = nqref
314 lq2end = locf(limit(1)) - lqstor
315 ndatat = locf(last(1)) - lqstor
316 ndata = ndatat
317 loct = lqatab
318 IF (jqstor.NE.0) THEN
319 ndata = ndata - nqtsys
320 nqsnam(6) = ndata
321 loct = lqstor + ndata
322 kqt = loct - lqatab
323 ndata = ndata - 4
324 CALL vfill (lq(kqs+ndata),10,iqnil)
325 ENDIF
326 IF (nqlogl.GE.-1)
327 +WRITE (iqlog,9021) jqstor,nqsnam(1),nqsnam(2)
328 +, lqstor,loct,lqstor,loct,kqs,kqt,kqs,kqt
329 +, nqstru,nqref,lq2end,ndatat,nfend
330 9021 FORMAT (1x/' MZSTOR. Initialize Store',i3,' in ',2a4,
331 f/10x,'with Store/Table at absolute adrs',2i12
332 f/40x,'HEX',2(1x,z11)/40x,'HEX',2(1x,z11)
333 f/30x,'relative adrs',2i12
334 f/10x,'with',i6,' Str. in',i6,' Links in',i7,' Low words in'
335 f,i8,' words.'
336 f/10x,'This store has a fence of',i5,' words.')
337 nsys = 400
338 nqminr = 40
339 nwf = 2000
340 IF (jqstor.EQ.0) nqminr=164
341 IF (nqstru.LT.0) GO TO 91
342 IF (nqref .LT.nqstru) GO TO 91
343 IF (ndatat.LT.nqlink+nwf) GO TO 91
344 IF (lq2end.LT.nqlink+nqminr) GO TO 91
345 IF (nfend .LT.1) GO TO 92
346 IF (nfend .GE.1001) GO TO 92
347 IF (iflspl.EQ.1) THEN
348 IF (jqstor.EQ.0) GO TO 96
349 GO TO 39
350 ENDIF
351 IF (jqstor.EQ.0) GO TO 41
352 ksa = kqs - nqfend
353 kse = kqs + ndatat
354 DO 36 jsto=1,jqstor
355 jt = nqofft(jsto)
356 js = nqoffs(jsto)
357 jsa = js - iqtabv(jt+2)
358 jse = js + lqsta(jt+21)
359 jta = jt + lqbtis
360 jte = jta + nqtsys
361 IF (kse.GT.jta .AND. ksa.LT.jte) GO TO 94
362 IF (kse.GT.jsa .AND. ksa.LT.jse) GO TO 95
363 36 CONTINUE
364 39 IF (jqstor.GE.16) GO TO 93
365 41 nqofft(jqstor+1) = kqt
366 nqoffs(jqstor+1) = kqs
367 nqallo(jqstor+1) = iflspl
368 CALL vzeroi (iqtabv(kqt+1),nqtsys)
369 CALL vblank (iqdn1(kqt+1), 40)
370 nqstor = nqstor + 1
371 lq(kqs+ndata-1) = iqnil
372 lq(kqs+ndata) = iqnil
373 ndata = ndata - 2
374 lqsta(kqt+21) = ndata
375 jqdvll = 2
376 jqdvsy = 20
377 lqsta(kqt+20) = ndata
378 lqend(kqt+20) = ndata
379 nqdmax(kqt+20) = ndata
380 iqmode(kqt+20) = 1
381 iqkind(kqt+20) = ishft(1, 23)
382 iqrno(kqt+20) = 9437183
383 iqdn1(kqt+20) = namesy(1)
384 iqdn2(kqt+20) = namesy(2)
385 lqsta(kqt+2) = ndata - nsys
386 lqend(kqt+2) = lqsta(kqt+2)
387 nqdmax(kqt+2) = ndata
388 iqmode(kqt+2) = 1
389 iqkind(kqt+2) = msbit1(2, 21)
390 iqrcu(kqt+2) = 3
391 iqrto(kqt+2) = ishft(3,20)
392 iqrno(kqt+2) = 9437183
393 iqdn1(kqt+2) = namedv
394 iqdn2(kqt+2) = iqnum(3)
395 lqsta(kqt+1) = nqlink + 1
396 lqend(kqt+1) = lqsta(kqt+1)
397 nqdmax(kqt+1) = ndata
398 iqkind(kqt+1) = msbit1(1, 21)
399 iqrcu(kqt+1) = 3
400 iqrto(kqt+1) = ishft(3,20)
401 iqrno(kqt+1) = 9437183
402 iqdn1(kqt+1) = namedv
403 iqdn2(kqt+1) = iqnum(2)
404 CALL ucopyi (iqcur,iqtabv(kqt+1),16)
405 CALL vfill (ifence,nfend,iqnil)
406 IF (nqlink.NE.0) CALL vzeroi (lv,nqlink)
407 IF (jqstor.EQ.0) THEN
408 IF (ixstor(1).EQ.0) GO TO 71
409 ENDIF
410 idn = ishft(jqstor,26)
411 ixstor(1) = idn
412 71 jqdivi = jqdvsy
413 CALL mzlift (-7,lsys,0,2,mmsysl,0)
414 lqsyss(kqt+1) = lsys
415 nall = locf(iqtdum(1)) - locf(lqsyss(1))
416 nstr = locf(lqsysr(1)) - locf(lqsyss(1))
417 locar = locf(lqsyss(kqt+1)) - lqstor
418 locare = locar + nall
419 iq(kqs+lsys+1) = 11
420 iq(kqs+lsys+2) = 1
421 iq(kqs+lsys+3) = 1 + nqlink
422 iq(kqs+lsys+4) = nqstru
423 iq(kqs+lsys+5) = namwsp
424 iq(kqs+lsys+6) = iqblan
425 iq(kqs+lsys+7) = locar
426 iq(kqs+lsys+8) = locare
427 iq(kqs+lsys+9) = nstr
428 iq(kqs+lsys+10)= namela(1)
429 iq(kqs+lsys+11)= namela(2)
430 iqtabv(kqt+13) = min(1, locar)
431 iqtabv(kqt+14) = max(lqsta(kqt+21), locare)
432 999 nqtrac = nqtrac - 2
433 RETURN
434 95 nqcase = 1
435 94 nqcase = nqcase - 2
436 nqfata = 3
437 iquest(20) = jsto - 1
438 iquest(21) = nqpnam(jt+1)
439 iquest(22) = nqpnam(jt+2)
440 96 nqcase = nqcase + 3
441 93 nqcase = nqcase + 1
442 92 nqcase = nqcase + 1
443 91 nqcase = nqcase + 1
444 nqfata = nqfata + 9
445 iquest(11) = nqsnam(1)
446 iquest(12) = nqsnam(2)
447 iquest(13) = nfend
448 iquest(14) = nqstru
449 iquest(15) = nqlink
450 iquest(16) = lq2end
451 iquest(17) = ndatat
452 iquest(18) = nqminr
453 iquest(19) = nwf
454 iquest(9) = namesr(1)
455 iquest(10)= namesr(2)
456 END
457
458*-------------------------------------------------------------------------------
459
460 SUBROUTINE rzopen(LUNIN,CHDIR,CFNAME,CHOPTT,LRECL,ISTAT)
461 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
462 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
463 common/rzckey/ihead(3),key(100),key2(100),keydum(50)
464 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
465 +, izrecl,imodec,imodeh
466 COMMON /quest/ iquest(100)
467 COMMON /rzbuff/ itest(8704)
468 parameter(maxfiles=128, maxstrip=21)
469 CHARACTER*128 RZNAMES(MAXFILES),RZSFILE(MAXSTRIP)
470 common/rzcstrc/rznames,rzsfile
471 common/rzcstri/islast,istrip(maxfiles),nstrip(maxfiles),
472 + nrstrip(maxfiles)
473 integer cfstat,statf,info(12)
474 CHARACTER*(*) CFNAME,CHDIR,CHOPTT
475 CHARACTER*9 SPACES
476 CHARACTER*8 STAT
477 CHARACTER*36 CHOPT
478 CHARACTER*255 CHFILE
479 LOGICAL IEXIST
480 CHARACTER*4 CHOPE
481 parameter(nword = 8704)
482 parameter(ibytes=4)
483 chopt=choptt
484 CALL cltou(chopt)
485 iopt1=index(chopt,'1')
486 ioptc=index(chopt,'C')
487 ioptl=index(chopt,'L')
488 ioptn=index(chopt,'N')
489 iopts=index(chopt,'S')
490 ioptp=index(chopt,'P')
491 ioptu=index(chopt,'U')
492 ioptv=index(chopt,'V')
493 ioptw=index(chopt,'W')
494 ioptx=index(chopt,'X')
495 iopty=index(chopt,'Y')
496 lunit=lunin
497 iquest(10) = 0
498 iquest(11) = 0
499 iquest(12) = 0
500 imodec = ioptc
501 imodex = ioptx
502 lreci = lrecl
503 lrecl2 = 0
504 imodeh = 0
505 chfile=cfname
506 IF(ioptp.EQ.0)CALL cutol(chfile)
507 ipass=0
508 10 CONTINUE
509 IF(ioptn.NE.0)THEN
510 stat='UNKNOWN'
511 IF(lreci.LE.0) THEN
512 WRITE(iqprnt,10000) lreci
51310000 FORMAT(' RZOPEN. - invalid record length: ',i6)
514 istat = 1
515 GOTO 70
516 ELSEIF(lreci.GE.8191) THEN
517 WRITE(iqprnt,10100) lreci
51810100 FORMAT(' RZOPEN. record length:',i6,
519 + ' > maximum safe value (8191 words).')
520 IF(lreci.GT.8192) WRITE(iqprnt,10200)
52110200 FORMAT(' RZOPEN. Automatic record length determination will not',
522 + ' work with this file.')
523 WRITE(iqprnt,10300)
52410300 FORMAT(' RZOPEN. You may have problems transferring your',
525 + ' file to other systems ',/,
526 + ' or writing it to tape.')
527 ENDIF
528 ELSE
529 stat='OLD'
530 lenf = lenocc(chfile)
531 IF(ioptc.EQ.0) THEN
532 INQUIRE(file=chfile,exist=iexist)
533 istatf = 0
534 ELSE
535 iexist = cfstat(chfile(1:lenf),info).EQ.0
536 istatf = 1
537 ENDIF
538 IF(.NOT.iexist) THEN
539 WRITE(iqprnt,*) 'RZOPEN. Error - input file ',
540 + chfile(1:lenf),' does not exist'
541 istat = 2
542 GOTO 70
543 ENDIF
544 IF(lrecl.EQ.0) THEN
545 icount = nword
546 IF(ioptc.EQ.0) THEN
547 ENDIF
548 20 nread = icount
549 IF(ioptc.EQ.0) THEN
550 OPEN(lunit,file=chfile,form='UNFORMATTED',status='OLD',
551 + recl=ibytes*nread,access='DIRECT',iostat=istat)
552 IF(istat.NE.0)GOTO 60
553 READ(lunit,rec=1,iostat=ios) (itest(jw),jw=1,nread)
554 IF(ios.NE.0) THEN
555 CLOSE(lunit)
556 icount = icount * .75
557 GOTO 20
558 ENDIF
559 ELSE
560 CALL cfopen(lunptr,0,nread,'r',0,chfile,ios)
561 IF (ios .NE. 0) THEN
562 istat = -1
563 GOTO 70
564 ENDIF
565 nwtak = nread
566 CALL cfget(lunptr,0,nread,nwtak,itest,ios)
567 IF(ios.NE.0) THEN
568 CALL cfclos(lunptr,0)
569 icount = icount * .75
570 GOTO 20
571 ENDIF
572 ENDIF
573 IF(ioptx.NE.0) CALL vxinvb(itest(1),nread)
574 DO 30 j=1, nword
575 IF(itest(j+25).GT.0.AND.itest(j+25).LE.j) THEN
576 IF((j+itest(j+25)).GT.8703) GOTO 30
577 lrc = itest(j+itest(j+25)+1)
578 IF(lrc.EQ.j) THEN
579 le = itest(j+30)
580 ld = itest(j+24)
581 nrd = itest(j+ld)
582 IF(nrd*lrc.NE.le) GOTO 30
583 lrecl = j
584 IF(ioptc.EQ.0) THEN
585 CLOSE(lunit)
586 ELSE
587 CALL cfclos(lunptr,0)
588 ENDIF
589 GOTO 40
590 ENDIF
591 ENDIF
592 30 CONTINUE
593 IF(ioptc.EQ.0) THEN
594 CLOSE(lunit)
595 ELSE
596 CALL cfclos(lunptr,0)
597 ENDIF
598 IF(ioptx.EQ.0.AND.ipass.EQ.0) THEN
599 WRITE(iqprnt,10400)
60010400 FORMAT(' RZOPEN. Cannot determine record length - ',
601 + ' EXCHANGE mode is used.')
602 ioptx = 1
603 imodex = 1
604 ipass = 1
605 GOTO 10
606 ENDIF
607 WRITE(iqprnt,*) ' RZOPEN. Error in the input file'
608 istat = 3
609 GOTO 70
610 ENDIF
611 ENDIF
612 40 CONTINUE
613 IF(ioptc.EQ.0) THEN
614 nbytes = ibytes
615 OPEN(unit=lunit,file=chfile,form='UNFORMATTED',
616 + recl=nbytes*lrecl,access='DIRECT',status=stat,iostat=istat)
617 ELSE
618 chope = 'r'
619 IF(ioptu.NE.0.OR.iopt1.NE.0) chope = 'r+'
620 IF(ioptn.NE.0) chope = 'w+'
621 jrecl = lrecl
622 CALL cfopen(lunptr,0,jrecl,chope,0,chfile,istat)
623 lunit = 1000 + lunptr
624 ENDIF
625 IF(istat.NE.0)GOTO 60
626 IF(iopty.NE.0)GOTO 50
627 IF(ioptn.EQ.0.AND.ipass.EQ.0.AND.istat.EQ.0)THEN
628 imodex=ioptx
629 izrecl=lrecl
630 CALL rziodo(lunit,50,2,itest,1)
631 CALL vxinvb(itest(9),1)
632 IF(jbit(itest(9),12).NE.0)THEN
633 imodex=1
634 CALL rziodo(lunit,50,2,itest,1)
635 ELSE
636 CALL vxinvb(itest(9),1)
637 ENDIF
638 lb=itest(25)
639 IF(lb.GT.8187) THEN
640 WRITE(iqprnt,10500) chfile(1:lenocc(chfile))
64110500 FORMAT(' RZOPEN: cannot determine record length.',
642 + ' File ',a,' probably not in RZ format')
643 lrecp=-1
644 istat=2
645 IF(ioptc.EQ.0) THEN
646 CLOSE(lunit)
647 ELSE
648 CALL cfclos(lunit-1000,0)
649 ENDIF
650 GOTO 70
651 ENDIF
652 IF(lb.GT.48) CALL rziodo(lunit,lb+6,2,itest,1)
653 lrecp=itest(lb+1)
654 iquest(1)=0
655 IF(lrecp.NE.lrecl)THEN
656 lrecl2=lrecl
657 lrecl=0
658 IF(ioptc.EQ.0) THEN
659 CLOSE(lunit)
660 ELSE
661 CALL cfclos(lunit-1000,0)
662 ENDIF
663 IF(ipass.EQ.0) THEN
664 ipass=1
665 GOTO 10
666 ELSE
667 WRITE(iqprnt,*) 'Cannot determine record length'
668 istat = 1
669 GOTO 70
670 ENDIF
671 ENDIF
672 ENDIF
673 IF (ipass.NE.0 .AND. lrecl2.NE.0) THEN
674 WRITE(iqprnt,10600) lrecl2,lrecl
67510600 FORMAT(' RZOPEN: LRECL inconsistent - ',
676 + ' file was opened with LRECL = ',i6,
677 + ' should be LRECL = ',i6)
678 ENDIF
679 50 IF(ioptw.NE.0)THEN
680 IF (ioptc .EQ. 0) THEN
681 lun = lunit
682 ELSE
683 lun = lunit - 1000
684 ENDIF
685 IF(lun.LT.10)WRITE(chdir,10700)lun
686 IF(lun.GE.10)WRITE(chdir,10800)lun
68710700 FORMAT('LUN',i1,' ')
68810800 FORMAT('LUN',i2,' ')
689 ENDIF
690 60 CONTINUE
691 iquest(10) = lrecl
692 iquest(11) = lunit
693 iquest(12) = imodex
694 70 CONTINUE
695 END
696
697*-------------------------------------------------------------------------------
698
699 SUBROUTINE rziodo(LUNRZ,JREC,IREC1,IBUF,IRW)
700 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
701 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
702 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
703 COMMON /quest/ iquest(100)
704 COMMON /zebq/ iqfenc(4), lq(100)
705 dimension iq(92), q(92)
706 equivalence(iq(1),lq(9)), (q(1),iq(1))
707 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
708 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
709 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
710 +, nqtrac,mqtrac(48)
711 equivalence(kqsp,nqoffs(1))
712 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
713 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
714 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
715 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
716 dimension iqcur(16)
717 equivalence(iqcur(1),lqstor)
718 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
719 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
720 +, lqsyss(10), lqsysr(10), iqtdum(22)
721 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
722 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
723 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
724 +, nqdpsh(20),nqdred(20),nqdsiz(20)
725 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
726 dimension iqtabv(16)
727 equivalence(iqtabv(1),lqpsto)
728 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
729 +, ltemp,lcord,lfrom
730 equivalence(lqrs,lqsyss(7))
731 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
732 +, izrecl,imodec,imodeh
733 COMMON /rzbuff/ itest(8704)
734 common/rzcount/rzxio(2)
735 parameter(maxfiles=128, maxstrip=21)
736 CHARACTER*128 RZNAMES(MAXFILES),RZSFILE(MAXSTRIP)
737 common/rzcstrc/rznames,rzsfile
738 common/rzcstri/islast,istrip(maxfiles),nstrip(maxfiles),
739 + nrstrip(maxfiles)
740 dimension ibuf(jrec)
741 parameter(medium=0)
742 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
743 rzxio(irw) = rzxio(irw) + jrec
744 irec=irec1
745 IF(lunrz.GT.0)THEN
746 nerr=0
747 IF(imodeh.NE.0) THEN
748 iquest(1) = jbyt(iq(kqsp+ltop),7,7)
749 iquest(2) = jrec
750 iquest(4) = irec
751 ioway = irw - 1
752 IF(irw.EQ.2.AND.imodex.NE.0) CALL vxinvb(ibuf,jrec)
753 print*,'>>>>>> CALL JUMPST(LUNRZ)'
754****** CALL JUMPST(LUNRZ)
755 print*,'>>>>>> CALL JUMPX2(IBUF,IOWAY)'
756****** CALL JUMPX2(IBUF,IOWAY)
757 IF(iquest(1).NE.0) iquest(1) = 100 + irw
758 IF(imodex.NE.0) CALL vxinvb(ibuf,jrec)
759 ELSE
760 10 IF (irw.EQ.1)THEN
761 IF(imodec.EQ.0) THEN
762 READ (unit=lunrz,rec=irec,err=20,iostat=istat)ibuf
763 ELSE
764 CALL cfseek(lunrz-1000,medium,izrecl,irec-1,istat)
765 nwtak = jrec
766 CALL cfget(lunrz-1000,medium,jrec,nwtak,ibuf,
767 + istat)
768 IF(istat.NE.0) GOTO 20
769 ENDIF
770 IF(imodex.NE.0) CALL vxinvb(ibuf,jrec)
771 ELSE
772 IF(imodex.NE.0) CALL vxinvb(ibuf,jrec)
773 IF(imodec.EQ.0) THEN
774 WRITE(unit=lunrz,rec=irec,err=20,iostat=istat)ibuf
775 ELSE
776 CALL cfseek(lunrz-1000,medium,izrecl,irec-1,istat)
777 IF(istat.NE.0) GOTO 20
778 print*,'>>>>>> CALL CFPUT()'
779****** CALL CFPUT(LUNRZ-1000,MEDIUM,JREC,IBUF,ISTAT)
780 IF(istat.NE.0) GOTO 20
781 ENDIF
782 IF(imodex.NE.0) CALL vxinvb(ibuf,jrec)
783 ENDIF
784 RETURN
785 20 nerr=nerr+1
786 IF(nerr.LT.100)GO TO 10
787 iquest(1)=100+irw
788 WRITE(iqlog,1000)irec,lunrz,istat
789 1000 FORMAT(' RZIODO. Error at record =',i5,' LUN =',i6,
790 + ' IOSTAT =',i6)
791 ENDIF
792 ELSE
793 kof=iq(kqsp+lrz0-2*lunrz-1)+iq(kqsp+lrz0-2*lunrz)*(irec-1)
794 IF (irw.EQ.1)THEN
795 CALL ucopyi(iq(kof),ibuf,jrec)
796 ELSE
797 CALL ucopyi(ibuf,iq(kof),jrec)
798 ENDIF
799 ENDIF
800 END
801
802*-------------------------------------------------------------------------------
803
804 SUBROUTINE rzvcyc(LTAD)
805 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
806 COMMON /quest/ iquest(100)
807 COMMON /zebq/ iqfenc(4), lq(100)
808 dimension iq(92), q(92)
809 equivalence(iq(1),lq(9)), (q(1),iq(1))
810 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
811 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
812 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
813 +, nqtrac,mqtrac(48)
814 equivalence(kqsp,nqoffs(1))
815 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
816 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
817 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
818 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
819 dimension iqcur(16)
820 equivalence(iqcur(1),lqstor)
821 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
822 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
823 +, lqsyss(10), lqsysr(10), iqtdum(22)
824 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
825 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
826 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
827 +, nqdpsh(20),nqdred(20),nqdsiz(20)
828 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
829 dimension iqtabv(16)
830 equivalence(iqtabv(1),lqpsto)
831 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
832 +, ltemp,lcord,lfrom
833 equivalence(lqrs,lqsyss(7))
834 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
835 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
836 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
837 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
838 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
839 INTEGER KLCYCL, KPPCYC, KFRCYC, KSRCYC, KFLCYC, KORCYC,
840 + kcncyc, knwcyc, kkycyc, kvscyc
841 common/rzcycle/klcycl, kppcyc, kfrcyc, ksrcyc, kflcyc, korcyc,
842 + kcncyc, knwcyc, kkycyc, kvscyc
843 IF (ltad.EQ.0) GO TO 99
844 IF (iq(kqsp+ltad+krzver).EQ.0) THEN
845 klcycl = 4
846 kppcyc = 0
847 kfrcyc = 2
848 ksrcyc = 0
849 kflcyc = 1
850 korcyc = 2
851 kcncyc = 3
852 knwcyc = 3
853 kkycyc =-1
854 kvscyc = 0
855 ELSE
856 klcycl = 7
857 kppcyc = 0
858 kfrcyc = 2
859 ksrcyc = 5
860 kflcyc = 1
861 korcyc = 3
862 kcncyc = 3
863 knwcyc = 4
864 kkycyc = 6
865 kvscyc = 1
866 ENDIF
867 99 RETURN
868 END
869
870*-------------------------------------------------------------------------------
871
872 SUBROUTINE rzin(IXDIV,LSUP,JBIAS,KEYU,ICYCLE,CHOPT)
873 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
874 COMMON /quest/ iquest(100)
875 COMMON /zebq/ iqfenc(4), lq(100)
876 dimension iq(92), q(92)
877 equivalence(iq(1),lq(9)), (q(1),iq(1))
878 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
879 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
880 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
881 +, nqtrac,mqtrac(48)
882 equivalence(kqsp,nqoffs(1))
883 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
884 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
885 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
886 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
887 dimension iqcur(16)
888 equivalence(iqcur(1),lqstor)
889 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
890 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
891 +, lqsyss(10), lqsysr(10), iqtdum(22)
892 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
893 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
894 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
895 +, nqdpsh(20),nqdred(20),nqdsiz(20)
896 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
897 dimension iqtabv(16)
898 equivalence(iqtabv(1),lqpsto)
899 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
900 +, ltemp,lcord,lfrom
901 equivalence(lqrs,lqsyss(7))
902 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
903 +, izrecl,imodec,imodeh
904 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
905 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
906 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
907 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
908 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
909 CHARACTER*(*) CHOPT
910 dimension keyu(*)
911 dimension lsup(1),jbias(1),iqk(10),iqks(10)
912 equivalence(iopta,iquest(91)), (ioptc,iquest(92))
913 +, (ioptd,iquest(93)), (ioptn,iquest(94)), (ioptr,iquest(95))
914 +, (iopts,iquest(96))
915 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
916 lrin=lq(kqsp+ltop-7)
917 IF(lrin.EQ.0)THEN
918 CALL mzbook(jqpdvs,lrin,ltop,-7,'RZIN',0,0,lrec+1,2,-1)
919 iq(kqsp+lrin-5)=iq(kqsp+ltop-5)
920 iq(kqsp+ltop+kirin)=0
921 ENDIF
922 CALL rzink(keyu,icycle,chopt)
923 IF(iquest(1).NE.0)GO TO 99
924 IF(ioptc.NE.0.AND.ioptd.EQ.0)GO TO 99
925 idtime=iquest(14)
926 idnw =iquest(12)
927 IF(iopts.NE.0)CALL ucopyi(iquest(20),iqks,10)
928 IF(ioptn.NE.0)THEN
929 IF(ioptd.EQ.0)GO TO 99
930 CALL ucopyi(iquest(41),iqk,10)
931 ENDIF
932 lbank=0
933 IF(lsup(1).NE.0)THEN
934 CALL mzsdiv(ixdiv,1)
935 IF(jbias(1).LE.0)lbank=lq(kqs+lsup(1)+jbias(1))
936 IF(jbias(1).GT.0)lbank=lsup(1)
937 ENDIF
938 iform=jbyt(iquest(14),1,3)
939 IF(iform.EQ.0)THEN
940 CALL rzins(ixdiv,lsup,jbias,lbank)
941 ELSE
942 ndata=iquest(12)
943 IF(lbank.NE.0)THEN
944 IF(ndata.LE.iq(kqs+lbank-1))THEN
945 CALL rzread(iq(kqs+lbank+1),ndata,1,iform)
946 iquest(11) = lbank
947 ELSE
948 iquest(1)=3
949 ENDIF
950 ELSE
951 CALL mzbook(ixdiv,lfrom,lsup,jbias,'RZIN',0,0,ndata,
952 + iform,-1)
953 CALL rzread(iq(kqs+lfrom+1),ndata,1,iform)
954 iquest(11) = lfrom
955 ENDIF
956 ENDIF
957 iquest(14)=idtime
958 iquest(12)=idnw
959 IF(ioptn.NE.0)CALL ucopyi(iqk ,iquest(41),10)
960 IF(iopts.NE.0)CALL ucopyi(iqks,iquest(20),10)
961 99 RETURN
962 END
963
964*-------------------------------------------------------------------------------
965
966 SUBROUTINE rzins(IXDIVP,LSUPP,JBIASP,LBANK)
967 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
968 COMMON /zmach/ nqbitw,nqbitc,nqchaw
969 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
970 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
971 COMMON /quest/ iquest(100)
972 COMMON /zebq/ iqfenc(4), lq(100)
973 dimension iq(92), q(92)
974 equivalence(iq(1),lq(9)), (q(1),iq(1))
975 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
976 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
977 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
978 +, nqtrac,mqtrac(48)
979 equivalence(kqsp,nqoffs(1))
980 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
981 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
982 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
983 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
984 dimension iqcur(16)
985 equivalence(iqcur(1),lqstor)
986 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
987 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
988 +, lqsyss(10), lqsysr(10), iqtdum(22)
989 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
990 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
991 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
992 +, nqdpsh(20),nqdred(20),nqdsiz(20)
993 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
994 dimension iqtabv(16)
995 equivalence(iqtabv(1),lqpsto)
996 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
997 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
998 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
999 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
1000 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
1001 +, lqmtc1,lqmtc2, nqfrtc,nqlive
1002 COMMON /mzioc/ nwfoav,nwfott,nwfodn,nwfore,ifocon(3)
1003 +, mfosav(2), jfoend,jforep,jfocur,mfo(200)
1004 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
1005 COMMON /fzci/ luni,lunni,ixdivi,ltempi,ievfli
1006 +, mstati,mediui,ififoi,idafoi,iacmoi,iupaki
1007 +, iadopi,iactvi,incbpi,loglvi,maxrei, isteni
1008 +, lbpari, l4stoi,l4stai,l4curi,l4endi
1009 +, iflagi,nfasti,n4skii,n4resi,n4doni,n4endi
1010 +, ioptie,ioptir,ioptis,ioptia,ioptit,ioptid
1011 +, ioptif,ioptig,ioptih,iopti2(4)
1012 +, idi(2),ipili(4),nwtxi,nwsegi,nwtabi,nwbki,lentri
1013 +, nwuhci,iochi(16),nwumxi,nwuhi,nwioi
1014 +, nwrdai,nrecai,luheai,jretcd,jerror,nwerr
1015 parameter(jauioc=50, jauseg=68, jauear=130)
1016 COMMON /fzcseg/nqseg,iqsegh(2,20),iqsegd(20),iqsglu,iqsgwk
1017 COMMON /fzcocc/nqocc,iqocdv(20),iqocsp(20)
1018 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
1019 +, izrecl,imodec,imodeh
1020 dimension ixdivp(9),lsupp(9),jbiasp(9),idum(3)
1021 equivalence(ioptr,iquest(95))
1022 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
1023 ixdivi = ixdivp(1)
1024 jretcd = 0
1025 jerror = 0
1026 nqocc = 0
1027 nqseg = 0
1028 CALL rzread(nwtabi,3,1,1)
1029 IF(iquest(1).NE.0) GO TO 99
1030 nwioi = 0
1031 nwuhi = 0
1032 nwuhci = 0
1033 nwumxi = 0
1034 nwtxi = 0
1035 nwsegi = 0
1036 CALL mzsdiv(ixdivi,7)
1037 IF(jqdivi.EQ.0) jqdivi=2
1038 IF(lbank.NE.0.AND.ioptr.NE.0)THEN
1039 nlink=iq(kqs+lbank-3)
1040 nwk =nwbki-10-nlink
1041 IF(iq(kqs+lbank-1).LT.nwk)GO TO 91
1042 IF(imodex.GT.0)THEN
1043 CALL mziocr(lq(kqs+lbank-nlink-1))
1044 IF(iquest(1).LT.0)GO TO 99
1045 iquest(1)=0
1046 ENDIF
1047 CALL rzread(iq(kqs+lbank+1),nwk,nwtabi+14+nlink,0)
1048 GO TO 99
1049 ENDIF
1050 lqsysr(kqt+1)=lsupp(1)
1051 CALL fzimtb
1052 IF(jretcd.EQ.3)GO TO 91
1053 CALL rzread(lq(lqta+nwtabi),nwtabi,4,1)
1054 IF(iquest(1).NE.0) GO TO 99
1055 lsta = lq(lqmta+3)
1056 lend = lq(lqmta+4)
1057 IF(imodex.LE.0)GO TO 30
1058 lin = lsta
1059 nwr = nwtabi+4
1060 10 CONTINUE
1061 CALL rzread(lq(kqs+lin),1,nwr,1)
1062 IF(iquest(1).NE.0)GO TO 99
1063 nwr = nwr+1
1064 iwd = lq(kqs+lin)
1065 nst = jbyt(iwd,1,16)-12
1066 IF(nst.LT.0)GO TO 20
1067 iqln = lin
1068 iqls = lin + nst + 1
1069 IF(iqls+8.GE.lend)GO TO 92
1070 mfo(1) = 1
1071 mfo(2) = nst + 2
1072 mfo(3) = 2
1073 mfo(4) = 2
1074 mfo(5) = 5
1075 mfo(6) = 1
1076 mfo(7) = 1
1077 mfo(8) = -1
1078 jfoend = 8
1079 nwfott = nst+9
1080 nwfodn = 0
1081 CALL rzread(lq(kqs+lin+1),nst+9,nwr,0)
1082 IF(iquest(1).NE.0)GO TO 99
1083 nwr = nwr+nst+9
1084 iqnio = jbyt(iq(kqs+iqls),19,4)
1085 iqnl = iq(kqs+iqls-3)
1086 iqnd = iq(kqs+iqls-1)
1087 IF(iqnio+iqnl.NE.nst)GO TO 92
1088 lin = iqls + iqnd + 9
1089 IF(iqnd.GT.0)THEN
1090 IF(lin.GT.lend)GO TO 92
1091 CALL mziocr(lq(kqs+iqln))
1092 IF(iquest(1).LT.0)GO TO 99
1093 iquest(1)=0
1094 CALL rzread(iq(kqs+iqls+1),iqnd,nwr,0)
1095 IF(iquest(1).NE.0)GO TO 99
1096 nwr = nwr+iqnd
1097 ENDIF
1098 IF(lin.LT.lend)GO TO 10
1099 GO TO 40
1100 20 nwd = jbyt(iwd,17,iqdrop-17)
1101 IF(nwd.EQ.0.OR.nwd.NE.nst+12)GO TO 92
1102 IF(jbyt(iwd,iqdrop,iqbitw-iqdrop).NE.1)GO TO 92
1103 lin = lin + nwd
1104 IF(lin.LT.lend)GO TO 10
1105 GO TO 40
1106 30 nwr = lend - lsta
1107 CALL rzread(lq(kqs+lsta),nwr,nwtabi+4,0)
1108 IF(iquest(1).NE.0) GO TO 99
1109 40 CONTINUE
1110 CALL fzirel
1111 IF(jretcd.NE.0)GO TO 93
1112 jb=jbiasp(1)
1113 IF(jb.GE.2)THEN
1114 lsupp(1)=lentri
1115 ELSE
1116 lsupp(1)=lqsysr(kqt+1)
1117 CALL zshunt(ixdivi,lentri,lsupp,jb,1)
1118 ENDIF
1119 iquest(1) = 0
1120 iquest(11) = ievfli
1121 iquest(12) = 0
1122 iquest(13) = lentri
1123 iquest(14) = nwbki
1124 GO TO 99
1125 91 iquest(11)= -2
1126 iquest(1) = 1
1127 GO TO 99
1128 92 iquest(11)= -3
1129 iquest(1) = 1
1130 GO TO 99
1131 93 iquest(11)= -3
1132 iquest(1) = 1
1133 99 RETURN
1134 END
1135
1136*-------------------------------------------------------------------------------
1137
1138 SUBROUTINE zitoh (INTV,IHOLL,NP)
1139 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
1140 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
1141 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
1142 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
1143 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
1144 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
1145 +, nqhol0,nqholl(95)
1146 COMMON /slate/ dummy(8), mm(4), dumb(28)
1147 dimension intv(99), iholl(99), np(9)
1148 dimension mpak(2)
1149 DATA mpak /6,4/
1150 n = np(1)
1151 DO 39 jw=1,n
1152 CALL upkbyt (intv(jw),1,mm(1),4,mpak(1))
1153 DO 16 j=1,4
1154 jv = mm(j)
1155 IF (jv.EQ.0) jv=45
1156 16 mm(j) = iqlett(jv)
1157 CALL ubunch (mm(1),iholl(jw),4)
1158 39 CONTINUE
1159 END
1160
1161*-------------------------------------------------------------------------------
1162
1163 SUBROUTINE mzresv
1164 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1165 COMMON /quest/ iquest(100)
1166 COMMON /zebq/ iqfenc(4), lq(100)
1167 dimension iq(92), q(92)
1168 equivalence(iq(1),lq(9)), (q(1),iq(1))
1169 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1170 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1171 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1172 +, nqtrac,mqtrac(48)
1173 equivalence(kqsp,nqoffs(1))
1174 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1175 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1176 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1177 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1178 dimension iqcur(16)
1179 equivalence(iqcur(1),lqstor)
1180 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1181 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1182 +, lqsyss(10), lqsysr(10), iqtdum(22)
1183 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1184 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1185 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1186 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1187 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1188 dimension iqtabv(16)
1189 equivalence(iqtabv(1),lqpsto)
1190 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
1191 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
1192 jqdivr = jqdivi
1193 IF (jqdivr.LT.3) GO TO 41
1194 jqmode = jbit(iqmode(kqt+jqdivr), 1)
1195 jqkind = jbyt(iqkind(kqt+jqdivr),21,4)
1196 IF (jqmode.NE.0) GO TO 31
1197 jqdivn = jqdivr + 1
1198 IF (jqdivr.EQ.jqdvll) GO TO 24
1199 IF (jqdivr.EQ.20) GO TO 25
1200 IF (jbyt(iqkind(kqt+jqdivn),21,4).NE.jqkind) GO TO 25
1201 IF (jbit(iqmode(kqt+jqdivn),1) .EQ.jqmode) GO TO 25
1202 jqshar = jqdivn
1203 jqshr1 = jqdivr
1204 jqshr2 = jqdivn
1205 nqresv = lqsta(kqt+jqdivn) - lqend(kqt+jqdivr)
1206 RETURN
1207 24 jqdivn = jqdvsy
1208 25 l = min(lqsta(kqt+jqdivr)+nqdmax(kqt+jqdivr),
1209 + lqsta(kqt+jqdivn) )
1210 nqresv = l - lqend(kqt+jqdivr)
1211 jqshar = 0
1212 RETURN
1213 31 jqdivn = jqdivr - 1
1214 IF (jqdivr.EQ.jqdvsy) GO TO 34
1215 IF (jbyt(iqkind(kqt+jqdivn),21,4).NE.jqkind) GO TO 35
1216 IF (jbit(iqmode(kqt+jqdivn),1) .EQ.jqmode) GO TO 35
1217 jqshar = jqdivn
1218 jqshr1 = jqdivn
1219 jqshr2 = jqdivr
1220 nqresv = lqsta(kqt+jqdivr) - lqend(kqt+jqdivn)
1221 RETURN
1222 34 jqdivn = jqdvll
1223 35 l = max(lqend(kqt+jqdivr)-nqdmax(kqt+jqdivr),
1224 + lqend(kqt+jqdivn) )
1225 nqresv = lqsta(kqt+jqdivr) - l
1226 jqshar = 0
1227 RETURN
1228 41 jqkind = 1
1229 jqshr1 = 1
1230 jqshr2 = 2
1231 nqresv = lqsta(kqt+2) - lqend(kqt+1) - nqminr
1232 IF (jqdivr.EQ.1) GO TO 44
1233 jqmode = 1
1234 jqdivn = 1
1235 jqshar = 1
1236 RETURN
1237 44 jqmode = 0
1238 jqdivn = 2
1239 jqshar = 2
1240 END
1241
1242*-------------------------------------------------------------------------------
1243
1244 SUBROUTINE rzsave
1245 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1246 COMMON /quest/ iquest(100)
1247 COMMON /zebq/ iqfenc(4), lq(100)
1248 dimension iq(92), q(92)
1249 equivalence(iq(1),lq(9)), (q(1),iq(1))
1250 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1251 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1252 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1253 +, nqtrac,mqtrac(48)
1254 equivalence(kqsp,nqoffs(1))
1255 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1256 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1257 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1258 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1259 dimension iqcur(16)
1260 equivalence(iqcur(1),lqstor)
1261 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1262 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1263 +, lqsyss(10), lqsysr(10), iqtdum(22)
1264 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1265 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1266 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1267 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1268 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1269 dimension iqtabv(16)
1270 equivalence(iqtabv(1),lqpsto)
1271 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
1272 +, ltemp,lcord,lfrom
1273 equivalence(lqrs,lqsyss(7))
1274 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
1275 +, izrecl,imodec,imodeh
1276 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
1277 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
1278 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
1279 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
1280 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
1281 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
1282 IF(lqrs.EQ.0)GO TO 99
1283 IF(ltop.EQ.0)GO TO 99
1284 IF(jbit(iq(kqsp+ltop),2).NE.0)THEN
1285 IF(isave.NE.2)THEN
1286 idtime=0
1287 CALL rzdate(idtime,idate,itime,2)
1288 iq(kqsp+ltop+kdatem)=idtime
1289 ENDIF
1290 lunc= iq(kqsp+ltop-5)
1291 lb = iq(kqsp+ltop+klb)
1292 lrek= iq(kqsp+ltop+lb+1)
1293 lus = lq(kqsp+ltop-3)
1294 IF(lus.NE.0)THEN
1295 nused=iq(kqsp+lus+1)
1296 IF(nused.GT.0)THEN
1297 DO 40 i=1,nused
1298 ir1=iq(kqsp+lus+2*(i-1)+2)
1299 irl=iq(kqsp+lus+2*(i-1)+3)
1300 DO 30 j=ir1,irl
1301 iword = (j-1)/32 + 1
1302 ibit = j-32*(iword-1)
1303 CALL sbit1(iq(kqsp+ltop+lb+2+iword),ibit)
1304 30 CONTINUE
1305 40 CONTINUE
1306 iq(kqsp+lus+1)=0
1307 ENDIF
1308 ENDIF
1309 lpu = lq(kqsp+ltop-5)
1310 IF(lpu.NE.0)THEN
1311 npurg=iq(kqsp+lpu+1)
1312 IF(npurg.GT.0)THEN
1313 DO 60 i=1,npurg
1314 ir1=iq(kqsp+lpu+2*(i-1)+2)
1315 irl=iq(kqsp+lpu+2*(i-1)+3)
1316 DO 50 j=ir1,irl
1317 iword = (j-1)/32 + 1
1318 ibit = j-32*(iword-1)
1319 CALL sbit0(iq(kqsp+ltop+lb+2+iword),ibit)
1320 50 CONTINUE
1321 60 CONTINUE
1322 iq(kqsp+lpu+1)=0
1323 ENDIF
1324 ENDIF
1325 lrout=lq(kqsp+ltop-6)
1326 IF(lrout.NE.0)THEN
1327 irout=iq(kqsp+ltop+kirout)
1328 IF(irout.NE.0)THEN
1329 CALL rziodo(lunc,lrek,irout,iq(kqsp+lrout+1),2)
1330 IF(iquest(1).NE.0)GO TO 99
1331 ENDIF
1332 ENDIF
1333 lds =iq(kqsp+ltop+kld)
1334 nrd =iq(kqsp+ltop+lds)
1335 IF(isave.NE.2)THEN
1336 IF(ltop.EQ.lcdir)iq(kqsp+ltop+kdatem)=idtime
1337 ENDIF
1338 CALL sbit0(iq(kqsp+ltop),2)
1339 DO 70 j=nrd,1,-1
1340 irec=iq(kqsp+ltop+lds+j)
1341 l=(j-1)*lrek+1
1342 CALL rziodo(lunc,lrek,irec,iq(kqsp+ltop+l),2)
1343 IF(iquest(1).NE.0)THEN
1344 CALL sbit1(iq(kqsp+ltop),2)
1345 GO TO 99
1346 ENDIF
1347 70 CONTINUE
1348 IF(lcdir.EQ.0.OR.ltop.EQ.lcdir)GO TO 99
1349 IF(jbit(iq(kqsp+lcdir),2).NE.0)THEN
1350 lds =iq(kqsp+lcdir+kld)
1351 nrd =iq(kqsp+lcdir+lds)
1352 IF(isave.NE.2)THEN
1353 iq(kqsp+lcdir+kdatem)=idtime
1354 ENDIF
1355 CALL sbit0(iq(kqsp+lcdir),2)
1356 DO 80 j=nrd,1,-1
1357 irec=iq(kqsp+lcdir+lds+j)
1358 l=(j-1)*lrek+1
1359 CALL rziodo(lunc,lrek,irec,iq(kqsp+lcdir+l),2)
1360 IF(iquest(1).NE.0)THEN
1361 CALL sbit1(iq(kqsp+lcdir),2)
1362 GO TO 99
1363 ENDIF
1364 80 CONTINUE
1365 ENDIF
1366 ENDIF
1367 99 RETURN
1368 END
1369
1370*-------------------------------------------------------------------------------
1371
1372 SUBROUTINE fzicv (MS,IRMT)
1373 COMMON /quest/ iquest(100)
1374 COMMON /mzioc/ nwfoav,nwfott,nwfodn,nwfore,ifocon(3)
1375 +, mfosav(2), jfoend,jforep,jfocur,mfo(200)
1376 dimension ms(99), irmt(99)
1377 DOUBLE PRECISION THDB
1378 dimension this(2)
1379 equivalence(thdb,this)
1380 equivalence(itha,tha,this(1)), (ithb,thb,this(2))
1381
1382 jms = 0
1383 IF (nwfodn.NE.0) GO TO 30
1384 nwfore = nwfott
1385 jmsex = min(nwfore,nwfoav)
1386 jmt = 0
1387 jfocur = 0
1388 ifocon(1) = 0
1389 21 itype = mfo(jfocur+1)
1390 IF (itype.EQ.7) GO TO 24
1391 nwsec = mfo(jfocur+2)
1392 IF (nwsec) 22, 23, 31
1393 22 nwsec = nwfore
1394 GO TO 31
1395 23 iword = ms(jms+1)
1396 nwsec = iword
1397 GO TO 25
1398 24 iword = ms(jms+1)
1399 itype = mod(iword,16)
1400 nwsec = iword/16
1401 25 irmt(jmt+1) = iword
1402 jms = jms + 1
1403 jmt = jmt + 1
1404 nwfore = nwfore - 1
1405 IF (itype.GE.8) GO TO 27
1406 IF (nwsec.EQ.0) GO TO 29
1407 IF (nwsec.GT.0) GO TO 31
1408 27 ifocon(1) = -1
1409 ifocon(2) = jmt
1410 ifocon(3) = iword
1411 29 itype = 0
1412 nwsec = nwfore
1413 GO TO 31
1414 30 jmsex = min(nwfore,nwfoav)
1415 jmt = nwfodn
1416 itype = mfosav(1)
1417 nwsec = mfosav(2)
1418 31 nwdo = min(nwsec,jmsex-jms)
1419 IF (nwdo.EQ.0) GO TO 801
1420 IF (itype.LE.0) GO TO 91
1421 GO TO (101,201,301,401,501,101,101), itype
1422 91 CALL vzeroi (irmt(jmt+1),nwdo)
1423 jmt = jmt + nwdo
1424 jms = jms + nwdo
1425 GO TO 801
1426 401 ndpn = nwdo / 2
1427 nwdodb = ndpn * 2
1428 IF (nwdodb.EQ.0) GO TO 451
1429 DO 449 jl=1,ndpn
1430 irmt(jmt+1) = ms(jms+2)
1431 irmt(jmt+2) = ms(jms+1)
1432 jmt = jmt + 2
1433 449 jms = jms + 2
1434 451 IF (nwdodb .EQ.nwdo) GO TO 801
1435 IF (nwdodb+1.EQ.nwsec) GO TO 471
1436 IF (nwdodb+1.EQ.nwfore) GO TO 471
1437 nwdo = nwdodb
1438 jms = jms + 2
1439 GO TO 801
1440 471 jmt = jmt + 1
1441 jms = jms + 1
1442 ifocon(1) = -2
1443 ifocon(2) = jmt
1444 ifocon(3) = nwdo
1445 irmt(jmt) = 0
1446 GO TO 801
1447 501 CONTINUE
1448 CALL vxinvc (ms(jms+1),irmt(jmt+1),nwdo)
1449 jmt = jmt + nwdo
1450 jms = jms + nwdo
1451 GO TO 801
1452 301 CONTINUE
1453 201 CONTINUE
1454 101 CONTINUE
1455 CALL ucopyi (ms(jms+1),irmt(jmt+1),nwdo)
1456 jmt = jmt + nwdo
1457 jms = jms + nwdo
1458 801 nwfore = nwfott - jmt
1459 IF (jms.GE.jmsex) GO TO 804
1460 jfocur = jfocur + 2
1461 IF (jfocur.LT.jfoend) GO TO 21
1462 jfocur = jforep
1463 GO TO 21
1464 804 iquest(1) = jms
1465 nwfoav = nwfoav - jms
1466 IF (nwfore.EQ.0) RETURN
1467 nwfodn = jmt
1468 mfosav(1) = itype
1469 mfosav(2) = nwsec - nwdo
1470 END
1471
1472*-------------------------------------------------------------------------------
1473
1474 SUBROUTINE fzirel
1475 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
1476 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
1477 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
1478 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
1479 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
1480 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
1481 +, nqhol0,nqholl(95)
1482 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
1483 COMMON /zmach/ nqbitw,nqbitc,nqchaw
1484 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
1485 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
1486 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
1487 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1488 COMMON /quest/ iquest(100)
1489 COMMON /zebq/ iqfenc(4), lq(100)
1490 dimension iq(92), q(92)
1491 equivalence(iq(1),lq(9)), (q(1),iq(1))
1492 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1493 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1494 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1495 +, nqtrac,mqtrac(48)
1496 equivalence(kqsp,nqoffs(1))
1497 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1498 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1499 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1500 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1501 dimension iqcur(16)
1502 equivalence(iqcur(1),lqstor)
1503 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1504 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1505 +, lqsyss(10), lqsysr(10), iqtdum(22)
1506 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1507 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1508 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1509 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1510 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1511 dimension iqtabv(16)
1512 equivalence(iqtabv(1),lqpsto)
1513 equivalence(lqfs,lqsyss(4)), (lqff,lqsysr(4))
1514 +, (lqfi,lqsysr(5)), (lqfx,lqsysr(6))
1515 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
1516 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
1517 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
1518 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
1519 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
1520 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
1521 +, lqmtc1,lqmtc2, nqfrtc,nqlive
1522 COMMON /fzci/ luni,lunni,ixdivi,ltempi,ievfli
1523 +, mstati,mediui,ififoi,idafoi,iacmoi,iupaki
1524 +, iadopi,iactvi,incbpi,loglvi,maxrei, isteni
1525 +, lbpari, l4stoi,l4stai,l4curi,l4endi
1526 +, iflagi,nfasti,n4skii,n4resi,n4doni,n4endi
1527 +, ioptie,ioptir,ioptis,ioptia,ioptit,ioptid
1528 +, ioptif,ioptig,ioptih,iopti2(4)
1529 +, idi(2),ipili(4),nwtxi,nwsegi,nwtabi,nwbki,lentri
1530 +, nwuhci,iochi(16),nwumxi,nwuhi,nwioi
1531 +, nwrdai,nrecai,luheai,jretcd,jerror,nwerr
1532 parameter(jauioc=50, jauseg=68, jauear=130)
1533 dimension ladesv(6)
1534 dimension namesr(2)
1535 DATA namesr / 4hfzir, 4hel /
1536 DATA ladesv / 6, 5*0 /
1537 mqtrac(nqtrac+1) = namesr(1)
1538 mqtrac(nqtrac+2) = namesr(2)
1539 nqtrac = nqtrac + 2
1540 IF (nwtabi.EQ.0) GO TO 61
1541 lput = lqta
1542 ltake = lqta + nwtabi
1543 lmt = lqmta
1544 22 IF (lq(lmt+1).NE.0) GO TO 24
1545 nwsg = lq(lmt+3)
1546 23 IF (nwsg.GE.0) GO TO 29
1547 IF (ltake.GE.lqte) GO TO 731
1548 nwsg = nwsg + (lq(ltake+1)-lq(ltake))
1549 ltake = ltake + 2
1550 GO TO 23
1551 24 lsta = lq(lmt+3)
1552 lend = lq(lmt+4)
1553 nwsg = lsta - lend
1554 nrel = 0
1555 le = lsta
1556 25 IF (ltake.GE.lqte) GO TO 731
1557 la = lq(ltake)
1558 nrel = nrel - (la-le)
1559 le = lq(ltake+1)
1560 lq(lput) = la
1561 lq(lput+1) = le
1562 lq(lput+2) = nrel
1563 lq(lput+3) = 0
1564 ltake = ltake + 2
1565 lput = lput + 4
1566 nwsg = nwsg + (le-la)
1567 IF (nwsg.LT.0) GO TO 25
1568 29 IF (nwsg.NE.0) GO TO 732
1569 lmt = lmt + 8
1570 IF (lmt.LT.lqmte) GO TO 22
1571 IF (ltake.NE.lqte) GO TO 733
1572 lqte = lput
1573 lq(lqte) = lq(lqte-3)
1574 lq(lqta-1) = lq(lqta)
1575 IF (loglvi.GE.4)
1576 + WRITE (iqlog,9167) lentri,(lq(j),j=lqta,lqte-1)
1577 9167 FORMAT (' FZIREL- Relocation Table, LENTRY before=',i10/
1578 f (15x,3i9,i4))
1579 iqflio = 7
1580 CALL mzrelb
1581 IF (iqflio.LT.0) GO TO 734
1582 ladesv(2) = locf(lentri) - lqstor
1583 ladesv(3) = ladesv(2) + 1
1584 ladesv(5) = iqlett(9)
1585 ladesv(6) = iqlett(15)
1586 CALL mzrell (ladesv)
1587 IF (loglvi.GE.4) WRITE (iqlog,9037) lentri
1588 9037 FORMAT (10x,'LENTRY after=',i10)
1589 lq(kqs+lentri+1) = 0
1590 lq(kqs+lentri+2) = 0
1591 GO TO 999
1592 61 CALL fzilin
1593 IF (iqfoul.NE.0) GO TO 734
1594 lentri = iquest(1)
1595 999 nqtrac = nqtrac - 2
1596 RETURN
1597 734 jerror = 34
1598 iquest(14)= iqln
1599 nwerr = 1
1600 GO TO 739
1601 733 jerror = 33
1602 iquest(14)= ltake
1603 iquest(15)= lqte
1604 nwerr = 2
1605 GO TO 739
1606 732 jerror = 32
1607 iquest(14)= nwsg
1608 nwerr = 1
1609 GO TO 739
1610 731 jerror = 31
1611 iquest(14)= nwsg
1612 nwerr = 1
1613 739 jretcd = 5
1614 GO TO 999
1615 END
1616
1617*-------------------------------------------------------------------------------
1618
1619 SUBROUTINE fzilin
1620 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1621 COMMON /quest/ iquest(100)
1622 COMMON /zebq/ iqfenc(4), lq(100)
1623 dimension iq(92), q(92)
1624 equivalence(iq(1),lq(9)), (q(1),iq(1))
1625 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1626 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1627 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1628 +, nqtrac,mqtrac(48)
1629 equivalence(kqsp,nqoffs(1))
1630 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1631 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1632 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1633 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1634 dimension iqcur(16)
1635 equivalence(iqcur(1),lqstor)
1636 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1637 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1638 +, lqsyss(10), lqsysr(10), iqtdum(22)
1639 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1640 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1641 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1642 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1643 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1644 dimension iqtabv(16)
1645 equivalence(iqtabv(1),lqpsto)
1646 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
1647 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
1648 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
1649 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
1650 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
1651 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
1652 +, lqmtc1,lqmtc2, nqfrtc,nqlive
1653 iqfoul = 0
1654 lentri = 0
1655 k = 0
1656 lmt = lqmta
1657 22 IF (lq(lmt+1).LE.0) GO TO 29
1658 iqnx = lq(lmt+3)
1659 lend = lq(lmt+4)
1660 24 CALL mzchln (-7,iqnx)
1661 IF (iqfoul.NE.0) GO TO 91
1662 IF (iqnd.LT.0) GO TO 27
1663 IF (k.EQ.0) THEN
1664 lentri = iqls
1665 ELSE
1666 lq(kqs+k) = iqls
1667 ENDIF
1668 l = iqls - iqnl - 1
1669 DO 26 j=1, iqnl+2
1670 26 lq(kqs+l+j) = 0
1671 lq(kqs+iqls+2) = k
1672 k = iqls
1673 27 IF (iqnx.LT.lend) GO TO 24
1674 IF (iqnx.NE.lend) GO TO 91
1675 29 lmt = lmt + 8
1676 IF (lmt.LT.lqmte) GO TO 22
1677 iquest(1) = lentri
1678 RETURN
1679 91 iqfoul = 7
1680 END
1681
1682*-------------------------------------------------------------------------------
1683
1684 SUBROUTINE mzchls (IXST,LP)
1685 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
1686 COMMON /zmach/ nqbitw,nqbitc,nqchaw
1687 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
1688 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1689 COMMON /quest/ iquest(100)
1690 COMMON /zebq/ iqfenc(4), lq(100)
1691 dimension iq(92), q(92)
1692 equivalence(iq(1),lq(9)), (q(1),iq(1))
1693 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1694 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1695 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1696 +, nqtrac,mqtrac(48)
1697 equivalence(kqsp,nqoffs(1))
1698 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1699 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1700 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1701 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1702 dimension iqcur(16)
1703 equivalence(iqcur(1),lqstor)
1704 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1705 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1706 +, lqsyss(10), lqsysr(10), iqtdum(22)
1707 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1708 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1709 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1710 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1711 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1712 dimension iqtabv(16)
1713 equivalence(iqtabv(1),lqpsto)
1714 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
1715 dimension ixst(9), lp(9)
1716 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
1717 ixstor = ixst(1)
1718 iqls = lp(1)
1719 IF (ixstor.EQ.-7) GO TO 21
1720 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
1721 21 IF (iqls.LT.lqsta(kqt+1)) GO TO 98
1722 IF (iqls.GE.lqsta(kqt+21)) GO TO 98
1723 iqnio = jbyt(iq(kqs+iqls),19,4)
1724 iqid = iq(kqs+iqls-4)
1725 iqnl = iq(kqs+iqls-3)
1726 iqns = iq(kqs+iqls-2)
1727 iqnd = iq(kqs+iqls-1)
1728 IF ( jbyt(iqnl,iqbitw-3,4)
1729 + + jbyt(iqns,iqbitw-3,4)
1730 + + jbyt(iqnd,iqbitw-3,4) .NE.0) GO TO 91
1731 iqnx = iqls + iqnd + 9
1732 IF (iqnx.GT.lqsta(kqt+21)) GO TO 91
1733 iqln = iqls - iqnl - iqnio - 1
1734 IF (iqln.LT.lqsta(kqt+1)) GO TO 91
1735 nst = jbyt(lq(kqs+iqln),1,16) - 12
1736 IF (nst.NE.iqnio+iqnl) GO TO 91
1737 IF (iqns.GT.iqnl) GO TO 91
1738 iqfoul = 0
1739 RETURN
1740 91 iqfoul = 7
1741 RETURN
1742 98 iqfoul = -7
1743 END
1744
1745*-------------------------------------------------------------------------------
1746
1747 SUBROUTINE mzbook (IXP,LP,LSUPP,JBP, CHIDH,NL,NS,ND,NIOP,NZP)
1748 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
1749 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
1750 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
1751 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
1752 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
1753 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
1754 +, nqhol0,nqholl(95)
1755 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1756 COMMON /quest/ iquest(100)
1757 COMMON /zebq/ iqfenc(4), lq(100)
1758 dimension iq(92), q(92)
1759 equivalence(iq(1),lq(9)), (q(1),iq(1))
1760 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1761 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1762 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1763 +, nqtrac,mqtrac(48)
1764 equivalence(kqsp,nqoffs(1))
1765 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1766 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1767 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1768 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1769 dimension iqcur(16)
1770 equivalence(iqcur(1),lqstor)
1771 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1772 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1773 +, lqsyss(10), lqsysr(10), iqtdum(22)
1774 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1775 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1776 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1777 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1778 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1779 dimension iqtabv(16)
1780 equivalence(iqtabv(1),lqpsto)
1781 COMMON /mzcl/ nqln,nqls,nqnio,nqid,nqnl,nqns,nqnd,nqioch(16)
1782 +, lqsup,nqbia, nqiosv(3)
1783 dimension ixp(9),lp(9),lsupp(9),jbp(9),niop(9),nzp(9)
1784 CHARACTER CHIDH*(*)
1785 dimension namesr(2)
1786 DATA namesr / 4hmzbo, 4hok /
1787 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
1788 mqtrac(nqtrac+1) = namesr(1)
1789 mqtrac(nqtrac+2) = namesr(2)
1790 nqtrac = nqtrac + 2
1791 nqid = iqques
1792 nio = min(4, len(chidh))
1793 IF (nio.NE.0) CALL uctoh (chidh,nqid,4,nio)
1794 nqnl = nl
1795 nqns = ns
1796 nqnd = nd
1797 nqbia = jbp(1)
1798 iodorg = niop(1)
1799 nio = jbyt(iodorg,12,4)
1800 IF (nio.EQ.0) THEN
1801 nqioch(1) = iodorg
1802 ELSE
1803 CALL ucopyi (niop,nqioch,nio+1)
1804 nqiosv(1) = 0
1805 ENDIF
1806 CALL mzlift (ixp,lp,lsupp,63, nqid, nzp)
1807 999 nqtrac = nqtrac - 2
1808 END
1809
1810*-------------------------------------------------------------------------------
1811
1812 SUBROUTINE mzlift (IXDIV,LP,LSUPP,JBIAS,NAME,NZERO)
1813 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
1814 COMMON /zmach/ nqbitw,nqbitc,nqchaw
1815 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
1816 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
1817 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
1818 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
1819 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
1820 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
1821 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
1822 COMMON /quest/ iquest(100)
1823 COMMON /zebq/ iqfenc(4), lq(100)
1824 dimension iq(92), q(92)
1825 equivalence(iq(1),lq(9)), (q(1),iq(1))
1826 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
1827 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
1828 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
1829 +, nqtrac,mqtrac(48)
1830 equivalence(kqsp,nqoffs(1))
1831 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
1832 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
1833 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
1834 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
1835 dimension iqcur(16)
1836 equivalence(iqcur(1),lqstor)
1837 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
1838 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
1839 +, lqsyss(10), lqsysr(10), iqtdum(22)
1840 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
1841 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
1842 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
1843 +, nqdpsh(20),nqdred(20),nqdsiz(20)
1844 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
1845 dimension iqtabv(16)
1846 equivalence(iqtabv(1),lqpsto)
1847 dimension lqmst(9)
1848 equivalence(lqmst(1),lqsyss(2))
1849 equivalence(lqform,lqsyss(5))
1850 COMMON /mzcl/ nqln,nqls,nqnio,nqid,nqnl,nqns,nqnd,nqioch(16)
1851 +, lqsup,nqbia, nqiosv(3)
1852 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
1853 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
1854 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
1855 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
1856 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
1857 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
1858 +, lqmtc1,lqmtc2, nqfrtc,nqlive
1859 dimension ixdiv(9), lp(9), lsupp(9), name(9)
1860 dimension namesr(2)
1861 DATA namesr / 4hmzli, 4hft /
1862 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
1863 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
1864 msbyt(mz,izw,izp,nzb) = ior(
1865 + iand(izw, not(ishft(ishft(not(0),-(32-nzb)),izp-1)))
1866 + ,ishft(ishft(mz,32-nzb), -(33-izp-nzb)) )
1867 mqtrac(nqtrac+1) = namesr(1)
1868 mqtrac(nqtrac+2) = namesr(2)
1869 nqtrac = nqtrac + 2
1870******IF (IQVSTA.NE.0) CALL ZVAUTX
1871 IF (jbias.NE.63) THEN
1872 nqbia = jbias
1873 nio = jbyt(name(5),12,4)
1874 CALL ucopyi (name,nqid,nio+5)
1875 IF (nio.NE.0) nqiosv(1)=0
1876 ENDIF
1877 jdv = ixdiv(1)
1878 lqsup = lsupp(1)
1879 IF (nqbia.GE.2) lqsup = 0
1880 ichorg = nqioch(1)
1881 ntot = nqnl + nqnd + 10
1882 IF (jdv.EQ.-7) GO TO 24
1883 IF (jbyt(jdv,27,6).NE.jqstor) GO TO 22
1884 jqdivi = jbyt(jdv,1,26)
1885 IF (jqdivi.LT.21) GO TO 23
1886 22 CALL mzsdiv (jdv,0)
1887 23 CALL mzchnb (lp)
1888 24 CONTINUE
1889 j = jbyt(nqid,iqbitw-7,8)
1890 IF (j.EQ.0) GO TO 91
1891 IF (j.EQ.255) GO TO 91
1892 IF (ntot.GE.lqsta(kqt+21)) GO TO 91
1893 IF (nqns.GT.nqnl) GO TO 91
1894 IF (nqns.LT.0) GO TO 91
1895 IF (nqnl.GT.64000) GO TO 91
1896 IF (nqnd.LT.0) GO TO 91
1897 IF (nqbia.GE.3) GO TO 91
1898 IF (lqsup.EQ.0) GO TO 25
1899 CALL mzchls (-7,lqsup)
1900 IF (iqfoul.NE.0) GO TO 92
1901 IF (nqbia.EQ.1) GO TO 26
1902 IF (jbit(iq(kqs+lqsup),iqdrop).NE.0) GO TO 92
1903 IF (iqns+nqbia.LT.0) GO TO 93
1904 GO TO 26
1905 25 IF (nqbia.LE.0) GO TO 92
1906 26 CONTINUE
1907 idn = 1
1908 ls = lqsup
1909 lsame = lqsup
1910 lnext = lqsup
1911 IF (nqbia.GT.0) GO TO 38
1912 lnext = lq(kqs+lnext+nqbia)
1913 IF (lnext.EQ.0) GO TO 36
1914 lsame = lnext
1915 ls = lnext
1916 CALL mzchls (-7,lnext)
1917 IF (iqfoul.NE.0) GO TO 94
1918 idn = iq(kqs+lnext-5) + 1
1919 GO TO 39
1920 36 IF (nqbia.EQ.0) GO TO 37
1921 lsame = 0
1922 idn = -nqbia
1923 GO TO 39
1924 37 idn = iq(kqs+lsame-5) + 1
1925 GO TO 39
1926 38 IF (lnext.NE.0) idn=iq(kqs+lnext-5)+1
1927 39 CONTINUE
1928 IF (ichorg.LT.0) GO TO 47
1929 IF (ichorg.LT.8) THEN
1930 nqnio = 0
1931 nqioch(1) = ishft(ichorg, 16)
1932 GO TO 49
1933 ENDIF
1934 IF (ichorg-11) 45, 43, 47
1935 43 IF (lsame.EQ.0) GO TO 45
1936 nqnio = iqnio
1937 IF (nqnio.EQ.0) THEN
1938 nqioch(1) = lq(kqs+iqln)
1939 GO TO 49
1940 ELSE
1941 CALL ucopyi (lq(kqs+iqln),nqioch,nqnio+1)
1942 nqiosv(1) = 0
1943 GO TO 49
1944 ENDIF
1945 45 lid = lqform
1946 IF (lid.EQ.0) GO TO 95
1947 liod = lq(kqsp+lid-2)
1948 IF (nqid.LT.0) lid=lq(kqsp+lid)
1949 IF (nqid.EQ.iq(kqsp+lid+3)) THEN
1950 ixio = iq(kqsp+lid+2)
1951 ELSE
1952 n = iq(kqsp+lid+1)
1953 IF (n.EQ.0) GO TO 95
1954 j = iucomp(nqid,iq(kqsp+lid+4),n)
1955 IF (j.EQ.0) GO TO 95
1956 lix = lq(kqsp+lid-1)
1957 ixio = iq(kqsp+lix+j)
1958 iq(kqsp+lid+2) = ixio
1959 iq(kqsp+lid+3) = nqid
1960 ENDIF
1961 nqnio = jbyt(iq(kqsp+liod+ixio+1),7,5) - 1
1962 GO TO 48
1963 47 j = jbyt(ichorg,1,6)
1964 nqnio = jbyt(ichorg,7,5) - 1
1965 ioth = jbyt(ichorg,12,5)
1966 IF (j.EQ.1) THEN
1967 IF (nqnio.NE.ioth) GO TO 96
1968 GO TO 49
1969 ENDIF
1970 IF (j.NE.2) GO TO 96
1971 IF (ioth.NE.0) GO TO 96
1972 ixio = jbyt(ichorg,17,16)
1973 IF (ixio.EQ.0) GO TO 96
1974 liod = lq(kqsp+lqform-2)
1975 IF (ixio.GE.iq(kqsp+liod+1)) GO TO 96
1976 48 IF (ixio.EQ.nqiosv(1)) THEN
1977 nqioch(1) = nqiosv(2)
1978 GO TO 49
1979 ENDIF
1980 nqiosv(1) = 0
1981 IF (nqnio.GE.16) GO TO 96
1982 CALL ucopyi (iq(kqsp+liod+ixio+1),nqioch,nqnio+1)
1983 ioth = jbyt(nqioch(1),12,5)
1984 IF (nqnio.NE.ioth) GO TO 96
1985 nqiosv(1) = ixio
1986 nqiosv(2) = nqioch(1)
1987 49 ntot = ntot + nqnio
1988 IF (jqdivi.NE.0) GO TO 59
1989 IF (ls.LT.lqsta(kqt+1)) GO TO 58
1990 IF (ls.GE.lqend(kqt+20)) GO TO 58
1991 IF (ls.GE.lqend(kqt+jqdvll)) GO TO 54
1992 IF (ls.LT.lqend(kqt+2)) GO TO 57
1993 jqdivi = 3
1994 GO TO 55
1995 54 jqdivi = jqdvsy
1996 55 IF (ls.LT.lqend(kqt+jqdivi)) GO TO 61
1997 jqdivi = jqdivi + 1
1998 GO TO 55
1999 57 jqdivi = 1
2000 IF (ls.LT.lqsta(kqt+2)) GO TO 61
2001 58 jqdivi = 2
2002 GO TO 61
2003 59 IF (lsame.EQ.0) GO TO 61
2004 IF (lsame.LT.lqsta(kqt+jqdivi)) GO TO 97
2005 IF (lsame.GE.lqend(kqt+jqdivi)) GO TO 97
2006 61 CALL mzresv
2007 nqresv = nqresv - ntot
2008 IF (nqresv.LT.0) GO TO 81
2009 IF (jqmode.NE.0) GO TO 63
2010 nqln = lqend(kqt+jqdivi)
2011 le = nqln + ntot
2012 lqend(kqt+jqdivi) = le
2013 GO TO 65
2014 63 le = lqsta(kqt+jqdivi)
2015 nqln = le - ntot
2016 lqsta(kqt+jqdivi) = nqln
2017 65 nz = min(nzero,nqnd)
2018 IF (nz.EQ.0) nz=nqnd
2019 IF (nz.LT.0) nz=0
2020 nst = nqnio + nqnl
2021 nqls = nqln + nst + 1
2022 CALL vzeroi (lq(kqs+nqln+nqnio+1),nqnl+nz+9)
2023 nqioch(1) = msbyt(nst+12,nqioch(1),1,16)
2024 DO 67 j=0,nqnio
2025 67 lq(kqs+nqln+j) = nqioch(j+1)
2026 iq(kqs+nqls-5) = idn
2027 iq(kqs+nqls-4) = nqid
2028 iq(kqs+nqls-3) = nqnl
2029 iq(kqs+nqls-2) = nqns
2030 iq(kqs+nqls-1) = nqnd
2031 iq(kqs+nqls) = ishft(nqnio,18)
2032 IF (nqbia-1) 72, 73, 79
2033 72 lup = lqsup
2034 kadr = lqsup + nqbia
2035 lnext = lq(kqs+kadr)
2036 IF (nqbia.NE.0) GO TO 77
2037 lup = lq(kqs+lup+1)
2038 GO TO 77
2039 73 lnext = lqsup
2040 IF (lnext.NE.0) GO TO 74
2041 lup = 0
2042 kadr = locf(lsupp(1)) - lqstor
2043 IF (kadr.LT.lqsta(kqt+1)) GO TO 78
2044 IF (kadr.LT.lqsta(kqt+21)) GO TO 98
2045 GO TO 78
2046 74 lup = lq(kqs+lnext+1)
2047 kadr = lq(kqs+lnext+2)
2048 77 IF (lnext.EQ.0) GO TO 78
2049 lq(kqs+nqls) = lnext
2050 lq(kqs+lnext+2) = nqls
2051 78 lq(kqs+nqls+1) = lup
2052 lq(kqs+nqls+2) = kadr
2053 lq(kqs+kadr) = nqls
2054 79 lp(1) = nqls
2055 IF (nqlogl.GE.2)
2056 + WRITE (iqlog,9079) jqstor,jqdivi,nqls,lqsup,nqbia,
2057 + nqid,nqnl,nqns,nqnd
2058 9079 FORMAT (' MZLIFT- Store/Div',2i3,' L/LSUP/JBIAS=',2i9,i6,
2059 f' ID,NL,NS,ND= ',a4,2i6,i9)
2060 999 nqtrac = nqtrac - 2
2061 RETURN
2062 81 lqmst(kqt+1) = lqsup
2063 CALL mzgar1
2064 lqsup = lqmst(kqt+1)
2065 IF (nqbia.GE.1) GO TO 61
2066 kadr = locf (lsupp(1)) - lqstor
2067 IF (kadr.LT.lqsta(kqt+1)) GO TO 83
2068 IF (kadr.LT.lqsta(kqt+21)) GO TO 61
2069 83 lsupp(1) = lqsup
2070 GO TO 61
2071 98 nqcase = 8
2072 nqfata = 1
2073 iquest(18) = kadr
2074 GO TO 90
2075 97 nqcase = 7
2076 nqfata = 1
2077 iquest(18) = lsame
2078 GO TO 90
2079 94 nqcase = 4
2080 nqfata = 1
2081 iquest(18) = lnext
2082 GO TO 90
2083 96 nqcase = 1
2084 95 nqcase = nqcase + 2
2085 93 nqcase = nqcase + 1
2086 92 nqcase = nqcase + 1
2087 91 nqcase = nqcase + 1
2088 90 nqfata = nqfata + 7
2089 iquest(11) = lqsup
2090 iquest(12) = nqbia
2091 iquest(13) = nqid
2092 iquest(14) = nqnl
2093 iquest(15) = nqns
2094 iquest(16) = nqnd
2095 iquest(17) = ichorg
2096 iquest(9) = namesr(1)
2097 iquest(10)= namesr(2)
2098 END
2099
2100*-------------------------------------------------------------------------------
2101
2102 SUBROUTINE mzlink (IXSTOR,CHNAME,LAREA,LREF,LREFL)
2103 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
2104 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
2105 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
2106 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
2107 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
2108 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
2109 +, nqhol0,nqholl(95)
2110 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
2111 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
2112 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
2113 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
2114 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
2115 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
2116 COMMON /quest/ iquest(100)
2117 COMMON /zebq/ iqfenc(4), lq(100)
2118 dimension iq(92), q(92)
2119 equivalence(iq(1),lq(9)), (q(1),iq(1))
2120 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
2121 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
2122 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
2123 +, nqtrac,mqtrac(48)
2124 equivalence(kqsp,nqoffs(1))
2125 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
2126 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
2127 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
2128 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
2129 dimension iqcur(16)
2130 equivalence(iqcur(1),lqstor)
2131 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
2132 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
2133 +, lqsyss(10), lqsysr(10), iqtdum(22)
2134 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
2135 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
2136 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
2137 +, nqdpsh(20),nqdred(20),nqdsiz(20)
2138 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
2139 dimension iqtabv(16)
2140 equivalence(iqtabv(1),lqpsto)
2141 dimension larea(9),lref(9),lrefl(9),name(2)
2142 CHARACTER *(*) CHNAME
2143 dimension namesr(2)
2144 DATA namesr / 4hmzli, 4hnk /
2145 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
2146 mqtrac(nqtrac+1) = namesr(1)
2147 mqtrac(nqtrac+2) = namesr(2)
2148 nqtrac = nqtrac + 2
2149 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
2150******IF (IQVSTA.NE.0) CALL ZVAUTX
2151 lsys = lqsyss(kqt+1)
2152 nwtab = iq(kqs+lsys+1)
2153 IF (nwtab+5.GT.iq(kqs+lsys-1)) THEN
2154 jqdivi = jqdvsy
2155 CALL mzpush (-7,lsys,0,100,'I')
2156 lqsyss(kqt+1) = lsys
2157 ENDIF
2158 lsto = lsys + nwtab
2159 locar = locf(larea(1)) - lqstor
2160 locr = locf(lref(1)) - lqstor
2161 locrl = locf(lrefl(1)) - lqstor
2162 ns = locr - locar
2163 nl = locrl+1 - locar
2164 IF (nl.EQ.1) THEN
2165 ns = ns + 1
2166 nl = ns
2167 ENDIF
2168 locare = locar + nl
2169 modar = ns
2170 name(1) = iqblan
2171 name(2) = iqblan
2172 n = min(8, len(chname))
2173 IF (n.NE.0) CALL uctoh (chname,name,4,n)
2174 iq(kqs+lsto+1) = locar
2175 iq(kqs+lsto+2) = locare
2176 iq(kqs+lsto+3) = modar
2177 iq(kqs+lsto+4) = name(1)
2178 iq(kqs+lsto+5) = name(2)
2179 iqtabv(kqt+13) = min(iqtabv(kqt+13), locar)
2180 iqtabv(kqt+14) = max(iqtabv(kqt+14), locare)
2181 IF (nqlogl.GE.0)
2182 +WRITE (iqlog,9039) name,jqstor,nl,ns
2183 9039 FORMAT (1x/' MZLINK. Initialize Link Area ',2a4,' for Store'
2184 f,i3,' NL/NS=',2i6)
2185 IF (locr .LT.locar) GO TO 91
2186 IF (locrl.LT.locar) GO TO 91
2187 IF (nl.LT.ns) GO TO 91
2188 kla = kqs + locar
2189 kle = kqs + locare
2190 DO 47 jsto=1,nqstor+1
2191 IF (nqallo(jsto).NE.0) GO TO 47
2192 jt = nqofft(jsto)
2193 js = nqoffs(jsto)
2194 jsa = js - iqtabv(jt+2) + 1
2195 jse = js + lqsta(jt+21) + 1
2196 jta = jt + lqbtis + 1
2197 jte = jta + nqtsys
2198 IF (kle.GT.jta .AND. kla.LT.jte) GO TO 92
2199 IF (kle.GT.jsa .AND. kla.LT.jse) GO TO 93
2200 l = js+ lqsyss(jt+1)
2201 n = iq(l+1)
2202 IF (n.LT.12) GO TO 47
2203 DO 44 j=12,n,5
2204 jla = js + iq(l+j)
2205 jle = js + iq(l+j+1)
2206 IF (kle.GT.jla .AND. kla.LT.jle) GO TO 94
2207 44 CONTINUE
2208 47 CONTINUE
2209 61 iq(kqs+lsys+1) = nwtab + 5
2210 CALL vzeroi (larea,nl)
2211 999 nqtrac = nqtrac - 2
2212 RETURN
2213 94 nqcase = 1
2214 nqfata = 3
2215 iquest(21) = iq(l+j+3)
2216 iquest(22) = iq(l+j+4)
2217 iquest(23) = jla + lqstor
2218 93 nqcase = nqcase + 1
2219 92 nqcase = nqcase + 1
2220 nqfata = nqfata + 3
2221 iquest(18) = jsto - 1
2222 iquest(19) = nqpnam(jt+1)
2223 iquest(20) = nqpnam(jt+2)
2224 91 nqcase = nqcase + 1
2225 nqfata = nqfata + 7
2226 iquest(11) = name(1)
2227 iquest(12) = name(2)
2228 iquest(13) = locar + lqstor
2229 iquest(14) = locr + lqstor
2230 iquest(15) = locrl + lqstor
2231 iquest(16) = ns
2232 iquest(17) = nl
2233 iquest(9) = namesr(1)
2234 iquest(10)= namesr(2)
2235 END
2236
2237*-------------------------------------------------------------------------------
2238
2239 SUBROUTINE mzpush (IXDIV,LORGP,INCNLP,INCNDP,CHOPT)
2240 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
2241 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
2242 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
2243 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
2244 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
2245 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
2246 +, nqhol0,nqholl(95)
2247 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
2248 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
2249 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
2250 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
2251 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
2252 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
2253 COMMON /quest/ iquest(100)
2254 COMMON /zebq/ iqfenc(4), lq(100)
2255 dimension iq(92), q(92)
2256 equivalence(iq(1),lq(9)), (q(1),iq(1))
2257 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
2258 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
2259 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
2260 +, nqtrac,mqtrac(48)
2261 equivalence(kqsp,nqoffs(1))
2262 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
2263 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
2264 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
2265 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
2266 dimension iqcur(16)
2267 equivalence(iqcur(1),lqstor)
2268 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
2269 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
2270 +, lqsyss(10), lqsysr(10), iqtdum(22)
2271 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
2272 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
2273 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
2274 +, nqdpsh(20),nqdred(20),nqdsiz(20)
2275 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
2276 dimension iqtabv(16)
2277 equivalence(iqtabv(1),lqpsto)
2278 COMMON /mzcl/ nqln,nqls,nqnio,nqid,nqnl,nqns,nqnd,nqioch(16)
2279 +, lqsup,nqbia, nqiosv(3)
2280 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
2281 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
2282 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
2283 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
2284 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
2285 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
2286 +, lqmtc1,lqmtc2, nqfrtc,nqlive
2287 dimension ixdiv(9),lorgp(9),incnlp(9),incndp(9)
2288 CHARACTER *(*) CHOPT
2289 dimension namesr(2)
2290 DATA namesr / 4hmzpu, 4hsh /
2291 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
2292 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
2293 msbyt(mz,izw,izp,nzb) = ior(
2294 + iand(izw, not(ishft(ishft(not(0),-(32-nzb)),izp-1)))
2295 + ,ishft(ishft(mz,32-nzb), -(33-izp-nzb)) )
2296 mqtrac(nqtrac+1) = namesr(1)
2297 mqtrac(nqtrac+2) = namesr(2)
2298 nqtrac = nqtrac + 2
2299 IF (ixdiv(1).EQ.-7) GO TO 12
2300 CALL mzsdiv (ixdiv,0)
2301 12 CALL mzchnb (lorgp)
2302 lorg = lorgp(1)
2303 incnl = incnlp(1)
2304 incnd = incndp(1)
2305 CALL uoptc (chopt,'RI',iquest)
2306 iflag = min(2, iquest(1)+2*iquest(2))
2307 IF ((incnl.EQ.0) .AND. (incnd.EQ.0)) GO TO 999
2308 lqsysr(kqt+1) = lorg
2309 jqdivi = mzfdiv(-7, lorg)
2310 IF (jqdivi.EQ.0) GO TO 91
2311 CALL mzchls (-7,lorg)
2312 IF (iqfoul.NE.0) GO TO 91
2313 nl = iqnl
2314 ns = iqns
2315 nd = iqnd
2316 nqnio = iqnio
2317 nqid = iqid
2318 nqnl = nl + incnl
2319 nqns = min(ns,nqnl)
2320 nqnd = nd + incnd
2321 IF (ns.EQ.nl) nqns = nqnl
2322 IF (nqlogl.GE.2)
2323 + WRITE (iqlog,9032) jqstor,jqdivi,lorg,nqid,incnl,incnd,chopt
2324 9032 FORMAT (' MZPUSH- Store/Div',2i3,' L/ID/INCNL/INCND/OPT=',
2325 fi9,1x,a4,2i7,1x,a)
2326 IF (jbit(iq(kqs+lorg),iqdrop).NE.0) GO TO 92
2327 IF (nqnd+nqnl.GE.lqsta(kqt+21)) GO TO 93
2328 IF (nqnd.LT.0) GO TO 93
2329 IF (nqnl.GT.64000) GO TO 93
2330 IF (nqns.LT.0) GO TO 93
2331 nlc = min(nl,nqnl)
2332 nsc = min(ns,nqns)
2333 ndc = min(nd,nqnd)
2334 IF (nqns.GE.ns) GO TO 36
2335 l = lorg - ns - 1
2336 ld = lorg - nqns
2337 34 l = l + 1
2338 IF (l.GE.ld) GO TO 36
2339 lnz = lq(kqs+l)
2340 35 IF (lnz.EQ.0) GO TO 34
2341 IF (lq(kqs+lnz+2).NE.l) GO TO 34
2342 IF (jbit(iq(kqs+lnz),iqdrop).EQ.0) GO TO 94
2343 lnz = lq(kqs+lnz)
2344 GO TO 35
2345 36 ln = lorg - nl - nqnio - 1
2346 CALL ucopyi (lq(kqs+ln),nqioch,nqnio+1)
2347 IF (nqnio.NE.0) nqiosv(1)=0
2348 nqioch(1) = msbyt(nqnl+nqnio+12,nqioch(1),1,16)
2349 41 le = lorg + nd + 9
2350 inctt = incnl + incnd
2351 incmx = max(incnl,incnd)
2352 incmi = min(incnl,incnd)
2353 CALL mzresv
2354 IF (jqmode.NE.0) GO TO 45
2355 IF (le.NE.lqend(kqt+jqdivi)) GO TO 51
2356 IF (incnl.GE.0) GO TO 42
2357 IF (iflag.NE.1) GO TO 42
2358 IF ((nqresv.GE.inctt).AND.(nqresv.LT.incnd)) GO TO 42
2359 lnn = ln - incnl
2360 CALL ucopyi (nqioch,lq(kqs+lnn),nqnio+1)
2361 iq(kqs+lorg-3) = nqnl
2362 iq(kqs+lorg-2) = nqns
2363 nwd = -incnl
2364 CALL mzpudx (ln,nwd)
2365 incnl = 0
2366 inctt = incnd
2367 ln = lnn
2368 nl = nqnl
2369 42 nqresv = nqresv - inctt
2370 IF (nqresv.LT.0) GO TO 49
2371 ndelta = incnl
2372 lnew = lorg + ndelta
2373 lqend(kqt+jqdivi) = lqend(kqt+jqdivi) + inctt
2374 IF (ndelta.EQ.0) THEN
2375 iq(kqs+lnew-1) = nqnd
2376 IF (iflag.NE.0) GO TO 81
2377 IF (incmi.GE.0) GO TO 81
2378 GO TO 71
2379 ELSE
2380 CALL ucopy2 (lq(kqs+lorg-nlc),lq(kqs+lnew-nlc),nlc+ndc+9)
2381 IF (incnl.GT.0) CALL vzeroi (lq(kqs+lnew-nqnl),incnl)
2382 lq(kqs+ln) = nqioch(1)
2383 iq(kqs+lnew-3) = nqnl
2384 iq(kqs+lnew-2) = nqns
2385 iq(kqs+lnew-1) = nqnd
2386 GO TO 61
2387 ENDIF
2388 45 IF (ln.NE.lqsta(kqt+jqdivi)) GO TO 51
2389 IF (incnd.GE.0) GO TO 47
2390 IF (iflag.NE.1) GO TO 47
2391 IF ((nqresv.GE.inctt).AND.(nqresv.LT.incnl)) GO TO 47
2392 iq(kqs+lorg-1) = nqnd
2393 l = le + incnd
2394 nwd = -incnd
2395 CALL mzpudx (l,nwd)
2396 incnd = 0
2397 inctt = incnl
2398 nd = nqnd
2399 47 nqresv = nqresv - inctt
2400 IF (nqresv.LT.0) GO TO 49
2401 lnn = ln - inctt
2402 ndelta = -incnd
2403 lqsta(kqt+jqdivi) = lnn
2404 lnew = lorg + ndelta
2405 IF (ndelta.NE.0) CALL ucopy2 (lq(kqs+lorg-nlc)
2406 +, lq(kqs+lnew-nlc), nlc+ndc+9)
2407 IF (incnl.GT.0) CALL vzeroi (lq(kqs+lnew-nqnl),incnl)
2408 CALL ucopyi (nqioch,lq(kqs+lnn),nqnio+1)
2409 iq(kqs+lnew-3) = nqnl
2410 iq(kqs+lnew-2) = nqns
2411 iq(kqs+lnew-1) = nqnd
2412 IF (ndelta.NE.0) GO TO 61
2413 IF (iflag.NE.0) GO TO 81
2414 IF (incmi.GE.0) GO TO 81
2415 GO TO 71
2416 49 CALL mzgar1
2417 lorg = lqsysr(kqt+1)
2418 ln = lorg - nl - nqnio - 1
2419 GO TO 41
2420 51 IF (incmx.GT.0) GO TO 56
2421 IF (incnl.EQ.0) GO TO 52
2422 lnn = ln - incnl
2423 CALL ucopyi (nqioch,lq(kqs+lnn),nqnio+1)
2424 iq(kqs+lorg-3)= nqnl
2425 iq(kqs+lorg-2)= nqns
2426 CALL mzpudx (ln,-incnl)
2427 IF (incnd.EQ.0) GO TO 54
2428 52 iq(kqs+lorg-1) = nqnd
2429 ld = le + incnd
2430 nwd = -incnd
2431 CALL mzpudx (ld,nwd)
2432 54 lnew = lorg
2433 ndelta = 0
2434 IF (iflag.NE.0) GO TO 999
2435 GO TO 71
2436 56 j = 64*(32*nqnio + nqnio + 1) + 1
2437 nqioch(1) = msbyt(j,nqioch(1),1,16)
2438 nqbia = 2
2439 CALL mzlift (-7,lnew,0,63,nqid,-1)
2440 lorg = lqsysr(kqt+1)
2441 ndelta = lnew - lorg
2442 CALL ucopyi (lq(kqs+lorg-nlc),lq(kqs+lnew-nlc),nlc+4)
2443 CALL ucopyi (iq(kqs+lorg), iq(kqs+lnew), ndc+1)
2444 iq(kqs+lorg) = msbit1(iq(kqs+lorg),iqdrop)
2445 61 IF (iflag.LT.2) GO TO 71
2446 k = lq(kqs+lnew+2)
2447 IF (k.EQ.0) GO TO 62
2448 IF (lq(kqs+k).NE.lorg) GO TO 95
2449 lq(kqs+k) = lnew
2450 62 k = lnew
2451 l = lq(kqs+k)
2452 IF (l.EQ.0) GO TO 65
2453 IF (l.EQ.lorg) GO TO 64
2454 lq(kqs+l+2) = k
2455 63 k = l
2456 l = lq(kqs+k)
2457 IF (l.EQ.0) GO TO 65
2458 IF (l.NE.lorg) GO TO 63
2459 64 lq(kqs+k) = lnew
2460 65 k = lnew - nsc - 1
2461 66 k = k + 1
2462 IF (k.GE.lnew) GO TO 81
2463 l = lq(kqs+k)
2464 IF (l.EQ.0) GO TO 66
2465 IF (lq(kqs+l+2).NE.k-ndelta) GO TO 66
2466 lq(kqs+l+2) = k
2467 lf = l
2468 68 lq(kqs+l+1) = lnew
2469 l = lq(kqs+l)
2470 IF (l.EQ.lf) GO TO 66
2471 IF (l.NE.0) GO TO 68
2472 GO TO 66
2473 71 mqdvga = 0
2474 mqdvwi = 0
2475 jqstmv = -1
2476 IF (nqlogl.GE.1)
2477 + WRITE (iqlog,9071) jqstor,jqdivi,lorg,nqid
2478 9071 FORMAT (' MZPUSH- Store/Div',2i3,' Relocation pass for L/ID ='
2479 f,i9,1x,a4)
2480 CALL mztabm
2481 lmt = lqmta - 8
2482 74 lmt = lmt + 8
2483 IF (lq(lmt).NE.jqdivi) GO TO 74
2484 lq(lmt+1) = 2
2485 CALL mztabx
2486 lqmte = lqmtlu
2487 lq(lqta-1) = lorg - nl - nqnio - 1
2488 lq(lqta) = lorg - nlc
2489 lq(lqta+1) = lorg + ndc + 9
2490 lq(lqta+2) = ndelta
2491 lq(lqta+3) = 0
2492 lq(lqta+4) = lorg + nd + 9
2493 lqte = lqta + 4
2494 CALL mzrelx
2495 nqdpsh(kqt+jqdivi) = nqdpsh(kqt+jqdivi) + 1
2496 81 lorgp(1) = lnew
2497 IF (incnd.GT.0) CALL vzeroi (iq(kqs+lnew+nd+1),incnd)
2498 999 nqtrac = nqtrac - 2
2499 RETURN
2500 95 nqcase = 3
2501 nqfata = 1
2502 iquest(19) = k
2503 GO TO 92
2504 94 nqcase = 1
2505 nqfata = 2
2506 iquest(19) = l - lorg
2507 iquest(20) = lq(kqs+l)
2508 93 nqcase = nqcase + 1
2509 92 nqcase = nqcase + 1
2510 nqfata = nqfata + 7
2511 iquest(12) = nqid
2512 iquest(13) = ns
2513 iquest(14) = nl
2514 iquest(15) = nd
2515 iquest(16) = nqnio
2516 iquest(17) = incnl
2517 iquest(18) = incnd
2518 91 nqcase = nqcase + 1
2519 nqfata = nqfata + 1
2520 iquest(11) = lorg
2521 iquest(9) = namesr(1)
2522 iquest(10)= namesr(2)
2523 END
2524
2525*-------------------------------------------------------------------------------
2526
2527 SUBROUTINE mzneed (IXDIV,NEEDP,CHOPT)
2528 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
2529 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
2530 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
2531 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
2532 COMMON /quest/ iquest(100)
2533 COMMON /zebq/ iqfenc(4), lq(100)
2534 dimension iq(92), q(92)
2535 equivalence(iq(1),lq(9)), (q(1),iq(1))
2536 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
2537 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
2538 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
2539 +, nqtrac,mqtrac(48)
2540 equivalence(kqsp,nqoffs(1))
2541 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
2542 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
2543 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
2544 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
2545 dimension iqcur(16)
2546 equivalence(iqcur(1),lqstor)
2547 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
2548 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
2549 +, lqsyss(10), lqsysr(10), iqtdum(22)
2550 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
2551 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
2552 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
2553 +, nqdpsh(20),nqdred(20),nqdsiz(20)
2554 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
2555 dimension iqtabv(16)
2556 equivalence(iqtabv(1),lqpsto)
2557 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
2558 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
2559 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
2560 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
2561 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
2562 +, lqmtc1,lqmtc2, nqfrtc,nqlive
2563 dimension ixdiv(9),needp(9)
2564 CHARACTER *(*) CHOPT
2565 dimension namesr(2)
2566 DATA namesr / 4hmzne, 4hed /
2567 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
2568 mqtrac(nqtrac+1) = namesr(1)
2569 mqtrac(nqtrac+2) = namesr(2)
2570 nqtrac = nqtrac + 2
2571 jdv = ixdiv(1)
2572 need = needp(1)
2573 IF (jbyt(jdv,27,6).NE.jqstor) GO TO 22
2574 jqdivi = jbyt(jdv,1,26)
2575 IF (jqdivi.EQ.0) GO TO 22
2576 IF (jqdivi.LT.21) GO TO 23
2577 22 CALL mzsdiv (jdv,4)
2578 23 CONTINUE
2579 CALL mzresv
2580 nqresv = nqresv - need
2581 IF (nqresv.LT.0) GO TO 41
2582 28 iquest(11) = nqresv
2583 iquest(12) = lqend(kqt+jqdivi) - lqsta(kqt+jqdivi)
2584 iquest(13) = nqdmax(kqt+jqdivi)
2585 IF (nqlogl.GE.2)
2586 + WRITE (iqlog,9029) jqstor,jqdivi,need,nqresv,chopt
2587 9029 FORMAT (' MZNEED- Store/Div',2i3,' NEED/Excess=',2i8
2588 f,' Opt=',a)
2589 999 nqtrac = nqtrac - 2
2590 RETURN
2591 41 CALL uoptc (chopt,'G',iquest)
2592 IF (iquest(1).EQ.0) GO TO 28
2593 nqperm = 1
2594 CALL mzgar1
2595 nqperm = 0
2596 GO TO 28
2597 END
2598
2599*-------------------------------------------------------------------------------
2600
2601 SUBROUTINE rzdate(IWORD,IDATE,ITIME,ICASE)
2602 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
2603 IF(icase.EQ.1)THEN
2604 icont = jbyt(iword,9,24)
2605 iminut= mod(icont,60)
2606 im1 = icont-iminut
2607 ihour = mod(im1/60,24)
2608 itime = 100*ihour+iminut
2609 im2 = im1-60*ihour
2610 iday = mod(im2/1440,31)
2611 IF(iday.EQ.0)iday=31
2612 im3 = im2-1440*iday
2613 imonth= mod(im3/44640,12)
2614 IF(imonth.EQ.0)imonth=12
2615 iyear = (im3-44640*imonth)/535680
2616 IF(iyear.GE.14) THEN
2617 idate = 10000*(iyear-14)+100*imonth+iday
2618 ELSE
2619 idate = 860000+10000*iyear+100*imonth+iday
2620 ENDIF
2621 ELSE
2622****** IF(ICASE.NE.3)CALL DATIME(IDATE,ITIME)
2623 IF(idate.GE.860000) THEN
2624 idat2 = idate - 860000
2625 ELSE
2626 idat2 = idate + 140000
2627 ENDIF
2628 iyear = idat2/10000
2629 imonth= (idat2-10000*iyear)/100
2630 iday = mod(idat2,100)
2631 ihour = itime/100
2632 iminut= mod(itime,100)
2633 icont2= iday+31*(imonth+12*iyear)
2634 icont = iminut+60*(ihour+24*icont2)
2635 CALL sbyt(icont,iword,9,24)
2636 ENDIF
2637 END
2638
2639*-------------------------------------------------------------------------------
2640
2641 SUBROUTINE rzcdir(CHPATH,CHOPT)
2642 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
2643 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
2644 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
2645 COMMON /quest/ iquest(100)
2646 COMMON /zebq/ iqfenc(4), lq(100)
2647 dimension iq(92), q(92)
2648 equivalence(iq(1),lq(9)), (q(1),iq(1))
2649 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
2650 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
2651 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
2652 +, nqtrac,mqtrac(48)
2653 equivalence(kqsp,nqoffs(1))
2654 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
2655 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
2656 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
2657 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
2658 dimension iqcur(16)
2659 equivalence(iqcur(1),lqstor)
2660 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
2661 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
2662 +, lqsyss(10), lqsysr(10), iqtdum(22)
2663 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
2664 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
2665 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
2666 +, nqdpsh(20),nqdred(20),nqdsiz(20)
2667 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
2668 dimension iqtabv(16)
2669 equivalence(iqtabv(1),lqpsto)
2670 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
2671 +, ltemp,lcord,lfrom
2672 equivalence(lqrs,lqsyss(7))
2673 parameter(nlpatm=100)
2674 COMMON /rzdirn/nlcdir,nlndir,nlpat
2675 COMMON /rzdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
2676 CHARACTER*16 CHNDIR, CHCDIR, CHPAT
2677 COMMON /rzch/ chwold,chl
2678 CHARACTER*255 CHWOLD,CHL
2679 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
2680 +, izrecl,imodec,imodeh
2681 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
2682 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
2683 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
2684 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
2685 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
2686 dimension ioptv(5)
2687 equivalence(ioptr,ioptv(1)), (ioptp,ioptv(2)), (ioptu,ioptv(3))
2688 equivalence(ioptk,ioptv(4)), (ioptq,ioptv(5))
2689 CHARACTER*(*) CHPATH,CHOPT
2690 CHARACTER*1 COPTQ
2691 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
2692 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
2693 iquest(1)=0
2694 CALL uoptc (chopt,'RPUKQ',ioptv)
2695 IF(ioptk.NE.0) ioptu=0
2696 IF(ioptr.NE.0) chpath = ' '
2697 IF(lqrs.EQ.0) THEN
2698 iquest(1) = 4
2699 GOTO 999
2700 ENDIF
2701 lrz=lqrs
2702 10 IF(lrz.EQ.0) GOTO 20
2703 IF(iq(kqsp+lrz-5).NE.0) GOTO 30
2704 lrz=lq(kqsp+lrz)
2705 GO TO 10
2706 20 CONTINUE
2707 iquest(1) = 5
2708 GOTO 999
2709 30 CONTINUE
2710 IF(ioptr.NE.0)THEN
2711 CALL rzpaff(chcdir,nlcdir,chpath)
2712 GO TO 999
2713 ENDIF
2714 IF(ioptp.NE.0)THEN
2715 CALL rzpaff(chcdir,nlcdir,chl)
2716 WRITE(iqprnt,10000)chl(1:lenocc(chl))
271710000 FORMAT(' Current Working Directory = ',a)
2718 GO TO 999
2719 ENDIF
2720 coptq = ' '
2721 IF(ioptq.NE.0) coptq = 'Q'
2722 IF(lcdir.NE.0.AND.isave.NE.0.AND.ioptk.EQ.0)THEN
2723 lbank=lcdir
2724 40 IF(lbank.NE.ltop)THEN
2725 lup=lq(kqsp+lbank+1)
2726 IF(ioptu.EQ.0)THEN
2727 CALL sbit1(iq(kqsp+lbank),iqdrop)
2728 ELSE
2729 CALL mzdrop(jqpdvs,lbank,' ')
2730 iq(kqsp+ltop+kirin)=0
2731 ENDIF
2732 lbank=lup
2733 IF(lbank.NE.0)GO TO 40
2734 ENDIF
2735 ENDIF
2736 IF(ioptu.NE.0)THEN
2737 print*,'>>>>>> CALL RZRTOP'
2738****** CALL RZRTOP
2739 ENDIF
2740 IF(isave.NE.0)THEN
2741 CALL rzsave
2742 ENDIF
2743 CALL rzpath(chpath)
2744 CALL rzfdir('RZCDIR',lt,ldir,coptq)
2745 IF(ldir.NE.0)THEN
2746 nlcdir= nlpat
2747 lcdir = ldir
2748 ltop = lt
2749 DO 50 i=1,nlpat
2750 chcdir(i)=chpat(i)
2751 50 CONTINUE
2752 ELSE
2753 IF(lcdir.NE.0)CALL sbit0(iq(kqsp+lcdir),iqdrop)
2754 GO TO 999
2755 ENDIF
2756 lfree = lq(kqsp+ltop-2)
2757 lused = lq(kqsp+ltop-3)
2758 lpurg = lq(kqsp+ltop-5)
2759 lrout = lq(kqsp+ltop-6)
2760 lrin = lq(kqsp+ltop-7)
2761 lb = iq(kqsp+ltop+klb)
2762 lrec = iq(kqsp+ltop+lb+1)
2763 lun = iq(kqsp+ltop-5)
2764 izrecl = iq(kqsp+ltop+lb+1)
2765 imodec = jbit(iq(kqsp+ltop),5)
2766 imodeh = jbit(iq(kqsp+ltop),6)
2767 imodex = jbit(iq(kqsp+ltop+kpw1+2),12)
2768 iquest(7)=iq(kqsp+lcdir+knkeys)
2769 iquest(8)=iq(kqsp+lcdir+knwkey)
2770 iquest(9)=iq(kqsp+lcdir+knsd)
2771 iquest(10)=iq(kqsp+lcdir+kquota)
2772 iquest(11)=lcdir
2773 iquest(12)=ltop
2774 iquest(13)=iq(kqsp+lcdir+klk)
2775 CALL rzdate(iq(kqsp+lcdir+kdatec),idatec,itimec,1)
2776 CALL rzdate(iq(kqsp+lcdir+kdatem),idatem,itimem,1)
2777 iquest(14)=idatec
2778 iquest(15)=itimec
2779 iquest(16)=idatem
2780 iquest(17)=itimem
2781 iquest(18)=iq(kqsp+lcdir+krused)
2782 iquest(19)=iq(kqsp+lcdir+kmega)
2783 iquest(20)=iq(kqsp+lcdir+kwused)
2784 iquest(21)=iq(kqsp+lcdir+iq(kqsp+lcdir+kld))
2785 IF(jbyt(iq(kqsp+lcdir+kpw1+2),6,5).NE.0)THEN
2786 IF(iq(kqsp+lcdir+kpw1).NE.ihpwd(1).OR.
2787 + iq(kqsp+lcdir+kpw1+1).NE.ihpwd(2))THEN
2788 CALL sbit1(iq(kqsp+lcdir),1)
2789 ELSE
2790 CALL sbit0(iq(kqsp+lcdir),1)
2791 ENDIF
2792 ENDIF
2793 IF(jbit(iq(kqsp+ltop),1).NE.0)CALL sbit1(iq(kqsp+lcdir),1)
2794 999 END
2795
2796*-------------------------------------------------------------------------------
2797
2798 SUBROUTINE rzfile(LUNIN,CHDIR,CHOPT)
2799 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
2800 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
2801 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
2802 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
2803 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
2804 COMMON /quest/ iquest(100)
2805 COMMON /zebq/ iqfenc(4), lq(100)
2806 dimension iq(92), q(92)
2807 equivalence(iq(1),lq(9)), (q(1),iq(1))
2808 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
2809 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
2810 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
2811 +, nqtrac,mqtrac(48)
2812 equivalence(kqsp,nqoffs(1))
2813 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
2814 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
2815 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
2816 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
2817 dimension iqcur(16)
2818 equivalence(iqcur(1),lqstor)
2819 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
2820 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
2821 +, lqsyss(10), lqsysr(10), iqtdum(22)
2822 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
2823 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
2824 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
2825 +, nqdpsh(20),nqdred(20),nqdsiz(20)
2826 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
2827 dimension iqtabv(16)
2828 equivalence(iqtabv(1),lqpsto)
2829 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
2830 +, ltemp,lcord,lfrom
2831 equivalence(lqrs,lqsyss(7))
2832 parameter(nlpatm=100)
2833 COMMON /rzdirn/nlcdir,nlndir,nlpat
2834 COMMON /rzdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
2835 CHARACTER*16 CHNDIR, CHCDIR, CHPAT
2836 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
2837 +, izrecl,imodec,imodeh
2838 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
2839 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
2840 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
2841 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
2842 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
2843 common/rzckey/ihead(3),key(100),key2(100),keydum(50)
2844 INTEGER KLCYCL, KPPCYC, KFRCYC, KSRCYC, KFLCYC, KORCYC,
2845 + kcncyc, knwcyc, kkycyc, kvscyc
2846 common/rzcycle/klcycl, kppcyc, kfrcyc, ksrcyc, kflcyc, korcyc,
2847 + kcncyc, knwcyc, kkycyc, kvscyc
2848 COMMON /rzbuff/ itest(8704)
2849 CHARACTER CHOPT*(*),CHDIR*(*)
2850 CHARACTER*16 CHTOP
2851 dimension ioptv(10)
2852 equivalence(ioptm,ioptv(1)), (ioptu,ioptv(2))
2853 equivalence(iopts,ioptv(3)), (ioptl,ioptv(4))
2854 equivalence(iopt1,ioptv(5)), (ioptd,ioptv(6))
2855 equivalence(ioptc,ioptv(7)), (ioptx,ioptv(8))
2856 equivalence(ioptb,ioptv(9)), (iopth,ioptv(10))
2857 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
2858 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
2859 iquest(1)=0
2860 loglv = min(nqlogd,4)
2861 loglv = max(loglv,-3)
2862 lunsa = lun
2863 lunp = lunin
2864 CALL rzsave
2865 CALL uoptc (chopt,'MUSL1DCXBH',ioptv)
2866 irelat=0
2867 imodec=ioptc
2868 imodeh=iopth
2869 imodex=ioptx
2870 IF(ioptc.NE.0) THEN
2871 lrecp = iquest(10)
2872 lunp = iquest(11)
2873 ENDIF
2874 IF(iopth.NE.0) THEN
2875 lrecp = iquest(10)
2876 lun = iquest(11)
2877 luser = lunin
2878 ENDIF
2879 IF(ioptm.NE.0)THEN
2880 lrecp=1024
2881 lun=-99
2882 ELSEIF(iopth.EQ.0) THEN
2883 izrecl=lrecp
2884 CALL rziodo(lunp,50,2,itest,1)
2885 IF(ioptx.EQ.0) THEN
2886 CALL vxinvb(itest(9),1)
2887 IF(jbit(itest(9),12).NE.0)THEN
2888 imodex=1
2889 CALL rziodo(lunp,50,2,itest,1)
2890 ELSE
2891 CALL vxinvb(itest(9),1)
2892 ENDIF
2893 ENDIF
2894 IF(iquest(1).NE.0)GO TO 30
2895 lb=itest(klb)
2896 IF(lb.GT.48)CALL rziodo(lunp,lb+6,2,itest,1)
2897 IF(lb.GT.100)THEN
2898 IF(loglv.GE.-1) WRITE(iqlog,10000)
289910000 FORMAT(' RZFILE. WARNING!! Top directory is big')
2900 ENDIF
2901 lrecp=itest(lb+1)
2902 lun=lunp
2903 iquest(1)=0
2904 ENDIF
2905 IF(loglv.GE.0) WRITE(iqlog,10200) lun,lrecp,chopt
290610200 FORMAT(' RZFILE. UNIT ',i6,' Initializing with LREC=',i6,
2907 +', OPT= ',a)
2908 CALL mzsdiv (0,-7)
2909 lrz=lqrs
2910 10 IF(lrz.NE.0)THEN
2911 IF(iq(kqsp+lrz-5).EQ.lun)THEN
2912 iquest(1)=1
2913 IF(loglv.GE.-2) WRITE(iqlog,10300)
291410300 FORMAT(' RZFILE. Unit is already in use')
2915 lun=lunsa
2916 GO TO 30
2917 ELSE
2918 lrz=lq(kqsp+lrz)
2919 GO TO 10
2920 ENDIF
2921 ENDIF
2922 IF(lqrs.EQ.0)THEN
2923 CALL mzlink(jqpdvs,'RZCL',ltop,ltop,lfrom)
2924 CALL mzbook (jqpdvs,lrz0,lqrs,1,'RZ0 ',2,2,36,2,0)
2925 iq(kqsp+lrz0-5)=0
2926 isave = 1
2927 nhpwd = 0
2928 CALL vblank(ihpwd,2)
2929 ENDIF
2930 nchd = len(chdir)
2931 IF(nchd.GT.16)nchd=16
2932 chtop = chdir(1:nchd)
2933 CALL mzbook(jqpdvs,ltop,lqrs,1,'RZ ',10,9,lrecp,2,0)
2934 IF(ioptm.EQ.0)THEN
2935 iq(kqsp+ltop-5) = lun
2936 IF(ioptc.NE.0) CALL sbit1(iq(kqsp+ltop),5)
2937 IF(iopth.NE.0) THEN
2938 CALL sbit1(iq(kqsp+ltop),6)
2939 CALL sbyt(luser,iq(kqsp+ltop),7,7)
2940 ENDIF
2941 ELSE
2942 nmem=iq(kqsp+lrz0)+1
2943 iq(kqsp+lrz0)=nmem
2944 iq(kqsp+ltop-5)=-nmem
2945 IF(2*nmem.GT.iq(kqsp+lrz0-1))THEN
2946 CALL mzpush(jqpdvs,lrz0,0,10,' ')
2947 ENDIF
2948 iq(kqsp+lrz0+2*nmem-1)=locf(lunp)-locf(iq(1))+1
2949 iq(kqsp+lrz0+2*nmem )=lrecp
2950 lun=-nmem
2951 ENDIF
2952 CALL rziodo(lun,lrecp,2,iq(kqsp+ltop+1),1)
2953 IF(iquest(1).NE.0)GO TO 30
2954 ld = iq(kqsp+ltop+kld)
2955 lb = iq(kqsp+ltop+klb)
2956 lrec = iq(kqsp+ltop+lb+1)
2957 nrd = iq(kqsp+ltop+ld)
2958 imodex=jbit(iq(kqsp+ltop+kpw1+2),12)
2959 npush=nrd*lrec-lrecp
2960 IF(npush.NE.0)CALL mzpush(jqpdvs,ltop,0,npush,'I')
2961 DO 20 i=2,nrd
2962 CALL rziodo(lun,lrec,iq(kqsp+ltop+ld+i),
2963 + iq(kqsp+ltop+(i-1)*lrec+1),1)
2964 IF(iquest(1).NE.0)GO TO 30
2965 20 CONTINUE
2966 CALL vblank(iq(kqsp+ltop+1),4)
2967 CALL uctoh(chdir,iq(kqsp+ltop+1),4,nchd)
2968 CALL zhtoi(iq(kqsp+ltop+1),iq(kqsp+ltop+1),4)
2969 CALL sbyt(nchd,iq(kqsp+ltop+kpw1+2),1,5)
2970 CALL ucopyi(iq(kqsp+ltop+kpw1),ihpwd,2)
2971 nhpwd=jbyt(iq(kqsp+ltop+kpw1+2),6,5)
2972 iq(kqsp+ltop+kirin)=0
2973 iq(kqsp+ltop+kirout)=0
2974 lfree = 0
2975 lused = 0
2976 lrin = 0
2977 lpurg = 0
2978 lrout = 0
2979 lcdir = ltop
2980 nlcdir= 1
2981 nlndir= 1
2982 nlpat = 1
2983 chcdir(1)=chtop
2984 chndir(1)=chtop
2985 IF(ioptd.NE.0)THEN
2986 print*,'>>>>>> CALL RZDLOK'
2987****** CALL RZDLOK
2988 ENDIF
2989 IF(ioptl.NE.0)THEN
2990 print*,'>>>>>> CALL RZLLOK'
2991****** CALL RZLLOK
2992 ENDIF
2993 logl = loglv + 3
2994 CALL sbyt(logl,iq(kqsp+ltop),15,3)
2995 CALL rzvcyc(ltop)
2996 iquest(13) = iq(kqsp+ltop+krzver)
2997 IF(ioptb.NE.0) THEN
2998 print*,'>>>>>> CALL RZVERI(...)'
2999 ENDIF
3000 CALL sbit1(iq(kqsp+ltop),1)
3001 IF(ioptu.NE.0.OR.iopt1.NE.0)THEN
3002 CALL sbit0(iq(kqsp+ltop),1)
3003 CALL mzbook(jqpdvs,lfree,ltop,-2,'RZFR',0,0,21,2,0)
3004 iq(kqsp+lfree-5)=lun
3005 IF(iopts.EQ.0)THEN
3006 CALL sbit1(iq(kqsp+ltop),3)
3007 print*,'>>>>>> CALL RZLLOK'
3008****** CALL RZLOCK('RZFILE')
3009 IF(iquest(1).NE.0)THEN
3010 CALL sbit1(iq(kqsp+ltop),1)
3011 iq1=iquest(1)
3012 CALL mzdrop(jqpdvs,lfree,' ')
3013 lfree=0
3014 iquest(1)=2+iq1
3015 GO TO 30
3016 ENDIF
3017 ELSE
3018 CALL sbit0(iq(kqsp+ltop),3)
3019 ENDIF
3020 CALL mzbook(jqpdvs,lused,ltop,-3,'RZUS',0,0,21,2,0)
3021 iq(kqsp+lused-5)=lun
3022 ENDIF
3023 iquest(7)=iq(kqsp+lcdir+knkeys)
3024 iquest(8)=iq(kqsp+lcdir+knwkey)
3025 30 RETURN
3026 END
3027
3028*-------------------------------------------------------------------------------
3029
3030 SUBROUTINE rzfdir(CHROUT,LT,LDIR,CHOPT)
3031 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
3032 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
3033 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
3034 COMMON /quest/ iquest(100)
3035 COMMON /zebq/ iqfenc(4), lq(100)
3036 dimension iq(92), q(92)
3037 equivalence(iq(1),lq(9)), (q(1),iq(1))
3038 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
3039 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
3040 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
3041 +, nqtrac,mqtrac(48)
3042 equivalence(kqsp,nqoffs(1))
3043 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
3044 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
3045 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
3046 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
3047 dimension iqcur(16)
3048 equivalence(iqcur(1),lqstor)
3049 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
3050 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
3051 +, lqsyss(10), lqsysr(10), iqtdum(22)
3052 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
3053 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
3054 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
3055 +, nqdpsh(20),nqdred(20),nqdsiz(20)
3056 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
3057 dimension iqtabv(16)
3058 equivalence(iqtabv(1),lqpsto)
3059 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
3060 +, ltemp,lcord,lfrom
3061 equivalence(lqrs,lqsyss(7))
3062 parameter(nlpatm=100)
3063 COMMON /rzdirn/nlcdir,nlndir,nlpat
3064 COMMON /rzdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
3065 CHARACTER*16 CHNDIR, CHCDIR, CHPAT
3066 COMMON /rzch/ chwold,chl
3067 CHARACTER*255 CHWOLD,CHL
3068 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
3069 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
3070 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
3071 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
3072 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
3073 INTEGER KLCYCL, KPPCYC, KFRCYC, KSRCYC, KFLCYC, KORCYC,
3074 + kcncyc, knwcyc, kkycyc, kvscyc
3075 common/rzcycle/klcycl, kppcyc, kfrcyc, ksrcyc, kflcyc, korcyc,
3076 + kcncyc, knwcyc, kkycyc, kvscyc
3077 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
3078 +, izrecl,imodec,imodeh
3079 CHARACTER*(*) CHROUT
3080 CHARACTER*(*) CHOPT
3081 dimension ihdir(4)
3082 LOGICAL RZSAME
3083 INTEGER FQUOTA
3084 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
3085 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
3086 ioptq = index(chopt,'Q')
3087 lt=0
3088 ldir=0
3089 IF(lqrs.EQ.0) GOTO 110
3090 IF(nlpat.LE.0)THEN
3091 chl='??? '
3092 GOTO 90
3093 ENDIF
3094 CALL vblank(ihdir,4)
3095 CALL uctoh(chpat(1),ihdir,4,16)
3096 CALL zhtoi(ihdir,ihdir,4)
3097 lrz=lqrs
3098 10 IF(.NOT.rzsame(ihdir,iq(kqsp+lrz+1),4))THEN
3099 lrz = lq(kqsp+lrz)
3100 IF(lrz.GT.0)GOTO 10
3101 GOTO 80
3102 ENDIF
3103 ltemp = lrz
3104 lt = lrz
3105 ldir = lrz
3106 CALL rzvcyc(lt)
3107 IF(nlpat.LT.2)GOTO 110
3108 lbt = iq(kqsp+lrz+klb)
3109 lref = iq(kqsp+lrz+lbt+1)
3110 lunf = iq(kqsp+lrz-5)
3111 fquota = iq(kqsp+lrz+kquota)
3112 loglv = jbyt(iq(kqsp+lt),15,3)-3
3113 izrecl = iq(kqsp+lt+lbt+1) ! SWON: Needed by CFSEEK in RZIODO
3114 imodex = jbit(iq(kqsp+lt+kpw1+2),12)
3115 imodec = jbit(iq(kqsp+lt),5)
3116 imodeh = jbit(iq(kqsp+lt),6)
3117 DO 60 il=2,nlpat
3118 CALL vblank(ihdir,4)
3119 CALL uctoh(chpat(il),ihdir,4,16)
3120 CALL zhtoi(ihdir,ihdir,4)
3121 CALL sbit0(iq(kqsp+lrz),iqdrop)
3122 nsdir=iq(kqsp+lrz+knsd)
3123 ls =iq(kqsp+lrz+kls)
3124 IF(nsdir.LE.0)GOTO 80
3125 DO 50 i=1,nsdir
3126 ih=ls+7*(i-1)
3127 IF(rzsame(ihdir,iq(kqsp+lrz+ih),4))THEN
3128 IF (kvscyc.EQ.0) THEN
3129 irs = jbyt(iq(kqsp+lrz+ih+5),1,18)
3130 ELSE
3131 irs = iq(kqsp+lrz+ih+5)
3132 ENDIF
3133 iquest(20) = 0
3134 IF(irs.LE.0.OR.irs.GT.fquota) GOTO 100
3135 lrn = lq(kqsp+lrz-1)
3136 20 IF(lrn.EQ.0)THEN
3137 CALL mzbook(jqpdvs,ldir,lrz,-1,'RZ ',6,6,lref,2,-1)
3138 lrz=ldir
3139 CALL rziodo(lunf,lref,irs,iq(kqsp+lrz+1),1)
3140 IF(iquest(1).NE.0) GOTO 70
3141 lds=iq(kqsp+lrz+kld)
3142 IF(lds.GT.iq(kqsp+lrz-1)) GOTO 100
3143 IF(lds.LE.0) GOTO 100
3144 nrds=iq(kqsp+lrz+lds)
3145 IF(nrds.GT.1)THEN
3146 CALL mzpush(jqpdvs,lrz,0,lref*(nrds-1),' ')
3147 ldir=lrz
3148 iquest(20) = nrds
3149 iquest(21) = irs
3150 DO 30 ir=2,nrds
3151 irs=iq(kqsp+lrz+lds+ir)
3152 jr = 20 + ir
3153 IF(jr.LE.100) iquest(jr) = irs
3154 IF(irs.LE.0.OR.irs.GT.fquota) GOTO 100
3155 CALL rziodo(lunf,lref,irs,
3156 + iq(kqsp+lrz+(ir-1)*lref+1),1)
3157 IF(iquest(1).NE.0)GOTO 70
3158 30 CONTINUE
3159 ENDIF
3160 ELSE
3161 40 IF(rzsame(ihdir,iq(kqsp+lrn+1),4))THEN
3162 lrz = lrn
3163 ldir= lrn
3164 GOTO 60
3165 ELSE
3166 lrn=lq(kqsp+lrn)
3167 GOTO 20
3168 ENDIF
3169 ENDIF
3170 GOTO 60
3171 ENDIF
3172 50 CONTINUE
3173 GOTO 80
3174 60 CONTINUE
3175 CALL sbit0(iq(kqsp+ldir),iqdrop)
3176 lt=ltemp
3177 GOTO 110
3178 70 CONTINUE
3179 ldir = 0
3180 iquest(1) = 1
3181 GOTO 110
3182 80 CALL rzpaff(chpat,nlpat,chl)
3183 90 ldir=0
3184 iquest(1) = 2 ! SWON: Write a message if "Unknown directory"
3185 IF(loglv.GE.-2.AND.ioptq.EQ.0)THEN
3186 WRITE(iqlog,10000)chrout,chl(1:lenocc(chl))
318710000 FORMAT(1x,a,'. Unknown directory ',a)
3188 ENDIF
3189 GOTO 110
3190 100 CALL rzpaff(chpat,nlpat,chl)
3191 iquest(1) = 3
3192 ldir=0
3193 IF(loglv.GE.-2)THEN ! SWON: Write a message if RZ is in trouble
3194 WRITE(iqlog,10100)chrout,chl(1:lenocc(chl))
319510100 FORMAT(1x,a,'. Directory overwritten ',a)
3196 ENDIF
3197 110 RETURN
3198 END
3199
3200*-------------------------------------------------------------------------------
3201
3202 SUBROUTINE fzimtb
3203 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
3204 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
3205 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
3206 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
3207 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
3208 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
3209 +, nqhol0,nqholl(95)
3210 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
3211 COMMON /zmach/ nqbitw,nqbitc,nqchaw
3212 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
3213 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
3214 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
3215 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
3216 COMMON /quest/ iquest(100)
3217 COMMON /zebq/ iqfenc(4), lq(100)
3218 dimension iq(92), q(92)
3219 equivalence(iq(1),lq(9)), (q(1),iq(1))
3220 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
3221 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
3222 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
3223 +, nqtrac,mqtrac(48)
3224 equivalence(kqsp,nqoffs(1))
3225 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
3226 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
3227 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
3228 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
3229 dimension iqcur(16)
3230 equivalence(iqcur(1),lqstor)
3231 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
3232 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
3233 +, lqsyss(10), lqsysr(10), iqtdum(22)
3234 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
3235 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
3236 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
3237 +, nqdpsh(20),nqdred(20),nqdsiz(20)
3238 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
3239 dimension iqtabv(16)
3240 equivalence(iqtabv(1),lqpsto)
3241 equivalence(lqfs,lqsyss(4)), (lqff,lqsysr(4))
3242 +, (lqfi,lqsysr(5)), (lqfx,lqsysr(6))
3243 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
3244 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
3245 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
3246 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
3247 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
3248 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
3249 +, lqmtc1,lqmtc2, nqfrtc,nqlive
3250 COMMON /fzci/ luni,lunni,ixdivi,ltempi,ievfli
3251 +, mstati,mediui,ififoi,idafoi,iacmoi,iupaki
3252 +, iadopi,iactvi,incbpi,loglvi,maxrei, isteni
3253 +, lbpari, l4stoi,l4stai,l4curi,l4endi
3254 +, iflagi,nfasti,n4skii,n4resi,n4doni,n4endi
3255 +, ioptie,ioptir,ioptis,ioptia,ioptit,ioptid
3256 +, ioptif,ioptig,ioptih,iopti2(4)
3257 +, idi(2),ipili(4),nwtxi,nwsegi,nwtabi,nwbki,lentri
3258 +, nwuhci,iochi(16),nwumxi,nwuhi,nwioi
3259 +, nwrdai,nrecai,luheai,jretcd,jerror,nwerr
3260 parameter(jauioc=50, jauseg=68, jauear=130)
3261 COMMON /fzcseg/nqseg,iqsegh(2,20),iqsegd(20),iqsglu,iqsgwk
3262 COMMON /fzcocc/nqocc,iqocdv(20),iqocsp(20)
3263 dimension itosor(20), isordv(20), isorsp(20)
3264 dimension lstav(20), lendv(20)
3265 equivalence(lstav(1),iquest(60)), (lendv(1),iquest(80))
3266 dimension namesr(2)
3267 DATA namesr / 4hfzim, 4htb /
3268 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
3269 mqtrac(nqtrac+1) = namesr(1)
3270 mqtrac(nqtrac+2) = namesr(2)
3271 nqtrac = nqtrac + 2
3272 iflgar = 0
3273 IF (nqseg.LE.0) THEN
3274 nqseg = 1
3275 nsor = 1
3276 nocc = 1
3277 itosor(1) = 1
3278 iqsegd(1) = jqdivi
3279 isordv(1) = jqdivi
3280 iqocdv(1) = jqdivi
3281 isorsp(1) = nwbki
3282 iqocsp(1) = nwbki
3283 GO TO 41
3284 ENDIF
3285 IF (loglvi.GE.3) WRITE (iqlog,9016) (j,
3286 + iqsegh(1,j),iqsegh(2,j),iqsegd(j),j=1,nqseg)
3287 9016 FORMAT (1x/' FZIMTB- Segment Selection Table as set by the user'
3288 f/(10x,i2,1x,2a4,z17))
3289 lfiseg = lqfi + jauseg
3290 IF (3*nqseg.NE.iq(kqsp+lfiseg)) GO TO 715
3291 lspace = kqsp + lfiseg + 2*nqseg
3292 DO 27 js=1,nqseg
3293 ixdiv = iqsegd(js)
3294 IF (ixdiv) 22, 23, 24
3295 22 IF (ixdiv.LT.-7) GO TO 714
3296 itosor(js) = -iq(lspace+js)
3297 GO TO 27
3298 23 jdiv = jqdivi
3299 GO TO 25
3300 24 jdiv = jbyt(ixdiv,1,26)
3301 IF (jdiv.GT.20) GO TO 714
3302 jsto = jbyt(ixdiv,27,4)
3303 IF (jsto.NE.0) THEN
3304 IF (jsto.NE.jqstor) GO TO 714
3305 ENDIF
3306 IF (jdiv.EQ.0) GO TO 23
3307 IF (jdiv.GT.jqdvll) THEN
3308 IF (jdiv.LT.jqdvsy) GO TO 714
3309 ENDIF
3310 25 iqsegd(js) = jdiv
3311 itosor(js) = 0
3312 27 CONTINUE
3313 nsor = 0
3314 nocc = 0
3315 janx = 1
3316 jenx = nqseg
3317 31 jdvbig = 0
3318 ja = janx
3319 janx = 0
3320 je = jenx
3321 jenx = 0
3322 DO 35 js=ja,je
3323 IF (itosor(js).NE.0) GO TO 35
3324 jenx = js
3325 IF (janx.EQ.0) janx=js
3326 jdiv = iqsegd(js)
3327 IF (jdiv.LE.jdvbig) GO TO 35
3328 jdvbig = jdiv
3329 jsbig = js
3330 35 CONTINUE
3331 IF (jdvbig.EQ.0) GO TO 41
3332 nsor = nsor + 1
3333 itosor(jsbig) = nsor
3334 isordv(nsor) = jdvbig
3335 isorsp(nsor) = iq(lspace+jsbig)
3336 nocc = nocc + 1
3337 iqocdv(nocc) = jdvbig
3338 iqocsp(nocc) = iq(lspace+jsbig)
3339 IF (jsbig.EQ.jenx) GO TO 31
3340 DO 37 js=jsbig+1,jenx
3341 IF (itosor(js).NE.0) GO TO 37
3342 IF (iqsegd(js).NE.jdvbig) GO TO 37
3343 nsor = nsor + 1
3344 itosor(js) = nsor
3345 isordv(nsor) = jdvbig
3346 isorsp(nsor) = iq(lspace+js)
3347 iqocsp(nocc) = iqocsp(nocc) + iq(lspace+js)
3348 37 CONTINUE
3349 GO TO 31
3350 41 IF (nocc.EQ.0) GO TO 81
3351 jocc = 0
3352 42 jocc = jocc + 1
3353 jqdivi = iqocdv(jocc)
3354 nw = iqocsp(jocc)
3355 CALL mzresv
3356 nqresv = nqresv - nw
3357 IF (nqresv.LT.0) CALL mzgar1
3358 IF (jqmode.EQ.0) THEN
3359 iqln = lqend(kqt+jqdivi)
3360 iqnx = iqln + nw
3361 lqend(kqt+jqdivi) = iqnx
3362 ELSE
3363 iqnx = lqsta(kqt+jqdivi)
3364 iqln = iqnx - nw
3365 lqsta(kqt+jqdivi) = iqln
3366 ENDIF
3367 nqocc = jocc
3368 lq(kqs+iqln) = 12
3369 lq(kqs+iqln+1) = 0
3370 lq(kqs+iqln+2) = 0
3371 lq(kqs+iqln+3) = 0
3372 lq(kqs+iqln+5) = iqlett(1)
3373 lq(kqs+iqln+6) = 0
3374 lq(kqs+iqln+7) = 0
3375 lq(kqs+iqln+8) = nw - 10
3376 lq(kqs+iqln+9) = 0
3377 IF (jocc.NE.nocc) GO TO 42
3378 46 nwtr = 2*nwtabi + 2
3379 nwtm = 8*nqseg
3380 IF (nwtr+nwtm.LT.nqwktb) THEN
3381 lqmta = lqwktb
3382 lqrta = lqmta + nwtm
3383 ELSE
3384 jqstmv = -1
3385 CALL mzfgap
3386 IF (nqgapn.EQ.0) GO TO 61
3387 IF (iqgap(1,1).LT.nwtr) THEN
3388 IF (nqwktb.LT.nwtr) GO TO 61
3389 lqmta = iqgap(2,1)
3390 lqrta = lqwktb
3391 ELSE
3392 lqmta = lqwktb
3393 lqrta = iqgap(2,1)
3394 ENDIF
3395 ENDIF
3396 lqmte = lqmta + nwtm
3397 lqta = lqrta + 1
3398 lqte = lqta + 2*nwtabi
3399 lqrte = lqte
3400 jsor = 1
3401 jocc = 1
3402 52 jqdivi = isordv(jsor)
3403 IF (iqmode(kqt+jqdivi).EQ.0) THEN
3404 lsta = lqend(kqt+jqdivi) - iqocsp(jocc)
3405 ELSE
3406 lsta = lqsta(kqt+jqdivi)
3407 ENDIF
3408 lend = lsta + isorsp(jsor)
3409 lendv(jsor) = lend
3410 lstav(jsor) = lsta
3411 jocc = jocc + 1
3412 54 IF (jsor.EQ.nsor) GO TO 55
3413 jsor = jsor + 1
3414 IF (isordv(jsor).NE.jqdivi) GO TO 52
3415 lsta = lend
3416 lend = lsta + isorsp(jsor)
3417 lendv(jsor) = lend
3418 lstav(jsor) = lsta
3419 GO TO 54
3420 55 lmt = lqmta
3421 DO 59 js=1,nqseg
3422 jsor = itosor(js)
3423 IF (jsor.GE.0) GO TO 57
3424 lq(lmt) = 0
3425 lq(lmt+1) = 0
3426 lq(lmt+2) = 0
3427 lq(lmt+3) = jsor
3428 lq(lmt+4) = jsor
3429 lq(lmt+5) = 0
3430 lq(lmt+6) = 0
3431 lq(lmt+7) = 0
3432 IF (loglvi.GE.3) WRITE (iqlog,9055) js, -jsor
3433 9055 FORMAT (' FZIMTB- skip segment',i3,i9,' WORDS')
3434 GO TO 59
3435 57 lq(lmt) = isordv(jsor)
3436 lq(lmt+1) = 1
3437 lq(lmt+2) = 0
3438 lq(lmt+3) = lstav(jsor)
3439 lq(lmt+4) = lendv(jsor)
3440 lq(lmt+5) = 0
3441 lq(lmt+6) = 0
3442 lq(lmt+7) = 0
3443 IF (loglvi.GE.3) THEN
3444 WRITE (iqlog,9058) js,lq(lmt),lq(lmt+3),lq(lmt+4)
3445 ENDIF
3446 9058 FORMAT (' FZIMTB- read segment',i3,' into division/from/to'
3447 f,i3,2i9)
3448 59 lmt = lmt + 8
3449 999 nqtrac = nqtrac - 2
3450 RETURN
3451 61 IF (iflgar.GE.2) GO TO 721
3452 ixstor = ishft(jqstor,26)
3453 IF (iflgar.NE.0) GO TO 63
3454 ixstor = mzixco(ixstor+21,22,23,24)
3455 CALL mzgarb (ixstor, 0)
3456 iflgar = 1
3457 IF (jqstor.NE.0) GO TO 46
3458 iflgar = 2
3459 GO TO 46
3460 63 iflgar = 2
3461 j = mzixco(21,22,23,24)
3462 CALL mzgarb (j, 0)
3463 CALL mzsdiv (ixstor,-7)
3464 GO TO 46
3465 81 nwbki = 0
3466 jretcd = -4
3467 IF (loglvi.GE.3) WRITE (iqlog,9081)
3468 9081 FORMAT (' FZIMTB- skip all segments')
3469 GO TO 999
3470 715 jerror = 15
3471 iquest(14)= nqseg
3472 iquest(15)= iq(kqsp+lfiseg)
3473 nwerr = 2
3474 GO TO 719
3475 714 jerror = 14
3476 iquest(14)= js
3477 iquest(15)= 0
3478 iquest(16)= ixdiv
3479 nwerr = 3
3480 719 jretcd = 4
3481 GO TO 999
3482 721 jerror = 21
3483 jretcd = 3
3484 GO TO 999
3485 END
3486
3487*-------------------------------------------------------------------------------
3488
3489 SUBROUTINE izhnum (HOLL,INTV,NP)
3490 INTEGER INTV(99), HOLL(99)
3491 DO 39 jwh=1,np
3492 39 intv(jwh) = iand(holl(jwh), 255)
3493 RETURN
3494 END
3495
3496*-------------------------------------------------------------------------------
3497
3498 FUNCTION iucomp (ITEXT,IVECT,N)
3499 dimension ivect(9)
3500 IF (n.EQ.0) GO TO 18
3501 DO 12 j=1,n
3502 IF (itext.EQ.ivect(j)) GO TO 24
3503 12 CONTINUE
3504 18 j=0
3505 24 iucomp=j
3506 END
3507
3508*-------------------------------------------------------------------------------
3509
3510 SUBROUTINE izbcdt (NP,ITABT)
3511 COMMON /quest/ iquest(100)
3512 parameter(nqtcet=256)
3513 COMMON /zceta/ iqceta(256),iqtcet(256)
3514 COMMON /zkrakc/iqholk(120), iqkrak(80), iqcetk(122)
3515 dimension np(9), itabt(99)
3516 n = np(1)
3517 lim = itabt(1)
3518 jgood = 0
3519 jbad = 0
3520 DO 29 jwh=1,n
3521 jv = iand(iqholk(jwh),255)
3522 jv = iqtcet(jv+1)
3523 IF (jv.GT.lim) GO TO 27
3524 jv = itabt(jv+1)
3525 IF (jv+1) 29, 27, 24
3526 24 jgood = jgood + 1
3527 iqcetk(jgood) = jv
3528 GO TO 29
3529 27 jbad = jbad + 1
3530 29 CONTINUE
3531 iquest(1) = jgood
3532 iquest(2) = jbad
3533 END
3534
3535*-------------------------------------------------------------------------------
3536
3537 LOGICAL FUNCTION rzsame(IH1,IH2,N)
3538 dimension ih1(n),ih2(n)
3539 IF(n.LE.0)GO TO 20
3540 DO 10 i=1,n
3541 IF(ih1(i).NE.ih2(i))GO TO 20
3542 10 CONTINUE
3543 rzsame=.true.
3544 GO TO 99
3545 20 rzsame=.false.
3546 99 RETURN
3547 END
3548
3549*-------------------------------------------------------------------------------
3550
3551 SUBROUTINE rzink(KEYU,ICYCLE,CHOPT)
3552 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
3553 COMMON /quest/ iquest(100)
3554 COMMON /zebq/ iqfenc(4), lq(100)
3555 dimension iq(92), q(92)
3556 equivalence(iq(1),lq(9)), (q(1),iq(1))
3557 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
3558 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
3559 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
3560 +, nqtrac,mqtrac(48)
3561 equivalence(kqsp,nqoffs(1))
3562 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
3563 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
3564 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
3565 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
3566 dimension iqcur(16)
3567 equivalence(iqcur(1),lqstor)
3568 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
3569 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
3570 +, lqsyss(10), lqsysr(10), iqtdum(22)
3571 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
3572 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
3573 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
3574 +, nqdpsh(20),nqdred(20),nqdsiz(20)
3575 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
3576 dimension iqtabv(16)
3577 equivalence(iqtabv(1),lqpsto)
3578 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
3579 +, ltemp,lcord,lfrom
3580 equivalence(lqrs,lqsyss(7))
3581 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
3582 +, izrecl,imodec,imodeh
3583 COMMON /rzcout/ip1,ir1,ir2,irout,irlout,ioptrr
3584 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
3585 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
3586 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
3587 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
3588 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
3589 common/rzckey/ihead(3),key(100),key2(100),keydum(50)
3590 INTEGER KLCYCL, KPPCYC, KFRCYC, KSRCYC, KFLCYC, KORCYC,
3591 + kcncyc, knwcyc, kkycyc, kvscyc
3592 common/rzcycle/klcycl, kppcyc, kfrcyc, ksrcyc, kflcyc, korcyc,
3593 + kcncyc, knwcyc, kkycyc, kvscyc
3594 CHARACTER*(*) CHOPT
3595 dimension keyu(*)
3596 equivalence(iopta,iquest(91)), (ioptc,iquest(92))
3597 +, (ioptd,iquest(93)), (ioptn,iquest(94)), (ioptr,iquest(95))
3598 +, (iopts,iquest(96))
3599 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
3600 iquest(1)=0
3601 CALL uoptc(chopt,'ACDNRS',iquest(91))
3602 lk=iq(kqsp+lcdir+klk)
3603 nkeys=iq(kqsp+lcdir+knkeys)
3604 nwkey=iq(kqsp+lcdir+knwkey)
3605 iquest(7)=nkeys
3606 iquest(8)=nwkey
3607 IF(nkeys.EQ.0)GO TO 90
3608 IF(iopts.NE.0)THEN
3609 ik1=keyu(1)
3610 ik2=ik1
3611 IF(ik1.GT.nkeys.OR.ik1.LE.0)THEN
3612 iquest(1)=1
3613 iquest(2)=ik1
3614 RETURN
3615 ENDIF
3616 ELSE
3617 ik1=1
3618 ik2=nkeys
3619 DO 5 i=1,nwkey
3620 ikdes=(i-1)/10
3621 ikbit1=3*i-30*ikdes-2
3622 IF(jbyt(iq(kqsp+lcdir+kkdes+ikdes),ikbit1,3).LT.3)THEN
3623 key(i)=keyu(i)
3624 ELSE
3625 CALL zhtoi(keyu(i),key(i),1)
3626 ENDIF
3627 5 CONTINUE
3628 ENDIF
3629 DO 30 i=ik1,ik2
3630 lkc=lk+(nwkey+1)*(i-1)
3631 IF(iopts.EQ.0)THEN
3632 DO 10 k=1,nwkey
3633 IF(iq(kqsp+lcdir+lkc+k).NE.key(k))GO TO 30
3634 10 CONTINUE
3635 ELSE
3636 DO 15 k=1,nwkey
3637 IF(k.LT.10)THEN
3638 ikdes=(k-1)/10
3639 ikbit1=3*k-30*ikdes-2
3640 IF(jbyt(iq(kqsp+lcdir+kkdes+ikdes),ikbit1,3).LT.3)THEN
3641 iquest(20+k)=iq(kqsp+lcdir+lkc+k)
3642 ELSE
3643 CALL zitoh(iq(kqsp+lcdir+lkc+k),iquest(20+k),1)
3644 ENDIF
3645 ENDIF
3646 15 CONTINUE
3647 ENDIF
3648 iquest(20)=i
3649 lcyc=iq(kqsp+lcdir+lkc)
3650* IF (KVSCYC.NE.0) THEN
3651* IF (IQ(KQSP+LCDIR+LCYC+KKYCYC).NE.IQ(KQSP+LCDIR+LKC+1)) THEN
3652* IQUEST(1) = 11
3653* GO TO 99
3654* ENDIF
3655* ENDIF
3656 nc=0
3657 20 nc=nc+1
3658 icy = jbyt(iq(kqsp+lcdir+lcyc+kcncyc),21,12)
3659 IF(icy.EQ.icycle)GO TO 50
3660 IF(nc.EQ.1.AND.icycle.GT.icy)GO TO 50
3661 IF (kvscyc.EQ.0) THEN
3662 lcold = jbyt(iq(kqsp+lcdir+lcyc+kppcyc),1,16)
3663 ELSE
3664 lcold = iq(kqsp+lcdir+lcyc+kppcyc)
3665 ENDIF
3666 IF(lcold.EQ.0.AND.lcold.NE.lcyc.AND.icycle.EQ.0)GO TO 50
3667 lcyc=lcold
3668 IF(lcyc.NE.0)GO TO 20
3669 GO TO 90
3670 30 CONTINUE
3671 GO TO 90
3672 50 IF (kvscyc.EQ.0) THEN
3673 ir1 = jbyt(iq(kqsp+lcdir+lcyc+kfrcyc),17,16)
3674 ir2 = jbyt(iq(kqsp+lcdir+lcyc+ksrcyc),17,16)
3675 ip1 = jbyt(iq(kqsp+lcdir+lcyc+korcyc), 1,16)
3676 nw = jbyt(iq(kqsp+lcdir+lcyc+knwcyc), 1,20)
3677 ELSE
3678 ir1 = iq(kqsp+lcdir+lcyc+kfrcyc)
3679 ir2 = iq(kqsp+lcdir+lcyc+ksrcyc)
3680 ip1 = jbyt(iq(kqsp+lcdir+lcyc+korcyc), 1,20)
3681 nw = iq(kqsp+lcdir+lcyc+knwcyc)
3682 ENDIF
3683 n1 = nw
3684 iquest(2)=1
3685 IF(ir2.NE.0)iquest(2)=(nw-n1-1)/lrec+2
3686 iquest(3)=ir1
3687 iquest(4)=ip1
3688 iquest(5)=ir2
3689 iquest(6)=icy
3690 iquest(12)=nw
3691 iquest(14)=iq(kqsp+lcdir+lcyc+1)
3692 iquest(15)=lcyc
3693 IF(ioptc.NE.0)THEN
3694 iquest(50)=0
3695 lc1=lcyc
3696 51 iquest(50)=iquest(50)+1
3697 IF (kvscyc.EQ.0) THEN
3698 lcold = jbyt(iq(kqsp+lcdir+lc1+kppcyc),1,16)
3699 ELSE
3700 lcold = iq(kqsp+lcdir+lc1+kppcyc)
3701 ENDIF
3702 IF(iquest(50).LE.19)THEN
3703 nc=iquest(50)
3704 iquest(50+nc)=jbyt(iq(kqsp+lcdir+lc1+kcncyc),21,12)
3705 iquest(70+nc)=iq(kqsp+lcdir+lc1+kflcyc)
3706 ENDIF
3707 IF(lcold.NE.0.AND.lcold.NE.lc1)THEN
3708 lc1=lcold
3709 GO TO 51
3710 ENDIF
3711 ENDIF
3712 IF(ioptn.NE.0)THEN
3713 IF(i.EQ.1)THEN
3714 iquest(30)=0
3715 ELSE
3716 iquest(30)=nwkey
3717 DO 52 j=1,nwkey
3718 IF(j.LT.10)THEN
3719 lkcj=lk+(nwkey+1)*(i-2)
3720 iquest(30+j)=iq(kqsp+lcdir+lkcj+j)
3721 ikdes=(j-1)/10
3722 ikbit1=3*j-30*ikdes-2
3723 IF(jbyt(iq(kqsp+lcdir+kkdes+ikdes),ikbit1,3).GE.3)THEN
3724 CALL zitoh(iquest(30+j),iquest(30+j),1)
3725 ENDIF
3726 ENDIF
3727 52 CONTINUE
3728 ENDIF
3729 IF(i.EQ.nkeys)THEN
3730 iquest(40)=0
3731 ELSE
3732 iquest(40)=nwkey
3733 DO 53 j=1,nwkey
3734 IF(j.LT.10)THEN
3735 lkcj=lk+(nwkey+1)*i
3736 iquest(40+j)=iq(kqsp+lcdir+lkcj+j)
3737 ikdes=(j-1)/10
3738 ikbit1=3*j-30*ikdes-2
3739 IF(jbyt(iq(kqsp+lcdir+kkdes+ikdes),ikbit1,3).GE.3)THEN
3740 CALL zitoh(iquest(40+j),iquest(40+j),1)
3741 ENDIF
3742 ENDIF
3743 53 CONTINUE
3744 ENDIF
3745 ENDIF
3746 GO TO 99
3747 90 iquest(1)=1
3748 IF(ioptn.NE.0)THEN
3749 IF(nkeys.GT.0)THEN
3750 iquest(30)=nwkey
3751 iquest(40)=nwkey
3752 DO 91 j=1,nwkey
3753 IF(j.GE.10)GO TO 91
3754 lkcj=lk+(nwkey+1)*(nkeys-1)
3755 iquest(30+j)=iq(kqsp+lcdir+lk+j)
3756 iquest(40+j)=iq(kqsp+lcdir+lkcj+j)
3757 ikdes=(j-1)/10
3758 ikbit1=3*j-30*ikdes-2
3759 IF(jbyt(iq(kqsp+lcdir+kkdes+ikdes),ikbit1,3).GE.3)THEN
3760 CALL zitoh(iquest(30+j),iquest(30+j),1)
3761 CALL zitoh(iquest(40+j),iquest(40+j),1)
3762 ENDIF
3763 91 CONTINUE
3764 ENDIF
3765 ENDIF
3766 99 RETURN
3767 END
3768
3769*-------------------------------------------------------------------------------
3770
3771 SUBROUTINE rzpaff(CH,NL,CHPATH)
3772 CHARACTER*(*) CHPATH,CH(*)
3773 CHARACTER*255 CHTEMP
3774 CHARACTER*16 CHL
3775 COMMON /quest/ iquest(100)
3776 maxlen=len(chpath)
3777 IF(maxlen.GT.255)maxlen=255
3778 iquest(1) = 0
3779 chpath='//'//ch(1)
3780 leng=lenocc(chpath)
3781 IF(leng.EQ.2) THEN
3782 chpath='//HOME'
3783 leng=6
3784 ENDIF
3785 IF(nl.EQ.1) GOTO 99
3786 DO 20 i=2,nl
3787 chl=ch(i)
3788 nmax=lenocc(chl)
3789 IF(nmax.EQ.0) THEN
3790 iquest(1) = 1
3791 GOTO 99
3792 ENDIF
3793 IF(leng+nmax.GT.maxlen)nmax=maxlen-leng
3794 chtemp=chpath(1:leng)//'/'//chl(1:nmax)
3795 chpath=chtemp
3796 leng=leng+nmax+1
3797 IF(leng.EQ.maxlen) THEN
3798 iquest(1) = 2
3799 GOTO 99
3800 ENDIF
3801 20 CONTINUE
3802 99 RETURN
3803 END
3804
3805*-------------------------------------------------------------------------------
3806
3807 SUBROUTINE rzpath(CHPATH)
3808 CHARACTER CQALLC*96
3809 COMMON /zbcdch/ cqallc
3810 CHARACTER*1 CQLETT(96), CQNUM(10)
3811 equivalence(cqlett(1),cqallc(1:1))
3812 equivalence(cqnum(1), cqallc(27:27))
3813 CHARACTER*1 BSLASH,KTILDE
3814 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
3815 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
3816 parameter(nlpatm=100)
3817 COMMON /rzdirn/nlcdir,nlndir,nlpat
3818 COMMON /rzdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
3819 CHARACTER*16 CHNDIR, CHCDIR, CHPAT
3820 CHARACTER*(*) CHPATH
3821 CHARACTER*1 CH1
3822 CHARACTER*2 CH2
3823 bslash=cqallc(61:61)
3824 ktilde=cqallc(94:94)
3825 nchp=len(chpath)
3826 nlpat=0
3827 10 IF(chpath(nchp:nchp).EQ.' ')THEN
3828 nchp=nchp-1
3829 IF(nchp.GT.0)GO TO 10
3830 nlpat=nlcdir
3831 DO 20 i=1,nlcdir
3832 chpat(i)=chcdir(i)
3833 20 CONTINUE
3834 GO TO 99
3835 ENDIF
3836 is1=1
3837 30 IF(chpath(is1:is1).EQ.' ')THEN
3838 is1=is1+1
3839 GO TO 30
3840 ENDIF
3841 ch1=chpath(is1:is1)
3842 ch2=chpath(is1:is1+1)
3843 IF(ch1.EQ.'/')THEN
3844 IF(chpath(is1+1:is1+1).EQ.'/')THEN
3845 is=is1+2
3846 IF(is.GT.nchp)GO TO 99
3847 40 IF(chpath(is:is).EQ.'/')THEN
3848 IF(is.EQ.is1+2)GO TO 90
3849 nlpat=1
3850 chpat(1)=chpath(is1+2:is-1)
3851 is1=is+1
3852 is=is1
3853 GO TO 50
3854 ELSE
3855 is=is+1
3856 IF(is.LT.nchp)GO TO 40
3857 nlpat=1
3858 chpat(1)=chpath(is1+2:is)
3859 GO TO 99
3860 ENDIF
3861 ENDIF
3862 IF(chpath(is1+1:is1+1).EQ.bslash)GO TO 90
3863 IF(chpath(is1+1:is1+1).EQ.ktilde)GO TO 90
3864 nlpat=1
3865 chpat(1)=chcdir(1)
3866 is=is1+1
3867 is1=is
3868 50 IF(is.EQ.nchp)THEN
3869 IF(chpath(is1:is).NE.'..'.AND.
3870 + chpath(is1:is).NE.bslash) THEN
3871 nlpat=nlpat+1
3872 IF(nlpat.GT.nlpatm)GO TO 90
3873 chpat(nlpat)=chpath(is1:is)
3874 ELSE
3875 nlpat = nlpat -1
3876 ENDIF
3877 GO TO 99
3878 ELSE
3879 IF(chpath(is:is).EQ.'/')THEN
3880 IF(nlpat.GT.nlpatm)GO TO 90
3881 IF(chpath(is1:is-1).NE.'..'.AND.
3882 + chpath(is1:is-1).NE.bslash) THEN
3883 nlpat=nlpat+1
3884 chpat(nlpat)=chpath(is1:is-1)
3885 ELSE
3886 nlpat = nlpat - 1
3887 ENDIF
3888 is1=is+1
3889 ENDIF
3890 is=is+1
3891 GO TO 50
3892 ENDIF
3893 ENDIF
3894 IF(ch1.EQ.ktilde)THEN
3895 nlpat=nlndir
3896 DO 60 i=1,nlndir
3897 chpat(i)=chndir(i)
3898 60 CONTINUE
3899 IF(is1.EQ.nchp)GO TO 99
3900 is1=is1+1
3901 ch1=chpath(is1:is1)
3902 GO TO 75
3903 ENDIF
3904 DO 70 i=1,nlcdir
3905 chpat(i)=chcdir(i)
3906 70 CONTINUE
3907 nlpat=nlcdir
3908 75 IF(ch1.EQ.bslash)THEN
3909 nlpat=nlpat-1
3910 IF(nlpat.EQ.0)nlpat=1
3911 IF(is1.EQ.nchp)GO TO 99
3912 is1=is1+1
3913 ch1=chpath(is1:is1)
3914 GO TO 75
3915 ENDIF
3916 is=is1
3917 76 IF(ch2.EQ.'..')THEN
3918 nlpat=nlpat-1
3919 IF(nlpat.EQ.0)nlpat=1
3920 IF(is1+1.EQ.nchp)GO TO 99
3921 IF(chpath(is1+2:is1+2).NE.'/') GOTO 90
3922 is =is1
3923 is1=is1+3
3924 ch2=chpath(is1:is1+1)
3925 GO TO 76
3926 ENDIF
3927 80 IF(is.EQ.nchp)THEN
3928 nlpat=nlpat+1
3929 IF(nlpat.GT.nlpatm)GO TO 90
3930 chpat(nlpat)=chpath(is1:is)
3931 GO TO 99
3932 ELSE
3933 IF(chpath(is:is).EQ.'/')THEN
3934 IF(is.GT.is1)THEN
3935 nlpat=nlpat+1
3936 IF(nlpat.GT.nlpatm)GO TO 90
3937 chpat(nlpat)=chpath(is1:is-1)
3938 ENDIF
3939 is1=is+1
3940 ENDIF
3941 is=is+1
3942 GO TO 80
3943 ENDIF
3944 90 nlpat=0
3945 99 RETURN
3946 END
3947
3948*-------------------------------------------------------------------------------
3949
3950 SUBROUTINE rzread(IV,N,IPC,IFORM)
3951 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
3952 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
3953 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
3954 COMMON /quest/ iquest(100)
3955 COMMON /zebq/ iqfenc(4), lq(100)
3956 dimension iq(92), q(92)
3957 equivalence(iq(1),lq(9)), (q(1),iq(1))
3958 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
3959 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
3960 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
3961 +, nqtrac,mqtrac(48)
3962 equivalence(kqsp,nqoffs(1))
3963 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
3964 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
3965 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
3966 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
3967 dimension iqcur(16)
3968 equivalence(iqcur(1),lqstor)
3969 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
3970 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
3971 +, lqsyss(10), lqsysr(10), iqtdum(22)
3972 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
3973 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
3974 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
3975 +, nqdpsh(20),nqdred(20),nqdsiz(20)
3976 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
3977 dimension iqtabv(16)
3978 equivalence(iqtabv(1),lqpsto)
3979 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
3980 +, ltemp,lcord,lfrom
3981 equivalence(lqrs,lqsyss(7))
3982 COMMON /rzclun/lun,lrec,isave,imodex,irelat,nhpwd,ihpwd(2)
3983 +, izrecl,imodec,imodeh
3984 COMMON /rzcout/ip1,ir1,ir2,irout,irlout,ioptrr
3985 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
3986 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
3987 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
3988 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
3989 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
3990 COMMON /mzioc/ nwfoav,nwfott,nwfodn,nwfore,ifocon(3)
3991 +, mfosav(2), jfoend,jforep,jfocur,mfo(200)
3992 dimension iv(*)
3993 nl1=lrec-ip1+1
3994 IF(ipc.LE.nl1)THEN
3995 irs=ir1
3996 is1=ip1+ipc-1
3997 ELSE
3998 nbef=(ipc-nl1-1)/lrec
3999 irs=ir2+nbef
4000 is1 =ipc-nl1-nbef*lrec
4001 ENDIF
4002 lrin=lq(kqsp+ltop-7)
4003 IF(lrin.EQ.0)THEN
4004 CALL mzbook(jqpdvs,lrin,ltop,-7,'RZIN',0,0,lrec+1,2,-1)
4005 iq(kqsp+lrin-5)=iq(kqsp+ltop-5)
4006 iq(kqsp+ltop+kirin)=0
4007 irin=0
4008 ELSE
4009 irin=iq(kqsp+ltop+kirin)
4010 ENDIF
4011 lrout=lq(kqsp+ltop-6)
4012 IF(lrout.EQ.0)THEN
4013 irout=0
4014 ELSE
4015 irout=iq(kqsp+ltop+kirout)
4016 ENDIF
4017 IF(irs.NE.irin)THEN
4018 IF(irs.NE.irout)THEN
4019 CALL rziodo(lun,lrec,irs,iq(kqsp+lrin+1),1)
4020 IF(iquest(1).NE.0)GO TO 90
4021 irin=irs
4022 iq(kqsp+ltop+kirin)=irin
4023 ENDIF
4024 ENDIF
4025 IF(imodex.GT.0.AND.iform.NE.1)THEN
4026 nwfott = n
4027 nwfodn = 0
4028 IF(iform.GT.0)THEN
4029 mfo(1) = iform
4030 mfo(2) = -1
4031 jfoend = 2
4032 ENDIF
4033 ENDIF
4034 nleft=lrec-is1+1
4035 IF(n.LE.nleft)THEN
4036 np1=n
4037 ELSE
4038 np1=nleft
4039 ENDIF
4040 IF(irs.NE.irout)THEN
4041 IF(imodex.GT.0.AND.iform.NE.1)THEN
4042 nwfoav=np1
4043 CALL fzicv(iq(kqsp+lrin+is1),iv)
4044 IF(nwfoav.GT.0.OR.ifocon(1).LT.0)GO TO 95
4045 IF(nwfoav.LT.0)idoub1=iq(kqsp+lrin+is1+np1-1)
4046 iquest(1)=0
4047 ELSE
4048 CALL ucopyi(iq(kqsp+lrin+is1),iv,np1)
4049 ENDIF
4050 ELSE
4051 IF(imodex.GT.0.AND.iform.NE.1)THEN
4052 nwfoav=np1
4053 CALL fzicv(iq(kqsp+lrout+is1),iv)
4054 IF(nwfoav.GT.0.OR.ifocon(1).LT.0)GO TO 95
4055 IF(nwfoav.LT.0)idoub1=iq(kqsp+lrout+is1+np1-1)
4056 iquest(1)=0
4057 ELSE
4058 CALL ucopyi(iq(kqsp+lrout+is1),iv,np1)
4059 ENDIF
4060 ENDIF
4061 IF(np1.LT.n)THEN
4062 nr=(n-np1-1)/lrec+1
4063 IF(irs.EQ.ir1)THEN
4064 irs=ir2
4065 ELSE
4066 irs=irs+1
4067 ENDIF
4068 DO 60 i=1,nr
4069 IF(i.NE.nr)THEN
4070 IF(imodex.GT.0.AND.iform.NE.1)THEN
4071 CALL rziodo(lun,lrec,irs+i-1,iq(kqsp+lrin+1),1)
4072 IF(iquest(1).NE.0)GO TO 90
4073 IF(nwfoav.LT.0)THEN
4074 CALL ucopy2(iq(kqsp+lrin+1),iq(kqsp+lrin+2),lrec)
4075 iq(kqsp+lrin+1)=idoub1
4076 nwfoav=lrec+1
4077 CALL fzicv(iq(kqsp+lrin+1),iv)
4078 CALL ucopy2(iq(kqsp+lrin+2),iq(kqsp+lrin+1),lrec)
4079 ELSE
4080 nwfoav=lrec
4081 CALL fzicv(iq(kqsp+lrin+1),iv)
4082 ENDIF
4083 IF(nwfoav.GT.0.OR.ifocon(1).LT.0)GO TO 95
4084 IF(nwfoav.LT.0)idoub1=iq(kqsp+lrin+lrec)
4085 iquest(1)=0
4086 ELSE
4087 print*,'>>>>>> RZIODO'
4088*** CALL RZIODO(LUN,LREC,IRS+I-1,V(NP1+1),1)
4089 IF(iquest(1).NE.0)GO TO 90
4090 ENDIF
4091 np1=np1+lrec
4092 ELSE
4093 nl=n-np1
4094 irin=irs+i-1
4095 IF(irin.NE.irout)THEN
4096 CALL rziodo(lun,lrec,irin,iq(kqsp+lrin+1),1)
4097 IF(iquest(1).NE.0)GO TO 90
4098 IF(imodex.GT.0.AND.iform.NE.1)THEN
4099 IF(nwfoav.LT.0)THEN
4100 CALL ucopy2(iq(kqsp+lrin+1),iq(kqsp+lrin+2),lrec)
4101 iq(kqsp+lrin+1)=idoub1
4102 nwfoav=nl+1
4103 CALL fzicv(iq(kqsp+lrin+1),iv)
4104 CALL ucopy2(iq(kqsp+lrin+2),iq(kqsp+lrin+1),lrec)
4105 ELSE
4106 nwfoav=nl
4107 CALL fzicv(iq(kqsp+lrin+1),iv)
4108 ENDIF
4109 IF(nwfoav.GT.0.OR.ifocon(1).LT.0)GO TO 95
4110 IF(nwfoav.LT.0)idoub1=iq(kqsp+lrin+nl)
4111 iquest(1)=0
4112 ELSE
4113 CALL ucopyi(iq(kqsp+lrin+1),iv(np1+1),nl)
4114 ENDIF
4115 iq(kqsp+ltop+kirin)=irin
4116 ELSE
4117 IF(imodex.GT.0.AND.iform.NE.1)THEN
4118 IF(nwfoav.LT.0)THEN
4119 CALL ucopy2(iq(kqsp+lrout+1),iq(kqsp+lrout+2),lrec)
4120 iq(kqsp+lrout+1)=idoub1
4121 nwfoav=nl+1
4122 CALL fzicv(iq(kqsp+lrout+1),iv)
4123 CALL ucopy2(iq(kqsp+lrout+2),iq(kqsp+lrout+1),lrec)
4124 ELSE
4125 nwfoav=nl
4126 CALL fzicv(iq(kqsp+lrout+1),iv)
4127 ENDIF
4128 IF(nwfoav.GT.0.OR.ifocon(1).LT.0)GO TO 95
4129 IF(nwfoav.LT.0)idoub1=iq(kqsp+lrout+nl)
4130 iquest(1)=0
4131 ELSE
4132 CALL ucopyi(iq(kqsp+lrout+1),iv(np1+1),nl)
4133 ENDIF
4134 ENDIF
4135 ENDIF
4136 60 CONTINUE
4137 ENDIF
4138 90 CONTINUE
4139 GO TO 99
4140 95 iquest(1) =4
4141 iquest(11)=nwfott
4142 iquest(12)=nwfore
4143 iquest(13)=nwfoav
4144 iquest(14)=nwfodn
4145 IF(jbyt(iq(kqsp+ltop),15,3)-3.GE.-2) WRITE(iqlog,1000)
4146 1000 FORMAT(' RZREAD. Error during conversion into native format')
4147 99 RETURN
4148 END
4149
4150*-------------------------------------------------------------------------------
4151
4152 SUBROUTINE mzchln (IXST,LP)
4153 parameter(iqbitw=32, iqbitc=8, iqchaw=4)
4154 COMMON /zmach/ nqbitw,nqbitc,nqchaw
4155 +, nqlnor,nqlmax,nqlpth,nqrmax,iqlpct,iqnil
4156 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4157 COMMON /quest/ iquest(100)
4158 COMMON /zebq/ iqfenc(4), lq(100)
4159 dimension iq(92), q(92)
4160 equivalence(iq(1),lq(9)), (q(1),iq(1))
4161 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4162 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4163 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4164 +, nqtrac,mqtrac(48)
4165 equivalence(kqsp,nqoffs(1))
4166 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4167 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4168 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4169 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4170 dimension iqcur(16)
4171 equivalence(iqcur(1),lqstor)
4172 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4173 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4174 +, lqsyss(10), lqsysr(10), iqtdum(22)
4175 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4176 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4177 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4178 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4179 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4180 dimension iqtabv(16)
4181 equivalence(iqtabv(1),lqpsto)
4182 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
4183 dimension ixst(9), lp(9)
4184 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
4185 ixstor = ixst(1)
4186 iqln = lp(1)
4187 IF (ixstor.EQ.-7) GO TO 21
4188 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
4189 21 IF (iqln.LT.lqsta(kqt+1)) GO TO 98
4190 IF (iqln.GE.lqsta(kqt+21)) GO TO 98
4191 iwd = lq(kqs+iqln)
4192 nst = jbyt(iwd,1,16) - 12
4193 IF (nst.LT.0) GO TO 41
4194 iqls = iqln + nst + 1
4195 IF (iqls.GE.lqsta(kqt+21)) GO TO 91
4196 iqnio = jbyt(iq(kqs+iqls),19,4)
4197 iqid = iq(kqs+iqls-4)
4198 iqnl = iq(kqs+iqls-3)
4199 iqns = iq(kqs+iqls-2)
4200 iqnd = iq(kqs+iqls-1)
4201 IF ( jbyt(iqnl,iqbitw-3,4)
4202 + + jbyt(iqns,iqbitw-3,4)
4203 + + jbyt(iqnd,iqbitw-3,4) .NE.0) GO TO 91
4204 iqnx = iqls + iqnd + 9
4205 IF (iqnx.GT.lqsta(kqt+21)) GO TO 91
4206 IF (iqns.GT.iqnl) GO TO 91
4207 IF (nst.NE.iqnio+iqnl) GO TO 91
4208 iqfoul = 0
4209 RETURN
4210 41 nwd = jbyt(iwd,17,iqdrop-17)
4211 iqls = iqln - 8
4212 iqnx = iqln + nwd
4213 iqnd = -nwd
4214 IF (nwd.EQ.0) GO TO 91
4215 IF (nwd.NE.nst+12) GO TO 91
4216 nst = jbyt(iwd,iqdrop,iqbitw-iqdrop)
4217 IF (nst.NE.1) GO TO 91
4218 iqfoul= 0
4219 RETURN
4220 91 iqfoul = 7
4221 RETURN
4222 98 iqfoul = -7
4223 END
4224
4225*-------------------------------------------------------------------------------
4226
4227 SUBROUTINE mzchnb (LIX)
4228 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4229 COMMON /quest/ iquest(100)
4230 COMMON /zebq/ iqfenc(4), lq(100)
4231 dimension iq(92), q(92)
4232 equivalence(iq(1),lq(9)), (q(1),iq(1))
4233 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4234 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4235 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4236 +, nqtrac,mqtrac(48)
4237 equivalence(kqsp,nqoffs(1))
4238 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4239 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4240 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4241 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4242 dimension iqcur(16)
4243 equivalence(iqcur(1),lqstor)
4244 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4245 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4246 +, lqsyss(10), lqsysr(10), iqtdum(22)
4247 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4248 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4249 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4250 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4251 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4252 dimension iqtabv(16)
4253 equivalence(iqtabv(1),lqpsto)
4254 dimension lix(9)
4255 dimension namesr(2)
4256 DATA namesr / 4hmzch, 4hnb /
4257 k = locf(lix(1)) - lqstor
4258 IF (k.LT.lqsta(kqt+1)) RETURN
4259 IF (k.GE.lqend(kqt+20)) RETURN
4260 mqtrac(nqtrac+1) = namesr(1)
4261 mqtrac(nqtrac+2) = namesr(2)
4262 nqtrac = nqtrac + 2
4263 nqcase = 1
4264 nqfata = 2
4265 iquest(11) = k
4266 iquest(12) = lix(1)
4267 iquest(9) = namesr(1)
4268 iquest(10)= namesr(2)
4269 END
4270
4271*-------------------------------------------------------------------------------
4272
4273 SUBROUTINE mzdrop (IXSTOR,LHEADP,CHOPT)
4274 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
4275 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
4276 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
4277 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
4278 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
4279 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4280 COMMON /quest/ iquest(100)
4281 COMMON /zebq/ iqfenc(4), lq(100)
4282 dimension iq(92), q(92)
4283 equivalence(iq(1),lq(9)), (q(1),iq(1))
4284 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4285 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4286 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4287 +, nqtrac,mqtrac(48)
4288 equivalence(kqsp,nqoffs(1))
4289 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4290 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4291 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4292 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4293 dimension iqcur(16)
4294 equivalence(iqcur(1),lqstor)
4295 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4296 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4297 +, lqsyss(10), lqsysr(10), iqtdum(22)
4298 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4299 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4300 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4301 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4302 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4303 dimension iqtabv(16)
4304 equivalence(iqtabv(1),lqpsto)
4305 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
4306 dimension lheadp(9)
4307 CHARACTER *(*) CHOPT
4308 dimension namesr(2)
4309 DATA namesr / 4hmzdr, 4hop /
4310 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
4311 lhead = lheadp(1)
4312 IF (lhead.EQ.0) RETURN
4313 mqtrac(nqtrac+1) = namesr(1)
4314 mqtrac(nqtrac+2) = namesr(2)
4315 nqtrac = nqtrac + 2
4316 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
4317 CALL uoptc (chopt,'LV',iquest)
4318 iflag = iquest(1)
4319 IF (iquest(2).NE.0) iflag=-1
4320 CALL mzchls (-7,lhead)
4321 IF (iqfoul.NE.0) GO TO 91
4322 IF (nqlogl.LT.2) GO TO 19
4323 WRITE (iqlog,9018) jqstor,lhead,iqid,chopt
4324 9018 FORMAT (' MZDROP- Store',i3,' L/ID=',i9,1x,a4,' Opt=',a)
4325 19 khead = lq(kqs+lhead+2)
4326 21 IF (iflag) 22, 31, 41
4327 22 ns = iqns
4328 CALL mzflag (ixstor,lhead,iqdrop,'V')
4329 CALL vzeroi (lq(kqs+lhead-ns),ns)
4330 GO TO 999
4331 31 CALL mzflag (ixstor,lhead,iqdrop,'.')
4332 ln = lq(kqs+lhead)
4333 IF (ln.EQ.0) GO TO 88
4334 IF (ln.EQ.lhead) GO TO 88
4335 CALL mzchls (-7,ln)
4336 IF (iqfoul.NE.0) GO TO 92
4337 IF (khead.NE.0) lq(kqs+khead)=ln
4338 lq(kqs+ln+2) = khead
4339 GO TO 999
4340 41 CALL mzflag (ixstor,lhead,iqdrop,'L')
4341 88 IF (khead.NE.0) lq(kqs+khead)=0
4342 999 nqtrac = nqtrac - 2
4343 RETURN
4344 92 nqcase = 1
4345 nqfata = 1
4346 iquest(12) = ln
4347 91 nqcase = nqcase + 1
4348 nqfata = nqfata + 1
4349 iquest(11) = lhead
4350 iquest(9) = namesr(1)
4351 iquest(10)= namesr(2)
4352 END
4353
4354*-------------------------------------------------------------------------------
4355
4356 FUNCTION mzdvac (IXDIVP)
4357 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
4358 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
4359 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
4360 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
4361 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4362 COMMON /quest/ iquest(100)
4363 COMMON /zebq/ iqfenc(4), lq(100)
4364 dimension iq(92), q(92)
4365 equivalence(iq(1),lq(9)), (q(1),iq(1))
4366 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4367 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4368 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4369 +, nqtrac,mqtrac(48)
4370 equivalence(kqsp,nqoffs(1))
4371 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4372 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4373 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4374 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4375 dimension iqcur(16)
4376 equivalence(iqcur(1),lqstor)
4377 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4378 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4379 +, lqsyss(10), lqsysr(10), iqtdum(22)
4380 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4381 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4382 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4383 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4384 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4385 dimension iqtabv(16)
4386 equivalence(iqtabv(1),lqpsto)
4387 dimension ixdivp(9)
4388 dimension namesr(2)
4389 DATA namesr / 4hmzdv, 4hac /
4390 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
4391 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
4392 jbytet(mz,izw,izp,nzb) = iand(mz,
4393 + ishft(ishft(izw,33-izp-nzb),-(32-nzb)) )
4394 ixin = ixdivp(1)
4395 mqtrac(nqtrac+1) = namesr(1)
4396 mqtrac(nqtrac+2) = namesr(2)
4397 nqtrac = nqtrac + 2
4398 jst = jbyt(ixin,27,6)
4399 IF (jst.EQ.jqstor) GO TO 31
4400 IF (jst-16.EQ.jqstor) GO TO 21
4401 CALL mzsdiv (ixin,-7)
4402 IF (jst.LT.16) GO TO 31
4403 21 ixac = jbyt(ixin,1,20)
4404 ixge = jbyt(ixin,21,6)
4405 IF (ixge.EQ.0) GO TO 59
4406 IF (ixge.LT.16) GO TO 41
4407 29 CALL mzsdiv (ixin,0)
4408 31 jdiv = jbyt(ixin,1,26)
4409 IF (jdiv.GE.25) GO TO 29
4410 ixac = 0
4411 IF (jdiv.GE.21) GO TO 33
4412 ixac = msbit1(ixac,jdiv)
4413 GO TO 59
4414 33 ixge = msbit1(0, jdiv-20)
4415 41 jdiv = 1
4416 42 IF (jdiv.EQ.jqdvll+1) jdiv=jqdvsy
4417 IF (jbytet(ixge,iqkind(kqt+jdiv),21,4).EQ.0) GO TO 47
4418 ixac = msbit1(ixac,jdiv)
4419 47 jdiv = jdiv + 1
4420 IF (jdiv.LT.21) GO TO 42
4421 59 mzdvac = ixac
4422 999 nqtrac = nqtrac - 2
4423 END
4424
4425*-------------------------------------------------------------------------------
4426
4427 SUBROUTINE mzgarb (IXGP,IXWP)
4428 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
4429 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
4430 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
4431 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
4432 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
4433 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4434 COMMON /quest/ iquest(100)
4435 COMMON /zebq/ iqfenc(4), lq(100)
4436 dimension iq(92), q(92)
4437 equivalence(iq(1),lq(9)), (q(1),iq(1))
4438 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4439 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4440 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4441 +, nqtrac,mqtrac(48)
4442 equivalence(kqsp,nqoffs(1))
4443 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4444 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4445 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4446 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4447 dimension iqcur(16)
4448 equivalence(iqcur(1),lqstor)
4449 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4450 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4451 +, lqsyss(10), lqsysr(10), iqtdum(22)
4452 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4453 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4454 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4455 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4456 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4457 dimension iqtabv(16)
4458 equivalence(iqtabv(1),lqpsto)
4459 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
4460 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
4461 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
4462 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
4463 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
4464 +, lqmtc1,lqmtc2, nqfrtc,nqlive
4465 dimension ixgp(1), ixwp(9)
4466 dimension namesr(2)
4467 DATA namesr / 4hmzga, 4hrb /
4468 ixgarb = ixgp(1)
4469 ixwipe = ixwp(1)
4470 mqtrac(nqtrac+1) = namesr(1)
4471 mqtrac(nqtrac+2) = namesr(2)
4472 nqtrac = nqtrac + 2
4473 jvlev = 2
4474 mqdvga = 0
4475 mqdvwi = 0
4476 IF (ixgarb.EQ.0) GO TO 16
4477 jvlev = 1
4478 mqdvga = mzdvac(ixgarb)
4479 IF (ixwipe.EQ.0) GO TO 19
4480 jsto = jqstor
4481 mqdvwi = mzdvac(ixwipe)
4482 IF (jsto.NE.jqstor) GO TO 91
4483 GO TO 19
4484 16 mqdvwi = mzdvac(ixwipe)
4485 19 IF (mqdvga+mqdvwi.EQ.0) GO TO 999
4486 nqresv = 0
4487 jqstmv = -1
4488 IF (nqlogl.LT.1) GO TO 24
4489 IF (mqdvga.NE.0) GO TO 22
4490 IF (nqlogl.LT.2) GO TO 24
4491 22 WRITE (iqlog,9022) jqstor,mqdvga,mqdvwi
4492 9022 FORMAT (' MZGARB- User Garb.C./Wipe for store',i3,', Divs',
4493 f2(2x,z6))
4494 iqvrem(1,jvlev) = iqvid(1)
4495 iqvrem(2,jvlev) = iqvid(2)
4496 24 CALL mztabm
4497 CALL mztabr
4498 CALL mztabx
4499 CALL mztabf
4500 IF (nqnoop.NE.0) GO TO 999
4501 CALL mzgsta (nqdgau(kqt+1))
4502 CALL mzrelx
4503 CALL mzmove
4504 IF (iqpart.NE.0) GO TO 24
4505 999 nqtrac = nqtrac - 2
4506 RETURN
4507 91 nqcase = 1
4508 nqfata = 2
4509 iquest(11) = jsto
4510 iquest(12) = jqstor
4511 iquest(9) = namesr(1)
4512 iquest(10)= namesr(2)
4513 END
4514
4515*-------------------------------------------------------------------------------
4516
4517 SUBROUTINE mzgar1
4518 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
4519 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
4520 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
4521 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
4522 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
4523 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4524 COMMON /quest/ iquest(100)
4525 COMMON /zebq/ iqfenc(4), lq(100)
4526 dimension iq(92), q(92)
4527 equivalence(iq(1),lq(9)), (q(1),iq(1))
4528 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4529 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4530 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4531 +, nqtrac,mqtrac(48)
4532 equivalence(kqsp,nqoffs(1))
4533 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4534 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4535 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4536 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4537 dimension iqcur(16)
4538 equivalence(iqcur(1),lqstor)
4539 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4540 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4541 +, lqsyss(10), lqsysr(10), iqtdum(22)
4542 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4543 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4544 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4545 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4546 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4547 dimension iqtabv(16)
4548 equivalence(iqtabv(1),lqpsto)
4549 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
4550 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
4551 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
4552 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
4553 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
4554 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
4555 +, lqmtc1,lqmtc2, nqfrtc,nqlive
4556 dimension namesr(2)
4557 DATA namesr / 4hmzga, 4hr1 /
4558 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
4559 mqtrac(nqtrac+1) = namesr(1)
4560 mqtrac(nqtrac+2) = namesr(2)
4561 nqtrac = nqtrac + 2
4562 iqvrem(1,1) = iqvid(1)
4563 iqvrem(2,1) = iqvid(2)
4564 mqdvga = 0
4565 mqdvwi = 0
4566 IF (jqdivi.LT.3) GO TO 24
4567 mqdvga = msbit1(0,jqdivi)
4568 jqdvm2 = jqdivi - jqmode
4569 IF (jqdvm2.EQ.jqdvsy-1) jqdvm2=jqdvll
4570 jqdvm1 = 2
4571 jqstmv = jqstor
4572 iqtnmv = 0
4573 IF (jqshar.EQ.0) GO TO 29
4574 mqdvga = msbit1(mqdvga,jqshar)
4575 GO TO 29
4576 24 mqdvga = 3
4577 jqstmv = -1
4578 29 nqdvmv = 0
4579 nresav = nqresv
4580 IF (nqlogl.GE.1) WRITE (iqlog,9028) mqtrac(nqtrac-3),
4581 + mqtrac(nqtrac-2),jqstor,jqdivi,nqresv
4582 9028 FORMAT (' MZGAR1- Auto Garbage Collection called from ',2a4,
4583 f' for Store/Div',2i3,' Free',i7)
4584 CALL mztabm
4585 CALL mztabr
4586 nqresv = nqresv + nqfree
4587 IF (nqresv.GE.0) GO TO 51
4588 IF (iqpart.NE.0) GO TO 51
4589 IF (jqdivi.LT.3) GO TO 72
4590 nresv1 = lqsta(kqt+2) - lqend(kqt+1) - nqminr
4591 nresv1 = min(nresv1,lqend(kqt+2)-lq2end)
4592 IF (jqmode.NE.0) GO TO 34
4593 IF (jqshar.NE.0) THEN
4594 npossh = nqdmax(kqt+jqdivi) + nqdmax(kqt+jqdivn)
4595 + -(lqend(kqt+jqdivn) - lqsta(kqt+jqdivi))
4596 GO TO 36
4597 ELSE
4598 npossh = lqsta(kqt+jqdivi) + nqdmax(kqt+jqdivi)
4599 + - lqsta(kqt+jqdivn)
4600 GO TO 36
4601 ENDIF
4602 34 IF (jqshar.NE.0) THEN
4603 npossh = nqdmax(kqt+jqdivi) + nqdmax(kqt+jqdivn)
4604 + -(lqend(kqt+jqdivi) - lqsta(kqt+jqdivn))
4605 ELSE
4606 npossh = lqend(kqt+jqdivn)
4607 + - (lqend(kqt+jqdivi) - nqdmax(kqt+jqdivi))
4608 ENDIF
4609 36 nsh = (lqend(kqt+jqdivi)-lqsta(kqt+jqdivi)) / 8
4610 nsh = max(nsh,24) - nqresv
4611 nsh = min(nsh, npossh, nresv1)
4612 IF (nsh+nqresv.LT.0) GO TO 72
4613 nqresv = nqresv + nsh
4614 nqdvmv = - nsh
4615 CALL mztabs
4616 51 nwin = nqresv - nresav
4617 IF (nqlogl.GE.1) WRITE (iqlog,9051) nwin,nqdvmv
4618 9051 FORMAT (10x,'Wins',i7,' words, Shift by',i7)
4619 CALL mztabx
4620 CALL mztabf
4621 IF (nqnoop) 68, 53, 67
4622 53 CALL mzgsta (nqdgaf(kqt+1))
4623 CALL mzrelx
4624 67 CALL mzmove
4625 68 IF (nqresv.LT.0) GO TO 71
4626 999 nqtrac = nqtrac - 2
4627 RETURN
4628 71 IF (iqpart.NE.0) GO TO 29
4629 72 iquest(11) = nqresv
4630 iquest(12) = jqstor
4631 iquest(13) = jqdivi
4632 IF (nqlogl.GE.1) WRITE (iqlog,9072) nqresv
4633 9072 FORMAT (10x,'Not enough space, Free',i7)
4634 IF (nqperm.NE.0) GO TO 999
4635 IF (jqkind.NE.1) GO TO 91
4636 print*,'>>>>>> CALL ZTELL (99,1)'
4637 91 nqcase = 1
4638 nqfata = 1
4639 iquest(9) = namesr(1)
4640 iquest(10)= namesr(2)
4641 END
4642
4643*-------------------------------------------------------------------------------
4644
4645 SUBROUTINE mzform (CHID,CHFORM,IXIOP)
4646 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
4647 COMMON /zkrakc/iqholk(120), iqkrak(80), iqcetk(122)
4648 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4649 COMMON /quest/ iquest(100)
4650 COMMON /zebq/ iqfenc(4), lq(100)
4651 dimension iq(92), q(92)
4652 equivalence(iq(1),lq(9)), (q(1),iq(1))
4653 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4654 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4655 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4656 +, nqtrac,mqtrac(48)
4657 equivalence(kqsp,nqoffs(1))
4658 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4659 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4660 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4661 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4662 dimension iqcur(16)
4663 equivalence(iqcur(1),lqstor)
4664 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4665 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4666 +, lqsyss(10), lqsysr(10), iqtdum(22)
4667 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4668 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4669 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4670 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4671 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4672 dimension iqtabv(16)
4673 equivalence(iqtabv(1),lqpsto)
4674 equivalence(lqform,lqsyss(5))
4675 equivalence(nw,iquest(1))
4676 dimension ixiop(99)
4677 CHARACTER CHID*(*), CHFORM*(*)
4678 dimension mmid(5), mmix(5), mmio(5)
4679 dimension namesr(2)
4680 DATA namesr / 4hmzfo, 4hrm /
4681 DATA mmid / 4hqid , 2, 2, 10, 5 /
4682 DATA mmix / 4hqiox, 0, 0, 7, 2 /
4683 DATA mmio / 4hqiod, 0, 0, 50, 1 /
4684 msbyt(mz,izw,izp,nzb) = ior(
4685 + iand(izw, not(ishft(ishft(not(0),-(32-nzb)),izp-1)))
4686 + ,ishft(ishft(mz,32-nzb), -(33-izp-nzb)) )
4687 mqtrac(nqtrac+1) = namesr(1)
4688 mqtrac(nqtrac+2) = namesr(2)
4689 nqtrac = nqtrac + 2
4690 n = min(4, len(chid))
4691 CALL uctoh (chid,idh,4,n)
4692 IF (lqform.EQ.0) GO TO 75
4693 12 iqcetk(121) = idh
4694 liod = lq(kqsp+lqform-2)
4695 ixiod = iq(kqsp+liod+1)
4696 CALL mzioch (iq(kqsp+liod+ixiod+1),16,chform)
4697 nw = nw + 1
4698 nwio = ixiod + nw
4699 iq(kqsp+liod+1) = nwio
4700 nfrio = iq(kqsp+liod-1) - nwio
4701 lid = lqform
4702 IF (idh.LT.0) lid=lq(kqsp+lid)
4703 lix = lq(kqsp+lid-1)
4704 nwid = iq(kqsp+lid+1) + 1
4705 iq(kqsp+lid+1) = nwid
4706 iq(kqsp+lid+nwid+3) = idh
4707 iq(kqsp+lix+nwid) = ixiod
4708 nfrid = iq(kqsp+lid-1) - nwid - 3
4709 iquest(2) = 64*nw + 2
4710 iquest(2) = msbyt(ixiod,iquest(2),17,15)
4711 ixiop(1) = iquest(2)
4712 IF (nfrid.EQ.0) GO TO 71
4713 28 IF (nfrio.LT.16) GO TO 73
4714 29 CONTINUE
4715 999 nqtrac = nqtrac - 2
4716 RETURN
4717 71 CALL mzpush (jqpdvs,lid,0,20,'I')
4718 lix = lq(kqsp+lid-1)
4719 CALL mzpush (jqpdvs,lix,0,20,'I')
4720 GO TO 28
4721 73 liod = lq(kqsp+lqform-2)
4722 CALL mzpush (jqpdvs,liod,0,60,'I')
4723 GO TO 29
4724 75 CONTINUE
4725 DO 76 j=1,2
4726 CALL mzlift (jqpdvs,l,lqform,1,mmid,0)
4727 CALL mzlift (jqpdvs,lix,l,-1,mmix,0)
4728 76 CONTINUE
4729 CALL mzlift (jqpdvs,l,lqform,-2,mmio,0)
4730 iq(kqsp+l+1) = 1
4731 GO TO 12
4732 END
4733
4734*-------------------------------------------------------------------------------
4735
4736 FUNCTION mzfdiv (IXST,LIXP)
4737 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4738 COMMON /quest/ iquest(100)
4739 COMMON /zebq/ iqfenc(4), lq(100)
4740 dimension iq(92), q(92)
4741 equivalence(iq(1),lq(9)), (q(1),iq(1))
4742 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4743 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4744 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4745 +, nqtrac,mqtrac(48)
4746 equivalence(kqsp,nqoffs(1))
4747 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4748 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4749 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4750 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4751 dimension iqcur(16)
4752 equivalence(iqcur(1),lqstor)
4753 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4754 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4755 +, lqsyss(10), lqsysr(10), iqtdum(22)
4756 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4757 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4758 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4759 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4760 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4761 dimension iqtabv(16)
4762 equivalence(iqtabv(1),lqpsto)
4763 dimension ixst(9), lixp(9)
4764 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
4765 ixstor = ixst(1)
4766 lix = lixp(1)
4767 IF (ixstor.NE.-7) THEN
4768 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
4769 jdivi = 2
4770 ELSE
4771 jdivi = jqdivi
4772 ENDIF
4773 IF (jdivi.EQ.0) GO TO 21
4774 IF (lix.LT.lqsta(kqt+jdivi)) GO TO 21
4775 IF (lix.LT.lqend(kqt+jdivi)) GO TO 99
4776 21 jdivi = 1
4777 IF (lix.LT.lqend(kqt+jqdvll)) GO TO 24
4778 IF (lix.GE.lqend(kqt+20)) GO TO 91
4779 jdivi = jqdvsy
4780 24 IF (lix.LT.lqend(kqt+jdivi)) GO TO 26
4781 jdivi = jdivi + 1
4782 GO TO 24
4783 26 IF (lix.GE.lqsta(kqt+jdivi)) GO TO 99
4784 91 jdivi = 0
4785 99 mzfdiv = jdivi
4786 END
4787
4788*-------------------------------------------------------------------------------
4789
4790 SUBROUTINE mzfgap
4791 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
4792 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
4793 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
4794 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
4795 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4796 COMMON /quest/ iquest(100)
4797 COMMON /zebq/ iqfenc(4), lq(100)
4798 dimension iq(92), q(92)
4799 equivalence(iq(1),lq(9)), (q(1),iq(1))
4800 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4801 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4802 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4803 +, nqtrac,mqtrac(48)
4804 equivalence(kqsp,nqoffs(1))
4805 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4806 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4807 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4808 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4809 dimension iqcur(16)
4810 equivalence(iqcur(1),lqstor)
4811 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4812 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4813 +, lqsyss(10), lqsysr(10), iqtdum(22)
4814 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4815 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4816 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4817 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4818 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4819 dimension iqtabv(16)
4820 equivalence(iqtabv(1),lqpsto)
4821 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
4822 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
4823 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
4824 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
4825 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
4826 +, lqmtc1,lqmtc2, nqfrtc,nqlive
4827 dimension ngapv(7), jdivv(7), jstov(7), jpv(7)
4828 equivalence(ngapv(1),iquest(11)), (jdivv(1),iquest(21))
4829 equivalence(jstov(1),iquest(31)), (jpv(1), iquest(41))
4830 dimension nqgapv(2)
4831 equivalence(nqgapv(1),nqgapn)
4832 CALL vzeroi (iqgap,20)
4833 15 DO 17 j=1,6
4834 17 ngapv(j) = 0
4835 IF (jqstmv.LT.0) GO TO 19
4836 kt = nqofft(jqstmv+1)
4837 jdvsh1 = jqdvm1
4838 jdvsh2 = jqdvm2
4839 IF (nqdvmv.GT.0) GO TO 19
4840 IF (jdvsh1.EQ.iqtabv(kt+9)) jdvsh1=iqtabv(kt+8)+1
4841 jdvsh1 = jdvsh1 - 1
4842 jdvsh2 = jdvsh2 - 1
4843 19 mingn = 0
4844 mingv = 0
4845 jmingn = 1
4846 jmingv = 5
4847 jsto = -1
4848 21 jsto = jsto + 1
4849 IF (jsto.GT.nqstor) GO TO 61
4850 IF (nqallo(jsto+1).LT.0) GO TO 21
4851 kt = nqofft(jsto+1)
4852 jdvn = 1
4853 31 jdiv = jdvn
4854 IF (jdiv.EQ.21) GO TO 21
4855 jdvn = jdiv + 1
4856 IF (jdiv.EQ.iqtabv(kt+8)) jdvn=iqtabv(kt+9)
4857 nwgap = lqsta(kt+jdvn) - lqend(kt+jdiv)
4858 IF (nwgap.LT.164) GO TO 31
4859 IF (jsto.NE.jqstmv) GO TO 41
4860 IF (jdiv.LT.jdvsh1) GO TO 41
4861 IF (jdiv.GT.jdvsh2) GO TO 41
4862 IF (nwgap.LE.mingv) GO TO 31
4863 ngapv(jmingv) = nwgap
4864 jdivv(jmingv) = jdiv
4865 jstov(jmingv) = jsto
4866 jmingv = 5
4867 mingv = ngapv(5)
4868 IF (mingv.LE.ngapv(6)) GO TO 31
4869 jmingv = 6
4870 mingv = ngapv(6)
4871 GO TO 31
4872 41 IF (nwgap.LE.mingn) GO TO 31
4873 ngapv(jmingn) = nwgap
4874 jdivv(jmingn) = jdiv
4875 jstov(jmingn) = jsto
4876 jmingn = 1
4877 mingn = ngapv(1)
4878 DO 44 j=2,4
4879 IF (mingn.LE.ngapv(j)) GO TO 44
4880 jmingn = j
4881 mingn = ngapv(j)
4882 44 CONTINUE
4883 GO TO 31
4884 61 DO 62 j=1,6
4885 62 jpv(j) = j
4886 jg = 1
4887 65 jf = jpv(jg)
4888 jn = jpv(jg+1)
4889 IF (ngapv(jf).LT.ngapv(jn)) GO TO 67
4890 IF (jg.EQ.3) GO TO 71
4891 66 jg = jg + 1
4892 GO TO 65
4893 67 jpv(jg) = jn
4894 jpv(jg+1) = jf
4895 IF (jg.EQ.1) GO TO 66
4896 jg = jg - 1
4897 GO TO 65
4898 71 jg = 4
4899 75 jf = jpv(jg)
4900 jn = jpv(jg+1)
4901 IF (ngapv(jf).LT.ngapv(jn)) GO TO 77
4902 IF (jg.EQ.5) GO TO 81
4903 76 jg = jg + 1
4904 GO TO 75
4905 77 jpv(jg) = jn
4906 jpv(jg+1) = jf
4907 IF (jg.EQ.3) GO TO 76
4908 jg = jg - 1
4909 GO TO 75
4910 81 nqgapn = 0
4911 nqgap = 0
4912 jsel = 1
4913 DO 87 jg=1,4
4914 ju = jpv(jg)
4915 nwgap= ngapv(ju)
4916 IF (nwgap.EQ.0) GO TO 87
4917 jdiv = jdivv(ju)
4918 jsto = jstov(ju)
4919 kt = nqofft(jsto+1)
4920 ks = nqoffs(jsto+1)
4921 iqgap(1,jg) = nwgap
4922 iqgap(2,jg) = ks+ lqend(kt+jdiv)
4923 iqgap(3,jg) = jdiv
4924 iqgap(4,jg) = jsto
4925 IF (ju.GE.5) jsel=2
4926 nqgapv(jsel) = jg
4927 87 CONTINUE
4928 nqgap = max(nqgapn,nqgap)
4929 END
4930
4931*-------------------------------------------------------------------------------
4932
4933 SUBROUTINE mztabc
4934 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
4935 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
4936 COMMON /quest/ iquest(100)
4937 COMMON /zebq/ iqfenc(4), lq(100)
4938 dimension iq(92), q(92)
4939 equivalence(iq(1),lq(9)), (q(1),iq(1))
4940 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
4941 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
4942 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
4943 +, nqtrac,mqtrac(48)
4944 equivalence(kqsp,nqoffs(1))
4945 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
4946 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
4947 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
4948 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
4949 dimension iqcur(16)
4950 equivalence(iqcur(1),lqstor)
4951 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
4952 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
4953 +, lqsyss(10), lqsysr(10), iqtdum(22)
4954 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
4955 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
4956 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
4957 +, nqdpsh(20),nqdred(20),nqdsiz(20)
4958 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
4959 dimension iqtabv(16)
4960 equivalence(iqtabv(1),lqpsto)
4961 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
4962 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
4963 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
4964 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
4965 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
4966 +, lqmtc1,lqmtc2, nqfrtc,nqlive
4967 equivalence(ls,iqls), (lnx,iqnx)
4968 dimension namesr(2)
4969 DATA namesr / 4hmzta, 4hbc /
4970 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
4971 mqtrac(nqtrac+1) = namesr(1)
4972 mqtrac(nqtrac+2) = namesr(2)
4973 nqtrac = nqtrac + 2
4974 nqfrtc = 0
4975 nqlive = 0
4976 n = 0
4977 lnx = lqmtc1
4978 lqte = lqtc1
4979 new = iqtval
4980 lq(lqte) = lnx
4981 lq(lqte+2) = 0
4982 21 mode = new
4983 22 ln = lnx
4984 IF (ln.GE.lqmtc2) GO TO 41
4985 n = n + 1
4986 CALL mzchln (-7,ln)
4987 IF (iqfoul.NE.0) GO TO 91
4988 new = jbit(iq(kqs+ls),iqtbit)
4989 IF (new.EQ.mode) GO TO 22
4990 IF (new.EQ.iqtval) GO TO 36
4991 nqlive = nqlive + n - 1
4992 lq(lqte+1) = ln
4993 lq(lqte+3) = 1
4994 lqte = lqte + 4
4995 GO TO 21
4996 36 nqfrtc = nqfrtc + (ln - lq(lqte-3))
4997 lq(lqte) = ln
4998 lq(lqte+2) = 0
4999 n = 1
5000 IF (lqte.LT.lqtc2) GO TO 21
5001 CALL mztabh
5002 IF (iqpart.EQ.0) GO TO 21
5003 iqpart = 1
5004 ln = lqmtc2
5005 41 IF (new.NE.iqtval) GO TO 43
5006 nqlive = nqlive + n
5007 lq(lqte+1) = ln
5008 lq(lqte+3) = 0
5009 GO TO 45
5010 43 nqfrtc = nqfrtc + (ln-lq(lqte-3))
5011 lq(lqte) = ln
5012 lq(lqte+1) = ln
5013 lq(lqte+2) = 0
5014 lq(lqte+3) = 0
5015 45 lqte = lqte + 4
5016 999 nqtrac = nqtrac - 2
5017 RETURN
5018 91 nqcase = 1
5019 nqfata = 3
5020 iquest(11) = ln
5021 iquest(12) = lqmtc1
5022 iquest(13) = lqmtc2
5023 iquest(9) = namesr(1)
5024 iquest(10)= namesr(2)
5025 END
5026
5027*-------------------------------------------------------------------------------
5028
5029 SUBROUTINE mztabf
5030 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
5031 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
5032 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
5033 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
5034 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5035 COMMON /quest/ iquest(100)
5036 COMMON /zebq/ iqfenc(4), lq(100)
5037 dimension iq(92), q(92)
5038 equivalence(iq(1),lq(9)), (q(1),iq(1))
5039 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5040 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5041 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5042 +, nqtrac,mqtrac(48)
5043 equivalence(kqsp,nqoffs(1))
5044 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5045 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5046 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5047 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5048 dimension iqcur(16)
5049 equivalence(iqcur(1),lqstor)
5050 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5051 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5052 +, lqsyss(10), lqsysr(10), iqtdum(22)
5053 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5054 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5055 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5056 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5057 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5058 dimension iqtabv(16)
5059 equivalence(iqtabv(1),lqpsto)
5060 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
5061 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
5062 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
5063 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
5064 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
5065 +, lqmtc1,lqmtc2, nqfrtc,nqlive
5066 dimension namesr(2)
5067 DATA namesr / 4hmzta, 4hbf /
5068 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
5069 mqtrac(nqtrac+1) = namesr(1)
5070 mqtrac(nqtrac+2) = namesr(2)
5071 nqtrac = nqtrac + 2
5072 lmt = lqmta
5073 ncoll = 0
5074 ngarb = 0
5075 nqnoop = 0
5076 lfixlo = nqlink + 1
5077 21 jdiv = lq(lmt)
5078 iact = lq(lmt+1)
5079 IF (iact.EQ.4) GO TO 26
5080 IF (iact.GE.2) GO TO 28
5081 IF (iact.GE.0) lfixlo=lqend(kqt+jdiv)
5082 lmt = lmt + 8
5083 IF (lmt.LT.lqmte) GO TO 21
5084 nqnoop = -7
5085 IF (nqdvmv.EQ.0) GO TO 81
5086 nqnoop = 7
5087 GO TO 81
5088 26 IF (lq(lmt+9).NE.4) GO TO 28
5089 IF (lmt+8.GE.lqmte) GO TO 28
5090 lmt = lmt + 8
5091 GO TO 26
5092 28 lfir = lmt
5093 lqta = lqrta + lq(lmt+5)
5094 31 iact = lq(lmt+1)
5095 nshf = lq(lmt+2)
5096 ltu = lqrta + lq(lmt+5)
5097 IF (iact.EQ.4) GO TO 71
5098 IF (iact.EQ.3) GO TO 61
5099 IF (iact.EQ.2) GO TO 41
5100 IF (iact.LT.0) GO TO 79
5101 ncoll = ncoll + 1
5102 IF (ncoll.NE.1) GO TO 79
5103 lcoll = lmt
5104 GO TO 79
5105 41 IF (ncoll+ngarb.LT.2) GO TO 49
5106 43 lcole = lmt - 8
5107 lt = lq(lcole+5)
5108 ltf = lq(lcoll+5)
5109 n = lt - ltf
5110 nw = lqrta + ltf+1 - lqta
5111 CALL ucopy2 (lq(lqta),lq(lqta+n),nw)
5112 lqta = lqta + n
5113 ncoll = 0
5114 IF (iact.EQ.4) GO TO 71
5115 IF (iact.EQ.3) GO TO 61
5116 49 lq(ltu+2) = nshf
5117 GO TO 77
5118 61 IF (ncoll+ngarb.GE.2) GO TO 43
5119 jdiv = lq(lmt)
5120 lt = ltu
5121 lte = lqrta + lq(lmt+6)
5122 mode = jbit(iqmode(kqt+jdiv),1)
5123 IF (mode.NE.0) GO TO 65
5124 ncum = nshf
5125 GO TO 66
5126 65 ncum = lq(lmt+7) + nshf
5127 66 lq(lt+2) = ncum
5128 ncum = ncum - (lq(lt+4)-lq(lt+1))
5129 lt = lt + 4
5130 IF (lt.LT.lte) GO TO 66
5131 ngarb = -64
5132 GO TO 77
5133 71 IF (ncoll+ngarb.GE.2) GO TO 43
5134 77 ncoll = 0
5135 79 lmt = lmt + 8
5136 IF (lmt.LT.lqmte) GO TO 31
5137 lq(lqta-1) = lfixlo
5138 IF (ncoll.EQ.0) GO TO 81
5139 lqte = lqrta + lq(lcoll+5)
5140 81 CONTINUE
5141 999 nqtrac = nqtrac - 2
5142 END
5143
5144*-------------------------------------------------------------------------------
5145
5146 SUBROUTINE mztabh
5147 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
5148 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
5149 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
5150 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
5151 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5152 COMMON /quest/ iquest(100)
5153 COMMON /zebq/ iqfenc(4), lq(100)
5154 dimension iq(92), q(92)
5155 equivalence(iq(1),lq(9)), (q(1),iq(1))
5156 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5157 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5158 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5159 +, nqtrac,mqtrac(48)
5160 equivalence(kqsp,nqoffs(1))
5161 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5162 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5163 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5164 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5165 dimension iqcur(16)
5166 equivalence(iqcur(1),lqstor)
5167 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5168 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5169 +, lqsyss(10), lqsysr(10), iqtdum(22)
5170 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5171 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5172 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5173 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5174 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5175 dimension iqtabv(16)
5176 equivalence(iqtabv(1),lqpsto)
5177 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
5178 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
5179 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
5180 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
5181 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
5182 +, lqmtc1,lqmtc2, nqfrtc,nqlive
5183 dimension namesr(2)
5184 DATA namesr / 4hmzta, 4hbh /
5185 mqtrac(nqtrac+1) = namesr(1)
5186 mqtrac(nqtrac+2) = namesr(2)
5187 nqtrac = nqtrac + 2
5188 IF (jqgapm.NE.0) GO TO 41
5189 CALL mzfgap
5190 nw = lqmte+1 - lqmta
5191 jqgapm = nqgapn
5192 IF (jqgapm.LT.2) GO TO 26
5193 23 lnew = iqgap(2,jqgapm)
5194 nsh = lnew - lqmta
5195 CALL ucopyi (lq(lqmta),lq(lnew),nw)
5196 lqmta = lnew
5197 lqmtb = lqmtb + nsh
5198 lqmte = lqmte + nsh
5199 lqtc2 = lqtc2 + 161
5200 lqrte = lqrte + 161
5201 iqgap(1,jqgapm) = iqgap(1,jqgapm) - nw
5202 iqgap(2,jqgapm) = iqgap(2,jqgapm) + nw
5203 999 nqtrac = nqtrac - 2
5204 RETURN
5205 26 IF (iqtnmv.EQ.0) jqgapm=nqgap
5206 IF (jqgapm.NE.0) GO TO 23
5207 IF (iqtnmv.LT.0) GO TO 31
5208 29 iqpart = 7
5209 GO TO 999
5210 31 jqgapm = nqgap
5211 IF (jqgapm.EQ.0) GO TO 29
5212 iqpart = -7
5213 GO TO 23
5214 36 IF (iqtnmv.GE.0) GO TO 29
5215 IF (jqgapr.GT.nqgapn) GO TO 29
5216 jqgapr = nqgap
5217 IF (jqgapr.EQ.0) GO TO 29
5218 IF (iqgap(1,nqgap-1).GT.iqgap(1,nqgap)) jqgapr=nqgap-1
5219 nnew = iqgap(1,jqgapr) - (lqrte-lqrta) - 10
5220 IF (nnew.LT.16) GO TO 29
5221 iqpart = -7
5222 GO TO 44
5223 41 IF (jqgapr.NE.0) GO TO 36
5224 IF (nqgapn.EQ.0) GO TO 36
5225 nnew = iqgap(1,1) - nqwktb
5226 IF (nnew.LT.16) GO TO 36
5227 jqgapr = 1
5228 44 lnew = iqgap(2,jqgapr)
5229 nsh = lnew - lqrta
5230 nw = lqte+4 - lqrta
5231 CALL ucopyi (lq(lqrta),lq(lnew),nw)
5232 GO TO 999
5233 END
5234
5235*-------------------------------------------------------------------------------
5236
5237 SUBROUTINE mztabm
5238 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
5239 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
5240 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
5241 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
5242 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5243 COMMON /quest/ iquest(100)
5244 COMMON /zebq/ iqfenc(4), lq(100)
5245 dimension iq(92), q(92)
5246 equivalence(iq(1),lq(9)), (q(1),iq(1))
5247 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5248 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5249 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5250 +, nqtrac,mqtrac(48)
5251 equivalence(kqsp,nqoffs(1))
5252 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5253 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5254 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5255 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5256 dimension iqcur(16)
5257 equivalence(iqcur(1),lqstor)
5258 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5259 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5260 +, lqsyss(10), lqsysr(10), iqtdum(22)
5261 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5262 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5263 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5264 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5265 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5266 dimension iqtabv(16)
5267 equivalence(iqtabv(1),lqpsto)
5268 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
5269 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
5270 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
5271 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
5272 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
5273 +, lqmtc1,lqmtc2, nqfrtc,nqlive
5274 dimension namesr(2)
5275 DATA namesr / 4hmzta, 4hbm /
5276 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
5277 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
5278 mqtrac(nqtrac+1) = namesr(1)
5279 mqtrac(nqtrac+2) = namesr(2)
5280 nqtrac = nqtrac + 2
5281 lqmtbr = 0
5282 iqtbit = iqdrop
5283 iqtval = 0
5284 nqfree = 0
5285 iqpart = 0
5286 mqdvac = 0
5287 iqflio = 0
5288 IF (jqstmv.LT.0) THEN
5289 iqtnmv = 0
5290 jqdvm1 = 0
5291 jqdvm2 = 0
5292 nqdvmv = 0
5293 ENDIF
5294 jqgapm = 0
5295 jqgapr = 0
5296 lqmte = lqwktb + nqwktb - 1
5297 lqmta = lqmte - 160
5298 lqmtb = lqmta
5299 lqrte = lqmta - 10
5300 lqtc2 = lqrte
5301 lqrta = lqwktb
5302 lqta = lqrta + 1
5303 lqte = lqta
5304 lqtc1 = lqta
5305 lmt = lqmta
5306 jdiv = 1
5307 32 lq(lmt) = jdiv
5308 lq(lmt+1) = 0
5309 lq(lmt+2) = 0
5310 lq(lmt+3) = lqsta(kqt+jdiv)
5311 lq(lmt+4) = lqend(kqt+jdiv)
5312 lq(lmt+5) = 0
5313 lq(lmt+6) = 0
5314 lq(lmt+7) = 0
5315 nw = lq(lmt+4) - lq(lmt+3)
5316 IF (nw.EQ.0) GO TO 37
5317 nqdsiz(kqt+jdiv) = max(nqdsiz(kqt+jdiv),nw)
5318 IF (jbit(mqdvwi,jdiv).NE.0) GO TO 41
5319 IF (jbit(mqdvga,jdiv).NE.0) GO TO 44
5320 GO TO 48
5321 37 lq(lmt+1) = -1
5322 GO TO 48
5323 41 IF (jdiv.EQ.jqdvsy) GO TO 48
5324 lq(lmt+1) = 4
5325 GO TO 45
5326 44 lq(lmt+1) = 3
5327 45 mqdvac = msbit1(mqdvac,jdiv)
5328 48 lmt = lmt + 8
5329 jdiv = jdiv + 1
5330 IF (jdiv.EQ.jqdvll+1) jdiv=jqdvsy
5331 IF (jdiv.LT.21) GO TO 32
5332 lqmte = lmt
5333 lqmtlu = lmt
5334 lq(lqmte) = 21
5335 999 nqtrac = nqtrac - 2
5336 END
5337
5338*-------------------------------------------------------------------------------
5339
5340 SUBROUTINE mztabr
5341 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
5342 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
5343 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
5344 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
5345 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5346 COMMON /quest/ iquest(100)
5347 COMMON /zebq/ iqfenc(4), lq(100)
5348 dimension iq(92), q(92)
5349 equivalence(iq(1),lq(9)), (q(1),iq(1))
5350 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5351 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5352 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5353 +, nqtrac,mqtrac(48)
5354 equivalence(kqsp,nqoffs(1))
5355 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5356 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5357 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5358 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5359 dimension iqcur(16)
5360 equivalence(iqcur(1),lqstor)
5361 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5362 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5363 +, lqsyss(10), lqsysr(10), iqtdum(22)
5364 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5365 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5366 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5367 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5368 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5369 dimension iqtabv(16)
5370 equivalence(iqtabv(1),lqpsto)
5371 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
5372 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
5373 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
5374 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
5375 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
5376 +, lqmtc1,lqmtc2, nqfrtc,nqlive
5377 equivalence(lmt,lqmtb)
5378 dimension namesr(2)
5379 DATA namesr / 4hmzta, 4hbr /
5380 msbit0(izw,izp) = iand(izw, not(ishft(1,izp-1)))
5381 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
5382 mqtrac(nqtrac+1) = namesr(1)
5383 mqtrac(nqtrac+2) = namesr(2)
5384 nqtrac = nqtrac + 2
5385 IF (lqmtbr.NE.0) GO TO 81
5386 lqta = lqrta + 2
5387 lqte = lqta
5388 lmt = lqmta
5389 lq(lqta-1) = nqlink + 1
5390 41 jdiv = lq(lmt)
5391 lq(lmt+5) = lqte - lqrta
5392 42 lq(lqte) = lq(lmt+3)
5393 lq(lqte+1) = lq(lmt+4)
5394 lq(lqte+2) = 0
5395 lq(lqte+3) = 0
5396 iact = lq(lmt+1)
5397 IF (iact.EQ.3) GO TO 61
5398 IF (iact.EQ.-1) GO TO 78
5399 IF (iact.EQ.4) GO TO 56
5400 IF (lq(lmt+6).EQ.-3) GO TO 45
5401 lqte = lqte + 4
5402 GO TO 78
5403 45 lq(lmt+6) = 0
5404 lq(lmt+1) = 3
5405 mqdvac = msbit1(mqdvac,jdiv)
5406 GO TO 42
5407 56 lq(lmt+7) = lq(lmt+4) - lq(lmt+3)
5408 GO TO 78
5409 61 IF (iqpart.NE.0) GO TO 66
5410 lqtc1 = lqte
5411 lqtc2 = lqrte - (lqmte-lmt)/2
5412 IF (lqtc1.GE.lqtc2) GO TO 65
5413 lqmtc1 = lq(lmt+3)
5414 lqmtc2 = lq(lmt+4)
5415 CALL mztabc
5416 nqfree = nqfree + nqfrtc
5417 IF (nqlive.EQ.0) GO TO 64
5418 IF (iqpart.NE.0) lqmtbr=lmt
5419 IF (nqfrtc.EQ.0) GO TO 67
5420 lq(lmt+6) = lqte - lqrta
5421 lq(lmt+7) = nqfrtc
5422 GO TO 78
5423 64 lqte = lqtc1
5424 lq(lmt+1) = 4
5425 GO TO 42
5426 65 lqmtbr = lmt
5427 iqpart = 7
5428 66 lq(lmt+6) = -3
5429 lqte = lqte + 4
5430 67 lq(lmt+1) = 2
5431 IF (lq(lmt+2).EQ.0) THEN
5432 lq(lmt+1) = 0
5433 mqdvac = msbit0(mqdvac,jdiv)
5434 ENDIF
5435 78 lmt = lmt + 8
5436 IF (lmt.LT.lqmte) GO TO 41
5437 jdiv = lq(lmt)
5438 lq(lqte) = lqsta(kqt+jdiv)
5439 999 nqtrac = nqtrac - 2
5440 RETURN
5441 81 lmt = lqmtbr
5442 lqmtbr = 0
5443 iqpart = 0
5444 jdiv = lq(lmt)
5445 mqdvac = msbit1(mqdvac,jdiv)
5446 WRITE (iqlog, 9882)
5447 9882 FORMAT (1x/' MZTABR!! !!!!**** re-entry with LQMTBR non-zero',
5448 f'****!!!!'/1x)
5449 jway = lq(lmt+6)
5450 IF (jway.EQ.-3) THEN
5451 lqte = lq(lmt+5)
5452 GO TO 45
5453 ENDIF
5454 lqte = jway - 4
5455 lqmtc1 = lq(lqte)
5456 lqmtc2 = lq(lqte+1)
5457 lqtc1 = lqte
5458 lqtc2 = lqrte - (lqmte-lmt)/2
5459 CALL mztabc
5460 lq(lmt+6) = lqte - lqrta
5461 lq(lmt+7) = lq(lmt+7) + nqfrtc
5462 GO TO 78
5463 END
5464
5465*-------------------------------------------------------------------------------
5466
5467 SUBROUTINE mztabs
5468 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5469 COMMON /quest/ iquest(100)
5470 COMMON /zebq/ iqfenc(4), lq(100)
5471 dimension iq(92), q(92)
5472 equivalence(iq(1),lq(9)), (q(1),iq(1))
5473 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5474 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5475 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5476 +, nqtrac,mqtrac(48)
5477 equivalence(kqsp,nqoffs(1))
5478 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5479 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5480 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5481 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5482 dimension iqcur(16)
5483 equivalence(iqcur(1),lqstor)
5484 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5485 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5486 +, lqsyss(10), lqsysr(10), iqtdum(22)
5487 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5488 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5489 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5490 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5491 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5492 dimension iqtabv(16)
5493 equivalence(iqtabv(1),lqpsto)
5494 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
5495 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
5496 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
5497 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
5498 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
5499 +, lqmtc1,lqmtc2, nqfrtc,nqlive
5500 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
5501 lmt = lqmta
5502 21 lmt = lmt + 8
5503 jdiv = lq(lmt)
5504 IF (jdiv.LT.jqdvm1) GO TO 21
5505 IF (jdiv.GT.jqdvm2) RETURN
5506 lq(lmt+2) = lq(lmt+2) + nqdvmv
5507 IF (lq(lmt+1).LT.0) GO TO 21
5508 IF (lq(lmt+1).GE.2) GO TO 21
5509 lq(lmt+1) = 2
5510 mqdvac = msbit1(mqdvac,jdiv)
5511 GO TO 21
5512 END
5513
5514*-------------------------------------------------------------------------------
5515
5516 SUBROUTINE mztabx
5517 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5518 COMMON /quest/ iquest(100)
5519 COMMON /zebq/ iqfenc(4), lq(100)
5520 dimension iq(92), q(92)
5521 equivalence(iq(1),lq(9)), (q(1),iq(1))
5522 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5523 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5524 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5525 +, nqtrac,mqtrac(48)
5526 equivalence(kqsp,nqoffs(1))
5527 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5528 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5529 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5530 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5531 dimension iqcur(16)
5532 equivalence(iqcur(1),lqstor)
5533 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5534 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5535 +, lqsyss(10), lqsysr(10), iqtdum(22)
5536 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5537 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5538 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5539 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5540 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5541 dimension iqtabv(16)
5542 equivalence(iqtabv(1),lqpsto)
5543 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
5544 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
5545 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
5546 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
5547 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
5548 +, lqmtc1,lqmtc2, nqfrtc,nqlive
5549 jbytet(mz,izw,izp,nzb) = iand(mz,
5550 + ishft(ishft(izw,33-izp-nzb),-(32-nzb)) )
5551 merge = 0
5552 lmt = lqmta
5553 22 IF (lq(lmt+1).LT.2) GO TO 27
5554 jdiv = lq(lmt)
5555 merge = ior(merge, iqkind(kqt+jdiv))
5556 27 lmt = lmt + 8
5557 IF (lmt.LT.lqmte) GO TO 22
5558 lmt = lqmta
5559 32 IF (lq(lmt+1)) 38, 33, 37
5560 33 jdiv = lq(lmt)
5561 IF (jbytet(iqrto(kqt+jdiv),merge,1,26).EQ.0) GO TO 38
5562 IF (jbytet(iqrno(kqt+jdiv),merge,1,26).EQ.0) GO TO 38
5563 lq(lmt+1) = 1
5564 37 lqmtlu = lmt + 8
5565 38 lmt = lmt + 8
5566 IF (lmt.LT.lqmte) GO TO 32
5567 END
5568
5569*-------------------------------------------------------------------------------
5570
5571 SUBROUTINE mzioch (IODVEC,NWIOMP,CHFORM)
5572 COMMON /zkrakc/iqholk(120), iqkrak(80), iqcetk(122)
5573 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
5574 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
5575 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
5576 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
5577 COMMON /quest/ iquest(100)
5578 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5579 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5580 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5581 +, nqtrac,mqtrac(48)
5582 equivalence(kqsp,nqoffs(1))
5583 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
5584 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
5585 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
5586 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
5587 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
5588 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
5589 +, nqhol0,nqholl(95)
5590 dimension iodvec(99), nwiomp(9)
5591 CHARACTER CHFORM*(*)
5592 equivalence(ngr,iquest(1)), (ngru,iquest(2))
5593 dimension mu(99), mce(99)
5594 equivalence(mu(1),iqholk(1)), (mce(1),iqcetk(1))
5595 dimension nbitva(4), nbitvb(4), nbitvc(7)
5596 dimension mxvala(4), mxvalb(4), mxvalc(7)
5597 dimension itab(48), inv(10)
5598 dimension namesr(2)
5599 DATA namesr / 4hmzio, 4hch /
5600 DATA itab / 47
5601 +, -1, 12, -1, 15, -1, 14, -1, 16, 13, -1, -1, -1, -1
5602 +, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1
5603 +, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, 11, 10
5604 +, 19, -1, -1, -1, -1, -2, -2, -2 /
5605 DATA inv / 39, 38, 2, 9, 6, 4, 8, 24, 19, 40 /
5606 DATA nbitva / 32, 16, 10, 8 /
5607 DATA nbitvb / 29, 14, 9, 7 /
5608 DATA nbitvc / 26, 11, 6, 4, 2, 1, 1 /
5609 DATA mxvala / 0, 65536, 1024, 256 /
5610 DATA mxvalb / 0, 16384, 512, 128 /
5611 DATA mxvalc / 0, 2048, 64, 16, 4, 2, 2 /
5612 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
5613 msbyt(mz,izw,izp,nzb) = ior(
5614 + iand(izw, not(ishft(ishft(not(0),-(32-nzb)),izp-1)))
5615 + ,ishft(ishft(mz,32-nzb), -(33-izp-nzb)) )
5616 mqtrac(nqtrac+1) = namesr(1)
5617 mqtrac(nqtrac+2) = namesr(2)
5618 nqtrac = nqtrac + 2
5619 nwiomx = nwiomp(1)
5620 nch = len(chform)
5621 IF (nch.GE.121) GO TO 90
5622 CALL uctoh1 (chform,iqholk,nch)
5623 CALL izbcdt (nch,itab)
5624 nch = iquest(1)
5625 IF (iquest(2).NE.0) GO TO 91
5626 IF (iquest(1).EQ.0) GO TO 91
5627 jposr = -1
5628 jposin = -1
5629 ival = 0
5630 jch = 0
5631 ju = 0
5632 21 nval = 0
5633 22 jch = jch + 1
5634 num = mce(jch)
5635 IF (num.GE.10) GO TO 24
5636 nval = 10*nval + num
5637 IF (jch.LT.nch) GO TO 22
5638 GO TO 92
5639 24 IF (num.GE.12) GO TO 26
5640 IF (nval.NE.0) GO TO 92
5641 IF (num.EQ.11) THEN
5642 nval = -1
5643 jposin = ju
5644 IF (jposr.GE.0) GO TO 93
5645 ENDIF
5646 IF (jch.EQ.nch) GO TO 92
5647 jch = jch + 1
5648 num = mce(jch)
5649 IF (num.LT.12) GO TO 92
5650 IF (num.GE.19) GO TO 92
5651 GO TO 27
5652 26 IF (num.EQ.19) GO TO 29
5653 IF (num.EQ.18) GO TO 92
5654 IF (nval.EQ.0) GO TO 92
5655 IF (num.EQ.15) THEN
5656 IF (nval.NE.2*(nval/2)) GO TO 92
5657 ENDIF
5658 ival = 7
5659 27 mu(ju+1) = num - 11
5660 mu(ju+2) = nval
5661 ju = ju + 2
5662 IF (jch.EQ.nch) GO TO 31
5663 IF (jposin.LT.0) GO TO 21
5664 GO TO 94
5665 29 IF (nval.NE.0) GO TO 92
5666 IF (jposr.GE.0) GO TO 95
5667 IF (jch.EQ.nch) GO TO 92
5668 jposr = ju
5669 GO TO 21
5670 31 nu = ju
5671 nseca = nu/2
5672 ju = 2
5673 iowd = 65
5674 nwio = 0
5675 jfl12 = 1
5676 IF (jposr.GE.0) THEN
5677 IF (jposr+2.NE.nu) GO TO 41
5678 IF (mu(nu-1).NE.7) GO TO 41
5679 ELSE
5680 IF (mu(nu).EQ.0) jfl12=2
5681 ENDIF
5682 32 nseca = nseca - 1
5683 iquest(12) = mu(nu-1)
5684 IF (nseca.EQ.0) THEN
5685 IF (jfl12.EQ.1) GO TO 82
5686 iquest(12) = msbit1(iquest(12),4)
5687 GO TO 82
5688 ENDIF
5689 IF (nseca.GE.2) GO TO 33
5690 IF (mu(2).GE.64) GO TO 34
5691 IF (jfl12.EQ.2) iquest(12)= msbit1(iquest(12),4)
5692 iquest(12) = msbyt(mu(1),iquest(12),5,3)
5693 iquest(12) = msbyt(mu(2),iquest(12),8,6)
5694 GO TO 82
5695 33 IF (ival+nseca.EQ.2) GO TO 38
5696 34 iquest(12) = msbyt(jfl12,iquest(12),14,2)
5697 iquest(12) = msbyt(mu(1),iquest(12),5,3)
5698 iquest(13) = mu(2)
5699 jbtf = 8
5700 IF (nseca.GE.4) GO TO 36
5701 iowd = 2177
5702 nwio = 1
5703 IF (nseca.EQ.1) GO TO 82
5704 ngr = nseca
5705 CALL mziocf (0,mxvala)
5706 IF (ngr.NE.ngru) GO TO 36
5707 nbt = nbitva(ngru)
5708 GO TO 71
5709 36 iquest(12) = msbit1(iquest(12),4)
5710 ngr = min(nseca,3)
5711 CALL mziocf (0,mxvalb)
5712 nbt = nbitvb(ngru)
5713 GO TO 70
5714 38 iquest(12) = 16*iquest(12)
5715 iquest(12) = msbyt(mu(1),iquest(12), 8,3)
5716 iquest(12) = msbyt(mu(3),iquest(12),11,3)
5717 iquest(12) = msbyt(jfl12,iquest(12),14,2)
5718 GO TO 82
5719 41 nsecl = jposr/2
5720 IF (nseca.GE.3) GO TO 44
5721 iquest(12) = mu(nu-1)
5722 iquest(12) = msbyt(3,iquest(12),14,2)
5723 IF (nseca.EQ.2) GO TO 42
5724 IF (mu(2).EQ.0) GO TO 82
5725 GO TO 32
5726 42 IF (mu(4).NE.0) GO TO 44
5727 IF (mu(2).GE.64) GO TO 44
5728 iquest(12) = msbyt(mu(1),iquest(12),5,3)
5729 iquest(12) = msbyt(mu(2),iquest(12),8,6)
5730 IF (nsecl.EQ.1) GO TO 82
5731 iquest(12) = msbit1(iquest(12),4)
5732 GO TO 82
5733 44 IF (nsecl.EQ.0) GO TO 51
5734 IF (nsecl.GE.3) GO TO 61
5735 IF (nseca.GE.5) GO TO 61
5736 IF (ival+nseca.EQ.3) GO TO 48
5737 ngr = nseca
5738 CALL mziocf (0,mxvala)
5739 IF (ngr.NE.ngru) GO TO 61
5740 iquest(12) = mu(1)
5741 iquest(13) = mu(2)
5742 IF (nsecl.EQ.2) iquest(12)=iquest(12)+8
5743 iquest(12) = msbit1(iquest(12),16)
5744 jbtf = 5
5745 nbt = nbitva(ngru)
5746 iowd = 2177
5747 nwio = 1
5748 GO TO 71
5749 48 iquest(12) = 8*(2*mu(1)+nsecl-1)
5750 iquest(12) = msbyt(mu(3),iquest(12), 8,3)
5751 iquest(12) = msbyt(mu(5),iquest(12),11,3)
5752 iquest(12) = msbit1(iquest(12),16)
5753 GO TO 82
5754 51 IF (ival+nseca.EQ.3) GO TO 58
5755 iquest(12) = mu(1)
5756 iquest(13) = mu(2)
5757 iquest(12) = msbyt(5,iquest(12),14,3)
5758 jbtf = 5
5759 IF (nseca.GE.5) GO TO 55
5760 ngr = nseca
5761 CALL mziocf (0,mxvala)
5762 IF (ngr.NE.ngru) GO TO 55
5763 nbt = nbitva(ngru)
5764 iowd = 2177
5765 nwio = 1
5766 GO TO 71
5767 55 iquest(12) = msbit1(iquest(12),4)
5768 ngr = min(nseca,4)
5769 CALL mziocf (0,mxvalb)
5770 nbt = nbitvb(ngru)
5771 GO TO 70
5772 58 iquest(12) = 16*mu(1)
5773 iquest(12) = msbyt(mu(3),iquest(12), 8,3)
5774 iquest(12) = msbyt(mu(5),iquest(12),11,3)
5775 iquest(12) = msbyt(5,iquest(12),14,3)
5776 GO TO 82
5777 61 iquest(12) = nsecl
5778 iquest(13) = mu(2)
5779 IF (nsecl.GE.16) GO TO 96
5780 iquest(12) = msbyt(mu(1),iquest(12),5,3)
5781 iquest(12) = msbyt(6,iquest(12),14,3)
5782 jbtf = 8
5783 ngr = 3
5784 CALL mziocf (0,mxvalb)
5785 nbt = nbitvb(ngru)
5786 70 IF (ngru.EQ.1) GO TO 73
5787 71 jbtc = 1
5788 DO 72 jl=2,ngru
5789 iquest(12) = msbyt(mu(ju+1),iquest(12),jbtf,3)
5790 jbtf = jbtf + 3
5791 jbtc = jbtc + nbt
5792 iquest(13) = msbyt(mu(ju+2),iquest(13),jbtc,nbt)
5793 72 ju = ju + 2
5794 IF (ngru.EQ.nseca) GO TO 82
5795 73 nsecd = ngru
5796 jwio = 13
5797 74 jwio = jwio + 1
5798 iquest(jwio) = mu(ju+1)
5799 jbt = 4
5800 ngru = 1
5801 ngr = min(7,nseca-nsecd)
5802 IF (ngr.EQ.1) GO TO 77
5803 CALL mziocf (ju,mxvalc)
5804 IF (ngru.EQ.1) GO TO 77
5805 just = ju
5806 DO 76 jl=2,ngru
5807 ju = ju + 2
5808 iquest(jwio) = msbyt(mu(ju+1),iquest(jwio),jbt,3)
5809 76 jbt = jbt + 3
5810 ju = just
5811 77 iquest(jwio-1) = msbyt(ngru,iquest(jwio-1),30,3)
5812 nbt = nbitvc(ngru)
5813 DO 79 jl=1,ngru
5814 iquest(jwio) = msbyt(mu(ju+2),iquest(jwio),jbt,nbt)
5815 jbt = jbt + nbt
5816 79 ju = ju + 2
5817 nsecd = nsecd + ngru
5818 IF (nsecd.LT.nseca) GO TO 74
5819 nwio = jwio - 12
5820 IF (nwio.GE.nwiomx) GO TO 97
5821 IF (nwio.GE.16) GO TO 97
5822 iowd = 64*(32*nwio+nwio+1) + 1
5823 82 iowd = msbyt(iquest(12),iowd,17,16)
5824 iquest(12) = iowd
5825 iquest(1) = nwio
5826 CALL ucopyi (iquest(12),iodvec,nwio+1)
5827 iqcetk(121) = iqblan
5828 IF (nqlogm.GE.1) WRITE (iqlog,9088) nwio,chform
5829 9088 FORMAT (' MZIOCH-',i5,' extra I/O words for Format ',a)
5830 999 nqtrac = nqtrac - 2
5831 RETURN
5832 90 nqfata = 2
5833 iquest(12) = nch
5834 GO TO 99
5835 91 nqcase = 1
5836 nqfata = 3
5837 iquest(12) = iquest(1)
5838 iquest(13) = iquest(2)
5839 IF (iquest(1).EQ.0) GO TO 99
5840 GO TO 98
5841 97 nqcase = 7
5842 iquest(12) = nwiomx
5843 iquest(13) = nwio + 1
5844 GO TO 98
5845 96 nqcase = 6
5846 iquest(12) = nseca
5847 iquest(13) = nsecl
5848 GO TO 98
5849 95 nqcase = 1
5850 94 nqcase = nqcase + 1
5851 93 nqcase = nqcase + 1
5852 92 nqcase = nqcase + 2
5853 print*, '>>>>>> MZIOCH: BAD SYNTAX'
5854 iquest(12) = jch
5855 iquest(13) = 0
5856 98 DO 88 jch=1,nch
5857 jcet = mce(jch)
5858 IF (jcet.LT.10) THEN
5859 mce(jch)=iqnum(jcet+1)
5860 ELSE
5861 jcet = inv(jcet-9)
5862 mce(jch) = iqlett(jcet)
5863 ENDIF
5864 88 CONTINUE
5865 nqfata = (nch-1)/4 + 4
5866 99 iquest(11) = iqcetk(121)
5867 iquest(9) = namesr(1)
5868 iquest(10)= namesr(2)
5869 END
5870
5871*-------------------------------------------------------------------------------
5872
5873 SUBROUTINE mzflag (IXSTOR,LHEADP,KBITP,CHOPT)
5874 COMMON /zlimit/lqliml,lqlimh
5875 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
5876 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
5877 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
5878 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
5879 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
5880 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
5881 COMMON /quest/ iquest(100)
5882 COMMON /zebq/ iqfenc(4), lq(100)
5883 dimension iq(92), q(92)
5884 equivalence(iq(1),lq(9)), (q(1),iq(1))
5885 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
5886 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
5887 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
5888 +, nqtrac,mqtrac(48)
5889 equivalence(kqsp,nqoffs(1))
5890 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
5891 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
5892 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
5893 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
5894 dimension iqcur(16)
5895 equivalence(iqcur(1),lqstor)
5896 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
5897 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
5898 +, lqsyss(10), lqsysr(10), iqtdum(22)
5899 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
5900 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
5901 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
5902 +, nqdpsh(20),nqdred(20),nqdsiz(20)
5903 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
5904 dimension iqtabv(16)
5905 equivalence(iqtabv(1),lqpsto)
5906 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
5907 parameter(nqwktt=2560)
5908 COMMON /mzcwk/ iqwktb(nqwktt), iqwkfz(nqwktt)
5909 dimension kbitp(9),lheadp(9)
5910 CHARACTER *(*) CHOPT
5911 dimension namesr(2)
5912 DATA namesr / 4hmzfl, 4hag /
5913 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
5914 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
5915 msbit0(izw,izp) = iand(izw, not(ishft(1,izp-1)))
5916 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
5917 msbit(mz,izw,izp) = ior(iand(izw, not(ishft(1,izp-1)))
5918 + ,ishft(iand(mz,1),izp-1))
5919 lhead = lheadp(1)
5920 IF (lhead.EQ.0) RETURN
5921 mqtrac(nqtrac+1) = namesr(1)
5922 mqtrac(nqtrac+2) = namesr(2)
5923 nqtrac = nqtrac + 2
5924 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
5925 CALL mzchls (-7,lhead)
5926 IF (iqfoul.NE.0) GO TO 92
5927 lqliml = lqsta(kqt+21)
5928 lqlimh = 0
5929 iqtbit = kbitp(1)
5930 CALL uoptc (chopt,'ZLV',iquest)
5931 iqtval = 1 - iquest(1)
5932 iopts = 1 - iquest(3)
5933 iopth = iquest(2)
5934 lev = lqwktb + 3
5935 leve = lev + nqwktb - 10
5936 lq(lev-2) = 0
5937 lq(lev-1) = 0
5938 lq(lev) = lhead
5939 lcur = lhead
5940 lx = lhead - 1 + iopth
5941 last = lhead - iqns
5942 iq(kqs+lcur) = msbit1(iq(kqs+lcur),iqsysx)
5943 GO TO 24
5944 20 last = lcur - iq(kqs+lcur-2)
5945 iq(kqs+lnew) = msbit0(iq(kqs+lnew),iqsysx)
5946 iq(kqs+lnew) = msbit(iqtval,iq(kqs+lnew),iqtbit)
5947 lqliml = min(lqliml,lnew)
5948 lqlimh = max(lqlimh,lnew)
5949 24 IF (lx.LT.last) GO TO 41
5950 lnew = lq(kqs+lx)
5951 lx = lx - 1
5952 IF (lnew.EQ.0) GO TO 24
5953 CALL mzchls (-7,lnew)
5954 IF (iqfoul.NE.0) GO TO 94
5955 IF (jbit(iq(kqs+lnew),iqsysx).NE.0) GO TO 24
5956 lq(lev+1) = lx
5957 lq(lev+2) = lcur
5958 lev = lev + 3
5959 IF (lev.GE.leve) GO TO 91
5960 lq(lev) = lnew
5961 32 lcur = lnew
5962 iq(kqs+lcur) = msbit1(iq(kqs+lcur),iqsysx)
5963 lnew = lq(kqs+lcur)
5964 IF (lnew.EQ.0) GO TO 36
5965 CALL mzchls (-7,lnew)
5966 IF (iqfoul.NE.0) GO TO 93
5967 IF (jbit(iq(kqs+lnew),iqsysx).NE.0) GO TO 36
5968 IF (lq(kqs+lnew+2).NE.lcur) GO TO 95
5969 GO TO 32
5970 36 CONTINUE
5971 last = lcur - iqns
5972 lx = lcur - 1
5973 GO TO 24
5974 41 lnew = lcur
5975 IF (lcur.EQ.lq(lev)) GO TO 46
5976 lcur = lq(kqs+lcur+2)
5977 lx = lcur - 1
5978 GO TO 20
5979 46 lev = lev - 3
5980 lx = lq(lev+1)
5981 lcur = lq(lev+2)
5982 IF (lcur.NE.0) GO TO 20
5983 61 iq(kqs+lhead) = msbit0(iq(kqs+lhead),iqsysx)
5984 IF (iopts.EQ.0) GO TO 999
5985 iq(kqs+lhead) = msbit(iqtval,iq(kqs+lhead),iqtbit)
5986 lqliml = min(lqliml,lhead)
5987 lqlimh = max(lqlimh,lhead)
5988 999 nqtrac = nqtrac - 2
5989 RETURN
5990 95 nqcase = 2
5991 nqfata = 1
5992 iquest(14) = lq(kqs+lnew+2)
5993 GO TO 93
5994 94 nqcase = 1
5995 nqfata = 1
5996 iquest(14) = lx+1 - lcur
5997 93 nqcase = nqcase + 1
5998 nqfata = nqfata + 2
5999 iquest(12) = lnew
6000 iquest(13) = lcur
6001 92 nqcase = nqcase + 1
6002 91 nqcase = nqcase + 1
6003 nqfata = nqfata + 1
6004 iquest(11) = lhead
6005 iquest(9) = namesr(1)
6006 iquest(10)= namesr(2)
6007 END
6008
6009*-------------------------------------------------------------------------------
6010
6011 SUBROUTINE mzgsta (IGARB)
6012 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6013 COMMON /quest/ iquest(100)
6014 COMMON /zebq/ iqfenc(4), lq(100)
6015 dimension iq(92), q(92)
6016 equivalence(iq(1),lq(9)), (q(1),iq(1))
6017 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6018 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6019 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6020 +, nqtrac,mqtrac(48)
6021 equivalence(kqsp,nqoffs(1))
6022 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6023 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6024 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6025 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6026 dimension iqcur(16)
6027 equivalence(iqcur(1),lqstor)
6028 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6029 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6030 +, lqsyss(10), lqsysr(10), iqtdum(22)
6031 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6032 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6033 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6034 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6035 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6036 dimension iqtabv(16)
6037 equivalence(iqtabv(1),lqpsto)
6038 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
6039 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
6040 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
6041 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
6042 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
6043 +, lqmtc1,lqmtc2, nqfrtc,nqlive
6044 dimension igarb(20)
6045 lmt = lqmta
6046 22 iact = lq(lmt+1)
6047 IF (iact.LT.3) GO TO 28
6048 jdiv = lq(lmt)
6049 IF (iact.EQ.3) GO TO 26
6050 nqdwip(kqt+jdiv) = nqdwip(kqt+jdiv) + 1
6051 GO TO 28
6052 26 igarb(jdiv) = igarb(jdiv) + 1
6053 28 lmt = lmt + 8
6054 IF (lmt.LT.lqmte) GO TO 22
6055 END
6056
6057*-------------------------------------------------------------------------------
6058
6059 SUBROUTINE mziocf (JUP,MXVAL)
6060 COMMON /zkrakc/iqholk(120), iqkrak(80), iqcetk(122)
6061 COMMON /quest/ iquest(100)
6062 dimension mu(99)
6063 equivalence(mu(1),iqholk(1))
6064 equivalence(ngr,iquest(1)), (ngru,iquest(2))
6065 dimension jup(9), mxval(9)
6066 ju = jup(1)
6067 mxc = mu(ju+2)
6068 DO 24 jl=2,ngr
6069 ju = ju + 2
6070 mxc = max(mu(ju+2),mxc)
6071 IF (mxc.GE.mxval(jl)) GO TO 29
6072 24 CONTINUE
6073 ngru = ngr
6074 RETURN
6075 29 ngru = jl - 1
6076 END
6077
6078*-------------------------------------------------------------------------------
6079
6080 SUBROUTINE mziocr (IOW)
6081 COMMON /quest/ iquest(100)
6082 COMMON /mzioc/ nwfoav,nwfott,nwfodn,nwfore,ifocon(3)
6083 +, mfosav(2), jfoend,jforep,jfocur,mfo(200)
6084 equivalence(jio,iquest(1))
6085 dimension iow(9)
6086 dimension nbitva(4), nbitvb(4), nbitvc(7)
6087 DATA nbitva / 32, 16, 10, 8 /
6088 DATA nbitvb / 29, 14, 9, 7 /
6089 DATA nbitvc / 26, 11, 6, 4, 2, 1, 1 /
6090 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
6091 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
6092 nwfodn = 0
6093 jfocur = 0
6094 jtypr = iow(1)
6095 iow1 = jbyt(jtypr,17,16)
6096 IF (iow1.NE.0) GO TO 21
6097 IF (jtypr.GE.8) GO TO 21
6098 mfo(1) = jtypr
6099 mfo(2) = -1
6100 jfoend = 2
6101 jforep = 2
6102 RETURN
6103 21 jfoend = 0
6104 jforep = 0
6105 jio = 1
6106 jtypr = jbyt(iow1,1,3)
6107 jflag = jbit(iow1,4)
6108 jclass = jbyt(iow1,14,3)
6109 jfl12 = 0
6110 GO TO ( 101, 201, 301, 401, 501, 601, 991), jclass
6111 jfl12 = jflag + 1
6112 jtyp = jbyt(iow1,5,3)
6113 IF (jtyp.NE.0) THEN
6114 mfo(1) = jtyp
6115 mfo(2) = jbyt(iow1,8,6)
6116 jfoend = 2
6117 ENDIF
6118 24 IF (jtypr.EQ.7) GO TO 28
6119 mfo(jfoend+1) = jtypr
6120 mfo(jfoend+2) = jfl12 - 2
6121 jfoend = jfoend + 2
6122 jforep = jfoend
6123 RETURN
6124 28 jforep = jfoend
6125 mfo(jfoend+1) = 7
6126 mfo(jfoend+2) = 0
6127 jfoend = jfoend + 2
6128 RETURN
6129 101 CONTINUE
6130 201 jfl12 = jclass
6131 IF (jtypr.NE.0) GO TO 821
6132 jtypr = jbyt(iow1,5,3)
6133 jbt = 8
6134 GO TO 831
6135 301 jtyp = jbyt(iow1,5,3)
6136 IF (jtyp.NE.0) THEN
6137 mfo(1) = jtyp
6138 mfo(2) = jbyt(iow1,8,6)
6139 jfoend = 2
6140 IF (jflag.EQ.0) jforep = 2
6141 ENDIF
6142 mfo(jfoend+1) = jtypr
6143 mfo(jfoend+2) = 0
6144 jfoend = jfoend + 2
6145 RETURN
6146 401 jforep = 2*(jflag+1)
6147 jflag = 0
6148 501 IF (jtypr.EQ.0) GO TO 830
6149 mfo(1) = jtypr
6150 jfoend = 2
6151 GO TO 821
6152 601 jforep = 2*jbyt(iow1,1,4)
6153 jflag = 1
6154 821 jio = 2
6155 DO 822 jbt=5,11,3
6156 jtyp = jbyt(iow1,jbt,3)
6157 IF (jtyp.EQ.0) GO TO 823
6158 mfo(jfoend+1) = jtyp
6159 822 jfoend = jfoend + 2
6160 823 ngru = jfoend/2
6161 IF (jflag.EQ.0) THEN
6162 nbt = nbitva(ngru)
6163 ELSE
6164 nbt = nbitvb(ngru)
6165 ENDIF
6166 jfoend = 0
6167 jbt = 1
6168 iown = iow(2)
6169 DO 824 jl=1,ngru
6170 mfo(jfoend+2) = jbyt(iown,jbt,nbt)
6171 jfoend = jfoend + 2
6172 824 jbt = jbt + nbt
6173 IF (jflag.EQ.0) GO TO 839
6174 825 ngru = jbyt(iown,30,3)
6175 IF (ngru.EQ.0) GO TO 839
6176 jio = jio + 1
6177 IF (jio.EQ.17) GO TO 991
6178 iown = iow(jio)
6179 jbtt = 1
6180 jbtc = 3*ngru + 1
6181 nbt = nbitvc(ngru)
6182 DO 826 jl=1,ngru
6183 mfo(jfoend+1) = jbyt(iown,jbtt,3)
6184 mfo(jfoend+2) = jbyt(iown,jbtc,nbt)
6185 jbtt = jbtt + 3
6186 jbtc = jbtc + nbt
6187 826 jfoend = jfoend + 2
6188 GO TO 825
6189 830 jbt = 5
6190 831 DO 834 jl=jbt,11,3
6191 jtyp = jbyt(iow1,jl,3)
6192 IF (jtyp.EQ.0) GO TO 839
6193 mfo(jfoend+1) = jtyp
6194 mfo(jfoend+2) = 0
6195 834 jfoend = jfoend + 2
6196 839 IF (jfl12.NE.0) GO TO 24
6197 RETURN
6198 991 iquest(1) = -1
6199 mfo(1) = 0
6200 mfo(2) = -1
6201 jfoend = 2
6202 END
6203
6204*-------------------------------------------------------------------------------
6205
6206 FUNCTION mzixco (IXAA,IXBB,IXCC,IXDD)
6207 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6208 COMMON /quest/ iquest(100)
6209 COMMON /zebq/ iqfenc(4), lq(100)
6210 dimension iq(92), q(92)
6211 equivalence(iq(1),lq(9)), (q(1),iq(1))
6212 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6213 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6214 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6215 +, nqtrac,mqtrac(48)
6216 equivalence(kqsp,nqoffs(1))
6217 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6218 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6219 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6220 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6221 dimension iqcur(16)
6222 equivalence(iqcur(1),lqstor)
6223 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6224 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6225 +, lqsyss(10), lqsysr(10), iqtdum(22)
6226 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6227 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6228 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6229 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6230 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6231 dimension iqtabv(16)
6232 equivalence(iqtabv(1),lqpsto)
6233 dimension ixaa(9), ixbb(9), ixcc(9), ixdd(9), ixv(4)
6234 equivalence(ixv(1),iquest(11))
6235 dimension namesr(2)
6236 DATA namesr / 4hmzix, 4hco /
6237 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
6238 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
6239 msbyt(mz,izw,izp,nzb) = ior(
6240 + iand(izw, not(ishft(ishft(not(0),-(32-nzb)),izp-1)))
6241 + ,ishft(ishft(mz,32-nzb), -(33-izp-nzb)) )
6242 mbytor(mz,izw,izp,nzb) = ior(izw,
6243 + ishft(ishft(mz,32-nzb),-(33-izp-nzb)))
6244 ixv(1) = ixaa(1)
6245 ixv(2) = ixbb(1)
6246 ixv(3) = ixcc(1)
6247 ixv(4) = ixdd(1)
6248 ixcomp = 0
6249 DO 49 jl=1,4
6250 ixin = ixv(jl)
6251 IF (ixin.EQ.0) GO TO 49
6252 jdv = jbyt(ixin,1,26)
6253 jst = jbyt(ixin,27,6)
6254 IF (jst.LT.16) GO TO 31
6255 jst = jst - 16
6256 IF (jst.GT.nqstor) GO TO 91
6257 IF (jdv.GE.16777216) GO TO 92
6258 IF (jl.NE.1) GO TO 24
6259 ixcomp = ixin
6260 jstoru = jst
6261 GO TO 49
6262 24 IF (jst.NE.jstoru) GO TO 93
6263 ixcomp = mbytor(jdv,ixcomp,1,26)
6264 GO TO 49
6265 31 IF (jst.GT.nqstor) GO TO 91
6266 IF (jdv.GE.25) GO TO 92
6267 IF (jdv.EQ.0) GO TO 92
6268 IF (jl.NE.1) GO TO 34
6269 ixcomp = msbyt(jst+16,ixcomp,27,5)
6270 jstoru = jst
6271 GO TO 47
6272 34 IF (jst.EQ.jstoru) GO TO 47
6273 IF (jst.NE.0) GO TO 93
6274 IF (jdv.LT.3) GO TO 47
6275 IF (jdv.LT.21) GO TO 93
6276 47 ixcomp = msbit1(ixcomp,jdv)
6277 49 CONTINUE
6278 59 mzixco = ixcomp
6279 RETURN
6280 93 nqcase = 1
6281 92 nqcase = nqcase + 1
6282 91 nqcase = nqcase + 1
6283 nqfata = 7
6284 iquest(15) = jl
6285 iquest(16) = jst
6286 iquest(17) = jdv
6287 mqtrac(nqtrac+1) = namesr(1)
6288 mqtrac(nqtrac+2) = namesr(2)
6289 nqtrac = nqtrac + 2
6290 iquest(9) = namesr(1)
6291 iquest(10)= namesr(2)
6292 mzixco = 0
6293 END
6294
6295*-------------------------------------------------------------------------------
6296
6297 SUBROUTINE mzmove
6298 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
6299 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
6300 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
6301 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
6302 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6303 COMMON /quest/ iquest(100)
6304 COMMON /zebq/ iqfenc(4), lq(100)
6305 dimension iq(92), q(92)
6306 equivalence(iq(1),lq(9)), (q(1),iq(1))
6307 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6308 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6309 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6310 +, nqtrac,mqtrac(48)
6311 equivalence(kqsp,nqoffs(1))
6312 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6313 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6314 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6315 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6316 dimension iqcur(16)
6317 equivalence(iqcur(1),lqstor)
6318 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6319 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6320 +, lqsyss(10), lqsysr(10), iqtdum(22)
6321 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6322 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6323 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6324 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6325 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6326 dimension iqtabv(16)
6327 equivalence(iqtabv(1),lqpsto)
6328 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
6329 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
6330 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
6331 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
6332 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
6333 +, lqmtc1,lqmtc2, nqfrtc,nqlive
6334 dimension namesr(2)
6335 DATA namesr / 4hmzmo, 4hve /
6336 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
6337 mqtrac(nqtrac+1) = namesr(1)
6338 mqtrac(nqtrac+2) = namesr(2)
6339 nqtrac = nqtrac + 2
6340 lmt = lqmta
6341 23 jdiv = lq(lmt)
6342 iact = lq(lmt+1)
6343 nshf = lq(lmt+2)
6344 IF (iact.EQ.4) GO TO 26
6345 IF (iact.NE.3) GO TO 31
6346 l = lq(lmt+3)
6347 lt = lq(lmt+5) + lqrta
6348 n = lq(lt+2)
6349 lqsta(kqt+jdiv) = l + n
6350 l = lq(lmt+4)
6351 lt = lq(lmt+6) + lqrta - 4
6352 n = lq(lt+2)
6353 lqend(kqt+jdiv) = l + n
6354 GO TO 36
6355 26 mode = jbit(iqmode(kqt+jdiv),1)
6356 IF (mode.NE.0) GO TO 28
6357 lqsta(kqt+jdiv) = lqsta(kqt+jdiv) + nshf
6358 GO TO 29
6359 28 lqsta(kqt+jdiv) = lqend(kqt+jdiv) + nshf
6360 29 lqend(kqt+jdiv) = lqsta(kqt+jdiv)
6361 GO TO 36
6362 31 IF (nshf.EQ.0) GO TO 37
6363 lqsta(kqt+jdiv) = lqsta(kqt+jdiv) + nshf
6364 lqend(kqt+jdiv) = lqend(kqt+jdiv) + nshf
6365 36 CONTINUE
6366 37 lmt = lmt + 8
6367 IF (lmt.LT.lqmte) GO TO 23
6368 IF (nqnoop.NE.0) GO TO 999
6369 IF (lqte.LE.lqta) GO TO 999
6370 ltf = lqta
6371 61 nrel = lq(ltf+2)
6372 IF (nrel) 64, 68, 71
6373 64 lold = lq(ltf)
6374 lnew = lold + nrel
6375 nw = lq(ltf+1) - lold
6376 IF (nw.EQ.0) GO TO 68
6377 CALL ucopyi (lq(kqs+lold),lq(kqs+lnew),nw)
6378 68 ltf = ltf + 4
6379 IF (ltf.NE.lqte) GO TO 61
6380 GO TO 999
6381 71 ltfn = ltf
6382 72 ltfn = ltfn + 4
6383 IF (ltfn.EQ.lqte) GO TO 76
6384 IF (lq(ltfn+2).GT.0) GO TO 72
6385 76 ltr = ltfn
6386 81 ltr = ltr - 4
6387 lold = lq(ltr)
6388 nw = lq(ltr+1) - lold
6389 IF (nw.EQ.0) GO TO 88
6390 lnew = lold + lq(ltr+2)
6391 CALL ucopy2 (lq(kqs+lold),lq(kqs+lnew),nw)
6392 88 IF (ltr.NE.ltf) GO TO 81
6393 ltf = ltfn
6394 IF (ltf.NE.lqte) GO TO 61
6395 999 nqtrac = nqtrac - 2
6396 END
6397
6398*-------------------------------------------------------------------------------
6399
6400 SUBROUTINE mzpudx (LP,NWP)
6401 COMMON /zbcd/ iqnum2(11),iqlett(26),iqnum(10), iqplus,iqmins
6402 +, iqstar,iqslas,iqopen,iqclos,iqdoll,iqequ, iqblan
6403 +, iqcoma,iqdot, iqnumb,iqapo, iqexcl,iqcolo,iqquot
6404 +, iqunde,iqclsq,iqand, iqat, iqques,iqopsq,iqgrea
6405 +, iqless,iqreve,iqcirc,iqsemi,iqperc, iqlowl(26)
6406 +, iqcrop,iqvert,iqcrcl,iqnot, iqgrav, iqileg
6407 +, nqhol0,nqholl(95)
6408 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6409 COMMON /quest/ iquest(100)
6410 COMMON /zebq/ iqfenc(4), lq(100)
6411 dimension iq(92), q(92)
6412 equivalence(iq(1),lq(9)), (q(1),iq(1))
6413 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6414 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6415 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6416 +, nqtrac,mqtrac(48)
6417 equivalence(kqsp,nqoffs(1))
6418 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6419 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6420 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6421 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6422 dimension iqcur(16)
6423 equivalence(iqcur(1),lqstor)
6424 dimension lp(9),nwp(9)
6425 msbit1(izw,izp) = ior(izw, ishft(1,izp-1))
6426 msbyt(mz,izw,izp,nzb) = ior(
6427 + iand(izw, not(ishft(ishft(not(0),-(32-nzb)),izp-1)))
6428 + ,ishft(ishft(mz,32-nzb), -(33-izp-nzb)) )
6429 l = lp(1)
6430 nw = nwp(1)
6431 nd = nw - 10
6432 n = min(10,nw)
6433 DO 12 j=0,n-1
6434 12 lq(kqs+l+j) = 0
6435 IF (nd.GE.0) THEN
6436 lq(kqs+l) = 12
6437 l = l + 9
6438 lq(kqs+l-4) = iqlett(4)
6439 lq(kqs+l-1) = nd
6440 ELSE
6441 n = msbyt(nw,n,17,6)
6442 lq(kqs+l) = n
6443 ENDIF
6444 lq(kqs+l) = msbit1(lq(kqs+l),iqdrop)
6445 END
6446
6447*-------------------------------------------------------------------------------
6448
6449 SUBROUTINE mzrelb
6450 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
6451 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
6452 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
6453 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
6454 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6455 COMMON /quest/ iquest(100)
6456 COMMON /zebq/ iqfenc(4), lq(100)
6457 dimension iq(92), q(92)
6458 equivalence(iq(1),lq(9)), (q(1),iq(1))
6459 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6460 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6461 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6462 +, nqtrac,mqtrac(48)
6463 equivalence(kqsp,nqoffs(1))
6464 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6465 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6466 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6467 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6468 dimension iqcur(16)
6469 equivalence(iqcur(1),lqstor)
6470 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6471 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6472 +, lqsyss(10), lqsysr(10), iqtdum(22)
6473 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6474 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6475 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6476 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6477 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6478 dimension iqtabv(16)
6479 equivalence(iqtabv(1),lqpsto)
6480 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
6481 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
6482 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
6483 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
6484 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
6485 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
6486 +, lqmtc1,lqmtc2, nqfrtc,nqlive
6487 dimension namesr(2)
6488 DATA namesr / 4hmzre, 4hlb /
6489 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
6490 mqtrac(nqtrac+1) = namesr(1)
6491 mqtrac(nqtrac+2) = namesr(2)
6492 nqtrac = nqtrac + 2
6493 lfixlo = lq(lqta-1)
6494 lfixre = lq(lqta)
6495 lfixhi = lq(lqte)
6496 jhigo = (lqte-lqta) / 4
6497 nentr = jhigo - 1
6498 IF (nentr.EQ.0) THEN
6499 ladtb1 = lq(lqta+1)
6500 nrltb2 = lq(lqta+2)
6501 ifltb3 = lq(lqta+3)
6502 ENDIF
6503 lmrnx = lqmta
6504 12 lmr = lmrnx
6505 IF (lmr.GE.lqmte) GO TO 999
6506 lmrnx = lmrnx + 8
6507 iact = lq(lmr+1)
6508 IF (iact.LE.0) GO TO 12
6509 IF (iact.EQ.4) GO TO 12
6510 lstop = lq(lmr+4)
6511 IF (iact.EQ.3) GO TO 14
6512 ln = lq(lmr+3)
6513 ldead = lstop
6514 GO TO 19
6515 14 lsec = lqrta + lq(lmr+5) - 4
6516 16 lsec = lsec + 4
6517 lnx = lq(lsec)
6518 ldead = lq(lsec+1)
6519 17 ln = lnx
6520 IF (ln.GE.lstop) GO TO 12
6521 IF (ln.EQ.ldead) GO TO 16
6522 19 CONTINUE
6523 CALL mzchln (-7,ln)
6524 IF (iqfoul.NE.0) GO TO 91
6525 lnx = iqnx
6526 IF (iqnd.LT.0) GO TO 17
6527 ls = iqls
6528 lx = ls + 3
6529 l2 = ls - iqns
6530 l1 = ls - iqnl
6531 nst = jbyt(lq(kqs+ln),1,16) - 11
6532 IF (nst.LT.0) THEN
6533 lnx = ln + nst + 11
6534 GO TO 17
6535 ELSE
6536 ls = ln + nst
6537 lx = ls + 3
6538 l2 = ls - iq(kqs+ls-2)
6539 l1 = ls - iq(kqs+ls-3)
6540 lnx = ls + iq(kqs+ls-1) + 9
6541 ENDIF
6542 IF (nentr) 66, 46, 26
6543 24 lq(kqs+l1)= 0
6544 25 l1 = l1 + 1
6545 IF (l1.EQ.lx) GO TO 17
6546 26 lfirst= lq(kqs+l1)
6547 27 link = lq(kqs+l1)
6548 IF (link.EQ.0) GO TO 25
6549 IF (iqflio.EQ.0) THEN
6550 IF (link.LT.lfixlo) GO TO 25
6551 IF (link.GE.lfixhi) GO TO 25
6552 IF (link.LT.lfixre) GO TO 24
6553 ELSE
6554 IF (link.LT.lfixre) GO TO 24
6555 IF (link.GE.lfixhi) GO TO 24
6556 ENDIF
6557 jlow = 0
6558 jhi = jhigo
6559 29 jex = (jhi+jlow) / 2
6560 IF (jex.EQ.jlow) GO TO 31
6561 IF (link.GE.lq(lqta+4*jex)) GO TO 30
6562 jhi = jex
6563 GO TO 29
6564 30 jlow = jex
6565 GO TO 29
6566 31 jtb = lqta + 4*jlow
6567 IF (link.GE.lq(jtb+1)) GO TO 33
6568 lq(kqs+l1) = link + lq(jtb+2)
6569 GO TO 25
6570 33 IF (lq(jtb+3)) 25, 24, 34
6571 34 IF (l1.LT.l2) GO TO 24
6572 IF (ls+1-l1) 36, 24, 35
6573 35 CONTINUE
6574 CALL mzchls (-7,link)
6575 IF (iqfoul.NE.0) GO TO 92
6576 link = lq(kqs+link)
6577 lq(kqs+l1) = link
6578 IF (link.NE.lfirst) GO TO 27
6579 GO TO 24
6580 36 link = lq(kqs+link+2)
6581 lq(kqs+l1) = link
6582 GO TO 27
6583 44 lq(kqs+l1)= 0
6584 45 l1 = l1 + 1
6585 IF (l1.EQ.lx) GO TO 17
6586 46 lfirst= lq(kqs+l1)
6587 47 link = lq(kqs+l1)
6588 IF (link.EQ.0) GO TO 45
6589 IF (iqflio.EQ.0) THEN
6590 IF (link.LT.lfixlo) GO TO 45
6591 IF (link.GE.lfixhi) GO TO 45
6592 IF (link.LT.lfixre) GO TO 44
6593 IF (link.GE.ladtb1) GO TO 53
6594 ELSE
6595 IF (link.LT.lfixre) GO TO 44
6596 IF (link.GE.ladtb1) GO TO 44
6597 ENDIF
6598 lq(kqs+l1) = link + nrltb2
6599 GO TO 45
6600 53 IF (ifltb3) 45, 44, 54
6601 54 IF (l1.LT.l2) GO TO 44
6602 IF (ls+1-l1) 56, 44, 55
6603 55 CONTINUE
6604 CALL mzchls (-7,link)
6605 IF (iqfoul.NE.0) GO TO 92
6606 link = lq(kqs+link)
6607 lq(kqs+l1) = link
6608 IF (link.NE.lfirst) GO TO 47
6609 GO TO 44
6610 56 link = lq(kqs+link+2)
6611 lq(kqs+l1) = link
6612 GO TO 47
6613 64 lq(kqs+l1)= 0
6614 65 l1 = l1 + 1
6615 IF (l1.EQ.lx) GO TO 17
6616 66 link = lq(kqs+l1)
6617 IF (link.EQ.0) GO TO 65
6618 IF (link.LT.lfixlo) GO TO 65
6619 IF (link.GE.lfixhi) GO TO 65
6620 GO TO 64
6621 92 nqcase = 1
6622 nqfata = 2
6623 ln = ls
6624 iquest(12) = l1
6625 iquest(13) = link
6626 91 nqcase = nqcase + 1
6627 nqfata = nqfata + 1
6628 iquest(11) = ln
6629 IF (iqflio.NE.0) GO TO 98
6630 iquest(9) = namesr(1)
6631 iquest(10)= namesr(2)
6632 98 iquest(9) = nqcase
6633 iquest(10)= nqfata
6634 nqcase = 0
6635 nqfata = 0
6636 iqflio = -7
6637 999 nqtrac = nqtrac - 2
6638 END
6639
6640*-------------------------------------------------------------------------------
6641
6642 SUBROUTINE mzrell (MDESV)
6643 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
6644 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
6645 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
6646 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
6647 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6648 COMMON /quest/ iquest(100)
6649 COMMON /zebq/ iqfenc(4), lq(100)
6650 dimension iq(92), q(92)
6651 equivalence(iq(1),lq(9)), (q(1),iq(1))
6652 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6653 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6654 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6655 +, nqtrac,mqtrac(48)
6656 equivalence(kqsp,nqoffs(1))
6657 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6658 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6659 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6660 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6661 dimension iqcur(16)
6662 equivalence(iqcur(1),lqstor)
6663 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6664 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6665 +, lqsyss(10), lqsysr(10), iqtdum(22)
6666 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6667 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6668 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6669 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6670 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6671 dimension iqtabv(16)
6672 equivalence(iqtabv(1),lqpsto)
6673 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
6674 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
6675 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
6676 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
6677 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
6678 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
6679 +, lqmtc1,lqmtc2, nqfrtc,nqlive
6680 dimension mdesv(99)
6681 dimension namesr(2)
6682 DATA namesr / 4hmzre, 4hll /
6683 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
6684 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
6685 mqtrac(nqtrac+1) = namesr(1)
6686 mqtrac(nqtrac+2) = namesr(2)
6687 nqtrac = nqtrac + 2
6688 lfixlo = lq(lqta-1)
6689 lfixre = lq(lqta)
6690 lfixhi = lq(lqte)
6691 jhigo = (lqte-lqta) / 4
6692 nentr = jhigo - 1
6693 IF (nentr.EQ.0) THEN
6694 ladtb1 = lq(lqta+1)
6695 nrltb2 = lq(lqta+2)
6696 ifltb3 = lq(lqta+3)
6697 ENDIF
6698 jdesmx = mdesv(1) - 4
6699 jdes = -4
6700 IF (mdesv(2).GE.mdesv(3)) jdes =1
6701 17 jdes = jdes + 5
6702 IF (jdes.GE.jdesmx) GO TO 999
6703 locar = mdesv(jdes+1)
6704 lix = locar
6705 locare = mdesv(jdes+2)
6706 modar = mdesv(jdes+3)
6707 IF (jbit(modar,31).NE.0) THEN
6708 IF (lq(kqs+locar).EQ.0) GO TO 17
6709 lix = lix + 2
6710 ENDIF
6711 lir = locar + jbyt(modar,1,15)
6712 IF (nentr) 66, 46, 26
6713 24 lq(kqs+lix)= 0
6714 25 lix = lix + 1
6715 IF (lix.EQ.locare) GO TO 17
6716 26 lfirst= lq(kqs+lix)
6717 27 link = lq(kqs+lix)
6718 IF (link.EQ.0) GO TO 25
6719 IF (link.LT.lfixlo) GO TO 25
6720 IF (link.GE.lfixhi) GO TO 25
6721 IF (link.LT.lfixre) GO TO 24
6722 jlow = 0
6723 jhi = jhigo
6724 29 jex = (jhi+jlow) / 2
6725 IF (jex.EQ.jlow) GO TO 31
6726 IF (link.GE.lq(lqta+4*jex)) GO TO 30
6727 jhi = jex
6728 GO TO 29
6729 30 jlow = jex
6730 GO TO 29
6731 31 jtb = lqta + 4*jlow
6732 IF (link.GE.lq(jtb+1)) GO TO 33
6733 lq(kqs+lix) = link + lq(jtb+2)
6734 GO TO 25
6735 33 IF (lix.GE.lir) GO TO 24
6736 IF (lq(jtb+3).LE.0) GO TO 24
6737 CALL mzchls (-7,link)
6738 IF (iqfoul.NE.0) GO TO 91
6739 link = lq(kqs+link)
6740 lq(kqs+lix) = link
6741 IF (link.NE.lfirst) GO TO 27
6742 GO TO 24
6743 44 lq(kqs+lix)= 0
6744 45 lix = lix + 1
6745 IF (lix.EQ.locare) GO TO 17
6746 46 lfirst= lq(kqs+lix)
6747 47 link = lq(kqs+lix)
6748 IF (link.EQ.0) GO TO 45
6749 IF (link.LT.lfixlo) GO TO 45
6750 IF (link.GE.lfixhi) GO TO 45
6751 IF (link.LT.lfixre) GO TO 44
6752 IF (link.GE.ladtb1) GO TO 53
6753 lq(kqs+lix) = link + nrltb2
6754 GO TO 45
6755 53 IF (lix.GE.lir) GO TO 44
6756 IF (ifltb3.LE.0) GO TO 44
6757 CALL mzchls (-7,link)
6758 IF (iqfoul.NE.0) GO TO 91
6759 link = lq(kqs+link)
6760 lq(kqs+lix) = link
6761 IF (link.NE.lfirst) GO TO 47
6762 GO TO 44
6763 64 lq(kqs+lix)= 0
6764 65 lix = lix + 1
6765 IF (lix.EQ.locare) GO TO 17
6766 66 link = lq(kqs+lix)
6767 IF (link.EQ.0) GO TO 65
6768 IF (link.LT.lfixlo) GO TO 65
6769 IF (link.GE.lfixhi) GO TO 65
6770 GO TO 64
6771 91 nqcase = 1
6772 nqfata = 5
6773 iquest(11) = locar + lqstor
6774 iquest(12) = lix - locar + 1
6775 iquest(13) = link
6776 iquest(14) = mdesv(jdes+4)
6777 iquest(15) = mdesv(jdes+5)
6778 iquest(9) = namesr(1)
6779 iquest(10)= namesr(2)
6780 999 nqtrac = nqtrac - 2
6781 END
6782
6783*-------------------------------------------------------------------------------
6784
6785 SUBROUTINE mzrelx
6786 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
6787 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
6788 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
6789 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
6790 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6791 COMMON /quest/ iquest(100)
6792 COMMON /zebq/ iqfenc(4), lq(100)
6793 dimension iq(92), q(92)
6794 equivalence(iq(1),lq(9)), (q(1),iq(1))
6795 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6796 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6797 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6798 +, nqtrac,mqtrac(48)
6799 equivalence(kqsp,nqoffs(1))
6800 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6801 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6802 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6803 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6804 dimension iqcur(16)
6805 equivalence(iqcur(1),lqstor)
6806 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6807 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6808 +, lqsyss(10), lqsysr(10), iqtdum(22)
6809 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6810 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6811 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6812 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6813 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6814 dimension iqtabv(16)
6815 equivalence(iqtabv(1),lqpsto)
6816 COMMON /mzct/ mqdvga,mqdvwi,jqstmv,jqdvm1,jqdvm2,nqdvmv,iqflio
6817 +, mqdvac,nqnoop,iqpart,nqfree, iqtbit,iqtval
6818 +, iqtnmv,jqgapm,jqgapr,nqgapn,nqgap,iqgap(5,4)
6819 +, lqta,lqte, lqrta,lqtc1,lqtc2,lqrte
6820 +, lqmta,lqmtb,lqmte,lqmtlu,lqmtbr
6821 +, lqmtc1,lqmtc2, nqfrtc,nqlive
6822 dimension namesr(2)
6823 DATA namesr / 4hmzre, 4hlx /
6824 mqtrac(nqtrac+1) = namesr(1)
6825 mqtrac(nqtrac+2) = namesr(2)
6826 nqtrac = nqtrac + 2
6827 l = lqsyss(kqt+1)
6828 IF (l.NE.0) THEN
6829 iq(kqs+l+3) = iq(kqs+l+2) + nqlink
6830 CALL mzrell (iq(kqs+l+1))
6831 ENDIF
6832 CALL mzrelb
6833 999 nqtrac = nqtrac - 2
6834 END
6835
6836*-------------------------------------------------------------------------------
6837
6838 SUBROUTINE mzsdiv (IXDIVP,IFLAGP)
6839 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
6840 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
6841 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6842 COMMON /quest/ iquest(100)
6843 COMMON /zebq/ iqfenc(4), lq(100)
6844 dimension iq(92), q(92)
6845 equivalence(iq(1),lq(9)), (q(1),iq(1))
6846 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6847 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6848 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6849 +, nqtrac,mqtrac(48)
6850 equivalence(kqsp,nqoffs(1))
6851 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6852 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6853 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6854 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6855 dimension iqcur(16)
6856 equivalence(iqcur(1),lqstor)
6857 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6858 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6859 +, lqsyss(10), lqsysr(10), iqtdum(22)
6860 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6861 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6862 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6863 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6864 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6865 dimension iqtabv(16)
6866 equivalence(iqtabv(1),lqpsto)
6867 dimension ixdivp(9), iflagp(9)
6868 dimension namesr(2)
6869 DATA namesr / 4hmzsd, 4hiv /
6870 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
6871 ixin = ixdivp(1)
6872 iflag = iflagp(1)
6873 jsto = jbyt(ixin,27,4)
6874 IF (jsto.NE.jqstor) GO TO 41
6875 IF (iflag.LT.0) GO TO 48
6876 21 jdiv = jbyt(ixin,1,26)
6877 jcom = jbyt(ixin,31,2)
6878 IF (jcom-1) 22, 31, 91
6879 22 IF (jdiv.GE.25) GO TO 92
6880 IF (jdiv.GE.21) GO TO 24
6881 IF (jdiv.GT.jqdvll) THEN
6882 IF (jdiv.LT.jqdvsy) GO TO 92
6883 ENDIF
6884 IF (jdiv.EQ.0) THEN
6885 IF (iflag.EQ.4) GO TO 94
6886 ENDIF
6887 jqdivi = jdiv
6888 RETURN
6889 24 IF (jdiv.EQ.24) GO TO 26
6890 IF (iflag.GT.0) GO TO 93
6891 jqdivi = 0
6892 RETURN
6893 26 jqdivi = jqdvsy
6894 RETURN
6895 31 IF (iflag.GT.0) GO TO 93
6896 IF (jdiv.GE.16777216) GO TO 92
6897 jqdivi = 0
6898 RETURN
6899 41 IF (jsto.GT.nqstor) GO TO 91
6900 jqstor = jsto
6901 jqdivr = 0
6902 kqt = nqofft(jqstor+1)
6903 kqs = nqoffs(jqstor+1)
6904 DO 44 j=1,12
6905 44 iqcur(j) = iqtabv(kqt+j)
6906 nqlogm = nqlogl
6907 IF (iflag.GE.0) GO TO 21
6908 48 jqdivi = 0
6909 RETURN
6910 94 nqcase = 1
6911 93 nqcase = nqcase + 1
6912 92 nqcase = nqcase + 1
6913 nqfata = 1
6914 iquest(14) = jdiv
6915 91 nqcase = nqcase + 1
6916 nqfata = nqfata + 3
6917 iquest(11) = ixin
6918 iquest(12) = iflag
6919 iquest(13) = jsto
6920 mqtrac(nqtrac+1) = namesr(1)
6921 mqtrac(nqtrac+2) = namesr(2)
6922 nqtrac = nqtrac + 2
6923 iquest(9) = namesr(1)
6924 iquest(10)= namesr(2)
6925 END
6926
6927*-------------------------------------------------------------------------------
6928
6929 SUBROUTINE zshunt (IXSTOR,LSHP,LSUPP,JBIASP,IFLAGP)
6930 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
6931 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
6932 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
6933 COMMON /quest/ iquest(100)
6934 COMMON /zebq/ iqfenc(4), lq(100)
6935 dimension iq(92), q(92)
6936 equivalence(iq(1),lq(9)), (q(1),iq(1))
6937 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
6938 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
6939 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
6940 +, nqtrac,mqtrac(48)
6941 equivalence(kqsp,nqoffs(1))
6942 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
6943 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
6944 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
6945 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
6946 dimension iqcur(16)
6947 equivalence(iqcur(1),lqstor)
6948 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
6949 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
6950 +, lqsyss(10), lqsysr(10), iqtdum(22)
6951 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
6952 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
6953 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
6954 +, nqdpsh(20),nqdred(20),nqdsiz(20)
6955 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
6956 dimension iqtabv(16)
6957 equivalence(iqtabv(1),lqpsto)
6958 COMMON /mzcn/ iqln,iqls,iqnio,iqid,iqnl,iqns,iqnd, iqnx,iqfoul
6959 dimension lshp(9),lsupp(9),jbiasp(9),iflagp(9)
6960 dimension namesr(2)
6961 DATA namesr / 4hzshu, 4hnt /
6962 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
6963 mqtrac(nqtrac+1) = namesr(1)
6964 mqtrac(nqtrac+2) = namesr(2)
6965 nqtrac = nqtrac + 2
6966 lsh = lshp(1)
6967 IF (lsh.EQ.0) GO TO 999
6968 lsup = lsupp(1)
6969 jbias = jbiasp(1)
6970 iflag = iflagp(1)
6971 IF (jbyt(ixstor,27,6).NE.jqstor) CALL mzsdiv (ixstor,-7)
6972 CALL mzchls (-7,lsh)
6973 IF (iqfoul.NE.0) GO TO 91
6974 IF (nqlogl.GE.2) THEN
6975 IF (jbias.GE.2) lsup=0
6976 WRITE (iqlog,9011) jqstor,lsh,lsup,jbias,iflag,iqid
6977 ENDIF
6978 9011 FORMAT (' ZSHUNT- Store',i3,' LSH/LSUP/JBIAS/IFLAG='
6979 f,2i9,1x,i6,1x,i3,' IDH= ',a4)
6980 kex = lq(kqs+lsh+2)
6981 lnex = lq(kqs+lsh)
6982 lpre = 0
6983 IF (jbias-1) 21, 25, 28
6984 21 CONTINUE
6985 CALL mzchls (-7,lsup)
6986 IF (iqfoul.NE.0) GO TO 92
6987 IF (iqns+jbias.LT.0) GO TO 93
6988 kin = lsup + jbias
6989 lnin = lq(kqs+kin)
6990 lup = lsup
6991 IF (jbias.NE.0) GO TO 29
6992 lpre = lup
6993 lup = lq(kqs+lup+1)
6994 GO TO 29
6995 25 lnin = lsup
6996 IF (lnin.EQ.0) GO TO 26
6997 CALL mzchls (-7,lsup)
6998 IF (iqfoul.NE.0) GO TO 92
6999 kin = lq(kqs+lnin+2)
7000 lup = lq(kqs+lnin+1)
7001 GO TO 29
7002 26 kin = locf(lsupp(1)) - lqstor
7003 lup = 0
7004 GO TO 29
7005 28 kin = 0
7006 lnin = 0
7007 lup = 0
7008 IF (kex.EQ.0) GO TO 51
7009 29 IF (kin.EQ.kex) GO TO 999
7010 l = max(lnin,lpre)
7011 IF (l.EQ.0) GO TO 51
7012 IF (l.GE.lqend(kqt+20)) GO TO 94
7013 IF (l.GE.lqend(kqt+jqdvll)) GO TO 43
7014 jqdivi = 2
7015 IF (l.GE.lqend(kqt+2)) GO TO 44
7016 IF (l.GE.lqsta(kqt+2)) GO TO 45
7017 jqdivi = 1
7018 GO TO 45
7019 43 jqdivi = jqdvsy - 1
7020 44 jqdivi = jqdivi + 1
7021 IF (l.GE.lqend(kqt+jqdivi)) GO TO 44
7022 45 IF (lsh.LT.lqsta(kqt+jqdivi)) GO TO 94
7023 IF (lsh.GE.lqend(kqt+jqdivi)) GO TO 94
7024 51 IF (lnex.EQ.0) GO TO 58
7025 IF (iflag.EQ.0) GO TO 57
7026 l = lsh
7027 53 CALL mzchls (-7,lnex)
7028 IF (iqfoul.NE.0) GO TO 95
7029 l = lnex
7030 lnex = lq(kqs+lnex)
7031 IF (lnex.NE.0) GO TO 53
7032 lnex = lsh
7033 55 lend = lnex
7034 lq(kqs+lend+1) = lup
7035 lnex = lq(kqs+lend)
7036 IF (lnex.NE.0) GO TO 55
7037 GO TO 71
7038 57 CONTINUE
7039 l = lsh
7040 CALL mzchls (-7,lnex)
7041 IF (iqfoul.NE.0) GO TO 95
7042 58 lend = lsh
7043 lq(kqs+lsh+1) = lup
7044 71 IF (kex .NE.0) lq(kqs+kex) = lnex
7045 IF (lnex.NE.0) lq(kqs+lnex+2) = kex
7046 IF (kin.NE.0) THEN
7047 lq(kqs+kin) = lsh
7048 ELSE
7049 lsupp(1) = lsh
7050 ENDIF
7051 lq(kqs+lsh+2) = kin
7052 lq(kqs+lend) = lnin
7053 IF (lnin.NE.0) lq(kqs+lnin+2) = lend
7054 999 nqtrac = nqtrac - 2
7055 RETURN
7056 95 nqcase = 1
7057 nqfata = 1
7058 iquest(16) = lnex
7059 94 nqcase = nqcase + 1
7060 nqfata = nqfata + 1
7061 iquest(15) = l
7062 93 nqcase = nqcase + 1
7063 92 nqcase = nqcase + 1
7064 91 nqcase = nqcase + 1
7065 nqfata = nqfata + 4
7066 iquest(11) = lsh
7067 iquest(12) = lsup
7068 iquest(13) = jbias
7069 iquest(14) = iflag
7070 iquest(9) = namesr(1)
7071 iquest(10)= namesr(2)
7072 END
7073
7074*-------------------------------------------------------------------------------
7075
7076 SUBROUTINE zhtoi (HOLL,INTV,NP)
7077 parameter(nqtcet=256)
7078 COMMON /zceta/ iqceta(256),iqtcet(256)
7079 INTEGER INTV(99), HOLL(99)
7080 DO 39 jwh=1,np
7081 mwh = holl(jwh)
7082 intw = 0
7083 DO 29 jl=1,4
7084 intw = ishft(intw,-6)
7085 jv = iand(mwh,255)
7086 IF (jv.EQ.32) THEN
7087 IF (jl.NE.1) GO TO 29
7088 ENDIF
7089 jv = iqtcet(jv+1)
7090 intw = ior(intw,ishft(jv,18))
7091 29 mwh = ishft(mwh,-8)
7092 39 intv(jwh) = intw
7093 END
7094
7095*-------------------------------------------------------------------------------
7096
7097 SUBROUTINE rzscan(CHPATH,UROUT)
7098 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
7099 COMMON /quest/ iquest(100)
7100 COMMON /zebq/ iqfenc(4), lq(100)
7101 dimension iq(92), q(92)
7102 equivalence(iq(1),lq(9)), (q(1),iq(1))
7103 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
7104 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
7105 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
7106 +, nqtrac,mqtrac(48)
7107 equivalence(kqsp,nqoffs(1))
7108 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
7109 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
7110 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
7111 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
7112 dimension iqcur(16)
7113 equivalence(iqcur(1),lqstor)
7114 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
7115 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
7116 +, lqsyss(10), lqsysr(10), iqtdum(22)
7117 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
7118 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
7119 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
7120 +, nqdpsh(20),nqdred(20),nqdsiz(20)
7121 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
7122 dimension iqtabv(16)
7123 equivalence(iqtabv(1),lqpsto)
7124 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
7125 +, ltemp,lcord,lfrom
7126 equivalence(lqrs,lqsyss(7))
7127 parameter(nlpatm=100)
7128 COMMON /rzdirn/nlcdir,nlndir,nlpat
7129 COMMON /rzdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
7130 CHARACTER*16 CHNDIR, CHCDIR, CHPAT
7131 COMMON /rzch/ chwold,chl
7132 CHARACTER*255 CHWOLD,CHL
7133 parameter(kup=5,kpw1=7,knch=9,kdatec=10,kdatem=11,kquota=12,
7134 + krused=13,kwused=14,kmega=15,krzver=16,kirin=17,
7135 + kirout=18,krlout=19,kip1=20,knfree=22,knsd=23,kld=24,
7136 + klb=25,kls=26,klk=27,klf=28,klc=29,kle=30,knkeys=31,
7137 + knwkey=32,kkdes=33,knsize=253,kex=6,knmax=100)
7138 CHARACTER *(*) CHPATH
7139 EXTERNAL urout
7140 dimension isd(nlpatm),nsd(nlpatm),ihdir(4)
7141 iquest(1)=0
7142 IF(lqrs.EQ.0)GO TO 99
7143 IF(lcdir.EQ.0)GO TO 99
7144 CALL rzcdir(chwold,'R')
7145 CALL rzcdir(chpath,' ')
7146 IF(iquest(1).NE.0) GOTO 99
7147 CALL rzpaff(chpat,nlpat,chl)
7148 nlpat0=nlpat
7149 itime=0
7150 10 CONTINUE
7151 IF(itime.NE.0)THEN
7152 CALL rzpaff(chpat,nlpat,chl)
7153 IF(iquest(1).NE.0)THEN
7154 nlpat=nlpat-1
7155 GO TO 20
7156 ENDIF
7157 CALL rzcdir(chl,' ')
7158 ENDIF
7159 IF(iquest(1).NE.0)THEN
7160 nlpat=nlpat-1
7161 GO TO 20
7162 ENDIF
7163 isd(nlpat)=0
7164 nsd(nlpat)=iq(kqsp+lcdir+knsd)
7165 CALL urout(chl)
7166 20 isd(nlpat)=isd(nlpat)+1
7167 IF(isd(nlpat).LE.nsd(nlpat))THEN
7168 nlpat=nlpat+1
7169 ls=iq(kqsp+lcdir+kls)
7170 ih=ls+7*(isd(nlpat-1)-1)
7171 CALL zitoh(iq(kqsp+lcdir+ih),ihdir,4)
7172 CALL uhtoc(ihdir,4,chpat(nlpat),16)
7173 itime=itime+1
7174 GO TO 10
7175 ELSE
7176 nlpat=nlpat-1
7177 IF(nlpat.GE.nlpat0)THEN
7178 lup=lq(kqsp+lcdir+1)
7179 CALL mzdrop(jqpdvs,lcdir,' ')
7180 lcdir=lup
7181 GO TO 20
7182 ENDIF
7183 ENDIF
7184 90 CALL rzcdir(chwold,' ')
7185 99 RETURN
7186 END
7187
7188*-------------------------------------------------------------------------------
7189
7190 SUBROUTINE mzwipe (IXWP)
7191 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
7192 COMMON /quest/ iquest(100)
7193 COMMON /zebq/ iqfenc(4), lq(100)
7194 dimension iq(92), q(92)
7195 equivalence(iq(1),lq(9)), (q(1),iq(1))
7196 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
7197 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
7198 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
7199 +, nqtrac,mqtrac(48)
7200 equivalence(kqsp,nqoffs(1))
7201 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
7202 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
7203 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
7204 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
7205 dimension iqcur(16)
7206 equivalence(iqcur(1),lqstor)
7207 COMMON /zvfaut/iqvid(2),iqvsta,iqvlog,iqvthr(2),iqvrem(2,6)
7208 dimension ixwp(9)
7209 dimension namesr(2)
7210 DATA namesr / 4hmzwi, 4hpe /
7211 ixwipe = ixwp(1)
7212 IF (ixwipe.EQ.0) ixwipe=21
7213 CALL mzgarb (0,ixwipe)
7214 END
7215
7216*-------------------------------------------------------------------------------
7217
7218 SUBROUTINE rzend(CHDIR)
7219 COMMON /zunit/ iqread,iqprnt,iqpr2,iqlog,iqpnch,iqttin,iqtype
7220 COMMON /zunitz/iqdlun,iqflun,iqhlun, nqused
7221 COMMON /zstate/qversn,nqphas,iqdbug,nqdcut,nqwcut,nqerr
7222 +, nqlogd,nqlogm,nqlock,nqdevz,nqopts(6)
7223 parameter(iqdrop=25, iqmark=26, iqcrit=27, iqsysx=28)
7224 COMMON /quest/ iquest(100)
7225 COMMON /zebq/ iqfenc(4), lq(100)
7226 dimension iq(92), q(92)
7227 equivalence(iq(1),lq(9)), (q(1),iq(1))
7228 COMMON /mzca/ nqstor,nqofft(16),nqoffs(16),nqallo(16), nqiam
7229 +, lqatab,lqasto,lqbtis, lqwktb,nqwktb,lqwkfz
7230 +, mqkeys(3),nqinit,nqtsys,nqm99,nqperm,nqfata,nqcase
7231 +, nqtrac,mqtrac(48)
7232 equivalence(kqsp,nqoffs(1))
7233 COMMON /mzcb/ jqstor,kqt,kqs, jqdivi,jqdivr
7234 +, jqkind,jqmode,jqdivn,jqshar,jqshr1,jqshr2,nqresv
7235 +, lqstor,nqfend,nqstru,nqref,nqlink,nqminr,lq2end
7236 +, jqdvll,jqdvsy,nqlogl,nqsnam(6)
7237 dimension iqcur(16)
7238 equivalence(iqcur(1),lqstor)
7239 COMMON /mzcc/ lqpsto,nqpfen,nqpstr,nqpref,nqplk,nqpmin,lqp2e
7240 +, jqpdvl,jqpdvs,nqplog,nqpnam(6)
7241 +, lqsyss(10), lqsysr(10), iqtdum(22)
7242 +, lqsta(21), lqend(20), nqdmax(20),iqmode(20)
7243 +, iqkind(20),iqrcu(20), iqrto(20), iqrno(20)
7244 +, nqdini(20),nqdwip(20),nqdgau(20),nqdgaf(20)
7245 +, nqdpsh(20),nqdred(20),nqdsiz(20)
7246 +, iqdn1(20), iqdn2(20), kqft, lqfsta(21)
7247 dimension iqtabv(16)
7248 equivalence(iqtabv(1),lqpsto)
7249 COMMON /rzcl/ ltop,lrz0,lcdir,lrin,lrout,lfree,lused,lpurg
7250 +, ltemp,lcord,lfrom
7251 equivalence(lqrs,lqsyss(7))
7252 CHARACTER CHDIR*(*)
7253 dimension ihdir(4)
7254 LOGICAL RZSAME
7255 jbit(izw,izp) = iand(ishft(izw,-(izp-1)),1)
7256 jbyt(izw,izp,nzb) = ishft(ishft(izw,33-izp-nzb),-(32-nzb))
7257 iquest(1)=0
7258 IF(lqrs.EQ.0)GO TO 99
7259 CALL rzsave
7260 nchd=len(chdir)
7261 IF(nchd.GT.16)nchd=16
7262 CALL vblank(ihdir,4)
7263 CALL uctoh(chdir,ihdir,4,nchd)
7264 CALL zhtoi(ihdir,ihdir,4)
7265 lrz=lqrs
7266 10 IF(lrz.NE.0)THEN
7267 IF(.NOT.rzsame(ihdir,iq(kqsp+lrz+1),4))THEN
7268 lrz=lq(kqsp+lrz)
7269 GO TO 10
7270 ENDIF
7271 ltop=lrz
7272 loglv = jbyt(iq(kqsp+ltop),15,3)-3
7273 IF(loglv.GE.0) WRITE(iqlog,9019) chdir
7274 9019 FORMAT(' RZEND. called for ',a)
7275 IF(jbit(iq(kqsp+ltop),3).NE.0)THEN
7276 lcdir=ltop
7277 print*,'>>>>>> RZFREE'
7278* CALL RZFREE('RZFILE')
7279 ENDIF
7280 CALL mzdrop(jqpdvs,ltop,' ')
7281 ltop = 0
7282 lcdir= 0
7283 ELSEIF(nqlogd.GE.-2)THEN
7284 WRITE(iqlog,1000) chdir
7285 1000 FORMAT(' RZEND. Unknown directory ',a)
7286 ENDIF
7287 99 RETURN
7288 END
7289
7290*-------------------------------------------------------------------------------
#define f(i)
Definition RSha256.hxx:104
#define a(i)
Definition RSha256.hxx:99
#define quest
#define rzcl
#define pawc
STL class.
STL class.
void file()
Definition file.C:11
#define uhtoc
Definition h2root.cxx:129
mfile ls()
subroutine sbyt(it, izw, izp, nzb)
Definition kernlib.f:175
subroutine cutol(chv)
Definition kernlib.f:22
subroutine ucopyi(ia, ib, n)
Definition kernlib.f:311
subroutine upkbyt(mbv, jthp, miv, nintp, nbits)
Definition kernlib.f:326
subroutine ubunch(ms, mt, nchp)
Definition kernlib.f:58
subroutine uoptc(data, poss, ioptv)
Definition kernlib.f:34
subroutine uctoh(ms, mt, npw, nch)
Definition kernlib.f:198
function jbyt(izw, izp, nzb)
Definition kernlib.f:128
subroutine uctoh1(ms, mt, nch)
Definition kernlib.f:289
subroutine vzeroi(j, n)
Definition kernlib.f:113
subroutine cfopen(lundes, medium, nwrec, mode, nbuf, name, istat)
Definition kernlib.f:368
subroutine sbit1(izw, izp)
Definition kernlib.f:186
subroutine vfill(a, n, stuff)
Definition kernlib.f:156
subroutine vblank(a, n)
Definition kernlib.f:165
function jbit(izw, izp)
Definition kernlib.f:122
function locf(ivar)
Definition kernlib.f:90
subroutine ucopy2(a, b, n)
Definition kernlib.f:404
subroutine sbit0(izw, izp)
Definition kernlib.f:192
function lenocc(chv)
Definition kernlib.f:46
subroutine cltou(chv)
Definition kernlib.f:10
void limit()
Definition limit.C:29
function mzfdiv(ixst, lixp)
Definition zebra.f:4737
function mzdvac(ixdivp)
Definition zebra.f:4357
subroutine mzfgap
Definition zebra.f:4791
subroutine rzopen(lunin, chdir, cfname, choptt, lrecl, istat)
Definition zebra.f:461
subroutine rzin(ixdiv, lsup, jbias, keyu, icycle, chopt)
Definition zebra.f:873
subroutine mzpudx(lp, nwp)
Definition zebra.f:6401
subroutine fzicv(ms, irmt)
Definition zebra.f:1373
subroutine rzvcyc(ltad)
Definition zebra.f:805
subroutine mzchln(ixst, lp)
Definition zebra.f:4153
subroutine mzioch(iodvec, nwiomp, chform)
Definition zebra.f:5572
subroutine mzebra(list)
Definition zebra.f:10
subroutine fzimtb
Definition zebra.f:3203
subroutine zitoh(intv, iholl, np)
Definition zebra.f:1139
subroutine rzsave
Definition zebra.f:1245
subroutine mzrell(mdesv)
Definition zebra.f:6643
subroutine mzrelx
Definition zebra.f:6786
subroutine rzfdir(chrout, lt, ldir, chopt)
Definition zebra.f:3031
subroutine mzneed(ixdiv, needp, chopt)
Definition zebra.f:2528
logical function rzsame(ih1, ih2, n)
Definition zebra.f:3538
subroutine mziocf(jup, mxval)
Definition zebra.f:6060
subroutine mzpush(ixdiv, lorgp, incnlp, incndp, chopt)
Definition zebra.f:2240
subroutine mzchnb(lix)
Definition zebra.f:4228
subroutine mzchls(ixst, lp)
Definition zebra.f:1685
subroutine rzfile(lunin, chdir, chopt)
Definition zebra.f:2799
subroutine mztabx
Definition zebra.f:5517
subroutine rzink(keyu, icycle, chopt)
Definition zebra.f:3552
subroutine izhnum(holl, intv, np)
Definition zebra.f:3490
function iucomp(itext, ivect, n)
Definition zebra.f:3499
subroutine mztabm
Definition zebra.f:5238
subroutine mztabs
Definition zebra.f:5468
subroutine mzwipe(ixwp)
Definition zebra.f:7191
subroutine rzdate(iword, idate, itime, icase)
Definition zebra.f:2602
subroutine mztabh
Definition zebra.f:5147
subroutine mzgar1
Definition zebra.f:4518
subroutine rzscan(chpath, urout)
Definition zebra.f:7098
subroutine mzinco(list)
Definition zebra.f:84
subroutine mztabr
Definition zebra.f:5341
subroutine mzlink(ixstor, chname, larea, lref, lrefl)
Definition zebra.f:2103
subroutine mzdrop(ixstor, lheadp, chopt)
Definition zebra.f:4274
subroutine mzmove
Definition zebra.f:6298
subroutine mziocr(iow)
Definition zebra.f:6081
subroutine zhtoi(holl, intv, np)
Definition zebra.f:7077
subroutine rzread(iv, n, ipc, iform)
Definition zebra.f:3951
subroutine mztabf
Definition zebra.f:5030
subroutine mzbook(ixp, lp, lsupp, jbp, chidh, nl, ns, nd, niop, nzp)
Definition zebra.f:1748
subroutine izbcdt(np, itabt)
Definition zebra.f:3511
subroutine rzcdir(chpath, chopt)
Definition zebra.f:2642
subroutine mzlift(ixdiv, lp, lsupp, jbias, name, nzero)
Definition zebra.f:1813
subroutine mzstor(ixstor, chname, chopt, ifence, lv, llr, lld, limit, last)
Definition zebra.f:223
subroutine mzflag(ixstor, lheadp, kbitp, chopt)
Definition zebra.f:5874
subroutine rzins(ixdivp, lsupp, jbiasp, lbank)
Definition zebra.f:967
subroutine rzpaff(ch, nl, chpath)
Definition zebra.f:3772
subroutine mzgarb(ixgp, ixwp)
Definition zebra.f:4428
subroutine mztabc
Definition zebra.f:4934
subroutine mzsdiv(ixdivp, iflagp)
Definition zebra.f:6839
subroutine mzrelb
Definition zebra.f:6450
subroutine fzilin
Definition zebra.f:1620
subroutine mzgsta(igarb)
Definition zebra.f:6012
subroutine rzpath(chpath)
Definition zebra.f:3808
subroutine zshunt(ixstor, lshp, lsupp, jbiasp, iflagp)
Definition zebra.f:6930
subroutine mzresv
Definition zebra.f:1164
subroutine rziodo(lunrz, jrec, irec1, ibuf, irw)
Definition zebra.f:700
function mzixco(ixaa, ixbb, ixcc, ixdd)
Definition zebra.f:6207
subroutine mzform(chid, chform, ixiop)
Definition zebra.f:4646
subroutine mzpaw(nwords, chopt)
Definition zebra.f:205
subroutine fzirel
Definition zebra.f:1475
subroutine rzend(chdir)
Definition zebra.f:7219