1 SUBROUTINE SERRPO( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * SERRPO tests the error exits for the REAL routines
16 * for symmetric positive definite matrices.
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*2 C2
35 INTEGER I, INFO, J
36 REAL ANRM, RCOND
37 * ..
38 * .. Local Arrays ..
39 INTEGER IW( NMAX )
40 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
41 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX )
42 * ..
43 * .. External Functions ..
44 LOGICAL LSAMEN
45 EXTERNAL LSAMEN
46 * ..
47 * .. External Subroutines ..
48 EXTERNAL ALAESM, CHKXER, SPBCON, SPBEQU, SPBRFS, SPBTF2,
49 $ SPBTRF, SPBTRS, SPOCON, SPOEQU, SPORFS, SPOTF2,
50 $ SPOTRF, SPOTRI, SPOTRS, SPPCON, SPPEQU, SPPRFS,
51 $ SPPTRF, SPPTRI, SPPTRS
52 * ..
53 * .. Scalars in Common ..
54 LOGICAL LERR, OK
55 CHARACTER*32 SRNAMT
56 INTEGER INFOT, NOUT
57 * ..
58 * .. Common blocks ..
59 COMMON / INFOC / INFOT, NOUT, OK, LERR
60 COMMON / SRNAMC / SRNAMT
61 * ..
62 * .. Intrinsic Functions ..
63 INTRINSIC REAL
64 * ..
65 * .. Executable Statements ..
66 *
67 NOUT = NUNIT
68 WRITE( NOUT, FMT = * )
69 C2 = PATH( 2: 3 )
70 *
71 * Set the variables to innocuous values.
72 *
73 DO 20 J = 1, NMAX
74 DO 10 I = 1, NMAX
75 A( I, J ) = 1. / REAL( I+J )
76 AF( I, J ) = 1. / REAL( I+J )
77 10 CONTINUE
78 B( J ) = 0.
79 R1( J ) = 0.
80 R2( J ) = 0.
81 W( J ) = 0.
82 X( J ) = 0.
83 IW( J ) = J
84 20 CONTINUE
85 OK = .TRUE.
86 *
87 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
88 *
89 * Test error exits of the routines that use the Cholesky
90 * decomposition of a symmetric positive definite matrix.
91 *
92 * SPOTRF
93 *
94 SRNAMT = 'SPOTRF'
95 INFOT = 1
96 CALL SPOTRF( '/', 0, A, 1, INFO )
97 CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
98 INFOT = 2
99 CALL SPOTRF( 'U', -1, A, 1, INFO )
100 CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
101 INFOT = 4
102 CALL SPOTRF( 'U', 2, A, 1, INFO )
103 CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
104 *
105 * SPOTF2
106 *
107 SRNAMT = 'SPOTF2'
108 INFOT = 1
109 CALL SPOTF2( '/', 0, A, 1, INFO )
110 CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
111 INFOT = 2
112 CALL SPOTF2( 'U', -1, A, 1, INFO )
113 CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
114 INFOT = 4
115 CALL SPOTF2( 'U', 2, A, 1, INFO )
116 CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
117 *
118 * SPOTRI
119 *
120 SRNAMT = 'SPOTRI'
121 INFOT = 1
122 CALL SPOTRI( '/', 0, A, 1, INFO )
123 CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
124 INFOT = 2
125 CALL SPOTRI( 'U', -1, A, 1, INFO )
126 CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
127 INFOT = 4
128 CALL SPOTRI( 'U', 2, A, 1, INFO )
129 CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
130 *
131 * SPOTRS
132 *
133 SRNAMT = 'SPOTRS'
134 INFOT = 1
135 CALL SPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
136 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
137 INFOT = 2
138 CALL SPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
139 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
140 INFOT = 3
141 CALL SPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
142 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
143 INFOT = 5
144 CALL SPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
145 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
146 INFOT = 7
147 CALL SPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
148 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
149 *
150 * SPORFS
151 *
152 SRNAMT = 'SPORFS'
153 INFOT = 1
154 CALL SPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW,
155 $ INFO )
156 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
157 INFOT = 2
158 CALL SPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
159 $ IW, INFO )
160 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
161 INFOT = 3
162 CALL SPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
163 $ IW, INFO )
164 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
165 INFOT = 5
166 CALL SPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW,
167 $ INFO )
168 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
169 INFOT = 7
170 CALL SPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW,
171 $ INFO )
172 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
173 INFOT = 9
174 CALL SPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW,
175 $ INFO )
176 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
177 INFOT = 11
178 CALL SPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW,
179 $ INFO )
180 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
181 *
182 * SPOCON
183 *
184 SRNAMT = 'SPOCON'
185 INFOT = 1
186 CALL SPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
187 CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
188 INFOT = 2
189 CALL SPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO )
190 CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
191 INFOT = 4
192 CALL SPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO )
193 CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
194 *
195 * SPOEQU
196 *
197 SRNAMT = 'SPOEQU'
198 INFOT = 1
199 CALL SPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
200 CALL CHKXER( 'SPOEQU', INFOT, NOUT, LERR, OK )
201 INFOT = 3
202 CALL SPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
203 CALL CHKXER( 'SPOEQU', INFOT, NOUT, LERR, OK )
204 *
205 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
206 *
207 * Test error exits of the routines that use the Cholesky
208 * decomposition of a symmetric positive definite packed matrix.
209 *
210 * SPPTRF
211 *
212 SRNAMT = 'SPPTRF'
213 INFOT = 1
214 CALL SPPTRF( '/', 0, A, INFO )
215 CALL CHKXER( 'SPPTRF', INFOT, NOUT, LERR, OK )
216 INFOT = 2
217 CALL SPPTRF( 'U', -1, A, INFO )
218 CALL CHKXER( 'SPPTRF', INFOT, NOUT, LERR, OK )
219 *
220 * SPPTRI
221 *
222 SRNAMT = 'SPPTRI'
223 INFOT = 1
224 CALL SPPTRI( '/', 0, A, INFO )
225 CALL CHKXER( 'SPPTRI', INFOT, NOUT, LERR, OK )
226 INFOT = 2
227 CALL SPPTRI( 'U', -1, A, INFO )
228 CALL CHKXER( 'SPPTRI', INFOT, NOUT, LERR, OK )
229 *
230 * SPPTRS
231 *
232 SRNAMT = 'SPPTRS'
233 INFOT = 1
234 CALL SPPTRS( '/', 0, 0, A, B, 1, INFO )
235 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
236 INFOT = 2
237 CALL SPPTRS( 'U', -1, 0, A, B, 1, INFO )
238 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
239 INFOT = 3
240 CALL SPPTRS( 'U', 0, -1, A, B, 1, INFO )
241 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
242 INFOT = 6
243 CALL SPPTRS( 'U', 2, 1, A, B, 1, INFO )
244 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
245 *
246 * SPPRFS
247 *
248 SRNAMT = 'SPPRFS'
249 INFOT = 1
250 CALL SPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
251 $ INFO )
252 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
253 INFOT = 2
254 CALL SPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
255 $ INFO )
256 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
257 INFOT = 3
258 CALL SPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW,
259 $ INFO )
260 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
261 INFOT = 7
262 CALL SPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW,
263 $ INFO )
264 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
265 INFOT = 9
266 CALL SPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW,
267 $ INFO )
268 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
269 *
270 * SPPCON
271 *
272 SRNAMT = 'SPPCON'
273 INFOT = 1
274 CALL SPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO )
275 CALL CHKXER( 'SPPCON', INFOT, NOUT, LERR, OK )
276 INFOT = 2
277 CALL SPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO )
278 CALL CHKXER( 'SPPCON', INFOT, NOUT, LERR, OK )
279 *
280 * SPPEQU
281 *
282 SRNAMT = 'SPPEQU'
283 INFOT = 1
284 CALL SPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
285 CALL CHKXER( 'SPPEQU', INFOT, NOUT, LERR, OK )
286 INFOT = 2
287 CALL SPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
288 CALL CHKXER( 'SPPEQU', INFOT, NOUT, LERR, OK )
289 *
290 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
291 *
292 * Test error exits of the routines that use the Cholesky
293 * decomposition of a symmetric positive definite band matrix.
294 *
295 * SPBTRF
296 *
297 SRNAMT = 'SPBTRF'
298 INFOT = 1
299 CALL SPBTRF( '/', 0, 0, A, 1, INFO )
300 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
301 INFOT = 2
302 CALL SPBTRF( 'U', -1, 0, A, 1, INFO )
303 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
304 INFOT = 3
305 CALL SPBTRF( 'U', 1, -1, A, 1, INFO )
306 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
307 INFOT = 5
308 CALL SPBTRF( 'U', 2, 1, A, 1, INFO )
309 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
310 *
311 * SPBTF2
312 *
313 SRNAMT = 'SPBTF2'
314 INFOT = 1
315 CALL SPBTF2( '/', 0, 0, A, 1, INFO )
316 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
317 INFOT = 2
318 CALL SPBTF2( 'U', -1, 0, A, 1, INFO )
319 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
320 INFOT = 3
321 CALL SPBTF2( 'U', 1, -1, A, 1, INFO )
322 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
323 INFOT = 5
324 CALL SPBTF2( 'U', 2, 1, A, 1, INFO )
325 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
326 *
327 * SPBTRS
328 *
329 SRNAMT = 'SPBTRS'
330 INFOT = 1
331 CALL SPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
332 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
333 INFOT = 2
334 CALL SPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
335 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
336 INFOT = 3
337 CALL SPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
338 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
339 INFOT = 4
340 CALL SPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
341 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
342 INFOT = 6
343 CALL SPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
344 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
345 INFOT = 8
346 CALL SPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
347 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
348 *
349 * SPBRFS
350 *
351 SRNAMT = 'SPBRFS'
352 INFOT = 1
353 CALL SPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
354 $ IW, INFO )
355 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
356 INFOT = 2
357 CALL SPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
358 $ IW, INFO )
359 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
360 INFOT = 3
361 CALL SPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
362 $ IW, INFO )
363 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
364 INFOT = 4
365 CALL SPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
366 $ IW, INFO )
367 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
368 INFOT = 6
369 CALL SPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
370 $ IW, INFO )
371 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
372 INFOT = 8
373 CALL SPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
374 $ IW, INFO )
375 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
376 INFOT = 10
377 CALL SPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
378 $ IW, INFO )
379 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
380 INFOT = 12
381 CALL SPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
382 $ IW, INFO )
383 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
384 *
385 * SPBCON
386 *
387 SRNAMT = 'SPBCON'
388 INFOT = 1
389 CALL SPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO )
390 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
391 INFOT = 2
392 CALL SPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO )
393 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
394 INFOT = 3
395 CALL SPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO )
396 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
397 INFOT = 5
398 CALL SPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO )
399 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
400 *
401 * SPBEQU
402 *
403 SRNAMT = 'SPBEQU'
404 INFOT = 1
405 CALL SPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
406 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
407 INFOT = 2
408 CALL SPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
409 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
410 INFOT = 3
411 CALL SPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
412 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
413 INFOT = 5
414 CALL SPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
415 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
416 END IF
417 *
418 * Print a summary line.
419 *
420 CALL ALAESM( PATH, OK, NOUT )
421 *
422 RETURN
423 *
424 * End of SERRPO
425 *
426 END
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * SERRPO tests the error exits for the REAL routines
16 * for symmetric positive definite matrices.
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*2 C2
35 INTEGER I, INFO, J
36 REAL ANRM, RCOND
37 * ..
38 * .. Local Arrays ..
39 INTEGER IW( NMAX )
40 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
41 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX )
42 * ..
43 * .. External Functions ..
44 LOGICAL LSAMEN
45 EXTERNAL LSAMEN
46 * ..
47 * .. External Subroutines ..
48 EXTERNAL ALAESM, CHKXER, SPBCON, SPBEQU, SPBRFS, SPBTF2,
49 $ SPBTRF, SPBTRS, SPOCON, SPOEQU, SPORFS, SPOTF2,
50 $ SPOTRF, SPOTRI, SPOTRS, SPPCON, SPPEQU, SPPRFS,
51 $ SPPTRF, SPPTRI, SPPTRS
52 * ..
53 * .. Scalars in Common ..
54 LOGICAL LERR, OK
55 CHARACTER*32 SRNAMT
56 INTEGER INFOT, NOUT
57 * ..
58 * .. Common blocks ..
59 COMMON / INFOC / INFOT, NOUT, OK, LERR
60 COMMON / SRNAMC / SRNAMT
61 * ..
62 * .. Intrinsic Functions ..
63 INTRINSIC REAL
64 * ..
65 * .. Executable Statements ..
66 *
67 NOUT = NUNIT
68 WRITE( NOUT, FMT = * )
69 C2 = PATH( 2: 3 )
70 *
71 * Set the variables to innocuous values.
72 *
73 DO 20 J = 1, NMAX
74 DO 10 I = 1, NMAX
75 A( I, J ) = 1. / REAL( I+J )
76 AF( I, J ) = 1. / REAL( I+J )
77 10 CONTINUE
78 B( J ) = 0.
79 R1( J ) = 0.
80 R2( J ) = 0.
81 W( J ) = 0.
82 X( J ) = 0.
83 IW( J ) = J
84 20 CONTINUE
85 OK = .TRUE.
86 *
87 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
88 *
89 * Test error exits of the routines that use the Cholesky
90 * decomposition of a symmetric positive definite matrix.
91 *
92 * SPOTRF
93 *
94 SRNAMT = 'SPOTRF'
95 INFOT = 1
96 CALL SPOTRF( '/', 0, A, 1, INFO )
97 CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
98 INFOT = 2
99 CALL SPOTRF( 'U', -1, A, 1, INFO )
100 CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
101 INFOT = 4
102 CALL SPOTRF( 'U', 2, A, 1, INFO )
103 CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
104 *
105 * SPOTF2
106 *
107 SRNAMT = 'SPOTF2'
108 INFOT = 1
109 CALL SPOTF2( '/', 0, A, 1, INFO )
110 CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
111 INFOT = 2
112 CALL SPOTF2( 'U', -1, A, 1, INFO )
113 CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
114 INFOT = 4
115 CALL SPOTF2( 'U', 2, A, 1, INFO )
116 CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
117 *
118 * SPOTRI
119 *
120 SRNAMT = 'SPOTRI'
121 INFOT = 1
122 CALL SPOTRI( '/', 0, A, 1, INFO )
123 CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
124 INFOT = 2
125 CALL SPOTRI( 'U', -1, A, 1, INFO )
126 CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
127 INFOT = 4
128 CALL SPOTRI( 'U', 2, A, 1, INFO )
129 CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
130 *
131 * SPOTRS
132 *
133 SRNAMT = 'SPOTRS'
134 INFOT = 1
135 CALL SPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
136 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
137 INFOT = 2
138 CALL SPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
139 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
140 INFOT = 3
141 CALL SPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
142 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
143 INFOT = 5
144 CALL SPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
145 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
146 INFOT = 7
147 CALL SPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
148 CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
149 *
150 * SPORFS
151 *
152 SRNAMT = 'SPORFS'
153 INFOT = 1
154 CALL SPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW,
155 $ INFO )
156 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
157 INFOT = 2
158 CALL SPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
159 $ IW, INFO )
160 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
161 INFOT = 3
162 CALL SPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
163 $ IW, INFO )
164 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
165 INFOT = 5
166 CALL SPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW,
167 $ INFO )
168 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
169 INFOT = 7
170 CALL SPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW,
171 $ INFO )
172 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
173 INFOT = 9
174 CALL SPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW,
175 $ INFO )
176 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
177 INFOT = 11
178 CALL SPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW,
179 $ INFO )
180 CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
181 *
182 * SPOCON
183 *
184 SRNAMT = 'SPOCON'
185 INFOT = 1
186 CALL SPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
187 CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
188 INFOT = 2
189 CALL SPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO )
190 CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
191 INFOT = 4
192 CALL SPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO )
193 CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
194 *
195 * SPOEQU
196 *
197 SRNAMT = 'SPOEQU'
198 INFOT = 1
199 CALL SPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
200 CALL CHKXER( 'SPOEQU', INFOT, NOUT, LERR, OK )
201 INFOT = 3
202 CALL SPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
203 CALL CHKXER( 'SPOEQU', INFOT, NOUT, LERR, OK )
204 *
205 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
206 *
207 * Test error exits of the routines that use the Cholesky
208 * decomposition of a symmetric positive definite packed matrix.
209 *
210 * SPPTRF
211 *
212 SRNAMT = 'SPPTRF'
213 INFOT = 1
214 CALL SPPTRF( '/', 0, A, INFO )
215 CALL CHKXER( 'SPPTRF', INFOT, NOUT, LERR, OK )
216 INFOT = 2
217 CALL SPPTRF( 'U', -1, A, INFO )
218 CALL CHKXER( 'SPPTRF', INFOT, NOUT, LERR, OK )
219 *
220 * SPPTRI
221 *
222 SRNAMT = 'SPPTRI'
223 INFOT = 1
224 CALL SPPTRI( '/', 0, A, INFO )
225 CALL CHKXER( 'SPPTRI', INFOT, NOUT, LERR, OK )
226 INFOT = 2
227 CALL SPPTRI( 'U', -1, A, INFO )
228 CALL CHKXER( 'SPPTRI', INFOT, NOUT, LERR, OK )
229 *
230 * SPPTRS
231 *
232 SRNAMT = 'SPPTRS'
233 INFOT = 1
234 CALL SPPTRS( '/', 0, 0, A, B, 1, INFO )
235 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
236 INFOT = 2
237 CALL SPPTRS( 'U', -1, 0, A, B, 1, INFO )
238 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
239 INFOT = 3
240 CALL SPPTRS( 'U', 0, -1, A, B, 1, INFO )
241 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
242 INFOT = 6
243 CALL SPPTRS( 'U', 2, 1, A, B, 1, INFO )
244 CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
245 *
246 * SPPRFS
247 *
248 SRNAMT = 'SPPRFS'
249 INFOT = 1
250 CALL SPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
251 $ INFO )
252 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
253 INFOT = 2
254 CALL SPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
255 $ INFO )
256 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
257 INFOT = 3
258 CALL SPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW,
259 $ INFO )
260 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
261 INFOT = 7
262 CALL SPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW,
263 $ INFO )
264 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
265 INFOT = 9
266 CALL SPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW,
267 $ INFO )
268 CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
269 *
270 * SPPCON
271 *
272 SRNAMT = 'SPPCON'
273 INFOT = 1
274 CALL SPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO )
275 CALL CHKXER( 'SPPCON', INFOT, NOUT, LERR, OK )
276 INFOT = 2
277 CALL SPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO )
278 CALL CHKXER( 'SPPCON', INFOT, NOUT, LERR, OK )
279 *
280 * SPPEQU
281 *
282 SRNAMT = 'SPPEQU'
283 INFOT = 1
284 CALL SPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
285 CALL CHKXER( 'SPPEQU', INFOT, NOUT, LERR, OK )
286 INFOT = 2
287 CALL SPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
288 CALL CHKXER( 'SPPEQU', INFOT, NOUT, LERR, OK )
289 *
290 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
291 *
292 * Test error exits of the routines that use the Cholesky
293 * decomposition of a symmetric positive definite band matrix.
294 *
295 * SPBTRF
296 *
297 SRNAMT = 'SPBTRF'
298 INFOT = 1
299 CALL SPBTRF( '/', 0, 0, A, 1, INFO )
300 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
301 INFOT = 2
302 CALL SPBTRF( 'U', -1, 0, A, 1, INFO )
303 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
304 INFOT = 3
305 CALL SPBTRF( 'U', 1, -1, A, 1, INFO )
306 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
307 INFOT = 5
308 CALL SPBTRF( 'U', 2, 1, A, 1, INFO )
309 CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
310 *
311 * SPBTF2
312 *
313 SRNAMT = 'SPBTF2'
314 INFOT = 1
315 CALL SPBTF2( '/', 0, 0, A, 1, INFO )
316 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
317 INFOT = 2
318 CALL SPBTF2( 'U', -1, 0, A, 1, INFO )
319 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
320 INFOT = 3
321 CALL SPBTF2( 'U', 1, -1, A, 1, INFO )
322 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
323 INFOT = 5
324 CALL SPBTF2( 'U', 2, 1, A, 1, INFO )
325 CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
326 *
327 * SPBTRS
328 *
329 SRNAMT = 'SPBTRS'
330 INFOT = 1
331 CALL SPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
332 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
333 INFOT = 2
334 CALL SPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
335 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
336 INFOT = 3
337 CALL SPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
338 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
339 INFOT = 4
340 CALL SPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
341 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
342 INFOT = 6
343 CALL SPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
344 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
345 INFOT = 8
346 CALL SPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
347 CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
348 *
349 * SPBRFS
350 *
351 SRNAMT = 'SPBRFS'
352 INFOT = 1
353 CALL SPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
354 $ IW, INFO )
355 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
356 INFOT = 2
357 CALL SPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
358 $ IW, INFO )
359 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
360 INFOT = 3
361 CALL SPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
362 $ IW, INFO )
363 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
364 INFOT = 4
365 CALL SPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
366 $ IW, INFO )
367 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
368 INFOT = 6
369 CALL SPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
370 $ IW, INFO )
371 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
372 INFOT = 8
373 CALL SPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
374 $ IW, INFO )
375 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
376 INFOT = 10
377 CALL SPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
378 $ IW, INFO )
379 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
380 INFOT = 12
381 CALL SPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
382 $ IW, INFO )
383 CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
384 *
385 * SPBCON
386 *
387 SRNAMT = 'SPBCON'
388 INFOT = 1
389 CALL SPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO )
390 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
391 INFOT = 2
392 CALL SPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO )
393 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
394 INFOT = 3
395 CALL SPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO )
396 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
397 INFOT = 5
398 CALL SPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO )
399 CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
400 *
401 * SPBEQU
402 *
403 SRNAMT = 'SPBEQU'
404 INFOT = 1
405 CALL SPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
406 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
407 INFOT = 2
408 CALL SPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
409 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
410 INFOT = 3
411 CALL SPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
412 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
413 INFOT = 5
414 CALL SPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
415 CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
416 END IF
417 *
418 * Print a summary line.
419 *
420 CALL ALAESM( PATH, OK, NOUT )
421 *
422 RETURN
423 *
424 * End of SERRPO
425 *
426 END