1*> \brief \b CERRGEX
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 CERRGE( 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*> CERRGE tests the error exits for the COMPLEX routines
25*> for general matrices.
26*>
27*> Note that this file is used only when the XBLAS are available,
28*> otherwise cerrge.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 complex_lin
55*
56*  =====================================================================
57      SUBROUTINE CERRGE( 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      REAL               ANRM, CCOND, RCOND, BERR
79*     ..
80*     .. Local Arrays ..
81      INTEGER            IP( NMAX )
82      REAL               R( NMAX ), R1( NMAX ), R2( NMAX ), CS( NMAX ),
83     $                   RS( NMAX )
84      COMPLEX            A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
85     $                   W( 2*NMAX ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ),
86     $                   ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
87*     ..
88*     .. External Functions ..
89      LOGICAL            LSAMEN
90      EXTERNAL           LSAMEN
91*     ..
92*     .. External Subroutines ..
93      EXTERNAL           ALAESM, CGBCON, CGBEQU, CGBRFS, CGBTF2, CGBTRF,
94     $                   CGBTRS, CGECON, CGEEQU, CGERFS, CGETF2, CGETRF,
95     $                   CGETRI, CGETRS, CHKXER, CGEEQUB, CGERFSX,
96     $                   CGBEQUB, CGBRFSX
97*     ..
98*     .. Scalars in Common ..
99      LOGICAL            LERR, OK
100      CHARACTER*32       SRNAMT
101      INTEGER            INFOT, NOUT
102*     ..
103*     .. Common blocks ..
104      COMMON             / INFOC / INFOT, NOUT, OK, LERR
105      COMMON             / SRNAMC / SRNAMT
106*     ..
107*     .. Intrinsic Functions ..
108      INTRINSIC          CMPLX, REAL
109*     ..
110*     .. Executable Statements ..
111*
112      NOUT = NUNIT
113      WRITE( NOUT, FMT = * )
114      C2 = PATH( 2: 3 )
115*
116*     Set the variables to innocuous values.
117*
118      DO 20 J = 1, NMAX
119         DO 10 I = 1, NMAX
120            A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
121            AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
122   10    CONTINUE
123         B( J ) = 0.
124         R1( J ) = 0.
125         R2( J ) = 0.
126         W( J ) = 0.
127         X( J ) = 0.
128         CS( J ) = 0.
129         RS( J ) = 0.
130         IP( J ) = J
131   20 CONTINUE
132      OK = .TRUE.
133*
134*     Test error exits of the routines that use the LU decomposition
135*     of a general matrix.
136*
137      IF( LSAMEN( 2, C2, 'GE' ) ) THEN
138*
139*        CGETRF
140*
141         SRNAMT = 'CGETRF'
142         INFOT = 1
143         CALL CGETRF( -1, 0, A, 1, IP, INFO )
144         CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK )
145         INFOT = 2
146         CALL CGETRF( 0, -1, A, 1, IP, INFO )
147         CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK )
148         INFOT = 4
149         CALL CGETRF( 2, 1, A, 1, IP, INFO )
150         CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK )
151*
152*        CGETF2
153*
154         SRNAMT = 'CGETF2'
155         INFOT = 1
156         CALL CGETF2( -1, 0, A, 1, IP, INFO )
157         CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK )
158         INFOT = 2
159         CALL CGETF2( 0, -1, A, 1, IP, INFO )
160         CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK )
161         INFOT = 4
162         CALL CGETF2( 2, 1, A, 1, IP, INFO )
163         CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK )
164*
165*        CGETRI
166*
167         SRNAMT = 'CGETRI'
168         INFOT = 1
169         CALL CGETRI( -1, A, 1, IP, W, 1, INFO )
170         CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK )
171         INFOT = 3
172         CALL CGETRI( 2, A, 1, IP, W, 2, INFO )
173         CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK )
174         INFOT = 6
175         CALL CGETRI( 2, A, 2, IP, W, 1, INFO )
176         CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK )
177*
178*        CGETRS
179*
180         SRNAMT = 'CGETRS'
181         INFOT = 1
182         CALL CGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
183         CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK )
184         INFOT = 2
185         CALL CGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO )
186         CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK )
187         INFOT = 3
188         CALL CGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO )
189         CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK )
190         INFOT = 5
191         CALL CGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO )
192         CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK )
193         INFOT = 8
194         CALL CGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO )
195         CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK )
196*
197*        CGERFS
198*
199         SRNAMT = 'CGERFS'
200         INFOT = 1
201         CALL CGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
202     $                R, INFO )
203         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
204         INFOT = 2
205         CALL CGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
206     $                W, R, INFO )
207         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
208         INFOT = 3
209         CALL CGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
210     $                W, R, INFO )
211         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
212         INFOT = 5
213         CALL CGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
214     $                R, INFO )
215         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
216         INFOT = 7
217         CALL CGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
218     $                R, INFO )
219         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
220         INFOT = 10
221         CALL CGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
222     $                R, INFO )
223         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
224         INFOT = 12
225         CALL CGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
226     $                R, INFO )
227         CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK )
228*
229*        CGERFSX
230*
231         N_ERR_BNDS = 3
232         NPARAMS = 0
233         SRNAMT = 'CGERFSX'
234         INFOT = 1
235         CALL CGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X,
236     $                1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
237     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
238         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
239         INFOT = 2
240         EQ = '/'
241         CALL CGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X,
242     $                2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
243     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
244         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
245         INFOT = 3
246         EQ = 'R'
247         CALL CGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X,
248     $                1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
249     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
250         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
251         INFOT = 4
252         CALL CGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, RS, CS, B, 1, X,
253     $                1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
254     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
255         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
256         INFOT = 6
257         CALL CGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X,
258     $                2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
259     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
260         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
261         INFOT = 8
262         CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, RS, CS, B, 2, X,
263     $                2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
264     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
265         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
266         INFOT = 13
267         EQ = 'C'
268         CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 1, X,
269     $                2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
270     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
271         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
272         INFOT = 15
273         CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 2, X,
274     $                1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
275     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
276         CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK )
277*
278*        CGECON
279*
280         SRNAMT = 'CGECON'
281         INFOT = 1
282         CALL CGECON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
283         CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK )
284         INFOT = 2
285         CALL CGECON( '1', -1, A, 1, ANRM, RCOND, W, R, INFO )
286         CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK )
287         INFOT = 4
288         CALL CGECON( '1', 2, A, 1, ANRM, RCOND, W, R, INFO )
289         CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK )
290*
291*        CGEEQU
292*
293         SRNAMT = 'CGEEQU'
294         INFOT = 1
295         CALL CGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
296         CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK )
297         INFOT = 2
298         CALL CGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
299         CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK )
300         INFOT = 4
301         CALL CGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
302         CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK )
303*
304*        CGEEQUB
305*
306         SRNAMT = 'CGEEQUB'
307         INFOT = 1
308         CALL CGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
309         CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK )
310         INFOT = 2
311         CALL CGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
312         CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK )
313         INFOT = 4
314         CALL CGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
315         CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK )
316*
317*     Test error exits of the routines that use the LU decomposition
318*     of a general band matrix.
319*
320      ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
321*
322*        CGBTRF
323*
324         SRNAMT = 'CGBTRF'
325         INFOT = 1
326         CALL CGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
327         CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK )
328         INFOT = 2
329         CALL CGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
330         CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK )
331         INFOT = 3
332         CALL CGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
333         CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK )
334         INFOT = 4
335         CALL CGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
336         CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK )
337         INFOT = 6
338         CALL CGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
339         CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK )
340*
341*        CGBTF2
342*
343         SRNAMT = 'CGBTF2'
344         INFOT = 1
345         CALL CGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
346         CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK )
347         INFOT = 2
348         CALL CGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
349         CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK )
350         INFOT = 3
351         CALL CGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
352         CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK )
353         INFOT = 4
354         CALL CGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
355         CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK )
356         INFOT = 6
357         CALL CGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
358         CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK )
359*
360*        CGBTRS
361*
362         SRNAMT = 'CGBTRS'
363         INFOT = 1
364         CALL CGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
365         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
366         INFOT = 2
367         CALL CGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
368         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
369         INFOT = 3
370         CALL CGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
371         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
372         INFOT = 4
373         CALL CGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
374         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
375         INFOT = 5
376         CALL CGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
377         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
378         INFOT = 7
379         CALL CGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
380         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
381         INFOT = 10
382         CALL CGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
383         CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK )
384*
385*        CGBRFS
386*
387         SRNAMT = 'CGBRFS'
388         INFOT = 1
389         CALL CGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
390     $                R2, W, R, INFO )
391         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
392         INFOT = 2
393         CALL CGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
394     $                R2, W, R, INFO )
395         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
396         INFOT = 3
397         CALL CGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
398     $                R2, W, R, INFO )
399         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
400         INFOT = 4
401         CALL CGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
402     $                R2, W, R, INFO )
403         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
404         INFOT = 5
405         CALL CGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
406     $                R2, W, R, INFO )
407         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
408         INFOT = 7
409         CALL CGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
410     $                R2, W, R, INFO )
411         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
412         INFOT = 9
413         CALL CGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
414     $                R2, W, R, INFO )
415         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
416         INFOT = 12
417         CALL CGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
418     $                R2, W, R, INFO )
419         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
420         INFOT = 14
421         CALL CGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
422     $                R2, W, R, INFO )
423         CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK )
424*
425*        CGBRFSX
426*
427         N_ERR_BNDS = 3
428         NPARAMS = 0
429         SRNAMT = 'CGBRFSX'
430         INFOT = 1
431         CALL CGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, RS, CS, B,
432     $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
433     $                ERR_BNDS_C, NPARAMS, PARAMS,  W, R, INFO )
434         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
435         INFOT = 2
436         EQ = '/'
437         CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B,
438     $                2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
439     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
440         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
441         INFOT = 3
442         EQ = 'R'
443         CALL CGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, RS, CS, B,
444     $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
445     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
446         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
447         INFOT = 4
448         EQ = 'R'
449         CALL CGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, RS, CS, B,
450     $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
451     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
452         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
453         INFOT = 5
454         EQ = 'R'
455         CALL CGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, RS, CS, B,
456     $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
457     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
458         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
459         INFOT = 6
460         CALL CGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, RS, CS, B,
461     $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
462     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
463         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
464         INFOT = 8
465         CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B,
466     $                2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
467     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
468         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
469         INFOT = 10
470         CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, RS, CS, B,
471     $                2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
472     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
473         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
474         INFOT = 13
475         EQ = 'C'
476         CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B,
477     $                1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
478     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
479         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
480         INFOT = 15
481         CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B,
482     $                2, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
483     $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
484         CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK )
485*
486*        CGBCON
487*
488         SRNAMT = 'CGBCON'
489         INFOT = 1
490         CALL CGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
491         CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK )
492         INFOT = 2
493         CALL CGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
494         CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK )
495         INFOT = 3
496         CALL CGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
497         CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK )
498         INFOT = 4
499         CALL CGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, R, INFO )
500         CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK )
501         INFOT = 6
502         CALL CGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, R, INFO )
503         CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK )
504*
505*        CGBEQU
506*
507         SRNAMT = 'CGBEQU'
508         INFOT = 1
509         CALL CGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
510     $                INFO )
511         CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK )
512         INFOT = 2
513         CALL CGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
514     $                INFO )
515         CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK )
516         INFOT = 3
517         CALL CGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
518     $                INFO )
519         CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK )
520         INFOT = 4
521         CALL CGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
522     $                INFO )
523         CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK )
524         INFOT = 6
525         CALL CGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
526     $                INFO )
527         CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK )
528*
529*        CGBEQUB
530*
531         SRNAMT = 'CGBEQUB'
532         INFOT = 1
533         CALL CGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
534     $                INFO )
535         CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK )
536         INFOT = 2
537         CALL CGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
538     $                INFO )
539         CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK )
540         INFOT = 3
541         CALL CGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
542     $                INFO )
543         CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK )
544         INFOT = 4
545         CALL CGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
546     $                INFO )
547         CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK )
548         INFOT = 6
549         CALL CGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
550     $                INFO )
551         CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK )
552      END IF
553*
554*     Print a summary line.
555*
556      CALL ALAESM( PATH, OK, NOUT )
557*
558      RETURN
559*
560*     End of CERRGEX
561*
562      END
563