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