5 * Revision 1.1.1.1 1995/10/24 10:20:49 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.28 by S.Giani
12 SUBROUTINE GFPARA (NAME, NUMBER, INTEXT, NPAR, NATT, PAR, ATT)
14 C. ******************************************************************
16 C. * Fetch parameters and attributes *
17 C. * of the volume NAME-NUMBER. *
18 C. * INTEXT is used to select internal (INTEXT=1) *
19 C. * or user parameters to be fetched. *
21 C. * Called by : GDPRTR, GDRAW, GDSPEC, GPVOLU *
22 C. * Authors : S.Banerjee, A.McPherson, P.Zanarini *
24 C. ******************************************************************
26 #include "geant321/gcbank.inc"
27 #include "geant321/gcnum.inc"
28 #include "geant321/gconsp.inc"
31 DIMENSION PAR(*), ATT(*), LVOLS(NLVMAX), LINDX(NLVMAX)
34 C. ------------------------------------------------------------------
36 CALL GLOOK (NAME, IQ(JVOLUM+1), NVOLUM, IVO)
37 IF (IVO.LE.0) GO TO 991
44 * *** Find a suitable way to access the volume parameters
46 IF (INTEXT.NE.1.OR..NOT.BTEST(IQ(JVO),1)) THEN
49 * ** From the JVO structure
54 * ** From positioning of the volume in the mother
56 DO 15 IVOM = 1, NVOLUM
57 IF (IVO.EQ.IVOM) GO TO 15
58 JVOM = LQ(JVOLUM-IVOM)
60 IF (NINM.LE.0) GO TO 15
64 IF (IVOT.NE.IVO) GO TO 10
66 IF (NUMR.EQ.NUMBER) GO TO 20
76 * ** From development structure
78 CALL GLMOTH (NAME, NUMBER, NLDM, LVOLS, LINDX)
79 IF (NLDM.LE.0) GO TO 991
80 JVOM = LQ(JVOLUM-LVOLS(NLDM))
87 IF (IFIX(Q(JINM+2)).NE.IVO) GO TO 25
88 IF (IFIX(Q(JINM+3)).EQ.NUMBER) GO TO 30
92 30 JPAR = LQ(LQ(JVOLUM-LVOLS(1)))
95 IF (IQ(JPAR+1).EQ.0) THEN
96 JPAR = LQ(JPAR-LINDX(ILEV))
97 IF (JPAR.EQ.0) GO TO 991
98 ELSE IF (IQ(JPAR-3).GT.1) THEN
99 JPAR = LQ(JPAR-LINDX(ILEV))
107 IF (JPAR.EQ.0) GO TO 991
109 IF (IN.GT.IQ(JPAR+1)) GO TO 991
110 IF (IQ(JPAR-3).GT.1) THEN
120 IF (NPAR.LE.0) GO TO 999
121 CALL UCOPY (Q(JPAR+1), PAR, NPAR)
122 CALL UCOPY (Q(JATT+1), ATT, NATT)
124 IF (INTEXT.EQ.1) GO TO 999
127 * ** NPAR : 30 ---> 12
131 ELSE IF (ISH.EQ.4) THEN
137 IF (PAR(2).NE.0.) PH = ATAN2(PAR(3),PAR(2))*RADDEG
138 TT = SQRT(PAR(2)**2+PAR(3)**2)
139 PAR(2) = ATAN(TT)*RADDEG
140 IF (PH.LT.0.0) PH = PH+360.0
142 PAR(7) = ATAN(PAR(7))*RADDEG
143 IF (PAR(7).GT.90.0) PAR(7) = PAR(7)-180.0
144 PAR(11)= ATAN(PAR(11))*RADDEG
145 IF (PAR(11).GT.90.0) PAR(11) = PAR(11)-180.0
147 ELSE IF (ISH.EQ.10) THEN
152 IF (PAR(5).NE.0.) PH = ATAN2(PAR(6),PAR(5))*RADDEG
153 TT = SQRT(PAR(5)**2+PAR(6)**2)
154 PAR(4) = ATAN(PAR(4))*RADDEG
155 IF (PAR(4).GT.90.0) PAR(4) = PAR(4)-180.0
156 PAR(5) = ATAN(TT)*RADDEG
157 IF (PH.LT.0.0) PH = PH+360.0