Mostly minor style modifications to be ready for cloning with EMCAL
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / jz91 / jztrac.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.2  1996/04/18 16:11:08  mclareni
6 * Incorporate changes from J.Zoll for version 3.77
7 *
8 * Revision 1.1.1.1  1996/03/06 10:47:17  mclareni
9 * Zebra
10 *
11 *
12 #include "zebra/pilot.h"
13       SUBROUTINE JZTRAC (MODEP)
14
15 C-    Dump processor trace for JZ91
16
17 #include "zebra/mzcn.inc"
18 #include "zebra/zbcd.inc"
19 #include "zebra/zstate.inc"
20 #include "zebra/zunit.inc"
21 #include "zebra/mqsys.inc"
22 #include "zebra/jzuc.inc"
23 #include "zebra/jzc.inc"
24 C--------------    END CDE                             -----------------  ------
25       DIMENSION    MODEP(9)
26 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
27       DIMENSION    NAMESR(2)
28       DATA  NAMESR / 4HJZTR, 4HAC   /
29 #endif
30 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
31       DATA  NAMESR / 6HJZTRAC /
32 #endif
33 #if !defined(CERNLIB_QTRHOLL)
34       CHARACTER    NAMESR*8
35       PARAMETER   (NAMESR = 'JZTRAC  ')
36 #endif
37
38 #include "zebra/q_jbit.inc"
39 #include "zebra/q_jbyt.inc"
40 #include "zebra/q_sbit1.inc"
41
42 C     For bits in MODE - mark critical
43 C                 bit 1  SV banks
44 C                     2  Call banks
45 C                     3  Banks pointed to by links
46 C                        in current LQDW and LQUP
47
48       IF (LQJZ.EQ.0)               RETURN
49
50 #include "zebra/qtraceq.inc"
51 #include "zebra/qstorjz.inc"
52       MODE = MODEP(1)
53       WRITE (IQLOG,9000) JQLEV
54       NQUSED = NQUSED + 4
55
56       LEV = MIN (JQLEV,JQMLEV)
57       KHI = LQJZ - 6
58       KLO = KHI - LEV
59
60       LDW = LQ(KQS+KLO)
61       IF (LQDW.EQ.0)  LDW=0
62
63       DO 49 K=KLO,KHI
64       LSV = LQ(KQS+K-JQMLEV)
65
66 C--                Check LSV valid
67
68       CALL MZCHLS (-7,LSV)
69       IF (IQFOUL.EQ.0)             GO TO 23
70       ID = IQBLAN
71       GO TO 24
72
73    23 ID = IQ(KQS+LSV+1)
74       IF (JBIT(MODE,1).EQ.0)       GO TO 24
75       IQ(KQS+LSV) = MSBIT1 (IQ(KQS+LSV),IQCRIT)
76
77 C----              Print 1 line for this level
78
79    24 WRITE (IQLOG,9024) LEV,ID,LSV,LDW
80       NQUSED = NQUSED + 2
81       IF (IQFOUL.NE.0)  WRITE (IQLOG,9025)
82
83 C----              Check down bank
84
85       IF (LDW.EQ.0)                GO TO 36
86       CALL MZCHLS (-7,LDW)
87       IF (IQFOUL.EQ.0)             GO TO 31
88       WRITE (IQLOG,9026)
89       GO TO 36
90
91    31 J = JBYT (MODE,2,2)
92       IF (J.EQ.0)                  GO TO 36
93       IQ(KQS+LDW) = MSBIT1 (IQ(KQS+LDW),IQCRIT)
94       IF (J.LT.2)                  GO TO 36
95       IF (LEV.LT.JQLEV-1)          GO TO 36
96
97       DO 34  J=1,IQNL
98       L = LQ(KQS+LDW-J)
99       IF (L.EQ.0)                  GO TO 34
100       CALL MZCHLS (-7,L)
101       IF (IQFOUL.NE.0)             GO TO 34
102       IQ(KQS+L) = MSBIT1 (IQ(KQS+L),IQCRIT)
103    34 CONTINUE
104    36 CONTINUE
105       LDW = LQ(KQS+K+1)
106    49 LEV = LEV - 1
107 #include "zebra/qtrace99.inc"
108       RETURN
109
110  9000 FORMAT (/' JZTRAC.  Processor trace at level',I3
111      F/10X,'Depth Name   LQSV   LQDW')
112  9024 FORMAT (/10X,I5,1X,A4,2I7)
113  9025 FORMAT (' !!!',32X,'***  bank SV bad !!!')
114  9026 FORMAT (' !!!',32X,'***  bank DW bad !!!')
115       END
116 *      ==================================================
117 #include "zebra/qcardl.inc"