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