1*> \brief \b ZERRVX
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 November 2017
52*
53*> \ingroup complex16_lin
54*
55*  =====================================================================
56      SUBROUTINE ZERRVX( PATH, NUNIT )
57*
58*  -- LAPACK test routine (version 3.8.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*     November 2017
62*
63*     .. Scalar Arguments ..
64      CHARACTER*3        PATH
65      INTEGER            NUNIT
66*     ..
67*
68*  =====================================================================
69*
70*     .. Parameters ..
71      INTEGER            NMAX
72      PARAMETER          ( NMAX = 4 )
73*     ..
74*     .. Local Scalars ..
75      CHARACTER          EQ
76      CHARACTER*2        C2
77      INTEGER            I, INFO, J
78      DOUBLE PRECISION   RCOND
79*     ..
80*     .. Local Arrays ..
81      INTEGER            IP( NMAX )
82      DOUBLE PRECISION   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
83     $                   RF( NMAX ), RW( NMAX )
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_AA, ZSYSV_RK, ZSYSV_ROOK,
97     $                   ZSYSVX, ZHESV_AA_2STAGE
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      ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
209*
210*        ZGBSV
211*
212         SRNAMT = 'ZGBSV '
213         INFOT = 1
214         CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
215         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
216         INFOT = 2
217         CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
218         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
219         INFOT = 3
220         CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
221         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
222         INFOT = 4
223         CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
224         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
225         INFOT = 6
226         CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
227         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
228         INFOT = 9
229         CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
230         CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
231*
232*        ZGBSVX
233*
234         SRNAMT = 'ZGBSVX'
235         INFOT = 1
236         CALL ZGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
237     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
238         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
239         INFOT = 2
240         CALL ZGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
241     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
242         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
243         INFOT = 3
244         CALL ZGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
245     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
246         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
247         INFOT = 4
248         CALL ZGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
249     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
250         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
251         INFOT = 5
252         CALL ZGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
253     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
254         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
255         INFOT = 6
256         CALL ZGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
257     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
258         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
259         INFOT = 8
260         CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
261     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
262         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
263         INFOT = 10
264         CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
265     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
266         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
267         INFOT = 12
268         EQ = '/'
269         CALL ZGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
270     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
271         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
272         INFOT = 13
273         EQ = 'R'
274         CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
275     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
276         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
277         INFOT = 14
278         EQ = 'C'
279         CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
280     $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
281         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
282         INFOT = 16
283         CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
284     $                B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
285         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
286         INFOT = 18
287         CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
288     $                B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
289         CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
290*
291      ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
292*
293*        ZGTSV
294*
295         SRNAMT = 'ZGTSV '
296         INFOT = 1
297         CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
298     $               INFO )
299         CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
300         INFOT = 2
301         CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
302     $               INFO )
303         CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
304         INFOT = 7
305         CALL ZGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
306         CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
307*
308*        ZGTSVX
309*
310         SRNAMT = 'ZGTSVX'
311         INFOT = 1
312         CALL ZGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
313     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
314     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
315         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
316         INFOT = 2
317         CALL ZGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
318     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
319     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
320         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
321         INFOT = 3
322         CALL ZGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
323     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
324     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
325         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
326         INFOT = 4
327         CALL ZGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
328     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
329     $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
330         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
331         INFOT = 14
332         CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
333     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
334     $                IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
335         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
336         INFOT = 16
337         CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
338     $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
339     $                IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
340         CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
341*
342      ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
343*
344*        ZPOSV
345*
346         SRNAMT = 'ZPOSV '
347         INFOT = 1
348         CALL ZPOSV( '/', 0, 0, A, 1, B, 1, INFO )
349         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
350         INFOT = 2
351         CALL ZPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
352         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
353         INFOT = 3
354         CALL ZPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
355         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
356         INFOT = 5
357         CALL ZPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
358         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
359         INFOT = 7
360         CALL ZPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
361         CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
362*
363*        ZPOSVX
364*
365         SRNAMT = 'ZPOSVX'
366         INFOT = 1
367         CALL ZPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
368     $                RCOND, R1, R2, W, RW, INFO )
369         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
370         INFOT = 2
371         CALL ZPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
372     $                RCOND, R1, R2, W, RW, INFO )
373         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
374         INFOT = 3
375         CALL ZPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
376     $                RCOND, R1, R2, W, RW, INFO )
377         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
378         INFOT = 4
379         CALL ZPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
380     $                RCOND, R1, R2, W, RW, INFO )
381         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
382         INFOT = 6
383         CALL ZPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
384     $                RCOND, R1, R2, W, RW, INFO )
385         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
386         INFOT = 8
387         CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
388     $                RCOND, R1, R2, W, RW, INFO )
389         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
390         INFOT = 9
391         EQ = '/'
392         CALL ZPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
393     $                RCOND, R1, R2, W, RW, INFO )
394         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
395         INFOT = 10
396         EQ = 'Y'
397         CALL ZPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
398     $                RCOND, R1, R2, W, RW, INFO )
399         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
400         INFOT = 12
401         CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
402     $                RCOND, R1, R2, W, RW, INFO )
403         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
404         INFOT = 14
405         CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
406     $                RCOND, R1, R2, W, RW, INFO )
407         CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
408*
409      ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
410*
411*        ZPPSV
412*
413         SRNAMT = 'ZPPSV '
414         INFOT = 1
415         CALL ZPPSV( '/', 0, 0, A, B, 1, INFO )
416         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
417         INFOT = 2
418         CALL ZPPSV( 'U', -1, 0, A, B, 1, INFO )
419         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
420         INFOT = 3
421         CALL ZPPSV( 'U', 0, -1, A, B, 1, INFO )
422         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
423         INFOT = 6
424         CALL ZPPSV( 'U', 2, 0, A, B, 1, INFO )
425         CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
426*
427*        ZPPSVX
428*
429         SRNAMT = 'ZPPSVX'
430         INFOT = 1
431         CALL ZPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
432     $                R1, R2, W, RW, INFO )
433         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
434         INFOT = 2
435         CALL ZPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
436     $                R1, R2, W, RW, INFO )
437         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
438         INFOT = 3
439         CALL ZPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
440     $                R1, R2, W, RW, INFO )
441         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
442         INFOT = 4
443         CALL ZPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
444     $                R1, R2, W, RW, INFO )
445         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
446         INFOT = 7
447         EQ = '/'
448         CALL ZPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
449     $                R1, R2, W, RW, INFO )
450         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
451         INFOT = 8
452         EQ = 'Y'
453         CALL ZPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
454     $                R1, R2, W, RW, INFO )
455         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
456         INFOT = 10
457         CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
458     $                R1, R2, W, RW, INFO )
459         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
460         INFOT = 12
461         CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
462     $                R1, R2, W, RW, INFO )
463         CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
464*
465      ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
466*
467*        ZPBSV
468*
469         SRNAMT = 'ZPBSV '
470         INFOT = 1
471         CALL ZPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
472         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
473         INFOT = 2
474         CALL ZPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
475         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
476         INFOT = 3
477         CALL ZPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
478         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
479         INFOT = 4
480         CALL ZPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
481         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
482         INFOT = 6
483         CALL ZPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
484         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
485         INFOT = 8
486         CALL ZPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
487         CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
488*
489*        ZPBSVX
490*
491         SRNAMT = 'ZPBSVX'
492         INFOT = 1
493         CALL ZPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
494     $                RCOND, R1, R2, W, RW, INFO )
495         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
496         INFOT = 2
497         CALL ZPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
498     $                RCOND, R1, R2, W, RW, INFO )
499         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
500         INFOT = 3
501         CALL ZPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
502     $                1, RCOND, R1, R2, W, RW, INFO )
503         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
504         INFOT = 4
505         CALL ZPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
506     $                1, RCOND, R1, R2, W, RW, INFO )
507         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
508         INFOT = 5
509         CALL ZPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
510     $                1, RCOND, R1, R2, W, RW, INFO )
511         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
512         INFOT = 7
513         CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
514     $                RCOND, R1, R2, W, RW, INFO )
515         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
516         INFOT = 9
517         CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
518     $                RCOND, R1, R2, W, RW, INFO )
519         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
520         INFOT = 10
521         EQ = '/'
522         CALL ZPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
523     $                RCOND, R1, R2, W, RW, INFO )
524         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
525         INFOT = 11
526         EQ = 'Y'
527         CALL ZPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
528     $                RCOND, R1, R2, W, RW, INFO )
529         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
530         INFOT = 13
531         CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
532     $                RCOND, R1, R2, W, RW, INFO )
533         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
534         INFOT = 15
535         CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
536     $                RCOND, R1, R2, W, RW, INFO )
537         CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
538*
539      ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
540*
541*        ZPTSV
542*
543         SRNAMT = 'ZPTSV '
544         INFOT = 1
545         CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
546         CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
547         INFOT = 2
548         CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
549         CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
550         INFOT = 6
551         CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
552         CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
553*
554*        ZPTSVX
555*
556         SRNAMT = 'ZPTSVX'
557         INFOT = 1
558         CALL ZPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
559     $                1, RCOND, R1, R2, W, RW, INFO )
560         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
561         INFOT = 2
562         CALL ZPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
563     $                1, RCOND, R1, R2, W, RW, INFO )
564         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
565         INFOT = 3
566         CALL ZPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
567     $                1, RCOND, R1, R2, W, RW, INFO )
568         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
569         INFOT = 9
570         CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
571     $                2, RCOND, R1, R2, W, RW, INFO )
572         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
573         INFOT = 11
574         CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
575     $                1, RCOND, R1, R2, W, RW, INFO )
576         CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
577*
578      ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
579*
580*        ZHESV
581*
582         SRNAMT = 'ZHESV '
583         INFOT = 1
584         CALL ZHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
585         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
586         INFOT = 2
587         CALL ZHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
588         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
589         INFOT = 3
590         CALL ZHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
591         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
592         INFOT = 5
593         CALL ZHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
594         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
595         INFOT = 8
596         CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
597         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
598         INFOT = 10
599         CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
600         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
601         INFOT = 10
602         CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
603         CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
604*
605*        ZHESVX
606*
607         SRNAMT = 'ZHESVX'
608         INFOT = 1
609         CALL ZHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
610     $                RCOND, R1, R2, W, 1, RW, INFO )
611         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
612         INFOT = 2
613         CALL ZHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
614     $                RCOND, R1, R2, W, 1, RW, INFO )
615         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
616         INFOT = 3
617         CALL ZHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
618     $                RCOND, R1, R2, W, 1, RW, INFO )
619         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
620         INFOT = 4
621         CALL ZHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
622     $                RCOND, R1, R2, W, 1, RW, INFO )
623         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
624         INFOT = 6
625         CALL ZHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
626     $                RCOND, R1, R2, W, 4, RW, INFO )
627         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
628         INFOT = 8
629         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
630     $                RCOND, R1, R2, W, 4, RW, INFO )
631         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
632         INFOT = 11
633         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
634     $                RCOND, R1, R2, W, 4, RW, INFO )
635         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
636         INFOT = 13
637         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
638     $                RCOND, R1, R2, W, 4, RW, INFO )
639         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
640         INFOT = 18
641         CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
642     $                RCOND, R1, R2, W, 3, RW, INFO )
643         CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
644*
645      ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
646*
647*        ZHESV_ROOK
648*
649         SRNAMT = 'ZHESV_ROOK'
650         INFOT = 1
651         CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
652         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
653         INFOT = 2
654         CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
655         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
656         INFOT = 3
657         CALL ZHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
658         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
659         INFOT = 8
660         CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
661         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
662         INFOT = 10
663         CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
664         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
665         INFOT = 10
666         CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
667         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
668*
669      ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
670*
671*        ZSYSV_RK
672*
673*        Test error exits of the driver that uses factorization
674*        of a Hermitian indefinite matrix with rook
675*        (bounded Bunch-Kaufman) pivoting with the new storage
676*        format for factors L ( or U) and D.
677*
678*        L (or U) is stored in A, diagonal of D is stored on the
679*        diagonal of A, subdiagonal of D is stored in a separate array E.
680*
681         SRNAMT = 'ZHESV_RK'
682         INFOT = 1
683         CALL ZHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
684         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
685         INFOT = 2
686         CALL ZHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
687         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
688         INFOT = 3
689         CALL ZHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
690         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
691         INFOT = 5
692         CALL ZHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
693         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
694         INFOT = 9
695         CALL ZHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
696         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
697         INFOT = 11
698         CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
699         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
700         INFOT = 11
701         CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
702         CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
703*
704      ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
705*
706*        ZHESV_AA
707*
708        SRNAMT = 'ZHESV_AA'
709        INFOT = 1
710        CALL ZHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
711        CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
712        INFOT = 2
713        CALL ZHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
714        CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
715        INFOT = 3
716        CALL ZHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
717        CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
718        INFOT = 8
719        CALL ZHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
720        CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
721*
722      ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN
723*
724*        ZHESV_AASEN_2STAGE
725*
726         SRNAMT = 'ZHESV_AA_2STAGE'
727         INFOT = 1
728         CALL ZHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
729     $                         W, 1, INFO )
730         CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
731         INFOT = 2
732         CALL ZHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
733     $                         W, 1, INFO )
734         CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
735         INFOT = 3
736         CALL ZHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
737     $                         W, 1, INFO )
738         CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
739         INFOT = 5
740         CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
741     $                         W, 1, INFO )
742         CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
743         INFOT = 11
744         CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
745     $                         W, 1, INFO )
746         CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
747         INFOT = 7
748         CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
749     $                         W, 1, INFO )
750         CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
751*
752      ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
753*
754*        ZSYSV_AASEN_2STAGE
755*
756         SRNAMT = 'ZSYSV_AA_2STAGE'
757         INFOT = 1
758         CALL ZSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
759     $                         W, 1, INFO )
760         CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
761         INFOT = 2
762         CALL ZSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
763     $                         W, 1, INFO )
764         CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
765         INFOT = 3
766         CALL ZSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
767     $                         W, 1, INFO )
768         CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
769         INFOT = 5
770         CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
771     $                         W, 1, INFO )
772         CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
773         INFOT = 11
774         CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
775     $                         W, 1, INFO )
776         CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
777         INFOT = 7
778         CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
779     $                         W, 1, INFO )
780         CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
781**
782      ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
783*
784*        ZHPSV
785*
786         SRNAMT = 'ZHPSV '
787         INFOT = 1
788         CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO )
789         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
790         INFOT = 2
791         CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
792         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
793         INFOT = 3
794         CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
795         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
796         INFOT = 7
797         CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
798         CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
799*
800*        ZHPSVX
801*
802         SRNAMT = 'ZHPSVX'
803         INFOT = 1
804         CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
805     $                R2, W, RW, INFO )
806         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
807         INFOT = 2
808         CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
809     $                R2, W, RW, INFO )
810         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
811         INFOT = 3
812         CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
813     $                R2, W, RW, INFO )
814         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
815         INFOT = 4
816         CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
817     $                R2, W, RW, INFO )
818         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
819         INFOT = 9
820         CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
821     $                R2, W, RW, INFO )
822         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
823         INFOT = 11
824         CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
825     $                R2, W, RW, INFO )
826         CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
827*
828      ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
829*
830*        ZSYSV
831*
832         SRNAMT = 'ZSYSV '
833         INFOT = 1
834         CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
835         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
836         INFOT = 2
837         CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
838         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
839         INFOT = 3
840         CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
841         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
842         INFOT = 8
843         CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
844         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
845         INFOT = 10
846         CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
847         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
848         INFOT = 10
849         CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
850         CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
851*
852*        ZSYSVX
853*
854         SRNAMT = 'ZSYSVX'
855         INFOT = 1
856         CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
857     $                RCOND, R1, R2, W, 1, RW, INFO )
858         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
859         INFOT = 2
860         CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
861     $                RCOND, R1, R2, W, 1, RW, INFO )
862         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
863         INFOT = 3
864         CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
865     $                RCOND, R1, R2, W, 1, RW, INFO )
866         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
867         INFOT = 4
868         CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
869     $                RCOND, R1, R2, W, 1, RW, INFO )
870         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
871         INFOT = 6
872         CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
873     $                RCOND, R1, R2, W, 4, RW, INFO )
874         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
875         INFOT = 8
876         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
877     $                RCOND, R1, R2, W, 4, RW, INFO )
878         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
879         INFOT = 11
880         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
881     $                RCOND, R1, R2, W, 4, RW, INFO )
882         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
883         INFOT = 13
884         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
885     $                RCOND, R1, R2, W, 4, RW, INFO )
886         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
887         INFOT = 18
888         CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
889     $                RCOND, R1, R2, W, 3, RW, INFO )
890         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
891*
892      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
893*
894*        ZSYSV_ROOK
895*
896         SRNAMT = 'ZSYSV_ROOK'
897         INFOT = 1
898         CALL ZSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
899         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
900         INFOT = 2
901         CALL ZSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
902         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
903         INFOT = 3
904         CALL ZSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
905         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
906         INFOT = 8
907         CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
908         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
909         INFOT = 10
910         CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
911         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
912         INFOT = 10
913         CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
914*
915      ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
916*
917*        ZSYSV_RK
918*
919*        Test error exits of the driver that uses factorization
920*        of a symmetric indefinite matrix with rook
921*        (bounded Bunch-Kaufman) pivoting with the new storage
922*        format for factors L ( or U) and D.
923*
924*        L (or U) is stored in A, diagonal of D is stored on the
925*        diagonal of A, subdiagonal of D is stored in a separate array E.
926*
927         SRNAMT = 'ZSYSV_RK'
928         INFOT = 1
929         CALL ZSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
930         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
931         INFOT = 2
932         CALL ZSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
933         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
934         INFOT = 3
935         CALL ZSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
936         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
937         INFOT = 5
938         CALL ZSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
939         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
940         INFOT = 9
941         CALL ZSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
942         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
943         INFOT = 11
944         CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
945         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
946         INFOT = 11
947         CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
948         CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
949*
950      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
951*
952*        ZSPSV
953*
954         SRNAMT = 'ZSPSV '
955         INFOT = 1
956         CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO )
957         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
958         INFOT = 2
959         CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
960         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
961         INFOT = 3
962         CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
963         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
964         INFOT = 7
965         CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
966         CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
967*
968*        ZSPSVX
969*
970         SRNAMT = 'ZSPSVX'
971         INFOT = 1
972         CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
973     $                R2, W, RW, INFO )
974         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
975         INFOT = 2
976         CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
977     $                R2, W, RW, INFO )
978         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
979         INFOT = 3
980         CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
981     $                R2, W, RW, INFO )
982         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
983         INFOT = 4
984         CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
985     $                R2, W, RW, INFO )
986         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
987         INFOT = 9
988         CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
989     $                R2, W, RW, INFO )
990         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
991         INFOT = 11
992         CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
993     $                R2, W, RW, INFO )
994         CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
995      END IF
996*
997*     Print a summary line.
998*
999      IF( OK ) THEN
1000         WRITE( NOUT, FMT = 9999 )PATH
1001      ELSE
1002         WRITE( NOUT, FMT = 9998 )PATH
1003      END IF
1004*
1005 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
1006 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
1007     $      'exits ***' )
1008*
1009      RETURN
1010*
1011*     End of ZERRVX
1012*
1013      END
1014