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( 2: 3 )
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', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
136 CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
137 INFOT = 2
138 CALL DORMTR( 'L', '/', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
139 CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
140 INFOT = 3
141 CALL DORMTR( 'L', 'U', '/', 0, 0, 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', -1, 0, 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', 2, 0, 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', 0, 2, 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', 2, 0, 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', 0, 2, 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', 2, 0, 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', 0, 0, A, TAU, C, 1, W, INFO )
198 CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
199 INFOT = 2
200 CALL DOPMTR( 'L', '/', 'N', 0, 0, A, TAU, C, 1, W, INFO )
201 CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
202 INFOT = 3
203 CALL DOPMTR( 'L', 'U', '/', 0, 0, A, TAU, C, 1, W, INFO )
204 CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
205 INFOT = 4
206 CALL DOPMTR( 'L', 'U', 'N', -1, 0, 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', 2, 0, 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', 0, 0.0D0, 1.0D0, 1, 0, 0.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', '/', 0, 0.0D0, 0.0D0, 0, 0, 0.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', -1, 0.0D0, 0.0D0, 0, 0, 0.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', 0, 0.0D0, 0.0D0, 0, 0, 0.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', 0, 0.0D0, 0.0D0, 0, 0, 0.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', 1, 0.0D0, 0.0D0, 2, 1, 0.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', 1, 0.0D0, 0.0D0, 1, 0, 0.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', 1, 0.0D0, 0.0D0, 1, 2, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 1.0D0, 1, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 1, 2, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 0, 1, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1,
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, 1, 0.0D0, 0.0D0, 1, 1,
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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 0, 1, 0.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, 2, 0.0D0, 0.0D0, 2, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 1.0D0, 1, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
586 $ M, X, Z, 1, W, 1, IW, I3, INFO )
587 INFOT = 4
588 CALL DSYEVX( 'N', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 0, 0,
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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 2, 1, 0.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, 2, 0.0D0, 0.0D0, 2, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 2, 0.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, 2, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.0D0, M,
690 $ X, Z, 1, W, IW, I3, INFO )
691 INFOT = 4
692 CALL DSPEVX( 'N', 'A', 'U', -1, A, 0.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 1, 2, 0.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.0D0, 0.0D0, 0, 0, 0.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', 0, 0, A, 1, D, E, Z, 1, W, INFO )
730 CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
731 INFOT = 2
732 CALL DSBTRD( 'N', '/', 0, 0, A, 1, D, E, Z, 1, W, INFO )
733 CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
734 INFOT = 3
735 CALL DSBTRD( 'N', 'U', -1, 0, 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', 1, 1, A, 1, D, E, Z, 1, W, INFO )
742 CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
743 INFOT = 10
744 CALL DSBTRD( 'V', 'U', 2, 0, 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', 0, 0, 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', '/', 0, 0, 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', -1, 0, 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', 2, 1, 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', 2, 1, 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', 1, 0, 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', 2, 0, 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', 2, 0, 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', 1, 0, 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', 2, 0, 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', 0, 0, A, 1, X, Z, 1, W, INFO )
796 CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
797 INFOT = 2
798 CALL DSBEV( 'N', '/', 0, 0, A, 1, X, Z, 1, W, INFO )
799 CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
800 INFOT = 3
801 CALL DSBEV( 'N', 'U', -1, 0, 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', 2, 1, A, 1, X, Z, 1, W, INFO )
808 CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
809 INFOT = 9
810 CALL DSBEV( 'V', 'U', 2, 0, 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', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
819 $ 0, 0.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', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
823 $ 0, 0.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', '/', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
827 $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
828 INFOT = 4
829 CALL DSBEVX( 'N', 'A', 'U', -1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
830 $ 0, 0.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, 1, 0.0D0, 0.0D0, 0,
834 $ 0, 0.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', 2, 1, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
838 $ 0, 0.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', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
842 $ 0, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
846 $ 0, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
850 $ 0, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 2,
854 $ 1, 0.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', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 2,
858 $ 1, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 1,
862 $ 2, 0.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', 2, 0, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
866 $ 0, 0.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 FORMAT( 1X, 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
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( 2: 3 )
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', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
136 CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
137 INFOT = 2
138 CALL DORMTR( 'L', '/', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
139 CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
140 INFOT = 3
141 CALL DORMTR( 'L', 'U', '/', 0, 0, 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', -1, 0, 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', 2, 0, 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', 0, 2, 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', 2, 0, 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', 0, 2, 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', 2, 0, 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', 0, 0, A, TAU, C, 1, W, INFO )
198 CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
199 INFOT = 2
200 CALL DOPMTR( 'L', '/', 'N', 0, 0, A, TAU, C, 1, W, INFO )
201 CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
202 INFOT = 3
203 CALL DOPMTR( 'L', 'U', '/', 0, 0, A, TAU, C, 1, W, INFO )
204 CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
205 INFOT = 4
206 CALL DOPMTR( 'L', 'U', 'N', -1, 0, 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', 2, 0, 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', 0, 0.0D0, 1.0D0, 1, 0, 0.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', '/', 0, 0.0D0, 0.0D0, 0, 0, 0.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', -1, 0.0D0, 0.0D0, 0, 0, 0.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', 0, 0.0D0, 0.0D0, 0, 0, 0.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', 0, 0.0D0, 0.0D0, 0, 0, 0.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', 1, 0.0D0, 0.0D0, 2, 1, 0.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', 1, 0.0D0, 0.0D0, 1, 0, 0.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', 1, 0.0D0, 0.0D0, 1, 2, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 1.0D0, 1, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 1, 2, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 0, 1, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1,
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, 1, 0.0D0, 0.0D0, 1, 1,
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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 0, 1, 0.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, 2, 0.0D0, 0.0D0, 2, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 1, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 1.0D0, 1, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
586 $ M, X, Z, 1, W, 1, IW, I3, INFO )
587 INFOT = 4
588 CALL DSYEVX( 'N', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 0, 0,
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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 2, 1, 0.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, 2, 0.0D0, 0.0D0, 2, 1, 0.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, 1, 0.0D0, 0.0D0, 1, 2, 0.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, 2, 0.0D0, 0.0D0, 0, 0, 0.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, 1, 0.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.0D0, M,
690 $ X, Z, 1, W, IW, I3, INFO )
691 INFOT = 4
692 CALL DSPEVX( 'N', 'A', 'U', -1, A, 0.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 0, 0, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 2, 1, 0.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.0D0, 0.0D0, 1, 2, 0.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.0D0, 0.0D0, 0, 0, 0.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', 0, 0, A, 1, D, E, Z, 1, W, INFO )
730 CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
731 INFOT = 2
732 CALL DSBTRD( 'N', '/', 0, 0, A, 1, D, E, Z, 1, W, INFO )
733 CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
734 INFOT = 3
735 CALL DSBTRD( 'N', 'U', -1, 0, 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', 1, 1, A, 1, D, E, Z, 1, W, INFO )
742 CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
743 INFOT = 10
744 CALL DSBTRD( 'V', 'U', 2, 0, 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', 0, 0, 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', '/', 0, 0, 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', -1, 0, 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', 2, 1, 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', 2, 1, 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', 1, 0, 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', 2, 0, 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', 2, 0, 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', 1, 0, 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', 2, 0, 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', 0, 0, A, 1, X, Z, 1, W, INFO )
796 CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
797 INFOT = 2
798 CALL DSBEV( 'N', '/', 0, 0, A, 1, X, Z, 1, W, INFO )
799 CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
800 INFOT = 3
801 CALL DSBEV( 'N', 'U', -1, 0, 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', 2, 1, A, 1, X, Z, 1, W, INFO )
808 CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
809 INFOT = 9
810 CALL DSBEV( 'V', 'U', 2, 0, 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', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
819 $ 0, 0.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', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
823 $ 0, 0.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', '/', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
827 $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
828 INFOT = 4
829 CALL DSBEVX( 'N', 'A', 'U', -1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
830 $ 0, 0.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, 1, 0.0D0, 0.0D0, 0,
834 $ 0, 0.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', 2, 1, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
838 $ 0, 0.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', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
842 $ 0, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
846 $ 0, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
850 $ 0, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 2,
854 $ 1, 0.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', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 2,
858 $ 1, 0.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', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 1,
862 $ 2, 0.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', 2, 0, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
866 $ 0, 0.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 FORMAT( 1X, 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