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