]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/03/06 10:47:14 mclareni | |
6 | * Zebra | |
7 | * | |
8 | * | |
9 | #include "zebra/pilot.h" | |
10 | SUBROUTINE ZFATAL | |
11 | ||
12 | C- FATAL PROGRAM TERMINATION | |
13 | ||
14 | #include "zebra/zmach.inc" | |
15 | #include "zebra/zstate.inc" | |
16 | #include "zebra/zunit.inc" | |
17 | #include "zebra/zvfaut.inc" | |
18 | #include "zebra/mqsys.inc" | |
19 | C-------------- END CDE -------------- | |
20 | #if defined(CERNLIB_QMVDS) | |
21 | SAVE INIT | |
22 | #endif | |
23 | #include "zebra/zfatalch.inc" | |
24 | ||
25 | #include "zebra/zfatalre.inc" | |
26 | ||
27 | IF (NQERR.NE.0) GO TO 71 | |
28 | NQERR = NQERR+1 | |
29 | LUN = IQTYPE | |
30 | IF (LUN.NE.0) GO TO 22 | |
31 | ||
32 | 21 LUN = IQLOG | |
33 | 22 IF (NQTRAC.EQ.0) GO TO 31 | |
34 | ||
35 | C---- PRINT ZEBRA TRACE-BACK | |
36 | ||
37 | #if (defined(CERNLIB_QPRINT))&&(!defined(CERNLIB_QTRHOLL)||defined(CERNLIB_A6M)) | |
38 | JT = NQTRAC - 1 | |
39 | WRITE (LUN,9024) MQTRAC(JT+1) | |
40 | 9024 FORMAT (1X/' !!!!! ZFATAL called from ',A6) | |
41 | GO TO 28 | |
42 | ||
43 | 25 WRITE (LUN,9025) MQTRAC(JT+1) | |
44 | 9025 FORMAT (14X,'called from ',A6) | |
45 | 28 JT = JT - 1 | |
46 | #endif | |
47 | #if (defined(CERNLIB_QPRINT))&&(defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M)) | |
48 | JT = NQTRAC - 2 | |
49 | WRITE (LUN,9024) MQTRAC(JT+1),MQTRAC(JT+2) | |
50 | 9024 FORMAT (1X/' !!!!! ZFATAL called from ',2A4) | |
51 | GO TO 28 | |
52 | ||
53 | 25 WRITE (LUN,9025) MQTRAC(JT+1),MQTRAC(JT+2) | |
54 | 9025 FORMAT (14X,'called from ',2A4) | |
55 | 28 JT = JT - 2 | |
56 | #endif | |
57 | #if defined(CERNLIB_QPRINT) | |
58 | IF (JT.GE.0) GO TO 25 | |
59 | IF (NQFATA.EQ.0) GO TO 49 | |
60 | GO TO 41 | |
61 | #endif | |
62 | ||
63 | C-- EXTERNAL CALL TO ZFATAL | |
64 | ||
65 | 31 IF (NQFATA.NE.0) GO TO 41 | |
66 | #if defined(CERNLIB_QPRINT) | |
67 | WRITE (LUN,9031) | |
68 | 9031 FORMAT (1X/' !!!!! ZFATAL reached.') | |
69 | #endif | |
70 | GO TO 49 | |
71 | ||
72 | C-- ZEBRA INTERNAL CALL TO ZFATAL | |
73 | ||
74 | 41 CONTINUE | |
75 | #if (defined(CERNLIB_QPRINT))&&(defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M)) | |
76 | WRITE (LUN,9041) IQUEST(10),NQCASE | |
77 | 9041 FORMAT (1X/' !!!!! ZFATAL reached from ',A6,' for Case=',I3/1X) | |
78 | #endif | |
79 | #if (defined(CERNLIB_QPRINT))&&(defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M)) | |
80 | WRITE (LUN,9041) IQUEST(9),IQUEST(10),NQCASE | |
81 | 9041 FORMAT (1X/' !!!!! ZFATAL reached from ',2A4,' for Case=',I3/1X) | |
82 | #endif | |
83 | #if (defined(CERNLIB_QPRINT))&&(!defined(CERNLIB_QTRHOLL)) | |
84 | WRITE (LUN,9041) IQUEST(9),IQUEST(10),NQCASE | |
85 | 9041 FORMAT (1X/' !!!!! ZFATAL reached from ',2A4,' for Case=',I3/1X) | |
86 | #endif | |
87 | #if defined(CERNLIB_QPRINT) | |
88 | ||
89 | JPOS = IQBITW - 7 | |
90 | ||
91 | DO 47 JW=11,10+NQFATA | |
92 | IT = IQUEST(JW) | |
93 | J = JBYT (IT,JPOS,8) | |
94 | IF (J.EQ.0) GO TO 44 | |
95 | IF (J.EQ.255) GO TO 44 | |
96 | ||
97 | WRITE (LUN,9043,ERR=47) JW,IT,IT,IT | |
98 | GO TO 47 | |
99 | ||
100 | 44 WRITE (LUN,9044,ERR=47) JW,IT,IT | |
101 | #endif | |
102 | #if (defined(CERNLIB_QPRINT))&&(!defined(CERNLIB_HEX)) | |
103 | 9043 FORMAT (10X,'IQUEST(',I2,') = ',I9,1X,O22,1X,A6) | |
104 | 9044 FORMAT (10X,'IQUEST(',I2,') = ',I9,1X,O22) | |
105 | #endif | |
106 | #if (defined(CERNLIB_QPRINT))&&(defined(CERNLIB_HEX)) | |
107 | 9043 FORMAT (10X,'IQUEST(',I2,') = ',I9,1X,Z16,1X,A6) | |
108 | 9044 FORMAT (10X,'IQUEST(',I2,') = ',I9,1X,Z16) | |
109 | #endif | |
110 | 47 CONTINUE | |
111 | ||
112 | 49 WRITE (LUN,9049) JQSTOR,JQDIVI | |
113 | 9049 FORMAT (1X/10X,'Current Store number =',I3,' (JQDIVI=',I2,')') | |
114 | ||
115 | IF (IQVID(2).EQ.0) GO TO 59 | |
116 | ||
117 | WRITE (LUN,9051) IQVID | |
118 | WRITE (LUN,9052) (J,IQVREM(1,J),IQVREM(2,J),J=1,6) | |
119 | ||
120 | 9051 FORMAT (1X/10X,'Automatic Verification Identifiers :' | |
121 | F/10X,'Current :',2X,2I11) | |
122 | 9052 FORMAT (10X,'Stacked, J =',I2,' :',I6,I11,5(/22X,I2,' :',I6,I11)) | |
123 | ||
124 | 59 IF (LUN.NE.IQLOG) GO TO 21 | |
125 | NQCASE = 0 | |
126 | NQFATA = 0 | |
127 | CALL ZABEND | |
128 | ||
129 | C---- RECOVERY LOOP | |
130 | ||
131 | 71 NQERR = NQERR + 1 | |
132 | IF (NQERR.GE.4) GO TO 79 | |
133 | WRITE (IQLOG,9071) | |
134 | IF (IQTYPE.EQ.0) GO TO 79 | |
135 | IF (IQTYPE.EQ.IQLOG) GO TO 79 | |
136 | WRITE (IQTYPE,9071) | |
137 | 9071 FORMAT (1X/' !!!!! Stop for re-entry to ZFATAL.') | |
138 | 79 CONTINUE | |
139 | CALL ABEND | |
140 | END | |
141 | * ================================================== | |
142 | #include "zebra/qcardl.inc" |