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