LAPACK  3.5.0
LAPACK: Linear Algebra PACKage
 All Classes Files Functions Variables Typedefs Macros
zerrvxx.f
Go to the documentation of this file.
1 *> \brief \b ZERRVXX
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 * Definition:
9 * ===========
10 *
11 * SUBROUTINE ZERRVX( PATH, NUNIT )
12 *
13 * .. Scalar Arguments ..
14 * CHARACTER*3 PATH
15 * INTEGER NUNIT
16 * ..
17 *
18 *
19 *> \par Purpose:
20 * =============
21 *>
22 *> \verbatim
23 *>
24 *> ZERRVX tests the error exits for the COMPLEX*16 driver routines
25 *> for solving linear systems of equations.
26 *> \endverbatim
27 *
28 * Arguments:
29 * ==========
30 *
31 *> \param[in] PATH
32 *> \verbatim
33 *> PATH is CHARACTER*3
34 *> The LAPACK path name for the routines to be tested.
35 *> \endverbatim
36 *>
37 *> \param[in] NUNIT
38 *> \verbatim
39 *> NUNIT is INTEGER
40 *> The unit number for output.
41 *> \endverbatim
42 *
43 * Authors:
44 * ========
45 *
46 *> \author Univ. of Tennessee
47 *> \author Univ. of California Berkeley
48 *> \author Univ. of Colorado Denver
49 *> \author NAG Ltd.
50 *
51 *> \date November 2013
52 *
53 *> \ingroup complex16_lin
54 *
55 * =====================================================================
56  SUBROUTINE zerrvx( PATH, NUNIT )
57 *
58 * -- LAPACK test routine (version 3.5.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 2013
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  DOUBLE PRECISION rcond, rpvgrw, berr
79 * ..
80 * .. Local Arrays ..
81  INTEGER ip( nmax )
82  DOUBLE PRECISION 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*16 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 chkxer, zgbsv, zgbsvx, zgesv, zgesvx, zgtsv,
98  $ zhesvxx, zgbsvxx
99 * ..
100 * .. Scalars in Common ..
101  LOGICAL lerr, ok
102  CHARACTER*32 srnamt
103  INTEGER infot, nout
104 * ..
105 * .. Common blocks ..
106  COMMON / infoc / infot, nout, ok, lerr
107  COMMON / srnamc / srnamt
108 * ..
109 * .. Intrinsic Functions ..
110  INTRINSIC dble, dcmplx
111 * ..
112 * .. Executable Statements ..
113 *
114  nout = nunit
115  WRITE( nout, fmt = * )
116  c2 = path( 2: 3 )
117 *
118 * Set the variables to innocuous values.
119 *
120  DO 20 j = 1, nmax
121  DO 10 i = 1, nmax
122  a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
123  $ -1.d0 / dble( i+j ) )
124  af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
125  $ -1.d0 / dble( i+j ) )
126  10 CONTINUE
127  b( j ) = 0.d0
128  r1( j ) = 0.d0
129  r2( j ) = 0.d0
130  w( j ) = 0.d0
131  x( j ) = 0.d0
132  c( j ) = 0.d0
133  r( j ) = 0.d0
134  ip( j ) = j
135  20 CONTINUE
136  eq = ' '
137  ok = .true.
138 *
139  IF( lsamen( 2, c2, 'GE' ) ) THEN
140 *
141 * ZGESV
142 *
143  srnamt = 'ZGESV '
144  infot = 1
145  CALL zgesv( -1, 0, a, 1, ip, b, 1, info )
146  CALL chkxer( 'ZGESV ', infot, nout, lerr, ok )
147  infot = 2
148  CALL zgesv( 0, -1, a, 1, ip, b, 1, info )
149  CALL chkxer( 'ZGESV ', infot, nout, lerr, ok )
150  infot = 4
151  CALL zgesv( 2, 1, a, 1, ip, b, 2, info )
152  CALL chkxer( 'ZGESV ', infot, nout, lerr, ok )
153  infot = 7
154  CALL zgesv( 2, 1, a, 2, ip, b, 1, info )
155  CALL chkxer( 'ZGESV ', infot, nout, lerr, ok )
156 *
157 * ZGESVX
158 *
159  srnamt = 'ZGESVX'
160  infot = 1
161  CALL zgesvx( '/', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
162  $ x, 1, rcond, r1, r2, w, rw, info )
163  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
164  infot = 2
165  CALL zgesvx( 'N', '/', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
166  $ x, 1, rcond, r1, r2, w, rw, info )
167  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
168  infot = 3
169  CALL zgesvx( 'N', 'N', -1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
170  $ x, 1, rcond, r1, r2, w, rw, info )
171  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
172  infot = 4
173  CALL zgesvx( 'N', 'N', 0, -1, a, 1, af, 1, ip, eq, r, c, b, 1,
174  $ x, 1, rcond, r1, r2, w, rw, info )
175  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
176  infot = 6
177  CALL zgesvx( 'N', 'N', 2, 1, a, 1, af, 2, ip, eq, r, c, b, 2,
178  $ x, 2, rcond, r1, r2, w, rw, info )
179  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
180  infot = 8
181  CALL zgesvx( 'N', 'N', 2, 1, a, 2, af, 1, ip, eq, r, c, b, 2,
182  $ x, 2, rcond, r1, r2, w, rw, info )
183  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
184  infot = 10
185  eq = '/'
186  CALL zgesvx( 'F', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
187  $ x, 1, rcond, r1, r2, w, rw, info )
188  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
189  infot = 11
190  eq = 'R'
191  CALL zgesvx( '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( 'ZGESVX', infot, nout, lerr, ok )
194  infot = 12
195  eq = 'C'
196  CALL zgesvx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
197  $ x, 1, rcond, r1, r2, w, rw, info )
198  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
199  infot = 14
200  CALL zgesvx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 1,
201  $ x, 2, rcond, r1, r2, w, rw, info )
202  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
203  infot = 16
204  CALL zgesvx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 2,
205  $ x, 1, rcond, r1, r2, w, rw, info )
206  CALL chkxer( 'ZGESVX', infot, nout, lerr, ok )
207 *
208 * ZGESVXX
209 *
210  n_err_bnds = 3
211  nparams = 1
212  srnamt = 'ZGESVXX'
213  infot = 1
214  CALL zgesvxx( '/', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b,
215  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
216  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
217  $ info )
218  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
219  infot = 2
220  CALL zgesvxx( 'N', '/', 0, 0, a, 1, af, 1, ip, eq, r, c, b,
221  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
222  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
223  $ info )
224  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
225  infot = 3
226  CALL zgesvxx( 'N', 'N', -1, 0, a, 1, af, 1, ip, eq, r, c, b,
227  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
228  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
229  $ info )
230  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
231  infot = 4
232  CALL zgesvxx( 'N', 'N', 0, -1, a, 1, af, 1, ip, eq, r, c, b,
233  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
234  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
235  $ info )
236  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
237  infot = 6
238  CALL zgesvxx( 'N', 'N', 2, 1, a, 1, af, 2, ip, eq, r, c, b,
239  $ 2, x, 2, rcond, rpvgrw, berr, n_err_bnds,
240  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
241  $ info )
242  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
243  infot = 8
244  CALL zgesvxx( 'N', 'N', 2, 1, a, 2, af, 1, ip, eq, r, c, b,
245  $ 2, x, 2, rcond, rpvgrw, berr, n_err_bnds,
246  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
247  $ info )
248  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
249  infot = 10
250  eq = '/'
251  CALL zgesvxx( 'F', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b,
252  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
253  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
254  $ info )
255  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
256  infot = 11
257  eq = 'R'
258  CALL zgesvxx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b,
259  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
260  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
261  $ info )
262  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
263  infot = 12
264  eq = 'C'
265  CALL zgesvxx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b,
266  $ 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
267  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
268  $ info )
269  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
270  infot = 14
271  CALL zgesvxx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b,
272  $ 1, x, 2, rcond, rpvgrw, berr, n_err_bnds,
273  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
274  $ info )
275  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
276  infot = 16
277  CALL zgesvxx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b,
278  $ 2, x, 1, rcond, rpvgrw, berr, n_err_bnds,
279  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
280  $ info )
281  CALL chkxer( 'ZGESVXX', infot, nout, lerr, ok )
282 *
283  ELSE IF( lsamen( 2, c2, 'GB' ) ) THEN
284 *
285 * ZGBSV
286 *
287  srnamt = 'ZGBSV '
288  infot = 1
289  CALL zgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
290  CALL chkxer( 'ZGBSV ', infot, nout, lerr, ok )
291  infot = 2
292  CALL zgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
293  CALL chkxer( 'ZGBSV ', infot, nout, lerr, ok )
294  infot = 3
295  CALL zgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
296  CALL chkxer( 'ZGBSV ', infot, nout, lerr, ok )
297  infot = 4
298  CALL zgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
299  CALL chkxer( 'ZGBSV ', infot, nout, lerr, ok )
300  infot = 6
301  CALL zgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
302  CALL chkxer( 'ZGBSV ', infot, nout, lerr, ok )
303  infot = 9
304  CALL zgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
305  CALL chkxer( 'ZGBSV ', infot, nout, lerr, ok )
306 *
307 * ZGBSVX
308 *
309  srnamt = 'ZGBSVX'
310  infot = 1
311  CALL zgbsvx( '/', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
312  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
313  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
314  infot = 2
315  CALL zgbsvx( 'N', '/', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
316  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
317  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
318  infot = 3
319  CALL zgbsvx( 'N', 'N', -1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
320  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
321  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
322  infot = 4
323  CALL zgbsvx( 'N', 'N', 1, -1, 0, 0, a, 1, af, 1, ip, eq, r, c,
324  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
325  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
326  infot = 5
327  CALL zgbsvx( 'N', 'N', 1, 0, -1, 0, a, 1, af, 1, ip, eq, r, c,
328  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
329  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
330  infot = 6
331  CALL zgbsvx( 'N', 'N', 0, 0, 0, -1, a, 1, af, 1, ip, eq, r, c,
332  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
333  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
334  infot = 8
335  CALL zgbsvx( 'N', 'N', 1, 1, 1, 0, a, 2, af, 4, ip, eq, r, c,
336  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
337  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
338  infot = 10
339  CALL zgbsvx( 'N', 'N', 1, 1, 1, 0, a, 3, af, 3, ip, eq, r, c,
340  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
341  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
342  infot = 12
343  eq = '/'
344  CALL zgbsvx( 'F', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
345  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
346  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
347  infot = 13
348  eq = 'R'
349  CALL zgbsvx( 'F', 'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
350  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
351  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
352  infot = 14
353  eq = 'C'
354  CALL zgbsvx( 'F', 'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
355  $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
356  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
357  infot = 16
358  CALL zgbsvx( 'N', 'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
359  $ b, 1, x, 2, rcond, r1, r2, w, rw, info )
360  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
361  infot = 18
362  CALL zgbsvx( 'N', 'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
363  $ b, 2, x, 1, rcond, r1, r2, w, rw, info )
364  CALL chkxer( 'ZGBSVX', infot, nout, lerr, ok )
365 *
366 * ZGBSVXX
367 *
368  n_err_bnds = 3
369  nparams = 1
370  srnamt = 'ZGBSVXX'
371  infot = 1
372  CALL zgbsvxx( '/', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
373  $ b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
374  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
375  $ info )
376  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
377  infot = 2
378  CALL zgbsvxx( 'N', '/', 0, 1, 1, 0, a, 1, af, 1, ip, eq, r, c,
379  $ b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
380  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
381  $ info )
382  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
383  infot = 3
384  CALL zgbsvxx( 'N', 'N', -1, 1, 1, 0, a, 1, af, 1, ip, eq, r, c,
385  $ b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
386  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
387  $ info )
388  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
389  infot = 4
390  CALL zgbsvxx( 'N', 'N', 2, -1, 1, 0, a, 1, af, 1, ip, eq,
391  $ r, c, b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
392  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
393  $ info )
394  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
395  infot = 5
396  CALL zgbsvxx( 'N', 'N', 2, 1, -1, 0, a, 1, af, 1, ip, eq,
397  $ r, c, b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
398  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
399  $ info )
400  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
401  infot = 6
402  CALL zgbsvxx( 'N', 'N', 0, 1, 1, -1, a, 1, af, 1, ip, eq, r, c,
403  $ b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
404  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
405  $ info )
406  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
407  infot = 8
408  CALL zgbsvxx( 'N', 'N', 2, 1, 1, 1, a, 2, af, 2, ip, eq, r, c,
409  $ b, 2, x, 2, rcond, rpvgrw, berr, n_err_bnds,
410  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
411  $ info )
412  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
413  infot = 10
414  CALL zgbsvxx( 'N', 'N', 2, 1, 1, 1, a, 3, af, 3, ip, eq, r, c,
415  $ b, 2, x, 2, rcond, rpvgrw, berr, n_err_bnds,
416  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
417  $ info )
418  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
419  infot = 12
420  eq = '/'
421  CALL zgbsvxx( 'F', 'N', 0, 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( 'ZGBSVXX', infot, nout, lerr, ok )
426  infot = 13
427  eq = 'R'
428  CALL zgbsvxx( 'F', 'N', 1, 1, 1, 0, a, 3, af, 4, ip, eq, r, c,
429  $ b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
430  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
431  $ info )
432  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
433  infot = 14
434  eq = 'C'
435  CALL zgbsvxx( 'F', 'N', 1, 1, 1, 0, a, 3, af, 4, ip, eq, r, c,
436  $ b, 1, x, 1, rcond, rpvgrw, berr, n_err_bnds,
437  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
438  $ info )
439  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
440  infot = 15
441  CALL zgbsvxx( 'N', 'N', 2, 1, 1, 1, a, 3, af, 4, ip, eq, r, c,
442  $ b, 1, x, 2, rcond, rpvgrw, berr, n_err_bnds,
443  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
444  $ info )
445  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
446  infot = 16
447  CALL zgbsvxx( 'N', 'N', 2, 1, 1, 1, a, 3, af, 4, ip, eq, r, c,
448  $ b, 2, x, 1, rcond, rpvgrw, berr, n_err_bnds,
449  $ err_bnds_n, err_bnds_c, nparams, params, w, rw,
450  $ info )
451  CALL chkxer( 'ZGBSVXX', infot, nout, lerr, ok )
452 *
453  ELSE IF( lsamen( 2, c2, 'GT' ) ) THEN
454 *
455 * ZGTSV
456 *
457  srnamt = 'ZGTSV '
458  infot = 1
459  CALL zgtsv( -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
460  $ info )
461  CALL chkxer( 'ZGTSV ', infot, nout, lerr, ok )
462  infot = 2
463  CALL zgtsv( 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
464  $ info )
465  CALL chkxer( 'ZGTSV ', infot, nout, lerr, ok )
466  infot = 7
467  CALL zgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
468  CALL chkxer( 'ZGTSV ', infot, nout, lerr, ok )
469 *
470 * ZGTSVX
471 *
472  srnamt = 'ZGTSVX'
473  infot = 1
474  CALL zgtsvx( '/', 'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
475  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
476  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
477  CALL chkxer( 'ZGTSVX', infot, nout, lerr, ok )
478  infot = 2
479  CALL zgtsvx( 'N', '/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
480  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
481  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
482  CALL chkxer( 'ZGTSVX', infot, nout, lerr, ok )
483  infot = 3
484  CALL zgtsvx( 'N', 'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
485  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
486  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
487  CALL chkxer( 'ZGTSVX', infot, nout, lerr, ok )
488  infot = 4
489  CALL zgtsvx( 'N', 'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
490  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
491  $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
492  CALL chkxer( 'ZGTSVX', infot, nout, lerr, ok )
493  infot = 14
494  CALL zgtsvx( 'N', 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
495  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
496  $ ip, b, 1, x, 2, rcond, r1, r2, w, rw, info )
497  CALL chkxer( 'ZGTSVX', infot, nout, lerr, ok )
498  infot = 16
499  CALL zgtsvx( 'N', 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
500  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
501  $ ip, b, 2, x, 1, rcond, r1, r2, w, rw, info )
502  CALL chkxer( 'ZGTSVX', infot, nout, lerr, ok )
503 *
504  ELSE IF( lsamen( 2, c2, 'HR' ) ) THEN
505 *
506 * ZHESV_ROOK
507 *
508  srnamt = 'ZHESV_ROOK'
509  infot = 1
510  CALL zhesv_rook( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
511  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
512  infot = 2
513  CALL zhesv_rook( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
514  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
515  infot = 3
516  CALL zhesv_rook( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
517  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
518  infot = 8
519  CALL zhesv_rook( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
520  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
521 *
522  ELSE IF( lsamen( 2, c2, 'PO' ) ) THEN
523 *
524 * ZPOSV
525 *
526  srnamt = 'ZPOSV '
527  infot = 1
528  CALL zposv( '/', 0, 0, a, 1, b, 1, info )
529  CALL chkxer( 'ZPOSV ', infot, nout, lerr, ok )
530  infot = 2
531  CALL zposv( 'U', -1, 0, a, 1, b, 1, info )
532  CALL chkxer( 'ZPOSV ', infot, nout, lerr, ok )
533  infot = 3
534  CALL zposv( 'U', 0, -1, a, 1, b, 1, info )
535  CALL chkxer( 'ZPOSV ', infot, nout, lerr, ok )
536  infot = 5
537  CALL zposv( 'U', 2, 0, a, 1, b, 2, info )
538  CALL chkxer( 'ZPOSV ', infot, nout, lerr, ok )
539  infot = 7
540  CALL zposv( 'U', 2, 0, a, 2, b, 1, info )
541  CALL chkxer( 'ZPOSV ', infot, nout, lerr, ok )
542 *
543 * ZPOSVX
544 *
545  srnamt = 'ZPOSVX'
546  infot = 1
547  CALL zposvx( '/', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
548  $ rcond, r1, r2, w, rw, info )
549  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
550  infot = 2
551  CALL zposvx( 'N', '/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
552  $ rcond, r1, r2, w, rw, info )
553  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
554  infot = 3
555  CALL zposvx( 'N', 'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
556  $ rcond, r1, r2, w, rw, info )
557  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
558  infot = 4
559  CALL zposvx( 'N', 'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
560  $ rcond, r1, r2, w, rw, info )
561  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
562  infot = 6
563  CALL zposvx( 'N', 'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
564  $ rcond, r1, r2, w, rw, info )
565  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
566  infot = 8
567  CALL zposvx( 'N', 'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
568  $ rcond, r1, r2, w, rw, info )
569  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
570  infot = 9
571  eq = '/'
572  CALL zposvx( 'F', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
573  $ rcond, r1, r2, w, rw, info )
574  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
575  infot = 10
576  eq = 'Y'
577  CALL zposvx( 'F', 'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
578  $ rcond, r1, r2, w, rw, info )
579  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
580  infot = 12
581  CALL zposvx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
582  $ rcond, r1, r2, w, rw, info )
583  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
584  infot = 14
585  CALL zposvx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
586  $ rcond, r1, r2, w, rw, info )
587  CALL chkxer( 'ZPOSVX', infot, nout, lerr, ok )
588 *
589 * ZPOSVXX
590 *
591  n_err_bnds = 3
592  nparams = 1
593  srnamt = 'ZPOSVXX'
594  infot = 1
595  CALL zposvxx( '/', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
596  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
597  $ err_bnds_c, nparams, params, w, rw, info )
598  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
599  infot = 2
600  CALL zposvxx( 'N', '/', 0, 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( 'ZPOSVXX', infot, nout, lerr, ok )
604  infot = 3
605  CALL zposvxx( 'N', 'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
606  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
607  $ err_bnds_c, nparams, params, w, rw, info )
608  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
609  infot = 4
610  CALL zposvxx( 'N', 'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
611  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
612  $ err_bnds_c, nparams, params, w, rw, info )
613  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
614  infot = 6
615  CALL zposvxx( 'N', 'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
616  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
617  $ err_bnds_c, nparams, params, w, rw, info )
618  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
619  infot = 8
620  CALL zposvxx( 'N', 'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
621  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
622  $ err_bnds_c, nparams, params, w, rw, info )
623  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
624  infot = 9
625  eq = '/'
626  CALL zposvxx( 'F', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
627  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
628  $ err_bnds_c, nparams, params, w, rw, info )
629  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
630  infot = 10
631  eq = 'Y'
632  CALL zposvxx( 'F', 'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
633  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
634  $ err_bnds_c, nparams, params, w, rw, info )
635  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
636  infot = 12
637  CALL zposvxx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
638  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
639  $ err_bnds_c, nparams, params, w, rw, info )
640  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
641  infot = 14
642  CALL zposvxx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
643  $ rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
644  $ err_bnds_c, nparams, params, w, rw, info )
645  CALL chkxer( 'ZPOSVXX', infot, nout, lerr, ok )
646 *
647  ELSE IF( lsamen( 2, c2, 'PP' ) ) THEN
648 *
649 * ZPPSV
650 *
651  srnamt = 'ZPPSV '
652  infot = 1
653  CALL zppsv( '/', 0, 0, a, b, 1, info )
654  CALL chkxer( 'ZPPSV ', infot, nout, lerr, ok )
655  infot = 2
656  CALL zppsv( 'U', -1, 0, a, b, 1, info )
657  CALL chkxer( 'ZPPSV ', infot, nout, lerr, ok )
658  infot = 3
659  CALL zppsv( 'U', 0, -1, a, b, 1, info )
660  CALL chkxer( 'ZPPSV ', infot, nout, lerr, ok )
661  infot = 6
662  CALL zppsv( 'U', 2, 0, a, b, 1, info )
663  CALL chkxer( 'ZPPSV ', infot, nout, lerr, ok )
664 *
665 * ZPPSVX
666 *
667  srnamt = 'ZPPSVX'
668  infot = 1
669  CALL zppsvx( '/', 'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
670  $ r1, r2, w, rw, info )
671  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
672  infot = 2
673  CALL zppsvx( 'N', '/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
674  $ r1, r2, w, rw, info )
675  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
676  infot = 3
677  CALL zppsvx( 'N', 'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
678  $ r1, r2, w, rw, info )
679  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
680  infot = 4
681  CALL zppsvx( 'N', 'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
682  $ r1, r2, w, rw, info )
683  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
684  infot = 7
685  eq = '/'
686  CALL zppsvx( 'F', 'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
687  $ r1, r2, w, rw, info )
688  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
689  infot = 8
690  eq = 'Y'
691  CALL zppsvx( 'F', 'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
692  $ r1, r2, w, rw, info )
693  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
694  infot = 10
695  CALL zppsvx( 'N', 'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
696  $ r1, r2, w, rw, info )
697  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
698  infot = 12
699  CALL zppsvx( 'N', 'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
700  $ r1, r2, w, rw, info )
701  CALL chkxer( 'ZPPSVX', infot, nout, lerr, ok )
702 *
703  ELSE IF( lsamen( 2, c2, 'PB' ) ) THEN
704 *
705 * ZPBSV
706 *
707  srnamt = 'ZPBSV '
708  infot = 1
709  CALL zpbsv( '/', 0, 0, 0, a, 1, b, 1, info )
710  CALL chkxer( 'ZPBSV ', infot, nout, lerr, ok )
711  infot = 2
712  CALL zpbsv( 'U', -1, 0, 0, a, 1, b, 1, info )
713  CALL chkxer( 'ZPBSV ', infot, nout, lerr, ok )
714  infot = 3
715  CALL zpbsv( 'U', 1, -1, 0, a, 1, b, 1, info )
716  CALL chkxer( 'ZPBSV ', infot, nout, lerr, ok )
717  infot = 4
718  CALL zpbsv( 'U', 0, 0, -1, a, 1, b, 1, info )
719  CALL chkxer( 'ZPBSV ', infot, nout, lerr, ok )
720  infot = 6
721  CALL zpbsv( 'U', 1, 1, 0, a, 1, b, 2, info )
722  CALL chkxer( 'ZPBSV ', infot, nout, lerr, ok )
723  infot = 8
724  CALL zpbsv( 'U', 2, 0, 0, a, 1, b, 1, info )
725  CALL chkxer( 'ZPBSV ', infot, nout, lerr, ok )
726 *
727 * ZPBSVX
728 *
729  srnamt = 'ZPBSVX'
730  infot = 1
731  CALL zpbsvx( '/', 'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
732  $ rcond, r1, r2, w, rw, info )
733  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
734  infot = 2
735  CALL zpbsvx( 'N', '/', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
736  $ rcond, r1, r2, w, rw, info )
737  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
738  infot = 3
739  CALL zpbsvx( 'N', 'U', -1, 0, 0, a, 1, af, 1, eq, c, b, 1, x,
740  $ 1, rcond, r1, r2, w, rw, info )
741  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
742  infot = 4
743  CALL zpbsvx( 'N', 'U', 1, -1, 0, a, 1, af, 1, eq, c, b, 1, x,
744  $ 1, rcond, r1, r2, w, rw, info )
745  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
746  infot = 5
747  CALL zpbsvx( 'N', 'U', 0, 0, -1, a, 1, af, 1, eq, c, b, 1, x,
748  $ 1, rcond, r1, r2, w, rw, info )
749  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
750  infot = 7
751  CALL zpbsvx( 'N', 'U', 1, 1, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
752  $ rcond, r1, r2, w, rw, info )
753  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
754  infot = 9
755  CALL zpbsvx( 'N', 'U', 1, 1, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
756  $ rcond, r1, r2, w, rw, info )
757  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
758  infot = 10
759  eq = '/'
760  CALL zpbsvx( 'F', 'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
761  $ rcond, r1, r2, w, rw, info )
762  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
763  infot = 11
764  eq = 'Y'
765  CALL zpbsvx( 'F', 'U', 1, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
766  $ rcond, r1, r2, w, rw, info )
767  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
768  infot = 13
769  CALL zpbsvx( 'N', 'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 2,
770  $ rcond, r1, r2, w, rw, info )
771  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
772  infot = 15
773  CALL zpbsvx( 'N', 'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 2, x, 1,
774  $ rcond, r1, r2, w, rw, info )
775  CALL chkxer( 'ZPBSVX', infot, nout, lerr, ok )
776 *
777  ELSE IF( lsamen( 2, c2, 'PT' ) ) THEN
778 *
779 * ZPTSV
780 *
781  srnamt = 'ZPTSV '
782  infot = 1
783  CALL zptsv( -1, 0, r, a( 1, 1 ), b, 1, info )
784  CALL chkxer( 'ZPTSV ', infot, nout, lerr, ok )
785  infot = 2
786  CALL zptsv( 0, -1, r, a( 1, 1 ), b, 1, info )
787  CALL chkxer( 'ZPTSV ', infot, nout, lerr, ok )
788  infot = 6
789  CALL zptsv( 2, 0, r, a( 1, 1 ), b, 1, info )
790  CALL chkxer( 'ZPTSV ', infot, nout, lerr, ok )
791 *
792 * ZPTSVX
793 *
794  srnamt = 'ZPTSVX'
795  infot = 1
796  CALL zptsvx( '/', 0, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
797  $ 1, rcond, r1, r2, w, rw, info )
798  CALL chkxer( 'ZPTSVX', infot, nout, lerr, ok )
799  infot = 2
800  CALL zptsvx( 'N', -1, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
801  $ 1, rcond, r1, r2, w, rw, info )
802  CALL chkxer( 'ZPTSVX', infot, nout, lerr, ok )
803  infot = 3
804  CALL zptsvx( 'N', 0, -1, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
805  $ 1, rcond, r1, r2, w, rw, info )
806  CALL chkxer( 'ZPTSVX', infot, nout, lerr, ok )
807  infot = 9
808  CALL zptsvx( 'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
809  $ 2, rcond, r1, r2, w, rw, info )
810  CALL chkxer( 'ZPTSVX', infot, nout, lerr, ok )
811  infot = 11
812  CALL zptsvx( 'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 2, x,
813  $ 1, rcond, r1, r2, w, rw, info )
814  CALL chkxer( 'ZPTSVX', infot, nout, lerr, ok )
815 *
816  ELSE IF( lsamen( 2, c2, 'HE' ) ) THEN
817 *
818 * ZHESV
819 *
820  srnamt = 'ZHESV '
821  infot = 1
822  CALL zhesv( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
823  CALL chkxer( 'ZHESV ', infot, nout, lerr, ok )
824  infot = 2
825  CALL zhesv( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
826  CALL chkxer( 'ZHESV ', infot, nout, lerr, ok )
827  infot = 3
828  CALL zhesv( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
829  CALL chkxer( 'ZHESV ', infot, nout, lerr, ok )
830  infot = 5
831  CALL zhesv( 'U', 2, 0, a, 1, ip, b, 2, w, 1, info )
832  CALL chkxer( 'ZHESV ', infot, nout, lerr, ok )
833  infot = 8
834  CALL zhesv( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
835  CALL chkxer( 'ZHESV ', infot, nout, lerr, ok )
836 *
837 * ZHESVX
838 *
839  srnamt = 'ZHESVX'
840  infot = 1
841  CALL zhesvx( '/', 'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
842  $ rcond, r1, r2, w, 1, rw, info )
843  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
844  infot = 2
845  CALL zhesvx( 'N', '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
846  $ rcond, r1, r2, w, 1, rw, info )
847  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
848  infot = 3
849  CALL zhesvx( 'N', 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
850  $ rcond, r1, r2, w, 1, rw, info )
851  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
852  infot = 4
853  CALL zhesvx( 'N', 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
854  $ rcond, r1, r2, w, 1, rw, info )
855  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
856  infot = 6
857  CALL zhesvx( 'N', 'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
858  $ rcond, r1, r2, w, 4, rw, info )
859  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
860  infot = 8
861  CALL zhesvx( 'N', 'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
862  $ rcond, r1, r2, w, 4, rw, info )
863  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
864  infot = 11
865  CALL zhesvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
866  $ rcond, r1, r2, w, 4, rw, info )
867  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
868  infot = 13
869  CALL zhesvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
870  $ rcond, r1, r2, w, 4, rw, info )
871  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
872  infot = 18
873  CALL zhesvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
874  $ rcond, r1, r2, w, 3, rw, info )
875  CALL chkxer( 'ZHESVX', infot, nout, lerr, ok )
876 *
877 * ZHESVXX
878 *
879  n_err_bnds = 3
880  nparams = 1
881  srnamt = 'ZHESVXX'
882  infot = 1
883  CALL zhesvxx( '/', 'U', 0, 0, a, 1, af, 1, ip, eq, c, b, 1, x,
884  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
885  $ err_bnds_c, nparams, params, w, rw, info )
886  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
887  infot = 2
888  CALL zhesvxx( 'N', '/', 0, 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( 'ZHESVXX', infot, nout, lerr, ok )
892  infot = 3
893  CALL zhesvxx( 'N', 'U', -1, 0, a, 1, af, 1, ip, eq, c, b, 1, x,
894  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
895  $ err_bnds_c, nparams, params, w, rw, info )
896  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
897  infot = 4
898  CALL zhesvxx( 'N', 'U', 0, -1, a, 1, af, 1, ip, eq, c, b, 1, x,
899  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
900  $ err_bnds_c, nparams, params, w, rw, info )
901  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
902  infot = 6
903  CALL zhesvxx( 'N', 'U', 2, 0, a, 1, af, 2, ip, eq, c, b, 2, x,
904  $ 2, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
905  $ err_bnds_c, nparams, params, w, rw, info )
906  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
907  infot = 8
908  CALL zhesvxx( 'N', 'U', 2, 0, a, 2, af, 1, ip, eq, c, b, 2, x,
909  $ 2, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
910  $ err_bnds_c, nparams, params, w, rw, info )
911  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
912  infot = 9
913  eq = '/'
914  CALL zhesvxx( 'F', 'U', 0, 0, a, 1, af, 1, ip, eq, c, b, 1, x,
915  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
916  $ err_bnds_c, nparams, params, w, rw, info )
917  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
918  infot = 10
919  eq = 'Y'
920  CALL zhesvxx( 'F', 'U', 1, 0, a, 1, af, 1, ip, eq, c, b, 1, x,
921  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
922  $ err_bnds_c, nparams, params, w, rw, info )
923  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
924  infot = 12
925  CALL zhesvxx( 'N', 'U', 2, 0, a, 2, af, 2, ip, eq, c, b, 1, x,
926  $ 2, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
927  $ err_bnds_c, nparams, params, w, rw, info )
928  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
929  infot = 14
930  CALL zhesvxx( 'N', 'U', 2, 0, a, 2, af, 2, ip, eq, c, b, 2, x,
931  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
932  $ err_bnds_c, nparams, params, w, rw, info )
933  CALL chkxer( 'ZHESVXX', infot, nout, lerr, ok )
934 *
935  ELSE IF( lsamen( 2, c2, 'HR' ) ) THEN
936 *
937 * ZHESV_ROOK
938 *
939  srnamt = 'ZHESV_ROOK'
940  infot = 1
941  CALL zhesv_rook( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
942  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
943  infot = 2
944  CALL zhesv_rook( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
945  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
946  infot = 3
947  CALL zhesv_rook( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
948  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
949  infot = 8
950  CALL zhesv_rook( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
951  CALL chkxer( 'ZHESV_ROOK', infot, nout, lerr, ok )
952 *
953  ELSE IF( lsamen( 2, c2, 'HP' ) ) THEN
954 *
955 * ZHPSV
956 *
957  srnamt = 'ZHPSV '
958  infot = 1
959  CALL zhpsv( '/', 0, 0, a, ip, b, 1, info )
960  CALL chkxer( 'ZHPSV ', infot, nout, lerr, ok )
961  infot = 2
962  CALL zhpsv( 'U', -1, 0, a, ip, b, 1, info )
963  CALL chkxer( 'ZHPSV ', infot, nout, lerr, ok )
964  infot = 3
965  CALL zhpsv( 'U', 0, -1, a, ip, b, 1, info )
966  CALL chkxer( 'ZHPSV ', infot, nout, lerr, ok )
967  infot = 7
968  CALL zhpsv( 'U', 2, 0, a, ip, b, 1, info )
969  CALL chkxer( 'ZHPSV ', infot, nout, lerr, ok )
970 *
971 * ZHPSVX
972 *
973  srnamt = 'ZHPSVX'
974  infot = 1
975  CALL zhpsvx( '/', 'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
976  $ r2, w, rw, info )
977  CALL chkxer( 'ZHPSVX', infot, nout, lerr, ok )
978  infot = 2
979  CALL zhpsvx( 'N', '/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
980  $ r2, w, rw, info )
981  CALL chkxer( 'ZHPSVX', infot, nout, lerr, ok )
982  infot = 3
983  CALL zhpsvx( 'N', 'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
984  $ r2, w, rw, info )
985  CALL chkxer( 'ZHPSVX', infot, nout, lerr, ok )
986  infot = 4
987  CALL zhpsvx( 'N', 'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
988  $ r2, w, rw, info )
989  CALL chkxer( 'ZHPSVX', infot, nout, lerr, ok )
990  infot = 9
991  CALL zhpsvx( 'N', 'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
992  $ r2, w, rw, info )
993  CALL chkxer( 'ZHPSVX', infot, nout, lerr, ok )
994  infot = 11
995  CALL zhpsvx( 'N', 'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
996  $ r2, w, rw, info )
997  CALL chkxer( 'ZHPSVX', infot, nout, lerr, ok )
998 *
999  ELSE IF( lsamen( 2, c2, 'SY' ) ) THEN
1000 *
1001 * ZSYSV
1002 *
1003  srnamt = 'ZSYSV '
1004  infot = 1
1005  CALL zsysv( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
1006  CALL chkxer( 'ZSYSV ', infot, nout, lerr, ok )
1007  infot = 2
1008  CALL zsysv( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
1009  CALL chkxer( 'ZSYSV ', infot, nout, lerr, ok )
1010  infot = 3
1011  CALL zsysv( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
1012  CALL chkxer( 'ZSYSV ', infot, nout, lerr, ok )
1013  infot = 8
1014  CALL zsysv( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
1015  CALL chkxer( 'ZSYSV ', infot, nout, lerr, ok )
1016 *
1017 * ZSYSVX
1018 *
1019  srnamt = 'ZSYSVX'
1020  infot = 1
1021  CALL zsysvx( '/', 'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
1022  $ rcond, r1, r2, w, 1, rw, info )
1023  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1024  infot = 2
1025  CALL zsysvx( 'N', '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
1026  $ rcond, r1, r2, w, 1, rw, info )
1027  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1028  infot = 3
1029  CALL zsysvx( 'N', 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
1030  $ rcond, r1, r2, w, 1, rw, info )
1031  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1032  infot = 4
1033  CALL zsysvx( 'N', 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
1034  $ rcond, r1, r2, w, 1, rw, info )
1035  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1036  infot = 6
1037  CALL zsysvx( 'N', 'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
1038  $ rcond, r1, r2, w, 4, rw, info )
1039  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1040  infot = 8
1041  CALL zsysvx( 'N', 'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
1042  $ rcond, r1, r2, w, 4, rw, info )
1043  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1044  infot = 11
1045  CALL zsysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
1046  $ rcond, r1, r2, w, 4, rw, info )
1047  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1048  infot = 13
1049  CALL zsysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
1050  $ rcond, r1, r2, w, 4, rw, info )
1051  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1052  infot = 18
1053  CALL zsysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
1054  $ rcond, r1, r2, w, 3, rw, info )
1055  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1056 *
1057 * ZSYSVXX
1058 *
1059  n_err_bnds = 3
1060  nparams = 1
1061  srnamt = 'ZSYSVXX'
1062  infot = 1
1063  eq = 'N'
1064  CALL zsysvxx( '/', 'U', 0, 0, a, 1, af, 1, ip, eq, r, b, 1, x,
1065  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1066  $ err_bnds_c, nparams, params, w, rw, info )
1067  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1068  infot = 2
1069  CALL zsysvxx( 'N', '/', 0, 0, a, 1, af, 1, ip, eq, r, b, 1, x,
1070  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1071  $ err_bnds_c, nparams, params, w, rw, info )
1072  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1073  infot = 3
1074  CALL zsysvxx( 'N', 'U', -1, 0, a, 1, af, 1, ip, eq, r, b, 1, x,
1075  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1076  $ err_bnds_c, nparams, params, w, rw, info )
1077  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1078  infot = 4
1079  eq = '/'
1080  CALL zsysvxx( 'N', 'U', 0, -1, a, 1, af, 1, ip, eq, r, b, 1, x,
1081  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1082  $ err_bnds_c, nparams, params, w, rw, info )
1083  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1084  eq = 'Y'
1085  infot = 6
1086  CALL zsysvxx( 'N', 'U', 2, 0, a, 1, af, 2, ip, eq, r, b, 2, x,
1087  $ 2, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1088  $ err_bnds_c, nparams, params, w, rw, info )
1089  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1090  infot = 8
1091  CALL zsysvxx( 'N', 'U', 2, 0, a, 2, af, 1, ip, eq, r, b, 2, x,
1092  $ 2, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1093  $ err_bnds_c, nparams, params, w, rw, info )
1094  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1095  infot = 12
1096  eq = 'N'
1097  CALL zsysvxx( 'N', 'U', 2, 0, a, 2, af, 2, ip, eq, r, b, 1, x,
1098  $ 2, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1099  $ err_bnds_c, nparams, params, w, rw, info )
1100  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1101  infot = 14
1102  CALL zsysvxx( 'N', 'U', 2, 0, a, 2, af, 2, ip, eq, r, b, 2, x,
1103  $ 1, rcond, rpvgrw, berr, n_err_bnds, err_bnds_n,
1104  $ err_bnds_c, nparams, params, w, rw, info )
1105  CALL chkxer( 'ZSYSVXX', infot, nout, lerr, ok )
1106  CALL chkxer( 'ZSYSVX', infot, nout, lerr, ok )
1107 *
1108  ELSE IF( lsamen( 2, c2, 'SR' ) ) THEN
1109 *
1110 * ZSYSV_ROOK
1111 *
1112  srnamt = 'ZSYSV_ROOK'
1113  infot = 1
1114  CALL zsysv_rook( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
1115  CALL chkxer( 'ZSYSV_ROOK', infot, nout, lerr, ok )
1116  infot = 2
1117  CALL zsysv_rook( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
1118  CALL chkxer( 'ZSYSV_ROOK', infot, nout, lerr, ok )
1119  infot = 3
1120  CALL zsysv_rook( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
1121  CALL chkxer( 'ZSYSV_ROOK', infot, nout, lerr, ok )
1122  infot = 8
1123  CALL zsysv_rook( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
1124  CALL chkxer( 'ZSYSV_ROOK', infot, nout, lerr, ok )
1125 *
1126  ELSE IF( lsamen( 2, c2, 'SP' ) ) THEN
1127 *
1128 * ZSPSV
1129 *
1130  srnamt = 'ZSPSV '
1131  infot = 1
1132  CALL zspsv( '/', 0, 0, a, ip, b, 1, info )
1133  CALL chkxer( 'ZSPSV ', infot, nout, lerr, ok )
1134  infot = 2
1135  CALL zspsv( 'U', -1, 0, a, ip, b, 1, info )
1136  CALL chkxer( 'ZSPSV ', infot, nout, lerr, ok )
1137  infot = 3
1138  CALL zspsv( 'U', 0, -1, a, ip, b, 1, info )
1139  CALL chkxer( 'ZSPSV ', infot, nout, lerr, ok )
1140  infot = 7
1141  CALL zspsv( 'U', 2, 0, a, ip, b, 1, info )
1142  CALL chkxer( 'ZSPSV ', infot, nout, lerr, ok )
1143 *
1144 * ZSPSVX
1145 *
1146  srnamt = 'ZSPSVX'
1147  infot = 1
1148  CALL zspsvx( '/', 'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
1149  $ r2, w, rw, info )
1150  CALL chkxer( 'ZSPSVX', infot, nout, lerr, ok )
1151  infot = 2
1152  CALL zspsvx( 'N', '/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
1153  $ r2, w, rw, info )
1154  CALL chkxer( 'ZSPSVX', infot, nout, lerr, ok )
1155  infot = 3
1156  CALL zspsvx( 'N', 'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
1157  $ r2, w, rw, info )
1158  CALL chkxer( 'ZSPSVX', infot, nout, lerr, ok )
1159  infot = 4
1160  CALL zspsvx( 'N', 'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
1161  $ r2, w, rw, info )
1162  CALL chkxer( 'ZSPSVX', infot, nout, lerr, ok )
1163  infot = 9
1164  CALL zspsvx( 'N', 'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
1165  $ r2, w, rw, info )
1166  CALL chkxer( 'ZSPSVX', infot, nout, lerr, ok )
1167  infot = 11
1168  CALL zspsvx( 'N', 'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
1169  $ r2, w, rw, info )
1170  CALL chkxer( 'ZSPSVX', infot, nout, lerr, ok )
1171  END IF
1172 *
1173 * Print a summary line.
1174 *
1175  IF( ok ) THEN
1176  WRITE( nout, fmt = 9999 )path
1177  ELSE
1178  WRITE( nout, fmt = 9998 )path
1179  END IF
1180 *
1181  9999 FORMAT( 1x, a3, ' drivers passed the tests of the error exits' )
1182  9998 FORMAT( ' *** ', a3, ' drivers failed the tests of the error ',
1183  $ 'exits ***' )
1184 *
1185  RETURN
1186 *
1187 * End of ZERRVX
1188 *
1189  END