1 SUBROUTINE ZERRPO( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.2.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * April 2009
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRPO tests the error exits for the COMPLEX*16 routines
16 * for Hermitian positive definite matrices.
17 *
18 * Note that this file is used only when the XBLAS are available,
19 * otherwise zerrpo.f defines this subroutine.
20 *
21 * Arguments
22 * =========
23 *
24 * PATH (input) CHARACTER*3
25 * The LAPACK path name for the routines to be tested.
26 *
27 * NUNIT (input) INTEGER
28 * The unit number for output.
29 *
30 * =====================================================================
31 *
32 * .. Parameters ..
33 INTEGER NMAX
34 PARAMETER ( NMAX = 4 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER EQ
38 CHARACTER*2 C2
39 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
40 DOUBLE PRECISION ANRM, RCOND, BERR
41 * ..
42 * .. Local Arrays ..
43 DOUBLE PRECISION S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
44 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
45 $ PARAMS( 1 )
46 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
47 $ W( 2*NMAX ), X( NMAX )
48 * ..
49 * .. External Functions ..
50 LOGICAL LSAMEN
51 EXTERNAL LSAMEN
52 * ..
53 * .. External Subroutines ..
54 EXTERNAL ALAESM, CHKXER, ZPBCON, ZPBEQU, ZPBRFS, ZPBTF2,
55 $ ZPBTRF, ZPBTRS, ZPOCON, ZPOEQU, ZPORFS, ZPOTF2,
56 $ ZPOTRF, ZPOTRI, ZPOTRS, ZPPCON, ZPPEQU, ZPPRFS,
57 $ ZPPTRF, ZPPTRI, ZPPTRS, ZPOEQUB, ZPORFSX
58 * ..
59 * .. Scalars in Common ..
60 LOGICAL LERR, OK
61 CHARACTER*32 SRNAMT
62 INTEGER INFOT, NOUT
63 * ..
64 * .. Common blocks ..
65 COMMON / INFOC / INFOT, NOUT, OK, LERR
66 COMMON / SRNAMC / SRNAMT
67 * ..
68 * .. Intrinsic Functions ..
69 INTRINSIC DBLE, DCMPLX
70 * ..
71 * .. Executable Statements ..
72 *
73 NOUT = NUNIT
74 WRITE( NOUT, FMT = * )
75 C2 = PATH( 2: 3 )
76 *
77 * Set the variables to innocuous values.
78 *
79 DO 20 J = 1, NMAX
80 DO 10 I = 1, NMAX
81 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
82 $ -1.D0 / DBLE( I+J ) )
83 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
84 $ -1.D0 / DBLE( I+J ) )
85 10 CONTINUE
86 B( J ) = 0.D0
87 R1( J ) = 0.D0
88 R2( J ) = 0.D0
89 W( J ) = 0.D0
90 X( J ) = 0.D0
91 S( J ) = 0.D0
92 20 CONTINUE
93 ANRM = 1.D0
94 OK = .TRUE.
95 *
96 * Test error exits of the routines that use the Cholesky
97 * decomposition of a Hermitian positive definite matrix.
98 *
99 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
100 *
101 * ZPOTRF
102 *
103 SRNAMT = 'ZPOTRF'
104 INFOT = 1
105 CALL ZPOTRF( '/', 0, A, 1, INFO )
106 CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
107 INFOT = 2
108 CALL ZPOTRF( 'U', -1, A, 1, INFO )
109 CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
110 INFOT = 4
111 CALL ZPOTRF( 'U', 2, A, 1, INFO )
112 CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
113 *
114 * ZPOTF2
115 *
116 SRNAMT = 'ZPOTF2'
117 INFOT = 1
118 CALL ZPOTF2( '/', 0, A, 1, INFO )
119 CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
120 INFOT = 2
121 CALL ZPOTF2( 'U', -1, A, 1, INFO )
122 CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
123 INFOT = 4
124 CALL ZPOTF2( 'U', 2, A, 1, INFO )
125 CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
126 *
127 * ZPOTRI
128 *
129 SRNAMT = 'ZPOTRI'
130 INFOT = 1
131 CALL ZPOTRI( '/', 0, A, 1, INFO )
132 CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
133 INFOT = 2
134 CALL ZPOTRI( 'U', -1, A, 1, INFO )
135 CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
136 INFOT = 4
137 CALL ZPOTRI( 'U', 2, A, 1, INFO )
138 CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
139 *
140 * ZPOTRS
141 *
142 SRNAMT = 'ZPOTRS'
143 INFOT = 1
144 CALL ZPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
145 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
146 INFOT = 2
147 CALL ZPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
148 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
149 INFOT = 3
150 CALL ZPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
151 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
152 INFOT = 5
153 CALL ZPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
154 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
155 INFOT = 7
156 CALL ZPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
157 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
158 *
159 * ZPORFS
160 *
161 SRNAMT = 'ZPORFS'
162 INFOT = 1
163 CALL ZPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
164 $ INFO )
165 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
166 INFOT = 2
167 CALL ZPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
168 $ INFO )
169 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
170 INFOT = 3
171 CALL ZPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
172 $ INFO )
173 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
174 INFOT = 5
175 CALL ZPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R,
176 $ INFO )
177 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
178 INFOT = 7
179 CALL ZPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R,
180 $ INFO )
181 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
182 INFOT = 9
183 CALL ZPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R,
184 $ INFO )
185 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
186 INFOT = 11
187 CALL ZPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
188 $ INFO )
189 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
190 *
191 * ZPORFSX
192 *
193 N_ERR_BNDS = 3
194 NPARAMS = 0
195 SRNAMT = 'ZPORFSX'
196 INFOT = 1
197 CALL ZPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
198 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
199 $ PARAMS, W, R, INFO )
200 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
201 INFOT = 2
202 CALL ZPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
203 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
204 $ PARAMS, W, R, INFO )
205 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
206 EQ = 'N'
207 INFOT = 3
208 CALL ZPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
209 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
210 $ PARAMS, W, R, INFO )
211 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
212 INFOT = 4
213 CALL ZPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
214 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
215 $ PARAMS, W, R, INFO )
216 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
217 INFOT = 6
218 CALL ZPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
219 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
220 $ PARAMS, W, R, INFO )
221 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
222 INFOT = 8
223 CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
224 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
225 $ PARAMS, W, R, INFO )
226 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
227 INFOT = 11
228 CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
229 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
230 $ PARAMS, W, R, INFO )
231 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
232 INFOT = 13
233 CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
234 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
235 $ PARAMS, W, R, INFO )
236 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
237 *
238 * ZPOCON
239 *
240 SRNAMT = 'ZPOCON'
241 INFOT = 1
242 CALL ZPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
243 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
244 INFOT = 2
245 CALL ZPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO )
246 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
247 INFOT = 4
248 CALL ZPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO )
249 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
250 INFOT = 5
251 CALL ZPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO )
252 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
253 *
254 * ZPOEQU
255 *
256 SRNAMT = 'ZPOEQU'
257 INFOT = 1
258 CALL ZPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
259 CALL CHKXER( 'ZPOEQU', INFOT, NOUT, LERR, OK )
260 INFOT = 3
261 CALL ZPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
262 CALL CHKXER( 'ZPOEQU', INFOT, NOUT, LERR, OK )
263 *
264 * ZPOEQUB
265 *
266 SRNAMT = 'ZPOEQUB'
267 INFOT = 1
268 CALL ZPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
269 CALL CHKXER( 'ZPOEQUB', INFOT, NOUT, LERR, OK )
270 INFOT = 3
271 CALL ZPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
272 CALL CHKXER( 'ZPOEQUB', INFOT, NOUT, LERR, OK )
273 *
274 * Test error exits of the routines that use the Cholesky
275 * decomposition of a Hermitian positive definite packed matrix.
276 *
277 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
278 *
279 * ZPPTRF
280 *
281 SRNAMT = 'ZPPTRF'
282 INFOT = 1
283 CALL ZPPTRF( '/', 0, A, INFO )
284 CALL CHKXER( 'ZPPTRF', INFOT, NOUT, LERR, OK )
285 INFOT = 2
286 CALL ZPPTRF( 'U', -1, A, INFO )
287 CALL CHKXER( 'ZPPTRF', INFOT, NOUT, LERR, OK )
288 *
289 * ZPPTRI
290 *
291 SRNAMT = 'ZPPTRI'
292 INFOT = 1
293 CALL ZPPTRI( '/', 0, A, INFO )
294 CALL CHKXER( 'ZPPTRI', INFOT, NOUT, LERR, OK )
295 INFOT = 2
296 CALL ZPPTRI( 'U', -1, A, INFO )
297 CALL CHKXER( 'ZPPTRI', INFOT, NOUT, LERR, OK )
298 *
299 * ZPPTRS
300 *
301 SRNAMT = 'ZPPTRS'
302 INFOT = 1
303 CALL ZPPTRS( '/', 0, 0, A, B, 1, INFO )
304 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
305 INFOT = 2
306 CALL ZPPTRS( 'U', -1, 0, A, B, 1, INFO )
307 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
308 INFOT = 3
309 CALL ZPPTRS( 'U', 0, -1, A, B, 1, INFO )
310 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
311 INFOT = 6
312 CALL ZPPTRS( 'U', 2, 1, A, B, 1, INFO )
313 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
314 *
315 * ZPPRFS
316 *
317 SRNAMT = 'ZPPRFS'
318 INFOT = 1
319 CALL ZPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
320 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
321 INFOT = 2
322 CALL ZPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
323 $ INFO )
324 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
325 INFOT = 3
326 CALL ZPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
327 $ INFO )
328 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
329 INFOT = 7
330 CALL ZPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
331 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
332 INFOT = 9
333 CALL ZPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
334 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
335 *
336 * ZPPCON
337 *
338 SRNAMT = 'ZPPCON'
339 INFOT = 1
340 CALL ZPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO )
341 CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
342 INFOT = 2
343 CALL ZPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO )
344 CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
345 INFOT = 4
346 CALL ZPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO )
347 CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
348 *
349 * ZPPEQU
350 *
351 SRNAMT = 'ZPPEQU'
352 INFOT = 1
353 CALL ZPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
354 CALL CHKXER( 'ZPPEQU', INFOT, NOUT, LERR, OK )
355 INFOT = 2
356 CALL ZPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
357 CALL CHKXER( 'ZPPEQU', INFOT, NOUT, LERR, OK )
358 *
359 * Test error exits of the routines that use the Cholesky
360 * decomposition of a Hermitian positive definite band matrix.
361 *
362 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
363 *
364 * ZPBTRF
365 *
366 SRNAMT = 'ZPBTRF'
367 INFOT = 1
368 CALL ZPBTRF( '/', 0, 0, A, 1, INFO )
369 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
370 INFOT = 2
371 CALL ZPBTRF( 'U', -1, 0, A, 1, INFO )
372 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
373 INFOT = 3
374 CALL ZPBTRF( 'U', 1, -1, A, 1, INFO )
375 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
376 INFOT = 5
377 CALL ZPBTRF( 'U', 2, 1, A, 1, INFO )
378 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
379 *
380 * ZPBTF2
381 *
382 SRNAMT = 'ZPBTF2'
383 INFOT = 1
384 CALL ZPBTF2( '/', 0, 0, A, 1, INFO )
385 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
386 INFOT = 2
387 CALL ZPBTF2( 'U', -1, 0, A, 1, INFO )
388 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
389 INFOT = 3
390 CALL ZPBTF2( 'U', 1, -1, A, 1, INFO )
391 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
392 INFOT = 5
393 CALL ZPBTF2( 'U', 2, 1, A, 1, INFO )
394 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
395 *
396 * ZPBTRS
397 *
398 SRNAMT = 'ZPBTRS'
399 INFOT = 1
400 CALL ZPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
401 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
402 INFOT = 2
403 CALL ZPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
404 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
405 INFOT = 3
406 CALL ZPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
407 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
408 INFOT = 4
409 CALL ZPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
410 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
411 INFOT = 6
412 CALL ZPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
413 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
414 INFOT = 8
415 CALL ZPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
416 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
417 *
418 * ZPBRFS
419 *
420 SRNAMT = 'ZPBRFS'
421 INFOT = 1
422 CALL ZPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
423 $ R, INFO )
424 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
425 INFOT = 2
426 CALL ZPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
427 $ R, INFO )
428 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
429 INFOT = 3
430 CALL ZPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
431 $ R, INFO )
432 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
433 INFOT = 4
434 CALL ZPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
435 $ R, INFO )
436 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
437 INFOT = 6
438 CALL ZPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
439 $ R, INFO )
440 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
441 INFOT = 8
442 CALL ZPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
443 $ R, INFO )
444 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
445 INFOT = 10
446 CALL ZPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
447 $ R, INFO )
448 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
449 INFOT = 12
450 CALL ZPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
451 $ R, INFO )
452 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
453 *
454 * ZPBCON
455 *
456 SRNAMT = 'ZPBCON'
457 INFOT = 1
458 CALL ZPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
459 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
460 INFOT = 2
461 CALL ZPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
462 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
463 INFOT = 3
464 CALL ZPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
465 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
466 INFOT = 5
467 CALL ZPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
468 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
469 INFOT = 6
470 CALL ZPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
471 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
472 *
473 * ZPBEQU
474 *
475 SRNAMT = 'ZPBEQU'
476 INFOT = 1
477 CALL ZPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
478 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
479 INFOT = 2
480 CALL ZPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
481 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
482 INFOT = 3
483 CALL ZPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
484 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
485 INFOT = 5
486 CALL ZPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
487 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
488 END IF
489 *
490 * Print a summary line.
491 *
492 CALL ALAESM( PATH, OK, NOUT )
493 *
494 RETURN
495 *
496 * End of ZERRPO
497 *
498 END
2 *
3 * -- LAPACK test routine (version 3.2.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * April 2009
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRPO tests the error exits for the COMPLEX*16 routines
16 * for Hermitian positive definite matrices.
17 *
18 * Note that this file is used only when the XBLAS are available,
19 * otherwise zerrpo.f defines this subroutine.
20 *
21 * Arguments
22 * =========
23 *
24 * PATH (input) CHARACTER*3
25 * The LAPACK path name for the routines to be tested.
26 *
27 * NUNIT (input) INTEGER
28 * The unit number for output.
29 *
30 * =====================================================================
31 *
32 * .. Parameters ..
33 INTEGER NMAX
34 PARAMETER ( NMAX = 4 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER EQ
38 CHARACTER*2 C2
39 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
40 DOUBLE PRECISION ANRM, RCOND, BERR
41 * ..
42 * .. Local Arrays ..
43 DOUBLE PRECISION S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
44 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
45 $ PARAMS( 1 )
46 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
47 $ W( 2*NMAX ), X( NMAX )
48 * ..
49 * .. External Functions ..
50 LOGICAL LSAMEN
51 EXTERNAL LSAMEN
52 * ..
53 * .. External Subroutines ..
54 EXTERNAL ALAESM, CHKXER, ZPBCON, ZPBEQU, ZPBRFS, ZPBTF2,
55 $ ZPBTRF, ZPBTRS, ZPOCON, ZPOEQU, ZPORFS, ZPOTF2,
56 $ ZPOTRF, ZPOTRI, ZPOTRS, ZPPCON, ZPPEQU, ZPPRFS,
57 $ ZPPTRF, ZPPTRI, ZPPTRS, ZPOEQUB, ZPORFSX
58 * ..
59 * .. Scalars in Common ..
60 LOGICAL LERR, OK
61 CHARACTER*32 SRNAMT
62 INTEGER INFOT, NOUT
63 * ..
64 * .. Common blocks ..
65 COMMON / INFOC / INFOT, NOUT, OK, LERR
66 COMMON / SRNAMC / SRNAMT
67 * ..
68 * .. Intrinsic Functions ..
69 INTRINSIC DBLE, DCMPLX
70 * ..
71 * .. Executable Statements ..
72 *
73 NOUT = NUNIT
74 WRITE( NOUT, FMT = * )
75 C2 = PATH( 2: 3 )
76 *
77 * Set the variables to innocuous values.
78 *
79 DO 20 J = 1, NMAX
80 DO 10 I = 1, NMAX
81 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
82 $ -1.D0 / DBLE( I+J ) )
83 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
84 $ -1.D0 / DBLE( I+J ) )
85 10 CONTINUE
86 B( J ) = 0.D0
87 R1( J ) = 0.D0
88 R2( J ) = 0.D0
89 W( J ) = 0.D0
90 X( J ) = 0.D0
91 S( J ) = 0.D0
92 20 CONTINUE
93 ANRM = 1.D0
94 OK = .TRUE.
95 *
96 * Test error exits of the routines that use the Cholesky
97 * decomposition of a Hermitian positive definite matrix.
98 *
99 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
100 *
101 * ZPOTRF
102 *
103 SRNAMT = 'ZPOTRF'
104 INFOT = 1
105 CALL ZPOTRF( '/', 0, A, 1, INFO )
106 CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
107 INFOT = 2
108 CALL ZPOTRF( 'U', -1, A, 1, INFO )
109 CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
110 INFOT = 4
111 CALL ZPOTRF( 'U', 2, A, 1, INFO )
112 CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
113 *
114 * ZPOTF2
115 *
116 SRNAMT = 'ZPOTF2'
117 INFOT = 1
118 CALL ZPOTF2( '/', 0, A, 1, INFO )
119 CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
120 INFOT = 2
121 CALL ZPOTF2( 'U', -1, A, 1, INFO )
122 CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
123 INFOT = 4
124 CALL ZPOTF2( 'U', 2, A, 1, INFO )
125 CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
126 *
127 * ZPOTRI
128 *
129 SRNAMT = 'ZPOTRI'
130 INFOT = 1
131 CALL ZPOTRI( '/', 0, A, 1, INFO )
132 CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
133 INFOT = 2
134 CALL ZPOTRI( 'U', -1, A, 1, INFO )
135 CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
136 INFOT = 4
137 CALL ZPOTRI( 'U', 2, A, 1, INFO )
138 CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
139 *
140 * ZPOTRS
141 *
142 SRNAMT = 'ZPOTRS'
143 INFOT = 1
144 CALL ZPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
145 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
146 INFOT = 2
147 CALL ZPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
148 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
149 INFOT = 3
150 CALL ZPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
151 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
152 INFOT = 5
153 CALL ZPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
154 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
155 INFOT = 7
156 CALL ZPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
157 CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
158 *
159 * ZPORFS
160 *
161 SRNAMT = 'ZPORFS'
162 INFOT = 1
163 CALL ZPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
164 $ INFO )
165 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
166 INFOT = 2
167 CALL ZPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
168 $ INFO )
169 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
170 INFOT = 3
171 CALL ZPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
172 $ INFO )
173 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
174 INFOT = 5
175 CALL ZPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R,
176 $ INFO )
177 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
178 INFOT = 7
179 CALL ZPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R,
180 $ INFO )
181 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
182 INFOT = 9
183 CALL ZPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R,
184 $ INFO )
185 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
186 INFOT = 11
187 CALL ZPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
188 $ INFO )
189 CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
190 *
191 * ZPORFSX
192 *
193 N_ERR_BNDS = 3
194 NPARAMS = 0
195 SRNAMT = 'ZPORFSX'
196 INFOT = 1
197 CALL ZPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
198 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
199 $ PARAMS, W, R, INFO )
200 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
201 INFOT = 2
202 CALL ZPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
203 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
204 $ PARAMS, W, R, INFO )
205 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
206 EQ = 'N'
207 INFOT = 3
208 CALL ZPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
209 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
210 $ PARAMS, W, R, INFO )
211 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
212 INFOT = 4
213 CALL ZPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
214 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
215 $ PARAMS, W, R, INFO )
216 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
217 INFOT = 6
218 CALL ZPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
219 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
220 $ PARAMS, W, R, INFO )
221 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
222 INFOT = 8
223 CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
224 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
225 $ PARAMS, W, R, INFO )
226 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
227 INFOT = 11
228 CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
229 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
230 $ PARAMS, W, R, INFO )
231 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
232 INFOT = 13
233 CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
234 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
235 $ PARAMS, W, R, INFO )
236 CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
237 *
238 * ZPOCON
239 *
240 SRNAMT = 'ZPOCON'
241 INFOT = 1
242 CALL ZPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
243 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
244 INFOT = 2
245 CALL ZPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO )
246 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
247 INFOT = 4
248 CALL ZPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO )
249 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
250 INFOT = 5
251 CALL ZPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO )
252 CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
253 *
254 * ZPOEQU
255 *
256 SRNAMT = 'ZPOEQU'
257 INFOT = 1
258 CALL ZPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
259 CALL CHKXER( 'ZPOEQU', INFOT, NOUT, LERR, OK )
260 INFOT = 3
261 CALL ZPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
262 CALL CHKXER( 'ZPOEQU', INFOT, NOUT, LERR, OK )
263 *
264 * ZPOEQUB
265 *
266 SRNAMT = 'ZPOEQUB'
267 INFOT = 1
268 CALL ZPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
269 CALL CHKXER( 'ZPOEQUB', INFOT, NOUT, LERR, OK )
270 INFOT = 3
271 CALL ZPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
272 CALL CHKXER( 'ZPOEQUB', INFOT, NOUT, LERR, OK )
273 *
274 * Test error exits of the routines that use the Cholesky
275 * decomposition of a Hermitian positive definite packed matrix.
276 *
277 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
278 *
279 * ZPPTRF
280 *
281 SRNAMT = 'ZPPTRF'
282 INFOT = 1
283 CALL ZPPTRF( '/', 0, A, INFO )
284 CALL CHKXER( 'ZPPTRF', INFOT, NOUT, LERR, OK )
285 INFOT = 2
286 CALL ZPPTRF( 'U', -1, A, INFO )
287 CALL CHKXER( 'ZPPTRF', INFOT, NOUT, LERR, OK )
288 *
289 * ZPPTRI
290 *
291 SRNAMT = 'ZPPTRI'
292 INFOT = 1
293 CALL ZPPTRI( '/', 0, A, INFO )
294 CALL CHKXER( 'ZPPTRI', INFOT, NOUT, LERR, OK )
295 INFOT = 2
296 CALL ZPPTRI( 'U', -1, A, INFO )
297 CALL CHKXER( 'ZPPTRI', INFOT, NOUT, LERR, OK )
298 *
299 * ZPPTRS
300 *
301 SRNAMT = 'ZPPTRS'
302 INFOT = 1
303 CALL ZPPTRS( '/', 0, 0, A, B, 1, INFO )
304 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
305 INFOT = 2
306 CALL ZPPTRS( 'U', -1, 0, A, B, 1, INFO )
307 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
308 INFOT = 3
309 CALL ZPPTRS( 'U', 0, -1, A, B, 1, INFO )
310 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
311 INFOT = 6
312 CALL ZPPTRS( 'U', 2, 1, A, B, 1, INFO )
313 CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
314 *
315 * ZPPRFS
316 *
317 SRNAMT = 'ZPPRFS'
318 INFOT = 1
319 CALL ZPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
320 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
321 INFOT = 2
322 CALL ZPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
323 $ INFO )
324 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
325 INFOT = 3
326 CALL ZPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
327 $ INFO )
328 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
329 INFOT = 7
330 CALL ZPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
331 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
332 INFOT = 9
333 CALL ZPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
334 CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
335 *
336 * ZPPCON
337 *
338 SRNAMT = 'ZPPCON'
339 INFOT = 1
340 CALL ZPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO )
341 CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
342 INFOT = 2
343 CALL ZPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO )
344 CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
345 INFOT = 4
346 CALL ZPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO )
347 CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
348 *
349 * ZPPEQU
350 *
351 SRNAMT = 'ZPPEQU'
352 INFOT = 1
353 CALL ZPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
354 CALL CHKXER( 'ZPPEQU', INFOT, NOUT, LERR, OK )
355 INFOT = 2
356 CALL ZPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
357 CALL CHKXER( 'ZPPEQU', INFOT, NOUT, LERR, OK )
358 *
359 * Test error exits of the routines that use the Cholesky
360 * decomposition of a Hermitian positive definite band matrix.
361 *
362 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
363 *
364 * ZPBTRF
365 *
366 SRNAMT = 'ZPBTRF'
367 INFOT = 1
368 CALL ZPBTRF( '/', 0, 0, A, 1, INFO )
369 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
370 INFOT = 2
371 CALL ZPBTRF( 'U', -1, 0, A, 1, INFO )
372 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
373 INFOT = 3
374 CALL ZPBTRF( 'U', 1, -1, A, 1, INFO )
375 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
376 INFOT = 5
377 CALL ZPBTRF( 'U', 2, 1, A, 1, INFO )
378 CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
379 *
380 * ZPBTF2
381 *
382 SRNAMT = 'ZPBTF2'
383 INFOT = 1
384 CALL ZPBTF2( '/', 0, 0, A, 1, INFO )
385 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
386 INFOT = 2
387 CALL ZPBTF2( 'U', -1, 0, A, 1, INFO )
388 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
389 INFOT = 3
390 CALL ZPBTF2( 'U', 1, -1, A, 1, INFO )
391 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
392 INFOT = 5
393 CALL ZPBTF2( 'U', 2, 1, A, 1, INFO )
394 CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
395 *
396 * ZPBTRS
397 *
398 SRNAMT = 'ZPBTRS'
399 INFOT = 1
400 CALL ZPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
401 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
402 INFOT = 2
403 CALL ZPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
404 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
405 INFOT = 3
406 CALL ZPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
407 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
408 INFOT = 4
409 CALL ZPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
410 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
411 INFOT = 6
412 CALL ZPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
413 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
414 INFOT = 8
415 CALL ZPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
416 CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
417 *
418 * ZPBRFS
419 *
420 SRNAMT = 'ZPBRFS'
421 INFOT = 1
422 CALL ZPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
423 $ R, INFO )
424 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
425 INFOT = 2
426 CALL ZPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
427 $ R, INFO )
428 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
429 INFOT = 3
430 CALL ZPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
431 $ R, INFO )
432 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
433 INFOT = 4
434 CALL ZPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
435 $ R, INFO )
436 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
437 INFOT = 6
438 CALL ZPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
439 $ R, INFO )
440 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
441 INFOT = 8
442 CALL ZPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
443 $ R, INFO )
444 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
445 INFOT = 10
446 CALL ZPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
447 $ R, INFO )
448 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
449 INFOT = 12
450 CALL ZPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
451 $ R, INFO )
452 CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
453 *
454 * ZPBCON
455 *
456 SRNAMT = 'ZPBCON'
457 INFOT = 1
458 CALL ZPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
459 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
460 INFOT = 2
461 CALL ZPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
462 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
463 INFOT = 3
464 CALL ZPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
465 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
466 INFOT = 5
467 CALL ZPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
468 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
469 INFOT = 6
470 CALL ZPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
471 CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
472 *
473 * ZPBEQU
474 *
475 SRNAMT = 'ZPBEQU'
476 INFOT = 1
477 CALL ZPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
478 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
479 INFOT = 2
480 CALL ZPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
481 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
482 INFOT = 3
483 CALL ZPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
484 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
485 INFOT = 5
486 CALL ZPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
487 CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
488 END IF
489 *
490 * Print a summary line.
491 *
492 CALL ALAESM( PATH, OK, NOUT )
493 *
494 RETURN
495 *
496 * End of ZERRPO
497 *
498 END