5 * Revision 1.3 1996/04/24 17:26:30 mclareni
6 * Extend the include file cleanup to dzebra, rz and tq, and also add
7 * dependencies in some cases.
9 * Revision 1.2 1996/04/18 16:11:05 mclareni
10 * Incorporate changes from J.Zoll for version 3.77
12 * Revision 1.1.1.1 1996/03/06 10:47:17 mclareni
16 #include "zebra/pilot.h"
17 SUBROUTINE JZIN (CHPA1,IPA2,IPA3,IPA4)
19 C- Processor down transfer
21 C- CHPA1 processor ID in A4
22 C- IPA2 = 0 no further down transfer
23 C- = 1 yes further down transfer
24 C- IPA3 NAN = number of processor constants
25 C- IPA4 extra features
26 C- IPA4(2) NCR = number of conditions to be recorded
27 C- IPA4(3) NLS = number of wsp links to be saved
28 C- IPA4(4) NDS = number of wsp data words to be saved
30 #include "zebra/zstate.inc"
31 #include "zebra/zunit.inc"
32 #include "zebra/zvfaut.inc"
33 #include "zebra/mqsys.inc"
34 #include "zebra/jzuc.inc"
35 #include "zebra/jzc.inc"
36 C-------------- END CDE ----------------- ------
37 DIMENSION IPA2(7),IPA3(7),IPA4(7)
39 #if defined(CERNLIB_A4)
42 #if defined(CERNLIB_A8)
45 #if defined(CERNLIB_EQUHOLCH)
46 EQUIVALENCE (CHIAM, IAMID)
50 PARAMETER (MXREOD = 2097152)
51 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
53 DATA NAMESR / 4HJZIN, 4H /
55 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
56 DATA NAMESR / 6HJZIN /
58 #if !defined(CERNLIB_QTRHOLL)
60 PARAMETER (NAMESR = 'JZIN ')
62 DATA MMJZFO / 4HJZFO, 0, 0, 1, 2 /
64 #include "zebra/q_jbit.inc"
66 #include "zebra/qtraceq.inc"
67 #include "zebra/qstorjz.inc"
68 #if defined(CERNLIB_QDEBUG)
69 IF (IQVSTA.NE.0) CALL ZVAUTX
73 #if !defined(CERNLIB_EQUHOLCH)
74 CALL UCTOH (CHIAM, IAMID,4,4)
78 IF (LQSV.EQ.0) GO TO 21
80 C---- Remember present state
82 IQ(KQS+LQJZ+2*JQLEV+2) = NQLINK
83 IQ(KQS+LQJZ+2*JQLEV+3) = LQSTA(KQT+1)
86 IF (N.NE.0) CALL UCOPY (LQ(KQS+NQREF+1),LQ(KQS+LQSV-N-3),N)
89 L = LQAN + IQ(KQS+LQAN)
90 CALL UCOPY (LQ(KQS+NQLINK+1),IQ(KQS+L+1),N)
93 #if defined(CERNLIB_JZTIME)
94 #include "zebra/jztimin.inc"
101 J = IUCOMP (IAMID,IQ(KQS+L+2),IQ(KQS+L+1))
106 24 LQSV = LZFIND (IXSTJZ,LQ(KQS+LQJZ-3), IAMID,1)
107 IF (LQSV.EQ.0) GO TO 81
108 25 IQ(KQS+LQSV+2) = IQ(KQS+LQSV+2) + 1
110 LQAN = LCD + IQ(KQS+LCD) + 1
114 #if defined(CERNLIB_QDEBUG)
115 CALL VZERO (JQFLAG,JQMFLW)
116 L = LQAN + IQ(KQS+LQAN) + 1 + IQ(KQS+LQSV+4)
118 IF (N.NE.0) CALL UCOPY (IQ(KQS+L+1),JQFLAG,N)
120 IF (JBIT(JQLLEV,9).NE.0) WRITE (IQLOG,9024) JQLEV,NQME(1),
121 + IQ(KQS+LQSV+1),IQ(KQS+LQSV+2)
123 9024 FORMAT (/' ======= JZIN level',I2,', "',A4,' down to "',A4,
128 IF (JQEALL.EQ.0) GO TO 71
132 31 NQME(1) = IQ(KQS+LQSV+1)
134 IF (JQLEV.GT.JQMLEV) GO TO 91
141 IF (IAFLDW.NE.0) GO TO 37
143 #include "zebra/qtrace99.inc"
146 C-- Clear the down call bank
148 37 IF (JQLEV.EQ.JQMLEV) GO TO 92
149 CALL VZERO (LQ(KQS+LQDW-JQCBNL),JQCBNL)
150 CALL VZERO (IQ(KQS+LQDW+1), JQCBND)
151 IQ(KQS+LQDW) = MSBYT (0, IQ(KQS+LQDW),1,18)
154 C---- Re-order SV structure every now and then
156 71 JQREOD = MIN (4*JQREOD,MXREOD)
158 IF (JQREOD.GE.MXREOD) GO TO 31
160 CALL ZTOPSY (IXSTJZ,L)
161 CALL ZSORTI (IXSTJZ,L,2)
162 CALL ZTOPSY (IXSTJZ,L)
163 NPR = NZBANK (IXSTJZ,L)
167 IF (LFO.EQ.0) GO TO 72
168 IF (NPR.LE.IQ(KQS+LFO-1)) GO TO 74
169 CALL MZDROP (IXSTJZ,IQ(KQS+LFO), '.')
172 72 MMJZFO(2) = NPR + INC
173 MMJZFO(4) = MMJZFO(2) + 1
174 CALL MZLIFT (IXDVJZ,LFO,LQJZ,-4,MMJZFO,0)
178 74 IQ(KQS+LFO+1) = NPR
185 IQ(KQS+LFO+J+1) = IQ(KQS+L+1)
188 C---- Processor not yet initialized
198 CALL UCOPY (IPA4(2),IANCR,N)
205 IF (LFO.EQ.0) GO TO 25
206 NFO = IQ(KQS+LFO+1) + 1
207 IF (NFO.GE.IQ(KQS+LFO-1)) GO TO 25
208 LQ(KQS+LFO-NFO) = LQSV
209 IQ(KQS+LFO+NFO+1) = IAMID
216 91 NQCASE = NQCASE + 1
221 #include "zebra/qtofatal.inc"
223 * ==================================================
224 #include "zebra/qcardl.inc"