1 SUBROUTINE DERRPO( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.2.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * April 2009
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * DERRPO tests the error exits for the DOUBLE PRECISION routines
16 * for symmetric positive definite matrices.
17 *
18 * Note that this file is used only when the XBLAS are available,
19 * otherwise derrpo.f defines this subroutine.
20 *
21 * Arguments
22 * =========
23 *
24 * PATH (input) CHARACTER*3
25 * The LAPACK path name for the routines to be tested.
26 *
27 * NUNIT (input) INTEGER
28 * The unit number for output.
29 *
30 * =====================================================================
31 *
32 * .. Parameters ..
33 INTEGER NMAX
34 PARAMETER ( NMAX = 4 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER EQ
38 CHARACTER*2 C2
39 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
40 DOUBLE PRECISION ANRM, RCOND, BERR
41 * ..
42 * .. Local Arrays ..
43 INTEGER IW( NMAX )
44 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
45 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX ),
46 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ),
47 $ ERR_BNDS_C( NMAX, 3), PARAMS( 1 )
48 * ..
49 * .. External Functions ..
50 LOGICAL LSAMEN
51 EXTERNAL LSAMEN
52 * ..
53 * .. External Subroutines ..
54 EXTERNAL ALAESM, CHKXER, DPBCON, DPBEQU, DPBRFS, DPBTF2,
55 $ DPBTRF, DPBTRS, DPOCON, DPOEQU, DPORFS, DPOTF2,
56 $ DPOTRF, DPOTRI, DPOTRS, DPPCON, DPPEQU, DPPRFS,
57 $ DPPTRF, DPPTRI, DPPTRS, DPOEQUB, DPORFSX
58 * ..
59 * .. Scalars in Common ..
60 LOGICAL LERR, OK
61 CHARACTER*32 SRNAMT
62 INTEGER INFOT, NOUT
63 * ..
64 * .. Common blocks ..
65 COMMON / INFOC / INFOT, NOUT, OK, LERR
66 COMMON / SRNAMC / SRNAMT
67 * ..
68 * .. Intrinsic Functions ..
69 INTRINSIC DBLE
70 * ..
71 * .. Executable Statements ..
72 *
73 NOUT = NUNIT
74 WRITE( NOUT, FMT = * )
75 C2 = PATH( 2: 3 )
76 *
77 * Set the variables to innocuous values.
78 *
79 DO 20 J = 1, NMAX
80 DO 10 I = 1, NMAX
81 A( I, J ) = 1.D0 / DBLE( I+J )
82 AF( I, J ) = 1.D0 / DBLE( I+J )
83 10 CONTINUE
84 B( J ) = 0.D0
85 R1( J ) = 0.D0
86 R2( J ) = 0.D0
87 W( J ) = 0.D0
88 X( J ) = 0.D0
89 S( J ) = 0.D0
90 IW( J ) = J
91 20 CONTINUE
92 OK = .TRUE.
93 *
94 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
95 *
96 * Test error exits of the routines that use the Cholesky
97 * decomposition of a symmetric positive definite matrix.
98 *
99 * DPOTRF
100 *
101 SRNAMT = 'DPOTRF'
102 INFOT = 1
103 CALL DPOTRF( '/', 0, A, 1, INFO )
104 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK )
105 INFOT = 2
106 CALL DPOTRF( 'U', -1, A, 1, INFO )
107 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK )
108 INFOT = 4
109 CALL DPOTRF( 'U', 2, A, 1, INFO )
110 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK )
111 *
112 * DPOTF2
113 *
114 SRNAMT = 'DPOTF2'
115 INFOT = 1
116 CALL DPOTF2( '/', 0, A, 1, INFO )
117 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK )
118 INFOT = 2
119 CALL DPOTF2( 'U', -1, A, 1, INFO )
120 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK )
121 INFOT = 4
122 CALL DPOTF2( 'U', 2, A, 1, INFO )
123 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK )
124 *
125 * DPOTRI
126 *
127 SRNAMT = 'DPOTRI'
128 INFOT = 1
129 CALL DPOTRI( '/', 0, A, 1, INFO )
130 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK )
131 INFOT = 2
132 CALL DPOTRI( 'U', -1, A, 1, INFO )
133 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK )
134 INFOT = 4
135 CALL DPOTRI( 'U', 2, A, 1, INFO )
136 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK )
137 *
138 * DPOTRS
139 *
140 SRNAMT = 'DPOTRS'
141 INFOT = 1
142 CALL DPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
143 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
144 INFOT = 2
145 CALL DPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
146 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
147 INFOT = 3
148 CALL DPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
149 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
150 INFOT = 5
151 CALL DPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
152 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
153 INFOT = 7
154 CALL DPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
155 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
156 *
157 * DPORFS
158 *
159 SRNAMT = 'DPORFS'
160 INFOT = 1
161 CALL DPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW,
162 $ INFO )
163 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL DPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
166 $ IW, INFO )
167 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
168 INFOT = 3
169 CALL DPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
170 $ IW, INFO )
171 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
172 INFOT = 5
173 CALL DPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW,
174 $ INFO )
175 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
176 INFOT = 7
177 CALL DPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW,
178 $ INFO )
179 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
180 INFOT = 9
181 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW,
182 $ INFO )
183 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
184 INFOT = 11
185 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW,
186 $ INFO )
187 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
188 *
189 * DPORFSX
190 *
191 N_ERR_BNDS = 3
192 NPARAMS = 0
193 SRNAMT = 'DPORFSX'
194 INFOT = 1
195 CALL DPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
196 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
197 $ PARAMS, W, IW, INFO )
198 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
199 INFOT = 2
200 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
201 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
202 $ PARAMS, W, IW, INFO )
203 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
204 EQ = 'N'
205 INFOT = 3
206 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
207 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
208 $ PARAMS, W, IW, INFO )
209 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
210 INFOT = 4
211 CALL DPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
212 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
213 $ PARAMS, W, IW, INFO )
214 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
215 INFOT = 6
216 CALL DPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
217 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
218 $ PARAMS, W, IW, INFO )
219 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
220 INFOT = 8
221 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
222 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
223 $ PARAMS, W, IW, INFO )
224 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
225 INFOT = 11
226 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
227 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
228 $ PARAMS, W, IW, INFO )
229 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
230 INFOT = 13
231 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
232 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
233 $ PARAMS, W, IW, INFO )
234 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
235 *
236 * DPOCON
237 *
238 SRNAMT = 'DPOCON'
239 INFOT = 1
240 CALL DPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
241 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK )
242 INFOT = 2
243 CALL DPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO )
244 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK )
245 INFOT = 4
246 CALL DPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO )
247 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK )
248 *
249 * DPOEQU
250 *
251 SRNAMT = 'DPOEQU'
252 INFOT = 1
253 CALL DPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
254 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK )
255 INFOT = 3
256 CALL DPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
257 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK )
258 *
259 * DPOEQUB
260 *
261 SRNAMT = 'DPOEQUB'
262 INFOT = 1
263 CALL DPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
264 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK )
265 INFOT = 3
266 CALL DPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
267 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK )
268 *
269 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
270 *
271 * Test error exits of the routines that use the Cholesky
272 * decomposition of a symmetric positive definite packed matrix.
273 *
274 * DPPTRF
275 *
276 SRNAMT = 'DPPTRF'
277 INFOT = 1
278 CALL DPPTRF( '/', 0, A, INFO )
279 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK )
280 INFOT = 2
281 CALL DPPTRF( 'U', -1, A, INFO )
282 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK )
283 *
284 * DPPTRI
285 *
286 SRNAMT = 'DPPTRI'
287 INFOT = 1
288 CALL DPPTRI( '/', 0, A, INFO )
289 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK )
290 INFOT = 2
291 CALL DPPTRI( 'U', -1, A, INFO )
292 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK )
293 *
294 * DPPTRS
295 *
296 SRNAMT = 'DPPTRS'
297 INFOT = 1
298 CALL DPPTRS( '/', 0, 0, A, B, 1, INFO )
299 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
300 INFOT = 2
301 CALL DPPTRS( 'U', -1, 0, A, B, 1, INFO )
302 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
303 INFOT = 3
304 CALL DPPTRS( 'U', 0, -1, A, B, 1, INFO )
305 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
306 INFOT = 6
307 CALL DPPTRS( 'U', 2, 1, A, B, 1, INFO )
308 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
309 *
310 * DPPRFS
311 *
312 SRNAMT = 'DPPRFS'
313 INFOT = 1
314 CALL DPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
315 $ INFO )
316 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
317 INFOT = 2
318 CALL DPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
319 $ INFO )
320 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
321 INFOT = 3
322 CALL DPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW,
323 $ INFO )
324 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
325 INFOT = 7
326 CALL DPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW,
327 $ INFO )
328 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
329 INFOT = 9
330 CALL DPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW,
331 $ INFO )
332 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
333 *
334 * DPPCON
335 *
336 SRNAMT = 'DPPCON'
337 INFOT = 1
338 CALL DPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO )
339 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK )
340 INFOT = 2
341 CALL DPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO )
342 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK )
343 *
344 * DPPEQU
345 *
346 SRNAMT = 'DPPEQU'
347 INFOT = 1
348 CALL DPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
349 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK )
350 INFOT = 2
351 CALL DPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
352 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK )
353 *
354 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
355 *
356 * Test error exits of the routines that use the Cholesky
357 * decomposition of a symmetric positive definite band matrix.
358 *
359 * DPBTRF
360 *
361 SRNAMT = 'DPBTRF'
362 INFOT = 1
363 CALL DPBTRF( '/', 0, 0, A, 1, INFO )
364 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
365 INFOT = 2
366 CALL DPBTRF( 'U', -1, 0, A, 1, INFO )
367 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
368 INFOT = 3
369 CALL DPBTRF( 'U', 1, -1, A, 1, INFO )
370 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
371 INFOT = 5
372 CALL DPBTRF( 'U', 2, 1, A, 1, INFO )
373 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
374 *
375 * DPBTF2
376 *
377 SRNAMT = 'DPBTF2'
378 INFOT = 1
379 CALL DPBTF2( '/', 0, 0, A, 1, INFO )
380 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
381 INFOT = 2
382 CALL DPBTF2( 'U', -1, 0, A, 1, INFO )
383 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
384 INFOT = 3
385 CALL DPBTF2( 'U', 1, -1, A, 1, INFO )
386 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
387 INFOT = 5
388 CALL DPBTF2( 'U', 2, 1, A, 1, INFO )
389 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
390 *
391 * DPBTRS
392 *
393 SRNAMT = 'DPBTRS'
394 INFOT = 1
395 CALL DPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
396 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
397 INFOT = 2
398 CALL DPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
399 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
400 INFOT = 3
401 CALL DPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
402 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
403 INFOT = 4
404 CALL DPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
405 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
406 INFOT = 6
407 CALL DPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
408 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
409 INFOT = 8
410 CALL DPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
411 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
412 *
413 * DPBRFS
414 *
415 SRNAMT = 'DPBRFS'
416 INFOT = 1
417 CALL DPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
418 $ IW, INFO )
419 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
420 INFOT = 2
421 CALL DPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
422 $ IW, INFO )
423 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
424 INFOT = 3
425 CALL DPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
426 $ IW, INFO )
427 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
428 INFOT = 4
429 CALL DPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
430 $ IW, INFO )
431 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
432 INFOT = 6
433 CALL DPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
434 $ IW, INFO )
435 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
436 INFOT = 8
437 CALL DPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
438 $ IW, INFO )
439 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
440 INFOT = 10
441 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
442 $ IW, INFO )
443 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
444 INFOT = 12
445 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
446 $ IW, INFO )
447 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
448 *
449 * DPBCON
450 *
451 SRNAMT = 'DPBCON'
452 INFOT = 1
453 CALL DPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO )
454 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
455 INFOT = 2
456 CALL DPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO )
457 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
458 INFOT = 3
459 CALL DPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO )
460 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
461 INFOT = 5
462 CALL DPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO )
463 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
464 *
465 * DPBEQU
466 *
467 SRNAMT = 'DPBEQU'
468 INFOT = 1
469 CALL DPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
470 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
471 INFOT = 2
472 CALL DPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
473 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
474 INFOT = 3
475 CALL DPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
476 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
477 INFOT = 5
478 CALL DPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
479 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
480 END IF
481 *
482 * Print a summary line.
483 *
484 CALL ALAESM( PATH, OK, NOUT )
485 *
486 RETURN
487 *
488 * End of DERRPO
489 *
490 END
2 *
3 * -- LAPACK test routine (version 3.2.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * April 2009
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * DERRPO tests the error exits for the DOUBLE PRECISION routines
16 * for symmetric positive definite matrices.
17 *
18 * Note that this file is used only when the XBLAS are available,
19 * otherwise derrpo.f defines this subroutine.
20 *
21 * Arguments
22 * =========
23 *
24 * PATH (input) CHARACTER*3
25 * The LAPACK path name for the routines to be tested.
26 *
27 * NUNIT (input) INTEGER
28 * The unit number for output.
29 *
30 * =====================================================================
31 *
32 * .. Parameters ..
33 INTEGER NMAX
34 PARAMETER ( NMAX = 4 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER EQ
38 CHARACTER*2 C2
39 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
40 DOUBLE PRECISION ANRM, RCOND, BERR
41 * ..
42 * .. Local Arrays ..
43 INTEGER IW( NMAX )
44 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
45 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX ),
46 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ),
47 $ ERR_BNDS_C( NMAX, 3), PARAMS( 1 )
48 * ..
49 * .. External Functions ..
50 LOGICAL LSAMEN
51 EXTERNAL LSAMEN
52 * ..
53 * .. External Subroutines ..
54 EXTERNAL ALAESM, CHKXER, DPBCON, DPBEQU, DPBRFS, DPBTF2,
55 $ DPBTRF, DPBTRS, DPOCON, DPOEQU, DPORFS, DPOTF2,
56 $ DPOTRF, DPOTRI, DPOTRS, DPPCON, DPPEQU, DPPRFS,
57 $ DPPTRF, DPPTRI, DPPTRS, DPOEQUB, DPORFSX
58 * ..
59 * .. Scalars in Common ..
60 LOGICAL LERR, OK
61 CHARACTER*32 SRNAMT
62 INTEGER INFOT, NOUT
63 * ..
64 * .. Common blocks ..
65 COMMON / INFOC / INFOT, NOUT, OK, LERR
66 COMMON / SRNAMC / SRNAMT
67 * ..
68 * .. Intrinsic Functions ..
69 INTRINSIC DBLE
70 * ..
71 * .. Executable Statements ..
72 *
73 NOUT = NUNIT
74 WRITE( NOUT, FMT = * )
75 C2 = PATH( 2: 3 )
76 *
77 * Set the variables to innocuous values.
78 *
79 DO 20 J = 1, NMAX
80 DO 10 I = 1, NMAX
81 A( I, J ) = 1.D0 / DBLE( I+J )
82 AF( I, J ) = 1.D0 / DBLE( I+J )
83 10 CONTINUE
84 B( J ) = 0.D0
85 R1( J ) = 0.D0
86 R2( J ) = 0.D0
87 W( J ) = 0.D0
88 X( J ) = 0.D0
89 S( J ) = 0.D0
90 IW( J ) = J
91 20 CONTINUE
92 OK = .TRUE.
93 *
94 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
95 *
96 * Test error exits of the routines that use the Cholesky
97 * decomposition of a symmetric positive definite matrix.
98 *
99 * DPOTRF
100 *
101 SRNAMT = 'DPOTRF'
102 INFOT = 1
103 CALL DPOTRF( '/', 0, A, 1, INFO )
104 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK )
105 INFOT = 2
106 CALL DPOTRF( 'U', -1, A, 1, INFO )
107 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK )
108 INFOT = 4
109 CALL DPOTRF( 'U', 2, A, 1, INFO )
110 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK )
111 *
112 * DPOTF2
113 *
114 SRNAMT = 'DPOTF2'
115 INFOT = 1
116 CALL DPOTF2( '/', 0, A, 1, INFO )
117 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK )
118 INFOT = 2
119 CALL DPOTF2( 'U', -1, A, 1, INFO )
120 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK )
121 INFOT = 4
122 CALL DPOTF2( 'U', 2, A, 1, INFO )
123 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK )
124 *
125 * DPOTRI
126 *
127 SRNAMT = 'DPOTRI'
128 INFOT = 1
129 CALL DPOTRI( '/', 0, A, 1, INFO )
130 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK )
131 INFOT = 2
132 CALL DPOTRI( 'U', -1, A, 1, INFO )
133 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK )
134 INFOT = 4
135 CALL DPOTRI( 'U', 2, A, 1, INFO )
136 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK )
137 *
138 * DPOTRS
139 *
140 SRNAMT = 'DPOTRS'
141 INFOT = 1
142 CALL DPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
143 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
144 INFOT = 2
145 CALL DPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
146 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
147 INFOT = 3
148 CALL DPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
149 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
150 INFOT = 5
151 CALL DPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
152 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
153 INFOT = 7
154 CALL DPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
155 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK )
156 *
157 * DPORFS
158 *
159 SRNAMT = 'DPORFS'
160 INFOT = 1
161 CALL DPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW,
162 $ INFO )
163 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL DPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
166 $ IW, INFO )
167 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
168 INFOT = 3
169 CALL DPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
170 $ IW, INFO )
171 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
172 INFOT = 5
173 CALL DPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW,
174 $ INFO )
175 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
176 INFOT = 7
177 CALL DPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW,
178 $ INFO )
179 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
180 INFOT = 9
181 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW,
182 $ INFO )
183 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
184 INFOT = 11
185 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW,
186 $ INFO )
187 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK )
188 *
189 * DPORFSX
190 *
191 N_ERR_BNDS = 3
192 NPARAMS = 0
193 SRNAMT = 'DPORFSX'
194 INFOT = 1
195 CALL DPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
196 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
197 $ PARAMS, W, IW, INFO )
198 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
199 INFOT = 2
200 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
201 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
202 $ PARAMS, W, IW, INFO )
203 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
204 EQ = 'N'
205 INFOT = 3
206 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
207 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
208 $ PARAMS, W, IW, INFO )
209 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
210 INFOT = 4
211 CALL DPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
212 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
213 $ PARAMS, W, IW, INFO )
214 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
215 INFOT = 6
216 CALL DPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
217 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
218 $ PARAMS, W, IW, INFO )
219 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
220 INFOT = 8
221 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
222 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
223 $ PARAMS, W, IW, INFO )
224 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
225 INFOT = 11
226 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
227 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
228 $ PARAMS, W, IW, INFO )
229 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
230 INFOT = 13
231 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
232 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
233 $ PARAMS, W, IW, INFO )
234 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK )
235 *
236 * DPOCON
237 *
238 SRNAMT = 'DPOCON'
239 INFOT = 1
240 CALL DPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
241 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK )
242 INFOT = 2
243 CALL DPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO )
244 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK )
245 INFOT = 4
246 CALL DPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO )
247 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK )
248 *
249 * DPOEQU
250 *
251 SRNAMT = 'DPOEQU'
252 INFOT = 1
253 CALL DPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
254 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK )
255 INFOT = 3
256 CALL DPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
257 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK )
258 *
259 * DPOEQUB
260 *
261 SRNAMT = 'DPOEQUB'
262 INFOT = 1
263 CALL DPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
264 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK )
265 INFOT = 3
266 CALL DPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
267 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK )
268 *
269 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
270 *
271 * Test error exits of the routines that use the Cholesky
272 * decomposition of a symmetric positive definite packed matrix.
273 *
274 * DPPTRF
275 *
276 SRNAMT = 'DPPTRF'
277 INFOT = 1
278 CALL DPPTRF( '/', 0, A, INFO )
279 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK )
280 INFOT = 2
281 CALL DPPTRF( 'U', -1, A, INFO )
282 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK )
283 *
284 * DPPTRI
285 *
286 SRNAMT = 'DPPTRI'
287 INFOT = 1
288 CALL DPPTRI( '/', 0, A, INFO )
289 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK )
290 INFOT = 2
291 CALL DPPTRI( 'U', -1, A, INFO )
292 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK )
293 *
294 * DPPTRS
295 *
296 SRNAMT = 'DPPTRS'
297 INFOT = 1
298 CALL DPPTRS( '/', 0, 0, A, B, 1, INFO )
299 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
300 INFOT = 2
301 CALL DPPTRS( 'U', -1, 0, A, B, 1, INFO )
302 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
303 INFOT = 3
304 CALL DPPTRS( 'U', 0, -1, A, B, 1, INFO )
305 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
306 INFOT = 6
307 CALL DPPTRS( 'U', 2, 1, A, B, 1, INFO )
308 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK )
309 *
310 * DPPRFS
311 *
312 SRNAMT = 'DPPRFS'
313 INFOT = 1
314 CALL DPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
315 $ INFO )
316 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
317 INFOT = 2
318 CALL DPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
319 $ INFO )
320 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
321 INFOT = 3
322 CALL DPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW,
323 $ INFO )
324 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
325 INFOT = 7
326 CALL DPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW,
327 $ INFO )
328 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
329 INFOT = 9
330 CALL DPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW,
331 $ INFO )
332 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK )
333 *
334 * DPPCON
335 *
336 SRNAMT = 'DPPCON'
337 INFOT = 1
338 CALL DPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO )
339 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK )
340 INFOT = 2
341 CALL DPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO )
342 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK )
343 *
344 * DPPEQU
345 *
346 SRNAMT = 'DPPEQU'
347 INFOT = 1
348 CALL DPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
349 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK )
350 INFOT = 2
351 CALL DPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
352 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK )
353 *
354 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
355 *
356 * Test error exits of the routines that use the Cholesky
357 * decomposition of a symmetric positive definite band matrix.
358 *
359 * DPBTRF
360 *
361 SRNAMT = 'DPBTRF'
362 INFOT = 1
363 CALL DPBTRF( '/', 0, 0, A, 1, INFO )
364 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
365 INFOT = 2
366 CALL DPBTRF( 'U', -1, 0, A, 1, INFO )
367 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
368 INFOT = 3
369 CALL DPBTRF( 'U', 1, -1, A, 1, INFO )
370 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
371 INFOT = 5
372 CALL DPBTRF( 'U', 2, 1, A, 1, INFO )
373 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK )
374 *
375 * DPBTF2
376 *
377 SRNAMT = 'DPBTF2'
378 INFOT = 1
379 CALL DPBTF2( '/', 0, 0, A, 1, INFO )
380 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
381 INFOT = 2
382 CALL DPBTF2( 'U', -1, 0, A, 1, INFO )
383 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
384 INFOT = 3
385 CALL DPBTF2( 'U', 1, -1, A, 1, INFO )
386 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
387 INFOT = 5
388 CALL DPBTF2( 'U', 2, 1, A, 1, INFO )
389 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK )
390 *
391 * DPBTRS
392 *
393 SRNAMT = 'DPBTRS'
394 INFOT = 1
395 CALL DPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
396 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
397 INFOT = 2
398 CALL DPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
399 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
400 INFOT = 3
401 CALL DPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
402 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
403 INFOT = 4
404 CALL DPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
405 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
406 INFOT = 6
407 CALL DPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
408 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
409 INFOT = 8
410 CALL DPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
411 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK )
412 *
413 * DPBRFS
414 *
415 SRNAMT = 'DPBRFS'
416 INFOT = 1
417 CALL DPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
418 $ IW, INFO )
419 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
420 INFOT = 2
421 CALL DPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
422 $ IW, INFO )
423 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
424 INFOT = 3
425 CALL DPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
426 $ IW, INFO )
427 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
428 INFOT = 4
429 CALL DPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
430 $ IW, INFO )
431 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
432 INFOT = 6
433 CALL DPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
434 $ IW, INFO )
435 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
436 INFOT = 8
437 CALL DPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
438 $ IW, INFO )
439 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
440 INFOT = 10
441 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
442 $ IW, INFO )
443 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
444 INFOT = 12
445 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
446 $ IW, INFO )
447 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK )
448 *
449 * DPBCON
450 *
451 SRNAMT = 'DPBCON'
452 INFOT = 1
453 CALL DPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO )
454 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
455 INFOT = 2
456 CALL DPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO )
457 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
458 INFOT = 3
459 CALL DPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO )
460 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
461 INFOT = 5
462 CALL DPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO )
463 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK )
464 *
465 * DPBEQU
466 *
467 SRNAMT = 'DPBEQU'
468 INFOT = 1
469 CALL DPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
470 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
471 INFOT = 2
472 CALL DPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
473 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
474 INFOT = 3
475 CALL DPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
476 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
477 INFOT = 5
478 CALL DPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
479 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK )
480 END IF
481 *
482 * Print a summary line.
483 *
484 CALL ALAESM( PATH, OK, NOUT )
485 *
486 RETURN
487 *
488 * End of DERRPO
489 *
490 END