5 * Revision 1.1.1.1 1995/10/24 10:20:56 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.30 by S.Giani
12 SUBROUTINE GTRAIN(PARU,P)
14 C. ******************************************************************
17 C. * SUBROUTINE GTRAIN(PARU,P) *
18 C. * Routine to convert from user supplied parameters PARU to *
19 C. * internal parameters P for the twisted trapezoidal shape *
21 C. * Called by : GSPOSP, GSVOLU *
22 C. * A.C.McPherson 22nd April 1985. *
25 C. ******************************************************************
27 #include "geant321/gconsp.inc"
28 DIMENSION PARU(12),P(30),CORN(3,8)
30 C. -------------------------------------
32 C First copy the 12 user parameters into the internal
39 C Now some trignometrical quantities including the first
40 C two extra parameters.
42 P(13) = TAN(P(2)*DEGRAD)*COS(P(3)*DEGRAD)
43 P(14) = TAN(P(2)*DEGRAD)*SIN(P(3)*DEGRAD)
44 STWIS = SIN(P(4)*DEGRAD)
45 CTWIS = COS(P(4)*DEGRAD)
46 DXDY1 = TAN(P(8)*DEGRAD)
47 DXDY2 = TAN(P(12)*DEGRAD)
49 C Next the edges outside the constant z faces (derived
50 C from the eight corner points).
52 P(15) = (CTWIS*(P(5)*DXDY1+P(7)+P(9)*DXDY2+P(11)) +
53 +STWIS*(P(5)-P(9)))*0.5
54 P(16) = (CTWIS*(P(5)+P(9)) -
55 +STWIS*(P(5)*DXDY1+P(7)-P(9)*DXDY2-P(11)))*0.5
56 P(17) = P(13) - (CTWIS*(P(5)*DXDY1+P(7)-P(9)*DXDY2-P(11)) +
57 +STWIS*(P(5)+P(9)))*0.5/P(1)
58 P(18) = P(14) - (CTWIS*(P(5)-P(9)) -
59 +STWIS*(P(5)*DXDY1+P(7)+P(9)*DXDY2+P(11)))*0.5/P(1)
61 P(19) = (CTWIS*(P(5)*DXDY1-P(7)+P(9)*DXDY2-P(11)) +
62 +STWIS*(P(5)-P(9)))*0.5
63 P(20) = (CTWIS*(P(5)+P(9)) -
64 +STWIS*(P(5)*DXDY1-P(7)-P(9)*DXDY2+P(11)))*0.5
65 P(21) = P(13) - (CTWIS*(P(5)*DXDY1-P(7)-P(9)*DXDY2+P(11)) +
66 +STWIS*(P(5)+P(9)))*0.5/P(1)
67 P(22) = P(14) - (CTWIS*(P(5)-P(9)) -
68 +STWIS*(P(5)*DXDY1-P(7)+P(9)*DXDY2-P(11)))*0.5/P(1)
70 P(23) = -(CTWIS*(P(5)*DXDY1+P(6)+P(9)*DXDY2+P(10)) +
71 +STWIS*(P(5)-P(9)))*0.5
72 P(24) = -(CTWIS*(P(5)+P(9)) -
73 +STWIS*(P(5)*DXDY1+P(6)-P(9)*DXDY2-P(10)))*0.5
74 P(25) = P(13) + (CTWIS*(P(5)*DXDY1+P(6)-P(9)*DXDY2-P(10)) +
75 +STWIS*(P(5)+P(9)))*0.5/P(1)
76 P(26) = P(14) + (CTWIS*(P(5)-P(9)) -
77 +STWIS*(P(5)*DXDY1+P(6)+P(9)*DXDY2+P(10)))*0.5/P(1)
79 P(27) = -(CTWIS*(P(5)*DXDY1-P(6)+P(9)*DXDY2-P(10)) +
80 +STWIS*(P(5)-P(9)))*0.5
81 P(28) = -(CTWIS*(P(5)+P(9)) -
82 +STWIS*(P(5)*DXDY1-P(6)-P(9)*DXDY2+P(10)))*0.5
83 P(29) = P(13) + (CTWIS*(P(5)*DXDY1-P(6)-P(9)*DXDY2+P(10)) +
84 +STWIS*(P(5)+P(9)))*0.5/P(1)
85 P(30) = P(14) + (CTWIS*(P(5)-P(9)) -
86 +STWIS*(P(5)*DXDY1-P(6)+P(9)*DXDY2-P(10)))*0.5/P(1)
93 CORN(1,IL)=P(I0)+P(I0+2)*CORN(3,IL)
94 CORN(2,IL)=P(I0+1)+P(I0+3)*CORN(3,IL)
96 CORN(1,IL+4)=P(I0)+P(I0+2)*CORN(3,IL+4)
97 CORN(2,IL+4)=P(I0+1)+P(I0+3)*CORN(3,IL+4)
100 #if defined(CERNLIB_DEBUG)
101 C WRITE(CHMAIL,1000) P,CORN
103 C 1000 FORMAT(' P =',10F10.4,/,4X,10F10.4,/,4X,10F10.4,/,' CORN =',
104 C +3F10.4,7X,3F10.4,3(/,7X,3F10.4,7X,3F10.4))