]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/zebra/dzebra/dziopd.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / dzebra / dziopd.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.2 1996/04/24 17:26:11 mclareni
6* Extend the include file cleanup to dzebra, rz and tq, and also add
7* dependencies in some cases.
8*
9* Revision 1.1.1.1 1996/03/06 10:47:06 mclareni
10* Zebra
11*
12*
13*-----------------------------------------------------------
14#include "zebra/pilot.h"
15#if (defined(CERNLIB_DEBUGON))&&(defined(CERNLIB_VFORT))
16#include "zebra/debugvf1.inc"
17#endif
18 SUBROUTINE DZIOPD (IFIRST,ILAST)
19 SAVE KFOTYP
20#include "zebra/mqsys.inc"
21#include "zebra/qequ.inc"
22#include "zebra/mzioc.inc"
23#include "zebra/zbcdk.inc"
24#include "zebra/zunit.inc"
25#include "zebra/dzc1.inc"
26#include "zebra/bkfoparq.inc"
27
28 PARAMETER (NENLNQ = 5 )
29 PARAMETER (NLNGRQ = 10)
30 PARAMETER (NLISTQ = 6 )
31 PARAMETER (NLINEQ = 24)
32
33 CHARACTER CHROUT*(*),CHSTAK*6,KFOTYP(0:11)*1,CDWORD*31
34 DOUBLE PRECISION DWORD
35 INTEGER IWORD
36 REAL RWORD
37 EQUIVALENCE (DWORD,IWORD,RWORD)
38 PARAMETER (CHROUT = 'DZIOPD')
39 DATA KFOTYP /'U','B','I','F','D','H','*','S','*','N','*','L'/
40
41#if (defined(CERNLIB_DEBUGON))&&(defined(CERNLIB_VFORT))
42#include "zebra/debugvf2.inc"
43#endif
44
45
46
47
48
49
50
51 CHSTAK = CQSTAK(MCQSIQ:)
52 CQSTAK(MCQSIQ:) = CHROUT
53
54 INLINE = NLISTQ
55 ILINE = 1
56 NLINES = MIN((ILAST-IFIRST)/NENLNQ+1,NLNGRQ)
57 DO 5 I=1,NLINES
58 5 CQMAP(I) = ' '
59 CALL ZPAGE(IQPRNT,NLINES+2)
60 CQLINE = ' DATA part of bank'
61 CQLINE(60:) = '--------------------'
62 IF(IFLOPT(MPOSQQ).EQ.0) CALL DZTEXT(0,CDUMMQ,1)
63
64 JDATA = 0
65 JFOCUR = 0
66 NWPRNT = 0
67
68
69 10 ITYPE = MFO(JFOCUR+1)
70 IF (ITYPE.EQ.7) GO TO 40
71 NWSEC = MFO(JFOCUR+2)
72 IF (NWSEC) 20, 30, 60
73
74
75 20 NWSEC = ILAST - JDATA
76 GO TO 60
77
78
79 30 JDATA = JDATA + 1
80 IWORD = IQ(KQS+LS+JDATA)
81 NWSEC = IWORD
82 IF (JDATA.GE.IFIRST) THEN
83 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
84 + '(I6,'' *'',A1,''('',I13,'')'')')
85 + JDATA,KFOTYP(MIN(ITYPE,6)),NWSEC
86 NWPRNT = NWPRNT + 1
87 ENDIF
88 GO TO 50
89
90
91 40 JDATA = JDATA + 1
92 IWORD = IQ(KQS+LS+JDATA)
93 ITYPE = MOD (IWORD,16)
94 NWSEC = IWORD/16
95 IF (JDATA.GE.IFIRST) THEN
96 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
97 + '(I6,'' *S('',A1,'','',I11,'')'')')
98 + JDATA,KFOTYP(MIN(ITYPE,6)),NWSEC
99 NWPRNT = NWPRNT + 1
100 ENDIF
101
102 50 IF (JDATA.GE.IFIRST) THEN
103 IF ( (INLINE.EQ.NLISTQ+(NENLNQ-1)*NLINEQ)
104 X .AND. (ILINE.EQ.NLINES) ) THEN
105 IF (IFLOPT(MPOSQQ).NE.0) GO TO 999
106 IF (NWPRNT.GT.NLNGRQ*NENLNQ) CALL DZTEXT(1,CDUMMQ,1)
107 CALL DZTEXT(0,CDUMMQ,NLINES)
108 INLINE = NLISTQ
109 ILINE = 1
110 NLINES = MIN((ILAST-JDATA-1)/NENLNQ+1,NLNGRQ)
111 DO 55 I=1,NLINES
112 55 CQMAP(I) = ' '
113 ELSEIF (ILINE.EQ.NLINES) THEN
114 ILINE = 1
115 INLINE = INLINE + NLINEQ
116 ELSE
117 ILINE = ILINE + 1
118 ENDIF
119 ENDIF
120
121 IF (ITYPE.GE.8) THEN
122 ITYPE = 0
123 NWSEC = ILAST - JDATA
124 IQUEST(11) = -ITYPE
125 ELSEIF (NWSEC.EQ.0) THEN
126 ITYPE = 0
127 GO TO 900
128 ELSEIF (NWSEC.LT.0) THEN
129 ITYPE = 0
130 NWSEC = ILAST - JDATA
131 IQUEST(11) = -ITYPE-32
132 ENDIF
133
134
135 60 IDBLE = 0
136 DO 100 I=MAX(JDATA+1,IFIRST),MIN(JDATA+NWSEC,ILAST)
137 IWORD = IQ(KQS+LS+I)
138 IF (IDBLE.EQ.1) THEN
139 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
140 + '(I6,1X,A,'')'')') NWPRNT+IFIRST,CDWORD(16:)
141 IDBLE = 0
142 ELSEIF (ITYPE.EQ.IFOHOQ) THEN
143 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
144 + '(I6,5X,''"'',A12)') NWPRNT+IFIRST,IWORD
145 ELSEIF (ITYPE.EQ.IFOINQ) THEN
146 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
147 + '(I6,I18)') NWPRNT+IFIRST,IWORD
148 ELSEIF (ITYPE.EQ.IFOFLQ) THEN
149 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
150 + '(I6,G18.8)') NWPRNT+IFIRST,RWORD
151 ELSEIF (ITYPE.EQ.IFODOQ) THEN
152 CALL UCOPY(Q(KQS+LS+I),DWORD,2)
153 WRITE(CDWORD,'(D31.24)') DWORD
154 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
155 + '(I6,1X,''D('',A)') NWPRNT+IFIRST,CDWORD(:15)
156 IDBLE = 1
157 ELSE
158 WRITE(CQMAP(ILINE)(INLINE+1:INLINE+NLINEQ),
159 + '(I6,'' Z'',Z16)') NWPRNT+IFIRST,IWORD
160 ENDIF
161 NWPRNT = NWPRNT + 1
162
163 IF ( (INLINE.EQ.NLISTQ+(NENLNQ-1)*NLINEQ)
164 X .AND. (ILINE.EQ.NLINES) ) THEN
165 IF (IFLOPT(MPOSQQ).NE.0) GO TO 999
166 IF (NWPRNT.GT.NLNGRQ*NENLNQ) CALL DZTEXT(1,CDUMMQ,1)
167 CALL DZTEXT(0,CDUMMQ,NLINES)
168 INLINE = NLISTQ
169 ILINE = 1
170 NLINES = MIN((ILAST-NWPRNT-1)/NENLNQ+1,NLNGRQ)
171 DO 65 J=1,NLINES
172 65 CQMAP(J) = ' '
173 ELSEIF (ILINE.EQ.NLINES) THEN
174 ILINE = 1
175 INLINE = INLINE + NLINEQ
176 ELSE
177 ILINE = ILINE + 1
178 ENDIF
179
180 100 CONTINUE
181
182
183 JDATA = JDATA + NWSEC
184
185 IF (JDATA.GE.ILAST) GO TO 900
186
187 IF (JDATA.LT.ILAST) THEN
188 JFOCUR = JFOCUR + 2
189 IF (JFOCUR.LT.JFOEND) GO TO 10
190 JFOCUR = JFOREP
191 GO TO 10
192 ENDIF
193
194
195 900 IF (IFLOPT(MPOSQQ).NE.0) GO TO 999
196 IF (INLINE.NE.NLISTQ.OR.ILINE.NE.1) THEN
197 IF (NWPRNT.GT.NLNGRQ*NENLNQ) CALL DZTEXT(1,CDUMMQ,1)
198 CALL DZTEXT(0,CDUMMQ,NLINES)
199 ENDIF
200
201 999 CQSTAK(MCQSIQ:) = CHSTAK
202 END