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