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