1       SUBROUTINE DERRVX( 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 *  DERRVX tests the error exits for the DOUBLE PRECISION 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       DOUBLE PRECISION   RCOND
 38 *     ..
 39 *     .. Local Arrays ..
 40       INTEGER            IP( NMAX ), IW( NMAX )
 41       DOUBLE PRECISION   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, DGBSV, DGBSVX, DGESV, DGESVX, DGTSV,
 51      $                   DGTSVX, DPBSV, DPBSVX, DPOSV, DPOSVX, DPPSV,
 52      $                   DPPSVX, DPTSV, DPTSVX, DSPSV, DSPSVX, DSYSV,
 53      $                   DSYSVX
 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          DBLE
 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.D0 / DBLE( I+J )
 78             AF( I, J ) = 1.D0 / DBLE( I+J )
 79    10    CONTINUE
 80          B( J ) = 0.D0
 81          R1( J ) = 0.D0
 82          R2( J ) = 0.D0
 83          W( J ) = 0.D0
 84          X( J ) = 0.D0
 85          C( J ) = 0.D0
 86          R( J ) = 0.D0
 87          IP( J ) = J
 88    20 CONTINUE
 89       EQ = ' '
 90       OK = .TRUE.
 91 *
 92       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
 93 *
 94 *        DGESV
 95 *
 96          SRNAMT = 'DGESV '
 97          INFOT = 1
 98          CALL DGESV( -10, A, 1, IP, B, 1, INFO )
 99          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
100          INFOT = 2
101          CALL DGESV( 0-1, A, 1, IP, B, 1, INFO )
102          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
103          INFOT = 4
104          CALL DGESV( 21, A, 1, IP, B, 2, INFO )
105          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
106          INFOT = 7
107          CALL DGESV( 21, A, 2, IP, B, 1, INFO )
108          CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
109 *
110 *        DGESVX
111 *
112          SRNAMT = 'DGESVX'
113          INFOT = 1
114          CALL DGESVX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
115      $                X, 1, RCOND, R1, R2, W, IW, INFO )
116          CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
117          INFOT = 2
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 = 3
122          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
125          INFOT = 4
126          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
129          INFOT = 6
130          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
133          INFOT = 8
134          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
137          INFOT = 10
138          EQ = '/'
139          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
142          INFOT = 11
143          EQ = 'R'
144          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
147          INFOT = 12
148          EQ = 'C'
149          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
152          INFOT = 14
153          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
156          INFOT = 16
157          CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
160 *
161       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
162 *
163 *        DGBSV
164 *
165          SRNAMT = 'DGBSV '
166          INFOT = 1
167          CALL DGBSV( -1000, A, 1, IP, B, 1, INFO )
168          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
169          INFOT = 2
170          CALL DGBSV( 1-100, A, 1, IP, B, 1, INFO )
171          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
172          INFOT = 3
173          CALL DGBSV( 10-10, A, 1, IP, B, 1, INFO )
174          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
175          INFOT = 4
176          CALL DGBSV( 000-1, A, 1, IP, B, 1, INFO )
177          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
178          INFOT = 6
179          CALL DGBSV( 1110, A, 3, IP, B, 1, INFO )
180          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
181          INFOT = 9
182          CALL DGBSV( 2000, A, 1, IP, B, 1, INFO )
183          CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
184 *
185 *        DGBSVX
186 *
187          SRNAMT = 'DGBSVX'
188          INFOT = 1
189          CALL DGBSVX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
190      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
191          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
192          INFOT = 2
193          CALL DGBSVX( 'N''/'0000, A, 1, AF, 1, IP, EQ, R, C,
194      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
195          CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
196          INFOT = 3
197          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
200          INFOT = 4
201          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
204          INFOT = 5
205          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
208          INFOT = 6
209          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
212          INFOT = 8
213          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
216          INFOT = 10
217          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
220          INFOT = 12
221          EQ = '/'
222          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
225          INFOT = 13
226          EQ = 'R'
227          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
230          INFOT = 14
231          EQ = 'C'
232          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
235          INFOT = 16
236          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
239          INFOT = 18
240          CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
243 *
244       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
245 *
246 *        DGTSV
247 *
248          SRNAMT = 'DGTSV '
249          INFOT = 1
250          CALL DGTSV( -10, A( 11 ), A( 12 ), A( 13 ), B, 1,
251      $               INFO )
252          CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
253          INFOT = 2
254          CALL DGTSV( 0-1, A( 11 ), A( 12 ), A( 13 ), B, 1,
255      $               INFO )
256          CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
257          INFOT = 7
258          CALL DGTSV( 20, A( 11 ), A( 12 ), A( 13 ), B, 1, INFO )
259          CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
260 *
261 *        DGTSVX
262 *
263          SRNAMT = 'DGTSVX'
264          INFOT = 1
265          CALL DGTSVX( '/''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( 'DGTSVX', INFOT, NOUT, LERR, OK )
269          INFOT = 2
270          CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
274          INFOT = 3
275          CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
279          INFOT = 4
280          CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
284          INFOT = 14
285          CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
289          INFOT = 16
290          CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
294 *
295       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
296 *
297 *        DPOSV
298 *
299          SRNAMT = 'DPOSV '
300          INFOT = 1
301          CALL DPOSV( '/'00, A, 1, B, 1, INFO )
302          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
303          INFOT = 2
304          CALL DPOSV( 'U'-10, A, 1, B, 1, INFO )
305          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
306          INFOT = 3
307          CALL DPOSV( 'U'0-1, A, 1, B, 1, INFO )
308          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
309          INFOT = 5
310          CALL DPOSV( 'U'20, A, 1, B, 2, INFO )
311          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
312          INFOT = 7
313          CALL DPOSV( 'U'20, A, 2, B, 1, INFO )
314          CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
315 *
316 *        DPOSVX
317 *
318          SRNAMT = 'DPOSVX'
319          INFOT = 1
320          CALL DPOSVX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
321      $                RCOND, R1, R2, W, IW, INFO )
322          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
323          INFOT = 2
324          CALL DPOSVX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
325      $                RCOND, R1, R2, W, IW, INFO )
326          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
327          INFOT = 3
328          CALL DPOSVX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
329      $                RCOND, R1, R2, W, IW, INFO )
330          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
331          INFOT = 4
332          CALL DPOSVX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
333      $                RCOND, R1, R2, W, IW, INFO )
334          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
335          INFOT = 6
336          CALL DPOSVX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
337      $                RCOND, R1, R2, W, IW, INFO )
338          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
339          INFOT = 8
340          CALL DPOSVX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
341      $                RCOND, R1, R2, W, IW, INFO )
342          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
343          INFOT = 9
344          EQ = '/'
345          CALL DPOSVX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
346      $                RCOND, R1, R2, W, IW, INFO )
347          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
348          INFOT = 10
349          EQ = 'Y'
350          CALL DPOSVX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
351      $                RCOND, R1, R2, W, IW, INFO )
352          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
353          INFOT = 12
354          CALL DPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
355      $                RCOND, R1, R2, W, IW, INFO )
356          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
357          INFOT = 14
358          CALL DPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
359      $                RCOND, R1, R2, W, IW, INFO )
360          CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
361 *
362       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
363 *
364 *        DPPSV
365 *
366          SRNAMT = 'DPPSV '
367          INFOT = 1
368          CALL DPPSV( '/'00, A, B, 1, INFO )
369          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
370          INFOT = 2
371          CALL DPPSV( 'U'-10, A, B, 1, INFO )
372          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
373          INFOT = 3
374          CALL DPPSV( 'U'0-1, A, B, 1, INFO )
375          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
376          INFOT = 6
377          CALL DPPSV( 'U'20, A, B, 1, INFO )
378          CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
379 *
380 *        DPPSVX
381 *
382          SRNAMT = 'DPPSVX'
383          INFOT = 1
384          CALL DPPSVX( '/''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
385      $                R1, R2, W, IW, INFO )
386          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
387          INFOT = 2
388          CALL DPPSVX( 'N''/'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
389      $                R1, R2, W, IW, INFO )
390          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
391          INFOT = 3
392          CALL DPPSVX( 'N''U'-10, A, AF, EQ, C, B, 1, X, 1, RCOND,
393      $                R1, R2, W, IW, INFO )
394          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
395          INFOT = 4
396          CALL DPPSVX( 'N''U'0-1, A, AF, EQ, C, B, 1, X, 1, RCOND,
397      $                R1, R2, W, IW, INFO )
398          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
399          INFOT = 7
400          EQ = '/'
401          CALL DPPSVX( 'F''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
402      $                R1, R2, W, IW, INFO )
403          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
404          INFOT = 8
405          EQ = 'Y'
406          CALL DPPSVX( 'F''U'10, A, AF, EQ, C, B, 1, X, 1, RCOND,
407      $                R1, R2, W, IW, INFO )
408          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
409          INFOT = 10
410          CALL DPPSVX( 'N''U'20, A, AF, EQ, C, B, 1, X, 2, RCOND,
411      $                R1, R2, W, IW, INFO )
412          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
413          INFOT = 12
414          CALL DPPSVX( 'N''U'20, A, AF, EQ, C, B, 2, X, 1, RCOND,
415      $                R1, R2, W, IW, INFO )
416          CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
417 *
418       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
419 *
420 *        DPBSV
421 *
422          SRNAMT = 'DPBSV '
423          INFOT = 1
424          CALL DPBSV( '/'000, A, 1, B, 1, INFO )
425          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
426          INFOT = 2
427          CALL DPBSV( 'U'-100, A, 1, B, 1, INFO )
428          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
429          INFOT = 3
430          CALL DPBSV( 'U'1-10, A, 1, B, 1, INFO )
431          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
432          INFOT = 4
433          CALL DPBSV( 'U'00-1, A, 1, B, 1, INFO )
434          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
435          INFOT = 6
436          CALL DPBSV( 'U'110, A, 1, B, 2, INFO )
437          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
438          INFOT = 8
439          CALL DPBSV( 'U'200, A, 1, B, 1, INFO )
440          CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
441 *
442 *        DPBSVX
443 *
444          SRNAMT = 'DPBSVX'
445          INFOT = 1
446          CALL DPBSVX( '/''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
447      $                RCOND, R1, R2, W, IW, INFO )
448          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
449          INFOT = 2
450          CALL DPBSVX( 'N''/'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
451      $                RCOND, R1, R2, W, IW, INFO )
452          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
453          INFOT = 3
454          CALL DPBSVX( 'N''U'-100, A, 1, AF, 1, EQ, C, B, 1, X,
455      $                1, RCOND, R1, R2, W, IW, INFO )
456          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
457          INFOT = 4
458          CALL DPBSVX( 'N''U'1-10, A, 1, AF, 1, EQ, C, B, 1, X,
459      $                1, RCOND, R1, R2, W, IW, INFO )
460          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
461          INFOT = 5
462          CALL DPBSVX( 'N''U'00-1, A, 1, AF, 1, EQ, C, B, 1, X,
463      $                1, RCOND, R1, R2, W, IW, INFO )
464          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
465          INFOT = 7
466          CALL DPBSVX( 'N''U'110, A, 1, AF, 2, EQ, C, B, 2, X, 2,
467      $                RCOND, R1, R2, W, IW, INFO )
468          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
469          INFOT = 9
470          CALL DPBSVX( 'N''U'110, A, 2, AF, 1, EQ, C, B, 2, X, 2,
471      $                RCOND, R1, R2, W, IW, INFO )
472          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
473          INFOT = 10
474          EQ = '/'
475          CALL DPBSVX( 'F''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
476      $                RCOND, R1, R2, W, IW, INFO )
477          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
478          INFOT = 11
479          EQ = 'Y'
480          CALL DPBSVX( 'F''U'100, A, 1, AF, 1, EQ, C, B, 1, X, 1,
481      $                RCOND, R1, R2, W, IW, INFO )
482          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
483          INFOT = 13
484          CALL DPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 1, X, 2,
485      $                RCOND, R1, R2, W, IW, INFO )
486          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
487          INFOT = 15
488          CALL DPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 2, X, 1,
489      $                RCOND, R1, R2, W, IW, INFO )
490          CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
491 *
492       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
493 *
494 *        DPTSV
495 *
496          SRNAMT = 'DPTSV '
497          INFOT = 1
498          CALL DPTSV( -10, A( 11 ), A( 12 ), B, 1, INFO )
499          CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
500          INFOT = 2
501          CALL DPTSV( 0-1, A( 11 ), A( 12 ), B, 1, INFO )
502          CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
503          INFOT = 6
504          CALL DPTSV( 20, A( 11 ), A( 12 ), B, 1, INFO )
505          CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
506 *
507 *        DPTSVX
508 *
509          SRNAMT = 'DPTSVX'
510          INFOT = 1
511          CALL DPTSVX( '/'00, A( 11 ), A( 12 ), AF( 11 ),
512      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
513          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
514          INFOT = 2
515          CALL DPTSVX( 'N'-10, A( 11 ), A( 12 ), AF( 11 ),
516      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
517          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
518          INFOT = 3
519          CALL DPTSVX( 'N'0-1, A( 11 ), A( 12 ), AF( 11 ),
520      $                AF( 12 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
521          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
522          INFOT = 9
523          CALL DPTSVX( 'N'20, A( 11 ), A( 12 ), AF( 11 ),
524      $                AF( 12 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
525          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
526          INFOT = 11
527          CALL DPTSVX( 'N'20, A( 11 ), A( 12 ), AF( 11 ),
528      $                AF( 12 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
529          CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
530 *
531       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
532 *
533 *        DSYSV
534 *
535          SRNAMT = 'DSYSV '
536          INFOT = 1
537          CALL DSYSV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
538          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
539          INFOT = 2
540          CALL DSYSV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
541          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
542          INFOT = 3
543          CALL DSYSV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
544          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
545          INFOT = 8
546          CALL DSYSV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
547          CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
548 *
549 *        DSYSVX
550 *
551          SRNAMT = 'DSYSVX'
552          INFOT = 1
553          CALL DSYSVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
554      $                RCOND, R1, R2, W, 1, IW, INFO )
555          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
556          INFOT = 2
557          CALL DSYSVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
558      $                RCOND, R1, R2, W, 1, IW, INFO )
559          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
560          INFOT = 3
561          CALL DSYSVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
562      $                RCOND, R1, R2, W, 1, IW, INFO )
563          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
564          INFOT = 4
565          CALL DSYSVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
566      $                RCOND, R1, R2, W, 1, IW, INFO )
567          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
568          INFOT = 6
569          CALL DSYSVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
570      $                RCOND, R1, R2, W, 4, IW, INFO )
571          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
572          INFOT = 8
573          CALL DSYSVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
574      $                RCOND, R1, R2, W, 4, IW, INFO )
575          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
576          INFOT = 11
577          CALL DSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
578      $                RCOND, R1, R2, W, 4, IW, INFO )
579          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
580          INFOT = 13
581          CALL DSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
582      $                RCOND, R1, R2, W, 4, IW, INFO )
583          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
584          INFOT = 18
585          CALL DSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
586      $                RCOND, R1, R2, W, 3, IW, INFO )
587          CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
588 *
589       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
590 *
591 *        DSPSV
592 *
593          SRNAMT = 'DSPSV '
594          INFOT = 1
595          CALL DSPSV( '/'00, A, IP, B, 1, INFO )
596          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
597          INFOT = 2
598          CALL DSPSV( 'U'-10, A, IP, B, 1, INFO )
599          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
600          INFOT = 3
601          CALL DSPSV( 'U'0-1, A, IP, B, 1, INFO )
602          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
603          INFOT = 7
604          CALL DSPSV( 'U'20, A, IP, B, 1, INFO )
605          CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
606 *
607 *        DSPSVX
608 *
609          SRNAMT = 'DSPSVX'
610          INFOT = 1
611          CALL DSPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
612      $                R2, W, IW, INFO )
613          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
614          INFOT = 2
615          CALL DSPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
616      $                R2, W, IW, INFO )
617          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
618          INFOT = 3
619          CALL DSPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
620      $                R2, W, IW, INFO )
621          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
622          INFOT = 4
623          CALL DSPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
624      $                R2, W, IW, INFO )
625          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
626          INFOT = 9
627          CALL DSPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
628      $                R2, W, IW, INFO )
629          CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
630          INFOT = 11
631          CALL DSPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
632      $                R2, W, IW, INFO )
633          CALL CHKXER( 'DSPSVX', 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 DERRVX
651 *
652       END