]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/03/06 10:47:13 mclareni | |
6 | * Zebra | |
7 | * | |
8 | * | |
9 | #include "zebra/pilot.h" | |
10 | SUBROUTINE ZVDOBK | |
11 | ||
12 | C- Subsidiary to ZVERIF, check the links of one bank | |
13 | ||
14 | #include "zebra/zstate.inc" | |
15 | #include "zebra/zunit.inc" | |
16 | #include "zebra/mqsys.inc" | |
17 | #include "zebra/mzcn.inc" | |
18 | #include "zebra/zvfwkc.inc" | |
19 | C-------------- End CDE -------------- | |
20 | EQUIVALENCE (NL,NBKNN(2)), (NS,NBKNN(3)) | |
21 | CHARACTER CHWK*24, CHYN(4)*1 | |
22 | ||
23 | #include "zebra/q_jbit.inc" | |
24 | DATA CHYN / 'n', 'y', 'i', '.' / | |
25 | ||
26 | #if defined(CERNLIB_QDEVZE) | |
27 | IF (NQDEVZ.GE.11) CALL ZVFPRI | |
28 | #endif | |
29 | ||
30 | C---- Check all links | |
31 | ||
32 | JLNK = -2 | |
33 | 22 JLNK = JLNK + 1 | |
34 | IF (JLNK.GT.NL) GO TO 61 | |
35 | LINK = LQ(KQS+LBKLS-JLNK) | |
36 | IF (LINK.EQ.0) GO TO 22 | |
37 | #if defined(CERNLIB_QDEVZE) | |
38 | IF (NQDEVZ.GE.11) WRITE (IQLOG,9823) JLNK,LINK | |
39 | 9823 FORMAT (16X,'Link number',I6,' is=',I10) | |
40 | #endif | |
41 | IF (LINK.LT.LSTOLO) GO TO 37 | |
42 | IF (LINK.GE.LSTOHI) GO TO 37 | |
43 | ||
44 | IF (LINK.GE.LDIVLO .AND. LINK.LT.LDIVHI) GO TO 24 | |
45 | JDV = MZFDIV (-7,LINK) | |
46 | IF (JDV.EQ.0) GO TO 31 | |
47 | IF (JLNK.EQ.0) GO TO 33 | |
48 | IF (JBIT(MASKTO,JDV).EQ.0) GO TO 41 | |
49 | ||
50 | 24 IF (JLNK.GT.NS) GO TO 22 | |
51 | ||
52 | C-- Check structural link | |
53 | ||
54 | CALL MZCHLS (-7,LINK) | |
55 | IF (IQFOUL.EQ.0) GO TO 22 | |
56 | ||
57 | NFATAL = NFATAL + 1 | |
58 | CALL ZVFPRI | |
59 | IF (JLNK.NE.-1) THEN | |
60 | WRITE (IQLOG,9027) CHWARN,JLNK,LINK | |
61 | ELSE | |
62 | WRITE (IQLOG,9028) CHWARN,LINK | |
63 | ENDIF | |
64 | GO TO 22 | |
65 | ||
66 | 9027 FORMAT (A,'Structural link',I6,' of value',I10, | |
67 | F' does not point to a bank') | |
68 | 9028 FORMAT (A,'The "up" link of value',I10, | |
69 | F' does not point to a bank') | |
70 | ||
71 | C-- Link points into a reserve area | |
72 | ||
73 | 31 NFATAL = NFATAL + 1 | |
74 | CALL ZVFPRI | |
75 | WRITE (IQLOG,9031) CHWARN,JLNK,LINK | |
76 | 9031 FORMAT (A,'Link',I6,' of value',I10, | |
77 | F' does not point into a division') | |
78 | GO TO 22 | |
79 | ||
80 | C-- 'next' link points to a different division | |
81 | ||
82 | 33 NFATAL = NFATAL + 1 | |
83 | CALL ZVFPRI | |
84 | WRITE (IQLOG,9033) CHWARN,LINK | |
85 | 9033 FORMAT (A,'The "next" link of value',I10, | |
86 | F' points out of the division') | |
87 | GO TO 22 | |
88 | ||
89 | C-- Link points outside the bank region | |
90 | ||
91 | 37 IF (NQOPTS(1).GE.2) GO TO 22 | |
92 | CALL ZVFPRI | |
93 | WRITE (IQLOG,9037) CHWARN,JLNK,LINK | |
94 | 9037 FORMAT (A,'Link',I6,' of value',I10, | |
95 | F' does not point into the bank region') | |
96 | ||
97 | IF (NQOPTS(1).EQ.0) THEN | |
98 | NFATAL = NFATAL + 1 | |
99 | ELSE | |
100 | NWARN = NWARN + 1 | |
101 | ENDIF | |
102 | GO TO 22 | |
103 | ||
104 | C-- Link points into non-reference division | |
105 | ||
106 | 41 NFATAL = NFATAL + 1 | |
107 | CALL ZVFPRI | |
108 | WRITE (IQLOG,9041) CHWARN,JLNK,LINK,JDV | |
109 | 9041 FORMAT (A,'Link',I6,' of value',I10,' points to division',I3 | |
110 | F/10X,'which is not declared in the cross-reference table,') | |
111 | ||
112 | CALL MZXRPR (-7) | |
113 | GO TO 22 | |
114 | ||
115 | C------ Check "up" and "origin" of a live bank | |
116 | ||
117 | 61 IF (IBKXX.NE.0) RETURN | |
118 | LUP = LQ(KQS+LBKLS+1) | |
119 | LORG = LQ(KQS+LBKLS+2) | |
120 | IF (LORG.EQ.0) GO TO 71 | |
121 | IF (LORG.LT.IQTABV(KQT+13)) GO TO 64 | |
122 | IF (LORG.GT.IQTABV(KQT+14)) GO TO 64 | |
123 | IF (LQ(KQS+LORG).NE.LBKLS) GO TO 67 | |
124 | RETURN | |
125 | ||
126 | C-- Origin link illegal | |
127 | ||
128 | 64 NFATAL = NFATAL + 1 | |
129 | CALL ZVFPRI | |
130 | WRITE (IQLOG,9064) CHWARN,LORG | |
131 | RETURN | |
132 | ||
133 | 9064 FORMAT (A,'Origin link adr=',Z10,'x is out-of-bounds') | |
134 | ||
135 | C-- LQ(LORG) does not point to the bank | |
136 | ||
137 | 67 NFATAL = NFATAL + 1 | |
138 | CALL ZVFPRI | |
139 | J = LQ(KQS+LORG) | |
140 | WRITE (IQLOG,9067) CHWARN,LORG,J,LBKLS | |
141 | RETURN | |
142 | ||
143 | 9067 FORMAT (A,'Origin link adr=',Z10 ,'x' | |
144 | F/10X,'value LQ(LORG) =',Z10,'x is not LBK=',Z10,'x') | |
145 | ||
146 | C-- LORG is zero | |
147 | ||
148 | 71 IF (LUP.EQ.0) RETURN | |
149 | NWARN = NWARN + 1 | |
150 | CALL ZVFPRI | |
151 | WRITE (IQLOG,9071) CHWARN,LUP | |
152 | RETURN | |
153 | ||
154 | 9071 FORMAT (A,'The "origin" link is zero, but the "up" link is',I10) | |
155 | END | |
156 | * ================================================== | |
157 | #include "zebra/qcardl.inc" |