Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
hbook.f
Go to the documentation of this file.
1*-------------------------------------------------------------------------------
2*
3* This file contains the hbook's package subset needed to build h2root.
4* It cannot be used by any hbook application because many hbook functionalities
5* are missing.
6*
7*-------------------------------------------------------------------------------
8
9 SUBROUTINE hntvar2(ID1,IVAR,CHTAG,CHFULL,BLOCK,NSUB,ITYPE,ISIZE
10 + ,NBITS,IELEM)
11 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
12 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
13 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
14 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
15 + zid, zntmp, zntmp1, zlink
16 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
17 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
18 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
19 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
20 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
21 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
22 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
23 + nchar ,nrhist,ierr ,nv
24 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
25 + nchar ,nrhist,ierr ,nv
26 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
27 REAL FENC , HCV
28 common/bigbuf/bigb(4000000)
29 character BIGB
30 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
31 +hcv(4000000-11)
32 INTEGER IQ ,LQ
33 REAL Q
34 dimension iq(2),q(2),lq(8000)
35 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
36 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
37 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
38 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
39 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
40 +lhfit,lfunc,lhfco,lhfna,lcidn
41 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
42 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
43 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
44 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
45 +lhfit,lfunc,lhfco,lhfna,lcidn
46 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
47 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
48 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
49 + kcon1 ,kcon2 ,kbits ,kntot
50 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
51 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
52 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
53 + kcon1=9,kcon2=3,kbits=1,kntot=2)
54 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
55 + i9, i10, i11, i12, i13, i14, i15, i16,
56 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
57 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
58 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
59 + i9, i10, i11, i12, i13, i14, i15, i16,
60 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
61 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
62 CHARACTER*(*) CHTAG, CHFULL, BLOCK
63 CHARACTER*80 VAR
64 CHARACTER*32 NAME, SUBS
65 LOGICAL LDUM
66 id = id1
67 idpos = locati(iq(ltab+1),iq(lcdir+knrh),id)
68 IF (idpos .LE. 0) THEN
69 print*,'Unknown N-tuple','HNTVAR',id1
70 RETURN
71 ENDIF
72 lcid = lq(ltab-idpos)
73 chtag = ' '
74 name = ' '
75 block = ' '
76 nsub = 0
77 itype = 0
78 isize = 0
79 ielem = 0
80 icnt = 0
81 IF (ivar .GT. iq(lcid+zndim)) RETURN
82 lblok = lq(lcid-1)
83 lchar = lq(lcid-2)
84 lint = lq(lcid-3)
85 lreal = lq(lcid-4)
86 5 lname = lq(lblok-1)
87 ioff = 0
88 ndim = iq(lblok+zndim)
89 DO 10 i = 1, ndim
90 icnt = icnt + 1
91 IF (icnt .EQ. ivar) THEN
92 CALL hndesc(ioff, nsub, itype, isize, nbits, ldum)
93 ll = iq(lname+ioff+zlname)
94 lv = iq(lname+ioff+zname)
95 CALL uhtoc(iq(lchar+lv), 4, name, ll)
96 CALL uhtoc(iq(lblok+ziblok), 4, block, 8)
97 ielem = 1
98 IF (nsub .GT. 0) THEN
99 var = name(1:ll)//'['
100 DO 25 j = nsub,1,-1
101 lp = iq(lint+iq(lname+ioff+zarind)+(j-1))
102 IF (lp .LT. 0) THEN
103 ie = -lp
104 CALL hitoc(ie, subs, ll, ierr)
105 ELSE
106 ll = iq(lname+lp-1+zlname)
107 lv = iq(lname+lp-1+zname)
108 CALL uhtoc(iq(lchar+lv), 4, subs, ll)
109 ll1 = iq(lname+lp-1+zrange)
110 ie = iq(lint+ll1+1)
111 ENDIF
112 ielem = ielem*ie
113 IF (j .EQ. nsub) THEN
114 var = var(1:lenocc(var))//subs(1:ll)
115 ELSE
116 var = var(1:lenocc(var))//']['//subs(1:ll)
117 ENDIF
118 25 CONTINUE
119 var = var(1:lenocc(var))//']'
120 ELSE
121 var = name(1:ll)
122 ENDIF
123 chtag = name
124 chfull = var
125 RETURN
126 ENDIF
127 ioff = ioff + znaddr
128 10 CONTINUE
129 lblok = lq(lblok)
130 IF (lblok .NE. 0) GOTO 5
131 END
132
133*-------------------------------------------------------------------------------
134
135 subroutine hntvar3(id,last,chvar)
136 character *80 allvars
137 common/callvars/allvars(100)
138 common/calloff/ioffset(100)
139 character *(*) chvar
140 integer id,ivar,last
141 save ivar
142 data ivar/0/
143 if (ivar.ne.0) then
144 if (allvars(ivar).ne.chvar) then
145 ivar = ivar+1
146 allvars(ivar) = chvar
147 ioffset(ivar) = 0
148 endif
149 else
150 ivar = ivar+1
151 allvars(ivar) = chvar
152 ioffset(ivar) = 0
153 endif
154 ier = 0
155 if (last.ne.0) then
156 call hgnt1(id,'*',allvars,ioffset,-ivar,1,ier)
157 allvars(1) = ' '
158 ivar = 0
159 endif
160 end
161
162*-------------------------------------------------------------------------------
163
164 SUBROUTINE hlimit (LIMIT)
165 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
166 REAL FENC , HCV
167 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
168 +hcv(4000000-11)
169 INTEGER IQ ,LQ
170 REAL Q
171 dimension iq(2),q(2),lq(8000)
172 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
173 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
174 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
175 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
176 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
177 +lhfit,lfunc,lhfco,lhfna,lcidn
178 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
179 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
180 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
181 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
182 +lhfit,lfunc,lhfco,lhfna,lcidn
183 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
184 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
185 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
186 + kcon1 ,kcon2 ,kbits ,kntot
187 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
188 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
189 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
190 + kcon1=9,kcon2=3,kbits=1,kntot=2)
191 common/hcform/iodir,ioh1,ioh2,iohn,iocf1,iocf2,iocb1,iocb2,
192 + iocf4,iofit,iont,iobl,iocc
193 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
194 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
195 + ,ichtyp(mxfiles),ichlun(mxfiles)
196 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
197 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
198 + ,chtop(nlpatm)
199 CHARACTER*(LENHFN) HFNAME
200 COMMON /hcfile/hfname(mxfiles)
201 CALL hmachi
202 nhbook = iabs(limit)
203 IF (nhbook.LT.10000) nhbook=10000
204 IF (limit.GT.0) CALL mzebra(-3)
205 IF(limit.NE.0)CALL mzpaw(nhbook,' ')
206 CALL mzlink(ixpawc,'/HCBOOK/',lhbook,lcdir,lcidn)
207 ihwork = ixpawc+1
208 ihdiv = ixpawc+2
209 CALL mzform('HDIR','4H -I',iodir)
210 CALL mzform('HID1','1B 2I 6F -H',ioh1)
211 CALL mzform('HID2','1B 2I 3F 1I 4F -H',ioh2)
212 CALL mzform('HIDN','11I -H',iohn)
213 CALL mzform('HIDT','13I -H',iont)
214 CALL mzform('HBLK','7I -H',iobl)
215 CALL mzform('HCF1','2I 2F 4D -F',iocf1)
216 CALL mzform('HCB1','2I 2F 4D -B',iocb1)
217 CALL mzform('HCF2','2I -F',iocf2)
218 CALL mzform('HCF4','4I -F',iocf4)
219 CALL mzform('HCB2','2I -B',iocb2)
220 CALL mzform('HFIT','5I 5F -D',iofit)
221 CALL mzform('LCHX','2I -H',iocc)
222 CALL mzbook(ihdiv,lcdir,lhbook, 1,'HDIR',50,8,10,iodir,0)
223 CALL uctoh('PAWC ',iq(lcdir+1),4,16)
224 CALL mzbook(ihdiv,ltab ,lhbook,-3,'HTAB',500,0,500,2,0)
225 lmain = lhbook
226 nlcdir = 1
227 nlpat = 1
228 chcdir(1) = 'PAWC'
229 nchtop = 1
230 chtop(1) = 'PAWC'
231 hfname(1) = 'COMMON /PAWC/ in memory'
232 ichtop(1) = 0
233 ichlun(1) = 0
234 icdir = 1
235 END
236
237*-------------------------------------------------------------------------------
238
239 SUBROUTINE hropen(LUN,CHDIR,CFNAME,CHOPTT,LRECL,ISTAT)
240 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
241 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
242 + ,ichtyp(mxfiles),ichlun(mxfiles)
243 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
244 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
245 + ,chtop(nlpatm)
246 CHARACTER*(LENHFN) HFNAME
247 COMMON /hcfile/hfname(mxfiles)
248 common/quest/iquest(100)
249 CHARACTER*(*) CFNAME,CHDIR,CHOPTT
250 CHARACTER*8 CHOPT
251 chopt=choptt
252 CALL cltou(chopt)
253 DO 10 i=1,nchtop
254 IF(cfname.EQ.hfname(i))THEN
255 print*, 'File already connected','HROPEN',0
256 GO TO 99
257 ENDIF
258 10 CONTINUE
259 iq10=iquest(10)
260 IF (index(chopt,'F').EQ.0) THEN
261 ic = min(lenocc(chopt)+1,8)
262 chopt(ic:ic) = 'C'
263 ENDIF
264 CALL rzopen(lun,chdir,cfname,chopt,lrecl,istat)
265 90 IF(istat.NE.0)THEN
266 print*, 'Cannot open file','HROPEN',0
267 GO TO 99
268 ENDIF
269 IF (iquest(12).NE.0 ) THEN
270 ic = min(lenocc(chopt)+1,8)
271 chopt(ic:ic) = 'X'
272 ENDIF
273 lre=iquest(10)
274 iquest(10)=iq10
275 iquest(99)=lre
276 CALL hrfile(lun,chdir,chopt)
277 IF(iquest(1).NE.0)THEN
278 istat=iquest(1)
279 print*,'>>>>>> CALL RZEND(CHDIR)'
280****** CALL RZEND(CHDIR)
281 CLOSE(lun)
282 GO TO 90
283 ENDIF
284 IF(icdir.GT.0)hfname(icdir)=cfname
285 IF(index(chopt,'Q').EQ.0)iquest(10)=lre
28699 RETURN
287 END
288
289*-------------------------------------------------------------------------------
290
291 SUBROUTINE hrfile(LUN,CHDIR,CHOPT)
292 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
293 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
294 + ,ichtyp(mxfiles),ichlun(mxfiles)
295 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
296 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
297 + ,chtop(nlpatm)
298 CHARACTER*(LENHFN) HFNAME
299 COMMON /hcfile/hfname(mxfiles)
300 CHARACTER*128 CHMAIL
301 COMMON /hcmail/chmail
302 common/quest/iquest(100)
303 CHARACTER*(*) CHDIR,CHOPT
304 CHARACTER*8 TAGS(2),CHOPTT
305 dimension iopt(6)
306 equivalence(ioptn,iopt(1)),(ioptg,iopt(2)),(ioptq,iopt(3))
307 equivalence(ioptm,iopt(4)),(iopto,iopt(5)),(iopte,iopt(6))
308 IF(nchtop.GE.mxfiles)THEN
309 print*, 'Too many open files','HRFILE',lun
310 GO TO 99
311 ENDIF
312 CALL huoptc(chopt,'NGQMOE',iopt)
313 IF(ioptm.NE.0)ioptg=1
314 iquest(1)=0
315 IF(ioptg.EQ.0)THEN
316 IF(ioptn.NE.0)THEN
317 IF(ioptq.NE.0)THEN
318 nquot=iquest(10)
319 IF(nquot.LT.100)nquot=100
320 IF(nquot.GT.65000.AND.iopte.EQ.0)nquot=65000
321 ELSE
322 nquot=32000
323 ENDIF
324 tags(1) = 'HBOOK-ID'
325 tags(2) = 'VARIABLE'
326 nch=lenocc(chopt)
327 IF(nch.EQ.0)THEN
328 choptt='X'
329 ELSE
330 choptt='X'//chopt(1:nch)
331 ENDIF
332 CALL cltou(choptt)
333 i=index(choptt,'N')
334 IF(i.NE.0)choptt(i:i)='?'
335 i=index(choptt,'E')
336 IF(i.NE.0)choptt(i:i)='N'
337 IF(iopto.NE.0)THEN
338 nwk=1
339 choptt(1:1)='?'
340 ELSE
341 nwk=2
342 ENDIF
343 iq10=iquest(10)
344 IF(index(chopt,'C').NE.0) iquest(10)=iquest(99)
345 print*,'>>>>>> CALL RZMAKE(...)'
346****** CALL RZMAKE(LUN,CHDIR,NWK,'II',TAGS,NQUOT,CHOPTT)
347 iquest(10)=iq10
348 ELSE
349 iq10=iquest(10)
350 IF(index(chopt,'C').NE.0) iquest(10)=iquest(99)
351 CALL rzfile(lun,chdir,chopt)
352 iquest(10)=iq10
353 IF(iquest(1).EQ.2)iquest(1)=0
354 nwk=iquest(8)
355 ENDIF
356 ENDIF
357 IF(iquest(1).NE.0)RETURN
358 nchtop=nchtop+1
359 chtop(nchtop)=chdir
360 ichlun(nchtop)=0
361 IF(ioptg.EQ.0)THEN
362 ichtop(nchtop)=lun
363 ichtyp(nchtop)=nwk
364 hfname(nchtop)=chdir
365 ELSE
366 ichtop(nchtop)=-locf(lun)
367 ichtyp(nchtop)=0
368 IF(ioptm.EQ.0)THEN
369 hfname(nchtop)='Global section - '//chdir
370 ELSE
371 hfname(nchtop)='Global memory - '//chdir
372 ENDIF
373 ENDIF
374 10 chmail='//'//chtop(nchtop)
375 CALL hcdir(chmail,' ')
376 99 RETURN
377 END
378
379*-------------------------------------------------------------------------------
380
381 SUBROUTINE hrin(IDD,ICYCLE,KOFSET)
382 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
383 REAL FENC , HCV
384 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
385 +hcv(4000000-11)
386 INTEGER IQ ,LQ
387 REAL Q
388 dimension iq(2),q(2),lq(8000)
389 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
390 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
391 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
392 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
393 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
394 +lhfit,lfunc,lhfco,lhfna,lcidn
395 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
396 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
397 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
398 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
399 +lhfit,lfunc,lhfco,lhfna,lcidn
400 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
401 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
402 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
403 + kcon1 ,kcon2 ,kbits ,kntot
404 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
405 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
406 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
407 + kcon1=9,kcon2=3,kbits=1,kntot=2)
408 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
409 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
410 + ,ichtyp(mxfiles),ichlun(mxfiles)
411 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
412 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
413 + ,chtop(nlpatm)
414 CHARACTER*(LENHFN) HFNAME
415 COMMON /hcfile/hfname(mxfiles)
416 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
417 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
418 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
419 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
420 + zid, zntmp, zntmp1, zlink
421 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
422 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
423 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
424 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
425 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
426 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
427 COMMON /hntcur/ ntcur
428 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
429 + nchar ,nrhist,ierr ,nv
430 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
431 + nchar ,nrhist,ierr ,nv
432 common/quest/iquest(100)
433 CHARACTER*128 CHWOLD
434 INTEGER KEYS(2)
435 DATA khide,khid1,khid2,khco1,khco2/4hhide,4hhid1,4hhid2,
436 + 4hhco1,4hhco2/
437 iofset=kofset
438 IF(ichtop(icdir).LT.0)THEN
439 print*, .LT.'>>>>>> HRIN: ICHTOP(ICDIR)0'
440 ENDIF
441 IF(icycle.GT.1000.AND.idd.EQ.0)THEN
442 CALL hpaff(chcdir,nlcdir,chwold)
443 lq(lhbook-nlpat-10)=lcdir
444 ENDIF
445 nrhist=iq(lcdir+knrh)
446 IF(kofset.EQ.99999.AND.nrhist.GT.0)THEN
447 IF(iq(ltab+nrhist).GE.kofset)iofset=iq(ltab+nrhist)+1000000
448 ENDIF
449 keys(2) = 0
450 iq42=0
451 idn=idd
452 IF(idd.EQ.0)THEN
453 keys(1) = 1
454 CALL hrzin(ihdiv,0,0,keys,9999,'SC')
455 idn=iquest(21)
456 iq42=iquest(22)
457 ENDIF
458 10 id=idn+iofset
459 nrhist=iq(lcdir+knrh)
460 idpos=locati(iq(ltab+1),nrhist,id)
461 inmem=0
462 IF(idpos.GT.0)THEN
463 lc=lq(ltab-idpos)
464 IF(jbit(iq(lc),5).EQ.0)THEN
465 inmem=1
466 ELSE
467 print*, '+Already existing histogram replaced','HRIN',id
468 CALL hdelet(id)
469 nrhist=iq(lcdir+knrh)
470 idpos=-idpos+1
471 ENDIF
472 ENDIF
473 keys(1) = idn
474 keys(2) = iq42
475 CALL hrzin(ihdiv,0,0,keys,icycle,'NC')
476 IF(iquest(1).NE.0)GO TO 70
477 iq40=iquest(40)
478 iq41=iquest(41)
479 iq42=iquest(42)
480 nwords=iquest(12)
481 iopta=jbit(iquest(14),4)
482 IF(iopta.NE.0)GO TO 60
483 IF(inmem.NE.0)GO TO 60
484 CALL hspace(nwords+1000,'HRIN ',idd)
485 IF(ierr.NE.0) GO TO 70
486 idpos=-idpos+1
487 IF(nrhist.GE.iq(ltab-1))THEN
488 CALL mzpush(ihdiv,ltab,500,500,' ')
489 ENDIF
490 DO 20 i=nrhist,idpos,-1
491 iq(ltab+i+1)=iq(ltab+i)
492 lq(ltab-i-1)=lq(ltab-i)
493 20 CONTINUE
494 IF(lids.EQ.0)THEN
495 keys(1) = idn
496 CALL hrzin(ihdiv,lcdir,-2,keys,icycle,'ND')
497 IF(iquest(1).NE.0)THEN
498 print*, 'Bad sequence for RZ','HRIN',idn
499 GO TO 70
500 ENDIF
501 lids=lq(lcdir-2)
502 lcid=lids
503 ELSE
504 llid=lq(lcdir-9)
505 keys(1) = idn
506 CALL hrzin(ihdiv,llid, 0,keys,icycle,'ND')
507 IF(iquest(1).NE.0)THEN
508 print*, 'Bad sequence for RZ','HRIN',idn
509 GO TO 70
510 ENDIF
511 lcid=lq(llid)
512 ENDIF
513 iq(lcid-5)=id
514 lq(lcdir-9)=lcid
515 iq(lcdir+knrh)=iq(lcdir+knrh)+1
516 iq(ltab+idpos)=id
517 lq(ltab-idpos)=lcid
518 CALL sbit1(iq(lcid),5)
519 IF(jbit(iq(lcid+kbits),1).NE.0)THEN
520 IF(iq(lcid-4).EQ.khide)THEN
521 iq(lcid-4)=khid1
522 l=lq(lcid-1)
523 IF(l.NE.0)iq(l-4)=khco1
524 ENDIF
525 ENDIF
526 IF(jbyt(iq(lcid+kbits),2,2).NE.0)THEN
527 IF(iq(lcid-4).EQ.khide)THEN
528 iq(lcid-4)=khid2
529 l=lq(lcid-1)
530 IF(l.NE.0)iq(l-4)=khco2
531 ENDIF
532 ENDIF
533 IF(jbit(iq(lcid+kbits),4).NE.0)THEN
534 IF (iq(lcid-2) .EQ. 2) THEN
535 nchrz=iq(lcid+11)
536 IF(nchrz.LE.0)GO TO 30
537 itag1=iq(lcid+10)
538 nw=iq(lcid-1)-itag1+1
539 nplus=32-itag1
540 IF(nplus.GT.0)THEN
541 CALL mzpush(ihdiv,lcid,0,nplus,' ')
542 CALL ucopy2(iq(lcid+itag1),iq(lcid+32),nw)
543 iq(lcid+9)=iq(lcid+9)+nplus
544 iq(lcid+10)=32
545 ENDIF
546 CALL hpaff(chcdir,nlcdir,chwold)
547 nchrz=lenocc(chwold)
548 CALL uctoh(chwold,iq(lcid+12),4,nchrz)
549 iq(lcid+11)=nchrz
550 30 iq(lcid)=9999
551 lc=lq(lcid-1)
552 CALL sbit0(iq(lc),1)
553 IF(nchrz.LE.0)THEN
554 nmore=iq(lcid+5)+3-iq(lcid-3)
555 IF(nmore.GT.0)THEN
556 CALL mzpush(ihdiv,lcid,nmore,0,' ')
557 ENDIF
558 IF(iq(lcid+5).GE.1)THEN
559 DO 40 ib=1,iq(lcid+5)
560 lq(lcid-3-ib)=lc
561 lc=lq(lc)
562 IF(lc.EQ.0)THEN
563 lc=lq(lcid-1)
564 GO TO 60
565 ENDIF
566 40 CONTINUE
567 lc=lq(lcid-1)
568 ENDIF
569 ELSE
570 IF(ichtop(icdir).LT.1000) THEN
571 print*, '>>>>>> CALL HRZKEY(IDN)'
572****** CALL HRZKEY(IDN)
573 ENDIF
574 iq(lcid+5)=idn
575 ENDIF
576 GO TO 60
577 ELSE
578 nchrz=iq(lcid+znchrz)
579 IF(nchrz.LE.0)GO TO 50
580 itit1=iq(lcid+zitit1)
581 nw=iq(lcid-1)-itit1+1
582 nplus=34-itit1
583 IF(nplus.GT.0)THEN
584 CALL mzpush(ihdiv,lcid,0,nplus,' ')
585 CALL ucopy2(iq(lcid+itit1),iq(lcid+34),nw)
586 iq(lcid+zitit1)=34
587 ENDIF
588 CALL hpaff(chcdir,nlcdir,chwold)
589 nchrz=lenocc(chwold)
590 CALL uctoh(chwold,iq(lcid+znchrz+1),4,nchrz)
591 iq(lcid+znchrz)=nchrz
592 50 iq(lcid)=9999
593 lc = lq(lcid-1)
594 CALL sbit0(iq(lc),1)
595 CALL sbit0(iq(lc),2)
596 CALL sbit0(iq(lc),3)
597 CALL hnmset(id,zibank,0)
598 CALL hnmset(id,zitmp,0)
599 iq(lcid+ziftmp) = 2
600 iq(lcid+zid) = idn
601 ntcur = 0
602 GO TO 60
603 ENDIF
604 ENDIF
605 60 IF(iq40.EQ.0)GO TO 80
606 idn=iq41
607 IF(idd.EQ.0)GO TO 10
608 70 CONTINUE
609 80 RETURN
610 END
611
612*-------------------------------------------------------------------------------
613
614 SUBROUTINE hrzin(IXDIV,LBANK,JBIAS,KEYS,ICYCLE,CHOPT)
615 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
616 REAL FENC , HCV
617 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
618 +hcv(4000000-11)
619 INTEGER IQ ,LQ
620 REAL Q
621 dimension iq(2),q(2),lq(8000)
622 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
623 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
624 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
625 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
626 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
627 +lhfit,lfunc,lhfco,lhfna,lcidn
628 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
629 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
630 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
631 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
632 +lhfit,lfunc,lhfco,lhfna,lcidn
633 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
634 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
635 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
636 + kcon1 ,kcon2 ,kbits ,kntot
637 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
638 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
639 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
640 + kcon1=9,kcon2=3,kbits=1,kntot=2)
641 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
642 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
643 + ,ichtyp(mxfiles),ichlun(mxfiles)
644 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
645 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
646 + ,chtop(nlpatm)
647 CHARACTER*(LENHFN) HFNAME
648 COMMON /hcfile/hfname(mxfiles)
649 CHARACTER*128 CHMAIL
650 COMMON /hcmail/chmail
651 common/quest/iquest(100)
652 dimension lbank(1),jbias(1)
653 INTEGER KEYS(2)
654 character*(*)chopt
655 CHARACTER*1 FCHOPT
656 CHARACTER*8 CHOPT1
657 IF(ichtop(icdir).GT.1000)THEN
658 print*, 'CZ option not active','HRZIN',0
659 RETURN
660 ENDIF
661 CALL rzin(ixdiv,lbank,jbias,keys,icycle,chopt)
662 END
663
664*-------------------------------------------------------------------------------
665
666 SUBROUTINE hnoent(IDD,NUMB)
667 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
668 REAL FENC , HCV
669 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
670 +hcv(4000000-11)
671 INTEGER IQ ,LQ
672 REAL Q
673 dimension iq(2),q(2),lq(8000)
674 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
675 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
676 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
677 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
678 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
679 +lhfit,lfunc,lhfco,lhfna,lcidn
680 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
681 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
682 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
683 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
684 +lhfit,lfunc,lhfco,lhfna,lcidn
685 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
686 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
687 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
688 + kcon1 ,kcon2 ,kbits ,kntot
689 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
690 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
691 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
692 + kcon1=9,kcon2=3,kbits=1,kntot=2)
693 COMMON /quest/ iquest(100)
694 CALL hfind(idd,'HNOENT')
695 IF(iquest(1).NE.0)THEN
696 numb=0
697 ELSE
698 i4=jbit(iq(lcid+kbits),4)
699 IF(i4.NE.0)THEN
700 numb=iq(lcid+3)
701 ELSE
702 numb=iq(lcont+knoent)
703 ENDIF
704 ENDIF
705 END
706
707*-------------------------------------------------------------------------------
708
709 SUBROUTINE hgive(IDD,CHTITL,NCX,XMIN,XMAX,NCY,YMIN,YMAX,NWT,IDB)
710 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
711 REAL FENC , HCV
712 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
713 +hcv(4000000-11)
714 INTEGER IQ ,LQ
715 REAL Q
716 dimension iq(2),q(2),lq(8000)
717 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
718 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
719 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
720 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
721 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
722 +lhfit,lfunc,lhfco,lhfna,lcidn
723 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
724 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
725 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
726 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
727 +lhfit,lfunc,lhfco,lhfna,lcidn
728 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
729 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
730 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
731 + kcon1 ,kcon2 ,kbits ,kntot
732 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
733 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
734 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
735 + kcon1=9,kcon2=3,kbits=1,kntot=2)
736 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
737 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
738 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
739 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
740 + zid, zntmp, zntmp1, zlink
741 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
742 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
743 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
744 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
745 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
746 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
747 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
748 + i9, i10, i11, i12, i13, i14, i15, i16,
749 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
750 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
751 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
752 + i9, i10, i11, i12, i13, i14, i15, i16,
753 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
754 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
755 CHARACTER*(*) CHTITL
756 narg=10
757 ncx=0
758 IF(narg.GT.5)ncy=0
759 IF(narg.GT.8)nwt=0
760 IF(narg.GT.9)idb=0
761 CALL hfind(idd,'HGIVE ')
762 IF(lcid.LE.0)GO TO 99
763 CALL hdcofl
764 IF(i4.NE.0)THEN
765 IF (iq(lcid-2) .NE. zlink) THEN
766 ncx = iq(lcid+2)
767 iwt = iq(lcid+9)+lcid
768 nwtit = iq(lcid+8)
769 ELSE
770 ncx = iq(lcid+zndim)
771 iwt = iq(lcid+zitit1)+lcid
772 nwtit = iq(lcid+znwtit)
773 ENDIF
774 xmin=0.
775 xmax=0.
776 ymin=0.
777 ymax=0.
778 ELSE
779 ncx=iq(lcid+kncx)
780 xmin=q(lcid+kxmin)
781 xmax=q(lcid+kxmax)
782 iwt=lcid+ktit1
783 IF(i230.NE.0)THEN
784 IF(narg.GT.5)ncy=iq(lcid+kncy)
785 IF(narg.GT.6)ymin=q(lcid+kymin)
786 IF(narg.GT.7)ymax=q(lcid+kymax)
787 iwt=lcid+ktit2
788 ENDIF
789 nwtit=iq(lcid-1)-iwt+lcid+1
790 ENDIF
791 IF(narg.GT.9)idb=lcid
792 IF(narg.LT.9)GO TO 99
793 nwt=nwtit
794 IF(nwt.EQ.0)GO TO 99
795 nch=len(chtitl)
796 nwch=min(nch,4*nwt)
797 IF(nch.GT.0)chtitl=' '
798 CALL uhtoc(iq(iwt),4,chtitl,nwch)
799 99 RETURN
800 END
801
802*-------------------------------------------------------------------------------
803
804 SUBROUTINE hgiven( ID1, CHTITL, NVAR, TAGS, RLOW, RHIGH )
805 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
806 REAL FENC , HCV
807 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
808 +hcv(4000000-11)
809 INTEGER IQ ,LQ
810 REAL Q
811 dimension iq(2),q(2),lq(8000)
812 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
813 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
814 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
815 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
816 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
817 +lhfit,lfunc,lhfco,lhfna,lcidn
818 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
819 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
820 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
821 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
822 +lhfit,lfunc,lhfco,lhfna,lcidn
823 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
824 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
825 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
826 + kcon1 ,kcon2 ,kbits ,kntot
827 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
828 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
829 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
830 + kcon1=9,kcon2=3,kbits=1,kntot=2)
831 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
832 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
833 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
834 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
835 + zid, zntmp, zntmp1, zlink
836 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
837 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
838 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
839 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
840 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
841 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
842 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
843 + nchar ,nrhist,ierr ,nv
844 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
845 + nchar ,nrhist,ierr ,nv
846 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
847 + i9, i10, i11, i12, i13, i14, i15, i16,
848 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
849 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
850 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
851 + i9, i10, i11, i12, i13, i14, i15, i16,
852 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
853 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
854 CHARACTER*(*) CHTITL, TAGS(*)
855 INTEGER ID1, NVAR
856 REAL RLOW(*), RHIGH(*)
857 CHARACTER*8 BLOCK
858 LOGICAL NTOLD
859 nmax = nvar
860 nvar = 0
861 id = id1
862 idpos = locati(iq(ltab+1),iq(lcdir+knrh),id)
863 IF( idpos.LE.0 ) RETURN
864 idlast = id1
865 lcid = lq(ltab-idpos)
866 i4 = jbit(iq(lcid+kbits),4)
867 IF( i4.EQ.0 ) RETURN
868 IF (iq(lcid-2) .NE. zlink) THEN
869 ntold = .true.
870 ELSE
871 ntold = .false.
872 ENDIF
873 IF (ntold) THEN
874 ndim = iq(lcid+2)
875 llims = lq(lcid-2)
876 itag1 = iq(lcid+10)
877 itit1 = iq(lcid+9)
878 nwtit = iq(lcid+8)
879 ELSE
880 ndim = iq(lcid+zndim)
881 itit1 = iq(lcid+zitit1)
882 nwtit = iq(lcid+znwtit)
883 ENDIF
884 nvar = min(ndim, nmax)
885 nch = len(chtitl)
886 IF (nch .GT. 0) chtitl = ' '
887 nch = min( nch, 4*nwtit )
888 IF (nch .GT. 0) CALL uhtoc( iq(lcid+itit1), 4, chtitl, nch )
889 IF (ntold) THEN
890 nch = len( tags(1) )
891 nch = min( nch, 8 )
892 DO 10 i = 1, nvar
893 IF( nch.GT.0 ) tags(i) = ' '
894 IF( nch.GT.0 )THEN
895 tags(i)=' '
896 CALL uhtoc( iq(lcid+itag1+2*(i-1)), 4, tags(i), nch )
897 ENDIF
898 rlow(i) = q(llims+2*i-1)
899 rhigh(i) = q(llims+2*i)
900 10 CONTINUE
901 ELSE
902 DO 20 i = 1, nvar
903 CALL hntvar(id1, i, tags(i), block, ns, it, is, ie)
904 rlow(i) = 0.0
905 rhigh(i) = 0.0
906 20 CONTINUE
907 ENDIF
908 nvar = ndim
909 END
910
911*-------------------------------------------------------------------------------
912
913 SUBROUTINE hgnpar(IDN,CHROUT)
914 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
915 REAL FENC , HCV
916 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
917 +hcv(4000000-11)
918 INTEGER IQ ,LQ
919 REAL Q
920 dimension iq(2),q(2),lq(8000)
921 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
922 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
923 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
924 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
925 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
926 +lhfit,lfunc,lhfco,lhfna,lcidn
927 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
928 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
929 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
930 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
931 +lhfit,lfunc,lhfco,lhfna,lcidn
932 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
933 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
934 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
935 + kcon1 ,kcon2 ,kbits ,kntot
936 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
937 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
938 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
939 + kcon1=9,kcon2=3,kbits=1,kntot=2)
940 CHARACTER*(*) CHROUT
941 INTEGER KEYS(2)
942 lcidn=0
943 nidn=locati(iq(ltab+1),iq(lcdir+knrh),idn)
944 IF(nidn.LE.0)THEN
945 CALL hrin(idn,9999,0)
946 nidn=locati(iq(ltab+1),iq(lcdir+knrh),idn)
947 IF(nidn.LE.0)THEN
948 print*, 'Unknown N-tuple',chrout,idn
949 RETURN
950 ENDIF
951 ENDIF
952 lcidn=lq(ltab-nidn)
953 i4=jbit(iq(lcidn+kbits),4)
954 IF(i4.EQ.0)THEN
955 print*, 'Not a N-tuple',chrout,idn
956 RETURN
957 ENDIF
958 IF (iq(lcidn-2) .NE. 2) THEN
959 print*,'New N-tuple, this routine works only for old '//
960 + 'N-tuples',chrout,idn
961 RETURN
962 ENDIF
963 nchrz=iq(lcidn+11)
964 IF(nchrz.EQ.0)THEN
965 nmore=iq(lcidn+5)+3-iq(lcidn-3)
966 IF(nmore.GT.0)THEN
967 CALL mzpush(ihdiv,lcidn,nmore,0,' ')
968 lc=lq(lcidn-1)
969 IF(iq(lcidn+5).GE.1)THEN
970 DO 10 ib=1,iq(lcidn+5)
971 lq(lcidn-3-ib)=lc
972 lc=lq(lc)
973 IF(lc.EQ.0)GO TO 999
974 10 CONTINUE
975 ENDIF
976 GO TO 999
977 ENDIF
978 ENDIF
979 lc=lq(lcidn-1)
980 IF(jbit(iq(lc),1).NE.0)THEN
981 CALL sbit0(iq(lc),1)
982 keys(1) = idn
983 keys(2) = 0
984 print*, '>>>>>> HRZOUT'
985****** CALL HRZOUT(IHDIV,LCIDN,KEYS,ICYCLE,' ')
986 ENDIF
987 999 END
988
989*-------------------------------------------------------------------------------
990
991 SUBROUTINE hgnf(IDN,IDNEVT,X,IERROR)
992 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
993 REAL FENC , HCV
994 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
995 +hcv(4000000-11)
996 INTEGER IQ ,LQ
997 REAL Q
998 dimension iq(2),q(2),lq(8000)
999 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1000 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1001 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1002 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1003 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1004 +lhfit,lfunc,lhfco,lhfna,lcidn
1005 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1006 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1007 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1008 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1009 +lhfit,lfunc,lhfco,lhfna,lcidn
1010 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1011 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1012 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1013 + kcon1 ,kcon2 ,kbits ,kntot
1014 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1015 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1016 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1017 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1018 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
1019 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
1020 + ,ichtyp(mxfiles),ichlun(mxfiles)
1021 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
1022 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
1023 + ,chtop(nlpatm)
1024 CHARACTER*(LENHFN) HFNAME
1025 COMMON /hcfile/hfname(mxfiles)
1026 common/quest/iquest(100)
1027 dimension x(*)
1028 INTEGER KEYS(2)
1029 lc=lq(lcidn-1)
1030 nevb=iq(lc-1)/iq(lcidn+2)
1031 ibank=(idnevt-1)/nevb + 1
1032 IF(iq(lcidn+11).EQ.0)THEN
1033 lc=lq(lcidn-3-ibank)
1034 ELSE
1035 IF(iq(lcidn).EQ.ibank.OR.iq(lcidn+6).EQ.0)GO TO 20
1036 IF(ibank.LE.iq(lcidn+6))THEN
1037 lkey=lq(lc)
1038 IF(lkey.GT.0)THEN
1039 keys(1)=iq(lkey+ibank)
1040 CALL hrzin(ihdiv,lcidn,-1,keys,99999,'RS')
1041 ELSE
1042 IF(ichtyp(icdir).EQ.1)THEN
1043 keys(1) = iq(lcidn+5)+10000*ibank
1044 keys(2) = 0
1045 ELSE
1046 keys(1) = iq(lcidn+5)
1047 keys(2) = ibank
1048 ENDIF
1049 CALL hrzin(ihdiv,lcidn,-1,keys,99999,'R')
1050 IF(iquest(1).NE.0)GO TO 90
1051 ENDIF
1052 ELSE
1053 iofset=idn-iq(lcidn+5)
1054 CALL hdelet(idn)
1055 CALL hrin(idn-iofset,99999,iofset)
1056 nidn=locati(iq(ltab+1),iq(lcdir+knrh),idn)
1057 lcidn=lq(ltab-nidn)
1058 ENDIF
1059 lc=lq(lcidn-1)
1060 iq(lcidn)=ibank
1061 ENDIF
1062 20 ierror=0
1063 iad=iq(lcidn+2)*(idnevt-nevb*(ibank-1)-1)
1064 DO 30 i=1,iq(lcidn+2)
1065 x(i)=q(lc+iad+i)
1066 30 CONTINUE
1067 RETURN
1068 90 ierror=1
1069 END
1070
1071*-------------------------------------------------------------------------------
1072
1073 SUBROUTINE hgnt(IDN,IDNEVT,IERROR)
1074 CALL hgnt1(idn, '*', '*', 0, 0, idnevt, ierror)
1075 END
1076
1077*-------------------------------------------------------------------------------
1078
1079 SUBROUTINE hgnt1(IDD,BLKNA1,VAR,IOFFST,NVAR,IDNEVT,IERROR)
1080 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1081 REAL FENC , HCV
1082 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1083 +hcv(4000000-11)
1084 INTEGER IQ ,LQ
1085 REAL Q
1086 dimension iq(2),q(2),lq(8000)
1087 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1088 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1089 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1090 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1091 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1092 +lhfit,lfunc,lhfco,lhfna,lcidn
1093 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1094 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1095 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1096 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1097 +lhfit,lfunc,lhfco,lhfna,lcidn
1098 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1099 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1100 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1101 + kcon1 ,kcon2 ,kbits ,kntot
1102 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1103 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1104 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1105 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1106 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
1107 + nchar ,nrhist,ierr ,nv
1108 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
1109 + nchar ,nrhist,ierr ,nv
1110 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
1111 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
1112 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
1113 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
1114 + zid, zntmp, zntmp1, zlink
1115 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
1116 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
1117 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
1118 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
1119 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
1120 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
1121 COMMON /hntcur/ ntcur
1122 CHARACTER*(*) BLKNA1, VAR(*)
1123 CHARACTER*8 BLKNAM, BLKSAV
1124 INTEGER HNBPTR, IOFFST(*)
1125 LOGICAL ALLBLK
1126 SAVE blksav
1127 DATA blksav /' '/
1128 ierr = 0
1129 ierr1 = 0
1130 ierror = 0
1131 IF (idd.NE.idlast .OR. ntcur.EQ.0) THEN
1132 CALL hparnt(idd,'HGNT')
1133 IF (idd .EQ. 0) GOTO 20
1134 idlast = idd
1135 blksav = ' '
1136 ENDIF
1137 IF (lcid .LE. 0) GOTO 20
1138 CALL hnbufr(idd)
1139 IF (ierr .NE. 0) GOTO 20
1140 ntcur = idd
1141 IF (idnevt .LE. 0) GOTO 20
1142 blknam = blkna1
1143 allblk = .false.
1144 IF (blknam(1:1) .EQ. '*') THEN
1145 allblk = .true.
1146 lblok = lq(lcid-1)
1147 IF (idnevt .GT. iq(lcid+znoent)) GOTO 20
1148 ELSEIF (blksav .NE. blknam) THEN
1149 lblok = hnbptr(blknam)
1150 IF (lblok .EQ. 0) THEN
1151 print*, 'Block does not exist','HGNTB',idd
1152 GOTO 20
1153 ENDIF
1154 blksav = blknam
1155 lq(lcid-8) = lblok
1156 IF (idnevt .GT. iq(lblok+znoent)) GOTO 20
1157 ELSE
1158 lblok = lq(lcid-8)
1159 IF (idnevt .GT. iq(lblok+znoent)) GOTO 20
1160 ENDIF
1161 lchar = lq(lcid-2)
1162 lint = lq(lcid-3)
1163 lreal = lq(lcid-4)
1164 iq(ltmp1+1) = 0
1165 IF (allblk) THEN
1166 10 CALL hgnt2(var, ioffst, nvar, idnevt, ierror)
1167 IF (ierror .NE. 0) ierr1 = 1
1168 lblok = lq(lblok)
1169 IF (lblok .NE. 0) GOTO 10
1170 ELSE
1171 CALL hgnt2(var, ioffst, nvar, idnevt, ierror)
1172 IF (ierror .NE. 0) ierr1 = 1
1173 ENDIF
1174 IF (ierr1 .EQ. 0) THEN
1175 iq(ltmp+1) = idnevt
1176 ELSE
1177 iq(ltmp+1) = 0
1178 ierror = 2
1179 ENDIF
1180 RETURN
1181 20 ierror = 1
1182 END
1183
1184*-------------------------------------------------------------------------------
1185
1186 SUBROUTINE hgnt2(VAR1,IVOFF,NVAR1,IDNEVT,IERROR)
1187 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1188 REAL FENC , HCV
1189 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1190 +hcv(4000000-11)
1191 INTEGER IQ ,LQ
1192 REAL Q
1193 dimension iq(2),q(2),lq(8000)
1194 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1195 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1196 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1197 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1198 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1199 +lhfit,lfunc,lhfco,lhfna,lcidn
1200 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1201 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1202 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1203 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1204 +lhfit,lfunc,lhfco,lhfna,lcidn
1205 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1206 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1207 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1208 + kcon1 ,kcon2 ,kbits ,kntot
1209 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1210 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1211 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1212 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1213 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
1214 + nchar ,nrhist,ierr ,nv
1215 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
1216 + nchar ,nrhist,ierr ,nv
1217 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
1218 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
1219 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
1220 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
1221 + zid, zntmp, zntmp1, zlink
1222 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
1223 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
1224 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
1225 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
1226 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
1227 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
1228 COMMON /hcnt/ ibipw, ibipb, ibypw, ishbit
1229 LOGICAL NRECOV
1230 COMMON /hcrecv/ nrecov
1231 CHARACTER*(*) VAR1(*)
1232 INTEGER IVOFF(*)
1233 CHARACTER*32 VAR
1234 INTEGER ILOGIC, HNMPTR
1235 LOGICAL LOGIC, INDVAR, ALLVAR, USEBUF, CHKOFF
1236 equivalence(logic, ilogic)
1237 ierror = 0
1238 ierr1 = 0
1239 lname = lq(lblok-1)
1240 chkoff = .false.
1241 usebuf = .false.
1242 nvar = nvar1
1243 IF (nvar .LT. 0) THEN
1244 nvar = -nvar
1245 chkoff = .true.
1246 ENDIF
1247 IF (nvar .EQ. 0) THEN
1248 allvar = .true.
1249 ioff = 0
1250 ndim = iq(lblok+zndim)
1251 ELSE
1252 allvar = .false.
1253 ndim = nvar
1254 ENDIF
1255 DO 40 i = 1, ndim
1256 IF (.NOT.allvar) THEN
1257 var = var1(i)
1258 print*, '>>>>>> IOFF = HNMPTR(VAR)'
1259****** IOFF = HNMPTR(VAR)
1260 IF (ioff .LT. 0) GOTO 40
1261 indx = ioff/znaddr + 1
1262 IF (chkoff) THEN
1263 IF (ivoff(i) .NE. 0) THEN
1264 usebuf = .true.
1265 ioffst = ivoff(i)
1266 ELSE
1267 usebuf = .false.
1268 ioffst = 0
1269 ENDIF
1270 ENDIF
1271 ELSE
1272 indx = i
1273 ENDIF
1274 nsub = jbyt(iq(lname+ioff+zdesc), 18, 3)
1275 itype = jbyt(iq(lname+ioff+zdesc), 14, 4)
1276 isize = jbyt(iq(lname+ioff+zdesc), 8, 6)
1277 nbits = jbyt(iq(lname+ioff+zdesc), 1, 7)
1278 indvar = .false.
1279 IF (jbit(iq(lname+ioff+zdesc),28) .EQ. 1) indvar = .true.
1280 IF (.NOT.nrecov .AND. iq(lname+ioff+znaddr).EQ.0) GOTO 35
1281 IF (itype .EQ. 5) THEN
1282 nbits = ibipb*isize
1283 mxby = ishft(isize,-2)
1284 mxby1 = mxby
1285 IF (jbit(iq(lq(lcid-1)),3) .NE. 0) mxby1 = 8
1286 ENDIF
1287 IF (iq(lname+ioff+zitmp) .EQ. 0) THEN
1288 iq(lname+ioff+zitmp) = iq(lcid+ziftmp)
1289 iq(lcid+ziftmp) = iq(lcid+ziftmp) + zntmp
1290 ENDIF
1291 itmp = iq(lname+ioff+zitmp)
1292 iedif = 0
1293 ielem = 1
1294 nelem = 1
1295 inevt = idnevt
1296 DO 10 j = 1, nsub
1297 lp = iq(lint+iq(lname+ioff+zarind)+(j-1))
1298 IF (lp .LT. 0) THEN
1299 ielem = ielem*(-lp)
1300 nelem = ielem
1301 ELSE
1302 IF (iq(lname+lp-1+znaddr) .EQ. 0) THEN
1303 print*,'Address of index variable not set',
1304 + 'HGNT',id
1305 GOTO 35
1306 ENDIF
1307 ll = iq(lname+lp-1+zrange)
1308 iemax = ielem*iq(lint+ll+1)
1309 iptmp = iq(lname+lp-1+zitmp)
1310 inevt = (iq(ltmp+iptmp+4) * ielem) + 1
1311 ielem = ielem*iq(ltmp+iptmp+5)
1312 nelem = 1
1313 iedif = iemax - ielem
1314 ENDIF
1315 10 CONTINUE
1316 lcind = iq(lname+ioff+zlcont)
1317 lrecl = iabs(iq(lcid+znprim)) - 1
1318 IF (iq(ltmp+1).NE.0 .AND. idnevt.EQ.iq(ltmp+1)+1) THEN
1319 ibank = iq(ltmp+itmp)
1320 ifirst = iq(ltmp+itmp+1)
1321 nb = iq(ltmp+itmp+2)
1322 nleft = iq(ltmp+itmp+3)
1323 ELSE
1324 ib = nbits
1325 nw = 1
1326 IF (isize .GT. ibypw) THEN
1327 nw = isize/ibypw
1328 ib = nbits/nw
1329 ENDIF
1330 ipw = ibipw/ib
1331 nwrd = (inevt-1)*nelem*nw/ipw
1332 ibank = nwrd/lrecl + 1
1333 ifirst = mod(nwrd+2, lrecl)
1334 IF (ifirst .EQ. 0) ifirst = lrecl
1335 IF (ifirst .EQ. 1) ifirst = lrecl + 1
1336 nb = (inevt-1)*nelem*nw*ib - nwrd*ib*ipw
1337 nleft = lrecl - ifirst + 2
1338 nleft = nleft*ibipw - nb
1339 ENDIF
1340 IF (ielem .GT. 0) THEN
1341 IF (iq(lname+ioff+zibank) .EQ. ibank) THEN
1342 lr2 = lq(lname-indx)
1343 ELSE
1344 CALL hntrd(indx, ioff, ibank, ier)
1345 IF (ier .NE. 0) THEN
1346 ierr1 = 1
1347 GOTO 32
1348 ENDIF
1349 ENDIF
1350 ENDIF
1351 DO 30 j = 1, ielem
1352 im = iand(nb, ibipw-1)
1353 IF (im.NE.0 .AND. nbits.GT.ibipw-im) THEN
1354 nb = 0
1355 nleft = nleft - ibipw+im
1356 ifirst = ifirst + 1
1357 ENDIF
1358 IF (nbits .GT. nleft) THEN
1359 ibank = ibank + 1
1360 CALL hntrd(indx, ioff, ibank, ier)
1361 IF (ier .NE. 0) THEN
1362 ierr1 = 1
1363 GOTO 32
1364 ENDIF
1365 nb = 0
1366 nleft = lrecl*ibipw
1367 ifirst = 2
1368 ENDIF
1369 IF (nrecov .AND. .NOT.indvar) GOTO 25
1370 IF (itype .EQ. 1) THEN
1371 IF (isize .EQ. 4) THEN
1372 IF (nbits .EQ. 32) THEN
1373 IF (usebuf) THEN
1374 q(ioffst+1) = q(lr2+ifirst)
1375 ELSE
1376 q(iq(lname+ioff+znaddr)+j) = q(lr2+ifirst)
1377 ENDIF
1378 ELSE
1379 rmin = q(lreal+iq(lname+ioff+zrange))
1380 rmax = q(lreal+iq(lname+ioff+zrange)+1)
1381 ipack = jbyt(iq(lr2+ifirst), nb+1, nbits)
1382 IF (usebuf) THEN
1383 q(ioffst+1) = ipack *
1384 + (rmax - rmin)/(ishft(1,nbits)-1) + rmin
1385 ELSE
1386 q(iq(lname+ioff+znaddr)+j) = ipack *
1387 + (rmax - rmin)/(ishft(1,nbits)-1) + rmin
1388 ENDIF
1389 ENDIF
1390 ELSEIF (isize .EQ. 8) THEN
1391 IF (nbits .EQ. 64) THEN
1392 IF (usebuf) THEN
1393 q(ioffst+1) = q(lr2+ifirst+1)
1394 q(ioffst+2) = q(lr2+ifirst)
1395 ELSE
1396 q(iq(lname+ioff+znaddr)+2*j-1) = q(lr2+ifirst+1)
1397 q(iq(lname+ioff+znaddr)+2*j) = q(lr2+ifirst)
1398 ENDIF
1399 ELSE
1400 ENDIF
1401 ENDIF
1402 ELSEIF (itype .EQ. 2) THEN
1403 IF (isize .EQ. 2) THEN
1404
1405 ELSEIF (isize .EQ. 4) THEN
1406 IF (indvar) THEN
1407 IF (usebuf) THEN
1408 iq(ioffst+1) = iq(lr2+ifirst) -
1409 + iq(lr2+ifirst-1)
1410 iq(ltmp+itmp+5) = iq(ioffst+1)
1411 ELSE
1412 iq(iq(lname+ioff+znaddr)+j) = iq(lr2+ifirst) -
1413 + iq(lr2+ifirst-1)
1414 iq(ltmp+itmp+5) = iq(iq(lname+ioff+znaddr)+j)
1415 ENDIF
1416 iq(ltmp+itmp+4) = iq(lr2+ifirst-1)
1417 ELSEIF (nbits .EQ. 32) THEN
1418 IF (usebuf) THEN
1419 iq(ioffst+1) = iq(lr2+ifirst)
1420 ELSE
1421 iq(iq(lname+ioff+znaddr)+j) = iq(lr2+ifirst)
1422 ENDIF
1423 ELSE
1424 IF (jbit(iq(lr2+ifirst), nb+nbits) .EQ. 1) THEN
1425 IF (usebuf) THEN
1426 iq(ioffst+1) =
1427 + -jbyt(iq(lr2+ifirst), nb+1, nbits-1)
1428 ELSE
1429 iq(iq(lname+ioff+znaddr)+j) =
1430 + -jbyt(iq(lr2+ifirst), nb+1, nbits-1)
1431 ENDIF
1432 ELSE
1433 IF (usebuf) THEN
1434 iq(ioffst+1) =
1435 + jbyt(iq(lr2+ifirst), nb+1, nbits-1)
1436 ELSE
1437 iq(iq(lname+ioff+znaddr)+j) =
1438 + jbyt(iq(lr2+ifirst), nb+1, nbits-1)
1439 ENDIF
1440 ENDIF
1441 ENDIF
1442 ELSEIF (isize .EQ. 8) THEN
1443 IF (nbits .EQ. 64) THEN
1444 IF (usebuf) THEN
1445 iq(ioffst+1) = iq(lr2+ifirst)
1446 iq(ioffst+2) = iq(lr2+ifirst+1)
1447 ELSE
1448 iq(iq(lname+ioff+znaddr)+2*j-1)=iq(lr2+ifirst)
1449 iq(iq(lname+ioff+znaddr)+2*j)=iq(lr2+ifirst+1)
1450 ENDIF
1451 ELSE
1452 ENDIF
1453 ENDIF
1454 ELSEIF (itype .EQ. 3) THEN
1455 IF (isize .EQ. 2) THEN
1456
1457 ELSEIF (isize .EQ. 4) THEN
1458 IF (nbits .EQ. 32) THEN
1459 IF (usebuf) THEN
1460 iq(ioffst+1) = iq(lr2+ifirst)
1461 ELSE
1462 iq(iq(lname+ioff+znaddr)+j) = iq(lr2+ifirst)
1463 ENDIF
1464 ELSE
1465 IF (usebuf) THEN
1466 iq(ioffst+1) =
1467 + jbyt(iq(lr2+ifirst), nb+1, nbits)
1468 ELSE
1469 iq(iq(lname+ioff+znaddr)+j) =
1470 + jbyt(iq(lr2+ifirst), nb+1, nbits)
1471 ENDIF
1472 ENDIF
1473 ELSEIF (isize .EQ. 8) THEN
1474 IF (nbits .EQ. 64) THEN
1475 IF (usebuf) THEN
1476 iq(ioffst+1)=iq(lr2+ifirst)
1477 iq(ioffst+2)=iq(lr2+ifirst+1)
1478 ELSE
1479 iq(iq(lname+ioff+znaddr)+2*j-1)=iq(lr2+ifirst)
1480 iq(iq(lname+ioff+znaddr)+2*j)=iq(lr2+ifirst+1)
1481 ENDIF
1482 ELSE
1483 ENDIF
1484 ENDIF
1485 ELSEIF (itype .EQ. 4) THEN
1486 IF (isize .EQ. 1) THEN
1487
1488 ELSEIF (isize .EQ. 2) THEN
1489
1490 ELSEIF (isize .EQ. 4) THEN
1491 ilogi = jbyt(iq(lr2+ifirst), nb+1, nbits)
1492 IF (ilogi .EQ. 1) THEN
1493 logic = .true.
1494 ELSE
1495 logic = .false.
1496 ENDIF
1497 IF (usebuf) THEN
1498 iq(ioffst+1) = ilogic
1499 ELSE
1500 iq(iq(lname+ioff+znaddr)+j) = ilogic
1501 ENDIF
1502 ENDIF
1503 ELSEIF (itype .EQ. 5) THEN
1504 IF (usebuf) THEN
1505 CALL hrzfra(iq(lr2+ifirst),iq(ioffst+1),mxby)
1506 ELSE
1507 CALL hrzfra(iq(lr2+ifirst),
1508 + iq(iq(lname+ioff+znaddr)+mxby1*(j-1)+1),
1509 + mxby)
1510 ENDIF
1511 ENDIF
1512 25 nb = nb + nbits
1513 IF (ishbit .NE. 0) THEN
1514 ifirst = ifirst + ishft(nb,-ishbit)
1515 ELSE
1516 ifirst = ifirst + nb/ibipw
1517 ENDIF
1518 nb = iand(nb, ibipw-1)
1519 nleft = nleft - nbits
1520 IF (usebuf) ioffst = ioffst + ishft(isize,-2)
1521 30 CONTINUE
1522 iq(ltmp+itmp) = ibank
1523 iq(ltmp+itmp+1) = ifirst
1524 iq(ltmp+itmp+2) = nb
1525 iq(ltmp+itmp+3) = nleft
1526 32 iq(ltmp1+1) = iq(ltmp1+1) + 1
1527 jtmp = zntmp1*(iq(ltmp1+1)-1) + 2
1528 iq(ltmp1+jtmp) = indx
1529 iq(ltmp1+jtmp+1) = ioff
1530 IF (usebuf) THEN
1531 IF (iedif .EQ. 0) THEN
1532 iq(ltmp1+jtmp+2) = ioffst
1533 ELSE
1534 iq(ltmp1+jtmp+2) = ioffst + (iedif*ishft(isize,-2))
1535 ENDIF
1536 ELSE
1537 iq(ltmp1+jtmp+2) = 0
1538 ENDIF
1539 lq(ltmp1-iq(ltmp1+1)) = lblok
1540 35 ioff = ioff + znaddr
1541 40 CONTINUE
1542 IF (ierr1 .NE. 0) THEN
1543 ierror = 1
1544 ENDIF
1545 END
1546
1547*-------------------------------------------------------------------------------
1548
1549 SUBROUTINE hdcofl
1550 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1551 REAL FENC , HCV
1552 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1553 +hcv(4000000-11)
1554 INTEGER IQ ,LQ
1555 REAL Q
1556 dimension iq(2),q(2),lq(8000)
1557 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1558 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1559 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1560 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1561 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1562 +lhfit,lfunc,lhfco,lhfna,lcidn
1563 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1564 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1565 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1566 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1567 +lhfit,lfunc,lhfco,lhfna,lcidn
1568 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1569 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1570 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1571 + kcon1 ,kcon2 ,kbits ,kntot
1572 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1573 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1574 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1575 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1576 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
1577 + i9, i10, i11, i12, i13, i14, i15, i16,
1578 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
1579 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
1580 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
1581 + i9, i10, i11, i12, i13, i14, i15, i16,
1582 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
1583 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
1584 dimension iflag(37)
1585 equivalence(iflag(1),i1)
1586 IF(iq(lcid-2).NE.0)THEN
1587 DO 10 j=1,31
1588 10 iflag(j)=jbit(iq(lcid+kbits),j)
1589 ELSE
1590 CALL vzero(iflag,31)
1591 ENDIF
1592 i230=i2+i3
1593 i123= i1+i230
1594 END
1595
1596*-------------------------------------------------------------------------------
1597
1598 SUBROUTINE hdelet(ID1)
1599 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1600 REAL FENC , HCV
1601 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1602 +hcv(4000000-11)
1603 INTEGER IQ ,LQ
1604 REAL Q
1605 dimension iq(2),q(2),lq(8000)
1606 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1607 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1608 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1609 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1610 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1611 +lhfit,lfunc,lhfco,lhfna,lcidn
1612 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1613 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1614 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1615 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1616 +lhfit,lfunc,lhfco,lhfna,lcidn
1617 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1618 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1619 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1620 + kcon1 ,kcon2 ,kbits ,kntot
1621 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1622 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1623 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1624 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1625 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
1626 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
1627 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
1628 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
1629 + zid, zntmp, zntmp1, zlink
1630 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
1631 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
1632 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
1633 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
1634 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
1635 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
1636 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
1637 + nchar ,nrhist,ierr ,nv
1638 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
1639 + nchar ,nrhist,ierr ,nv
1640 IF(lcdir.LE.0)GO TO 999
1641 IF(id1.EQ.0)GO TO 120
1642 id=id1
1643 idpos=locati(iq(ltab+1),iq(lcdir+knrh),id)
1644 IF(idpos.LE.0)THEN
1645 print*, 'Unknown histogram','HDELET',id1
1646 GO TO 999
1647 ENDIF
1648 lcid=lq(ltab-idpos)
1649 IF (jbit(iq(lcid+kbits),4).NE.0 .AND. iq(lcid-2).EQ.zlink) THEN
1650 CALL hnbufd(id1)
1651 ENDIF
1652 CALL mzdrop(ihdiv,lcid,' ')
1653 lids=lq(lcdir-2)
1654 lq(ltab-idpos)=0
1655 nrhist=iq(lcdir+knrh)
1656 DO 10 i=idpos,nrhist-1
1657 iq(ltab+i)=iq(ltab+i+1)
1658 lq(ltab-i)=lq(ltab-i-1)
1659 10 CONTINUE
1660 iq(lcdir+knrh)=nrhist-1
1661 nrhist=iq(lcdir+knrh)
1662 IF(lq(lcdir-9).EQ.lcid)THEN
1663 lref=0
1664 lcid=lids
1665 20 IF(lcid.NE.0)THEN
1666 lref=lcid
1667 lcid=lq(lcid)
1668 GO TO 20
1669 ENDIF
1670 lq(lcdir-9)=lref
1671 ENDIF
1672 GO TO 999
1673 120 IF(lids .GT. 0) THEN
1674 CALL hnbufd(0)
1675 CALL mzdrop(ihdiv,lids ,'L')
1676 ENDIF
1677 nrhist=iq(lcdir+knrh)
1678 IF(nrhist.GT.0.AND.ltab.GT.0)THEN
1679 CALL vzero(lq(ltab-nrhist),nrhist)
1680 ENDIF
1681 iq(lcdir+knrh)=0
1682 lq(lcdir-2)=0
1683 lq(lcdir-9)=0
1684 lids=0
1685 llid=0
1686 nrhist=0
1687 999 idlast=0
1688 idhold=0
1689 lid =0
1690 END
1691
1692*-------------------------------------------------------------------------------
1693
1694 SUBROUTINE hbnam(IDD, BLKNA1, ADDRES, FORM1, ISCHAR)
1695 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1696 REAL FENC , HCV
1697 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1698 +hcv(4000000-11)
1699 INTEGER IQ ,LQ
1700 REAL Q
1701 dimension iq(2),q(2),lq(8000)
1702 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1703 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1704 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1705 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1706 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1707 +lhfit,lfunc,lhfco,lhfna,lcidn
1708 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1709 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1710 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1711 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1712 +lhfit,lfunc,lhfco,lhfna,lcidn
1713 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1714 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1715 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1716 + kcon1 ,kcon2 ,kbits ,kntot
1717 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1718 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1719 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1720 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1721 common/hcform/iodir,ioh1,ioh2,iohn,iocf1,iocf2,iocb1,iocb2,
1722 + iocf4,iofit,iont,iobl,iocc
1723 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
1724 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
1725 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
1726 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
1727 + zid, zntmp, zntmp1, zlink
1728 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
1729 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
1730 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
1731 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
1732 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
1733 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
1734 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
1735 + nchar ,nrhist,ierr ,nv
1736 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
1737 + nchar ,nrhist,ierr ,nv
1738 INTEGER IDD, ADDRES, HNBPTR
1739 CHARACTER*(*) BLKNA1, FORM1
1740 parameter(maxtok = 50)
1741 CHARACTER*8 BLKNAM
1742 CHARACTER*40 SFORM
1743 CHARACTER*80 TOK(MAXTOK)
1744 CHARACTER*1300 FORM
1745 LOGICAL ISCHAR
1746 IF (idd .NE. idlast) THEN
1747 id = idd
1748 idpos = locati(iq(ltab+1),iq(lcdir+knrh),id)
1749 IF (idpos .LE. 0) THEN
1750 print*, 'nTuple does not exist.','HBNAME',idd
1751 RETURN
1752 ENDIF
1753 idlast = id
1754 lcid = lq(ltab-idpos)
1755 i4 = jbit(iq(lcid+kbits),4)
1756 IF (i4 .EQ. 0) RETURN
1757 IF (iq(lcid-2) .NE. zlink) THEN
1758 print*,'HBNAME cannot be used for Row-wise nTuples',
1759 + 'HBNAME',idd
1760 RETURN
1761 ENDIF
1762 ENDIF
1763 blknam = blkna1
1764 IF (lenocc(blkna1) .GT. len(blknam)) THEN
1765 print *, '*** Warning: Block name truncated to: ', blknam
1766 ENDIF
1767 CALL cltou(blknam)
1768 IF (lenocc(form1) .GT. len(form)) THEN
1769 print*, 'CHFORM string too long','HBNAME',idd
1770 RETURN
1771 ENDIF
1772 form = form1
1773 iadd = addres
1774 lblok = lq(lcid-1)
1775 lchar = lq(lcid-2)
1776 lint = lq(lcid-3)
1777 lreal = lq(lcid-4)
1778 sform = form
1779 CALL cltou(sform)
1780 IF (sform(1:6) .EQ. '$CLEAR') THEN
1781 CALL hnmset(idd, znaddr, 0)
1782 CALL sbit0(iq(lblok),3)
1783 RETURN
1784 ELSEIF (sform(1:4).EQ.'$SET' .OR. sform(1:4).EQ.'!SET') THEN
1785 IF (sform(1:1) .EQ. '!') CALL sbit1(iq(lblok),3)
1786 lblok = hnbptr(blknam)
1787 IF (lblok .EQ. 0) THEN
1788 print*, 'Unknown block '//blknam,'HBNAME',idd
1789 RETURN
1790 ENDIF
1791 lname = lq(lblok-1)
1792 lsf = lenocc(sform)
1793 i = index(sform,':')
1794 IF (i.GT.0 .AND. lsf.GT.5) THEN
1795 CALL hnmadr(sform(i+1:lsf), iadd, ischar)
1796 ELSE
1797 CALL hnmadr('*', iadd, ischar)
1798 ENDIF
1799 RETURN
1800 ENDIF
1801 print*, '>>>>>> Should not be here when called from h2root'
1802 END
1803
1804*-------------------------------------------------------------------------------
1805
1806 FUNCTION hi(IDD,I)
1807 CALL hfind(idd,'HI ')
1808 hi=hcx(i,1)
1809 END
1810
1811*-------------------------------------------------------------------------------
1812
1813 FUNCTION hie(IDD,I)
1814 INTEGER nwpaw,ixpawc,ihdiv,ixhigz,ixku, lmain
1815 REAL fenc , hcv
1816 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1817 +hcv(4000000-11)
1818 INTEGER iq ,lq
1819 REAL q
1820 dimension iq(2),q(2),lq(8000)
1821 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1822 INTEGER hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1823 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1824 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1825 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1826 +lhfit,lfunc,lhfco,lhfna,lcidn
1827 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1828 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1829 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1830 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1831 +lhfit,lfunc,lhfco,lhfna,lcidn
1832 INTEGER kncx ,kxmin ,kxmax ,kmin1 ,kmax1 ,knorm , ktit1,
1833 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1834 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1835 + kcon1 ,kcon2 ,kbits ,kntot
1836 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1837 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1838 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1839 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1840 CALL hfind(idd,'HIE ')
1841 IF(jbit(iq(lcid+kbits),9).NE.0)THEN
1842 hie=hcx(i,2)
1843 ELSE
1844 res=abs(hcx(i,1))
1845 hie=sqrt(res)
1846 ENDIF
1847 END
1848
1849*-------------------------------------------------------------------------------
1850
1851 FUNCTION hif(IDD,I)
1852 CALL hfind(idd,'HIF ')
1853 hif=hcx(i,3)
1854 END
1855
1856*-------------------------------------------------------------------------------
1857
1858 FUNCTION hij(IDD,I,J)
1859 CALL hfind(idd,'HIJ ')
1860 hij=hcxy(i,j,1)
1861 END
1862
1863*-------------------------------------------------------------------------------
1864
1865 SUBROUTINE hix(IDD,I,X)
1866 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1867 REAL FENC , HCV
1868 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1869 +hcv(4000000-11)
1870 INTEGER IQ ,LQ
1871 REAL Q
1872 dimension iq(2),q(2),lq(8000)
1873 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1874 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1875 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1876 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1877 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1878 +lhfit,lfunc,lhfco,lhfna,lcidn
1879 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1880 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1881 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1882 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1883 +lhfit,lfunc,lhfco,lhfna,lcidn
1884 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1885 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1886 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1887 + kcon1 ,kcon2 ,kbits ,kntot
1888 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1889 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1890 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1891 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1892 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
1893 + i9, i10, i11, i12, i13, i14, i15, i16,
1894 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
1895 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
1896 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
1897 + i9, i10, i11, i12, i13, i14, i15, i16,
1898 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
1899 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
1900 CALL hfind(idd,'HIX ')
1901 CALL hdcofl
1902 IF(i6.EQ.0)THEN
1903 dx=(q(lcid+kxmax)-q(lcid+kxmin))/float(iq(lcid+kncx))
1904 x=float(i-1)*dx+q(lcid+kxmin)
1905 ELSE
1906 lbins=lq(lcid-2)
1907 x=q(lbins+i)
1908 ENDIF
1909 END
1910
1911*-------------------------------------------------------------------------------
1912
1913 SUBROUTINE hijxy(IDD,I,J,X,Y)
1914 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1915 REAL FENC , HCV
1916 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1917 +hcv(4000000-11)
1918 INTEGER IQ ,LQ
1919 REAL Q
1920 dimension iq(2),q(2),lq(8000)
1921 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1922 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1923 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1924 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1925 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1926 +lhfit,lfunc,lhfco,lhfna,lcidn
1927 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1928 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1929 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1930 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1931 +lhfit,lfunc,lhfco,lhfna,lcidn
1932 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1933 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1934 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1935 + kcon1 ,kcon2 ,kbits ,kntot
1936 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1937 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1938 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1939 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1940 CALL hfind(idd,'HIJXY ')
1941 dx=(q(lcid+kxmax)-q(lcid+kxmin))/float(iq(lcid+kncx))
1942 dy=(q(lcid+kymax)-q(lcid+kymin))/float(iq(lcid+kncy))
1943 x=float(i-1)*dx+q(lcid+kxmin)
1944 y=float(j-1)*dy+q(lcid+kymin)
1945 END
1946
1947*-------------------------------------------------------------------------------
1948
1949 FUNCTION hije(IDD,I,J)
1950 CALL hfind(idd,'HIJE ')
1951 hije=hcxy(i,j,2)
1952 END
1953
1954*-------------------------------------------------------------------------------
1955
1956 SUBROUTINE hcdir(CHPATH,CHOPT)
1957 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
1958 REAL FENC , HCV
1959 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
1960 +hcv(4000000-11)
1961 INTEGER IQ ,LQ
1962 REAL Q
1963 dimension iq(2),q(2),lq(8000)
1964 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
1965 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
1966 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1967 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1968 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
1969 +lhfit,lfunc,lhfco,lhfna,lcidn
1970 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
1971 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
1972 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
1973 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
1974 +lhfit,lfunc,lhfco,lhfna,lcidn
1975 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
1976 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
1977 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
1978 + kcon1 ,kcon2 ,kbits ,kntot
1979 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
1980 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
1981 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
1982 + kcon1=9,kcon2=3,kbits=1,kntot=2)
1983 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
1984 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
1985 + ,ichtyp(mxfiles),ichlun(mxfiles)
1986 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
1987 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
1988 + ,chtop(nlpatm)
1989 CHARACTER*(LENHFN) HFNAME
1990 COMMON /hcfile/hfname(mxfiles)
1991 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
1992 + nchar ,nrhist,ierr ,nv
1993 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
1994 + nchar ,nrhist,ierr ,nv
1995 INTEGER LOUT,LERR,LINFIT
1996 common/hcunit/lout,lerr,linfit
1997 CHARACTER*128 CHMAIL
1998 COMMON /hcmail/chmail
1999 common/quest/iquest(100)
2000 CHARACTER*2 NODIR
2001 parameter(nodir = '@#')
2002 CHARACTER*128 CHAIN, CACHE
2003 dimension ioptv(2),ihdir(4)
2004 equivalence(ioptr,ioptv(1)), (ioptp,ioptv(2))
2005 CHARACTER*(*) CHPATH,CHOPT
2006 SAVE cache
2007 DATA cache /nodir/
2008 IF(lhbook.EQ.0)GO TO 99
2009 CALL huoptc (chopt,'RP',ioptv)
2010 IF(ioptr.NE.0)THEN
2011 CALL hpaff(chcdir,nlcdir,chpath)
2012 GO TO 99
2013 ENDIF
2014 IF(ioptp.NE.0)THEN
2015 CALL hpaff(chcdir,nlcdir,chmail)
2016 WRITE(lout,1000)chmail(1:90)
2017 1000 FORMAT(' Current Working Directory = ',a)
2018 GO TO 99
2019 ENDIF
2020 iquest(1)=0
2021 IF(chpath(1:1).EQ.'.')THEN
2022 CALL hpath(' ')
2023 ELSE
2024 CALL hpath(chpath)
2025 ENDIF
2026 IF(nlpat.LE.0)GO TO 99
2027 icdold=icdir
2028 icdir=1
2029 DO 10 i=1,nchtop
2030 IF(chpat(1).EQ.chtop(i))THEN
2031 icdir=i
2032 IF(ichtop(i).GT.0)THEN
2033 IF (ichtop(i).GT.200 .AND. ichtop(i).LT.300) THEN
2034 print*, .GT.'>>>>>> HCDIR: ICHTOP(I)200'
2035 ELSE
2036 IF(chpath(1:1).EQ.'.')THEN
2037 CALL hrzcd(' ',chopt)
2038 ELSE
2039 CALL hrzcd(chpath,chopt)
2040 ENDIF
2041 ENDIF
2042 IF(iquest(1).NE.0)THEN
2043 icdir=icdold
2044 GO TO 99
2045 ENDIF
2046 GO TO 60
2047 ELSEIF(ichtop(i).LT.0)THEN
2048 GO TO 60
2049 ENDIF
2050 GO TO 20
2051 ENDIF
2052 10 CONTINUE
2053 icdir=icdold
2054 GO TO 90
2055 20 lr1 = lhbook
2056 IF(nlpat.GT.1)THEN
2057 DO 50 il=2,nlpat
2058 CALL uctoh(chpat(il),ihdir,4,16)
2059 lr1=lq(lr1-1)
2060 30 IF(lr1.EQ.0)GO TO 90
2061 DO 40 i=1,4
2062 IF(ihdir(i).NE.iq(lr1+i))THEN
2063 lr1=lq(lr1)
2064 GO TO 30
2065 ENDIF
2066 40 CONTINUE
2067 50 CONTINUE
2068 ENDIF
2069 60 nlcdir= nlpat
2070 DO 70 i=1,nlpat
2071 chcdir(i)=chpat(i)
2072 70 CONTINUE
2073 IF(ichtop(icdir).EQ.0)THEN
2074 lcdir = lr1
2075 lid = 0
2076 ENDIF
2077 idlast= 0
2078 idhold= 0
2079 lids = lq(lcdir-2)
2080 ltab = lq(lcdir-3)
2081 lbufm = lq(lcdir-4)
2082 ltmpm = lq(lcdir-5)
2083 iquest(1)=0
2084 GO TO 99
2085 90 CALL hpaff(chpat,nlpat,chmail)
2086 iquest(1)=1
2087 WRITE(lout,2000)chmail(1:90)
2088 2000 FORMAT(' HCDIR. UNKNOWN DIRECTORY ',a)
2089 99 RETURN
2090 END
2091
2092*-------------------------------------------------------------------------------
2093
2094 SUBROUTINE hmachi
2095 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2096 REAL FENC , HCV
2097 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2098 +hcv(4000000-11)
2099 INTEGER IQ ,LQ
2100 REAL Q
2101 dimension iq(2),q(2),lq(8000)
2102 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2103 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2104 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2105 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2106 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2107 +lhfit,lfunc,lhfco,lhfna,lcidn
2108 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2109 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2110 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2111 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2112 +lhfit,lfunc,lhfco,lhfna,lcidn
2113 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2114 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2115 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2116 + kcon1 ,kcon2 ,kbits ,kntot
2117 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2118 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2119 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2120 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2121 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
2122 + nchar ,nrhist,ierr ,nv
2123 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
2124 + nchar ,nrhist,ierr ,nv
2125 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
2126 + i9, i10, i11, i12, i13, i14, i15, i16,
2127 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
2128 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
2129 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
2130 + i9, i10, i11, i12, i13, i14, i15, i16,
2131 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
2132 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
2133 INTEGER LOUT,LERR,LINFIT
2134 common/hcunit/lout,lerr,linfit
2135 INTEGER IFW ,NW ,NB ,IH ,NHT ,ICN ,IPONCE,
2136 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2137 + ksquez,ncolma,ncolpa,nlinpa, icblac,icstar,icfunc,
2138 + idg(42),maxbit(30),ident(9)
2139 REAL BIGP
2140 common/hcprin/ifw ,nw ,nb ,ih ,nht ,icn ,iponce,
2141 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2142 + ksquez,ncolma,ncolpa,nlinpa,bigp ,icblac,icstar,icfunc,
2143 + idg ,maxbit,ident
2144 COMMON /hcnt/ ibipw, ibipb, ibypw, ishbit
2145 COMMON /hcset/ ibsize
2146 LOGICAL NRECOV
2147 COMMON /hcrecv/ nrecov
2148 parameter(mbit=32,mbitch=8,mout=6,hmbigp=1.e+30)
2149 CHARACTER*1 IDGTDA(42)
2150 CHARACTER*4 IPROJ(9)
2151 SAVE idgtda,iproj
2152 DATA idgtda/'0','1','2','3','4','5','6','7','8','9',
2153 + 'A','B','C','D','E','F','G','H','I','J',
2154 + 'K','L','M','N','O','P','Q','R','S','T',
2155 + 'U','V','W','X','Y','Z','*','.','-','+',
2156 + ' ','/'/
2157 DATA iproj/'HIST','HIST','PROX','PROY','SLIX',
2158 + 'SLIY','BANX','BANY','FUNC'/
2159 hversn = 1.00
2160 nbit = mbit
2161 nbitch = mbitch
2162 linfit = 5
2163 lout = mout
2164 bigp = hmbigp
2165 lerr = lout
2166 nht = 1
2167 mstep = 1
2168 nold = 4
2169 nchar = nbit/nbitch
2170 ncolpa = 128
2171 ncolma = 100
2172 nlinpa = 61
2173 idhold = 0
2174 idlast = 0
2175 nv = 2
2176 kbinsz = 0
2177 ksquez = 0
2178 lid = 0
2179 nrhist = 0
2180 ierr = 0
2181 ih = 0
2182 nh = 0
2183 iponce = 0
2184 CALL vzero(i1,37)
2185 k = (nbit+1)/2
2186 maxbit(1) = 2
2187 DO 10 i=2,k
2188 maxbit(i) = maxbit(i-1)*2
2189 maxbit(i-1) = maxbit(i-1)-1
2190 10 CONTINUE
2191 maxbit(k) = maxbit(k)-1
2192 CALL vblank(idg,42)
2193 CALL uctoh(idgtda,idg,1,42)
2194 icstar = idg(37)
2195 icblac = idg(34)
2196 icfunc = idg(37)
2197 CALL uctoh(iproj,ident,4,36)
2198 CALL uctoh('NO ',ino,4,4)
2199 l2 = 1
2200 CALL uctoh('$ ',idol,4,4)
2201 idolar = jbyt(idol,l2,nbitch)
2202 iblanc = jbyt(idg(41),l2,nbitch)
2203 nrecov = .false.
2204 ibsize = 1009
2205 ibipw = mbit
2206 ibipb = mbitch
2207 ibypw = nchar
2208 ishbit = 0
2209 DO 20 i = 1, 10
2210 IF (2**i .EQ. ibipw) THEN
2211 ishbit = i
2212 ENDIF
2213 20 CONTINUE
2214 END
2215
2216*-------------------------------------------------------------------------------
2217
2218 FUNCTION hcx(ICX,IOPT)
2219 INTEGER nwpaw,ixpawc,ihdiv,IXHIGZ,ixku, lmain
2220 REAL fenc , hcv
2221 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2222 +hcv(4000000-11)
2223 INTEGER iq ,lq
2224 REAL q
2225 dimension iq(2),q(2),lq(8000)
2226 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2227 INTEGER hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2228 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2229 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2230 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2231 +lhfit,lfunc,lhfco,lhfna,lcidn
2232 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2233 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2234 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2235 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2236 +lhfit,lfunc,lhfco,lhfna,lcidn
2237 INTEGER kncx ,kxmin ,kxmax ,kmin1 ,KMAX1 ,knorm , ktit1,
2238 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2239 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2240 + kcon1 ,kcon2 ,kbits ,kntot
2241 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2242 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2243 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2244 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2245 INTEGER ifw ,nw ,nb ,ih ,nht ,icn ,iponce,
2246 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2247 + ksquez,ncolma,ncolpa,nlinpa, icblac,icstar,icfunc,
2248 + idg(42),maxbit(30),ident(9)
2249 REAL bigp
2250 common/hcprin/ifw ,nw ,nb ,ih ,nht ,icn ,iponce,
2251 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2252 + ksquez,ncolma,ncolpa,nlinpa,bigp ,icblac,icstar,icfunc,
2253 + idg ,maxbit,ident
2254 DOUBLE PRECISION cont,err2,sum,eprim
2255 hcx = 0.0
2256 lw = lq(lcont)
2257 IF(iopt.EQ.1.OR.(iopt.EQ.2.AND.lw.EQ.0)) THEN
2258 IF(nb.GE.32)THEN
2259 hcx = q(lcont+kcon1+icx)
2260 IF(lw.NE.0)THEN
2261 IF(lq(lw).NE.0)THEN
2262 ln=lq(lw)
2263 IF(icx.LE.0.OR.icx.GT.iq(ln-1)) THEN
2264 hcx = 0.0
2265 GOTO 1
2266 ENDIF
2267 sum=q(ln+icx)
2268 IF(sum.NE.0.) hcx = hcx/sum
2269 ENDIF
2270 ENDIF
2271 ELSE
2272 l1=icx*nb
2273 nbith=32-mod(32,nb)
2274 l2=mod(l1,nbith)+1
2275 l1=lcont+kcon1+l1/nbith
2276 hcx = jbyt(iq(l1),l2,nb)
2277 ENDIF
2278 1 IF(iopt.EQ.1) RETURN
2279 ENDIF
2280 IF(iopt.EQ.2) THEN
2281 IF(lw.EQ.0) THEN
2282 hcx = sqrt(abs(hcx))
2283 RETURN
2284 ENDIF
2285 IF(lq(lw).EQ.0)THEN
2286 hcx=sqrt(q(lw+icx))
2287 RETURN
2288 ELSE
2289 iopts=jbyt(iq(lw),1,2)
2290 ln=lq(lw)
2291 cont=q(lcont+kcon1+icx)
2292 err2=q(lw+icx)
2293 sump=abs(q(ln+icx))
2294 IF(sump.NE.0.)THEN
2295 IF(jbit(iq(lw),3).EQ.0)THEN
2296 eprim=sqrt(abs(err2/sump - (cont/sump)**2))
2297 ELSE
2298 eprim=sqrt(abs(err2/sump))
2299 ENDIF
2300 IF(eprim.LE.0..AND.sump.GE.1.)THEN
2301 IF(iopts.EQ.2)THEN
2302 eprim=1./sqrt(12.)
2303 ELSE
2304 eprim=sqrt(abs(cont))
2305 ENDIF
2306 ENDIF
2307 IF(iopts.EQ.0)THEN
2308 hcx=eprim/sqrt(sump)
2309 ELSEIF(iopts.EQ.1)THEN
2310 hcx=eprim
2311 ELSE
2312 hcx=eprim/sqrt(sump)
2313 ENDIF
2314 ENDIF
2315 RETURN
2316 ENDIF
2317 ELSE IF(iopt.EQ.3) THEN
2318 lfunc=lq(lcont-1)
2319 ic1=iq(lfunc+1)
2320 IF(icx.GE.ic1.AND.icx.LE.iq(lfunc+2))THEN
2321 hcx=q(lfunc+icx-ic1+3)
2322 ENDIF
2323 ELSE
2324 print*, '+Error in option value','HCX',iopt
2325 ENDIF
2326 END
2327
2328*-------------------------------------------------------------------------------
2329
2330 FUNCTION hcxy(ICX,ICY,IOPT)
2331 INTEGER nwpaw,ixpawc,ihdiv,ixhigz,ixku, lmain
2332 REAL fenc , hcv
2333 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2334 +hcv(4000000-11)
2335 INTEGER iq ,lq
2336 REAL q
2337 dimension iq(2),q(2),lq(8000)
2338 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2339 INTEGER hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2340 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2341 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2342 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2343 +lhfit,lfunc,lhfco,lhfna,lcidn
2344 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2345 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2346 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2347 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2348 +lhfit,lfunc,lhfco,lhfna,lcidn
2349 INTEGER kncx ,kxmin ,kxmax ,kmin1 ,kmax1 ,knorm , ktit1,
2350 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2351 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2352 + kcon1 ,kcon2 ,kbits ,kntot
2353 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2354 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2355 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2356 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2357 INTEGER ifw ,nw ,nb ,ih ,nht ,icn ,iponce,
2358 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2359 + ksquez,ncolma,ncolpa,nlinpa, icblac,icstar,icfunc,
2360 + idg(42),maxbit(30),ident(9)
2361 REAL BIGP
2362 common/hcprin/ifw ,nw ,nb ,ih ,nht ,icn ,iponce,
2363 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2364 + ksquez,ncolma,ncolpa,nlinpa,bigp ,icblac,icstar,icfunc,
2365 + idg ,maxbit,ident
2366 nw=32/nb
2367 j=(iq(lcid+kncy)-icy+1)*(iq(lcid+kncx)+2)
2368 l2=icx+j
2369 l1=l2/nw+lscat+kcon2
2370 IF(nw.NE.1)THEN
2371 l2=(nw-1-mod(l2,nw))*nb +1
2372 hcxy=jbyt(iq(l1),l2,nb)
2373 ELSE
2374 hcxy=q(l1)
2375 ENDIF
2376 IF(iopt.EQ.2) THEN
2377 lw = lq(lcont)
2378 IF(lw.NE.0) THEN
2379 ncx = iq(lcid+kncx)
2380 ioff = (icy-1)*ncx + icx
2381 hcxy = sqrt(q(lw+ioff))
2382 ELSE
2383 hcxy = sqrt(abs(hcxy))
2384 ENDIF
2385 ENDIF
2386 END
2387
2388*-------------------------------------------------------------------------------
2389
2390 SUBROUTINE hfind(IDD,CHROUT)
2391 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2392 REAL FENC , HCV
2393 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2394 +hcv(4000000-11)
2395 INTEGER IQ ,LQ
2396 REAL Q
2397 dimension iq(2),q(2),lq(8000)
2398 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2399 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2400 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2401 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2402 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2403 +lhfit,lfunc,lhfco,lhfna,lcidn
2404 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2405 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2406 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2407 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2408 +lhfit,lfunc,lhfco,lhfna,lcidn
2409 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2410 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2411 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2412 + kcon1 ,kcon2 ,kbits ,kntot
2413 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2414 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2415 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2416 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2417 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
2418 + nchar ,nrhist,ierr ,nv
2419 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
2420 + nchar ,nrhist,ierr ,nv
2421 INTEGER IFW ,NW ,NB ,IH ,NHT ,ICN ,IPONCE,
2422 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2423 + ksquez,ncolma,ncolpa,nlinpa, icblac,icstar,icfunc,
2424 + idg(42),maxbit(30),ident(9)
2425 REAL BIGP
2426 common/hcprin/ifw ,nw ,nb ,ih ,nht ,icn ,iponce,
2427 + nh ,mstep ,noent ,nold ,idolar,iblanc,kbinsz,ino ,
2428 + ksquez,ncolma,ncolpa,nlinpa,bigp ,icblac,icstar,icfunc,
2429 + idg ,maxbit,ident
2430 COMMON /quest/ iquest(100)
2431 CHARACTER*(*) CHROUT
2432 IF(lfix.NE.0)GO TO 99
2433 iquest(1)=0
2434 id=idd
2435 idlast=0
2436 idpos=locati(iq(ltab+1),iq(lcdir+knrh),id)
2437 IF(idpos.LE.0)THEN
2438 lcid=0
2439 print*, 'Unknown histogram',chrout,idd
2440 iquest(1)=1
2441 GO TO 99
2442 ENDIF
2443 lcid=lq(ltab-idpos)
2444 lcont=lq(lcid-1)
2445 lscat=lcont
2446 nb=iq(lcont+knbit)
2447 lprx=lcid+kncx
2448 IF(jbyt(iq(lcid+kbits),2,2).NE.0)THEN
2449 lpry=lcid+kncy
2450 ELSE
2451 lpry=0
2452 ENDIF
2453 99 RETURN
2454 END
2455
2456*-------------------------------------------------------------------------------
2457
2458 SUBROUTINE huoptc(CCHOPT,CSTR,IOPT)
2459 CHARACTER*(*) CCHOPT,CSTR
2460 CHARACTER*12 CHOPT
2461 dimension iopt(1)
2462 chopt = cchopt
2463 CALL cltou(chopt)
2464 CALL uoptc(chopt,cstr,iopt)
2465 RETURN
2466 END
2467
2468*-------------------------------------------------------------------------------
2469
2470 SUBROUTINE hrzcd(CHDIR,CHOPT)
2471 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
2472 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
2473 + ,ichtyp(mxfiles),ichlun(mxfiles)
2474 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
2475 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
2476 + ,chtop(nlpatm)
2477 CHARACTER*(LENHFN) HFNAME
2478 COMMON /hcfile/hfname(mxfiles)
2479 character*(*)chdir,chopt
2480 IF(ichtop(icdir).GT.1000)THEN
2481 print*, 'CZ option not active','HRZCD',0
2482 RETURN
2483 ENDIF
2484 CALL rzcdir(chdir,chopt)
2485 END
2486
2487*-------------------------------------------------------------------------------
2488
2489 SUBROUTINE hnmadr(VAR1, IADD, ISCHAR)
2490 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2491 REAL FENC , HCV
2492 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2493 +hcv(4000000-11)
2494 INTEGER IQ ,LQ
2495 REAL Q
2496 dimension iq(2),q(2),lq(8000)
2497 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2498 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2499 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2500 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2501 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2502 +lhfit,lfunc,lhfco,lhfna,lcidn
2503 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2504 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2505 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2506 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2507 +lhfit,lfunc,lhfco,lhfna,lcidn
2508 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2509 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2510 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2511 + kcon1 ,kcon2 ,kbits ,kntot
2512 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2513 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2514 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2515 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2516 COMMON /hcnt/ ibipw, ibipb, ibypw, ishbit
2517 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
2518 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
2519 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
2520 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
2521 + zid, zntmp, zntmp1, zlink
2522 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
2523 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
2524 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
2525 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
2526 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
2527 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
2528 CHARACTER*(*) VAR1
2529 CHARACTER*32 NAME, VAR
2530 INTEGER IADD
2531 LOGICAL ISCHAR, ALL, LDUM
2532 var = var1
2533 CALL cltou(var)
2534 lvar = lenocc(var)
2535 all = .false.
2536 IF (var(1:1).EQ.'*' .AND. lvar.EQ.1) all = .true.
2537 ioff = 0
2538 ndim = iq(lblok+zndim)
2539 DO 30 i = 1, ndim
2540 CALL hndesc(ioff, nsub, itype, isize, nbits, ldum)
2541 ll = iq(lname+ioff+zlname)
2542 lv = iq(lname+ioff+zname)
2543 name = ' '
2544 CALL uhtoc(iq(lchar+lv), 4, name, ll)
2545 CALL cltou(name)
2546 IF (.NOT.all .AND. var(1:lvar).NE.name(1:ll)) GOTO 20
2547 IF (ischar .AND. itype.NE.5) GOTO 20
2548 IF (.NOT.ischar .AND. itype.EQ.5) GOTO 20
2549 ielem = 1
2550 DO 10 j = 1, nsub
2551 lp = iq(lint+iq(lname+ioff+zarind)+(j-1))
2552 IF (lp .LT. 0) THEN
2553 ie = -lp
2554 ELSE
2555 ll = iq(lname+lp-1+zrange)
2556 ie = iq(lint+ll+1)
2557 ENDIF
2558 ielem = ielem*ie
2559 10 CONTINUE
2560 iaddw = ishft(iadd, -2)
2561 ibyof = iand(iadd, ibypw-1)
2562 IF (ibyof .NE. 0) GOTO 40
2563 iq(lname+ioff+znaddr) = iaddw - locf(iq(1))
2564 iadd = iadd + ielem*isize
2565 20 ioff = ioff + znaddr
2566 30 CONTINUE
2567 RETURN
2568 40 print *, 'Variable ', name(1:lenocc(name))
2569 print*, 'Address not word aligned','HBNAME'
2570 RETURN
2571 END
2572
2573*-------------------------------------------------------------------------------
2574
2575 SUBROUTINE hitoc(IVAL, VALC, NCSTR, IERR)
2576 CHARACTER*(*) VALC
2577 INTEGER IVAL, IERR
2578 CHARACTER*32 TT
2579 INTEGER I, J, NCSTR, NCH, LENOCC
2580 ierr = 0
2581 WRITE(tt,'(I32)',err=20) ival
2582 j = 0
2583 DO 10 i = 1, lenocc(tt)
2584 IF (tt(i:i) .EQ. ' ') GOTO 10
2585 j = j + 1
2586 tt(j:j) = tt(i:i)
2587 10 CONTINUE
2588 ncstr = j
2589 tt = tt(1:ncstr)
2590 nch = len(valc)
2591 IF (nch .LT. ncstr) ierr = -1
2592 valc(1:nch) = tt
2593 GOTO 999
2594 20 ierr = 1
2595 999 END
2596
2597*-------------------------------------------------------------------------------
2598
2599 SUBROUTINE hpath(CHPATH)
2600 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
2601 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
2602 + ,ichtyp(mxfiles),ichlun(mxfiles)
2603 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
2604 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
2605 + ,chtop(nlpatm)
2606 CHARACTER*(LENHFN) HFNAME
2607 COMMON /hcfile/hfname(mxfiles)
2608 INTEGER LOUT,LERR,LINFIT
2609 common/hcunit/lout,lerr,linfit
2610 CHARACTER*(*) CHPATH
2611 CHARACTER*1 CH1,BSLASH
2612 CHARACTER*2 CH2
2613 bslash='\\'
2614 nchp=len(chpath)
2615 nlpat=0
2616 10 IF(chpath(nchp:nchp).EQ.' ')THEN
2617 nchp=nchp-1
2618 IF(nchp.GT.0)GO TO 10
2619 nlpat=nlcdir
2620 DO 20 i=1,nlcdir
2621 chpat(i)=chcdir(i)
2622 20 CONTINUE
2623 GO TO 99
2624 ENDIF
2625 is1=1
2626 30 IF(chpath(is1:is1).EQ.' ')THEN
2627 is1=is1+1
2628 GO TO 30
2629 ENDIF
2630 ch1=chpath(is1:is1)
2631 IF(is1.LT.nchp)ch2=chpath(is1:is1+1)
2632 IF(ch1.EQ.'/')THEN
2633 IF(is1.GE.nchp)GO TO 90
2634 IF(chpath(is1+1:is1+1).EQ.'/')THEN
2635 is=is1+2
2636 IF(is.GT.nchp)GO TO 99
2637 40 IF(chpath(is:is).EQ.'/')THEN
2638 IF(is.EQ.is1+2)GO TO 90
2639 nlpat=1
2640 chpat(1)=chpath(is1+2:is-1)
2641 is1=is+1
2642 is=is1
2643 GO TO 50
2644 ELSE
2645 is=is+1
2646 IF(is.LT.nchp)GO TO 40
2647 nlpat=1
2648 chpat(1)=chpath(is1+2:is)
2649 GO TO 99
2650 ENDIF
2651 ENDIF
2652 IF(chpath(is1+1:is1+1).EQ.bslash)GO TO 90
2653 nlpat=1
2654 chpat(1)=chcdir(1)
2655 is=is1+1
2656 is1=is
2657 50 IF(is.EQ.nchp)THEN
2658 IF(chpath(is1:is).NE.'..'.AND.
2659 + chpath(is1:is).NE.bslash) THEN
2660 nlpat=nlpat+1
2661 IF(nlpat.GT.nlpatm)GO TO 90
2662 chpat(nlpat)=chpath(is1:is)
2663 ELSE
2664 nlpat = nlpat -1
2665 ENDIF
2666 GO TO 99
2667 ELSE
2668 IF(chpath(is:is).EQ.'/')THEN
2669 IF(nlpat.GT.nlpatm)GO TO 90
2670 IF(chpath(is1:is-1).NE.'..'.AND.
2671 + chpath(is1:is-1).NE.bslash) THEN
2672 nlpat=nlpat+1
2673 chpat(nlpat)=chpath(is1:is-1)
2674 ELSE
2675 nlpat = nlpat - 1
2676 ENDIF
2677 is1=is+1
2678 ENDIF
2679 is=is+1
2680 GO TO 50
2681 ENDIF
2682 ENDIF
2683 DO 70 i=1,nlcdir
2684 chpat(i)=chcdir(i)
2685 70 CONTINUE
2686 nlpat=nlcdir
2687 75 IF(ch1.EQ.bslash)THEN
2688 nlpat=nlpat-1
2689 IF(nlpat.EQ.0)nlpat=1
2690 IF(is1.EQ.nchp)GO TO 99
2691 is1=is1+1
2692 ch1=chpath(is1:is1)
2693 GO TO 75
2694 ENDIF
2695 is=is1
2696 76 IF(ch2.EQ.'..')THEN
2697 nlpat=nlpat-1
2698 IF(nlpat.EQ.0)nlpat=1
2699 IF(is1+1.EQ.nchp)GO TO 99
2700 IF(chpath(is1+2:is1+2).NE.'/') GOTO 90
2701 is =is1
2702 is1=is1+3
2703 ch2=chpath(is1:is1+1)
2704 GO TO 76
2705 ENDIF
2706 80 IF(is.EQ.nchp)THEN
2707 nlpat=nlpat+1
2708 IF(nlpat.GT.nlpatm)GO TO 90
2709 chpat(nlpat)=chpath(is1:is)
2710 GO TO 99
2711 ELSE
2712 IF(chpath(is:is).EQ.'/')THEN
2713 IF(is.GT.is1)THEN
2714 nlpat=nlpat+1
2715 IF(nlpat.GT.nlpatm)GO TO 90
2716 chpat(nlpat)=chpath(is1:is-1)
2717 ENDIF
2718 is1=is+1
2719 ENDIF
2720 is=is+1
2721 GO TO 80
2722 ENDIF
2723 90 is1=len(chpath)
2724 IF(is1.GT.90)is1=90
2725 WRITE(lout,1000)chpath(1:is1)
2726 1000 FORMAT(' HPATH. ERROR IN PATHNAME,',a)
2727 nlpat=0
2728 99 RETURN
2729 END
2730
2731*-------------------------------------------------------------------------------
2732
2733 SUBROUTINE hndesc(IOFF, NSUB, ITYPE, ISIZE, NBITS, INDVAR)
2734 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2735 REAL FENC , HCV
2736 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2737 +hcv(4000000-11)
2738 INTEGER IQ ,LQ
2739 REAL Q
2740 dimension iq(2),q(2),lq(8000)
2741 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2742 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2743 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2744 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2745 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2746 +lhfit,lfunc,lhfco,lhfna,lcidn
2747 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2748 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2749 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2750 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2751 +lhfit,lfunc,lhfco,lhfna,lcidn
2752 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2753 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2754 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2755 + kcon1 ,kcon2 ,kbits ,kntot
2756 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2757 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2758 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2759 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2760 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
2761 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
2762 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
2763 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
2764 + zid, zntmp, zntmp1, zlink
2765 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
2766 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
2767 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
2768 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
2769 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
2770 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
2771 COMMON /hcnt/ ibipw, ibipb, ibypw, ishbit
2772 LOGICAL INDVAR
2773 nsub = jbyt(iq(lname+ioff+zdesc), 18, 3)
2774 itype = jbyt(iq(lname+ioff+zdesc), 14, 4)
2775 isize = jbyt(iq(lname+ioff+zdesc), 8, 6)
2776 nbits = jbyt(iq(lname+ioff+zdesc), 1, 7)
2777 indvar = .false.
2778 IF (jbit(iq(lname+ioff+zdesc),28) .EQ. 1) indvar = .true.
2779 IF (itype .EQ. 5) nbits = ibipb*isize
2780 END
2781
2782*-------------------------------------------------------------------------------
2783
2784 SUBROUTINE hparnt(IDN, CHROUT)
2785 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2786 REAL FENC , HCV
2787 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2788 +hcv(4000000-11)
2789 INTEGER IQ ,LQ
2790 REAL Q
2791 dimension iq(2),q(2),lq(8000)
2792 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2793 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2794 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2795 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2796 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2797 +lhfit,lfunc,lhfco,lhfna,lcidn
2798 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2799 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2800 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2801 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2802 +lhfit,lfunc,lhfco,lhfna,lcidn
2803 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2804 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2805 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2806 + kcon1 ,kcon2 ,kbits ,kntot
2807 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2808 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2809 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2810 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2811 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
2812 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
2813 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
2814 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
2815 + zid, zntmp, zntmp1, zlink
2816 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
2817 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
2818 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
2819 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
2820 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
2821 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
2822 CHARACTER*(*) CHROUT
2823 lcid = 0
2824 nidn = locati(iq(ltab+1),iq(lcdir+knrh),idn)
2825 IF (nidn .LE. 0) THEN
2826 CALL hrin(idn,9999,0)
2827 nidn = locati(iq(ltab+1),iq(lcdir+knrh),idn)
2828 IF (nidn .LE. 0) THEN
2829 print*,'Unknown N-tuple',chrout,idn
2830 idn = 0
2831 RETURN
2832 ENDIF
2833 ENDIF
2834 lcid = lq(ltab-nidn)
2835 i4 = jbit(iq(lcid+kbits),4)
2836 IF (i4 .EQ. 0) THEN
2837 print*,'Not a N-tuple',chrout,idn
2838 idn = 0
2839 RETURN
2840 ENDIF
2841 IF (iq(lcid-2) .NE. zlink) THEN
2842 print*,'Old N-tuple, this routine works only for new '//
2843 + 'N-tuples',chrout,idn
2844 idn = 0
2845 RETURN
2846 ENDIF
2847 IF (iq(lcid+znprim) .GT. 0) THEN
2848 CALL hnbfwr(idn)
2849 CALL hnhdwr(idn)
2850 ENDIF
2851 END
2852
2853*-------------------------------------------------------------------------------
2854
2855 SUBROUTINE hntmp(IDD)
2856 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2857 REAL FENC , HCV
2858 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2859 +hcv(4000000-11)
2860 INTEGER IQ ,LQ
2861 REAL Q
2862 dimension iq(2),q(2),lq(8000)
2863 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2864 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2865 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2866 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2867 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2868 +lhfit,lfunc,lhfco,lhfna,lcidn
2869 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2870 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2871 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2872 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2873 +lhfit,lfunc,lhfco,lhfna,lcidn
2874 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2875 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2876 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2877 + kcon1 ,kcon2 ,kbits ,kntot
2878 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2879 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2880 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2881 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2882 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
2883 + nchar ,nrhist,ierr ,nv
2884 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
2885 + nchar ,nrhist,ierr ,nv
2886 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
2887 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
2888 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
2889 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
2890 + zid, zntmp, zntmp1, zlink
2891 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
2892 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
2893 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
2894 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
2895 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
2896 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
2897 ndim = iq(lcid+zndim)
2898 nw = 1 + zntmp*ndim
2899 IF (lq(lcdir-5) .EQ. 0) THEN
2900 nw1 = 1 + zntmp1*ndim
2901 ntot = nw + nw1 + ndim + 2*33
2902 CALL hspace(ntot,'HNTMP',idd)
2903 IF (ierr.NE.0) GOTO 70
2904 idlast = idd
2905 CALL mzbook(ihdiv,ltmpm,lcdir,-5,'HTMP',2,1,nw,2,1)
2906 ltmp = ltmpm
2907 iq(ltmp-5) = idd
2908 CALL mzbook(ihdiv,ltmp1,ltmp,-1,'HTMP1',ndim,0,nw1,2,-1)
2909 ELSEIF (iq(ltmp-5) .NE. idd) THEN
2910 ltmp = lq(lcdir-5)
2911 20 IF (iq(ltmp-5) .EQ. idd) GOTO 40
2912 IF (lq(ltmp) .NE. 0) THEN
2913 ltmp = lq(ltmp)
2914 GOTO 20
2915 ENDIF
2916 nw1 = 1 + zntmp1*ndim
2917 ntot = nw + nw1 + ndim + 2*33
2918 CALL hspace(ntot,'HNTMP',idd)
2919 IF (ierr.NE.0) GOTO 70
2920 idlast = idd
2921 CALL mzbook(ihdiv,ltmp,ltmp,0,'HTMP',2,1,nw,2,1)
2922 iq(ltmp-5) = idd
2923 CALL mzbook(ihdiv,ltmp1,ltmp,-1,'HTMP1',ndim,0,nw1,2,-1)
2924 ENDIF
2925 40 ltmp1 = lq(ltmp-1)
2926 lq(ltmp-2) = lcid
2927 nwp = iq(ltmp-1)
2928 IF (nwp .NE. nw) THEN
2929 nd = nw - nwp
2930 CALL mzpush(ihdiv, ltmp, 0, nd, 'I')
2931 nwp = iq(ltmp1-1)
2932 nd = 1+zntmp1*ndim - nwp
2933 nlp = iq(ltmp1-3)
2934 nl = ndim - nlp
2935 CALL mzpush(ihdiv, ltmp1, nl, nd, 'I')
2936 ENDIF
2937 70 RETURN
2938 END
2939
2940*-------------------------------------------------------------------------------
2941 SUBROUTINE hnbufr(IDD)
2942 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
2943 REAL FENC , HCV
2944 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
2945 +hcv(4000000-11)
2946 INTEGER IQ ,LQ
2947 REAL Q
2948 dimension iq(2),q(2),lq(8000)
2949 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
2950 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
2951 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2952 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2953 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
2954 +lhfit,lfunc,lhfco,lhfna,lcidn
2955 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
2956 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
2957 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
2958 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
2959 +lhfit,lfunc,lhfco,lhfna,lcidn
2960 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
2961 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
2962 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
2963 + kcon1 ,kcon2 ,kbits ,kntot
2964 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
2965 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
2966 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
2967 + kcon1=9,kcon2=3,kbits=1,kntot=2)
2968 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
2969 + nchar ,nrhist,ierr ,nv
2970 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
2971 + nchar ,nrhist,ierr ,nv
2972 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
2973 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
2974 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
2975 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
2976 + zid, zntmp, zntmp1, zlink
2977 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
2978 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
2979 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
2980 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
2981 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
2982 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
2983 common/quest/iquest(100)
2984 CHARACTER*128 CHWOLD, CHDIR, CWDRZ
2985 INTEGER KEYS(2)
2986 LOGICAL MEMORY
2987 ierr = 0
2988 icycle = 9999
2989 ndim = iq(lcid+zndim)
2990 nwp = iabs(iq(lcid+znprim))
2991 IF (lq(lcdir-4) .EQ. 0) THEN
2992 ntot = ndim+2+33
2993 CALL hspace(ntot,'HNBUFR',idd)
2994 IF (ierr.NE.0) GOTO 50
2995 CALL mzbook(ihdiv,lbufm,lcdir,-4,'HBUF',ndim,ndim,2,2,0)
2996 lbuf = lbufm
2997 iq(lbuf-5) = idd
2998 ELSEIF (iq(lbuf-5) .NE. idd) THEN
2999 lbuf = lq(lcdir-4)
3000 10 IF (iq(lbuf-5) .EQ. idd) GOTO 20
3001 IF (lq(lbuf) .NE. 0) THEN
3002 lbuf = lq(lbuf)
3003 GOTO 10
3004 ENDIF
3005 ntot = ndim+2+33
3006 CALL hspace(ntot,'HNBUFR',idd)
3007 IF (ierr.NE.0) GOTO 50
3008 CALL mzbook(ihdiv,lbuf,lbuf,0,'HBUF',ndim,ndim,2,2,0)
3009 iq(lbuf-5) = idd
3010 ENDIF
3011 20 memory = iq(lcid+znprim) .LE. 0
3012 IF (memory) THEN
3013 nchrz = iq(lcid+znchrz)
3014 CALL rzcdir(cwdrz,'R')
3015 CALL hcdir(chwold,'R')
3016 chdir = ' '
3017 CALL uhtoc(iq(lcid+znchrz+1),4,chdir,nchrz)
3018 IF (chdir.NE.cwdrz) THEN
3019 CALL hcdir(chdir,' ')
3020 ENDIF
3021 keys(1) = iq(lcid+zid)
3022 ENDIF
3023 lblok = lq(lcid-1)
3024 lchar = lq(lcid-2)
3025 lint = lq(lcid-3)
3026 lreal = lq(lcid-4)
3027 30 lname = lq(lblok-1)
3028 ioff = 0
3029 ndim = iq(lblok+zndim)
3030 DO 40 i = 1, ndim
3031 lcind = iq(lname+ioff+zlcont)
3032 iadd = iq(lname+ioff+znaddr)
3033 lb = lq(lbuf-lcind)
3034 IF (iadd .EQ. 0) THEN
3035 IF (lb .NE. 0) THEN
3036 IF (jbit(iq(lb),1) .EQ. 0) THEN
3037 CALL mzdrop(ihdiv,lb,' ')
3038 lq(lbuf-lcind) = 0
3039 ENDIF
3040 ENDIF
3041 ELSEIF (memory .AND. lb.EQ.0) THEN
3042 keys(2) = iq(lname+ioff+znrzb)*10000 +
3043 + iq(lname+ioff+zlcont)
3044 CALL hrzin(ihdiv,0,0,keys,icycle,'C')
3045 IF (iquest(1) .NE. 0) THEN
3046 print*,'Error reading contents bank', 'HNBUFR', idd
3047 ierr = 1
3048 GOTO 50
3049 ENDIF
3050 nwords = iquest(12)
3051 CALL hspace(nwords+1000,'HNBUFR',idd)
3052 IF (ierr .NE. 0) GOTO 50
3053 CALL hrzin(ihdiv,lbuf,-lcind,keys,icycle,' ')
3054 ELSEIF (lb .EQ. 0) THEN
3055 ntot = nwp+33
3056 CALL hspace(ntot,'HNBUFR',idd)
3057 IF (ierr.NE.0) GOTO 50
3058 CALL mzbook(ihdiv,l,lbuf,-lcind,'HCON',0,0,nwp,1,-1)
3059 ENDIF
3060 ioff = ioff + znaddr
3061 40 CONTINUE
3062 lblok = lq(lblok)
3063 IF (lblok .NE. 0) GOTO 30
3064 IF (memory) THEN
3065 IF (chdir.NE.cwdrz) THEN
3066 CALL hcdir(chwold,' ')
3067 IF (chwold .NE. cwdrz) THEN
3068 CALL rzcdir(cwdrz,' ')
3069 ENDIF
3070 ENDIF
3071 ENDIF
3072 CALL hntmp(idd)
3073 50 RETURN
3074 END
3075
3076*-------------------------------------------------------------------------------
3077
3078 SUBROUTINE hntrd(INDX, IOFF, IBANK, IERROR)
3079 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3080 REAL FENC , HCV
3081 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3082 +hcv(4000000-11)
3083 INTEGER IQ ,LQ
3084 REAL Q
3085 dimension iq(2),q(2),lq(8000)
3086 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3087 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3088 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3089 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3090 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3091 +lhfit,lfunc,lhfco,lhfna,lcidn
3092 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3093 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3094 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3095 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3096 +lhfit,lfunc,lhfco,lhfna,lcidn
3097 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3098 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3099 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3100 + kcon1 ,kcon2 ,kbits ,kntot
3101 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3102 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3103 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3104 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3105 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
3106 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3107 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
3108 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
3109 + zid, zntmp, zntmp1, zlink
3110 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
3111 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
3112 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
3113 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
3114 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
3115 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
3116 LOGICAL NRECOV
3117 COMMON /hcrecv/ nrecov
3118 common/quest/iquest(100)
3119 CHARACTER*128 CHWOLD, CHDIR, CWDRZ
3120 INTEGER KEYS(2)
3121 IF (iq(lname+ioff+zibank) .EQ. ibank) THEN
3122 lr2 = lq(lname-indx)
3123 RETURN
3124 ENDIF
3125 ierror = 0
3126 idd = iq(lbuf-5)
3127 lcind = iq(lname+ioff+zlcont)
3128 IF (iq(lcid+znprim) .LT. 0) THEN
3129 lr2 = lq(lbuf-lcind)
3130 DO 10 i = 2, ibank
3131 IF (lq(lr2) .NE. 0) lr2 = lq(lr2)
3132 10 CONTINUE
3133 IF (lr2 .EQ. 0) THEN
3134 print*,'Bank does not exist', 'HGNT', idd
3135 GOTO 90
3136 ENDIF
3137 ELSE
3138 IF (.NOT.nrecov .AND. ibank.GT.iq(lname+ioff+znrzb)) THEN
3139 print*,'Bank does not exist', 'HGNT', idd
3140 GOTO 90
3141 ENDIF
3142 nchrz = iq(lcid+znchrz)
3143 IF(nchrz.NE.0)THEN
3144 CALL rzcdir(cwdrz,'R')
3145 CALL hcdir(chwold,'R')
3146 chdir = ' '
3147 CALL uhtoc(iq(lcid+znchrz+1),4,chdir,nchrz)
3148 IF (chdir.NE.cwdrz) THEN
3149 CALL hcdir(chdir,' ')
3150 ENDIF
3151 ENDIF
3152 keys(1) = iq(lcid+zid)
3153 keys(2) = ibank*10000 + iq(lname+ioff+zlcont)
3154 IF (nrecov) THEN
3155 CALL rzink(keys,99999,'R')
3156 IF (iquest(1) .NE. 0) GOTO 90
3157 iq(lname+ioff+znrzb) = ibank
3158 IF (jbit(iq(lname+ioff+zdesc),28) .EQ. 1) THEN
3159 CALL hrzin(ihdiv,lbuf,-lcind,keys,99999,'R')
3160 IF (iquest(1) .NE. 0) GOTO 90
3161 ENDIF
3162 ELSE
3163 CALL hrzin(ihdiv,lbuf,-lcind,keys,99999,'R')
3164 IF (iquest(1) .NE. 0) THEN
3165 keys(1) = 0
3166 iquest(1) = 0
3167 CALL hrzin(ihdiv,lbuf,-lcind,keys,99999,'R')
3168 ENDIF
3169 IF (iquest(1) .NE. 0) GOTO 90
3170 iq(lq(lbuf-lcind)) = 0
3171 ENDIF
3172 IF (nchrz.NE.0.AND.chdir .NE. cwdrz) THEN
3173 CALL hcdir(chwold,' ')
3174 IF (chwold .NE. cwdrz) THEN
3175 CALL rzcdir(cwdrz,' ')
3176 ENDIF
3177 ENDIF
3178 lr2 = lq(lbuf-lcind)
3179 ENDIF
3180 iq(lname+ioff+zibank) = ibank
3181 lq(lname-indx) = lr2
3182 RETURN
318390 ierror = 1
318499 END
3185
3186*-------------------------------------------------------------------------------
3187
3188 SUBROUTINE hpaff(CH,NL,CHPATH)
3189 CHARACTER*128 CHMAIL
3190 COMMON /hcmail/chmail
3191 CHARACTER*(*) CHPATH,CH(*)
3192 CHARACTER*16 CHL
3193 maxlen=len(chpath)
3194 IF(maxlen.GT.110)maxlen=110
3195 chpath='//'//ch(1)
3196 leng=lenocc(chpath)
3197 IF(leng.EQ.2) THEN
3198 chpath='//HOME'
3199 leng=6
3200 ENDIF
3201 IF(nl.EQ.1) GOTO 99
3202 DO 20 i=2,nl
3203 chl=ch(i)
3204 nmax=lenocc(chl)
3205 IF(nmax.EQ.0) GOTO 99
3206 IF(leng+nmax.GT.maxlen)nmax=maxlen-leng
3207 chmail=chpath(1:leng)//'/'//chl(1:nmax)
3208 chpath=chmail
3209 leng=leng+nmax+1
3210 IF(leng.EQ.maxlen)GO TO 99
3211 20 CONTINUE
3212 99 RETURN
3213 END
3214
3215*-------------------------------------------------------------------------------
3216
3217 SUBROUTINE hrzfra(IH,IOH,NW)
3218 dimension ih(1), ioh(1)
3219 DO 20 iw=1,nw
3220 ib1=jbyt(ih(iw), 1,8)
3221 ib2=jbyt(ih(iw), 9,8)
3222 ib3=jbyt(ih(iw),17,8)
3223 ib4=jbyt(ih(iw),25,8)
3224 ioh(iw)=ib4
3225 CALL sbyt(ib3,ioh(iw), 9,8)
3226 CALL sbyt(ib2,ioh(iw),17,8)
3227 CALL sbyt(ib1,ioh(iw),25,8)
3228 20 CONTINUE
3229 END
3230
3231*-------------------------------------------------------------------------------
3232
3233 SUBROUTINE hspace (N,CHROUT,IDD)
3234 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3235 REAL FENC , HCV
3236 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3237 +hcv(4000000-11)
3238 INTEGER IQ ,LQ
3239 REAL Q
3240 dimension iq(2),q(2),lq(8000)
3241 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3242 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3243 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3244 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3245 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3246 +lhfit,lfunc,lhfco,lhfna,lcidn
3247 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3248 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3249 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3250 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3251 +lhfit,lfunc,lhfco,lhfna,lcidn
3252 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3253 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3254 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3255 + kcon1 ,kcon2 ,kbits ,kntot
3256 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3257 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3258 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3259 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3260 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3261 + nchar ,nrhist,ierr ,nv
3262 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3263 + nchar ,nrhist,ierr ,nv
3264 common/quest/iquest(100)
3265 CHARACTER*(*) CHROUT
3266 idlast=0
3267 ierr=0
3268 CALL mzneed(ihdiv,n,' ')
3269 IF(iquest(11).LT.0)THEN
3270 CALL mzneed(ihdiv,n,'G')
3271 ENDIF
3272 iquest(1)=0
3273 IF(iquest(11).LT.0)THEN
3274 print*,'Not enough space in memory',chrout,idd
3275 ierr =1
3276 ENDIF
3277 END
3278
3279*-------------------------------------------------------------------------------
3280
3281 SUBROUTINE hntmpd(IDD)
3282 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3283 REAL FENC , HCV
3284 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3285 +hcv(4000000-11)
3286 INTEGER IQ ,LQ
3287 REAL Q
3288 dimension iq(2),q(2),lq(8000)
3289 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3290 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3291 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3292 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3293 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3294 +lhfit,lfunc,lhfco,lhfna,lcidn
3295 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3296 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3297 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3298 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3299 +lhfit,lfunc,lhfco,lhfna,lcidn
3300 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3301 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3302 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3303 + kcon1 ,kcon2 ,kbits ,kntot
3304 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3305 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3306 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3307 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3308 IF (lq(lcdir-5) .EQ. 0) RETURN
3309 IF (idd .EQ. 0) THEN
3310 CALL mzdrop(ihdiv,lq(lcdir-5),'L')
3311 lq(lcdir-5) = 0
3312 ltmpm = 0
3313 ltmp = 0
3314 ELSE
3315 ltmp = lq(lcdir-5)
3316 20 IF (iq(ltmp-5) .EQ. idd) THEN
3317 CALL mzdrop(ihdiv,ltmp,' ')
3318 ltmp = lq(lcdir-5)
3319 GOTO 40
3320 ENDIF
3321 ltmp = lq(ltmp)
3322 IF (ltmp .NE. 0) GOTO 20
3323 RETURN
3324 ENDIF
3325 40 END
3326
3327*-------------------------------------------------------------------------------
3328
3329 SUBROUTINE hnbufd(IDD)
3330 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3331 REAL FENC , HCV
3332 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3333 +hcv(4000000-11)
3334 INTEGER IQ ,LQ
3335 REAL Q
3336 dimension iq(2),q(2),lq(8000)
3337 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3338 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3339 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3340 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3341 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3342 +lhfit,lfunc,lhfco,lhfna,lcidn
3343 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3344 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3345 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3346 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3347 +lhfit,lfunc,lhfco,lhfna,lcidn
3348 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3349 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3350 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3351 + kcon1 ,kcon2 ,kbits ,kntot
3352 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3353 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3354 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3355 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3356 CALL hntmpd(idd)
3357 IF (lq(lcdir-4) .EQ. 0) RETURN
3358 IF (idd .EQ. 0) THEN
3359 CALL mzdrop(ihdiv,lq(lcdir-4),'L')
3360 lq(lcdir-4) = 0
3361 lbufm = 0
3362 lbuf = 0
3363 ELSE
3364 lbuf = lq(lcdir-4)
3365 20 IF (iq(lbuf-5) .EQ. idd) THEN
3366 CALL mzdrop(ihdiv,lbuf,' ')
3367 lbuf = lq(lcdir-4)
3368 GOTO 40
3369 ENDIF
3370 lbuf = lq(lbuf)
3371 IF (lbuf .NE. 0) GOTO 20
3372 RETURN
3373 ENDIF
3374 40 END
3375
3376*-------------------------------------------------------------------------------
3377
3378 SUBROUTINE hntvar(ID1,IVAR,CHTAG,BLOCK,NSUB,ITYPE,ISIZE,IELEM)
3379 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3380 REAL FENC , HCV
3381 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3382 +hcv(4000000-11)
3383 INTEGER IQ ,LQ
3384 REAL Q
3385 dimension iq(2),q(2),lq(8000)
3386 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3387 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3388 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3389 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3390 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3391 +lhfit,lfunc,lhfco,lhfna,lcidn
3392 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3393 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3394 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3395 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3396 +lhfit,lfunc,lhfco,lhfna,lcidn
3397 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3398 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3399 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3400 + kcon1 ,kcon2 ,kbits ,kntot
3401 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3402 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3403 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3404 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3405 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
3406 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3407 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
3408 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
3409 + zid, zntmp, zntmp1, zlink
3410 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
3411 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
3412 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
3413 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
3414 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
3415 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
3416 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3417 + nchar ,nrhist,ierr ,nv
3418 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3419 + nchar ,nrhist,ierr ,nv
3420 INTEGER I1, I2, I3, I4, I5, I6, I7, I8,
3421 + i9, i10, i11, i12, i13, i14, i15, i16,
3422 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
3423 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
3424 COMMON / hcbits / i1, i2, i3, i4, i5, i6, i7, i8,
3425 + i9, i10, i11, i12, i13, i14, i15, i16,
3426 +i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
3427 +i28, i29, i30, i31, i32, i33, i34, i35, i123, i230
3428 CHARACTER*(*) CHTAG, BLOCK
3429 CHARACTER*32 NAME
3430 LOGICAL NEWTUP, LDUM
3431 id = id1
3432 idpos = locati(iq(ltab+1),iq(lcdir+knrh),id)
3433 IF (idpos .LE. 0) THEN
3434 print*,'Unknown N-tuple','HNTVAR',id1
3435 RETURN
3436 ENDIF
3437 lcid = lq(ltab-idpos)
3438 i4 = jbit(iq(lcid+kbits),4)
3439 IF (i4 .EQ. 0) RETURN
3440 newtup = .true.
3441 IF (iq(lcid-2) .NE. zlink) newtup = .false.
3442 chtag = ' '
3443 name = ' '
3444 block = ' '
3445 nsub = 0
3446 itype = 0
3447 isize = 0
3448 ielem = 0
3449 icnt = 0
3450 IF (newtup) THEN
3451 IF (ivar .GT. iq(lcid+zndim)) RETURN
3452 lblok = lq(lcid-1)
3453 lchar = lq(lcid-2)
3454 lint = lq(lcid-3)
3455 lreal = lq(lcid-4)
3456 5 lname = lq(lblok-1)
3457 ioff = 0
3458 ndim = iq(lblok+zndim)
3459 DO 10 i = 1, ndim
3460 icnt = icnt + 1
3461 IF (icnt .EQ. ivar) THEN
3462 CALL hndesc(ioff, nsub, itype, isize, nbits, ldum)
3463 ll = iq(lname+ioff+zlname)
3464 lv = iq(lname+ioff+zname)
3465 CALL uhtoc(iq(lchar+lv), 4, name, ll)
3466 CALL uhtoc(iq(lblok+ziblok), 4, block, 8)
3467 ielem = 1
3468 DO 25 j = 1, nsub
3469 lp = iq(lint+iq(lname+ioff+zarind)+(j-1))
3470 IF (lp .LT. 0) THEN
3471 ie = -lp
3472 ELSE
3473 ll = iq(lname+lp-1+zrange)
3474 ie = iq(lint+ll+1)
3475 ENDIF
3476 ielem = ielem*ie
3477 25 CONTINUE
3478 chtag = name
3479 RETURN
3480 ENDIF
3481 ioff = ioff + znaddr
3482 10 CONTINUE
3483 lblok = lq(lblok)
3484 IF (lblok .NE. 0) GOTO 5
3485 ELSE
3486 IF (ivar .GT. iq(lcid+2)) RETURN
3487 itag1 = iq(lcid+10)
3488 CALL uhtoc(iq(lcid+itag1+2*(ivar-1)), 4, name, 8)
3489 chtag = name
3490 itype = 1
3491 isize = 4
3492 ielem = 1
3493 ENDIF
3494 END
3495
3496*-------------------------------------------------------------------------------
3497
3498 SUBROUTINE hnmset(IDD, ITEM, IVAL)
3499 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3500 REAL FENC , HCV
3501 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3502 +hcv(4000000-11)
3503 INTEGER IQ ,LQ
3504 REAL Q
3505 dimension iq(2),q(2),lq(8000)
3506 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3507 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3508 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3509 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3510 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3511 +lhfit,lfunc,lhfco,lhfna,lcidn
3512 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3513 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3514 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3515 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3516 +lhfit,lfunc,lhfco,lhfna,lcidn
3517 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3518 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3519 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3520 + kcon1 ,kcon2 ,kbits ,kntot
3521 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3522 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3523 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3524 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3525 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
3526 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3527 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
3528 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
3529 + zid, zntmp, zntmp1, zlink
3530 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
3531 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
3532 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
3533 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
3534 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
3535 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
3536 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3537 + nchar ,nrhist,ierr ,nv
3538 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3539 + nchar ,nrhist,ierr ,nv
3540 id = idd
3541 idpos = locati(iq(ltab+1),iq(lcdir+knrh),id)
3542 IF (idpos .LE. 0) THEN
3543 print*,'Unknown N-tuple','HNMSET',idd
3544 RETURN
3545 ENDIF
3546 lcid=lq(ltab-idpos)
3547 lblok = lq(lcid-1)
3548 lchar = lq(lcid-2)
3549 lint = lq(lcid-3)
3550 lreal = lq(lcid-4)
355110 lname = lq(lblok-1)
3552 ioff = 0
3553 ndim = iq(lblok+zndim)
3554 DO 20 i = 1, ndim
3555 iq(lname+ioff+item) = ival
3556 ioff = ioff + znaddr
355720 CONTINUE
3558 lblok = lq(lblok)
3559 IF (lblok .NE. 0) GOTO 10
3560 END
3561
3562*-------------------------------------------------------------------------------
3563
3564 INTEGER FUNCTION hnbptr(BLKNA1)
3565 INTEGER nwpaw,ixpawc,ihdiv,ixhigz,ixku, lmain
3566 REAL fenc , hcv
3567 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3568 +hcv(4000000-11)
3569 INTEGER iq ,lq
3570 REAL q
3571 dimension iq(2),q(2),lq(8000)
3572 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3573 INTEGER hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3574 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3575 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3576 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3577 +lhfit,lfunc,lhfco,lhfna,lcidn
3578 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3579 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3580 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3581 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3582 +lhfit,lfunc,lhfco,lhfna,lcidn
3583 INTEGER kncx ,kxmin ,kxmax ,kmin1 ,kmax1 ,knorm , ktit1,
3584 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3585 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3586 + kcon1 ,kcon2 ,kbits ,kntot
3587 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3588 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3589 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3590 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3591 INTEGER zbits, zndim, znoent, znprim, znrzb, zifcon,
3592 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3593 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
3594 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
3595 + zid, zntmp, zntmp1, zlink
3596 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
3597 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
3598 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
3599 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
3600 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
3601 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
3602 CHARACTER*(*) blkna1
3603 CHARACTER*8 blknam
3604 INTEGER iblkn(2)
3605 blknam = blkna1
3606 CALL cltou(blknam)
3607 hnbptr = 0
3608 CALL uctoh(blknam, iblkn, 4, 8)
3609 ll = lq(lcid-1)
361010 IF (iblkn(1).EQ.iq(ll+ziblok) .AND.
3611 + iblkn(2).EQ.iq(ll+ziblok+1)) THEN
3612 hnbptr = ll
3613 RETURN
3614 ENDIF
3615 ll = lq(ll)
3616 IF (ll .NE. 0) GOTO 10
3617 END
3618
3619*-------------------------------------------------------------------------------
3620
3621 SUBROUTINE hnbuff(IDD, FATAL)
3622 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3623 REAL FENC , HCV
3624 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3625 +hcv(4000000-11)
3626 INTEGER IQ ,LQ
3627 REAL Q
3628 dimension iq(2),q(2),lq(8000)
3629 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3630 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3631 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3632 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3633 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3634 +lhfit,lfunc,lhfco,lhfna,lcidn
3635 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3636 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3637 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3638 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3639 +lhfit,lfunc,lhfco,lhfna,lcidn
3640 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3641 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3642 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3643 + kcon1 ,kcon2 ,kbits ,kntot
3644 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3645 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3646 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3647 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3648 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3649 + nchar ,nrhist,ierr ,nv
3650 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3651 + nchar ,nrhist,ierr ,nv
3652 LOGICAL FATAL
3653 IF (lq(lcdir-4) .EQ. 0) THEN
3654 IF (fatal) THEN
3655 print*,'Buffer structure not initialized.','HNBUFF',idd
3656 ENDIF
3657 ierr = 1
3658 RETURN
3659 ELSEIF (iq(lbuf-5) .NE. idd) THEN
3660 lbuf = lq(lcdir-4)
3661 20 IF (iq(lbuf-5) .EQ. idd) GOTO 40
3662 IF (lq(lbuf) .NE. 0) THEN
3663 lbuf = lq(lbuf)
3664 GOTO 20
3665 ENDIF
3666 IF (fatal) THEN
3667 print*,'Buffer structure not found.','HNBUFF',idd
3668 ENDIF
3669 ierr = 1
3670 RETURN
3671 ENDIF
3672 40 CONTINUE
3673 print*, '>>>>>> CALL HNTMPF(IDD, FATAL)'
3674******CALL HNTMPF(IDD, FATAL)
3675 END
3676
3677*-------------------------------------------------------------------------------
3678
3679 SUBROUTINE hnbfwr(IDD)
3680 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3681 REAL FENC , HCV
3682 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3683 +hcv(4000000-11)
3684 INTEGER IQ ,LQ
3685 REAL Q
3686 dimension iq(2),q(2),lq(8000)
3687 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3688 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3689 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3690 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3691 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3692 +lhfit,lfunc,lhfco,lhfna,lcidn
3693 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3694 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3695 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3696 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3697 +lhfit,lfunc,lhfco,lhfna,lcidn
3698 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3699 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3700 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3701 + kcon1 ,kcon2 ,kbits ,kntot
3702 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3703 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3704 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3705 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3706 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
3707 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3708 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
3709 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
3710 + zid, zntmp, zntmp1, zlink
3711 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
3712 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
3713 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
3714 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
3715 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
3716 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
3717 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3718 + nchar ,nrhist,ierr ,nv
3719 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3720 + nchar ,nrhist,ierr ,nv
3721 CHARACTER*128 CHWOLD, CHDIR, CWDRZ
3722 INTEGER KEYS(2)
3723 ierr = 0
3724 CALL hnbuff(idd, .false.)
3725 IF (ierr .NE. 0) GOTO 99
3726 nchrz = iq(lcid+znchrz)
3727 IF(nchrz.NE.0)THEN
3728 CALL rzcdir(cwdrz,'R')
3729 CALL hcdir(chwold,'R')
3730 chdir = ' '
3731 CALL uhtoc(iq(lcid+znchrz+1),4,chdir,nchrz)
3732 IF (chdir .NE. cwdrz) THEN
3733 CALL hcdir(chdir,' ')
3734 ENDIF
3735 ENDIF
3736 keys(1) = idd
3737 keys(2) = 0
3738 lblok = lq(lcid-1)
3739 lchar = lq(lcid-2)
3740 lint = lq(lcid-3)
3741 lreal = lq(lcid-4)
374210 lname = lq(lblok-1)
3743 ioff = 0
3744 ndim = iq(lblok+zndim)
3745 DO 20 i = 1, ndim
3746 lcind = iq(lname+ioff+zlcont)
3747 lb = lq(lbuf-lcind)
3748 IF (lb .EQ. 0) GOTO 15
3749 IF (jbit(iq(lb),1) .EQ. 0) GOTO 15
3750 CALL sbit0(iq(lb),1)
3751 keys(2) = iq(lname+ioff+znrzb)*10000 + iq(lname+ioff+zlcont)
3752 IF (iq(lcid+znprim) .GT. 0) THEN
3753 print*, '>>>>>> HRZOUT'
3754****** CALL HRZOUT(IHDIV,LB,KEYS,ICYCLE,'A')
3755 ELSE
3756 print*, '>>>>>> HRZOUT'
3757****** CALL HRZOUT(IHDIV,LB,KEYS,ICYCLE,'LA')
3758 ENDIF
375915 ioff = ioff + znaddr
376020 CONTINUE
3761 lblok = lq(lblok)
3762 IF (lblok .NE. 0) GOTO 10
3763 IF (keys(2) .NE. 0) CALL sbit1(iq(lq(lcid-1)),1)
3764 IF (nchrz.NE.0.AND.chdir .NE. cwdrz) THEN
3765 CALL hcdir(chwold,' ')
3766 IF (chwold .NE. cwdrz) THEN
3767 CALL rzcdir(cwdrz,' ')
3768 ENDIF
3769 ENDIF
377099 RETURN
3771 END
3772*-------------------------------------------------------------------------------
3773
3774 SUBROUTINE hnhdwr(IDD)
3775 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3776 REAL FENC , HCV
3777 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3778 +hcv(4000000-11)
3779 INTEGER IQ ,LQ
3780 REAL Q
3781 dimension iq(2),q(2),lq(8000)
3782 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3783 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3784 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3785 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3786 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3787 +lhfit,lfunc,lhfco,lhfna,lcidn
3788 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3789 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3790 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3791 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3792 +lhfit,lfunc,lhfco,lhfna,lcidn
3793 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3794 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3795 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3796 + kcon1 ,kcon2 ,kbits ,kntot
3797 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3798 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3799 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3800 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3801 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
3802 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3803 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
3804 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
3805 + zid, zntmp, zntmp1, zlink
3806 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
3807 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
3808 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
3809 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
3810 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
3811 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
3812 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3813 + nchar ,nrhist,ierr ,nv
3814 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3815 + nchar ,nrhist,ierr ,nv
3816 CHARACTER*128 CHWOLD, CHDIR, CWDRZ
3817 INTEGER KEYS(2)
3818 ierr = 0
3819 nchrz = iq(lcid+znchrz)
3820 CALL rzcdir(cwdrz,'R')
3821 CALL hcdir(chwold,'R')
3822 chdir = ' '
3823 CALL uhtoc(iq(lcid+znchrz+1),4,chdir,nchrz)
3824 IF (chdir.NE.cwdrz) THEN
3825 CALL hcdir(chdir,' ')
3826 ENDIF
3827 lc = lq(lcid-1)
3828 IF (jbit(iq(lc),1) .NE. 0) THEN
3829 CALL sbit0(iq(lc),1)
3830 CALL sbit0(iq(lc),2)
3831 keys(1) = idd
3832 keys(2) = 0
3833 print*, '>>>>>> HRZOUT'
3834****** CALL HRZOUT(IHDIV,LCID,KEYS,ICYCLE,' ')
3835 CALL rzsave
3836 ENDIF
3837 IF (chdir.NE.cwdrz) THEN
3838 CALL hcdir(chwold,' ')
3839 IF (chwold .NE. cwdrz) THEN
3840 CALL rzcdir(cwdrz,' ')
3841 ENDIF
3842 ENDIF
3843 END
3844
3845*-------------------------------------------------------------------------------
3846
3847 SUBROUTINE hldir(CHPATH,CHOPT)
3848 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3849 REAL FENC , HCV
3850 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3851 +hcv(4000000-11)
3852 INTEGER IQ ,LQ
3853 REAL Q
3854 dimension iq(2),q(2),lq(8000)
3855 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3856 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3857 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3858 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3859 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3860 +lhfit,lfunc,lhfco,lhfna,lcidn
3861 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3862 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3863 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3864 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3865 +lhfit,lfunc,lhfco,lhfna,lcidn
3866 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3867 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3868 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3869 + kcon1 ,kcon2 ,kbits ,kntot
3870 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3871 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3872 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3873 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3874 INTEGER LOUT,LERR,LINFIT
3875 common/hcunit/lout,lerr,linfit
3876 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
3877 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
3878 + ,ichtyp(mxfiles),ichlun(mxfiles)
3879 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
3880 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
3881 + ,chtop(nlpatm)
3882 CHARACTER*(LENHFN) HFNAME
3883 COMMON /hcfile/hfname(mxfiles)
3884 CHARACTER*128 CHMAIL
3885 COMMON /hcmail/chmail
3886 dimension ipawc(99)
3887 equivalence(nwpaw,ipawc(1))
3888 common/quest/iquest(100)
3889 CHARACTER*(*) CHPATH,CHOPT
3890 CHARACTER*128 CHWOLD
3891 dimension lcur(15),iopt(5)
3892 equivalence(ioptt,iopt(1)),(ioptr,iopt(2)),(ioptn,iopt(3))
3893 equivalence(iopti,iopt(4)),(iopts,iopt(5))
3894 EXTERNAL hldirt
3895 IF(chpath.EQ.'//')THEN
3896 DO 10 i=1,nchtop
3897 chmail=chtop(i)//hfname(i)
3898 nch=lenocc(chmail)
3899 WRITE(lout,1000)chmail(1:nch)
3900 10 CONTINUE
3901 1000 FORMAT(' //',a)
3902 GO TO 99
3903 ENDIF
3904 IF(lhbook.EQ.0)GO TO 99
3905 CALL huoptc (chopt,'TRNIS',iopt)
3906 CALL hpaff(chcdir,nlcdir,chwold)
3907 lr2=lcdir
3908 CALL hcdir(chpath,' ')
3909 IF (iquest(1) .NE. 0) GOTO 40
3910 IF(ichtop(icdir).NE.0)THEN
3911 IF(ioptr.NE.0)THEN
3912 print*,'CALL HRZLD(...)'
3913****** CALL HRZLD(' ',CHOPT)
3914 ELSE
3915 iquest(88)=iopts
3916 iquest(89)=ioptn
3917 IF(ioptt.EQ.0)THEN
3918 CALL hldirt(chpath)
3919 ELSE
3920 CALL rzscan(' ',hldirt)
3921 ENDIF
3922 ENDIF
3923 GO TO 40
3924 ENDIF
3925 nlpat0=nlpat
3926 lcur(nlpat)=lcdir
3927 IF(iopts.NE.0)THEN
3928 print*,'>>>>>> CALL ZSORTI(IHDIV,LIDS,-5)'
3929****** CALL ZSORTI(IHDIV,LIDS,-5)
3930 ENDIF
3931 print*,'>>>>>> CALL HLDIR1(IOPTI,IOPTN,1)'
3932******CALL HLDIR1(IOPTI,IOPTN,1)
3933 20 nlpat=nlpat+1
3934 lcdir=lq(lcdir-1)
3935 30 lcur(nlpat)=lcdir
3936 IF(lcdir.EQ.0)THEN
3937 nlpat=nlpat-1
3938 lcdir=lcur(nlpat)
3939 IF(nlpat.LE.nlpat0)GO TO 40
3940 lcdir=lq(lcdir)
3941 GO TO 30
3942 ENDIF
3943 CALL uhtoc(iq(lcdir+1),4,chcdir(nlpat),16)
3944 lids=lq(lcdir-2)
3945 ltab=lq(lcdir-3)
3946 IF(iopts.NE.0)THEN
3947 print*,'>>>>>> CALL ZSORTI(IHDIV,LIDS,-5)'
3948****** CALL ZSORTI(IHDIV,LIDS,-5)
3949 ENDIF
3950 print*,'>>>>>> CALL HLDIR1(IOPTI,IOPTN,IOPTT)'
3951******CALL HLDIR1(IOPTI,IOPTN,IOPTT)
3952 GO TO 20
3953 40 CALL hcdir(chwold,' ')
3954 lcdir = lr2
3955 lids = lq(lcdir-2)
3956 ltab = lq(lcdir-3)
3957 lbufm = lq(lcdir-4)
3958 ltmpm = lq(lcdir-5)
3959 99 RETURN
3960 END
3961
3962*-------------------------------------------------------------------------------
3963
3964 SUBROUTINE hldirt(CHDIR)
3965 INTEGER NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU, LMAIN
3966 REAL FENC , HCV
3967 common/pawc/nwpaw,ixpawc,ihdiv,ixhigz,ixku,fenc(5),lmain,
3968 +hcv(4000000-11)
3969 INTEGER IQ ,LQ
3970 REAL Q
3971 dimension iq(2),q(2),lq(8000)
3972 equivalence(lq(1),lmain),(iq(1),lq(9)),(q(1),iq(1))
3973 INTEGER HVERSN,IHWORK,LHBOOK,LHPLOT,LGTIT,LHWORK,
3974 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3975 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3976 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum,
3977 +lhfit,lfunc,lhfco,lhfna,lcidn
3978 common/hcbook/hversn,ihwork,lhbook,lhplot,lgtit,lhwork,
3979 +lcdir,lsdir,lids,ltab,lcid,lcont,lscat,lprox,lproy,lslix,
3980 +lsliy,lbanx,lbany,lprx,lpry,lfix,llid,lr1,lr2,lname,lchar,lint,
3981 +lreal,lblok,llblk,lbufm,lbuf,ltmpm,ltmp,ltmp1,lhplip,lhdum(9),
3982 +lhfit,lfunc,lhfco,lhfna,lcidn
3983 INTEGER KNCX ,KXMIN ,KXMAX ,KMIN1 ,KMAX1 ,KNORM , KTIT1,
3984 + kncy ,kymin ,kymax ,kmin2 ,kmax2 ,kscal2 , ktit2,
3985 + knbit ,knoent ,kstat1 ,knsdir ,knrh ,
3986 + kcon1 ,kcon2 ,kbits ,kntot
3987 parameter(kncx=3,kxmin=4,kxmax=5,kmin1=7,kmax1=8,knorm=9,ktit1=10,
3988 + kncy=7,kymin=8,kymax=9,kmin2=6,kmax2=10,kscal2=11,
3989 + ktit2=12,knbit=1,knoent=2,kstat1=3,knsdir=5,knrh=6,
3990 + kcon1=9,kcon2=3,kbits=1,kntot=2)
3991 INTEGER ID ,IDBADD,LID ,IDLAST,IDHOLD,NBIT ,NBITCH,
3992 + nchar ,nrhist,ierr ,nv
3993 common/hcflag/id ,idbadd,lid ,idlast,idhold,nbit ,nbitch,
3994 + nchar ,nrhist,ierr ,nv
3995 INTEGER LOUT,LERR,LINFIT
3996 common/hcunit/lout,lerr,linfit
3997 INTEGER ZBITS, ZNDIM, ZNOENT, ZNPRIM, ZNRZB, ZIFCON,
3998 + zifnam, zifcha, zifint, zifrea, znwtit, zitit1,
3999 + znchrz, zdesc, zlname, zname, zarind, zrange, znaddr,
4000 + ziblok, znblok, zlcont, zifbit, zibank, ziftmp, zitmp,
4001 + zid, zntmp, zntmp1, zlink
4002 parameter(zbits=1, zndim=2, znoent=3, znprim=4, zlcont=6,
4003 + znrzb=5, zifcon=7, zifnam=4, zifcha=5, zifint=6,
4004 + zifrea=7, znwtit=8, zitit1=9, znchrz=13, zifbit=8,
4005 + zdesc=1, zlname=2, zname=3, zrange=4, znaddr=12,
4006 + zarind=11, ziblok=8, znblok=10, zibank=9, ziftmp=11,
4007 + zid=12, zitmp=10, zntmp=6, zntmp1=3, zlink=6)
4008 CHARACTER*(*) CHDIR
4009 common/quest/iquest(100)
4010 CHARACTER*1 HTYPE
4011 INTEGER KEYS(2)
4012 nch=lenocc(chdir)
4013 WRITE(lout,1000)chdir(1:nch)
4014 iopts=iquest(88)
4015 ioptn=iquest(89)
4016 IF(iopts.NE.0)THEN
4017 print*,'>>>>>> CALL HRSORT(...)'
4018****** CALL HRSORT('S')
4019 ENDIF
4020 keynum = 1
4021 keys(1) = keynum
4022 keys(2) = 0
4023 CALL hrzin(ihwork,0,0,keys,9999,'SC')
4024 idn=iquest(21)
4025 iq42=iquest(22)
4026 10 IF (idn .EQ. 0) GOTO 90
4027 keys(1) = keynum
4028 CALL hrzin(ihwork,0,0,keys,9999,'SNC')
4029 IF(iquest(1).NE.0)GO TO 90
4030 idn =iquest(21)
4031 iq40=iquest(40)
4032 iq41=iquest(41)
4033 iq42=iquest(42)
4034 IF(iq40.EQ.0) iq41=0
4035 nwords=iquest(12)
4036 iopta=jbit(iquest(14),4)
4037 IF(iopta.NE.0)GO TO 40
4038 CALL hspace(nwords+1000,'HLDIR ',idn)
4039 IF(ierr.NE.0) GO TO 90
4040 CALL hrzin(ihwork,lhwork,1,keys,9999,'SND')
4041 IF(iquest(1).NE.0)THEN
4042 print*, 'Bad sequence for RZ','HLDIR',idn
4043 GO TO 90
4044 ENDIF
4045 IF(iq(lhwork-2).EQ.0)THEN
4046 WRITE(lout,2100)idn
4047 ELSEIF(jbit(iq(lhwork+kbits),1).NE.0)THEN
4048 IF(ioptn.EQ.0)THEN
4049 htype='1'
4050 nwtitl=iq(lhwork-1)-ktit1+1
4051 WRITE(lout,2000)idn,htype,(iq(lhwork+ktit1+i-1),i=1,nwtitl)
4052 ENDIF
4053 ELSEIF(jbyt(iq(lhwork+kbits),2,2).NE.0)THEN
4054 IF(ioptn.EQ.0)THEN
4055 htype='2'
4056 nwtitl=iq(lhwork-1)-ktit2+1
4057 WRITE(lout,2000)idn,htype,(iq(lhwork+ktit2+i-1),i=1,nwtitl)
4058 ENDIF
4059 ELSEIF(jbit(iq(lhwork+kbits),4).NE.0)THEN
4060 htype='N'
4061 IF (iq(lhwork-2) .EQ. 2) THEN
4062 itit1=iq(lhwork+9)
4063 nwtitl=iq(lhwork+8)
4064 ELSE
4065 itit1=iq(lhwork+zitit1)
4066 nwtitl=iq(lhwork+znwtit)
4067 ENDIF
4068 WRITE(lout,2000)idn,htype,(iq(lhwork+itit1+i-1),i=1,nwtitl)
4069 ENDIF
4070 CALL mzdrop(ihwork,lhwork,' ')
4071 40 lhwork=0
4072 IF(iq40.EQ.0)THEN
4073 CALL mzwipe(ihwork)
4074 GO TO 99
4075 ENDIF
4076 keynum=keynum+1
4077 idn=iq41
4078 GO TO 10
4079 90 CONTINUE
4080 1000 FORMAT(//,' ===> Directory : ',a)
4081 2000 FORMAT(1x,i10,1x,'(',a,')',3x,20a4)
4082 2100 FORMAT(1x,i10,1x,'(A) Unnamed array')
4083 99 RETURN
4084 END
4085
4086*-------------------------------------------------------------------------------
4087
4088 SUBROUTINE hrend(CHDIR)
4089 parameter(nlpatm=100, mxfiles=50, lenhfn=128)
4090 COMMON /hcdirn/nlcdir,nlndir,nlpat,icdir,nchtop,ichtop(mxfiles)
4091 + ,ichtyp(mxfiles),ichlun(mxfiles)
4092 CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP
4093 COMMON /hcdirc/chcdir(nlpatm),chndir(nlpatm),chpat(nlpatm)
4094 + ,chtop(nlpatm)
4095 CHARACTER*(LENHFN) HFNAME
4096 COMMON /hcfile/hfname(mxfiles)
4097 CHARACTER*(*) CHDIR
4098 nchmax=nchtop
4099 DO 20 i=2,nchmax
4100 IF(chtop(i).EQ.chdir)THEN
4101 IF(ichtop(i).GT.0.AND.ichtop(i).LT.1000)THEN
4102 CALL rzend(chdir)
4103****** CALL HBFREE(ICHTOP(I))
4104 ENDIF
4105****** CALL HNTDEL(CHDIR)
4106 DO 10 j=i+1,nchtop
4107 ichtop(j-1)=ichtop(j)
4108 ichlun(j-1)=ichlun(j)
4109 ichtyp(j-1)=ichtyp(j)
4110 chtop(j-1)=chtop(j)
4111 hfname(j-1)=hfname(j)
4112 10 CONTINUE
4113 nchtop=nchtop-1
4114 ENDIF
4115 20 CONTINUE
4116 CALL hcdir('//PAWC',' ')
4117 END
4118
4119*-------------------------------------------------------------------------------
4120
4121 SUBROUTINE hgntf(IDD,IDNEVT,IERROR)
4122 print*,'>>>>>> Dummy HGNTF'
4123 END
4124
4125*-------------------------------------------------------------------------------
4126
#define a(i)
Definition RSha256.hxx:99
#define e(i)
Definition RSha256.hxx:103
#define quest
#define rzink
#define hcbits
#define hcbook
#define pawc
#define bigbuf
Definition h2root.cxx:46
#define uhtoc
Definition h2root.cxx:129
subroutine hgnt1(idd, blkna1, var, ioffst, nvar, idnevt, ierror)
Definition hbook.f:1080
subroutine hntrd(indx, ioff, ibank, ierror)
Definition hbook.f:3079
subroutine hbnam(idd, blkna1, addres, form1, ischar)
Definition hbook.f:1695
subroutine hnbufd(idd)
Definition hbook.f:3330
subroutine hgnt(idn, idnevt, ierror)
Definition hbook.f:1074
subroutine hrzin(ixdiv, lbank, jbias, keys, icycle, chopt)
Definition hbook.f:615
subroutine hnmadr(var1, iadd, ischar)
Definition hbook.f:2490
function hij(idd, i, j)
Definition hbook.f:1859
subroutine hldirt(chdir)
Definition hbook.f:3965
function hcx(icx, iopt)
Definition hbook.f:2219
subroutine hnoent(idd, numb)
Definition hbook.f:667
subroutine hgnt2(var1, ivoff, nvar1, idnevt, ierror)
Definition hbook.f:1187
subroutine hrzcd(chdir, chopt)
Definition hbook.f:2471
subroutine hntmp(idd)
Definition hbook.f:2856
subroutine hgiven(id1, chtitl, nvar, tags, rlow, rhigh)
Definition hbook.f:805
subroutine hnbuff(idd, fatal)
Definition hbook.f:3622
subroutine hrin(idd, icycle, kofset)
Definition hbook.f:382
subroutine hnhdwr(idd)
Definition hbook.f:3775
subroutine hntvar(id1, ivar, chtag, block, nsub, itype, isize, ielem)
Definition hbook.f:3379
function hcxy(icx, icy, iopt)
Definition hbook.f:2331
integer function hnbptr(blkna1)
Definition hbook.f:3565
subroutine hlimit(limit)
Definition hbook.f:165
subroutine hpaff(ch, nl, chpath)
Definition hbook.f:3189
subroutine hndesc(ioff, nsub, itype, isize, nbits, indvar)
Definition hbook.f:2734
subroutine hgntf(idd, idnevt, ierror)
Definition hbook.f:4122
function hije(idd, i, j)
Definition hbook.f:1950
subroutine hntvar2(id1, ivar, chtag, chfull, block, nsub, itype, isize, nbits, ielem)
Definition hbook.f:11
subroutine hrzfra(ih, ioh, nw)
Definition hbook.f:3218
subroutine hmachi
Definition hbook.f:2095
subroutine hdelet(id1)
Definition hbook.f:1599
function hif(idd, i)
Definition hbook.f:1852
subroutine hntvar3(id, last, chvar)
Definition hbook.f:136
subroutine hgnpar(idn, chrout)
Definition hbook.f:914
function hi(idd, i)
Definition hbook.f:1807
subroutine hix(idd, i, x)
Definition hbook.f:1866
subroutine hparnt(idn, chrout)
Definition hbook.f:2785
subroutine hropen(lun, chdir, cfname, choptt, lrecl, istat)
Definition hbook.f:240
subroutine hrend(chdir)
Definition hbook.f:4089
subroutine hpath(chpath)
Definition hbook.f:2600
subroutine hntmpd(idd)
Definition hbook.f:3282
subroutine hspace(n, chrout, idd)
Definition hbook.f:3234
function hie(idd, i)
Definition hbook.f:1814
subroutine hgive(idd, chtitl, ncx, xmin, xmax, ncy, ymin, ymax, nwt, idb)
Definition hbook.f:710
subroutine hitoc(ival, valc, ncstr, ierr)
Definition hbook.f:2576
subroutine hldir(chpath, chopt)
Definition hbook.f:3848
subroutine hrfile(lun, chdir, chopt)
Definition hbook.f:292
subroutine hnmset(idd, item, ival)
Definition hbook.f:3499
subroutine hcdir(chpath, chopt)
Definition hbook.f:1957
subroutine hdcofl
Definition hbook.f:1550
subroutine huoptc(cchopt, cstr, iopt)
Definition hbook.f:2459
subroutine hgnf(idn, idnevt, x, ierror)
Definition hbook.f:992
subroutine hfind(idd, chrout)
Definition hbook.f:2391
subroutine hnbufr(idd)
Definition hbook.f:2942
subroutine hnbfwr(idd)
Definition hbook.f:3680
subroutine hijxy(idd, i, j, x, y)
Definition hbook.f:1914
subroutine sbyt(it, izw, izp, nzb)
Definition kernlib.f:175
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
function locati(array, length, object)
Definition kernlib.f:136
subroutine vzero(a, n)
Definition kernlib.f:106
subroutine sbit1(izw, izp)
Definition kernlib.f:186
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
static uint64_t sum(uint64_t i)
Definition Factory.cxx:2338
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 mzebra(list)
Definition zebra.f:10
subroutine rzsave
Definition zebra.f:1245
subroutine mzneed(ixdiv, needp, chopt)
Definition zebra.f:2528
subroutine mzpush(ixdiv, lorgp, incnlp, incndp, chopt)
Definition zebra.f:2240
subroutine rzfile(lunin, chdir, chopt)
Definition zebra.f:2799
subroutine mzwipe(ixwp)
Definition zebra.f:7191
subroutine rzscan(chpath, urout)
Definition zebra.f:7098
subroutine mzlink(ixstor, chname, larea, lref, lrefl)
Definition zebra.f:2103
subroutine mzdrop(ixstor, lheadp, chopt)
Definition zebra.f:4274
subroutine mzbook(ixp, lp, lsupp, jbp, chidh, nl, ns, nd, niop, nzp)
Definition zebra.f:1748
subroutine rzcdir(chpath, chopt)
Definition zebra.f:2642
subroutine mzform(chid, chform, ixiop)
Definition zebra.f:4646
subroutine mzpaw(nwords, chopt)
Definition zebra.f:205
subroutine rzend(chdir)
Definition zebra.f:7219