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