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