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