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