]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/zebra/mqg/mztabc.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / mqg / mztabc.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.3 1996/04/24 17:26:33 mclareni
6* Extend the include file cleanup to dzebra, rz and tq, and also add
7* dependencies in some cases.
8*
9* Revision 1.2 1996/04/18 16:12:44 mclareni
10* Incorporate changes from J.Zoll for version 3.77
11*
12* Revision 1.1.1.1 1996/03/06 10:47:20 mclareni
13* Zebra
14*
15*
16#include "zebra/pilot.h"
17 SUBROUTINE MZTABC
18
19C- Construct table of banks with value IQTVAL in status bit IQTBIT
20C-
21C- LQMTC1 start adr of first bank
22C- LQMTC2 end+1 adr of last bank
23C- LQTC1 first table word available
24C- LQTC2 last table word available
25
26C- Return IQPART if table incomplete
27C- NQFRTC number of words occupied by the holes
28C- NQLIVE number of live banks
29
30#include "zebra/mzcn.inc"
31#include "zebra/mqsys.inc"
32#include "zebra/mzct.inc"
33C-------------- End CDE --------------
34 EQUIVALENCE (LS,IQLS), (LNX,IQNX)
35#if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
36 DIMENSION NAMESR(2)
37 DATA NAMESR / 4HMZTA, 4HBC /
38#endif
39#if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
40 DATA NAMESR / 6HMZTABC /
41#endif
42#if !defined(CERNLIB_QTRHOLL)
43 CHARACTER NAMESR*8
44 PARAMETER (NAMESR = 'MZTABC ')
45#endif
46
47#include "zebra/q_jbit.inc"
48#if !defined(CERNLIB_QDEBUG)
49#include "zebra/q_jbyt.inc"
50#endif
51
52
53#include "zebra/qtrace.inc"
54
55 NQFRTC = 0
56 NQLIVE = 0
57 N = 0
58
59 LNX = LQMTC1
60 LQTE = LQTC1
61 NEW = IQTVAL
62
63 LQ(LQTE) = LNX
64 LQ(LQTE+2) = 0
65
66C---- Next bank
67
68 21 MODE = NEW
69 22 LN = LNX
70 IF (LN.GE.LQMTC2) GO TO 41
71 N = N + 1
72#if defined(CERNLIB_QDEBUG)
73 CALL MZCHLN (-7,LN)
74 IF (IQFOUL.NE.0) GO TO 91
75#endif
76#if !defined(CERNLIB_QDEBUG)
77 NST = JBYT (LQ(KQS+LN),1,16) - 11
78 IF (NST.GE.0) THEN
79 LS = LN + NST
80 LNX = LS + IQ(KQS+LS-1) + 9
81 ELSE
82 LS = LN - 8
83 LNX = LN + NST + 11
84 ENDIF
85#endif
86 NEW = JBIT (IQ(KQS+LS),IQTBIT)
87 IF (NEW.EQ.MODE) GO TO 22
88 IF (NEW.EQ.IQTVAL) GO TO 36
89
90C-- Start of a dead group
91
92 NQLIVE = NQLIVE + N - 1
93 LQ(LQTE+1) = LN
94 LQ(LQTE+3) = 1
95 LQTE = LQTE + 4
96 GO TO 21
97
98C-- Start of a live group
99
100 36 NQFRTC = NQFRTC + (LN - LQ(LQTE-3))
101 LQ(LQTE) = LN
102 LQ(LQTE+2) = 0
103 N = 1
104 IF (LQTE.LT.LQTC2) GO TO 21
105 CALL MZTABH
106 IF (IQPART.EQ.0) GO TO 21
107 IQPART = 1
108 LN = LQMTC2
109
110C---- Close live end group
111
112 41 IF (NEW.NE.IQTVAL) GO TO 43
113 NQLIVE = NQLIVE + N
114 LQ(LQTE+1) = LN
115 LQ(LQTE+3) = 0
116 GO TO 45
117
118C-- Close dead end group
119
120 43 NQFRTC = NQFRTC + (LN-LQ(LQTE-3))
121 LQ(LQTE) = LN
122 LQ(LQTE+1) = LN
123 LQ(LQTE+2) = 0
124 LQ(LQTE+3) = 0
125
126 45 LQTE = LQTE + 4
127#include "zebra/qtrace99.inc"
128 RETURN
129
130C------ Error conditions
131
132 91 NQCASE = 1
133 NQFATA = 3
134 IQUEST(11) = LN
135 IQUEST(12) = LQMTC1
136 IQUEST(13) = LQMTC2
137#include "zebra/qtofatal.inc"
138 END
139* ==================================================
140#include "zebra/qcardl.inc"