5 * Revision 1.1.1.1 1999/05/18 15:55:17 fca
8 * Revision 1.1.1.1 1995/10/24 10:20:48 cernlib
12 #include "geant321/pilot.h"
13 *CMZ : 3.21/02 29/03/94 15.41.28 by S.Giani
15 SUBROUTINE GCENT(IAX,X0)
17 C. ******************************************************************
19 C * SUBROUTINE TO CENTRE A SLICE OF THE NLEVEL TH *
20 C * SHAPE, WHEN THE CENTRE OF THE SLICE ALONG AXIS *
21 C * NUMBER IAX AFTER ROTATION BY MATRIX IROT IS AT *
22 C * X0(IAX). THE CENTER IN THE UNROTATED FRAME IS *
25 C. * ==>Called by : GFTRAC, GINVOL, GLVOLU, GMEDIV, GNEXT, *
27 C. * Author A.McPherson ********* *
29 C. ******************************************************************
31 #include "geant321/gcbank.inc"
32 #include "geant321/gcvolu.inc"
33 #include "geant321/gcunit.inc"
34 DIMENSION X0(3),PAR(100),ATT(20)
36 C. ------------------------------------------------------------------
45 C NOT A GENERAL TRAPEZOID.
47 IF(ISH.EQ.10.AND.IAX.NE.1) GO TO 20
49 C NOT A PARALLELEPIPED WITH NON X AXIS SLICING.
52 IF(I.NE.IAX) X0(I)=0.0
60 IF(NLEVEL.LE.1) GO TO 30
63 IVOO = LVOLUM(NLEVEL-1)
64 JVOO = LQ(JVOLUM-IVOO)
65 IF (Q(JVOO+3).LT.0.) THEN
74 IF (NLEVEL.LT.NLDEV(NLEVEL)) THEN
77 * (case with structure JVOLUM locally developed)
78 JPAR = LQ(LQ(JVOLUM-LVOLUM(NLDEV(NLEVEL))))
79 IF (NLEVEL.EQ.NLDEV(NLEVEL)) GO TO 120
80 DO 110 ILEV = NLDEV(NLEVEL), NLEVEL-1
81 IF (IQ(JPAR+1).EQ.0) THEN
82 JPAR = LQ(JPAR-LINDEX(ILEV+1))
83 IF (JPAR.EQ.0) GO TO 120
84 ELSE IF (IQ(JPAR-3).GT.1) THEN
85 JPAR = LQ(JPAR-LINDEX(ILEV+1))
89 IF (ILEV.EQ.NLEVEL-1) THEN
92 CALL UCOPY (Q(JPAR+1), PAR, NPAR)
101 CALL GFIPAR(JVO,JIN,IN,NPAR,NATT,PAR,ATT)
104 IF(ISH.EQ.10) GO TO 40
106 C A GENERAL TRAPEZOID
108 IF(IAX.NE.3) GO TO 41
115 41 IF(IAX.NE.2) GO TO 900
117 X0(1) = X0(IAX)*PAR(7)
122 C PARALLELEPIPED WITH NON X AXIS SLICING.
124 X0(1)=PAR(IAX+2)*X0(IAX)
126 IF(IAX.EQ.3) GO TO 50
139 C GENERAL TRAPEZOID SLICED OTHER THAN IN Z
140 C DOES NOT MAKE SENSE.
142 WRITE(CHMAIL,1000) ISH,IAX
146 1000 FORMAT(' ISH,IAX =',2I5,' DOES NOT MAKE SENSE.')
147 2000 FORMAT(' IT IS A GENERAL TRAPEZOID SLICED OTHER THAN IN Z')