STYLE: Remove trailing whitespace in Fortran files
[platform/upstream/lapack.git] / TESTING / LIN / serrpox.f
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 2015
55 *
56 *> \ingroup single_lin
57 *
58 *  =====================================================================
59       SUBROUTINE SERRPO( PATH, NUNIT )
60 *
61 *  -- LAPACK test routine (version 3.6.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 2015
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', "/", -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