MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
cerrvx.f
Go to the documentation of this file.
1  SUBROUTINE cerrvx( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.1.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * January 2007
6 *
7 * .. Scalar Arguments ..
8  CHARACTER*3 path
9  INTEGER nunit
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * CERRVX tests the error exits for the COMPLEX driver routines
16 * for solving linear systems of equations.
17 *
18 * Arguments
19 * =========
20 *
21 * PATH (input) CHARACTER*3
22 * The LAPACK path name for the routines to be tested.
23 *
24 * NUNIT (input) INTEGER
25 * The unit number for output.
26 *
27 * =====================================================================
28 *
29 * .. Parameters ..
30  INTEGER nmax
31  parameter( nmax = 4 )
32 * ..
33 * .. Local Scalars ..
34  CHARACTER eq
35  CHARACTER*2 c2
36  INTEGER i, info, j
37  REAL rcond
38 * ..
39 * .. Local Arrays ..
40  INTEGER ip( nmax )
41  REAL c( nmax ), r( nmax ), r1( nmax ), r2( nmax ),
42  $ rf( nmax ), rw( nmax )
43  COMPLEX a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
44  $ w( 2*nmax ), x( nmax )
45 * ..
46 * .. External Functions ..
47  LOGICAL lsamen
48  EXTERNAL lsamen
49 * ..
50 * .. External Subroutines ..
51  EXTERNAL cgbsv, cgbsvx, cgesv, cgesvx, cgtsv, cgtsvx,
52  $ chesv, chesvx, chkxer, chpsv, chpsvx, cpbsv,
53  $ cpbsvx, cposv, cposvx, cppsv, cppsvx, cptsv,
54  $ cptsvx, cspsv, cspsvx, csysv, csysvx
55 * ..
56 * .. Scalars in Common ..
57  LOGICAL lerr, ok
58  CHARACTER*32 srnamt
59  INTEGER infot, nout
60 * ..
61 * .. Common blocks ..
62  common / infoc / infot, nout, ok, lerr
63  common / srnamc / srnamt
64 * ..
65 * .. Intrinsic Functions ..
66  INTRINSIC cmplx, real
67 * ..
68 * .. Executable Statements ..
69 *
70  nout = nunit
71  WRITE( nout, fmt = * )
72  c2 = path( 2: 3 )
73 *
74 * Set the variables to innocuous values.
75 *
76  DO 20 j = 1, nmax
77  DO 10 i = 1, nmax
78  a( i, j ) = cmplx( 1. / REAL( I+J ), -1. / REAL( I+J ) )
79  af( i, j ) = cmplx( 1. / REAL( I+J ), -1. / REAL( I+J ) )
80  10 continue
81  b( j ) = 0.
82  r1( j ) = 0.
83  r2( j ) = 0.
84  w( j ) = 0.
85  x( j ) = 0.
86  c( j ) = 0.
87  r( j ) = 0.
88  ip( j ) = j
89  20 continue
90  eq = ' '
91  ok = .true.
92 *
93  IF( lsamen( 2, c2, 'GE' ) ) THEN
94 *
95 * CGESV
96 *
97  srnamt = 'CGESV '
98  infot = 1
99  CALL cgesv( -1, 0, a, 1, ip, b, 1, info )
100  CALL chkxer( 'CGESV ', infot, nout, lerr, ok )
101  infot = 2
102  CALL cgesv( 0, -1, a, 1, ip, b, 1, info )
103  CALL chkxer( 'CGESV ', infot, nout, lerr, ok )
104  infot = 4
105  CALL cgesv( 2, 1, a, 1, ip, b, 2, info )
106  CALL chkxer( 'CGESV ', infot, nout, lerr, ok )
107  infot = 7
108  CALL cgesv( 2, 1, a, 2, ip, b, 1, info )
109  CALL chkxer( 'CGESV ', infot, nout, lerr, ok )
110 *
111 * CGESVX
112 *
113  srnamt = 'CGESVX'
114  infot = 1
115  CALL cgesvx( '/', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
116  $ x, 1, rcond, r1, r2, w, rw, info )
117  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
118  infot = 2
119  CALL cgesvx( 'N', '/', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
120  $ x, 1, rcond, r1, r2, w, rw, info )
121  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
122  infot = 3
123  CALL cgesvx( 'N', 'N', -1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
124  $ x, 1, rcond, r1, r2, w, rw, info )
125  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
126  infot = 4
127  CALL cgesvx( 'N', 'N', 0, -1, a, 1, af, 1, ip, eq, r, c, b, 1,
128  $ x, 1, rcond, r1, r2, w, rw, info )
129  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
130  infot = 6
131  CALL cgesvx( 'N', 'N', 2, 1, a, 1, af, 2, ip, eq, r, c, b, 2,
132  $ x, 2, rcond, r1, r2, w, rw, info )
133  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
134  infot = 8
135  CALL cgesvx( 'N', 'N', 2, 1, a, 2, af, 1, ip, eq, r, c, b, 2,
136  $ x, 2, rcond, r1, r2, w, rw, info )
137  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
138  infot = 10
139  eq = '/'
140  CALL cgesvx( 'F', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
141  $ x, 1, rcond, r1, r2, w, rw, info )
142  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
143  infot = 11
144  eq = 'R'
145  CALL cgesvx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
146  $ x, 1, rcond, r1, r2, w, rw, info )
147  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
148  infot = 12
149  eq = 'C'
150  CALL cgesvx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
151  $ x, 1, rcond, r1, r2, w, rw, info )
152  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
153  infot = 14
154  CALL cgesvx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 1,
155  $ x, 2, rcond, r1, r2, w, rw, info )
156  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
157  infot = 16
158  CALL cgesvx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 2,
159  $ x, 1, rcond, r1, r2, w, rw, info )
160  CALL chkxer( 'CGESVX', infot, nout, lerr, ok )
161 *
162  ELSE IF( lsamen( 2, c2, 'GB' ) ) THEN
163 *
164 * CGBSV
165 *
166  srnamt = 'CGBSV '
167  infot = 1
168  CALL cgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
169  CALL chkxer( 'CGBSV ', infot, nout, lerr, ok )
170  infot = 2
171  CALL cgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
172  CALL chkxer( 'CGBSV ', infot, nout, lerr, ok )
173  infot = 3
174  CALL cgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
175  CALL chkxer( 'CGBSV ', infot, nout, lerr, ok )
176  infot = 4
177  CALL cgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
178  CALL chkxer( 'CGBSV ', infot, nout, lerr, ok )
179  infot = 6
180  CALL cgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
181  CALL chkxer( 'CGBSV ', infot, nout, lerr, ok )
182  infot = 9
183  CALL cgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
184  CALL chkxer( 'CGBSV ', infot, nout, lerr, ok )
185 *
186 * CGBSVX
187 *
188  srnamt = 'CGBSVX'
189  infot = 1
190  CALL cgbsvx( '/', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
191  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
192  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
193  infot = 2
194  CALL cgbsvx( 'N', '/', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
195  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
196  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
197  infot = 3
198  CALL cgbsvx( 'N', 'N', -1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
199  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
200  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
201  infot = 4
202  CALL cgbsvx( 'N', 'N', 1, -1, 0, 0, a, 1, af, 1, ip, eq, r, c,
203  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
204  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
205  infot = 5
206  CALL cgbsvx( 'N', 'N', 1, 0, -1, 0, a, 1, af, 1, ip, eq, r, c,
207  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
208  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
209  infot = 6
210  CALL cgbsvx( 'N', 'N', 0, 0, 0, -1, a, 1, af, 1, ip, eq, r, c,
211  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
212  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
213  infot = 8
214  CALL cgbsvx( 'N', 'N', 1, 1, 1, 0, a, 2, af, 4, ip, eq, r, c,
215  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
216  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
217  infot = 10
218  CALL cgbsvx( 'N', 'N', 1, 1, 1, 0, a, 3, af, 3, ip, eq, r, c,
219  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
220  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
221  infot = 12
222  eq = '/'
223  CALL cgbsvx( 'F', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
224  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
225  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
226  infot = 13
227  eq = 'R'
228  CALL cgbsvx( 'F', 'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
229  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
230  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
231  infot = 14
232  eq = 'C'
233  CALL cgbsvx( 'F', 'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
234  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
235  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
236  infot = 16
237  CALL cgbsvx( 'N', 'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
238  $ b, 1, x, 2, rcond, r1, r2, w, rw, info )
239  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
240  infot = 18
241  CALL cgbsvx( 'N', 'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
242  $ b, 2, x, 1, rcond, r1, r2, w, rw, info )
243  CALL chkxer( 'CGBSVX', infot, nout, lerr, ok )
244 *
245  ELSE IF( lsamen( 2, c2, 'GT' ) ) THEN
246 *
247 * CGTSV
248 *
249  srnamt = 'CGTSV '
250  infot = 1
251  CALL cgtsv( -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
252  $ info )
253  CALL chkxer( 'CGTSV ', infot, nout, lerr, ok )
254  infot = 2
255  CALL cgtsv( 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
256  $ info )
257  CALL chkxer( 'CGTSV ', infot, nout, lerr, ok )
258  infot = 7
259  CALL cgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
260  CALL chkxer( 'CGTSV ', infot, nout, lerr, ok )
261 *
262 * CGTSVX
263 *
264  srnamt = 'CGTSVX'
265  infot = 1
266  CALL cgtsvx( '/', 'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
267  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
268  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
269  CALL chkxer( 'CGTSVX', infot, nout, lerr, ok )
270  infot = 2
271  CALL cgtsvx( 'N', '/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
272  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
273  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
274  CALL chkxer( 'CGTSVX', infot, nout, lerr, ok )
275  infot = 3
276  CALL cgtsvx( 'N', 'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
277  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
278  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
279  CALL chkxer( 'CGTSVX', infot, nout, lerr, ok )
280  infot = 4
281  CALL cgtsvx( 'N', 'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
282  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
283  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
284  CALL chkxer( 'CGTSVX', infot, nout, lerr, ok )
285  infot = 14
286  CALL cgtsvx( 'N', 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
287  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
288  $ ip, b, 1, x, 2, rcond, r1, r2, w, rw, info )
289  CALL chkxer( 'CGTSVX', infot, nout, lerr, ok )
290  infot = 16
291  CALL cgtsvx( 'N', 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
292  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
293  $ ip, b, 2, x, 1, rcond, r1, r2, w, rw, info )
294  CALL chkxer( 'CGTSVX', infot, nout, lerr, ok )
295 *
296  ELSE IF( lsamen( 2, c2, 'PO' ) ) THEN
297 *
298 * CPOSV
299 *
300  srnamt = 'CPOSV '
301  infot = 1
302  CALL cposv( '/', 0, 0, a, 1, b, 1, info )
303  CALL chkxer( 'CPOSV ', infot, nout, lerr, ok )
304  infot = 2
305  CALL cposv( 'U', -1, 0, a, 1, b, 1, info )
306  CALL chkxer( 'CPOSV ', infot, nout, lerr, ok )
307  infot = 3
308  CALL cposv( 'U', 0, -1, a, 1, b, 1, info )
309  CALL chkxer( 'CPOSV ', infot, nout, lerr, ok )
310  infot = 5
311  CALL cposv( 'U', 2, 0, a, 1, b, 2, info )
312  CALL chkxer( 'CPOSV ', infot, nout, lerr, ok )
313  infot = 7
314  CALL cposv( 'U', 2, 0, a, 2, b, 1, info )
315  CALL chkxer( 'CPOSV ', infot, nout, lerr, ok )
316 *
317 * CPOSVX
318 *
319  srnamt = 'CPOSVX'
320  infot = 1
321  CALL cposvx( '/', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
322  $ rcond, r1, r2, w, rw, info )
323  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
324  infot = 2
325  CALL cposvx( 'N', '/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
326  $ rcond, r1, r2, w, rw, info )
327  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
328  infot = 3
329  CALL cposvx( 'N', 'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
330  $ rcond, r1, r2, w, rw, info )
331  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
332  infot = 4
333  CALL cposvx( 'N', 'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
334  $ rcond, r1, r2, w, rw, info )
335  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
336  infot = 6
337  CALL cposvx( 'N', 'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
338  $ rcond, r1, r2, w, rw, info )
339  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
340  infot = 8
341  CALL cposvx( 'N', 'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
342  $ rcond, r1, r2, w, rw, info )
343  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
344  infot = 9
345  eq = '/'
346  CALL cposvx( 'F', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
347  $ rcond, r1, r2, w, rw, info )
348  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
349  infot = 10
350  eq = 'Y'
351  CALL cposvx( 'F', 'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
352  $ rcond, r1, r2, w, rw, info )
353  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
354  infot = 12
355  CALL cposvx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
356  $ rcond, r1, r2, w, rw, info )
357  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
358  infot = 14
359  CALL cposvx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
360  $ rcond, r1, r2, w, rw, info )
361  CALL chkxer( 'CPOSVX', infot, nout, lerr, ok )
362 *
363  ELSE IF( lsamen( 2, c2, 'PP' ) ) THEN
364 *
365 * CPPSV
366 *
367  srnamt = 'CPPSV '
368  infot = 1
369  CALL cppsv( '/', 0, 0, a, b, 1, info )
370  CALL chkxer( 'CPPSV ', infot, nout, lerr, ok )
371  infot = 2
372  CALL cppsv( 'U', -1, 0, a, b, 1, info )
373  CALL chkxer( 'CPPSV ', infot, nout, lerr, ok )
374  infot = 3
375  CALL cppsv( 'U', 0, -1, a, b, 1, info )
376  CALL chkxer( 'CPPSV ', infot, nout, lerr, ok )
377  infot = 6
378  CALL cppsv( 'U', 2, 0, a, b, 1, info )
379  CALL chkxer( 'CPPSV ', infot, nout, lerr, ok )
380 *
381 * CPPSVX
382 *
383  srnamt = 'CPPSVX'
384  infot = 1
385  CALL cppsvx( '/', 'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
386  $ r1, r2, w, rw, info )
387  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
388  infot = 2
389  CALL cppsvx( 'N', '/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
390  $ r1, r2, w, rw, info )
391  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
392  infot = 3
393  CALL cppsvx( 'N', 'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
394  $ r1, r2, w, rw, info )
395  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
396  infot = 4
397  CALL cppsvx( 'N', 'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
398  $ r1, r2, w, rw, info )
399  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
400  infot = 7
401  eq = '/'
402  CALL cppsvx( 'F', 'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
403  $ r1, r2, w, rw, info )
404  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
405  infot = 8
406  eq = 'Y'
407  CALL cppsvx( 'F', 'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
408  $ r1, r2, w, rw, info )
409  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
410  infot = 10
411  CALL cppsvx( 'N', 'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
412  $ r1, r2, w, rw, info )
413  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
414  infot = 12
415  CALL cppsvx( 'N', 'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
416  $ r1, r2, w, rw, info )
417  CALL chkxer( 'CPPSVX', infot, nout, lerr, ok )
418 *
419  ELSE IF( lsamen( 2, c2, 'PB' ) ) THEN
420 *
421 * CPBSV
422 *
423  srnamt = 'CPBSV '
424  infot = 1
425  CALL cpbsv( '/', 0, 0, 0, a, 1, b, 1, info )
426  CALL chkxer( 'CPBSV ', infot, nout, lerr, ok )
427  infot = 2
428  CALL cpbsv( 'U', -1, 0, 0, a, 1, b, 1, info )
429  CALL chkxer( 'CPBSV ', infot, nout, lerr, ok )
430  infot = 3
431  CALL cpbsv( 'U', 1, -1, 0, a, 1, b, 1, info )
432  CALL chkxer( 'CPBSV ', infot, nout, lerr, ok )
433  infot = 4
434  CALL cpbsv( 'U', 0, 0, -1, a, 1, b, 1, info )
435  CALL chkxer( 'CPBSV ', infot, nout, lerr, ok )
436  infot = 6
437  CALL cpbsv( 'U', 1, 1, 0, a, 1, b, 2, info )
438  CALL chkxer( 'CPBSV ', infot, nout, lerr, ok )
439  infot = 8
440  CALL cpbsv( 'U', 2, 0, 0, a, 1, b, 1, info )
441  CALL chkxer( 'CPBSV ', infot, nout, lerr, ok )
442 *
443 * CPBSVX
444 *
445  srnamt = 'CPBSVX'
446  infot = 1
447  CALL cpbsvx( '/', 'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
448  $ rcond, r1, r2, w, rw, info )
449  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
450  infot = 2
451  CALL cpbsvx( 'N', '/', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
452  $ rcond, r1, r2, w, rw, info )
453  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
454  infot = 3
455  CALL cpbsvx( 'N', 'U', -1, 0, 0, a, 1, af, 1, eq, c, b, 1, x,
456  $ 1, rcond, r1, r2, w, rw, info )
457  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
458  infot = 4
459  CALL cpbsvx( 'N', 'U', 1, -1, 0, a, 1, af, 1, eq, c, b, 1, x,
460  $ 1, rcond, r1, r2, w, rw, info )
461  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
462  infot = 5
463  CALL cpbsvx( 'N', 'U', 0, 0, -1, a, 1, af, 1, eq, c, b, 1, x,
464  $ 1, rcond, r1, r2, w, rw, info )
465  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
466  infot = 7
467  CALL cpbsvx( 'N', 'U', 1, 1, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
468  $ rcond, r1, r2, w, rw, info )
469  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
470  infot = 9
471  CALL cpbsvx( 'N', 'U', 1, 1, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
472  $ rcond, r1, r2, w, rw, info )
473  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
474  infot = 10
475  eq = '/'
476  CALL cpbsvx( 'F', 'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
477  $ rcond, r1, r2, w, rw, info )
478  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
479  infot = 11
480  eq = 'Y'
481  CALL cpbsvx( 'F', 'U', 1, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
482  $ rcond, r1, r2, w, rw, info )
483  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
484  infot = 13
485  CALL cpbsvx( 'N', 'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 2,
486  $ rcond, r1, r2, w, rw, info )
487  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
488  infot = 15
489  CALL cpbsvx( 'N', 'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 2, x, 1,
490  $ rcond, r1, r2, w, rw, info )
491  CALL chkxer( 'CPBSVX', infot, nout, lerr, ok )
492 *
493  ELSE IF( lsamen( 2, c2, 'PT' ) ) THEN
494 *
495 * CPTSV
496 *
497  srnamt = 'CPTSV '
498  infot = 1
499  CALL cptsv( -1, 0, r, a( 1, 1 ), b, 1, info )
500  CALL chkxer( 'CPTSV ', infot, nout, lerr, ok )
501  infot = 2
502  CALL cptsv( 0, -1, r, a( 1, 1 ), b, 1, info )
503  CALL chkxer( 'CPTSV ', infot, nout, lerr, ok )
504  infot = 6
505  CALL cptsv( 2, 0, r, a( 1, 1 ), b, 1, info )
506  CALL chkxer( 'CPTSV ', infot, nout, lerr, ok )
507 *
508 * CPTSVX
509 *
510  srnamt = 'CPTSVX'
511  infot = 1
512  CALL cptsvx( '/', 0, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
513  $ 1, rcond, r1, r2, w, rw, info )
514  CALL chkxer( 'CPTSVX', infot, nout, lerr, ok )
515  infot = 2
516  CALL cptsvx( 'N', -1, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
517  $ 1, rcond, r1, r2, w, rw, info )
518  CALL chkxer( 'CPTSVX', infot, nout, lerr, ok )
519  infot = 3
520  CALL cptsvx( 'N', 0, -1, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
521  $ 1, rcond, r1, r2, w, rw, info )
522  CALL chkxer( 'CPTSVX', infot, nout, lerr, ok )
523  infot = 9
524  CALL cptsvx( 'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
525  $ 2, rcond, r1, r2, w, rw, info )
526  CALL chkxer( 'CPTSVX', infot, nout, lerr, ok )
527  infot = 11
528  CALL cptsvx( 'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 2, x,
529  $ 1, rcond, r1, r2, w, rw, info )
530  CALL chkxer( 'CPTSVX', infot, nout, lerr, ok )
531 *
532  ELSE IF( lsamen( 2, c2, 'HE' ) ) THEN
533 *
534 * CHESV
535 *
536  srnamt = 'CHESV '
537  infot = 1
538  CALL chesv( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
539  CALL chkxer( 'CHESV ', infot, nout, lerr, ok )
540  infot = 2
541  CALL chesv( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
542  CALL chkxer( 'CHESV ', infot, nout, lerr, ok )
543  infot = 3
544  CALL chesv( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
545  CALL chkxer( 'CHESV ', infot, nout, lerr, ok )
546  infot = 5
547  CALL chesv( 'U', 2, 0, a, 1, ip, b, 2, w, 1, info )
548  CALL chkxer( 'CHESV ', infot, nout, lerr, ok )
549  infot = 8
550  CALL chesv( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
551  CALL chkxer( 'CHESV ', infot, nout, lerr, ok )
552 *
553 * CHESVX
554 *
555  srnamt = 'CHESVX'
556  infot = 1
557  CALL chesvx( '/', 'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
558  $ rcond, r1, r2, w, 1, rw, info )
559  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
560  infot = 2
561  CALL chesvx( 'N', '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
562  $ rcond, r1, r2, w, 1, rw, info )
563  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
564  infot = 3
565  CALL chesvx( 'N', 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
566  $ rcond, r1, r2, w, 1, rw, info )
567  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
568  infot = 4
569  CALL chesvx( 'N', 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
570  $ rcond, r1, r2, w, 1, rw, info )
571  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
572  infot = 6
573  CALL chesvx( 'N', 'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
574  $ rcond, r1, r2, w, 4, rw, info )
575  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
576  infot = 8
577  CALL chesvx( 'N', 'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
578  $ rcond, r1, r2, w, 4, rw, info )
579  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
580  infot = 11
581  CALL chesvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
582  $ rcond, r1, r2, w, 4, rw, info )
583  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
584  infot = 13
585  CALL chesvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
586  $ rcond, r1, r2, w, 4, rw, info )
587  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
588  infot = 18
589  CALL chesvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
590  $ rcond, r1, r2, w, 3, rw, info )
591  CALL chkxer( 'CHESVX', infot, nout, lerr, ok )
592 *
593  ELSE IF( lsamen( 2, c2, 'HP' ) ) THEN
594 *
595 * CHPSV
596 *
597  srnamt = 'CHPSV '
598  infot = 1
599  CALL chpsv( '/', 0, 0, a, ip, b, 1, info )
600  CALL chkxer( 'CHPSV ', infot, nout, lerr, ok )
601  infot = 2
602  CALL chpsv( 'U', -1, 0, a, ip, b, 1, info )
603  CALL chkxer( 'CHPSV ', infot, nout, lerr, ok )
604  infot = 3
605  CALL chpsv( 'U', 0, -1, a, ip, b, 1, info )
606  CALL chkxer( 'CHPSV ', infot, nout, lerr, ok )
607  infot = 7
608  CALL chpsv( 'U', 2, 0, a, ip, b, 1, info )
609  CALL chkxer( 'CHPSV ', infot, nout, lerr, ok )
610 *
611 * CHPSVX
612 *
613  srnamt = 'CHPSVX'
614  infot = 1
615  CALL chpsvx( '/', 'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
616  $ r2, w, rw, info )
617  CALL chkxer( 'CHPSVX', infot, nout, lerr, ok )
618  infot = 2
619  CALL chpsvx( 'N', '/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
620  $ r2, w, rw, info )
621  CALL chkxer( 'CHPSVX', infot, nout, lerr, ok )
622  infot = 3
623  CALL chpsvx( 'N', 'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
624  $ r2, w, rw, info )
625  CALL chkxer( 'CHPSVX', infot, nout, lerr, ok )
626  infot = 4
627  CALL chpsvx( 'N', 'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
628  $ r2, w, rw, info )
629  CALL chkxer( 'CHPSVX', infot, nout, lerr, ok )
630  infot = 9
631  CALL chpsvx( 'N', 'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
632  $ r2, w, rw, info )
633  CALL chkxer( 'CHPSVX', infot, nout, lerr, ok )
634  infot = 11
635  CALL chpsvx( 'N', 'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
636  $ r2, w, rw, info )
637  CALL chkxer( 'CHPSVX', infot, nout, lerr, ok )
638 *
639  ELSE IF( lsamen( 2, c2, 'SY' ) ) THEN
640 *
641 * CSYSV
642 *
643  srnamt = 'CSYSV '
644  infot = 1
645  CALL csysv( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
646  CALL chkxer( 'CSYSV ', infot, nout, lerr, ok )
647  infot = 2
648  CALL csysv( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
649  CALL chkxer( 'CSYSV ', infot, nout, lerr, ok )
650  infot = 3
651  CALL csysv( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
652  CALL chkxer( 'CSYSV ', infot, nout, lerr, ok )
653  infot = 8
654  CALL csysv( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
655  CALL chkxer( 'CSYSV ', infot, nout, lerr, ok )
656 *
657 * CSYSVX
658 *
659  srnamt = 'CSYSVX'
660  infot = 1
661  CALL csysvx( '/', 'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
662  $ rcond, r1, r2, w, 1, rw, info )
663  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
664  infot = 2
665  CALL csysvx( 'N', '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
666  $ rcond, r1, r2, w, 1, rw, info )
667  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
668  infot = 3
669  CALL csysvx( 'N', 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
670  $ rcond, r1, r2, w, 1, rw, info )
671  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
672  infot = 4
673  CALL csysvx( 'N', 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
674  $ rcond, r1, r2, w, 1, rw, info )
675  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
676  infot = 6
677  CALL csysvx( 'N', 'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
678  $ rcond, r1, r2, w, 4, rw, info )
679  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
680  infot = 8
681  CALL csysvx( 'N', 'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
682  $ rcond, r1, r2, w, 4, rw, info )
683  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
684  infot = 11
685  CALL csysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
686  $ rcond, r1, r2, w, 4, rw, info )
687  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
688  infot = 13
689  CALL csysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
690  $ rcond, r1, r2, w, 4, rw, info )
691  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
692  infot = 18
693  CALL csysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
694  $ rcond, r1, r2, w, 3, rw, info )
695  CALL chkxer( 'CSYSVX', infot, nout, lerr, ok )
696 *
697  ELSE IF( lsamen( 2, c2, 'SP' ) ) THEN
698 *
699 * CSPSV
700 *
701  srnamt = 'CSPSV '
702  infot = 1
703  CALL cspsv( '/', 0, 0, a, ip, b, 1, info )
704  CALL chkxer( 'CSPSV ', infot, nout, lerr, ok )
705  infot = 2
706  CALL cspsv( 'U', -1, 0, a, ip, b, 1, info )
707  CALL chkxer( 'CSPSV ', infot, nout, lerr, ok )
708  infot = 3
709  CALL cspsv( 'U', 0, -1, a, ip, b, 1, info )
710  CALL chkxer( 'CSPSV ', infot, nout, lerr, ok )
711  infot = 7
712  CALL cspsv( 'U', 2, 0, a, ip, b, 1, info )
713  CALL chkxer( 'CSPSV ', infot, nout, lerr, ok )
714 *
715 * CSPSVX
716 *
717  srnamt = 'CSPSVX'
718  infot = 1
719  CALL cspsvx( '/', 'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
720  $ r2, w, rw, info )
721  CALL chkxer( 'CSPSVX', infot, nout, lerr, ok )
722  infot = 2
723  CALL cspsvx( 'N', '/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
724  $ r2, w, rw, info )
725  CALL chkxer( 'CSPSVX', infot, nout, lerr, ok )
726  infot = 3
727  CALL cspsvx( 'N', 'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
728  $ r2, w, rw, info )
729  CALL chkxer( 'CSPSVX', infot, nout, lerr, ok )
730  infot = 4
731  CALL cspsvx( 'N', 'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
732  $ r2, w, rw, info )
733  CALL chkxer( 'CSPSVX', infot, nout, lerr, ok )
734  infot = 9
735  CALL cspsvx( 'N', 'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
736  $ r2, w, rw, info )
737  CALL chkxer( 'CSPSVX', infot, nout, lerr, ok )
738  infot = 11
739  CALL cspsvx( 'N', 'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
740  $ r2, w, rw, info )
741  CALL chkxer( 'CSPSVX', infot, nout, lerr, ok )
742  END IF
743 *
744 * Print a summary line.
745 *
746  IF( ok ) THEN
747  WRITE( nout, fmt = 9999 )path
748  ELSE
749  WRITE( nout, fmt = 9998 )path
750  END IF
751 *
752  9999 format( 1x, a3, ' drivers passed the tests of the error exits' )
753  9998 format( ' *** ', a3, ' drivers failed the tests of the error ',
754  $ 'exits ***' )
755 *
756  return
757 *
758 * End of CERRVX
759 *
760  END