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