1*> \brief \b CERRPOX
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 CERRPO( 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*> CERRPO tests the error exits for the COMPLEX routines
25*> for Hermitian positive definite matrices.
26*>
27*> Note that this file is used only when the XBLAS are available,
28*> otherwise cerrpo.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 complex_lin
57*
58*  =====================================================================
59      SUBROUTINE CERRPO( 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      REAL               ANRM, RCOND, BERR
82*     ..
83*     .. Local Arrays ..
84      REAL               S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
85     $                   ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
86     $                   PARAMS( 1 )
87      COMPLEX            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, CPBCON, CPBEQU, CPBRFS, CPBTF2,
96     $                   CPBTRF, CPBTRS, CPOCON, CPOEQU, CPORFS, CPOTF2,
97     $                   CPOTRF, CPOTRI, CPOTRS, CPPCON, CPPEQU, CPPRFS,
98     $                   CPPTRF, CPPTRI, CPPTRS, CPOEQUB, CPORFSX
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          CMPLX, REAL
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 ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
123            AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
124   10    CONTINUE
125         B( J ) = 0.
126         R1( J ) = 0.
127         R2( J ) = 0.
128         W( J ) = 0.
129         X( J ) = 0.
130         S( J ) = 0.
131   20 CONTINUE
132      ANRM = 1.
133      OK = .TRUE.
134*
135*     Test error exits of the routines that use the Cholesky
136*     decomposition of a Hermitian positive definite matrix.
137*
138      IF( LSAMEN( 2, C2, 'PO' ) ) THEN
139*
140*        CPOTRF
141*
142         SRNAMT = 'CPOTRF'
143         INFOT = 1
144         CALL CPOTRF( '/', 0, A, 1, INFO )
145         CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
146         INFOT = 2
147         CALL CPOTRF( 'U', -1, A, 1, INFO )
148         CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
149         INFOT = 4
150         CALL CPOTRF( 'U', 2, A, 1, INFO )
151         CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
152*
153*        CPOTF2
154*
155         SRNAMT = 'CPOTF2'
156         INFOT = 1
157         CALL CPOTF2( '/', 0, A, 1, INFO )
158         CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
159         INFOT = 2
160         CALL CPOTF2( 'U', -1, A, 1, INFO )
161         CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
162         INFOT = 4
163         CALL CPOTF2( 'U', 2, A, 1, INFO )
164         CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
165*
166*        CPOTRI
167*
168         SRNAMT = 'CPOTRI'
169         INFOT = 1
170         CALL CPOTRI( '/', 0, A, 1, INFO )
171         CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
172         INFOT = 2
173         CALL CPOTRI( 'U', -1, A, 1, INFO )
174         CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
175         INFOT = 4
176         CALL CPOTRI( 'U', 2, A, 1, INFO )
177         CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
178*
179*        CPOTRS
180*
181         SRNAMT = 'CPOTRS'
182         INFOT = 1
183         CALL CPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
184         CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
185         INFOT = 2
186         CALL CPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
187         CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
188         INFOT = 3
189         CALL CPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
190         CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
191         INFOT = 5
192         CALL CPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
193         CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
194         INFOT = 7
195         CALL CPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
196         CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
197*
198*        CPORFS
199*
200         SRNAMT = 'CPORFS'
201         INFOT = 1
202         CALL CPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
203     $                INFO )
204         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
205         INFOT = 2
206         CALL CPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
207     $                INFO )
208         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
209         INFOT = 3
210         CALL CPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
211     $                INFO )
212         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
213         INFOT = 5
214         CALL CPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R,
215     $                INFO )
216         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
217         INFOT = 7
218         CALL CPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R,
219     $                INFO )
220         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
221         INFOT = 9
222         CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R,
223     $                INFO )
224         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
225         INFOT = 11
226         CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
227     $                INFO )
228         CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
229*
230*        CPORFSX
231*
232         N_ERR_BNDS = 3
233         NPARAMS = 0
234         SRNAMT = 'CPORFSX'
235         INFOT = 1
236         CALL CPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
237     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
238     $        PARAMS, W, R, INFO )
239         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
240         INFOT = 2
241         CALL CPORFSX( 'U', '/', -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
242     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
243     $        PARAMS, W, R, INFO )
244         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
245         EQ = 'N'
246         INFOT = 3
247         CALL CPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
248     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
249     $        PARAMS, W, R, INFO )
250         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
251         INFOT = 4
252         CALL CPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
253     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
254     $        PARAMS, W, R, INFO )
255         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
256         INFOT = 6
257         CALL CPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
258     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
259     $        PARAMS, W, R, INFO )
260         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
261         INFOT = 8
262         CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
263     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
264     $        PARAMS, W, R, INFO )
265         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
266         INFOT = 11
267         CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
268     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
269     $        PARAMS, W, R, INFO )
270         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
271         INFOT = 13
272         CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
273     $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
274     $        PARAMS, W, R, INFO )
275         CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
276*
277*        CPOCON
278*
279         SRNAMT = 'CPOCON'
280         INFOT = 1
281         CALL CPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
282         CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
283         INFOT = 2
284         CALL CPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO )
285         CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
286         INFOT = 4
287         CALL CPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO )
288         CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
289         INFOT = 5
290         CALL CPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO )
291         CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
292*
293*        CPOEQU
294*
295         SRNAMT = 'CPOEQU'
296         INFOT = 1
297         CALL CPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
298         CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK )
299         INFOT = 3
300         CALL CPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
301         CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK )
302*
303*        CPOEQUB
304*
305         SRNAMT = 'CPOEQUB'
306         INFOT = 1
307         CALL CPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
308         CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK )
309         INFOT = 3
310         CALL CPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
311         CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK )
312*
313*     Test error exits of the routines that use the Cholesky
314*     decomposition of a Hermitian positive definite packed matrix.
315*
316      ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
317*
318*        CPPTRF
319*
320         SRNAMT = 'CPPTRF'
321         INFOT = 1
322         CALL CPPTRF( '/', 0, A, INFO )
323         CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK )
324         INFOT = 2
325         CALL CPPTRF( 'U', -1, A, INFO )
326         CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK )
327*
328*        CPPTRI
329*
330         SRNAMT = 'CPPTRI'
331         INFOT = 1
332         CALL CPPTRI( '/', 0, A, INFO )
333         CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK )
334         INFOT = 2
335         CALL CPPTRI( 'U', -1, A, INFO )
336         CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK )
337*
338*        CPPTRS
339*
340         SRNAMT = 'CPPTRS'
341         INFOT = 1
342         CALL CPPTRS( '/', 0, 0, A, B, 1, INFO )
343         CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
344         INFOT = 2
345         CALL CPPTRS( 'U', -1, 0, A, B, 1, INFO )
346         CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
347         INFOT = 3
348         CALL CPPTRS( 'U', 0, -1, A, B, 1, INFO )
349         CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
350         INFOT = 6
351         CALL CPPTRS( 'U', 2, 1, A, B, 1, INFO )
352         CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
353*
354*        CPPRFS
355*
356         SRNAMT = 'CPPRFS'
357         INFOT = 1
358         CALL CPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
359         CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
360         INFOT = 2
361         CALL CPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
362     $                INFO )
363         CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
364         INFOT = 3
365         CALL CPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
366     $                INFO )
367         CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
368         INFOT = 7
369         CALL CPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
370         CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
371         INFOT = 9
372         CALL CPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
373         CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
374*
375*        CPPCON
376*
377         SRNAMT = 'CPPCON'
378         INFOT = 1
379         CALL CPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO )
380         CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
381         INFOT = 2
382         CALL CPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO )
383         CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
384         INFOT = 4
385         CALL CPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO )
386         CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
387*
388*        CPPEQU
389*
390         SRNAMT = 'CPPEQU'
391         INFOT = 1
392         CALL CPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
393         CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK )
394         INFOT = 2
395         CALL CPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
396         CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK )
397*
398*     Test error exits of the routines that use the Cholesky
399*     decomposition of a Hermitian positive definite band matrix.
400*
401      ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
402*
403*        CPBTRF
404*
405         SRNAMT = 'CPBTRF'
406         INFOT = 1
407         CALL CPBTRF( '/', 0, 0, A, 1, INFO )
408         CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
409         INFOT = 2
410         CALL CPBTRF( 'U', -1, 0, A, 1, INFO )
411         CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
412         INFOT = 3
413         CALL CPBTRF( 'U', 1, -1, A, 1, INFO )
414         CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
415         INFOT = 5
416         CALL CPBTRF( 'U', 2, 1, A, 1, INFO )
417         CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
418*
419*        CPBTF2
420*
421         SRNAMT = 'CPBTF2'
422         INFOT = 1
423         CALL CPBTF2( '/', 0, 0, A, 1, INFO )
424         CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
425         INFOT = 2
426         CALL CPBTF2( 'U', -1, 0, A, 1, INFO )
427         CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
428         INFOT = 3
429         CALL CPBTF2( 'U', 1, -1, A, 1, INFO )
430         CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
431         INFOT = 5
432         CALL CPBTF2( 'U', 2, 1, A, 1, INFO )
433         CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
434*
435*        CPBTRS
436*
437         SRNAMT = 'CPBTRS'
438         INFOT = 1
439         CALL CPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
440         CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
441         INFOT = 2
442         CALL CPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
443         CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
444         INFOT = 3
445         CALL CPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
446         CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
447         INFOT = 4
448         CALL CPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
449         CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
450         INFOT = 6
451         CALL CPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
452         CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
453         INFOT = 8
454         CALL CPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
455         CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
456*
457*        CPBRFS
458*
459         SRNAMT = 'CPBRFS'
460         INFOT = 1
461         CALL CPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
462     $                R, INFO )
463         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
464         INFOT = 2
465         CALL CPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
466     $                R, INFO )
467         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
468         INFOT = 3
469         CALL CPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
470     $                R, INFO )
471         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
472         INFOT = 4
473         CALL CPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
474     $                R, INFO )
475         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
476         INFOT = 6
477         CALL CPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
478     $                R, INFO )
479         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
480         INFOT = 8
481         CALL CPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
482     $                R, INFO )
483         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
484         INFOT = 10
485         CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
486     $                R, INFO )
487         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
488         INFOT = 12
489         CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
490     $                R, INFO )
491         CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
492*
493*        CPBCON
494*
495         SRNAMT = 'CPBCON'
496         INFOT = 1
497         CALL CPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
498         CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
499         INFOT = 2
500         CALL CPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
501         CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
502         INFOT = 3
503         CALL CPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
504         CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
505         INFOT = 5
506         CALL CPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
507         CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
508         INFOT = 6
509         CALL CPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
510         CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
511*
512*        CPBEQU
513*
514         SRNAMT = 'CPBEQU'
515         INFOT = 1
516         CALL CPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
517         CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
518         INFOT = 2
519         CALL CPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
520         CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
521         INFOT = 3
522         CALL CPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
523         CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
524         INFOT = 5
525         CALL CPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
526         CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
527      END IF
528*
529*     Print a summary line.
530*
531      CALL ALAESM( PATH, OK, NOUT )
532*
533      RETURN
534*
535*     End of CERRPO
536*
537      END
538