1 SUBROUTINE ZERRHS( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRHS tests the error exits for ZGEBAK, CGEBAL, CGEHRD, ZUNGHR,
16 * ZUNMHR, ZHSEQR, CHSEIN, and ZTREVC.
17 *
18 * Arguments
19 * =========
20 *
21 * PATH (input) CHARACTER*3
22 * The LAPACK path name for the routines to be tested.
23 *
24 * NUNIT (input) INTEGER
25 * The unit number for output.
26 *
27 * =====================================================================
28 *
29 * .. Parameters ..
30 INTEGER NMAX, LW
31 PARAMETER ( NMAX = 3, LW = NMAX*NMAX )
32 * ..
33 * .. Local Scalars ..
34 CHARACTER*2 C2
35 INTEGER I, IHI, ILO, INFO, J, M, NT
36 * ..
37 * .. Local Arrays ..
38 LOGICAL SEL( NMAX )
39 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
40 DOUBLE PRECISION RW( NMAX ), S( NMAX )
41 COMPLEX*16 A( NMAX, NMAX ), C( NMAX, NMAX ), TAU( NMAX ),
42 $ VL( NMAX, NMAX ), VR( NMAX, NMAX ), W( LW ),
43 $ X( NMAX )
44 * ..
45 * .. External Functions ..
46 LOGICAL LSAMEN
47 EXTERNAL LSAMEN
48 * ..
49 * .. External Subroutines ..
50 EXTERNAL CHKXER, ZGEBAK, ZGEBAL, ZGEHRD, ZHSEIN, ZHSEQR,
51 $ ZTREVC, ZUNGHR, ZUNMHR
52 * ..
53 * .. Intrinsic Functions ..
54 INTRINSIC DBLE
55 * ..
56 * .. Scalars in Common ..
57 LOGICAL LERR, OK
58 CHARACTER*32 SRNAMT
59 INTEGER INFOT, NOUT
60 * ..
61 * .. Common blocks ..
62 COMMON / INFOC / INFOT, NOUT, OK, LERR
63 COMMON / SRNAMC / SRNAMT
64 * ..
65 * .. Executable Statements ..
66 *
67 NOUT = NUNIT
68 WRITE( NOUT, FMT = * )
69 C2 = PATH( 2: 3 )
70 *
71 * Set the variables to innocuous values.
72 *
73 DO 20 J = 1, NMAX
74 DO 10 I = 1, NMAX
75 A( I, J ) = 1.D0 / DBLE( I+J )
76 10 CONTINUE
77 SEL( J ) = .TRUE.
78 20 CONTINUE
79 OK = .TRUE.
80 NT = 0
81 *
82 * Test error exits of the nonsymmetric eigenvalue routines.
83 *
84 IF( LSAMEN( 2, C2, 'HS' ) ) THEN
85 *
86 * ZGEBAL
87 *
88 SRNAMT = 'ZGEBAL'
89 INFOT = 1
90 CALL ZGEBAL( '/', 0, A, 1, ILO, IHI, S, INFO )
91 CALL CHKXER( 'ZGEBAL', INFOT, NOUT, LERR, OK )
92 INFOT = 2
93 CALL ZGEBAL( 'N', -1, A, 1, ILO, IHI, S, INFO )
94 CALL CHKXER( 'ZGEBAL', INFOT, NOUT, LERR, OK )
95 INFOT = 4
96 CALL ZGEBAL( 'N', 2, A, 1, ILO, IHI, S, INFO )
97 CALL CHKXER( 'ZGEBAL', INFOT, NOUT, LERR, OK )
98 NT = NT + 3
99 *
100 * ZGEBAK
101 *
102 SRNAMT = 'ZGEBAK'
103 INFOT = 1
104 CALL ZGEBAK( '/', 'R', 0, 1, 0, S, 0, A, 1, INFO )
105 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
106 INFOT = 2
107 CALL ZGEBAK( 'N', '/', 0, 1, 0, S, 0, A, 1, INFO )
108 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
109 INFOT = 3
110 CALL ZGEBAK( 'N', 'R', -1, 1, 0, S, 0, A, 1, INFO )
111 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
112 INFOT = 4
113 CALL ZGEBAK( 'N', 'R', 0, 0, 0, S, 0, A, 1, INFO )
114 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
115 INFOT = 4
116 CALL ZGEBAK( 'N', 'R', 0, 2, 0, S, 0, A, 1, INFO )
117 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
118 INFOT = 5
119 CALL ZGEBAK( 'N', 'R', 2, 2, 1, S, 0, A, 2, INFO )
120 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
121 INFOT = 5
122 CALL ZGEBAK( 'N', 'R', 0, 1, 1, S, 0, A, 1, INFO )
123 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
124 INFOT = 7
125 CALL ZGEBAK( 'N', 'R', 0, 1, 0, S, -1, A, 1, INFO )
126 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
127 INFOT = 9
128 CALL ZGEBAK( 'N', 'R', 2, 1, 2, S, 0, A, 1, INFO )
129 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
130 NT = NT + 9
131 *
132 * ZGEHRD
133 *
134 SRNAMT = 'ZGEHRD'
135 INFOT = 1
136 CALL ZGEHRD( -1, 1, 1, A, 1, TAU, W, 1, INFO )
137 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
138 INFOT = 2
139 CALL ZGEHRD( 0, 0, 0, A, 1, TAU, W, 1, INFO )
140 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
141 INFOT = 2
142 CALL ZGEHRD( 0, 2, 0, A, 1, TAU, W, 1, INFO )
143 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
144 INFOT = 3
145 CALL ZGEHRD( 1, 1, 0, A, 1, TAU, W, 1, INFO )
146 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
147 INFOT = 3
148 CALL ZGEHRD( 0, 1, 1, A, 1, TAU, W, 1, INFO )
149 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
150 INFOT = 5
151 CALL ZGEHRD( 2, 1, 1, A, 1, TAU, W, 2, INFO )
152 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
153 INFOT = 8
154 CALL ZGEHRD( 2, 1, 2, A, 2, TAU, W, 1, INFO )
155 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
156 NT = NT + 7
157 *
158 * ZUNGHR
159 *
160 SRNAMT = 'ZUNGHR'
161 INFOT = 1
162 CALL ZUNGHR( -1, 1, 1, A, 1, TAU, W, 1, INFO )
163 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL ZUNGHR( 0, 0, 0, A, 1, TAU, W, 1, INFO )
166 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
167 INFOT = 2
168 CALL ZUNGHR( 0, 2, 0, A, 1, TAU, W, 1, INFO )
169 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
170 INFOT = 3
171 CALL ZUNGHR( 1, 1, 0, A, 1, TAU, W, 1, INFO )
172 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
173 INFOT = 3
174 CALL ZUNGHR( 0, 1, 1, A, 1, TAU, W, 1, INFO )
175 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
176 INFOT = 5
177 CALL ZUNGHR( 2, 1, 1, A, 1, TAU, W, 1, INFO )
178 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
179 INFOT = 8
180 CALL ZUNGHR( 3, 1, 3, A, 3, TAU, W, 1, INFO )
181 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
182 NT = NT + 7
183 *
184 * ZUNMHR
185 *
186 SRNAMT = 'ZUNMHR'
187 INFOT = 1
188 CALL ZUNMHR( '/', 'N', 0, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
189 $ INFO )
190 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
191 INFOT = 2
192 CALL ZUNMHR( 'L', '/', 0, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
193 $ INFO )
194 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
195 INFOT = 3
196 CALL ZUNMHR( 'L', 'N', -1, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
197 $ INFO )
198 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
199 INFOT = 4
200 CALL ZUNMHR( 'L', 'N', 0, -1, 1, 0, A, 1, TAU, C, 1, W, 1,
201 $ INFO )
202 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
203 INFOT = 5
204 CALL ZUNMHR( 'L', 'N', 0, 0, 0, 0, A, 1, TAU, C, 1, W, 1,
205 $ INFO )
206 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
207 INFOT = 5
208 CALL ZUNMHR( 'L', 'N', 0, 0, 2, 0, A, 1, TAU, C, 1, W, 1,
209 $ INFO )
210 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
211 INFOT = 5
212 CALL ZUNMHR( 'L', 'N', 1, 2, 2, 1, A, 1, TAU, C, 1, W, 2,
213 $ INFO )
214 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
215 INFOT = 5
216 CALL ZUNMHR( 'R', 'N', 2, 1, 2, 1, A, 1, TAU, C, 2, W, 2,
217 $ INFO )
218 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
219 INFOT = 6
220 CALL ZUNMHR( 'L', 'N', 1, 1, 1, 0, A, 1, TAU, C, 1, W, 1,
221 $ INFO )
222 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
223 INFOT = 6
224 CALL ZUNMHR( 'L', 'N', 0, 1, 1, 1, A, 1, TAU, C, 1, W, 1,
225 $ INFO )
226 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
227 INFOT = 6
228 CALL ZUNMHR( 'R', 'N', 1, 0, 1, 1, A, 1, TAU, C, 1, W, 1,
229 $ INFO )
230 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
231 INFOT = 8
232 CALL ZUNMHR( 'L', 'N', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
233 $ INFO )
234 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
235 INFOT = 8
236 CALL ZUNMHR( 'R', 'N', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
237 $ INFO )
238 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
239 INFOT = 11
240 CALL ZUNMHR( 'L', 'N', 2, 1, 1, 1, A, 2, TAU, C, 1, W, 1,
241 $ INFO )
242 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
243 INFOT = 13
244 CALL ZUNMHR( 'L', 'N', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
245 $ INFO )
246 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
247 INFOT = 13
248 CALL ZUNMHR( 'R', 'N', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
249 $ INFO )
250 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
251 NT = NT + 16
252 *
253 * ZHSEQR
254 *
255 SRNAMT = 'ZHSEQR'
256 INFOT = 1
257 CALL ZHSEQR( '/', 'N', 0, 1, 0, A, 1, X, C, 1, W, 1, INFO )
258 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
259 INFOT = 2
260 CALL ZHSEQR( 'E', '/', 0, 1, 0, A, 1, X, C, 1, W, 1, INFO )
261 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
262 INFOT = 3
263 CALL ZHSEQR( 'E', 'N', -1, 1, 0, A, 1, X, C, 1, W, 1, INFO )
264 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
265 INFOT = 4
266 CALL ZHSEQR( 'E', 'N', 0, 0, 0, A, 1, X, C, 1, W, 1, INFO )
267 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
268 INFOT = 4
269 CALL ZHSEQR( 'E', 'N', 0, 2, 0, A, 1, X, C, 1, W, 1, INFO )
270 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
271 INFOT = 5
272 CALL ZHSEQR( 'E', 'N', 1, 1, 0, A, 1, X, C, 1, W, 1, INFO )
273 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
274 INFOT = 5
275 CALL ZHSEQR( 'E', 'N', 1, 1, 2, A, 1, X, C, 1, W, 1, INFO )
276 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
277 INFOT = 7
278 CALL ZHSEQR( 'E', 'N', 2, 1, 2, A, 1, X, C, 2, W, 1, INFO )
279 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
280 INFOT = 10
281 CALL ZHSEQR( 'E', 'V', 2, 1, 2, A, 2, X, C, 1, W, 1, INFO )
282 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
283 NT = NT + 9
284 *
285 * ZHSEIN
286 *
287 SRNAMT = 'ZHSEIN'
288 INFOT = 1
289 CALL ZHSEIN( '/', 'N', 'N', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
290 $ M, W, RW, IFAILL, IFAILR, INFO )
291 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
292 INFOT = 2
293 CALL ZHSEIN( 'R', '/', 'N', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
294 $ M, W, RW, IFAILL, IFAILR, INFO )
295 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
296 INFOT = 3
297 CALL ZHSEIN( 'R', 'N', '/', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
298 $ M, W, RW, IFAILL, IFAILR, INFO )
299 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
300 INFOT = 5
301 CALL ZHSEIN( 'R', 'N', 'N', SEL, -1, A, 1, X, VL, 1, VR, 1, 0,
302 $ M, W, RW, IFAILL, IFAILR, INFO )
303 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
304 INFOT = 7
305 CALL ZHSEIN( 'R', 'N', 'N', SEL, 2, A, 1, X, VL, 1, VR, 2, 4,
306 $ M, W, RW, IFAILL, IFAILR, INFO )
307 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
308 INFOT = 10
309 CALL ZHSEIN( 'L', 'N', 'N', SEL, 2, A, 2, X, VL, 1, VR, 1, 4,
310 $ M, W, RW, IFAILL, IFAILR, INFO )
311 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
312 INFOT = 12
313 CALL ZHSEIN( 'R', 'N', 'N', SEL, 2, A, 2, X, VL, 1, VR, 1, 4,
314 $ M, W, RW, IFAILL, IFAILR, INFO )
315 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
316 INFOT = 13
317 CALL ZHSEIN( 'R', 'N', 'N', SEL, 2, A, 2, X, VL, 1, VR, 2, 1,
318 $ M, W, RW, IFAILL, IFAILR, INFO )
319 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
320 NT = NT + 8
321 *
322 * ZTREVC
323 *
324 SRNAMT = 'ZTREVC'
325 INFOT = 1
326 CALL ZTREVC( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, RW,
327 $ INFO )
328 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
329 INFOT = 2
330 CALL ZTREVC( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, RW,
331 $ INFO )
332 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
333 INFOT = 4
334 CALL ZTREVC( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
335 $ RW, INFO )
336 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
337 INFOT = 6
338 CALL ZTREVC( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W, RW,
339 $ INFO )
340 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
341 INFOT = 8
342 CALL ZTREVC( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, RW,
343 $ INFO )
344 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
345 INFOT = 10
346 CALL ZTREVC( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, RW,
347 $ INFO )
348 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
349 INFOT = 11
350 CALL ZTREVC( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W, RW,
351 $ INFO )
352 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
353 NT = NT + 7
354 END IF
355 *
356 * Print a summary line.
357 *
358 IF( OK ) THEN
359 WRITE( NOUT, FMT = 9999 )PATH, NT
360 ELSE
361 WRITE( NOUT, FMT = 9998 )PATH
362 END IF
363 *
364 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits',
365 $ ' (', I3, ' tests done)' )
366 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
367 $ 'exits ***' )
368 *
369 RETURN
370 *
371 * End of ZERRHS
372 *
373 END
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRHS tests the error exits for ZGEBAK, CGEBAL, CGEHRD, ZUNGHR,
16 * ZUNMHR, ZHSEQR, CHSEIN, and ZTREVC.
17 *
18 * Arguments
19 * =========
20 *
21 * PATH (input) CHARACTER*3
22 * The LAPACK path name for the routines to be tested.
23 *
24 * NUNIT (input) INTEGER
25 * The unit number for output.
26 *
27 * =====================================================================
28 *
29 * .. Parameters ..
30 INTEGER NMAX, LW
31 PARAMETER ( NMAX = 3, LW = NMAX*NMAX )
32 * ..
33 * .. Local Scalars ..
34 CHARACTER*2 C2
35 INTEGER I, IHI, ILO, INFO, J, M, NT
36 * ..
37 * .. Local Arrays ..
38 LOGICAL SEL( NMAX )
39 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
40 DOUBLE PRECISION RW( NMAX ), S( NMAX )
41 COMPLEX*16 A( NMAX, NMAX ), C( NMAX, NMAX ), TAU( NMAX ),
42 $ VL( NMAX, NMAX ), VR( NMAX, NMAX ), W( LW ),
43 $ X( NMAX )
44 * ..
45 * .. External Functions ..
46 LOGICAL LSAMEN
47 EXTERNAL LSAMEN
48 * ..
49 * .. External Subroutines ..
50 EXTERNAL CHKXER, ZGEBAK, ZGEBAL, ZGEHRD, ZHSEIN, ZHSEQR,
51 $ ZTREVC, ZUNGHR, ZUNMHR
52 * ..
53 * .. Intrinsic Functions ..
54 INTRINSIC DBLE
55 * ..
56 * .. Scalars in Common ..
57 LOGICAL LERR, OK
58 CHARACTER*32 SRNAMT
59 INTEGER INFOT, NOUT
60 * ..
61 * .. Common blocks ..
62 COMMON / INFOC / INFOT, NOUT, OK, LERR
63 COMMON / SRNAMC / SRNAMT
64 * ..
65 * .. Executable Statements ..
66 *
67 NOUT = NUNIT
68 WRITE( NOUT, FMT = * )
69 C2 = PATH( 2: 3 )
70 *
71 * Set the variables to innocuous values.
72 *
73 DO 20 J = 1, NMAX
74 DO 10 I = 1, NMAX
75 A( I, J ) = 1.D0 / DBLE( I+J )
76 10 CONTINUE
77 SEL( J ) = .TRUE.
78 20 CONTINUE
79 OK = .TRUE.
80 NT = 0
81 *
82 * Test error exits of the nonsymmetric eigenvalue routines.
83 *
84 IF( LSAMEN( 2, C2, 'HS' ) ) THEN
85 *
86 * ZGEBAL
87 *
88 SRNAMT = 'ZGEBAL'
89 INFOT = 1
90 CALL ZGEBAL( '/', 0, A, 1, ILO, IHI, S, INFO )
91 CALL CHKXER( 'ZGEBAL', INFOT, NOUT, LERR, OK )
92 INFOT = 2
93 CALL ZGEBAL( 'N', -1, A, 1, ILO, IHI, S, INFO )
94 CALL CHKXER( 'ZGEBAL', INFOT, NOUT, LERR, OK )
95 INFOT = 4
96 CALL ZGEBAL( 'N', 2, A, 1, ILO, IHI, S, INFO )
97 CALL CHKXER( 'ZGEBAL', INFOT, NOUT, LERR, OK )
98 NT = NT + 3
99 *
100 * ZGEBAK
101 *
102 SRNAMT = 'ZGEBAK'
103 INFOT = 1
104 CALL ZGEBAK( '/', 'R', 0, 1, 0, S, 0, A, 1, INFO )
105 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
106 INFOT = 2
107 CALL ZGEBAK( 'N', '/', 0, 1, 0, S, 0, A, 1, INFO )
108 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
109 INFOT = 3
110 CALL ZGEBAK( 'N', 'R', -1, 1, 0, S, 0, A, 1, INFO )
111 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
112 INFOT = 4
113 CALL ZGEBAK( 'N', 'R', 0, 0, 0, S, 0, A, 1, INFO )
114 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
115 INFOT = 4
116 CALL ZGEBAK( 'N', 'R', 0, 2, 0, S, 0, A, 1, INFO )
117 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
118 INFOT = 5
119 CALL ZGEBAK( 'N', 'R', 2, 2, 1, S, 0, A, 2, INFO )
120 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
121 INFOT = 5
122 CALL ZGEBAK( 'N', 'R', 0, 1, 1, S, 0, A, 1, INFO )
123 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
124 INFOT = 7
125 CALL ZGEBAK( 'N', 'R', 0, 1, 0, S, -1, A, 1, INFO )
126 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
127 INFOT = 9
128 CALL ZGEBAK( 'N', 'R', 2, 1, 2, S, 0, A, 1, INFO )
129 CALL CHKXER( 'ZGEBAK', INFOT, NOUT, LERR, OK )
130 NT = NT + 9
131 *
132 * ZGEHRD
133 *
134 SRNAMT = 'ZGEHRD'
135 INFOT = 1
136 CALL ZGEHRD( -1, 1, 1, A, 1, TAU, W, 1, INFO )
137 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
138 INFOT = 2
139 CALL ZGEHRD( 0, 0, 0, A, 1, TAU, W, 1, INFO )
140 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
141 INFOT = 2
142 CALL ZGEHRD( 0, 2, 0, A, 1, TAU, W, 1, INFO )
143 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
144 INFOT = 3
145 CALL ZGEHRD( 1, 1, 0, A, 1, TAU, W, 1, INFO )
146 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
147 INFOT = 3
148 CALL ZGEHRD( 0, 1, 1, A, 1, TAU, W, 1, INFO )
149 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
150 INFOT = 5
151 CALL ZGEHRD( 2, 1, 1, A, 1, TAU, W, 2, INFO )
152 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
153 INFOT = 8
154 CALL ZGEHRD( 2, 1, 2, A, 2, TAU, W, 1, INFO )
155 CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK )
156 NT = NT + 7
157 *
158 * ZUNGHR
159 *
160 SRNAMT = 'ZUNGHR'
161 INFOT = 1
162 CALL ZUNGHR( -1, 1, 1, A, 1, TAU, W, 1, INFO )
163 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL ZUNGHR( 0, 0, 0, A, 1, TAU, W, 1, INFO )
166 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
167 INFOT = 2
168 CALL ZUNGHR( 0, 2, 0, A, 1, TAU, W, 1, INFO )
169 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
170 INFOT = 3
171 CALL ZUNGHR( 1, 1, 0, A, 1, TAU, W, 1, INFO )
172 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
173 INFOT = 3
174 CALL ZUNGHR( 0, 1, 1, A, 1, TAU, W, 1, INFO )
175 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
176 INFOT = 5
177 CALL ZUNGHR( 2, 1, 1, A, 1, TAU, W, 1, INFO )
178 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
179 INFOT = 8
180 CALL ZUNGHR( 3, 1, 3, A, 3, TAU, W, 1, INFO )
181 CALL CHKXER( 'ZUNGHR', INFOT, NOUT, LERR, OK )
182 NT = NT + 7
183 *
184 * ZUNMHR
185 *
186 SRNAMT = 'ZUNMHR'
187 INFOT = 1
188 CALL ZUNMHR( '/', 'N', 0, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
189 $ INFO )
190 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
191 INFOT = 2
192 CALL ZUNMHR( 'L', '/', 0, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
193 $ INFO )
194 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
195 INFOT = 3
196 CALL ZUNMHR( 'L', 'N', -1, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
197 $ INFO )
198 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
199 INFOT = 4
200 CALL ZUNMHR( 'L', 'N', 0, -1, 1, 0, A, 1, TAU, C, 1, W, 1,
201 $ INFO )
202 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
203 INFOT = 5
204 CALL ZUNMHR( 'L', 'N', 0, 0, 0, 0, A, 1, TAU, C, 1, W, 1,
205 $ INFO )
206 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
207 INFOT = 5
208 CALL ZUNMHR( 'L', 'N', 0, 0, 2, 0, A, 1, TAU, C, 1, W, 1,
209 $ INFO )
210 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
211 INFOT = 5
212 CALL ZUNMHR( 'L', 'N', 1, 2, 2, 1, A, 1, TAU, C, 1, W, 2,
213 $ INFO )
214 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
215 INFOT = 5
216 CALL ZUNMHR( 'R', 'N', 2, 1, 2, 1, A, 1, TAU, C, 2, W, 2,
217 $ INFO )
218 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
219 INFOT = 6
220 CALL ZUNMHR( 'L', 'N', 1, 1, 1, 0, A, 1, TAU, C, 1, W, 1,
221 $ INFO )
222 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
223 INFOT = 6
224 CALL ZUNMHR( 'L', 'N', 0, 1, 1, 1, A, 1, TAU, C, 1, W, 1,
225 $ INFO )
226 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
227 INFOT = 6
228 CALL ZUNMHR( 'R', 'N', 1, 0, 1, 1, A, 1, TAU, C, 1, W, 1,
229 $ INFO )
230 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
231 INFOT = 8
232 CALL ZUNMHR( 'L', 'N', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
233 $ INFO )
234 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
235 INFOT = 8
236 CALL ZUNMHR( 'R', 'N', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
237 $ INFO )
238 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
239 INFOT = 11
240 CALL ZUNMHR( 'L', 'N', 2, 1, 1, 1, A, 2, TAU, C, 1, W, 1,
241 $ INFO )
242 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
243 INFOT = 13
244 CALL ZUNMHR( 'L', 'N', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
245 $ INFO )
246 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
247 INFOT = 13
248 CALL ZUNMHR( 'R', 'N', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
249 $ INFO )
250 CALL CHKXER( 'ZUNMHR', INFOT, NOUT, LERR, OK )
251 NT = NT + 16
252 *
253 * ZHSEQR
254 *
255 SRNAMT = 'ZHSEQR'
256 INFOT = 1
257 CALL ZHSEQR( '/', 'N', 0, 1, 0, A, 1, X, C, 1, W, 1, INFO )
258 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
259 INFOT = 2
260 CALL ZHSEQR( 'E', '/', 0, 1, 0, A, 1, X, C, 1, W, 1, INFO )
261 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
262 INFOT = 3
263 CALL ZHSEQR( 'E', 'N', -1, 1, 0, A, 1, X, C, 1, W, 1, INFO )
264 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
265 INFOT = 4
266 CALL ZHSEQR( 'E', 'N', 0, 0, 0, A, 1, X, C, 1, W, 1, INFO )
267 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
268 INFOT = 4
269 CALL ZHSEQR( 'E', 'N', 0, 2, 0, A, 1, X, C, 1, W, 1, INFO )
270 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
271 INFOT = 5
272 CALL ZHSEQR( 'E', 'N', 1, 1, 0, A, 1, X, C, 1, W, 1, INFO )
273 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
274 INFOT = 5
275 CALL ZHSEQR( 'E', 'N', 1, 1, 2, A, 1, X, C, 1, W, 1, INFO )
276 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
277 INFOT = 7
278 CALL ZHSEQR( 'E', 'N', 2, 1, 2, A, 1, X, C, 2, W, 1, INFO )
279 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
280 INFOT = 10
281 CALL ZHSEQR( 'E', 'V', 2, 1, 2, A, 2, X, C, 1, W, 1, INFO )
282 CALL CHKXER( 'ZHSEQR', INFOT, NOUT, LERR, OK )
283 NT = NT + 9
284 *
285 * ZHSEIN
286 *
287 SRNAMT = 'ZHSEIN'
288 INFOT = 1
289 CALL ZHSEIN( '/', 'N', 'N', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
290 $ M, W, RW, IFAILL, IFAILR, INFO )
291 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
292 INFOT = 2
293 CALL ZHSEIN( 'R', '/', 'N', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
294 $ M, W, RW, IFAILL, IFAILR, INFO )
295 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
296 INFOT = 3
297 CALL ZHSEIN( 'R', 'N', '/', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
298 $ M, W, RW, IFAILL, IFAILR, INFO )
299 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
300 INFOT = 5
301 CALL ZHSEIN( 'R', 'N', 'N', SEL, -1, A, 1, X, VL, 1, VR, 1, 0,
302 $ M, W, RW, IFAILL, IFAILR, INFO )
303 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
304 INFOT = 7
305 CALL ZHSEIN( 'R', 'N', 'N', SEL, 2, A, 1, X, VL, 1, VR, 2, 4,
306 $ M, W, RW, IFAILL, IFAILR, INFO )
307 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
308 INFOT = 10
309 CALL ZHSEIN( 'L', 'N', 'N', SEL, 2, A, 2, X, VL, 1, VR, 1, 4,
310 $ M, W, RW, IFAILL, IFAILR, INFO )
311 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
312 INFOT = 12
313 CALL ZHSEIN( 'R', 'N', 'N', SEL, 2, A, 2, X, VL, 1, VR, 1, 4,
314 $ M, W, RW, IFAILL, IFAILR, INFO )
315 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
316 INFOT = 13
317 CALL ZHSEIN( 'R', 'N', 'N', SEL, 2, A, 2, X, VL, 1, VR, 2, 1,
318 $ M, W, RW, IFAILL, IFAILR, INFO )
319 CALL CHKXER( 'ZHSEIN', INFOT, NOUT, LERR, OK )
320 NT = NT + 8
321 *
322 * ZTREVC
323 *
324 SRNAMT = 'ZTREVC'
325 INFOT = 1
326 CALL ZTREVC( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, RW,
327 $ INFO )
328 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
329 INFOT = 2
330 CALL ZTREVC( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, RW,
331 $ INFO )
332 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
333 INFOT = 4
334 CALL ZTREVC( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
335 $ RW, INFO )
336 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
337 INFOT = 6
338 CALL ZTREVC( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W, RW,
339 $ INFO )
340 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
341 INFOT = 8
342 CALL ZTREVC( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, RW,
343 $ INFO )
344 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
345 INFOT = 10
346 CALL ZTREVC( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, RW,
347 $ INFO )
348 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
349 INFOT = 11
350 CALL ZTREVC( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W, RW,
351 $ INFO )
352 CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
353 NT = NT + 7
354 END IF
355 *
356 * Print a summary line.
357 *
358 IF( OK ) THEN
359 WRITE( NOUT, FMT = 9999 )PATH, NT
360 ELSE
361 WRITE( NOUT, FMT = 9998 )PATH
362 END IF
363 *
364 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits',
365 $ ' (', I3, ' tests done)' )
366 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
367 $ 'exits ***' )
368 *
369 RETURN
370 *
371 * End of ZERRHS
372 *
373 END