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