e6afd3fcdb635c215b36bf3f16f6b4ff2fed03f8
[platform/upstream/lapack.git] / TESTING / LIN / serrgex.f
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 *> \date November 2011
55 *
56 *> \ingroup single_lin
57 *
58 *  =====================================================================
59       SUBROUTINE SERRGE( 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       REAL               ANRM, CCOND, RCOND, BERR
82 *     ..
83 *     .. Local Arrays ..
84       INTEGER            IP( NMAX ), IW( NMAX )
85       REAL               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, SGBCON, SGBEQU, SGBRFS, SGBTF2,
96      $                   SGBTRF, SGBTRS, SGECON, SGEEQU, SGERFS, SGETF2,
97      $                   SGETRF, SGETRI, SGETRS, SGEEQUB, SGERFSX,
98      $                   SGBEQUB, SGBRFSX
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          REAL
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. / REAL( I+J )
123             AF( I, J ) = 1. / REAL( I+J )
124    10    CONTINUE
125          B( J ) = 0.
126          R1( J ) = 0.
127          R2( J ) = 0.
128          W( J ) = 0.
129          X( J ) = 0.
130          C( J ) = 0.
131          R( J ) = 0.
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 *        SGETRF
143 *
144          SRNAMT = 'SGETRF'
145          INFOT = 1
146          CALL SGETRF( -1, 0, A, 1, IP, INFO )
147          CALL CHKXER( 'SGETRF', INFOT, NOUT, LERR, OK )
148          INFOT = 2
149          CALL SGETRF( 0, -1, A, 1, IP, INFO )
150          CALL CHKXER( 'SGETRF', INFOT, NOUT, LERR, OK )
151          INFOT = 4
152          CALL SGETRF( 2, 1, A, 1, IP, INFO )
153          CALL CHKXER( 'SGETRF', INFOT, NOUT, LERR, OK )
154 *
155 *        SGETF2
156 *
157          SRNAMT = 'SGETF2'
158          INFOT = 1
159          CALL SGETF2( -1, 0, A, 1, IP, INFO )
160          CALL CHKXER( 'SGETF2', INFOT, NOUT, LERR, OK )
161          INFOT = 2
162          CALL SGETF2( 0, -1, A, 1, IP, INFO )
163          CALL CHKXER( 'SGETF2', INFOT, NOUT, LERR, OK )
164          INFOT = 4
165          CALL SGETF2( 2, 1, A, 1, IP, INFO )
166          CALL CHKXER( 'SGETF2', INFOT, NOUT, LERR, OK )
167 *
168 *        SGETRI
169 *
170          SRNAMT = 'SGETRI'
171          INFOT = 1
172          CALL SGETRI( -1, A, 1, IP, W, LW, INFO )
173          CALL CHKXER( 'SGETRI', INFOT, NOUT, LERR, OK )
174          INFOT = 3
175          CALL SGETRI( 2, A, 1, IP, W, LW, INFO )
176          CALL CHKXER( 'SGETRI', INFOT, NOUT, LERR, OK )
177 *
178 *        SGETRS
179 *
180          SRNAMT = 'SGETRS'
181          INFOT = 1
182          CALL SGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
183          CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK )
184          INFOT = 2
185          CALL SGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO )
186          CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK )
187          INFOT = 3
188          CALL SGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO )
189          CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK )
190          INFOT = 5
191          CALL SGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO )
192          CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK )
193          INFOT = 8
194          CALL SGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO )
195          CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK )
196 *
197 *        SGERFS
198 *
199          SRNAMT = 'SGERFS'
200          INFOT = 1
201          CALL SGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
202      $                IW, INFO )
203          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
204          INFOT = 2
205          CALL SGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
206      $                W, IW, INFO )
207          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
208          INFOT = 3
209          CALL SGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
210      $                W, IW, INFO )
211          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
212          INFOT = 5
213          CALL SGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
214      $                IW, INFO )
215          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
216          INFOT = 7
217          CALL SGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
218      $                IW, INFO )
219          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
220          INFOT = 10
221          CALL SGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
222      $                IW, INFO )
223          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
224          INFOT = 12
225          CALL SGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
226      $                IW, INFO )
227          CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK )
228 *
229 *        SGERFSX
230 *
231          N_ERR_BNDS = 3
232          NPARAMS = 0
233          SRNAMT = 'SGERFSX'
234          INFOT = 1
235          CALL SGERFSX( '/', 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( 'SGERFSX', INFOT, NOUT, LERR, OK )
239          INFOT = 2
240          EQ = '/'
241          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
245          INFOT = 3
246          EQ = 'R'
247          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
251          INFOT = 4
252          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
256          INFOT = 6
257          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
261          INFOT = 8
262          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
266          INFOT = 13
267          EQ = 'C'
268          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
272          INFOT = 15
273          CALL SGERFSX( '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( 'SGERFSX', INFOT, NOUT, LERR, OK )
277 *
278 *        SGECON
279 *
280          SRNAMT = 'SGECON'
281          INFOT = 1
282          CALL SGECON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
283          CALL CHKXER( 'SGECON', INFOT, NOUT, LERR, OK )
284          INFOT = 2
285          CALL SGECON( '1', -1, A, 1, ANRM, RCOND, W, IW, INFO )
286          CALL CHKXER( 'SGECON', INFOT, NOUT, LERR, OK )
287          INFOT = 4
288          CALL SGECON( '1', 2, A, 1, ANRM, RCOND, W, IW, INFO )
289          CALL CHKXER( 'SGECON', INFOT, NOUT, LERR, OK )
290 *
291 *        SGEEQU
292 *
293          SRNAMT = 'SGEEQU'
294          INFOT = 1
295          CALL SGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
296          CALL CHKXER( 'SGEEQU', INFOT, NOUT, LERR, OK )
297          INFOT = 2
298          CALL SGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
299          CALL CHKXER( 'SGEEQU', INFOT, NOUT, LERR, OK )
300          INFOT = 4
301          CALL SGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
302          CALL CHKXER( 'SGEEQU', INFOT, NOUT, LERR, OK )
303 *
304 *        SGEEQUB
305 *
306          SRNAMT = 'SGEEQUB'
307          INFOT = 1
308          CALL SGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
309          CALL CHKXER( 'SGEEQUB', INFOT, NOUT, LERR, OK )
310          INFOT = 2
311          CALL SGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
312          CALL CHKXER( 'SGEEQUB', INFOT, NOUT, LERR, OK )
313          INFOT = 4
314          CALL SGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
315          CALL CHKXER( 'SGEEQUB', 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 *        SGBTRF
323 *
324          SRNAMT = 'SGBTRF'
325          INFOT = 1
326          CALL SGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
327          CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK )
328          INFOT = 2
329          CALL SGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
330          CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK )
331          INFOT = 3
332          CALL SGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
333          CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK )
334          INFOT = 4
335          CALL SGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
336          CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK )
337          INFOT = 6
338          CALL SGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
339          CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK )
340 *
341 *        SGBTF2
342 *
343          SRNAMT = 'SGBTF2'
344          INFOT = 1
345          CALL SGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
346          CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK )
347          INFOT = 2
348          CALL SGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
349          CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK )
350          INFOT = 3
351          CALL SGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
352          CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK )
353          INFOT = 4
354          CALL SGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
355          CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK )
356          INFOT = 6
357          CALL SGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
358          CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK )
359 *
360 *        SGBTRS
361 *
362          SRNAMT = 'SGBTRS'
363          INFOT = 1
364          CALL SGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
365          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
366          INFOT = 2
367          CALL SGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
368          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
369          INFOT = 3
370          CALL SGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
371          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
372          INFOT = 4
373          CALL SGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
374          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
375          INFOT = 5
376          CALL SGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
377          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
378          INFOT = 7
379          CALL SGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
380          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
381          INFOT = 10
382          CALL SGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
383          CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK )
384 *
385 *        SGBRFS
386 *
387          SRNAMT = 'SGBRFS'
388          INFOT = 1
389          CALL SGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
390      $                R2, W, IW, INFO )
391          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
392          INFOT = 2
393          CALL SGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
394      $                R2, W, IW, INFO )
395          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
396          INFOT = 3
397          CALL SGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
398      $                R2, W, IW, INFO )
399          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
400          INFOT = 4
401          CALL SGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
402      $                R2, W, IW, INFO )
403          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
404          INFOT = 5
405          CALL SGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
406      $                R2, W, IW, INFO )
407          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
408          INFOT = 7
409          CALL SGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
410      $                R2, W, IW, INFO )
411          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
412          INFOT = 9
413          CALL SGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
414      $                R2, W, IW, INFO )
415          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
416          INFOT = 12
417          CALL SGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
418      $                R2, W, IW, INFO )
419          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
420          INFOT = 14
421          CALL SGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
422      $                R2, W, IW, INFO )
423          CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK )
424 *
425 *        SGBRFSX
426 *
427          N_ERR_BNDS = 3
428          NPARAMS = 0
429          SRNAMT = 'SGBRFSX'
430          INFOT = 1
431          CALL SGBRFSX( '/', 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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
435          INFOT = 2
436          EQ = '/'
437          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
441          INFOT = 3
442          EQ = 'R'
443          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
447          INFOT = 4
448          EQ = 'R'
449          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
453          INFOT = 5
454          EQ = 'R'
455          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
459          INFOT = 6
460          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
464          INFOT = 8
465          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
469          INFOT = 10
470          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
474          INFOT = 13
475          EQ = 'C'
476          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
480          INFOT = 15
481          CALL SGBRFSX( '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( 'SGBRFSX', INFOT, NOUT, LERR, OK )
485 *
486 *        SGBCON
487 *
488          SRNAMT = 'SGBCON'
489          INFOT = 1
490          CALL SGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, INFO )
491          CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK )
492          INFOT = 2
493          CALL SGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, IW,
494      $                INFO )
495          CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK )
496          INFOT = 3
497          CALL SGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, IW,
498      $                INFO )
499          CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK )
500          INFOT = 4
501          CALL SGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, IW,
502      $                INFO )
503          CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK )
504          INFOT = 6
505          CALL SGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, IW, INFO )
506          CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK )
507 *
508 *        SGBEQU
509 *
510          SRNAMT = 'SGBEQU'
511          INFOT = 1
512          CALL SGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
513      $                INFO )
514          CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK )
515          INFOT = 2
516          CALL SGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
517      $                INFO )
518          CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK )
519          INFOT = 3
520          CALL SGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
521      $                INFO )
522          CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK )
523          INFOT = 4
524          CALL SGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
525      $                INFO )
526          CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK )
527          INFOT = 6
528          CALL SGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
529      $                INFO )
530          CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK )
531 *
532 *        SGBEQUB
533 *
534          SRNAMT = 'SGBEQUB'
535          INFOT = 1
536          CALL SGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
537      $                INFO )
538          CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK )
539          INFOT = 2
540          CALL SGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
541      $                INFO )
542          CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK )
543          INFOT = 3
544          CALL SGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
545      $                INFO )
546          CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK )
547          INFOT = 4
548          CALL SGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
549      $                INFO )
550          CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK )
551          INFOT = 6
552          CALL SGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
553      $                INFO )
554          CALL CHKXER( 'SGBEQUB', 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 SERRGE
564 *
565       END