]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/zebra/mqs/mzxref.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / mqs / mzxref.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.2 1996/04/18 16:13:12 mclareni
6* Incorporate changes from J.Zoll for version 3.77
7*
8* Revision 1.1.1.1 1996/03/06 10:47:22 mclareni
9* Zebra
10*
11*
12#include "zebra/pilot.h"
13 SUBROUTINE MZXREF (IXFRP,IXTOP,CHOPT)
14
15C- Set cross-reference division IXFR pointing to IXTO
16
17#include "zebra/mqsys.inc"
18C-------------- END CDE --------------
19 DIMENSION IXFRP(9), IXTOP(9)
20 CHARACTER *(*) CHOPT
21#if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
22 DIMENSION NAMESR(2)
23 DATA NAMESR / 4HMZXR, 4HEF /
24#endif
25#if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
26 DATA NAMESR / 6HMZXREF /
27#endif
28#if !defined(CERNLIB_QTRHOLL)
29 CHARACTER NAMESR*8
30 PARAMETER (NAMESR = 'MZXREF ')
31#endif
32
33#include "zebra/q_jbyt.inc"
34#include "zebra/q_sbit0.inc"
35#include "zebra/q_sbit1.inc"
36
37
38 IXFR = IXFRP(1)
39 IXTO = IXTOP(1)
40
41#include "zebra/qtrace.inc"
42
43 CALL UOPTC (CHOPT,'ARC',IQUEST)
44 MODE = IQUEST(1)
45 IF (IQUEST(2).NE.0) MODE=-1
46 IF (IQUEST(3).NE.0) MODE=-2
47
48C- MODE +1 Add, 0 set, -1 Remove, -2 Contained
49
50 CALL MZSDIV (IXFR,0)
51 IF (JQDIVI.EQ.0) GO TO 91
52 IF (MODE.EQ.-2) GO TO 27
53
54 JST = JBYT (IXTO,27,6)
55 IF (JST-16.EQ.JQSTOR) GO TO 31
56 IF (JST.NE.JQSTOR) GO TO 92
57
58C-- SINGLE DIVISION INDEX
59
60 JDV = JBYT (IXTO,1,26)
61 IF (JDV.GE.25) GO TO 93
62 IF (JDV.EQ.0) GO TO 93
63 IQUEST(1) = JDV
64 NBI = 1
65 GO TO 34
66
67C-- CONTAINED DIVISION
68
69 27 IQRCU(KQT+JQDIVI) = 0
70 IQRTO(KQT+JQDIVI) = 0
71 IQRNO(KQT+JQDIVI) = 0
72 GO TO 999
73
74C-- COMPOSITE INDEX
75
76 31 CALL UBITS (IXTO,26,IQUEST,NBI)
77
78 IF (NBI.EQ.0) GO TO 93
79 IF (IQUEST(NBI).GE.25) GO TO 93
80
81 34 IF (MODE.NE.0) GO TO 41
82 IQRTO(KQT+JQDIVI) = 0
83 IQRNO(KQT+JQDIVI) = 9437183
84
85 41 DO 49 JBI=1,NBI
86 JDV = IQUEST(JBI)
87 IF (MODE.LT.0) GO TO 47
88
89C-- add
90 IQRTO(KQT+JQDIVI) = MSBIT1 (IQRTO(KQT+JQDIVI),JDV)
91 IF (JDV.GE.21 .AND. JDV.LT.24) GO TO 49
92 IQRNO(KQT+JQDIVI) = MSBIT1 (IQRNO(KQT+JQDIVI),JDV)
93 GO TO 49
94
95C-- remove
96 47 IQRTO(KQT+JQDIVI) = MSBIT0 (IQRTO(KQT+JQDIVI),JDV)
97 IQRNO(KQT+JQDIVI) = MSBIT0 (IQRNO(KQT+JQDIVI),JDV)
98 49 CONTINUE
99 CALL MZXRUP
100#include "zebra/qtrace99.inc"
101 RETURN
102
103C------ ERROR CONDITIONS
104
105 93 NQCASE = 1
106 92 NQCASE = NQCASE + 1
107 91 NQCASE = NQCASE + 1
108 NQFATA = 3
109 IQUEST(11) = IXFR
110 IQUEST(12) = IXTO
111 IQUEST(13) = MODE
112#include "zebra/qtofatal.inc"
113 END
114* ==================================================
115#include "zebra/qcardl.inc"