1*> \brief \b SERRPOX
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 SERRPO( 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*> SERRPO tests the error exits for the REAL routines
25*> for symmetric positive definite matrices.
26*>
27*> Note that this file is used only when the XBLAS are available,
28*> otherwise serrpo.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 SERRPO( 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      REAL               ANRM, RCOND, BERR
82*     ..
83*     .. Local Arrays ..
84      INTEGER            IW( NMAX )
85      REAL               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, SPBCON, SPBEQU, SPBRFS, SPBTF2,
96     $                   SPBTRF, SPBTRS, SPOCON, SPOEQU, SPORFS, SPOTF2,
97     $                   SPOTRF, SPOTRI, SPOTRS, SPPCON, SPPEQU, SPPRFS,
98     $                   SPPTRF, SPPTRI, SPPTRS, SPOEQUB, SPORFSX
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         S( J ) = 0.
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*        SPOTRF
141*
142         SRNAMT = 'SPOTRF'
143         INFOT = 1
144         CALL SPOTRF( '/', 0, A, 1, INFO )
145         CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
146         INFOT = 2
147         CALL SPOTRF( 'U', -1, A, 1, INFO )
148         CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
149         INFOT = 4
150         CALL SPOTRF( 'U', 2, A, 1, INFO )
151         CALL CHKXER( 'SPOTRF', INFOT, NOUT, LERR, OK )
152*
153*        SPOTF2
154*
155         SRNAMT = 'SPOTF2'
156         INFOT = 1
157         CALL SPOTF2( '/', 0, A, 1, INFO )
158         CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
159         INFOT = 2
160         CALL SPOTF2( 'U', -1, A, 1, INFO )
161         CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
162         INFOT = 4
163         CALL SPOTF2( 'U', 2, A, 1, INFO )
164         CALL CHKXER( 'SPOTF2', INFOT, NOUT, LERR, OK )
165*
166*        SPOTRI
167*
168         SRNAMT = 'SPOTRI'
169         INFOT = 1
170         CALL SPOTRI( '/', 0, A, 1, INFO )
171         CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
172         INFOT = 2
173         CALL SPOTRI( 'U', -1, A, 1, INFO )
174         CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
175         INFOT = 4
176         CALL SPOTRI( 'U', 2, A, 1, INFO )
177         CALL CHKXER( 'SPOTRI', INFOT, NOUT, LERR, OK )
178*
179*        SPOTRS
180*
181         SRNAMT = 'SPOTRS'
182         INFOT = 1
183         CALL SPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
184         CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
185         INFOT = 2
186         CALL SPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
187         CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
188         INFOT = 3
189         CALL SPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
190         CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
191         INFOT = 5
192         CALL SPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
193         CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
194         INFOT = 7
195         CALL SPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
196         CALL CHKXER( 'SPOTRS', INFOT, NOUT, LERR, OK )
197*
198*        SPORFS
199*
200         SRNAMT = 'SPORFS'
201         INFOT = 1
202         CALL SPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW,
203     $                INFO )
204         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
205         INFOT = 2
206         CALL SPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
207     $                IW, INFO )
208         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
209         INFOT = 3
210         CALL SPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
211     $                IW, INFO )
212         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
213         INFOT = 5
214         CALL SPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW,
215     $                INFO )
216         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
217         INFOT = 7
218         CALL SPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW,
219     $                INFO )
220         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
221         INFOT = 9
222         CALL SPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW,
223     $                INFO )
224         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
225         INFOT = 11
226         CALL SPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW,
227     $                INFO )
228         CALL CHKXER( 'SPORFS', INFOT, NOUT, LERR, OK )
229*
230*        SPORFSX
231*
232         N_ERR_BNDS = 3
233         NPARAMS = 0
234         SRNAMT = 'SPORFSX'
235         INFOT = 1
236         CALL SPORFSX( '/', 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( 'SPORFSX', INFOT, NOUT, LERR, OK )
240         INFOT = 2
241         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
245         EQ = 'N'
246         INFOT = 3
247         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
251         INFOT = 4
252         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
256         INFOT = 6
257         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
261         INFOT = 8
262         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
266         INFOT = 11
267         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
271         INFOT = 13
272         CALL SPORFSX( '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( 'SPORFSX', INFOT, NOUT, LERR, OK )
276*
277*        SPOCON
278*
279         SRNAMT = 'SPOCON'
280         INFOT = 1
281         CALL SPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO )
282         CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
283         INFOT = 2
284         CALL SPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO )
285         CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
286         INFOT = 4
287         CALL SPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO )
288         CALL CHKXER( 'SPOCON', INFOT, NOUT, LERR, OK )
289*
290*        SPOEQU
291*
292         SRNAMT = 'SPOEQU'
293         INFOT = 1
294         CALL SPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
295         CALL CHKXER( 'SPOEQU', INFOT, NOUT, LERR, OK )
296         INFOT = 3
297         CALL SPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
298         CALL CHKXER( 'SPOEQU', INFOT, NOUT, LERR, OK )
299*
300*        SPOEQUB
301*
302         SRNAMT = 'SPOEQUB'
303         INFOT = 1
304         CALL SPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
305         CALL CHKXER( 'SPOEQUB', INFOT, NOUT, LERR, OK )
306         INFOT = 3
307         CALL SPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
308         CALL CHKXER( 'SPOEQUB', 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*        SPPTRF
316*
317         SRNAMT = 'SPPTRF'
318         INFOT = 1
319         CALL SPPTRF( '/', 0, A, INFO )
320         CALL CHKXER( 'SPPTRF', INFOT, NOUT, LERR, OK )
321         INFOT = 2
322         CALL SPPTRF( 'U', -1, A, INFO )
323         CALL CHKXER( 'SPPTRF', INFOT, NOUT, LERR, OK )
324*
325*        SPPTRI
326*
327         SRNAMT = 'SPPTRI'
328         INFOT = 1
329         CALL SPPTRI( '/', 0, A, INFO )
330         CALL CHKXER( 'SPPTRI', INFOT, NOUT, LERR, OK )
331         INFOT = 2
332         CALL SPPTRI( 'U', -1, A, INFO )
333         CALL CHKXER( 'SPPTRI', INFOT, NOUT, LERR, OK )
334*
335*        SPPTRS
336*
337         SRNAMT = 'SPPTRS'
338         INFOT = 1
339         CALL SPPTRS( '/', 0, 0, A, B, 1, INFO )
340         CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
341         INFOT = 2
342         CALL SPPTRS( 'U', -1, 0, A, B, 1, INFO )
343         CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
344         INFOT = 3
345         CALL SPPTRS( 'U', 0, -1, A, B, 1, INFO )
346         CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
347         INFOT = 6
348         CALL SPPTRS( 'U', 2, 1, A, B, 1, INFO )
349         CALL CHKXER( 'SPPTRS', INFOT, NOUT, LERR, OK )
350*
351*        SPPRFS
352*
353         SRNAMT = 'SPPRFS'
354         INFOT = 1
355         CALL SPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
356     $                INFO )
357         CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
358         INFOT = 2
359         CALL SPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
360     $                INFO )
361         CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
362         INFOT = 3
363         CALL SPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW,
364     $                INFO )
365         CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
366         INFOT = 7
367         CALL SPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW,
368     $                INFO )
369         CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
370         INFOT = 9
371         CALL SPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW,
372     $                INFO )
373         CALL CHKXER( 'SPPRFS', INFOT, NOUT, LERR, OK )
374*
375*        SPPCON
376*
377         SRNAMT = 'SPPCON'
378         INFOT = 1
379         CALL SPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO )
380         CALL CHKXER( 'SPPCON', INFOT, NOUT, LERR, OK )
381         INFOT = 2
382         CALL SPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO )
383         CALL CHKXER( 'SPPCON', INFOT, NOUT, LERR, OK )
384*
385*        SPPEQU
386*
387         SRNAMT = 'SPPEQU'
388         INFOT = 1
389         CALL SPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
390         CALL CHKXER( 'SPPEQU', INFOT, NOUT, LERR, OK )
391         INFOT = 2
392         CALL SPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
393         CALL CHKXER( 'SPPEQU', 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*        SPBTRF
401*
402         SRNAMT = 'SPBTRF'
403         INFOT = 1
404         CALL SPBTRF( '/', 0, 0, A, 1, INFO )
405         CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
406         INFOT = 2
407         CALL SPBTRF( 'U', -1, 0, A, 1, INFO )
408         CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
409         INFOT = 3
410         CALL SPBTRF( 'U', 1, -1, A, 1, INFO )
411         CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
412         INFOT = 5
413         CALL SPBTRF( 'U', 2, 1, A, 1, INFO )
414         CALL CHKXER( 'SPBTRF', INFOT, NOUT, LERR, OK )
415*
416*        SPBTF2
417*
418         SRNAMT = 'SPBTF2'
419         INFOT = 1
420         CALL SPBTF2( '/', 0, 0, A, 1, INFO )
421         CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
422         INFOT = 2
423         CALL SPBTF2( 'U', -1, 0, A, 1, INFO )
424         CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
425         INFOT = 3
426         CALL SPBTF2( 'U', 1, -1, A, 1, INFO )
427         CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
428         INFOT = 5
429         CALL SPBTF2( 'U', 2, 1, A, 1, INFO )
430         CALL CHKXER( 'SPBTF2', INFOT, NOUT, LERR, OK )
431*
432*        SPBTRS
433*
434         SRNAMT = 'SPBTRS'
435         INFOT = 1
436         CALL SPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
437         CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
438         INFOT = 2
439         CALL SPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
440         CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
441         INFOT = 3
442         CALL SPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
443         CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
444         INFOT = 4
445         CALL SPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
446         CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
447         INFOT = 6
448         CALL SPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
449         CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
450         INFOT = 8
451         CALL SPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
452         CALL CHKXER( 'SPBTRS', INFOT, NOUT, LERR, OK )
453*
454*        SPBRFS
455*
456         SRNAMT = 'SPBRFS'
457         INFOT = 1
458         CALL SPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
459     $                IW, INFO )
460         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
461         INFOT = 2
462         CALL SPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
463     $                IW, INFO )
464         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
465         INFOT = 3
466         CALL SPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
467     $                IW, INFO )
468         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
469         INFOT = 4
470         CALL SPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
471     $                IW, INFO )
472         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
473         INFOT = 6
474         CALL SPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
475     $                IW, INFO )
476         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
477         INFOT = 8
478         CALL SPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
479     $                IW, INFO )
480         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
481         INFOT = 10
482         CALL SPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
483     $                IW, INFO )
484         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
485         INFOT = 12
486         CALL SPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
487     $                IW, INFO )
488         CALL CHKXER( 'SPBRFS', INFOT, NOUT, LERR, OK )
489*
490*        SPBCON
491*
492         SRNAMT = 'SPBCON'
493         INFOT = 1
494         CALL SPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO )
495         CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
496         INFOT = 2
497         CALL SPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO )
498         CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
499         INFOT = 3
500         CALL SPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO )
501         CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
502         INFOT = 5
503         CALL SPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO )
504         CALL CHKXER( 'SPBCON', INFOT, NOUT, LERR, OK )
505*
506*        SPBEQU
507*
508         SRNAMT = 'SPBEQU'
509         INFOT = 1
510         CALL SPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
511         CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
512         INFOT = 2
513         CALL SPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
514         CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
515         INFOT = 3
516         CALL SPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
517         CALL CHKXER( 'SPBEQU', INFOT, NOUT, LERR, OK )
518         INFOT = 5
519         CALL SPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
520         CALL CHKXER( 'SPBEQU', 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 SERRPO
530*
531      END
532