1       SUBROUTINE DERRVX( PATH, NUNIT )
  2 *
  3 *  -- LAPACK test routine (version 3.2.1) --
  4 *
  5 *  -- April 2009                                                   --
  6 *
  7 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
  8 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  9 *
 10 *     .. Scalar Arguments ..
 11       CHARACTER*3        PATH
 12       INTEGER            NUNIT
 13 *     ..
 14 *
 15 *  Purpose
 16 *  =======
 17 *
 18 *  DERRVX tests the error exits for the DOUBLE PRECISION driver routines
 19 *  for solving linear systems of equations.
 20 *
 21 *  Arguments
 22 *  =========
 23 *
 24 *  PATH    (input) CHARACTER*3
 25 *          The LAPACK path name for the routines to be tested.
 26 *
 27 *  NUNIT   (input) INTEGER
 28 *          The unit number for output.
 29 *
 30 *  =====================================================================
 31 *
 32 *     .. Parameters ..
 33       INTEGER            NMAX
 34       PARAMETER          ( NMAX = 4 )
 35 *     ..
 36 *     .. Local Scalars ..
 37       CHARACTER          EQ
 38       CHARACTER*2        C2
 39       INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
 40       DOUBLE PRECISION   RCOND, RPVGRW, BERR
 41 *     ..
 42 *     .. Local Arrays ..
 43       INTEGER            IP( NMAX ), IW( NMAX )
 44       DOUBLE PRECISION   A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
 45      $                   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
 46      $                   W( 2*NMAX ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ),
 47      $                   ERR_BNDS_C( NMAX, 3 ), PARAMS
 48 *     ..
 49 *     .. External Functions ..
 50       LOGICAL            LSAMEN
 51       EXTERNAL           LSAMEN
 52 *     ..
 53 *     .. External Subroutines ..
 54       EXTERNAL           CHKXER, DGBSV, DGBSVX, DGESV, DGESVX, DGTSV,
 55      $                   DGTSVX, DPBSV, DPBSVX, DPOSV, DPOSVX, DPPSV,
 56      $                   DPPSVX, DPTSV, DPTSVX, DSPSV, DSPSVX, DSYSV,
 57      $                   DSYSVX, DGESVXX, DSYSVXX, DPOSVXX, DGBSVXX
 58 *     ..
 59 *     .. Scalars in Common ..
 60       LOGICAL            LERR, OK
 61       CHARACTER*32       SRNAMT
 62       INTEGER            INFOT, NOUT
 63 *     ..
 64 *     .. Common blocks ..
 65       COMMON             / INFOC / INFOT, NOUT, OK, LERR
 66       COMMON             / SRNAMC / SRNAMT
 67 *     ..
 68 *     .. Intrinsic Functions ..
 69       INTRINSIC          DBLE
 70 *     ..
 71 *     .. Executable Statements ..
 72 *
 73       NOUT = NUNIT
 74       WRITE( NOUT, FMT = * )
 75       C2 = PATH( 23 )
 76 *
 77 *     Set the variables to innocuous values.
 78 *
 79       DO 20 J = 1, NMAX
 80          DO 10 I = 1, NMAX
 81             A( I, J ) = 1.D0 / DBLE( I+J )
 82             AF( I, J ) = 1.D0 / DBLE( I+J )
 83    10    CONTINUE
 84          B( J ) = 0.D0
 85          R1( J ) = 0.D0
 86          R2( J ) = 0.D0
 87          W( J ) = 0.D0
 88          X( J ) = 0.D0
 89          C( J ) = 0.D0
 90          R( J ) = 0.D0
 91          IP( J ) = J
 92    20 CONTINUE
 93       EQ = ' '
 94       OK = .TRUE.
 95 *
 96       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
 97 *
 98 *        DGESV
 99 *
100          SRNAMT = 'DGESV '
101          INFOT = 1
102          CALL DGESV( -10, A, 1, IP, B, 1, INFO )
103          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
104          INFOT = 2
105          CALL DGESV( 0-1, A, 1, IP, B, 1, INFO )
106          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
107          INFOT = 4
108          CALL DGESV( 21, A, 1, IP, B, 2, INFO )
109          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
110          INFOT = 7
111          CALL DGESV( 21, A, 2, IP, B, 1, INFO )
112          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
113 *
114 *        DGESVX
115 *
116          SRNAMT = 'DGESVX'
117          INFOT = 1
118          CALL DGESVX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
119      $                X, 1, RCOND, R1, R2, W, IW, INFO )
120          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
121          INFOT = 2
122          CALL DGESVX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
123      $                X, 1, RCOND, R1, R2, W, IW, INFO )
124          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
125          INFOT = 3
126          CALL DGESVX( 'N''N'-10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
127      $                X, 1, RCOND, R1, R2, W, IW, INFO )
128          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
129          INFOT = 4
130          CALL DGESVX( 'N''N'0-1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
131      $                X, 1, RCOND, R1, R2, W, IW, INFO )
132          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
133          INFOT = 6
134          CALL DGESVX( 'N''N'21, A, 1, AF, 2, IP, EQ, R, C, B, 2,
135      $                X, 2, RCOND, R1, R2, W, IW, INFO )
136          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
137          INFOT = 8
138          CALL DGESVX( 'N''N'21, A, 2, AF, 1, IP, EQ, R, C, B, 2,
139      $                X, 2, RCOND, R1, R2, W, IW, INFO )
140          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
141          INFOT = 10
142          EQ = '/'
143          CALL DGESVX( 'F''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
144      $                X, 1, RCOND, R1, R2, W, IW, INFO )
145          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
146          INFOT = 11
147          EQ = 'R'
148          CALL DGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
149      $                X, 1, RCOND, R1, R2, W, IW, INFO )
150          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
151          INFOT = 12
152          EQ = 'C'
153          CALL DGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
154      $                X, 1, RCOND, R1, R2, W, IW, INFO )
155          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
156          INFOT = 14
157          CALL DGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 1,
158      $                X, 2, RCOND, R1, R2, W, IW, INFO )
159          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
160          INFOT = 16
161          CALL DGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 2,
162      $                X, 1, RCOND, R1, R2, W, IW, INFO )
163          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
164 *
165 *        DGESVXX
166 *
167          N_ERR_BNDS = 3
168          NPARAMS = 0
169          SRNAMT = 'DGESVXX'
170          INFOT = 1
171          CALL DGESVXX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
172      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
173      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
174          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
175          INFOT = 2
176          CALL DGESVXX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
177      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
178      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
179          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
180          INFOT = 3
181          CALL DGESVXX( 'N''N'-10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
182      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
183      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
184          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
185          INFOT = 4
186          CALL DGESVXX( 'N''N'0-1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
187      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
188      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
189          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
190          INFOT = 6
191          CALL DGESVXX( 'N''N'21, A, 1, AF, 2, IP, EQ, R, C, B, 2,
192      $                X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
193      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
194          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
195          INFOT = 8
196          CALL DGESVXX( 'N''N'21, A, 2, AF, 1, IP, EQ, R, C, B, 2,
197      $                X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
198      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
199          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
200          INFOT = 10
201          EQ = '/'
202          CALL DGESVXX( 'F''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
203      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
204      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
205          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
206          INFOT = 11
207          EQ = 'R'
208          CALL DGESVXX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
209      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
210      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
211          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
212          INFOT = 12
213          EQ = 'C'
214          CALL DGESVXX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
215      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
216      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
217          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
218          INFOT = 14
219          CALL DGESVXX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 1,
220      $                X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
221      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
222          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
223          INFOT = 16
224          CALL DGESVXX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 2,
225      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
226      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
227          CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
228 *
229       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
230 *
231 *        DGBSV
232 *
233          SRNAMT = 'DGBSV '
234          INFOT = 1
235          CALL DGBSV( -1000, A, 1, IP, B, 1, INFO )
236          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
237          INFOT = 2
238          CALL DGBSV( 1-100, A, 1, IP, B, 1, INFO )
239          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
240          INFOT = 3
241          CALL DGBSV( 10-10, A, 1, IP, B, 1, INFO )
242          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
243          INFOT = 4
244          CALL DGBSV( 000-1, A, 1, IP, B, 1, INFO )
245          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
246          INFOT = 6
247          CALL DGBSV( 1110, A, 3, IP, B, 1, INFO )
248          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
249          INFOT = 9
250          CALL DGBSV( 2000, A, 1, IP, B, 1, INFO )
251          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
252 *
253 *        DGBSVX
254 *
255          SRNAMT = 'DGBSVX'
256          INFOT = 1
257          CALL DGBSVX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
258      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
259          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
260          INFOT = 2
261          CALL DGBSVX( 'N''/'0000, A, 1, AF, 1, IP, EQ, R, C,
262      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
263          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
264          INFOT = 3
265          CALL DGBSVX( 'N''N'-1000, A, 1, AF, 1, IP, EQ, R, C,
266      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
267          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
268          INFOT = 4
269          CALL DGBSVX( 'N''N'1-100, A, 1, AF, 1, IP, EQ, R, C,
270      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
271          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
272          INFOT = 5
273          CALL DGBSVX( 'N''N'10-10, A, 1, AF, 1, IP, EQ, R, C,
274      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
275          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
276          INFOT = 6
277          CALL DGBSVX( 'N''N'000-1, A, 1, AF, 1, IP, EQ, R, C,
278      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
279          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
280          INFOT = 8
281          CALL DGBSVX( 'N''N'1110, A, 2, AF, 4, IP, EQ, R, C,
282      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
283          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
284          INFOT = 10
285          CALL DGBSVX( 'N''N'1110, A, 3, AF, 3, IP, EQ, R, C,
286      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
287          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
288          INFOT = 12
289          EQ = '/'
290          CALL DGBSVX( 'F''N'0000, A, 1, AF, 1, IP, EQ, R, C,
291      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
292          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
293          INFOT = 13
294          EQ = 'R'
295          CALL DGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
296      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
297          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
298          INFOT = 14
299          EQ = 'C'
300          CALL DGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
301      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
302          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
303          INFOT = 16
304          CALL DGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
305      $                B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
306          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
307          INFOT = 18
308          CALL DGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
309      $                B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
310          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
311 *
312 *        DGBSVXX
313 *
314          N_ERR_BNDS = 3
315          NPARAMS = 0
316          SRNAMT = 'DGBSVXX'
317          INFOT = 1
318          CALL DGBSVXX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
319      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
320      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
321      $                INFO )
322          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
323          INFOT = 2
324          CALL DGBSVXX( 'N''/'0110, A, 1, AF, 1, IP, EQ, R, C,
325      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
326      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
327      $                INFO )
328          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
329          INFOT = 3
330          CALL DGBSVXX( 'N''N'-1110, A, 1, AF, 1, IP, EQ, R, C,
331      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
332      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
333      $                INFO )
334          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
335          INFOT = 4
336          CALL DGBSVXX( 'N''N'2-110, A, 1, AF, 1, IP, EQ,
337      $                R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
338      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
339      $                INFO )
340          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
341          INFOT = 5
342          CALL DGBSVXX( 'N''N'21-10, A, 1, AF, 1, IP, EQ,
343      $                R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
344      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
345      $                INFO )
346          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
347          INFOT = 6
348          CALL DGBSVXX( 'N''N'011-1, A, 1, AF, 1, IP, EQ, R, C,
349      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
350      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
351      $                INFO )
352          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
353          INFOT = 8
354          CALL DGBSVXX( 'N''N'2111, A, 2, AF, 2, IP, EQ, R, C,
355      $                B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
356      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
357      $                INFO )
358          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
359          INFOT = 10
360          CALL DGBSVXX( 'N''N'2111, A, 3, AF, 3, IP, EQ, R, C,
361      $                B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
362      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
363      $                INFO )
364          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
365          INFOT = 12
366          EQ = '/'
367          CALL DGBSVXX( 'F''N'0110, A, 3, AF, 4, IP, EQ, R, C,
368      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
369      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
370      $                INFO )
371          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
372          INFOT = 13
373          EQ = 'R'
374          CALL DGBSVXX( 'F''N'1110, A, 3, AF, 4, IP, EQ, R, C,
375      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
376      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
377      $                INFO )
378          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
379          INFOT = 14
380          EQ = 'C'
381          CALL DGBSVXX( 'F''N'1110, A, 3, AF, 4, IP, EQ, R, C,
382      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
383      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
384      $                INFO )
385          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
386          INFOT = 15
387          CALL DGBSVXX( 'N''N'2111, A, 3, AF, 4, IP, EQ, R, C,
388      $                B, 1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
389      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
390      $                INFO )
391          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
392          INFOT = 16
393          CALL DGBSVXX( 'N''N'2111, A, 3, AF, 4, IP, EQ, R, C,
394      $                B, 2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
395      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
396      $                INFO )
397          CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
398 *
399       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
400 *
401 *        DGTSV
402 *
403          SRNAMT = 'DGTSV '
404          INFOT = 1
405          CALL DGTSV( -10, A( 11 ), A( 12 ), A( 13 ), B, 1,
406      $               INFO )
407          CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
408          INFOT = 2
409          CALL DGTSV( 0-1, A( 11 ), A( 12 ), A( 13 ), B, 1,
410      $               INFO )
411          CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
412          INFOT = 7
413          CALL DGTSV( 20, A( 11 ), A( 12 ), A( 13 ), B, 1, INFO )
414          CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
415 *
416 *        DGTSVX
417 *
418          SRNAMT = 'DGTSVX'
419          INFOT = 1
420          CALL DGTSVX( '/''N'00, A( 11 ), A( 12 ), A( 13 ),
421      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
422      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
423          CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
424          INFOT = 2
425          CALL DGTSVX( 'N''/'00, A( 11 ), A( 12 ), A( 13 ),
426      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
427      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
428          CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
429          INFOT = 3
430          CALL DGTSVX( 'N''N'-10, A( 11 ), A( 12 ), A( 13 ),
431      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
432      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
433          CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
434          INFOT = 4
435          CALL DGTSVX( 'N''N'0-1, A( 11 ), A( 12 ), A( 13 ),
436      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
437      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
438          CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
439          INFOT = 14
440          CALL DGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
441      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
442      $                IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
443          CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
444          INFOT = 16
445          CALL DGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
446      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
447      $                IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
448          CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
449 *
450       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
451 *
452 *        DPOSV
453 *
454          SRNAMT = 'DPOSV '
455          INFOT = 1
456          CALL DPOSV( '/'00, A, 1, B, 1, INFO )
457          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
458          INFOT = 2
459          CALL DPOSV( 'U'-10, A, 1, B, 1, INFO )
460          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
461          INFOT = 3
462          CALL DPOSV( 'U'0-1, A, 1, B, 1, INFO )
463          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
464          INFOT = 5
465          CALL DPOSV( 'U'20, A, 1, B, 2, INFO )
466          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
467          INFOT = 7
468          CALL DPOSV( 'U'20, A, 2, B, 1, INFO )
469          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
470 *
471 *        DPOSVX
472 *
473          SRNAMT = 'DPOSVX'
474          INFOT = 1
475          CALL DPOSVX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
476      $                RCOND, R1, R2, W, IW, INFO )
477          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
478          INFOT = 2
479          CALL DPOSVX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
480      $                RCOND, R1, R2, W, IW, INFO )
481          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
482          INFOT = 3
483          CALL DPOSVX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
484      $                RCOND, R1, R2, W, IW, INFO )
485          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
486          INFOT = 4
487          CALL DPOSVX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
488      $                RCOND, R1, R2, W, IW, INFO )
489          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
490          INFOT = 6
491          CALL DPOSVX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
492      $                RCOND, R1, R2, W, IW, INFO )
493          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
494          INFOT = 8
495          CALL DPOSVX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
496      $                RCOND, R1, R2, W, IW, INFO )
497          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
498          INFOT = 9
499          EQ = '/'
500          CALL DPOSVX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
501      $                RCOND, R1, R2, W, IW, INFO )
502          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
503          INFOT = 10
504          EQ = 'Y'
505          CALL DPOSVX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
506      $                RCOND, R1, R2, W, IW, INFO )
507          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
508          INFOT = 12
509          CALL DPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
510      $                RCOND, R1, R2, W, IW, INFO )
511          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
512          INFOT = 14
513          CALL DPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
514      $                RCOND, R1, R2, W, IW, INFO )
515          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
516 *
517 *        DPOSVXX
518 *
519          N_ERR_BNDS = 3
520          NPARAMS = 0
521          SRNAMT = 'DPOSVXX'
522          INFOT = 1
523          CALL DPOSVXX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
524      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
525      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
526          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
527          INFOT = 2
528          CALL DPOSVXX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
529      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
530      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
531          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
532          INFOT = 3
533          CALL DPOSVXX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
534      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
535      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
536          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
537          INFOT = 4
538          CALL DPOSVXX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
539      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
540      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
541          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
542          INFOT = 6
543          CALL DPOSVXX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
544      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
545      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
546          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
547          INFOT = 8
548          CALL DPOSVXX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
549      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
550      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
551          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
552          INFOT = 9
553          EQ = '/'
554          CALL DPOSVXX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
555      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
556      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
557          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
558          INFOT = 10
559          EQ = 'Y'
560          CALL DPOSVXX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
561      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
562      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
563          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
564          INFOT = 12
565          CALL DPOSVXX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
566      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
567      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
568          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
569          INFOT = 14
570          CALL DPOSVXX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
571      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
572      $                ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
573          CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
574 *
575       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
576 *
577 *        DPPSV
578 *
579          SRNAMT = 'DPPSV '
580          INFOT = 1
581          CALL DPPSV( '/'00, A, B, 1, INFO )
582          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
583          INFOT = 2
584          CALL DPPSV( 'U'-10, A, B, 1, INFO )
585          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
586          INFOT = 3
587          CALL DPPSV( 'U'0-1, A, B, 1, INFO )
588          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
589          INFOT = 6
590          CALL DPPSV( 'U'20, A, B, 1, INFO )
591          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
592 *
593 *        DPPSVX
594 *
595          SRNAMT = 'DPPSVX'
596          INFOT = 1
597          CALL DPPSVX( '/''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
598      $                R1, R2, W, IW, INFO )
599          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
600          INFOT = 2
601          CALL DPPSVX( 'N''/'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
602      $                R1, R2, W, IW, INFO )
603          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
604          INFOT = 3
605          CALL DPPSVX( 'N''U'-10, A, AF, EQ, C, B, 1, X, 1, RCOND,
606      $                R1, R2, W, IW, INFO )
607          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
608          INFOT = 4
609          CALL DPPSVX( 'N''U'0-1, A, AF, EQ, C, B, 1, X, 1, RCOND,
610      $                R1, R2, W, IW, INFO )
611          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
612          INFOT = 7
613          EQ = '/'
614          CALL DPPSVX( 'F''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
615      $                R1, R2, W, IW, INFO )
616          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
617          INFOT = 8
618          EQ = 'Y'
619          CALL DPPSVX( 'F''U'10, A, AF, EQ, C, B, 1, X, 1, RCOND,
620      $                R1, R2, W, IW, INFO )
621          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
622          INFOT = 10
623          CALL DPPSVX( 'N''U'20, A, AF, EQ, C, B, 1, X, 2, RCOND,
624      $                R1, R2, W, IW, INFO )
625          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
626          INFOT = 12
627          CALL DPPSVX( 'N''U'20, A, AF, EQ, C, B, 2, X, 1, RCOND,
628      $                R1, R2, W, IW, INFO )
629          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
630 *
631       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
632 *
633 *        DPBSV
634 *
635          SRNAMT = 'DPBSV '
636          INFOT = 1
637          CALL DPBSV( '/'000, A, 1, B, 1, INFO )
638          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
639          INFOT = 2
640          CALL DPBSV( 'U'-100, A, 1, B, 1, INFO )
641          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
642          INFOT = 3
643          CALL DPBSV( 'U'1-10, A, 1, B, 1, INFO )
644          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
645          INFOT = 4
646          CALL DPBSV( 'U'00-1, A, 1, B, 1, INFO )
647          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
648          INFOT = 6
649          CALL DPBSV( 'U'110, A, 1, B, 2, INFO )
650          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
651          INFOT = 8
652          CALL DPBSV( 'U'200, A, 1, B, 1, INFO )
653          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
654 *
655 *        DPBSVX
656 *
657          SRNAMT = 'DPBSVX'
658          INFOT = 1
659          CALL DPBSVX( '/''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
660      $                RCOND, R1, R2, W, IW, INFO )
661          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
662          INFOT = 2
663          CALL DPBSVX( 'N''/'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
664      $                RCOND, R1, R2, W, IW, INFO )
665          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
666          INFOT = 3
667          CALL DPBSVX( 'N''U'-100, A, 1, AF, 1, EQ, C, B, 1, X,
668      $                1, RCOND, R1, R2, W, IW, INFO )
669          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
670          INFOT = 4
671          CALL DPBSVX( 'N''U'1-10, A, 1, AF, 1, EQ, C, B, 1, X,
672      $                1, RCOND, R1, R2, W, IW, INFO )
673          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
674          INFOT = 5
675          CALL DPBSVX( 'N''U'00-1, A, 1, AF, 1, EQ, C, B, 1, X,
676      $                1, RCOND, R1, R2, W, IW, INFO )
677          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
678          INFOT = 7
679          CALL DPBSVX( 'N''U'110, A, 1, AF, 2, EQ, C, B, 2, X, 2,
680      $                RCOND, R1, R2, W, IW, INFO )
681          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
682          INFOT = 9
683          CALL DPBSVX( 'N''U'110, A, 2, AF, 1, EQ, C, B, 2, X, 2,
684      $                RCOND, R1, R2, W, IW, INFO )
685          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
686          INFOT = 10
687          EQ = '/'
688          CALL DPBSVX( 'F''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
689      $                RCOND, R1, R2, W, IW, INFO )
690          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
691          INFOT = 11
692          EQ = 'Y'
693          CALL DPBSVX( 'F''U'100, A, 1, AF, 1, EQ, C, B, 1, X, 1,
694      $                RCOND, R1, R2, W, IW, INFO )
695          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
696          INFOT = 13
697          CALL DPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 1, X, 2,
698      $                RCOND, R1, R2, W, IW, INFO )
699          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
700          INFOT = 15
701          CALL DPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 2, X, 1,
702      $                RCOND, R1, R2, W, IW, INFO )
703          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
704 *
705       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
706 *
707 *        DPTSV
708 *
709          SRNAMT = 'DPTSV '
710          INFOT = 1
711          CALL DPTSV( -10, A( 11 ), A( 12 ), B, 1, INFO )
712          CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
713          INFOT = 2
714          CALL DPTSV( 0-1, A( 11 ), A( 12 ), B, 1, INFO )
715          CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
716          INFOT = 6
717          CALL DPTSV( 20, A( 11 ), A( 12 ), B, 1, INFO )
718          CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
719 *
720 *        DPTSVX
721 *
722          SRNAMT = 'DPTSVX'
723          INFOT = 1
724          CALL DPTSVX( '/'00, A( 11 ), A( 12 ), AF( 11 ),
725      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
726          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
727          INFOT = 2
728          CALL DPTSVX( 'N'-10, A( 11 ), A( 12 ), AF( 11 ),
729      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
730          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
731          INFOT = 3
732          CALL DPTSVX( 'N'0-1, A( 11 ), A( 12 ), AF( 11 ),
733      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
734          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
735          INFOT = 9
736          CALL DPTSVX( 'N'20, A( 11 ), A( 12 ), AF( 11 ),
737      $                AF( 12 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
738          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
739          INFOT = 11
740          CALL DPTSVX( 'N'20, A( 11 ), A( 12 ), AF( 11 ),
741      $                AF( 12 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
742          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
743 *
744       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
745 *
746 *        DSYSV
747 *
748          SRNAMT = 'DSYSV '
749          INFOT = 1
750          CALL DSYSV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
751          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
752          INFOT = 2
753          CALL DSYSV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
754          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
755          INFOT = 3
756          CALL DSYSV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
757          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
758          INFOT = 8
759          CALL DSYSV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
760          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
761 *
762 *        DSYSVX
763 *
764          SRNAMT = 'DSYSVX'
765          INFOT = 1
766          CALL DSYSVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
767      $                RCOND, R1, R2, W, 1, IW, INFO )
768          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
769          INFOT = 2
770          CALL DSYSVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
771      $                RCOND, R1, R2, W, 1, IW, INFO )
772          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
773          INFOT = 3
774          CALL DSYSVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
775      $                RCOND, R1, R2, W, 1, IW, INFO )
776          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
777          INFOT = 4
778          CALL DSYSVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
779      $                RCOND, R1, R2, W, 1, IW, INFO )
780          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
781          INFOT = 6
782          CALL DSYSVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
783      $                RCOND, R1, R2, W, 4, IW, INFO )
784          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
785          INFOT = 8
786          CALL DSYSVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
787      $                RCOND, R1, R2, W, 4, IW, INFO )
788          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
789          INFOT = 11
790          CALL DSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
791      $                RCOND, R1, R2, W, 4, IW, INFO )
792          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
793          INFOT = 13
794          CALL DSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
795      $                RCOND, R1, R2, W, 4, IW, INFO )
796          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
797          INFOT = 18
798          CALL DSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
799      $                RCOND, R1, R2, W, 3, IW, INFO )
800          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
801 *
802 *        DSYSVXX
803 *
804          N_ERR_BNDS = 3
805          NPARAMS = 0
806          SRNAMT = 'DSYSVXX'
807          INFOT = 1
808          EQ = 'N'
809          CALL DSYSVXX( '/''U'00, A, 1, AF, 1, IP, EQ, R, B, 1, X,
810      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
811      $        ERR_BNDS_C,  NPARAMS, PARAMS, W, IW, INFO )
812          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
813          INFOT = 2
814          CALL DSYSVXX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, B, 1, X,
815      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
816      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
817          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
818          INFOT = 3
819          CALL DSYSVXX( 'N''U'-10, A, 1, AF, 1, IP, EQ, R, B, 1, X,
820      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
821      $        ERR_BNDS_C,  NPARAMS, PARAMS, W, IW, INFO )
822          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
823          INFOT = 4
824          EQ = '/'
825          CALL DSYSVXX( 'N''U'0-1, A, 1, AF, 1, IP, EQ, R, B, 1, X,
826      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
827      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
828          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
829          EQ = 'Y'
830          INFOT = 6
831          CALL DSYSVXX( 'N''U'20, A, 1, AF, 2, IP, EQ, R, B, 2, X,
832      $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
833      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
834          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
835          INFOT = 8
836          CALL DSYSVXX( 'N''U'20, A, 2, AF, 1, IP, EQ, R, B, 2, X,
837      $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
838      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
839          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
840          INFOT = 12
841          EQ = 'N'
842          CALL DSYSVXX( 'N''U'20, A, 2, AF, 2, IP, EQ, R, B, 1, X,
843      $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
844      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
845          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
846          INFOT = 14
847          CALL DSYSVXX( 'N''U'20, A, 2, AF, 2, IP, EQ, R, B, 2, X,
848      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
849      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
850          CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
851 *
852       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
853 *
854 *        DSPSV
855 *
856          SRNAMT = 'DSPSV '
857          INFOT = 1
858          CALL DSPSV( '/'00, A, IP, B, 1, INFO )
859          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
860          INFOT = 2
861          CALL DSPSV( 'U'-10, A, IP, B, 1, INFO )
862          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
863          INFOT = 3
864          CALL DSPSV( 'U'0-1, A, IP, B, 1, INFO )
865          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
866          INFOT = 7
867          CALL DSPSV( 'U'20, A, IP, B, 1, INFO )
868          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
869 *
870 *        DSPSVX
871 *
872          SRNAMT = 'DSPSVX'
873          INFOT = 1
874          CALL DSPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
875      $                R2, W, IW, INFO )
876          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
877          INFOT = 2
878          CALL DSPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
879      $                R2, W, IW, INFO )
880          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
881          INFOT = 3
882          CALL DSPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
883      $                R2, W, IW, INFO )
884          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
885          INFOT = 4
886          CALL DSPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
887      $                R2, W, IW, INFO )
888          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
889          INFOT = 9
890          CALL DSPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
891      $                R2, W, IW, INFO )
892          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
893          INFOT = 11
894          CALL DSPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
895      $                R2, W, IW, INFO )
896          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
897       END IF
898 *
899 *     Print a summary line.
900 *
901       IF( OK ) THEN
902          WRITE( NOUT, FMT = 9999 )PATH
903       ELSE
904          WRITE( NOUT, FMT = 9998 )PATH
905       END IF
906 *
907  9999 FORMAT1X, A3, ' drivers passed the tests of the error exits' )
908  9998 FORMAT' *** ', A3, ' drivers failed the tests of the error ',
909      $      'exits ***' )
910 *
911       RETURN
912 *
913 *     End of DERRVX
914 *
915       END