5 * Revision 1.1.1.1 1995/10/24 10:21:41 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.23 by S.Giani
14 C. ******************************************************************
18 C. * Prepares the Skeleton banks for parallel tracking *
19 C. * Also lifts the stack bank JTRACK *
21 C. * Called by : GTREVE *
22 C. * Authors : S.Banerjee, F.Bruyant *
24 C. ******************************************************************
26 #include "geant321/gcbank.inc"
27 #include "geant321/gcstak.inc"
28 #include "geant321/gctrak.inc"
29 #include "geant321/gcvolu.inc"
31 COMMON /GCSKLT/ LOCAL(2), JSK, JSKL, JVOLX
34 C. ------------------------------------------------------------------
38 * ** Initialize a temporary link area
40 CALL MZLINT (IXSTOR, '/GCSKLT/', LOCAL, JSK, JVOLX)
41 CALL MZFORM ('SKIN', '2I -F', IOSKIN)
45 * ** Lift the top level bank
47 CALL MZBOOK (IXCONS, JSKLT, JSKLT, 1, 'SKLT', NLVT, NLVT, 0,
49 CALL MZBOOK (IXCONS, JSKL, JSKLT, -1, 'SKLV', 1, 1, 1, 2, 0)
50 CALL MZBOOK (IXCONS, JSK, JSKL, -1, 'SKIN', 1, 0, 2, 2, -1)
56 * ** Loop over the remaining levels
59 NINSK = IQ(JVOLX+ILEV)
61 CALL MZBOOK (IXCONS, JSKL, JSKLT,-ILEV,'SKLV', NINSK, NINSK,
64 CALL MZBOOK (IXCONS, JSK, JSKL, -IN, 'SKIN', 1, 0, 15,
69 * ** Now create the Stack bank JTRACK
72 WRITE (CFORM, 1001) NWINT, NWR
73 CALL MZFORM ('TRAC', CFORM, IOTRAC)
75 CALL MZBOOK (IXCONS, JTRACK, JTRACK, 1, 'TRAC', 0, 0, ND,
82 * ** Clear the pointers in the skeleton
84 DO 25 ILEV = 1, NLEVMX
86 DO 20 I = 1, IQ(JSKL-3)
92 * *** Fill up the skeleton upto NLEVEL
95 DO 60 ILEV = 2, NLEVEL
98 JOFF = JSKL + IQ(JSKL-3)
100 IF (IQ(JOFF+IL).EQ.LINDEX(IL)) GO TO 40
102 IQ(JOFF+I) = LINDEX(I)
110 45 JSK = LQ(JSKL-LINDEX(ILEV))
111 IF (IQ(JSK+1).LE.0) THEN
112 LQ(JSK-1) = LQ(JGPAR-ILEV)
113 IQ(JSK+1) = IQ(JGPAR+ILEV)
114 IQ(JSK+2) = LVOLUM(ILEV)
116 Q(JSK+2+I) = GTRAN(I,ILEV)
119 Q(JSK+5+I) = GRMAT(I,ILEV)
125 * *** Initialize pointers
132 1001 FORMAT ('/ ',I3,'I ',I3,'F ')