5 * Revision 1.1.1.1 1996/03/06 10:47:13 mclareni
9 #include "zebra/pilot.h"
10 SUBROUTINE ZVERIF (IXSTP,IFRETN,TEXTID)
12 C- Verify integrity of store IXVSTO
13 C- IXVSTO = -1 : verify all stores
14 C- -2 : verify stores selected in the ZVAUTO mask
16 #include "zebra/zmach.inc"
17 #include "zebra/zstate.inc"
18 #include "zebra/zunit.inc"
19 #include "zebra/mqsys.inc"
20 #include "zebra/mzcn.inc"
21 #include "zebra/zvfaut.inc"
22 #include "zebra/zvfwkc.inc"
23 C-------------- END CDE --------------
25 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
27 DATA NAMESR / 4HZVER, 4HFY /
29 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
30 DATA NAMESR / 6HZVERIF /
32 #if !defined(CERNLIB_QTRHOLL)
34 PARAMETER (NAMESR = 'ZVERIF ')
37 #include "zebra/q_jbit.inc"
39 #include "zebra/qtraceq.inc"
46 C-- Check the process parameters
50 C---- Select the store to be verified
53 IF (IXVSTO.LT.0) GO TO 12
55 CALL MZSDIV (IXVSTO,0)
63 IF (IXVSTO.EQ.-1) GO TO 19
65 IF (IXVSTO.NE.-2) CALL ZFATAM ('not a valid store index.')
71 16 IF (NLOOP.EQ.0) GO TO 71
74 IF (JST.GT.NQSTOR) GO TO 71
75 IF (NLOOP.GE.0) GO TO 19
76 IF (JBIT(MASKST,JST+1).EQ.0) GO TO 17
79 CALL SBYT (JST,IXVSTO,27,4)
80 IF (NQALLO(JST+1).LT.0) GO TO 16
82 C------ Do the next store
84 CALL MZSDIV (IXVSTO,-1)
87 IF (NQLOGL.GE.2) CALL ZVFPRI
89 C-- Check the store parameters
94 LSTOHI = LQEND(KQT+20)
96 C-- If check of single division
99 IF (JDVINI.NE.0) GO TO 22
101 C---- Check all link areas
106 IQ(KQS+L+3) = IQ(KQS+L+2) + NQLINK
107 CALL ZVDOLA (IQ(KQS+L+1))
110 C------ Check all divisions
113 21 IF (JQDIVI.EQ.20) GO TO 16
114 IF (JDVINI.NE.0) GO TO 71
115 IF (JQDIVI.EQ.JQDVLL) THEN
121 C---- Do next division
124 LDIVLO = LQSTA(KQT+JQDIVI)
125 LDIVHI = LQEND(KQT+JQDIVI)
126 MASKTO = IQRCU(KQT+JQDIVI)
127 IF (LDIVLO.GE.LDIVHI) GO TO 21
129 NAMEPR(1) = IQDN1(KQT+JQDIVI)
130 NAMEPR(2) = IQDN2(KQT+JQDIVI)
137 24 IF (LBKNX.GE.LDIVHI) GO TO 21
139 CALL MZCHLN (-7,LBKNX)
140 IF (IQFOUL.NE.0) GO TO 41
143 IF (IQND.LT.0) GO TO 24
147 IBKXX = JBIT(IQ(KQS+LBKLS),IQDROP)
148 IDBK(1) = IQ(KQS+IQLS-4)
149 IDBK(2) = IQ(KQS+IQLS-5)
157 IF (LBKNX.LE.LDIVHI) GO TO 24
162 WRITE (IQLOG,9027) CHWARN,N
163 9027 FORMAT (A,'Bank overshoots the division end by',I7,' words')
166 C---- bank chaining clobbered
168 41 NFATAL = NFATAL + 1
170 WRITE (IQLOG,9041) CHWARN,LBKNX
171 9041 FORMAT (A,'Bank chaining clobbered at adr',I10)
175 IF (L.GE.LDIVHI) GO TO 47
178 IF (IQFOUL.NE.0) GO TO 44
181 46 CALL MZCHLN (-7,IQNX)
182 IF (IQFOUL.NE.0) GO TO 44
183 IF (IQND.LT.0) GO TO 46
186 47 WRITE (IQLOG,9047) L
187 9047 FORMAT (10X,'recover at adr',I10)
194 71 IQUEST(1) = NFATAL
195 IF (NFATAL+NWARN.EQ.0) GO TO 999
197 WRITE (IQLOG,9071) CHWARN, NFATAL,NWARN
198 9071 FORMAT (A,'ZVERIF found',I5,' fatal and',I5,' warning conditions')
200 IF (NFATAL.EQ.0) GO TO 999
201 IF (JDVINI.NE.0) THEN
202 IF (IFRETN.NE.0) GO TO 999
205 CALL SBYT (LFAILS,IXVSTO,27,4)
206 CALL MZSDIV (IXVSTO,-1)
209 CALL ZFATAM ('trouble in ZVERIF.')
210 #include "zebra/qtrace99.inc"
213 * ==================================================
214 #include "zebra/qcardl.inc"