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