This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / gkine / gpkine.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:18  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.21  by  S.Giani
11 *-- Author :
12       SUBROUTINE GPKINE(IT)
13 C.
14 C.    ******************************************************************
15 C.    *                                                                *
16 C.    *       Prints kinematics bank JKINE for track number IT         *
17 C.    *       If IT=0 Prints all kinematics banks                      *
18 C.    *                                                                *
19 C.    *    ==>Called by : <USER>, GPRINT                               *
20 C.    *       Author    R.Brun  *********                              *
21 C.    *                                                                *
22 C.    ******************************************************************
23 C.
24 #include "geant321/gcbank.inc"
25 #include "geant321/gcnum.inc"
26 #include "geant321/gcunit.inc"
27 C.
28 C.    ------------------------------------------------------------------
29 C.
30       WRITE(CHMAIL,1000)
31       CALL GMAIL(1,0)
32 C
33       I1=1
34       I2=NTRACK
35       IF(IT.NE.0)I1=IT
36       IF(IT.NE.0)I2=IT
37       IF(I2.GT.NTRACK)GO TO 99
38       IF(I1.LT.1)GO TO 99
39       IF(JKINE.LE.0)GO TO 99
40 C
41       DO 20 ITRACK=I1,I2
42          JK=LQ(JKINE-ITRACK)
43          IF(JK.NE.0)THEN
44             IPART=Q(JK+5)
45             JPA=LQ(JPART-IPART)
46             NL=IQ(JK-2)
47             NG=Q(JK+7)+7
48             NW=MIN(NG,16)
49             WRITE(CHMAIL,2000)ITRACK,IQ(JPA+1),IQ(JPA+2),IQ(JPA+3),IPART
50      +       ,(Q(JK+I),I=1,4),Q(JK+6),(INT(Q(JK+L)),L=8,NW)
51    10       CALL GMAIL(0,0)
52             IF(NG-NW.GT.0) THEN
53                NS=NW+1
54                NW=MIN(NG,NW+9)
55                WRITE(CHMAIL,3000) (INT(Q(JK+L)),L=NS,NW)
56                GO TO 10
57             END IF
58             IF(NL.GT.0) THEN
59                JUK = LQ(JK-1)
60                IF (JUK.GT.0) THEN
61                   WRITE(CHMAIL,4000)
62                   CALL GMAIL(0,0)
63                   ND  = IQ(JUK-1)
64                   NW=MIN(ND,9)
65                   WRITE(CHMAIL,5000) (Q(JUK+L),L=1,NW)
66    15             CALL GMAIL(0,0)
67                   IF(ND-NW.GT.0) THEN
68                      NS=NW+1
69                      NW=MIN(ND,NW+9)
70                      WRITE(CHMAIL,5000) (Q(JUK+L),L=NS,NW)
71                      GO TO 15
72                   END IF
73                END IF
74             END IF
75          ENDIF
76    20 CONTINUE
77 C
78  1000 FORMAT(3X,'Kine',5X,'Name',10X,'Type',5X,'Px',9X,'Py',
79      +       9X,'Pz',7X,'Energy',5X,'Vorigin',2X,'Vgener')
80  2000 FORMAT(1X,I5,6X,3A4,I5,5(1X,F10.4),9(1X,I4))
81  3000 FORMAT(84X,9(1X,I4))
82  4000 FORMAT(62X,'User words')
83  5000 FORMAT(1X,9(2X,E12.5))
84 C
85   99  RETURN
86       END