1*> \brief \b DERRGEX
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 DERRGE( 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*> DERRGE tests the error exits for the DOUBLE PRECISION routines
25*> for general matrices.
26*>
27*> Note that this file is used only when the XBLAS are available,
28*> otherwise derrge.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 DERRGE( 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, LW
75      PARAMETER          ( NMAX = 4, LW = 3*NMAX )
76*     ..
77*     .. Local Scalars ..
78      CHARACTER          EQ
79      CHARACTER*2        C2
80      INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
81      DOUBLE PRECISION   ANRM, CCOND, RCOND, BERR
82*     ..
83*     .. Local Arrays ..
84      INTEGER            IP( NMAX ), IW( NMAX )
85      DOUBLE PRECISION   A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
86     $                   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
87     $                   W( LW ), X( 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, DGBCON, DGBEQU, DGBRFS, DGBTF2,
96     $                   DGBTRF, DGBTRS, DGECON, DGEEQU, DGERFS, DGETF2,
97     $                   DGETRF, DGETRI, DGETRS, DGEEQUB, DGERFSX,
98     $                   DGBEQUB, DGBRFSX
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         C( J ) = 0.D0
131         R( J ) = 0.D0
132         IP( J ) = J
133         IW( J ) = J
134   20 CONTINUE
135      OK = .TRUE.
136*
137      IF( LSAMEN( 2, C2, 'GE' ) ) THEN
138*
139*        Test error exits of the routines that use the LU decomposition
140*        of a general matrix.
141*
142*        DGETRF
143*
144         SRNAMT = 'DGETRF'
145         INFOT = 1
146         CALL DGETRF( -1, 0, A, 1, IP, INFO )
147         CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK )
148         INFOT = 2
149         CALL DGETRF( 0, -1, A, 1, IP, INFO )
150         CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK )
151         INFOT = 4
152         CALL DGETRF( 2, 1, A, 1, IP, INFO )
153         CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK )
154*
155*        DGETF2
156*
157         SRNAMT = 'DGETF2'
158         INFOT = 1
159         CALL DGETF2( -1, 0, A, 1, IP, INFO )
160         CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK )
161         INFOT = 2
162         CALL DGETF2( 0, -1, A, 1, IP, INFO )
163         CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK )
164         INFOT = 4
165         CALL DGETF2( 2, 1, A, 1, IP, INFO )
166         CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK )
167*
168*        DGETRI
169*
170         SRNAMT = 'DGETRI'
171         INFOT = 1
172         CALL DGETRI( -1, A, 1, IP, W, LW, INFO )
173         CALL CHKXER( 'DGETRI', INFOT, NOUT, LERR, OK )
174         INFOT = 3
175         CALL DGETRI( 2, A, 1, IP, W, LW, INFO )
176         CALL CHKXER( 'DGETRI', INFOT, NOUT, LERR, OK )
177*
178*        DGETRS
179*
180         SRNAMT = 'DGETRS'
181         INFOT = 1
182         CALL DGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
183         CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK )
184         INFOT = 2
185         CALL DGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO )
186         CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK )
187         INFOT = 3
188         CALL DGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO )
189         CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK )
190         INFOT = 5
191         CALL DGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO )
192         CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK )
193         INFOT = 8
194         CALL DGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO )
195         CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK )
196*
197*        DGERFS
198*
199         SRNAMT = 'DGERFS'
200         INFOT = 1
201         CALL DGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
202     $                IW, INFO )
203         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
204         INFOT = 2
205         CALL DGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
206     $                W, IW, INFO )
207         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
208         INFOT = 3
209         CALL DGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
210     $                W, IW, INFO )
211         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
212         INFOT = 5
213         CALL DGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
214     $                IW, INFO )
215         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
216         INFOT = 7
217         CALL DGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
218     $                IW, INFO )
219         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
220         INFOT = 10
221         CALL DGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
222     $                IW, INFO )
223         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
224         INFOT = 12
225         CALL DGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
226     $                IW, INFO )
227         CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK )
228*
229*        DGERFSX
230*
231         N_ERR_BNDS = 3
232         NPARAMS = 0
233         SRNAMT = 'DGERFSX'
234         INFOT = 1
235         CALL DGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, R, C, B, 1, X,
236     $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
237     $        NPARAMS, PARAMS, W, IW, INFO )
238         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
239         INFOT = 2
240         EQ = '/'
241         CALL DGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, R, C, B, 2, X,
242     $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
243     $        NPARAMS, PARAMS, W, IW, INFO )
244         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
245         INFOT = 3
246         EQ = 'R'
247         CALL DGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, R, C, B, 1, X,
248     $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
249     $        NPARAMS, PARAMS, W, IW, INFO )
250         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
251         INFOT = 4
252         CALL DGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, R, C, B, 1, X,
253     $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
254     $        NPARAMS, PARAMS, W, IW, INFO )
255         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
256         INFOT = 6
257         CALL DGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, R, C, B, 2, X,
258     $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
259     $        NPARAMS, PARAMS, W, IW, INFO )
260         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
261         INFOT = 8
262         CALL DGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, R, C, B, 2, X,
263     $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
264     $        NPARAMS, PARAMS, W, IW, INFO )
265         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
266         INFOT = 13
267         EQ = 'C'
268         CALL DGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, R, C, B, 1, X,
269     $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
270     $        NPARAMS, PARAMS, W, IW, INFO )
271         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
272         INFOT = 15
273         CALL DGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, R, C, B, 2, X,
274     $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
275     $        NPARAMS, PARAMS, W, IW, INFO )
276         CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK )
277*
278*        DGECON
279*
280         SRNAMT = 'DGECON'
281         INFOT = 1
282         CALL DGECON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
283         CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK )
284         INFOT = 2
285         CALL DGECON( '1', -1, A, 1, ANRM, RCOND, W, IW, INFO )
286         CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK )
287         INFOT = 4
288         CALL DGECON( '1', 2, A, 1, ANRM, RCOND, W, IW, INFO )
289         CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK )
290*
291*        DGEEQU
292*
293         SRNAMT = 'DGEEQU'
294         INFOT = 1
295         CALL DGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
296         CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK )
297         INFOT = 2
298         CALL DGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
299         CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK )
300         INFOT = 4
301         CALL DGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
302         CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK )
303*
304*        DGEEQUB
305*
306         SRNAMT = 'DGEEQUB'
307         INFOT = 1
308         CALL DGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
309         CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK )
310         INFOT = 2
311         CALL DGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
312         CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK )
313         INFOT = 4
314         CALL DGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
315         CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK )
316*
317      ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
318*
319*        Test error exits of the routines that use the LU decomposition
320*        of a general band matrix.
321*
322*        DGBTRF
323*
324         SRNAMT = 'DGBTRF'
325         INFOT = 1
326         CALL DGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
327         CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK )
328         INFOT = 2
329         CALL DGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
330         CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK )
331         INFOT = 3
332         CALL DGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
333         CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK )
334         INFOT = 4
335         CALL DGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
336         CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK )
337         INFOT = 6
338         CALL DGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
339         CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK )
340*
341*        DGBTF2
342*
343         SRNAMT = 'DGBTF2'
344         INFOT = 1
345         CALL DGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
346         CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK )
347         INFOT = 2
348         CALL DGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
349         CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK )
350         INFOT = 3
351         CALL DGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
352         CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK )
353         INFOT = 4
354         CALL DGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
355         CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK )
356         INFOT = 6
357         CALL DGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
358         CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK )
359*
360*        DGBTRS
361*
362         SRNAMT = 'DGBTRS'
363         INFOT = 1
364         CALL DGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
365         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
366         INFOT = 2
367         CALL DGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
368         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
369         INFOT = 3
370         CALL DGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
371         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
372         INFOT = 4
373         CALL DGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
374         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
375         INFOT = 5
376         CALL DGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
377         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
378         INFOT = 7
379         CALL DGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
380         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
381         INFOT = 10
382         CALL DGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
383         CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK )
384*
385*        DGBRFS
386*
387         SRNAMT = 'DGBRFS'
388         INFOT = 1
389         CALL DGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
390     $                R2, W, IW, INFO )
391         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
392         INFOT = 2
393         CALL DGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
394     $                R2, W, IW, INFO )
395         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
396         INFOT = 3
397         CALL DGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
398     $                R2, W, IW, INFO )
399         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
400         INFOT = 4
401         CALL DGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
402     $                R2, W, IW, INFO )
403         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
404         INFOT = 5
405         CALL DGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
406     $                R2, W, IW, INFO )
407         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
408         INFOT = 7
409         CALL DGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
410     $                R2, W, IW, INFO )
411         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
412         INFOT = 9
413         CALL DGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
414     $                R2, W, IW, INFO )
415         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
416         INFOT = 12
417         CALL DGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
418     $                R2, W, IW, INFO )
419         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
420         INFOT = 14
421         CALL DGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
422     $                R2, W, IW, INFO )
423         CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK )
424*
425*        DGBRFSX
426*
427         N_ERR_BNDS = 3
428         NPARAMS = 0
429         SRNAMT = 'DGBRFSX'
430         INFOT = 1
431         CALL DGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, R, C, B, 1,
432     $        X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
433     $        NPARAMS, PARAMS,  W, IW, INFO )
434         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
435         INFOT = 2
436         EQ = '/'
437         CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, R, C, B, 2,
438     $        X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
439     $        NPARAMS, PARAMS, W, IW, INFO )
440         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
441         INFOT = 3
442         EQ = 'R'
443         CALL DGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, R, C, B,
444     $        1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
445     $        NPARAMS, PARAMS, W, IW, INFO )
446         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
447         INFOT = 4
448         EQ = 'R'
449         CALL DGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, R, C, B,
450     $        1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
451     $        NPARAMS, PARAMS, W, IW, INFO )
452         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
453         INFOT = 5
454         EQ = 'R'
455         CALL DGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, R, C, B,
456     $        1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
457     $        NPARAMS, PARAMS, W, IW, INFO )
458         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
459         INFOT = 6
460         CALL DGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, R, C, B,
461     $        1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
462     $        NPARAMS, PARAMS, W, IW, INFO )
463         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
464         INFOT = 8
465         CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, R, C, B,
466     $        2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
467     $        NPARAMS, PARAMS, W, IW, INFO )
468         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
469         INFOT = 10
470         CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, R, C, B, 2,
471     $        X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
472     $        NPARAMS, PARAMS, W, IW, INFO )
473         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
474         INFOT = 13
475         EQ = 'C'
476         CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, R, C, B,
477     $        1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
478     $        NPARAMS, PARAMS, W, IW, INFO )
479         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
480         INFOT = 15
481         CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, R, C, B, 2,
482     $        X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
483     $        NPARAMS, PARAMS, W, IW, INFO )
484         CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK )
485*
486*        DGBCON
487*
488         SRNAMT = 'DGBCON'
489         INFOT = 1
490         CALL DGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, INFO )
491         CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK )
492         INFOT = 2
493         CALL DGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, IW,
494     $                INFO )
495         CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK )
496         INFOT = 3
497         CALL DGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, IW,
498     $                INFO )
499         CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK )
500         INFOT = 4
501         CALL DGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, IW,
502     $                INFO )
503         CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK )
504         INFOT = 6
505         CALL DGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, IW, INFO )
506         CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK )
507*
508*        DGBEQU
509*
510         SRNAMT = 'DGBEQU'
511         INFOT = 1
512         CALL DGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
513     $                INFO )
514         CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK )
515         INFOT = 2
516         CALL DGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
517     $                INFO )
518         CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK )
519         INFOT = 3
520         CALL DGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
521     $                INFO )
522         CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK )
523         INFOT = 4
524         CALL DGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
525     $                INFO )
526         CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK )
527         INFOT = 6
528         CALL DGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
529     $                INFO )
530         CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK )
531*
532*        DGBEQUB
533*
534         SRNAMT = 'DGBEQUB'
535         INFOT = 1
536         CALL DGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
537     $                INFO )
538         CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK )
539         INFOT = 2
540         CALL DGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
541     $                INFO )
542         CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK )
543         INFOT = 3
544         CALL DGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
545     $                INFO )
546         CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK )
547         INFOT = 4
548         CALL DGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
549     $                INFO )
550         CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK )
551         INFOT = 6
552         CALL DGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
553     $                INFO )
554         CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK )
555      END IF
556*
557*     Print a summary line.
558*
559      CALL ALAESM( PATH, OK, NOUT )
560*
561      RETURN
562*
563*     End of DERRGE
564*
565      END
566