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