5 * Revision 1.1.1.1 1995/10/24 10:20:48 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.28 by S.Giani
12 SUBROUTINE GCENT(IAX,X0)
14 C. ******************************************************************
16 C * SUBROUTINE TO CENTRE A SLICE OF THE NLEVEL TH *
17 C * SHAPE, WHEN THE CENTRE OF THE SLICE ALONG AXIS *
18 C * NUMBER IAX AFTER ROTATION BY MATRIX IROT IS AT *
19 C * X0(IAX). THE CENTER IN THE UNROTATED FRAME IS *
22 C. * ==>Called by : GFTRAC, GINVOL, GLVOLU, GMEDIV, GNEXT, *
24 C. * Author A.McPherson ********* *
26 C. ******************************************************************
28 #include "geant321/gcbank.inc"
29 #include "geant321/gcvolu.inc"
30 #include "geant321/gcunit.inc"
31 DIMENSION X0(3),PAR(50),ATT(20)
33 C. ------------------------------------------------------------------
42 C NOT A GENERAL TRAPEZOID.
44 IF(ISH.EQ.10.AND.IAX.NE.1) GO TO 20
46 C NOT A PARALLELEPIPED WITH NON X AXIS SLICING.
49 IF(I.NE.IAX) X0(I)=0.0
57 IF(NLEVEL.LE.1) GO TO 30
60 IVOO = LVOLUM(NLEVEL-1)
61 JVOO = LQ(JVOLUM-IVOO)
62 IF (Q(JVOO+3).LT.0.) THEN
71 IF (NLEVEL.LT.NLDEV(NLEVEL)) THEN
74 * (case with structure JVOLUM locally developed)
75 JPAR = LQ(LQ(JVOLUM-LVOLUM(NLDEV(NLEVEL))))
76 IF (NLEVEL.EQ.NLDEV(NLEVEL)) GO TO 120
77 DO 110 ILEV = NLDEV(NLEVEL), NLEVEL-1
78 IF (IQ(JPAR+1).EQ.0) THEN
79 JPAR = LQ(JPAR-LINDEX(ILEV+1))
80 IF (JPAR.EQ.0) GO TO 120
81 ELSE IF (IQ(JPAR-3).GT.1) THEN
82 JPAR = LQ(JPAR-LINDEX(ILEV+1))
86 IF (ILEV.EQ.NLEVEL-1) THEN
89 CALL UCOPY (Q(JPAR+1), PAR, NPAR)
98 CALL GFIPAR(JVO,JIN,IN,NPAR,NATT,PAR,ATT)
101 IF(ISH.EQ.10) GO TO 40
103 C A GENERAL TRAPEZOID
105 IF(IAX.NE.3) GO TO 41
112 41 IF(IAX.NE.2) GO TO 900
114 X0(1) = X0(IAX)*PAR(7)
119 C PARALLELEPIPED WITH NON X AXIS SLICING.
121 X0(1)=PAR(IAX+2)*X0(IAX)
123 IF(IAX.EQ.3) GO TO 50
136 C GENERAL TRAPEZOID SLICED OTHER THAN IN Z
137 C DOES NOT MAKE SENSE.
139 WRITE(CHMAIL,1000) ISH,IAX
143 1000 FORMAT(' ISH,IAX =',2I5,' DOES NOT MAKE SENSE.')
144 2000 FORMAT(' IT IS A GENERAL TRAPEZOID SLICED OTHER THAN IN Z')