1 SUBROUTINE ZERRVX( 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 * ZERRVX tests the error exits for the COMPLEX*16 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 DOUBLE PRECISION RCOND
38 * ..
39 * .. Local Arrays ..
40 INTEGER IP( NMAX )
41 DOUBLE PRECISION C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
42 $ RF( NMAX ), RW( NMAX )
43 COMPLEX*16 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 CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV,
52 $ ZGTSVX, ZHESV, ZHESVX, ZHPSV, ZHPSVX, ZPBSV,
53 $ ZPBSVX, ZPOSV, ZPOSVX, ZPPSV, ZPPSVX, ZPTSV,
54 $ ZPTSVX, ZSPSV, ZSPSVX, ZSYSV, ZSYSVX
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 DBLE, DCMPLX
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 ) = DCMPLX( 1.D0 / DBLE( I+J ),
79 $ -1.D0 / DBLE( I+J ) )
80 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
81 $ -1.D0 / DBLE( I+J ) )
82 10 CONTINUE
83 B( J ) = 0.D0
84 R1( J ) = 0.D0
85 R2( J ) = 0.D0
86 W( J ) = 0.D0
87 X( J ) = 0.D0
88 C( J ) = 0.D0
89 R( J ) = 0.D0
90 IP( J ) = J
91 20 CONTINUE
92 EQ = ' '
93 OK = .TRUE.
94 *
95 IF( LSAMEN( 2, C2, 'GE' ) ) THEN
96 *
97 * ZGESV
98 *
99 SRNAMT = 'ZGESV '
100 INFOT = 1
101 CALL ZGESV( -1, 0, A, 1, IP, B, 1, INFO )
102 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
103 INFOT = 2
104 CALL ZGESV( 0, -1, A, 1, IP, B, 1, INFO )
105 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
106 INFOT = 4
107 CALL ZGESV( 2, 1, A, 1, IP, B, 2, INFO )
108 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
109 INFOT = 7
110 CALL ZGESV( 2, 1, A, 2, IP, B, 1, INFO )
111 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
112 *
113 * ZGESVX
114 *
115 SRNAMT = 'ZGESVX'
116 INFOT = 1
117 CALL ZGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
118 $ X, 1, RCOND, R1, R2, W, RW, INFO )
119 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
120 INFOT = 2
121 CALL ZGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
122 $ X, 1, RCOND, R1, R2, W, RW, INFO )
123 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
124 INFOT = 3
125 CALL ZGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
126 $ X, 1, RCOND, R1, R2, W, RW, INFO )
127 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
128 INFOT = 4
129 CALL ZGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
130 $ X, 1, RCOND, R1, R2, W, RW, INFO )
131 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
132 INFOT = 6
133 CALL ZGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
134 $ X, 2, RCOND, R1, R2, W, RW, INFO )
135 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
136 INFOT = 8
137 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
138 $ X, 2, RCOND, R1, R2, W, RW, INFO )
139 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
140 INFOT = 10
141 EQ = '/'
142 CALL ZGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
143 $ X, 1, RCOND, R1, R2, W, RW, INFO )
144 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
145 INFOT = 11
146 EQ = 'R'
147 CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
148 $ X, 1, RCOND, R1, R2, W, RW, INFO )
149 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
150 INFOT = 12
151 EQ = 'C'
152 CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
153 $ X, 1, RCOND, R1, R2, W, RW, INFO )
154 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
155 INFOT = 14
156 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
157 $ X, 2, RCOND, R1, R2, W, RW, INFO )
158 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
159 INFOT = 16
160 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
161 $ X, 1, RCOND, R1, R2, W, RW, INFO )
162 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
163 *
164 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
165 *
166 * ZGBSV
167 *
168 SRNAMT = 'ZGBSV '
169 INFOT = 1
170 CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
171 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
172 INFOT = 2
173 CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
174 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
175 INFOT = 3
176 CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
177 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
178 INFOT = 4
179 CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
180 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
181 INFOT = 6
182 CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
183 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
184 INFOT = 9
185 CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
186 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
187 *
188 * ZGBSVX
189 *
190 SRNAMT = 'ZGBSVX'
191 INFOT = 1
192 CALL ZGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
193 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
194 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
195 INFOT = 2
196 CALL ZGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
197 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
198 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
199 INFOT = 3
200 CALL ZGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
201 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
202 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
203 INFOT = 4
204 CALL ZGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
205 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
206 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
207 INFOT = 5
208 CALL ZGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
209 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
210 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
211 INFOT = 6
212 CALL ZGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
213 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
214 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
215 INFOT = 8
216 CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
217 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
218 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
219 INFOT = 10
220 CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
221 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
222 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
223 INFOT = 12
224 EQ = '/'
225 CALL ZGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
226 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
227 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
228 INFOT = 13
229 EQ = 'R'
230 CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
231 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
232 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
233 INFOT = 14
234 EQ = 'C'
235 CALL ZGBSVX( 'F', 'N', 1, 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( 'ZGBSVX', INFOT, NOUT, LERR, OK )
238 INFOT = 16
239 CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
240 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
241 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
242 INFOT = 18
243 CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
244 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
245 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
246 *
247 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
248 *
249 * ZGTSV
250 *
251 SRNAMT = 'ZGTSV '
252 INFOT = 1
253 CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
254 $ INFO )
255 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
256 INFOT = 2
257 CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
258 $ INFO )
259 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
260 INFOT = 7
261 CALL ZGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
262 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
263 *
264 * ZGTSVX
265 *
266 SRNAMT = 'ZGTSVX'
267 INFOT = 1
268 CALL ZGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
269 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
270 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
271 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
272 INFOT = 2
273 CALL ZGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
274 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
275 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
276 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
277 INFOT = 3
278 CALL ZGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
279 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
280 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
281 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
282 INFOT = 4
283 CALL ZGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
284 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
285 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
286 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
287 INFOT = 14
288 CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
289 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
290 $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
291 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
292 INFOT = 16
293 CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
294 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
295 $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
296 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
297 *
298 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
299 *
300 * ZPOSV
301 *
302 SRNAMT = 'ZPOSV '
303 INFOT = 1
304 CALL ZPOSV( '/', 0, 0, A, 1, B, 1, INFO )
305 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
306 INFOT = 2
307 CALL ZPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
308 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
309 INFOT = 3
310 CALL ZPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
311 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
312 INFOT = 5
313 CALL ZPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
314 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
315 INFOT = 7
316 CALL ZPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
317 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
318 *
319 * ZPOSVX
320 *
321 SRNAMT = 'ZPOSVX'
322 INFOT = 1
323 CALL ZPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
324 $ RCOND, R1, R2, W, RW, INFO )
325 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
326 INFOT = 2
327 CALL ZPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
328 $ RCOND, R1, R2, W, RW, INFO )
329 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
330 INFOT = 3
331 CALL ZPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
332 $ RCOND, R1, R2, W, RW, INFO )
333 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
334 INFOT = 4
335 CALL ZPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
336 $ RCOND, R1, R2, W, RW, INFO )
337 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
338 INFOT = 6
339 CALL ZPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
340 $ RCOND, R1, R2, W, RW, INFO )
341 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
342 INFOT = 8
343 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
344 $ RCOND, R1, R2, W, RW, INFO )
345 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
346 INFOT = 9
347 EQ = '/'
348 CALL ZPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
349 $ RCOND, R1, R2, W, RW, INFO )
350 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
351 INFOT = 10
352 EQ = 'Y'
353 CALL ZPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
354 $ RCOND, R1, R2, W, RW, INFO )
355 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
356 INFOT = 12
357 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
358 $ RCOND, R1, R2, W, RW, INFO )
359 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
360 INFOT = 14
361 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
362 $ RCOND, R1, R2, W, RW, INFO )
363 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
364 *
365 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
366 *
367 * ZPPSV
368 *
369 SRNAMT = 'ZPPSV '
370 INFOT = 1
371 CALL ZPPSV( '/', 0, 0, A, B, 1, INFO )
372 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
373 INFOT = 2
374 CALL ZPPSV( 'U', -1, 0, A, B, 1, INFO )
375 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
376 INFOT = 3
377 CALL ZPPSV( 'U', 0, -1, A, B, 1, INFO )
378 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
379 INFOT = 6
380 CALL ZPPSV( 'U', 2, 0, A, B, 1, INFO )
381 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
382 *
383 * ZPPSVX
384 *
385 SRNAMT = 'ZPPSVX'
386 INFOT = 1
387 CALL ZPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
388 $ R1, R2, W, RW, INFO )
389 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
390 INFOT = 2
391 CALL ZPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
392 $ R1, R2, W, RW, INFO )
393 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
394 INFOT = 3
395 CALL ZPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
396 $ R1, R2, W, RW, INFO )
397 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
398 INFOT = 4
399 CALL ZPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
400 $ R1, R2, W, RW, INFO )
401 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
402 INFOT = 7
403 EQ = '/'
404 CALL ZPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
405 $ R1, R2, W, RW, INFO )
406 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
407 INFOT = 8
408 EQ = 'Y'
409 CALL ZPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
410 $ R1, R2, W, RW, INFO )
411 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
412 INFOT = 10
413 CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
414 $ R1, R2, W, RW, INFO )
415 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
416 INFOT = 12
417 CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
418 $ R1, R2, W, RW, INFO )
419 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
420 *
421 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
422 *
423 * ZPBSV
424 *
425 SRNAMT = 'ZPBSV '
426 INFOT = 1
427 CALL ZPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
428 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
429 INFOT = 2
430 CALL ZPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
431 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
432 INFOT = 3
433 CALL ZPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
434 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
435 INFOT = 4
436 CALL ZPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
437 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
438 INFOT = 6
439 CALL ZPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
440 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
441 INFOT = 8
442 CALL ZPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
443 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
444 *
445 * ZPBSVX
446 *
447 SRNAMT = 'ZPBSVX'
448 INFOT = 1
449 CALL ZPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
450 $ RCOND, R1, R2, W, RW, INFO )
451 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
452 INFOT = 2
453 CALL ZPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
454 $ RCOND, R1, R2, W, RW, INFO )
455 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
456 INFOT = 3
457 CALL ZPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
458 $ 1, RCOND, R1, R2, W, RW, INFO )
459 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
460 INFOT = 4
461 CALL ZPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
462 $ 1, RCOND, R1, R2, W, RW, INFO )
463 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
464 INFOT = 5
465 CALL ZPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
466 $ 1, RCOND, R1, R2, W, RW, INFO )
467 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
468 INFOT = 7
469 CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
470 $ RCOND, R1, R2, W, RW, INFO )
471 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
472 INFOT = 9
473 CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
474 $ RCOND, R1, R2, W, RW, INFO )
475 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
476 INFOT = 10
477 EQ = '/'
478 CALL ZPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
479 $ RCOND, R1, R2, W, RW, INFO )
480 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
481 INFOT = 11
482 EQ = 'Y'
483 CALL ZPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
484 $ RCOND, R1, R2, W, RW, INFO )
485 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
486 INFOT = 13
487 CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
488 $ RCOND, R1, R2, W, RW, INFO )
489 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
490 INFOT = 15
491 CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
492 $ RCOND, R1, R2, W, RW, INFO )
493 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
494 *
495 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
496 *
497 * ZPTSV
498 *
499 SRNAMT = 'ZPTSV '
500 INFOT = 1
501 CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
502 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
503 INFOT = 2
504 CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
505 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
506 INFOT = 6
507 CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
508 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
509 *
510 * ZPTSVX
511 *
512 SRNAMT = 'ZPTSVX'
513 INFOT = 1
514 CALL ZPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
515 $ 1, RCOND, R1, R2, W, RW, INFO )
516 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
517 INFOT = 2
518 CALL ZPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
519 $ 1, RCOND, R1, R2, W, RW, INFO )
520 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
521 INFOT = 3
522 CALL ZPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
523 $ 1, RCOND, R1, R2, W, RW, INFO )
524 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
525 INFOT = 9
526 CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
527 $ 2, RCOND, R1, R2, W, RW, INFO )
528 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
529 INFOT = 11
530 CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
531 $ 1, RCOND, R1, R2, W, RW, INFO )
532 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
533 *
534 ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
535 *
536 * ZHESV
537 *
538 SRNAMT = 'ZHESV '
539 INFOT = 1
540 CALL ZHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
541 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
542 INFOT = 2
543 CALL ZHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
544 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
545 INFOT = 3
546 CALL ZHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
547 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
548 INFOT = 5
549 CALL ZHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
550 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
551 INFOT = 8
552 CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
553 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
554 *
555 * ZHESVX
556 *
557 SRNAMT = 'ZHESVX'
558 INFOT = 1
559 CALL ZHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
560 $ RCOND, R1, R2, W, 1, RW, INFO )
561 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
562 INFOT = 2
563 CALL ZHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
564 $ RCOND, R1, R2, W, 1, RW, INFO )
565 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
566 INFOT = 3
567 CALL ZHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
568 $ RCOND, R1, R2, W, 1, RW, INFO )
569 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
570 INFOT = 4
571 CALL ZHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
572 $ RCOND, R1, R2, W, 1, RW, INFO )
573 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
574 INFOT = 6
575 CALL ZHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
576 $ RCOND, R1, R2, W, 4, RW, INFO )
577 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
578 INFOT = 8
579 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
580 $ RCOND, R1, R2, W, 4, RW, INFO )
581 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
582 INFOT = 11
583 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
584 $ RCOND, R1, R2, W, 4, RW, INFO )
585 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
586 INFOT = 13
587 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
588 $ RCOND, R1, R2, W, 4, RW, INFO )
589 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
590 INFOT = 18
591 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
592 $ RCOND, R1, R2, W, 3, RW, INFO )
593 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
594 *
595 ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
596 *
597 * ZHPSV
598 *
599 SRNAMT = 'ZHPSV '
600 INFOT = 1
601 CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO )
602 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
603 INFOT = 2
604 CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
605 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
606 INFOT = 3
607 CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
608 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
609 INFOT = 7
610 CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
611 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
612 *
613 * ZHPSVX
614 *
615 SRNAMT = 'ZHPSVX'
616 INFOT = 1
617 CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
618 $ R2, W, RW, INFO )
619 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
620 INFOT = 2
621 CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
622 $ R2, W, RW, INFO )
623 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
624 INFOT = 3
625 CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
626 $ R2, W, RW, INFO )
627 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
628 INFOT = 4
629 CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
630 $ R2, W, RW, INFO )
631 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
632 INFOT = 9
633 CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
634 $ R2, W, RW, INFO )
635 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
636 INFOT = 11
637 CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
638 $ R2, W, RW, INFO )
639 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
640 *
641 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
642 *
643 * ZSYSV
644 *
645 SRNAMT = 'ZSYSV '
646 INFOT = 1
647 CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
648 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
649 INFOT = 2
650 CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
651 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
652 INFOT = 3
653 CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
654 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
655 INFOT = 8
656 CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
657 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
658 *
659 * ZSYSVX
660 *
661 SRNAMT = 'ZSYSVX'
662 INFOT = 1
663 CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
664 $ RCOND, R1, R2, W, 1, RW, INFO )
665 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
666 INFOT = 2
667 CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
668 $ RCOND, R1, R2, W, 1, RW, INFO )
669 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
670 INFOT = 3
671 CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
672 $ RCOND, R1, R2, W, 1, RW, INFO )
673 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
674 INFOT = 4
675 CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
676 $ RCOND, R1, R2, W, 1, RW, INFO )
677 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
678 INFOT = 6
679 CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
680 $ RCOND, R1, R2, W, 4, RW, INFO )
681 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
682 INFOT = 8
683 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
684 $ RCOND, R1, R2, W, 4, RW, INFO )
685 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
686 INFOT = 11
687 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
688 $ RCOND, R1, R2, W, 4, RW, INFO )
689 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
690 INFOT = 13
691 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
692 $ RCOND, R1, R2, W, 4, RW, INFO )
693 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
694 INFOT = 18
695 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
696 $ RCOND, R1, R2, W, 3, RW, INFO )
697 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
698 *
699 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
700 *
701 * ZSPSV
702 *
703 SRNAMT = 'ZSPSV '
704 INFOT = 1
705 CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO )
706 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
707 INFOT = 2
708 CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
709 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
710 INFOT = 3
711 CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
712 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
713 INFOT = 7
714 CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
715 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
716 *
717 * ZSPSVX
718 *
719 SRNAMT = 'ZSPSVX'
720 INFOT = 1
721 CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
722 $ R2, W, RW, INFO )
723 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
724 INFOT = 2
725 CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
726 $ R2, W, RW, INFO )
727 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
728 INFOT = 3
729 CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
730 $ R2, W, RW, INFO )
731 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
732 INFOT = 4
733 CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
734 $ R2, W, RW, INFO )
735 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
736 INFOT = 9
737 CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
738 $ R2, W, RW, INFO )
739 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
740 INFOT = 11
741 CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
742 $ R2, W, RW, INFO )
743 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
744 END IF
745 *
746 * Print a summary line.
747 *
748 IF( OK ) THEN
749 WRITE( NOUT, FMT = 9999 )PATH
750 ELSE
751 WRITE( NOUT, FMT = 9998 )PATH
752 END IF
753 *
754 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
755 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
756 $ 'exits ***' )
757 *
758 RETURN
759 *
760 * End of ZERRVX
761 *
762 END
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 * ZERRVX tests the error exits for the COMPLEX*16 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 DOUBLE PRECISION RCOND
38 * ..
39 * .. Local Arrays ..
40 INTEGER IP( NMAX )
41 DOUBLE PRECISION C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
42 $ RF( NMAX ), RW( NMAX )
43 COMPLEX*16 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 CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV,
52 $ ZGTSVX, ZHESV, ZHESVX, ZHPSV, ZHPSVX, ZPBSV,
53 $ ZPBSVX, ZPOSV, ZPOSVX, ZPPSV, ZPPSVX, ZPTSV,
54 $ ZPTSVX, ZSPSV, ZSPSVX, ZSYSV, ZSYSVX
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 DBLE, DCMPLX
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 ) = DCMPLX( 1.D0 / DBLE( I+J ),
79 $ -1.D0 / DBLE( I+J ) )
80 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
81 $ -1.D0 / DBLE( I+J ) )
82 10 CONTINUE
83 B( J ) = 0.D0
84 R1( J ) = 0.D0
85 R2( J ) = 0.D0
86 W( J ) = 0.D0
87 X( J ) = 0.D0
88 C( J ) = 0.D0
89 R( J ) = 0.D0
90 IP( J ) = J
91 20 CONTINUE
92 EQ = ' '
93 OK = .TRUE.
94 *
95 IF( LSAMEN( 2, C2, 'GE' ) ) THEN
96 *
97 * ZGESV
98 *
99 SRNAMT = 'ZGESV '
100 INFOT = 1
101 CALL ZGESV( -1, 0, A, 1, IP, B, 1, INFO )
102 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
103 INFOT = 2
104 CALL ZGESV( 0, -1, A, 1, IP, B, 1, INFO )
105 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
106 INFOT = 4
107 CALL ZGESV( 2, 1, A, 1, IP, B, 2, INFO )
108 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
109 INFOT = 7
110 CALL ZGESV( 2, 1, A, 2, IP, B, 1, INFO )
111 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
112 *
113 * ZGESVX
114 *
115 SRNAMT = 'ZGESVX'
116 INFOT = 1
117 CALL ZGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
118 $ X, 1, RCOND, R1, R2, W, RW, INFO )
119 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
120 INFOT = 2
121 CALL ZGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
122 $ X, 1, RCOND, R1, R2, W, RW, INFO )
123 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
124 INFOT = 3
125 CALL ZGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
126 $ X, 1, RCOND, R1, R2, W, RW, INFO )
127 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
128 INFOT = 4
129 CALL ZGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
130 $ X, 1, RCOND, R1, R2, W, RW, INFO )
131 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
132 INFOT = 6
133 CALL ZGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
134 $ X, 2, RCOND, R1, R2, W, RW, INFO )
135 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
136 INFOT = 8
137 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
138 $ X, 2, RCOND, R1, R2, W, RW, INFO )
139 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
140 INFOT = 10
141 EQ = '/'
142 CALL ZGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
143 $ X, 1, RCOND, R1, R2, W, RW, INFO )
144 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
145 INFOT = 11
146 EQ = 'R'
147 CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
148 $ X, 1, RCOND, R1, R2, W, RW, INFO )
149 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
150 INFOT = 12
151 EQ = 'C'
152 CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
153 $ X, 1, RCOND, R1, R2, W, RW, INFO )
154 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
155 INFOT = 14
156 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
157 $ X, 2, RCOND, R1, R2, W, RW, INFO )
158 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
159 INFOT = 16
160 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
161 $ X, 1, RCOND, R1, R2, W, RW, INFO )
162 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
163 *
164 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
165 *
166 * ZGBSV
167 *
168 SRNAMT = 'ZGBSV '
169 INFOT = 1
170 CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
171 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
172 INFOT = 2
173 CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
174 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
175 INFOT = 3
176 CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
177 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
178 INFOT = 4
179 CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
180 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
181 INFOT = 6
182 CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
183 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
184 INFOT = 9
185 CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
186 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
187 *
188 * ZGBSVX
189 *
190 SRNAMT = 'ZGBSVX'
191 INFOT = 1
192 CALL ZGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
193 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
194 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
195 INFOT = 2
196 CALL ZGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
197 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
198 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
199 INFOT = 3
200 CALL ZGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
201 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
202 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
203 INFOT = 4
204 CALL ZGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
205 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
206 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
207 INFOT = 5
208 CALL ZGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
209 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
210 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
211 INFOT = 6
212 CALL ZGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
213 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
214 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
215 INFOT = 8
216 CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
217 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
218 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
219 INFOT = 10
220 CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
221 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
222 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
223 INFOT = 12
224 EQ = '/'
225 CALL ZGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
226 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
227 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
228 INFOT = 13
229 EQ = 'R'
230 CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
231 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
232 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
233 INFOT = 14
234 EQ = 'C'
235 CALL ZGBSVX( 'F', 'N', 1, 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( 'ZGBSVX', INFOT, NOUT, LERR, OK )
238 INFOT = 16
239 CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
240 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
241 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
242 INFOT = 18
243 CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
244 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
245 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
246 *
247 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
248 *
249 * ZGTSV
250 *
251 SRNAMT = 'ZGTSV '
252 INFOT = 1
253 CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
254 $ INFO )
255 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
256 INFOT = 2
257 CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
258 $ INFO )
259 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
260 INFOT = 7
261 CALL ZGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
262 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
263 *
264 * ZGTSVX
265 *
266 SRNAMT = 'ZGTSVX'
267 INFOT = 1
268 CALL ZGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
269 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
270 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
271 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
272 INFOT = 2
273 CALL ZGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
274 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
275 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
276 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
277 INFOT = 3
278 CALL ZGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
279 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
280 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
281 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
282 INFOT = 4
283 CALL ZGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
284 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
285 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
286 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
287 INFOT = 14
288 CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
289 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
290 $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
291 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
292 INFOT = 16
293 CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
294 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
295 $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
296 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
297 *
298 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
299 *
300 * ZPOSV
301 *
302 SRNAMT = 'ZPOSV '
303 INFOT = 1
304 CALL ZPOSV( '/', 0, 0, A, 1, B, 1, INFO )
305 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
306 INFOT = 2
307 CALL ZPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
308 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
309 INFOT = 3
310 CALL ZPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
311 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
312 INFOT = 5
313 CALL ZPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
314 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
315 INFOT = 7
316 CALL ZPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
317 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
318 *
319 * ZPOSVX
320 *
321 SRNAMT = 'ZPOSVX'
322 INFOT = 1
323 CALL ZPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
324 $ RCOND, R1, R2, W, RW, INFO )
325 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
326 INFOT = 2
327 CALL ZPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
328 $ RCOND, R1, R2, W, RW, INFO )
329 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
330 INFOT = 3
331 CALL ZPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
332 $ RCOND, R1, R2, W, RW, INFO )
333 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
334 INFOT = 4
335 CALL ZPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
336 $ RCOND, R1, R2, W, RW, INFO )
337 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
338 INFOT = 6
339 CALL ZPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
340 $ RCOND, R1, R2, W, RW, INFO )
341 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
342 INFOT = 8
343 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
344 $ RCOND, R1, R2, W, RW, INFO )
345 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
346 INFOT = 9
347 EQ = '/'
348 CALL ZPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
349 $ RCOND, R1, R2, W, RW, INFO )
350 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
351 INFOT = 10
352 EQ = 'Y'
353 CALL ZPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
354 $ RCOND, R1, R2, W, RW, INFO )
355 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
356 INFOT = 12
357 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
358 $ RCOND, R1, R2, W, RW, INFO )
359 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
360 INFOT = 14
361 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
362 $ RCOND, R1, R2, W, RW, INFO )
363 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
364 *
365 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
366 *
367 * ZPPSV
368 *
369 SRNAMT = 'ZPPSV '
370 INFOT = 1
371 CALL ZPPSV( '/', 0, 0, A, B, 1, INFO )
372 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
373 INFOT = 2
374 CALL ZPPSV( 'U', -1, 0, A, B, 1, INFO )
375 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
376 INFOT = 3
377 CALL ZPPSV( 'U', 0, -1, A, B, 1, INFO )
378 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
379 INFOT = 6
380 CALL ZPPSV( 'U', 2, 0, A, B, 1, INFO )
381 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
382 *
383 * ZPPSVX
384 *
385 SRNAMT = 'ZPPSVX'
386 INFOT = 1
387 CALL ZPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
388 $ R1, R2, W, RW, INFO )
389 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
390 INFOT = 2
391 CALL ZPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
392 $ R1, R2, W, RW, INFO )
393 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
394 INFOT = 3
395 CALL ZPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
396 $ R1, R2, W, RW, INFO )
397 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
398 INFOT = 4
399 CALL ZPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
400 $ R1, R2, W, RW, INFO )
401 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
402 INFOT = 7
403 EQ = '/'
404 CALL ZPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
405 $ R1, R2, W, RW, INFO )
406 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
407 INFOT = 8
408 EQ = 'Y'
409 CALL ZPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
410 $ R1, R2, W, RW, INFO )
411 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
412 INFOT = 10
413 CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
414 $ R1, R2, W, RW, INFO )
415 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
416 INFOT = 12
417 CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
418 $ R1, R2, W, RW, INFO )
419 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
420 *
421 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
422 *
423 * ZPBSV
424 *
425 SRNAMT = 'ZPBSV '
426 INFOT = 1
427 CALL ZPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
428 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
429 INFOT = 2
430 CALL ZPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
431 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
432 INFOT = 3
433 CALL ZPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
434 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
435 INFOT = 4
436 CALL ZPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
437 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
438 INFOT = 6
439 CALL ZPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
440 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
441 INFOT = 8
442 CALL ZPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
443 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
444 *
445 * ZPBSVX
446 *
447 SRNAMT = 'ZPBSVX'
448 INFOT = 1
449 CALL ZPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
450 $ RCOND, R1, R2, W, RW, INFO )
451 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
452 INFOT = 2
453 CALL ZPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
454 $ RCOND, R1, R2, W, RW, INFO )
455 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
456 INFOT = 3
457 CALL ZPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
458 $ 1, RCOND, R1, R2, W, RW, INFO )
459 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
460 INFOT = 4
461 CALL ZPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
462 $ 1, RCOND, R1, R2, W, RW, INFO )
463 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
464 INFOT = 5
465 CALL ZPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
466 $ 1, RCOND, R1, R2, W, RW, INFO )
467 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
468 INFOT = 7
469 CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
470 $ RCOND, R1, R2, W, RW, INFO )
471 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
472 INFOT = 9
473 CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
474 $ RCOND, R1, R2, W, RW, INFO )
475 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
476 INFOT = 10
477 EQ = '/'
478 CALL ZPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
479 $ RCOND, R1, R2, W, RW, INFO )
480 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
481 INFOT = 11
482 EQ = 'Y'
483 CALL ZPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
484 $ RCOND, R1, R2, W, RW, INFO )
485 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
486 INFOT = 13
487 CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
488 $ RCOND, R1, R2, W, RW, INFO )
489 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
490 INFOT = 15
491 CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
492 $ RCOND, R1, R2, W, RW, INFO )
493 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
494 *
495 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
496 *
497 * ZPTSV
498 *
499 SRNAMT = 'ZPTSV '
500 INFOT = 1
501 CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
502 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
503 INFOT = 2
504 CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
505 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
506 INFOT = 6
507 CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
508 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
509 *
510 * ZPTSVX
511 *
512 SRNAMT = 'ZPTSVX'
513 INFOT = 1
514 CALL ZPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
515 $ 1, RCOND, R1, R2, W, RW, INFO )
516 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
517 INFOT = 2
518 CALL ZPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
519 $ 1, RCOND, R1, R2, W, RW, INFO )
520 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
521 INFOT = 3
522 CALL ZPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
523 $ 1, RCOND, R1, R2, W, RW, INFO )
524 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
525 INFOT = 9
526 CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
527 $ 2, RCOND, R1, R2, W, RW, INFO )
528 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
529 INFOT = 11
530 CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
531 $ 1, RCOND, R1, R2, W, RW, INFO )
532 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
533 *
534 ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
535 *
536 * ZHESV
537 *
538 SRNAMT = 'ZHESV '
539 INFOT = 1
540 CALL ZHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
541 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
542 INFOT = 2
543 CALL ZHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
544 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
545 INFOT = 3
546 CALL ZHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
547 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
548 INFOT = 5
549 CALL ZHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
550 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
551 INFOT = 8
552 CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
553 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
554 *
555 * ZHESVX
556 *
557 SRNAMT = 'ZHESVX'
558 INFOT = 1
559 CALL ZHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
560 $ RCOND, R1, R2, W, 1, RW, INFO )
561 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
562 INFOT = 2
563 CALL ZHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
564 $ RCOND, R1, R2, W, 1, RW, INFO )
565 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
566 INFOT = 3
567 CALL ZHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
568 $ RCOND, R1, R2, W, 1, RW, INFO )
569 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
570 INFOT = 4
571 CALL ZHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
572 $ RCOND, R1, R2, W, 1, RW, INFO )
573 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
574 INFOT = 6
575 CALL ZHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
576 $ RCOND, R1, R2, W, 4, RW, INFO )
577 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
578 INFOT = 8
579 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
580 $ RCOND, R1, R2, W, 4, RW, INFO )
581 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
582 INFOT = 11
583 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
584 $ RCOND, R1, R2, W, 4, RW, INFO )
585 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
586 INFOT = 13
587 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
588 $ RCOND, R1, R2, W, 4, RW, INFO )
589 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
590 INFOT = 18
591 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
592 $ RCOND, R1, R2, W, 3, RW, INFO )
593 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
594 *
595 ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
596 *
597 * ZHPSV
598 *
599 SRNAMT = 'ZHPSV '
600 INFOT = 1
601 CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO )
602 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
603 INFOT = 2
604 CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
605 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
606 INFOT = 3
607 CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
608 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
609 INFOT = 7
610 CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
611 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
612 *
613 * ZHPSVX
614 *
615 SRNAMT = 'ZHPSVX'
616 INFOT = 1
617 CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
618 $ R2, W, RW, INFO )
619 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
620 INFOT = 2
621 CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
622 $ R2, W, RW, INFO )
623 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
624 INFOT = 3
625 CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
626 $ R2, W, RW, INFO )
627 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
628 INFOT = 4
629 CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
630 $ R2, W, RW, INFO )
631 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
632 INFOT = 9
633 CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
634 $ R2, W, RW, INFO )
635 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
636 INFOT = 11
637 CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
638 $ R2, W, RW, INFO )
639 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
640 *
641 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
642 *
643 * ZSYSV
644 *
645 SRNAMT = 'ZSYSV '
646 INFOT = 1
647 CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
648 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
649 INFOT = 2
650 CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
651 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
652 INFOT = 3
653 CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
654 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
655 INFOT = 8
656 CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
657 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
658 *
659 * ZSYSVX
660 *
661 SRNAMT = 'ZSYSVX'
662 INFOT = 1
663 CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
664 $ RCOND, R1, R2, W, 1, RW, INFO )
665 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
666 INFOT = 2
667 CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
668 $ RCOND, R1, R2, W, 1, RW, INFO )
669 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
670 INFOT = 3
671 CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
672 $ RCOND, R1, R2, W, 1, RW, INFO )
673 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
674 INFOT = 4
675 CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
676 $ RCOND, R1, R2, W, 1, RW, INFO )
677 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
678 INFOT = 6
679 CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
680 $ RCOND, R1, R2, W, 4, RW, INFO )
681 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
682 INFOT = 8
683 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
684 $ RCOND, R1, R2, W, 4, RW, INFO )
685 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
686 INFOT = 11
687 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
688 $ RCOND, R1, R2, W, 4, RW, INFO )
689 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
690 INFOT = 13
691 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
692 $ RCOND, R1, R2, W, 4, RW, INFO )
693 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
694 INFOT = 18
695 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
696 $ RCOND, R1, R2, W, 3, RW, INFO )
697 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
698 *
699 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
700 *
701 * ZSPSV
702 *
703 SRNAMT = 'ZSPSV '
704 INFOT = 1
705 CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO )
706 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
707 INFOT = 2
708 CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
709 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
710 INFOT = 3
711 CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
712 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
713 INFOT = 7
714 CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
715 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
716 *
717 * ZSPSVX
718 *
719 SRNAMT = 'ZSPSVX'
720 INFOT = 1
721 CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
722 $ R2, W, RW, INFO )
723 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
724 INFOT = 2
725 CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
726 $ R2, W, RW, INFO )
727 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
728 INFOT = 3
729 CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
730 $ R2, W, RW, INFO )
731 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
732 INFOT = 4
733 CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
734 $ R2, W, RW, INFO )
735 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
736 INFOT = 9
737 CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
738 $ R2, W, RW, INFO )
739 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
740 INFOT = 11
741 CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
742 $ R2, W, RW, INFO )
743 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
744 END IF
745 *
746 * Print a summary line.
747 *
748 IF( OK ) THEN
749 WRITE( NOUT, FMT = 9999 )PATH
750 ELSE
751 WRITE( NOUT, FMT = 9998 )PATH
752 END IF
753 *
754 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
755 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
756 $ 'exits ***' )
757 *
758 RETURN
759 *
760 * End of ZERRVX
761 *
762 END