]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/ggeom/ggvchk.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / ggeom / ggvchk.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:50 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.29 by S.Giani
11*-- Author :
12 SUBROUTINE GGVCHK (JVOM, IN, NVAR, LVAR)
13C.
14C. ******************************************************************
15C. * *
16C. * SUBR. GGVCHK (JVOM, IN, NVAR*, LVAR*) *
17C. * *
18C. * Checks volume parameters of IN'th content of mother volume *
19C. * at address JVOM or, when IN = 0, of mother volume itself. *
20C. * Returns NVAR = 0, when no variable parameters *
21C. * or NVAR =-1, when no variable parameters AND not a *
22C. * possible source of local development *
23C. * otherwise, *
24C. * the list LVAR of the NVAR variable parameters positions *
25C. * *
26C. * Called by : GGDVLP *
27C. * Author : F.Bruyant *
28C. * *
29C. ******************************************************************
30C.
31#include "geant321/gcbank.inc"
32#include "geant321/gcunit.inc"
33#include "geant321/gcshno.inc"
34C.
35 DIMENSION LVAR(*)
36 INTEGER LDP(7,12), NDP(12)
37 SAVE LDP,NDP
38C.
39 DATA NDP/ 3, 4, 5, 7, 3, 3, 5, 5, 4, 3, 2, 2 /
40 DATA LDP/ 1, 2, 3, 4*0, 1, 2, 3, 4, 3*0, 1, 2, 3, 4, 5, 2*0,
41 + 1, 4, 5, 6, 8, 9, 10, 1, 2, 3, 4*0, 1, 2, 3, 4*0,
42 + 1, 2, 3, 4, 5, 2*0, 1, 2, 3, 4, 5, 2*0, 1, 2, 3, 4, 3*0,
43 + 1, 2, 3, 4*0, 2, 3, 5*0, 2, 3, 5*0 /
44C.
45C. ------------------------------------------------------------------
46*
47 NVAR = 0
48 NSP = 0
49 IF (IN.EQ.0) THEN
50 NPAR = Q(JVOM+5)
51 IF (NPAR.LE.0) THEN
52 NIN = Q(JVOM+3)
53 IF (NIN.LT.0) NVAR = -1
54 GO TO 999
55 ENDIF
56 JPAR = JVOM +6
57 ISH = Q(JVOM+2)
58 ELSE
59 JIN = LQ(JVOM-IN)
60 IVO = Q(JIN+2)
61 JVO = LQ(JVOLUM-IVO)
62 NPAR = Q(JVO+5)
63 IF (NPAR.GT.0) THEN
64 JPAR = JVO +6
65 ELSE
66 NIN = Q(JVOM+3)
67 IF (NIN.LT.0) THEN
68 JPAR = 0
69 ELSE
70 JPAR = JIN +9
71 NIN = Q(JVO+3)
72 IF (NIN.LT.0) THEN
73 NSP = -1
74 ELSE
75*
76 DO 9 IIN = 1, NIN
77 JJIN = LQ(JVO-IIN)
78 IIVO = Q(JJIN+2)
79 JJVO = LQ(JVOLUM-IIVO)
80 NNPAR= Q(JJVO+5)
81 IF (NNPAR.GT.0) THEN
82 JJPAR= JJVO + 6
83 ELSE
84 NSP=-1
85 GO TO 10
86 ENDIF
87*
88 IISH = Q(JJVO+2)
89 NND = NDP(IISH)
90 IF (IISH.LE.10) THEN
91*
92* * Volumes other than PGON or PCON
93*
94 DO 6 ID = 1,NND
95 IIDP = LDP(ID,IISH)
96 IF (Q(JJPAR+IIDP).LT.0.) THEN
97 NSP = -1
98 GO TO 10
99 ENDIF
100 6 CONTINUE
101*
102 ELSE IF (IISH.LE.12) THEN
103*
104* * PGON and PCON volumes
105*
106 IPZ = 15 -IISH
107 JJPAR = JJPAR +IPZ
108 NNZ = 2*Q(JJPAR)
109 DO 8 IZ = 1, NNZ
110 DO 7 ID = 1, NND
111 IIDP = LDP(ID,IISH)
112 IF (Q(JJPAR+IIDP).LT.0.) THEN
113 NSP = -1
114 GO TO 10
115 ENDIF
116 7 CONTINUE
117 8 CONTINUE
118 ENDIF
119 9 CONTINUE
120*
121 ENDIF
122*
123 ENDIF
124 ENDIF
125 10 ISH = Q(JVO+2)
126 ENDIF
127* Shape 28 will not be supported in the future
128 IF (ISH.EQ.28.OR.ISH.EQ.13.OR.ISH.EQ.NSCTUB.OR.ISH.EQ.14)THEN
129 NVAR = 0
130 GO TO 999
131 ENDIF
132*
133 ND = NDP(ISH)
134*
135 IF (JPAR.LE.0) THEN
136 IF (ISH.LE.10) THEN
137*
138* * Volumes other PGON or PCON
139*
140 NVAR = ND
141 DO 11 ID = 1, ND
142 11 LVAR(ID) = LDP(ID,ISH)
143 ELSE IF (ISH.LE.12) THEN
144*
145* * PGON and PCON volumes
146*
147 IPZ = 15 - ISH
148 NVAR = 6
149 DO 12 ID = 1, NVAR
150 12 LVAR(ID) = IPZ + ID
151 ELSE
152*
153 GO TO 900
154 ENDIF
155 GO TO 999
156 ENDIF
157*
158 IF (ISH.LE.10) THEN
159*
160* * Volumes other than PGON or PCON
161*
162 DO 19 ID = 1,ND
163 IDP = LDP(ID,ISH)
164 IF (Q(JPAR+IDP).GE.0.) GO TO 19
165 NVAR = NVAR +1
166 LVAR(NVAR) = IDP
167 19 CONTINUE
168*
169 ELSE IF (ISH.LE.12) THEN
170*
171* * PGON and PCON volumes
172*
173 IPZ = 15 -ISH
174 JPAR = JPAR +IPZ
175 NZ = 2*Q(JPAR)
176 INC = IPZ
177 DO 29 IZ = 1,NZ
178 DO 28 ID = 1,ND
179 IDP = LDP(ID,ISH)
180 IF (Q(JPAR+IDP).GE.0.) GO TO 28
181 NVAR = NVAR +1
182 LVAR(NVAR) = INC +IDP
183 28 CONTINUE
184 INC = INC +3
185 29 CONTINUE
186 ELSE
187*
188 GO TO 900
189 ENDIF
190 IF (NVAR.EQ.0) NVAR = NSP
191 GO TO 999
192*
193 900 WRITE (CHMAIL, 1001) ISH
194 CALL GMAIL (0, 0)
195 1001 FORMAT (' GGVCHK : No code for shape ISH=',I5)
196* END GGVCHK
197 999 END