1*> \brief \b ZERRVXX
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 ZERRVX( 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*> ZERRVX tests the error exits for the COMPLEX*16 driver routines
25*> for solving linear systems of equations.
26*> \endverbatim
27*
28*  Arguments:
29*  ==========
30*
31*> \param[in] PATH
32*> \verbatim
33*>          PATH is CHARACTER*3
34*>          The LAPACK path name for the routines to be tested.
35*> \endverbatim
36*>
37*> \param[in] NUNIT
38*> \verbatim
39*>          NUNIT is INTEGER
40*>          The unit number for output.
41*> \endverbatim
42*
43*  Authors:
44*  ========
45*
46*> \author Univ. of Tennessee
47*> \author Univ. of California Berkeley
48*> \author Univ. of Colorado Denver
49*> \author NAG Ltd.
50*
51*> \date December 2016
52*
53*> \ingroup complex16_lin
54*
55*  =====================================================================
56      SUBROUTINE ZERRVX( PATH, NUNIT )
57*
58*  -- LAPACK test routine (version 3.7.0) --
59*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
60*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
61*     December 2016
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      REAL               ONE
74      PARAMETER          ( ONE = 1.0D+0 )
75*     ..
76*     .. Local Scalars ..
77      CHARACTER          EQ
78      CHARACTER*2        C2
79      INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
80      DOUBLE PRECISION   RCOND, RPVGRW, BERR
81*     ..
82*     .. Local Arrays ..
83      INTEGER            IP( NMAX )
84      DOUBLE PRECISION   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
85     $                   RF( NMAX ), RW( NMAX ), ERR_BNDS_N( NMAX, 3 ),
86     $                   ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
87      COMPLEX*16         A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
88     $                   E( NMAX ), W( 2*NMAX ), X( NMAX )
89*     ..
90*     .. External Functions ..
91      LOGICAL            LSAMEN
92      EXTERNAL           LSAMEN
93*     ..
94*     .. External Subroutines ..
95      EXTERNAL           CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV,
96     $                   ZGTSVX, ZHESV, ZHESV_RK, ZHESV_ROOK, ZHESVX,
97     $                   ZHPSV, ZHPSVX, ZPBSV, ZPBSVX, ZPOSV, ZPOSVX,
98     $                   ZPPSV, ZPPSVX, ZPTSV, ZPTSVX, ZSPSV, ZSPSVX,
99     $                   ZSYSV, ZSYSV_RK, ZSYSV_ROOK, ZSYSVX, ZGESVXX,
100     $                   ZSYSVXX, ZPOSVXX, ZHESVXX, ZGBSVXX
101*     ..
102*     .. Scalars in Common ..
103      LOGICAL            LERR, OK
104      CHARACTER*32       SRNAMT
105      INTEGER            INFOT, NOUT
106*     ..
107*     .. Common blocks ..
108      COMMON             / INFOC / INFOT, NOUT, OK, LERR
109      COMMON             / SRNAMC / SRNAMT
110*     ..
111*     .. Intrinsic Functions ..
112      INTRINSIC          DBLE, DCMPLX
113*     ..
114*     .. Executable Statements ..
115*
116      NOUT = NUNIT
117      WRITE( NOUT, FMT = * )
118      C2 = PATH( 2: 3 )
119*
120*     Set the variables to innocuous values.
121*
122      DO 20 J = 1, NMAX
123         DO 10 I = 1, NMAX
124            A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
125     $                  -1.D0 / DBLE( I+J ) )
126            AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
127     $                   -1.D0 / DBLE( I+J ) )
128   10    CONTINUE
129         B( J ) = 0.D0
130         E( J ) = 0.D0
131         R1( J ) = 0.D0
132         R2( J ) = 0.D0
133         W( J ) = 0.D0
134         X( J ) = 0.D0
135         C( J ) = 0.D0
136         R( J ) = 0.D0
137         IP( J ) = J
138   20 CONTINUE
139      EQ = ' '
140      OK = .TRUE.
141*
142      IF( LSAMEN( 2, C2, 'GE' ) ) THEN
143*
144*        ZGESV
145*
146         SRNAMT = 'ZGESV '
147         INFOT = 1
148         CALL ZGESV( -1, 0, A, 1, IP, B, 1, INFO )
149         CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
150         INFOT = 2
151         CALL ZGESV( 0, -1, A, 1, IP, B, 1, INFO )
152         CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
153         INFOT = 4
154         CALL ZGESV( 2, 1, A, 1, IP, B, 2, INFO )
155         CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
156         INFOT = 7
157         CALL ZGESV( 2, 1, A, 2, IP, B, 1, INFO )
158         CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
159*
160*        ZGESVX
161*
162         SRNAMT = 'ZGESVX'
163         INFOT = 1
164         CALL ZGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
165     $                X, 1, RCOND, R1, R2, W, RW, INFO )
166         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
167         INFOT = 2
168         CALL ZGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
169     $                X, 1, RCOND, R1, R2, W, RW, INFO )
170         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
171         INFOT = 3
172         CALL ZGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
173     $                X, 1, RCOND, R1, R2, W, RW, INFO )
174         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
175         INFOT = 4
176         CALL ZGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
177     $                X, 1, RCOND, R1, R2, W, RW, INFO )
178         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
179         INFOT = 6
180         CALL ZGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
181     $                X, 2, RCOND, R1, R2, W, RW, INFO )
182         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
183         INFOT = 8
184         CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
185     $                X, 2, RCOND, R1, R2, W, RW, INFO )
186         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
187         INFOT = 10
188         EQ = '/'
189         CALL ZGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
190     $                X, 1, RCOND, R1, R2, W, RW, INFO )
191         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
192         INFOT = 11
193         EQ = 'R'
194         CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
195     $                X, 1, RCOND, R1, R2, W, RW, INFO )
196         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
197         INFOT = 12
198         EQ = 'C'
199         CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
200     $                X, 1, RCOND, R1, R2, W, RW, INFO )
201         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
202         INFOT = 14
203         CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
204     $                X, 2, RCOND, R1, R2, W, RW, INFO )
205         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
206         INFOT = 16
207         CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
208     $                X, 1, RCOND, R1, R2, W, RW, INFO )
209         CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
210*
211*        ZGESVXX
212*
213         N_ERR_BNDS = 3
214         NPARAMS = 1
215         SRNAMT = 'ZGESVXX'
216         INFOT = 1
217         CALL ZGESVXX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B,
218     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
219     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
220     $                INFO )
221         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
222         INFOT = 2
223         CALL ZGESVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B,
224     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
225     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
226     $                INFO )
227         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
228         INFOT = 3
229         CALL ZGESVXX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B,
230     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
231     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
232     $                INFO )
233         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
234         INFOT = 4
235         CALL ZGESVXX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B,
236     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
237     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
238     $                INFO )
239         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
240         INFOT = 6
241         CALL ZGESVXX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B,
242     $                2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
243     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
244     $                INFO )
245         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
246         INFOT = 8
247         CALL ZGESVXX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B,
248     $                2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
249     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
250     $                INFO )
251         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
252         INFOT = 10
253         EQ = '/'
254         CALL ZGESVXX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B,
255     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
256     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
257     $                INFO )
258         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
259         INFOT = 11
260         EQ = 'R'
261         CALL ZGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B,
262     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
263     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
264     $                INFO )
265         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
266         INFOT = 12
267         EQ = 'C'
268         CALL ZGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B,
269     $                1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
270     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
271     $                INFO )
272         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
273         INFOT = 14
274         CALL ZGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B,
275     $                1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
276     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
277     $                INFO )
278         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
279         INFOT = 16
280         CALL ZGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B,
281     $                2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
282     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
283     $                INFO )
284         CALL CHKXER( 'ZGESVXX', INFOT, NOUT, LERR, OK )
285*
286      ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
287*
288*        ZGBSV
289*
290         SRNAMT = 'ZGBSV '
291         INFOT = 1
292         CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
293         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
294         INFOT = 2
295         CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
296         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
297         INFOT = 3
298         CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
299         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
300         INFOT = 4
301         CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
302         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
303         INFOT = 6
304         CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
305         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
306         INFOT = 9
307         CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
308         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
309*
310*        ZGBSVX
311*
312         SRNAMT = 'ZGBSVX'
313         INFOT = 1
314         CALL ZGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
315     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
316         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
317         INFOT = 2
318         CALL ZGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
319     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
320         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
321         INFOT = 3
322         CALL ZGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
323     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
324         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
325         INFOT = 4
326         CALL ZGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
327     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
328         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
329         INFOT = 5
330         CALL ZGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
331     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
332         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
333         INFOT = 6
334         CALL ZGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
335     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
336         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
337         INFOT = 8
338         CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
339     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
340         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
341         INFOT = 10
342         CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
343     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
344         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
345         INFOT = 12
346         EQ = '/'
347         CALL ZGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
348     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
349         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
350         INFOT = 13
351         EQ = 'R'
352         CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
353     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
354         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
355         INFOT = 14
356         EQ = 'C'
357         CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
358     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
359         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
360         INFOT = 16
361         CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
362     $                B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
363         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
364         INFOT = 18
365         CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
366     $                B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
367         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
368*
369*        ZGBSVXX
370*
371         N_ERR_BNDS = 3
372         NPARAMS = 1
373         SRNAMT = 'ZGBSVXX'
374         INFOT = 1
375         CALL ZGBSVXX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
376     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
377     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
378     $                INFO )
379         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
380         INFOT = 2
381         CALL ZGBSVXX( 'N', '/', 0, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
382     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
383     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
384     $                INFO )
385         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
386         INFOT = 3
387         CALL ZGBSVXX( 'N', 'N', -1, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
388     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
389     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
390     $                INFO )
391         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
392         INFOT = 4
393         CALL ZGBSVXX( 'N', 'N', 2, -1, 1, 0, A, 1, AF, 1, IP, EQ,
394     $                R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
395     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
396     $                INFO )
397         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
398         INFOT = 5
399         CALL ZGBSVXX( 'N', 'N', 2, 1, -1, 0, A, 1, AF, 1, IP, EQ,
400     $                R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
401     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
402     $                INFO )
403         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
404         INFOT = 6
405         CALL ZGBSVXX( 'N', 'N', 0, 1, 1, -1, A, 1, AF, 1, IP, EQ, R, C,
406     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
407     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
408     $                INFO )
409         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
410         INFOT = 8
411         CALL ZGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 2, AF, 2, IP, EQ, R, C,
412     $                B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
413     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
414     $                INFO )
415         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
416         INFOT = 10
417         CALL ZGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, EQ, R, C,
418     $                B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
419     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
420     $                INFO )
421         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
422         INFOT = 12
423         EQ = '/'
424         CALL ZGBSVXX( 'F', 'N', 0, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
425     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
426     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
427     $                INFO )
428         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
429         INFOT = 13
430         EQ = 'R'
431         CALL ZGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
432     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
433     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
434     $                INFO )
435         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
436         INFOT = 14
437         EQ = 'C'
438         CALL ZGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
439     $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
440     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
441     $                INFO )
442         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
443         INFOT = 15
444         CALL ZGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
445     $                B, 1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
446     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
447     $                INFO )
448         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
449         INFOT = 16
450         CALL ZGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
451     $                B, 2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
452     $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
453     $                INFO )
454         CALL CHKXER( 'ZGBSVXX', INFOT, NOUT, LERR, OK )
455*
456      ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
457*
458*        ZGTSV
459*
460         SRNAMT = 'ZGTSV '
461         INFOT = 1
462         CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
463     $               INFO )
464         CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
465         INFOT = 2
466         CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
467     $               INFO )
468         CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
469         INFOT = 7
470         CALL ZGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
471         CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
472*
473*        ZGTSVX
474*
475         SRNAMT = 'ZGTSVX'
476         INFOT = 1
477         CALL ZGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
478     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
479     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
480         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
481         INFOT = 2
482         CALL ZGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
483     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
484     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
485         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
486         INFOT = 3
487         CALL ZGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
488     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
489     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
490         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
491         INFOT = 4
492         CALL ZGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
493     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
494     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
495         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
496         INFOT = 14
497         CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
498     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
499     $                IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
500         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
501         INFOT = 16
502         CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
503     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
504     $                IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
505         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
506*
507      ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
508*
509*        ZHESV_ROOK
510*
511         SRNAMT = 'ZHESV_ROOK'
512         INFOT = 1
513         CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
514         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
515         INFOT = 2
516         CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
517         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
518         INFOT = 3
519         CALL ZHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
520         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
521         INFOT = 8
522         CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
523         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
524*
525      ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
526*
527*        ZPOSV
528*
529         SRNAMT = 'ZPOSV '
530         INFOT = 1
531         CALL ZPOSV( '/', 0, 0, A, 1, B, 1, INFO )
532         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
533         INFOT = 2
534         CALL ZPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
535         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
536         INFOT = 3
537         CALL ZPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
538         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
539         INFOT = 5
540         CALL ZPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
541         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
542         INFOT = 7
543         CALL ZPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
544         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
545*
546*        ZPOSVX
547*
548         SRNAMT = 'ZPOSVX'
549         INFOT = 1
550         CALL ZPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
551     $                RCOND, R1, R2, W, RW, INFO )
552         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
553         INFOT = 2
554         CALL ZPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
555     $                RCOND, R1, R2, W, RW, INFO )
556         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
557         INFOT = 3
558         CALL ZPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
559     $                RCOND, R1, R2, W, RW, INFO )
560         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
561         INFOT = 4
562         CALL ZPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
563     $                RCOND, R1, R2, W, RW, INFO )
564         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
565         INFOT = 6
566         CALL ZPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
567     $                RCOND, R1, R2, W, RW, INFO )
568         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
569         INFOT = 8
570         CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
571     $                RCOND, R1, R2, W, RW, INFO )
572         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
573         INFOT = 9
574         EQ = '/'
575         CALL ZPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
576     $                RCOND, R1, R2, W, RW, INFO )
577         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
578         INFOT = 10
579         EQ = 'Y'
580         CALL ZPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
581     $                RCOND, R1, R2, W, RW, INFO )
582         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
583         INFOT = 12
584         CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
585     $                RCOND, R1, R2, W, RW, INFO )
586         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
587         INFOT = 14
588         CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
589     $                RCOND, R1, R2, W, RW, INFO )
590         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
591*
592*        ZPOSVXX
593*
594         N_ERR_BNDS = 3
595         NPARAMS = 1
596         SRNAMT = 'ZPOSVXX'
597         INFOT = 1
598         CALL ZPOSVXX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
599     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
600     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
601         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
602         INFOT = 2
603         CALL ZPOSVXX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
604     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
605     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
606         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
607         INFOT = 3
608         CALL ZPOSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
609     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
610     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
611         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
612         INFOT = 4
613         CALL ZPOSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
614     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
615     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
616         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
617         INFOT = 6
618         CALL ZPOSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
619     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
620     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
621         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
622         INFOT = 8
623         CALL ZPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
624     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
625     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
626         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
627         INFOT = 9
628         EQ = '/'
629         CALL ZPOSVXX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
630     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
631     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
632         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
633         INFOT = 10
634         EQ = 'Y'
635         CALL ZPOSVXX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
636     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
637     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
638         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
639         INFOT = 12
640         CALL ZPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
641     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
642     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
643         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
644         INFOT = 14
645         CALL ZPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
646     $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
647     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
648         CALL CHKXER( 'ZPOSVXX', INFOT, NOUT, LERR, OK )
649*
650      ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
651*
652*        ZPPSV
653*
654         SRNAMT = 'ZPPSV '
655         INFOT = 1
656         CALL ZPPSV( '/', 0, 0, A, B, 1, INFO )
657         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
658         INFOT = 2
659         CALL ZPPSV( 'U', -1, 0, A, B, 1, INFO )
660         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
661         INFOT = 3
662         CALL ZPPSV( 'U', 0, -1, A, B, 1, INFO )
663         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
664         INFOT = 6
665         CALL ZPPSV( 'U', 2, 0, A, B, 1, INFO )
666         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
667*
668*        ZPPSVX
669*
670         SRNAMT = 'ZPPSVX'
671         INFOT = 1
672         CALL ZPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
673     $                R1, R2, W, RW, INFO )
674         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
675         INFOT = 2
676         CALL ZPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
677     $                R1, R2, W, RW, INFO )
678         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
679         INFOT = 3
680         CALL ZPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
681     $                R1, R2, W, RW, INFO )
682         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
683         INFOT = 4
684         CALL ZPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
685     $                R1, R2, W, RW, INFO )
686         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
687         INFOT = 7
688         EQ = '/'
689         CALL ZPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
690     $                R1, R2, W, RW, INFO )
691         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
692         INFOT = 8
693         EQ = 'Y'
694         CALL ZPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
695     $                R1, R2, W, RW, INFO )
696         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
697         INFOT = 10
698         CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
699     $                R1, R2, W, RW, INFO )
700         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
701         INFOT = 12
702         CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
703     $                R1, R2, W, RW, INFO )
704         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
705*
706      ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
707*
708*        ZPBSV
709*
710         SRNAMT = 'ZPBSV '
711         INFOT = 1
712         CALL ZPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
713         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
714         INFOT = 2
715         CALL ZPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
716         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
717         INFOT = 3
718         CALL ZPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
719         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
720         INFOT = 4
721         CALL ZPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
722         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
723         INFOT = 6
724         CALL ZPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
725         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
726         INFOT = 8
727         CALL ZPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
728         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
729*
730*        ZPBSVX
731*
732         SRNAMT = 'ZPBSVX'
733         INFOT = 1
734         CALL ZPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
735     $                RCOND, R1, R2, W, RW, INFO )
736         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
737         INFOT = 2
738         CALL ZPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
739     $                RCOND, R1, R2, W, RW, INFO )
740         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
741         INFOT = 3
742         CALL ZPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
743     $                1, RCOND, R1, R2, W, RW, INFO )
744         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
745         INFOT = 4
746         CALL ZPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
747     $                1, RCOND, R1, R2, W, RW, INFO )
748         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
749         INFOT = 5
750         CALL ZPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
751     $                1, RCOND, R1, R2, W, RW, INFO )
752         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
753         INFOT = 7
754         CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
755     $                RCOND, R1, R2, W, RW, INFO )
756         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
757         INFOT = 9
758         CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
759     $                RCOND, R1, R2, W, RW, INFO )
760         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
761         INFOT = 10
762         EQ = '/'
763         CALL ZPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
764     $                RCOND, R1, R2, W, RW, INFO )
765         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
766         INFOT = 11
767         EQ = 'Y'
768         CALL ZPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
769     $                RCOND, R1, R2, W, RW, INFO )
770         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
771         INFOT = 13
772         CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
773     $                RCOND, R1, R2, W, RW, INFO )
774         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
775         INFOT = 15
776         CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
777     $                RCOND, R1, R2, W, RW, INFO )
778         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
779*
780      ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
781*
782*        ZPTSV
783*
784         SRNAMT = 'ZPTSV '
785         INFOT = 1
786         CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
787         CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
788         INFOT = 2
789         CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
790         CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
791         INFOT = 6
792         CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
793         CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
794*
795*        ZPTSVX
796*
797         SRNAMT = 'ZPTSVX'
798         INFOT = 1
799         CALL ZPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
800     $                1, RCOND, R1, R2, W, RW, INFO )
801         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
802         INFOT = 2
803         CALL ZPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
804     $                1, RCOND, R1, R2, W, RW, INFO )
805         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
806         INFOT = 3
807         CALL ZPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
808     $                1, RCOND, R1, R2, W, RW, INFO )
809         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
810         INFOT = 9
811         CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
812     $                2, RCOND, R1, R2, W, RW, INFO )
813         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
814         INFOT = 11
815         CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
816     $                1, RCOND, R1, R2, W, RW, INFO )
817         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
818*
819      ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
820*
821*        ZHESV
822*
823         SRNAMT = 'ZHESV '
824         INFOT = 1
825         CALL ZHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
826         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
827         INFOT = 2
828         CALL ZHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
829         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
830         INFOT = 3
831         CALL ZHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
832         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
833         INFOT = 5
834         CALL ZHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
835         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
836         INFOT = 8
837         CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
838         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
839         INFOT = 10
840         CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
841         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
842         INFOT = 10
843         CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
844         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
845*
846*        ZHESVX
847*
848         SRNAMT = 'ZHESVX'
849         INFOT = 1
850         CALL ZHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
851     $                RCOND, R1, R2, W, 1, RW, INFO )
852         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
853         INFOT = 2
854         CALL ZHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
855     $                RCOND, R1, R2, W, 1, RW, INFO )
856         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
857         INFOT = 3
858         CALL ZHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
859     $                RCOND, R1, R2, W, 1, RW, INFO )
860         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
861         INFOT = 4
862         CALL ZHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
863     $                RCOND, R1, R2, W, 1, RW, INFO )
864         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
865         INFOT = 6
866         CALL ZHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
867     $                RCOND, R1, R2, W, 4, RW, INFO )
868         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
869         INFOT = 8
870         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
871     $                RCOND, R1, R2, W, 4, RW, INFO )
872         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
873         INFOT = 11
874         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
875     $                RCOND, R1, R2, W, 4, RW, INFO )
876         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
877         INFOT = 13
878         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
879     $                RCOND, R1, R2, W, 4, RW, INFO )
880         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
881         INFOT = 18
882         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
883     $                RCOND, R1, R2, W, 3, RW, INFO )
884         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
885*
886*        ZHESVXX
887*
888         N_ERR_BNDS = 3
889         NPARAMS = 1
890         SRNAMT = 'ZHESVXX'
891         INFOT = 1
892         CALL ZHESVXX( '/', 'U', 0, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
893     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
894     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
895         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
896         INFOT = 2
897         CALL ZHESVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
898     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
899     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
900         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
901         INFOT = 3
902         CALL ZHESVXX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
903     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
904     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
905         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
906         INFOT = 4
907         CALL ZHESVXX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, EQ, C, B, 1, X,
908     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
909     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
910         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
911         INFOT = 6
912         CALL ZHESVXX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, EQ, C, B, 2, X,
913     $                2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
914     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
915         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
916         INFOT = 8
917         CALL ZHESVXX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, EQ, C, B, 2, X,
918     $                2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
919     $                ERR_BNDS_C,  NPARAMS, PARAMS, W, RW, INFO )
920         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
921         INFOT = 9
922         EQ = '/'
923         CALL ZHESVXX( 'F', 'U', 0, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
924     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
925     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
926         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
927         INFOT = 10
928         EQ = 'Y'
929         CALL ZHESVXX( 'F', 'U', 1, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
930     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
931     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
932         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
933         INFOT = 12
934         CALL ZHESVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, C, B, 1, X,
935     $                2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
936     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
937         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
938         INFOT = 14
939         CALL ZHESVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, C, B, 2, X,
940     $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
941     $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
942         CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
943*
944      ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
945*
946*        ZHESV_ROOK
947*
948         SRNAMT = 'ZHESV_ROOK'
949         INFOT = 1
950         CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
951         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
952         INFOT = 2
953         CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
954         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
955         INFOT = 3
956         CALL ZHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
957         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
958         INFOT = 8
959         CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
960         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
961         INFOT = 10
962         CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
963         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
964         INFOT = 10
965         CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
966         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
967*
968      ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
969*
970*        ZSYSV_RK
971*
972*        Test error exits of the driver that uses factorization
973*        of a Hermitian indefinite matrix with rook
974*        (bounded Bunch-Kaufman) pivoting with the new storage
975*        format for factors L ( or U) and D.
976*
977*        L (or U) is stored in A, diagonal of D is stored on the
978*        diagonal of A, subdiagonal of D is stored in a separate array E.
979*
980         SRNAMT = 'ZHESV_RK'
981         INFOT = 1
982         CALL ZHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
983         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
984         INFOT = 2
985         CALL ZHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
986         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
987         INFOT = 3
988         CALL ZHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
989         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
990         INFOT = 5
991         CALL ZHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
992         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
993         INFOT = 9
994         CALL ZHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
995         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
996         INFOT = 11
997         CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
998         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
999         INFOT = 11
1000         CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
1001         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
1002*
1003      ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
1004*
1005*        ZHPSV
1006*
1007         SRNAMT = 'ZHPSV '
1008         INFOT = 1
1009         CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO )
1010         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
1011         INFOT = 2
1012         CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
1013         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
1014         INFOT = 3
1015         CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
1016         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
1017         INFOT = 7
1018         CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
1019         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
1020*
1021*        ZHPSVX
1022*
1023         SRNAMT = 'ZHPSVX'
1024         INFOT = 1
1025         CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
1026     $                R2, W, RW, INFO )
1027         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
1028         INFOT = 2
1029         CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
1030     $                R2, W, RW, INFO )
1031         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
1032         INFOT = 3
1033         CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
1034     $                R2, W, RW, INFO )
1035         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
1036         INFOT = 4
1037         CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
1038     $                R2, W, RW, INFO )
1039         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
1040         INFOT = 9
1041         CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
1042     $                R2, W, RW, INFO )
1043         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
1044         INFOT = 11
1045         CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
1046     $                R2, W, RW, INFO )
1047         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
1048*
1049      ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
1050*
1051*        ZSYSV
1052*
1053         SRNAMT = 'ZSYSV '
1054         INFOT = 1
1055         CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
1056         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
1057         INFOT = 2
1058         CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
1059         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
1060         INFOT = 3
1061         CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
1062         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
1063         INFOT = 8
1064         CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
1065         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
1066         INFOT = 10
1067         CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
1068         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
1069         INFOT = 10
1070         CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
1071         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
1072*
1073*        ZSYSVX
1074*
1075         SRNAMT = 'ZSYSVX'
1076         INFOT = 1
1077         CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
1078     $                RCOND, R1, R2, W, 1, RW, INFO )
1079         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1080         INFOT = 2
1081         CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
1082     $                RCOND, R1, R2, W, 1, RW, INFO )
1083         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1084         INFOT = 3
1085         CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
1086     $                RCOND, R1, R2, W, 1, RW, INFO )
1087         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1088         INFOT = 4
1089         CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
1090     $                RCOND, R1, R2, W, 1, RW, INFO )
1091         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1092         INFOT = 6
1093         CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
1094     $                RCOND, R1, R2, W, 4, RW, INFO )
1095         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1096         INFOT = 8
1097         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
1098     $                RCOND, R1, R2, W, 4, RW, INFO )
1099         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1100         INFOT = 11
1101         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
1102     $                RCOND, R1, R2, W, 4, RW, INFO )
1103         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1104         INFOT = 13
1105         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
1106     $                RCOND, R1, R2, W, 4, RW, INFO )
1107         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1108         INFOT = 18
1109         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
1110     $                RCOND, R1, R2, W, 3, RW, INFO )
1111         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
1112*
1113*        ZSYSVXX
1114*
1115         N_ERR_BNDS = 3
1116         NPARAMS = 1
1117         SRNAMT = 'ZSYSVXX'
1118         INFOT = 1
1119         EQ = 'N'
1120         CALL ZSYSVXX( '/', 'U', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
1121     $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1122     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1123         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1124         INFOT = 2
1125         CALL ZSYSVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
1126     $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1127     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1128         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1129         INFOT = 3
1130         CALL ZSYSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
1131     $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1132     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1133         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1134         INFOT = 4
1135         EQ = '/'
1136         CALL ZSYSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, EQ, R, B, 1, X,
1137     $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1138     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1139         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1140         EQ = 'Y'
1141         INFOT = 6
1142         CALL ZSYSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, EQ, R, B, 2, X,
1143     $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1144     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1145         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1146         INFOT = 8
1147         CALL ZSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, EQ, R, B, 2, X,
1148     $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1149     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1150         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1151         INFOT = 10
1152         CALL ZSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, 'A', R, B, 2, X,
1153     $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1154     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1155         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1156         INFOT = 11
1157         EQ='Y'
1158         CALL ZSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
1159     $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1160     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1161         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1162         INFOT = 11
1163         EQ='Y'
1164         R(1) = -ONE
1165         CALL ZSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
1166     $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1167     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1168         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1169         INFOT = 13
1170         EQ = 'N'
1171         CALL ZSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 1, X,
1172     $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1173     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1174         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1175         INFOT = 15
1176         CALL ZSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
1177     $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1178     $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1179         CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
1180*
1181      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
1182*
1183*        ZSYSV_ROOK
1184*
1185         SRNAMT = 'ZSYSV_ROOK'
1186         INFOT = 1
1187         CALL ZSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
1188         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
1189         INFOT = 2
1190         CALL ZSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
1191         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
1192         INFOT = 3
1193         CALL ZSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
1194         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
1195         INFOT = 8
1196         CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
1197         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
1198         INFOT = 10
1199         CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
1200         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
1201         INFOT = 10
1202         CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
1203*
1204      ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
1205*
1206*        ZSYSV_RK
1207*
1208*        Test error exits of the driver that uses factorization
1209*        of a symmetric indefinite matrix with rook
1210*        (bounded Bunch-Kaufman) pivoting with the new storage
1211*        format for factors L ( or U) and D.
1212*
1213*        L (or U) is stored in A, diagonal of D is stored on the
1214*        diagonal of A, subdiagonal of D is stored in a separate array E.
1215*
1216         SRNAMT = 'ZSYSV_RK'
1217         INFOT = 1
1218         CALL ZSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
1219         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1220         INFOT = 2
1221         CALL ZSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
1222         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1223         INFOT = 3
1224         CALL ZSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
1225         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1226         INFOT = 5
1227         CALL ZSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
1228         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1229         INFOT = 9
1230         CALL ZSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
1231         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1232         INFOT = 11
1233         CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
1234         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1235         INFOT = 11
1236         CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
1237         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
1238*
1239      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
1240*
1241*        ZSPSV
1242*
1243         SRNAMT = 'ZSPSV '
1244         INFOT = 1
1245         CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO )
1246         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
1247         INFOT = 2
1248         CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
1249         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
1250         INFOT = 3
1251         CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
1252         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
1253         INFOT = 7
1254         CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
1255         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
1256*
1257*        ZSPSVX
1258*
1259         SRNAMT = 'ZSPSVX'
1260         INFOT = 1
1261         CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
1262     $                R2, W, RW, INFO )
1263         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
1264         INFOT = 2
1265         CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
1266     $                R2, W, RW, INFO )
1267         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
1268         INFOT = 3
1269         CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
1270     $                R2, W, RW, INFO )
1271         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
1272         INFOT = 4
1273         CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
1274     $                R2, W, RW, INFO )
1275         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
1276         INFOT = 9
1277         CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
1278     $                R2, W, RW, INFO )
1279         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
1280         INFOT = 11
1281         CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
1282     $                R2, W, RW, INFO )
1283         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
1284      END IF
1285*
1286*     Print a summary line.
1287*
1288      IF( OK ) THEN
1289         WRITE( NOUT, FMT = 9999 )PATH
1290      ELSE
1291         WRITE( NOUT, FMT = 9998 )PATH
1292      END IF
1293*
1294 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
1295 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
1296     $      'exits ***' )
1297*
1298      RETURN
1299*
1300*     End of ZERRVX
1301*
1302      END
1303