1       SUBROUTINE SERRVX( PATH, NUNIT )
  2 *
  3 *  -- LAPACK test routine (version 3.1.1) --
  4 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
  5 *     January 2007
  6 *
  7 *     .. Scalar Arguments ..
  8       CHARACTER*3        PATH
  9       INTEGER            NUNIT
 10 *     ..
 11 *
 12 *  Purpose
 13 *  =======
 14 *
 15 *  SERRVX tests the error exits for the REAL driver routines
 16 *  for solving linear systems of equations.
 17 *
 18 *  Arguments
 19 *  =========
 20 *
 21 *  PATH    (input) CHARACTER*3
 22 *          The LAPACK path name for the routines to be tested.
 23 *
 24 *  NUNIT   (input) INTEGER
 25 *          The unit number for output.
 26 *
 27 *  =====================================================================
 28 *
 29 *     .. Parameters ..
 30       INTEGER            NMAX
 31       PARAMETER          ( NMAX = 4 )
 32 *     ..
 33 *     .. Local Scalars ..
 34       CHARACTER          EQ
 35       CHARACTER*2        C2
 36       INTEGER            I, INFO, J
 37       REAL               RCOND
 38 *     ..
 39 *     .. Local Arrays ..
 40       INTEGER            IP( NMAX ), IW( NMAX )
 41       REAL               A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
 42      $                   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
 43      $                   W( 2*NMAX ), X( NMAX )
 44 *     ..
 45 *     .. External Functions ..
 46       LOGICAL            LSAMEN
 47       EXTERNAL           LSAMEN
 48 *     ..
 49 *     .. External Subroutines ..
 50       EXTERNAL           CHKXER, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV,
 51      $                   SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV,
 52      $                   SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV,
 53      $                   SSYSVX
 54 *     ..
 55 *     .. Scalars in Common ..
 56       LOGICAL            LERR, OK
 57       CHARACTER*32       SRNAMT
 58       INTEGER            INFOT, NOUT
 59 *     ..
 60 *     .. Common blocks ..
 61       COMMON             / INFOC / INFOT, NOUT, OK, LERR
 62       COMMON             / SRNAMC / SRNAMT
 63 *     ..
 64 *     .. Intrinsic Functions ..
 65       INTRINSIC          REAL
 66 *     ..
 67 *     .. Executable Statements ..
 68 *
 69       NOUT = NUNIT
 70       WRITE( NOUT, FMT = * )
 71       C2 = PATH( 23 )
 72 *
 73 *     Set the variables to innocuous values.
 74 *
 75       DO 20 J = 1, NMAX
 76          DO 10 I = 1, NMAX
 77             A( I, J ) = 1/ REAL( I+J )
 78             AF( I, J ) = 1/ REAL( I+J )
 79    10    CONTINUE
 80          B( J ) = 0.
 81          R1( J ) = 0.
 82          R2( J ) = 0.
 83          W( J ) = 0.
 84          X( J ) = 0.
 85          C( J ) = 0.
 86          R( J ) = 0.
 87          IP( J ) = J
 88    20 CONTINUE
 89       EQ = ' '
 90       OK = .TRUE.
 91 *
 92       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
 93 *
 94 *        SGESV
 95 *
 96          SRNAMT = 'SGESV '
 97          INFOT = 1
 98          CALL SGESV( -10, A, 1, IP, B, 1, INFO )
 99          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
100          INFOT = 2
101          CALL SGESV( 0-1, A, 1, IP, B, 1, INFO )
102          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
103          INFOT = 4
104          CALL SGESV( 21, A, 1, IP, B, 2, INFO )
105          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
106          INFOT = 7
107          CALL SGESV( 21, A, 2, IP, B, 1, INFO )
108          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
109 *
110 *        SGESVX
111 *
112          SRNAMT = 'SGESVX'
113          INFOT = 1
114          CALL SGESVX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
115      $                X, 1, RCOND, R1, R2, W, IW, INFO )
116          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
117          INFOT = 2
118          CALL SGESVX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
119      $                X, 1, RCOND, R1, R2, W, IW, INFO )
120          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
121          INFOT = 3
122          CALL SGESVX( 'N''N'-10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
123      $                X, 1, RCOND, R1, R2, W, IW, INFO )
124          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
125          INFOT = 4
126          CALL SGESVX( 'N''N'0-1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
127      $                X, 1, RCOND, R1, R2, W, IW, INFO )
128          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
129          INFOT = 6
130          CALL SGESVX( 'N''N'21, A, 1, AF, 2, IP, EQ, R, C, B, 2,
131      $                X, 2, RCOND, R1, R2, W, IW, INFO )
132          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
133          INFOT = 8
134          CALL SGESVX( 'N''N'21, A, 2, AF, 1, IP, EQ, R, C, B, 2,
135      $                X, 2, RCOND, R1, R2, W, IW, INFO )
136          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
137          INFOT = 10
138          EQ = '/'
139          CALL SGESVX( 'F''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
140      $                X, 1, RCOND, R1, R2, W, IW, INFO )
141          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
142          INFOT = 11
143          EQ = 'R'
144          CALL SGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
145      $                X, 1, RCOND, R1, R2, W, IW, INFO )
146          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
147          INFOT = 12
148          EQ = 'C'
149          CALL SGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
150      $                X, 1, RCOND, R1, R2, W, IW, INFO )
151          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
152          INFOT = 14
153          CALL SGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 1,
154      $                X, 2, RCOND, R1, R2, W, IW, INFO )
155          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
156          INFOT = 16
157          CALL SGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 2,
158      $                X, 1, RCOND, R1, R2, W, IW, INFO )
159          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
160 *
161       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
162 *
163 *        SGBSV
164 *
165          SRNAMT = 'SGBSV '
166          INFOT = 1
167          CALL SGBSV( -1000, A, 1, IP, B, 1, INFO )
168          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
169          INFOT = 2
170          CALL SGBSV( 1-100, A, 1, IP, B, 1, INFO )
171          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
172          INFOT = 3
173          CALL SGBSV( 10-10, A, 1, IP, B, 1, INFO )
174          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
175          INFOT = 4
176          CALL SGBSV( 000-1, A, 1, IP, B, 1, INFO )
177          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
178          INFOT = 6
179          CALL SGBSV( 1110, A, 3, IP, B, 1, INFO )
180          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
181          INFOT = 9
182          CALL SGBSV( 2000, A, 1, IP, B, 1, INFO )
183          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
184 *
185 *        SGBSVX
186 *
187          SRNAMT = 'SGBSVX'
188          INFOT = 1
189          CALL SGBSVX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
190      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
191          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
192          INFOT = 2
193          CALL SGBSVX( 'N''/'0000, A, 1, AF, 1, IP, EQ, R, C,
194      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
195          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
196          INFOT = 3
197          CALL SGBSVX( 'N''N'-1000, A, 1, AF, 1, IP, EQ, R, C,
198      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
199          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
200          INFOT = 4
201          CALL SGBSVX( 'N''N'1-100, A, 1, AF, 1, IP, EQ, R, C,
202      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
203          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
204          INFOT = 5
205          CALL SGBSVX( 'N''N'10-10, A, 1, AF, 1, IP, EQ, R, C,
206      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
207          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
208          INFOT = 6
209          CALL SGBSVX( 'N''N'000-1, A, 1, AF, 1, IP, EQ, R, C,
210      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
211          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
212          INFOT = 8
213          CALL SGBSVX( 'N''N'1110, A, 2, AF, 4, IP, EQ, R, C,
214      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
215          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
216          INFOT = 10
217          CALL SGBSVX( 'N''N'1110, A, 3, AF, 3, IP, EQ, R, C,
218      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
219          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
220          INFOT = 12
221          EQ = '/'
222          CALL SGBSVX( 'F''N'0000, A, 1, AF, 1, IP, EQ, R, C,
223      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
224          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
225          INFOT = 13
226          EQ = 'R'
227          CALL SGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
228      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
229          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
230          INFOT = 14
231          EQ = 'C'
232          CALL SGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
233      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
234          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
235          INFOT = 16
236          CALL SGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
237      $                B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
238          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
239          INFOT = 18
240          CALL SGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
241      $                B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
242          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
243 *
244       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
245 *
246 *        SGTSV
247 *
248          SRNAMT = 'SGTSV '
249          INFOT = 1
250          CALL SGTSV( -10, A( 11 ), A( 12 ), A( 13 ), B, 1,
251      $               INFO )
252          CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
253          INFOT = 2
254          CALL SGTSV( 0-1, A( 11 ), A( 12 ), A( 13 ), B, 1,
255      $               INFO )
256          CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
257          INFOT = 7
258          CALL SGTSV( 20, A( 11 ), A( 12 ), A( 13 ), B, 1, INFO )
259          CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
260 *
261 *        SGTSVX
262 *
263          SRNAMT = 'SGTSVX'
264          INFOT = 1
265          CALL SGTSVX( '/''N'00, A( 11 ), A( 12 ), A( 13 ),
266      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
267      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
268          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
269          INFOT = 2
270          CALL SGTSVX( 'N''/'00, A( 11 ), A( 12 ), A( 13 ),
271      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
272      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
273          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
274          INFOT = 3
275          CALL SGTSVX( 'N''N'-10, A( 11 ), A( 12 ), A( 13 ),
276      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
277      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
278          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
279          INFOT = 4
280          CALL SGTSVX( 'N''N'0-1, A( 11 ), A( 12 ), A( 13 ),
281      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
282      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
283          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
284          INFOT = 14
285          CALL SGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
286      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
287      $                IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
288          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
289          INFOT = 16
290          CALL SGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
291      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
292      $                IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
293          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
294 *
295       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
296 *
297 *        SPOSV
298 *
299          SRNAMT = 'SPOSV '
300          INFOT = 1
301          CALL SPOSV( '/'00, A, 1, B, 1, INFO )
302          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
303          INFOT = 2
304          CALL SPOSV( 'U'-10, A, 1, B, 1, INFO )
305          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
306          INFOT = 3
307          CALL SPOSV( 'U'0-1, A, 1, B, 1, INFO )
308          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
309          INFOT = 5
310          CALL SPOSV( 'U'20, A, 1, B, 2, INFO )
311          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
312          INFOT = 7
313          CALL SPOSV( 'U'20, A, 2, B, 1, INFO )
314          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
315 *
316 *        SPOSVX
317 *
318          SRNAMT = 'SPOSVX'
319          INFOT = 1
320          CALL SPOSVX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
321      $                RCOND, R1, R2, W, IW, INFO )
322          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
323          INFOT = 2
324          CALL SPOSVX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
325      $                RCOND, R1, R2, W, IW, INFO )
326          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
327          INFOT = 3
328          CALL SPOSVX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
329      $                RCOND, R1, R2, W, IW, INFO )
330          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
331          INFOT = 4
332          CALL SPOSVX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
333      $                RCOND, R1, R2, W, IW, INFO )
334          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
335          INFOT = 6
336          CALL SPOSVX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
337      $                RCOND, R1, R2, W, IW, INFO )
338          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
339          INFOT = 8
340          CALL SPOSVX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
341      $                RCOND, R1, R2, W, IW, INFO )
342          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
343          INFOT = 9
344          EQ = '/'
345          CALL SPOSVX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
346      $                RCOND, R1, R2, W, IW, INFO )
347          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
348          INFOT = 10
349          EQ = 'Y'
350          CALL SPOSVX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
351      $                RCOND, R1, R2, W, IW, INFO )
352          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
353          INFOT = 12
354          CALL SPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
355      $                RCOND, R1, R2, W, IW, INFO )
356          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
357          INFOT = 14
358          CALL SPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
359      $                RCOND, R1, R2, W, IW, INFO )
360          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
361 *
362       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
363 *
364 *        SPPSV
365 *
366          SRNAMT = 'SPPSV '
367          INFOT = 1
368          CALL SPPSV( '/'00, A, B, 1, INFO )
369          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
370          INFOT = 2
371          CALL SPPSV( 'U'-10, A, B, 1, INFO )
372          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
373          INFOT = 3
374          CALL SPPSV( 'U'0-1, A, B, 1, INFO )
375          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
376          INFOT = 6
377          CALL SPPSV( 'U'20, A, B, 1, INFO )
378          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
379 *
380 *        SPPSVX
381 *
382          SRNAMT = 'SPPSVX'
383          INFOT = 1
384          CALL SPPSVX( '/''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
385      $                R1, R2, W, IW, INFO )
386          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
387          INFOT = 2
388          CALL SPPSVX( 'N''/'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
389      $                R1, R2, W, IW, INFO )
390          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
391          INFOT = 3
392          CALL SPPSVX( 'N''U'-10, A, AF, EQ, C, B, 1, X, 1, RCOND,
393      $                R1, R2, W, IW, INFO )
394          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
395          INFOT = 4
396          CALL SPPSVX( 'N''U'0-1, A, AF, EQ, C, B, 1, X, 1, RCOND,
397      $                R1, R2, W, IW, INFO )
398          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
399          INFOT = 7
400          EQ = '/'
401          CALL SPPSVX( 'F''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
402      $                R1, R2, W, IW, INFO )
403          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
404          INFOT = 8
405          EQ = 'Y'
406          CALL SPPSVX( 'F''U'10, A, AF, EQ, C, B, 1, X, 1, RCOND,
407      $                R1, R2, W, IW, INFO )
408          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
409          INFOT = 10
410          CALL SPPSVX( 'N''U'20, A, AF, EQ, C, B, 1, X, 2, RCOND,
411      $                R1, R2, W, IW, INFO )
412          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
413          INFOT = 12
414          CALL SPPSVX( 'N''U'20, A, AF, EQ, C, B, 2, X, 1, RCOND,
415      $                R1, R2, W, IW, INFO )
416          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
417 *
418       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
419 *
420 *        SPBSV
421 *
422          SRNAMT = 'SPBSV '
423          INFOT = 1
424          CALL SPBSV( '/'000, A, 1, B, 1, INFO )
425          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
426          INFOT = 2
427          CALL SPBSV( 'U'-100, A, 1, B, 1, INFO )
428          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
429          INFOT = 3
430          CALL SPBSV( 'U'1-10, A, 1, B, 1, INFO )
431          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
432          INFOT = 4
433          CALL SPBSV( 'U'00-1, A, 1, B, 1, INFO )
434          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
435          INFOT = 6
436          CALL SPBSV( 'U'110, A, 1, B, 2, INFO )
437          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
438          INFOT = 8
439          CALL SPBSV( 'U'200, A, 1, B, 1, INFO )
440          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
441 *
442 *        SPBSVX
443 *
444          SRNAMT = 'SPBSVX'
445          INFOT = 1
446          CALL SPBSVX( '/''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
447      $                RCOND, R1, R2, W, IW, INFO )
448          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
449          INFOT = 2
450          CALL SPBSVX( 'N''/'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
451      $                RCOND, R1, R2, W, IW, INFO )
452          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
453          INFOT = 3
454          CALL SPBSVX( 'N''U'-100, A, 1, AF, 1, EQ, C, B, 1, X,
455      $                1, RCOND, R1, R2, W, IW, INFO )
456          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
457          INFOT = 4
458          CALL SPBSVX( 'N''U'1-10, A, 1, AF, 1, EQ, C, B, 1, X,
459      $                1, RCOND, R1, R2, W, IW, INFO )
460          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
461          INFOT = 5
462          CALL SPBSVX( 'N''U'00-1, A, 1, AF, 1, EQ, C, B, 1, X,
463      $                1, RCOND, R1, R2, W, IW, INFO )
464          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
465          INFOT = 7
466          CALL SPBSVX( 'N''U'110, A, 1, AF, 2, EQ, C, B, 2, X, 2,
467      $                RCOND, R1, R2, W, IW, INFO )
468          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
469          INFOT = 9
470          CALL SPBSVX( 'N''U'110, A, 2, AF, 1, EQ, C, B, 2, X, 2,
471      $                RCOND, R1, R2, W, IW, INFO )
472          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
473          INFOT = 10
474          EQ = '/'
475          CALL SPBSVX( 'F''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
476      $                RCOND, R1, R2, W, IW, INFO )
477          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
478          INFOT = 11
479          EQ = 'Y'
480          CALL SPBSVX( 'F''U'100, A, 1, AF, 1, EQ, C, B, 1, X, 1,
481      $                RCOND, R1, R2, W, IW, INFO )
482          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
483          INFOT = 13
484          CALL SPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 1, X, 2,
485      $                RCOND, R1, R2, W, IW, INFO )
486          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
487          INFOT = 15
488          CALL SPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 2, X, 1,
489      $                RCOND, R1, R2, W, IW, INFO )
490          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
491 *
492       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
493 *
494 *        SPTSV
495 *
496          SRNAMT = 'SPTSV '
497          INFOT = 1
498          CALL SPTSV( -10, A( 11 ), A( 12 ), B, 1, INFO )
499          CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
500          INFOT = 2
501          CALL SPTSV( 0-1, A( 11 ), A( 12 ), B, 1, INFO )
502          CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
503          INFOT = 6
504          CALL SPTSV( 20, A( 11 ), A( 12 ), B, 1, INFO )
505          CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
506 *
507 *        SPTSVX
508 *
509          SRNAMT = 'SPTSVX'
510          INFOT = 1
511          CALL SPTSVX( '/'00, A( 11 ), A( 12 ), AF( 11 ),
512      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
513          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
514          INFOT = 2
515          CALL SPTSVX( 'N'-10, A( 11 ), A( 12 ), AF( 11 ),
516      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
517          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
518          INFOT = 3
519          CALL SPTSVX( 'N'0-1, A( 11 ), A( 12 ), AF( 11 ),
520      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
521          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
522          INFOT = 9
523          CALL SPTSVX( 'N'20, A( 11 ), A( 12 ), AF( 11 ),
524      $                AF( 12 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
525          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
526          INFOT = 11
527          CALL SPTSVX( 'N'20, A( 11 ), A( 12 ), AF( 11 ),
528      $                AF( 12 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
529          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
530 *
531       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
532 *
533 *        SSYSV
534 *
535          SRNAMT = 'SSYSV '
536          INFOT = 1
537          CALL SSYSV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
538          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
539          INFOT = 2
540          CALL SSYSV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
541          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
542          INFOT = 3
543          CALL SSYSV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
544          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
545          INFOT = 8
546          CALL SSYSV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
547          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
548 *
549 *        SSYSVX
550 *
551          SRNAMT = 'SSYSVX'
552          INFOT = 1
553          CALL SSYSVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
554      $                RCOND, R1, R2, W, 1, IW, INFO )
555          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
556          INFOT = 2
557          CALL SSYSVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
558      $                RCOND, R1, R2, W, 1, IW, INFO )
559          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
560          INFOT = 3
561          CALL SSYSVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
562      $                RCOND, R1, R2, W, 1, IW, INFO )
563          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
564          INFOT = 4
565          CALL SSYSVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
566      $                RCOND, R1, R2, W, 1, IW, INFO )
567          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
568          INFOT = 6
569          CALL SSYSVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
570      $                RCOND, R1, R2, W, 4, IW, INFO )
571          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
572          INFOT = 8
573          CALL SSYSVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
574      $                RCOND, R1, R2, W, 4, IW, INFO )
575          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
576          INFOT = 11
577          CALL SSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
578      $                RCOND, R1, R2, W, 4, IW, INFO )
579          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
580          INFOT = 13
581          CALL SSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
582      $                RCOND, R1, R2, W, 4, IW, INFO )
583          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
584          INFOT = 18
585          CALL SSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
586      $                RCOND, R1, R2, W, 3, IW, INFO )
587          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
588 *
589       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
590 *
591 *        SSPSV
592 *
593          SRNAMT = 'SSPSV '
594          INFOT = 1
595          CALL SSPSV( '/'00, A, IP, B, 1, INFO )
596          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
597          INFOT = 2
598          CALL SSPSV( 'U'-10, A, IP, B, 1, INFO )
599          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
600          INFOT = 3
601          CALL SSPSV( 'U'0-1, A, IP, B, 1, INFO )
602          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
603          INFOT = 7
604          CALL SSPSV( 'U'20, A, IP, B, 1, INFO )
605          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
606 *
607 *        SSPSVX
608 *
609          SRNAMT = 'SSPSVX'
610          INFOT = 1
611          CALL SSPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
612      $                R2, W, IW, INFO )
613          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
614          INFOT = 2
615          CALL SSPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
616      $                R2, W, IW, INFO )
617          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
618          INFOT = 3
619          CALL SSPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
620      $                R2, W, IW, INFO )
621          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
622          INFOT = 4
623          CALL SSPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
624      $                R2, W, IW, INFO )
625          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
626          INFOT = 9
627          CALL SSPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
628      $                R2, W, IW, INFO )
629          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
630          INFOT = 11
631          CALL SSPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
632      $                R2, W, IW, INFO )
633          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
634       END IF
635 *
636 *     Print a summary line.
637 *
638       IF( OK ) THEN
639          WRITE( NOUT, FMT = 9999 )PATH
640       ELSE
641          WRITE( NOUT, FMT = 9998 )PATH
642       END IF
643 *
644  9999 FORMAT1X, A3, ' drivers passed the tests of the error exits' )
645  9998 FORMAT' *** ', A3, ' drivers failed the tests of the error ',
646      $      'exits ***' )
647 *
648       RETURN
649 *
650 *     End of SERRVX
651 *
652       END