62
63
64
65
66
67
68 CHARACTER*3 PATH
69 INTEGER NUNIT
70
71
72
73
74
75 INTEGER NMAX, LIW, LW
76 parameter( nmax = 3, liw = 12*nmax, lw = 20*nmax )
77
78
79 CHARACTER*2 C2
80 INTEGER I, INFO, J, M, N, NT
81
82
83 INTEGER I1( NMAX ), I2( NMAX ), I3( NMAX ), IW( LIW )
84 DOUBLE PRECISION D( NMAX ), E( NMAX ), R( LW ), RW( LW ),
85 $ X( NMAX )
86 COMPLEX*16 A( NMAX, NMAX ), C( NMAX, NMAX ),
87 $ Q( NMAX, NMAX ), TAU( NMAX ), W( LW ),
88 $ Z( NMAX, NMAX )
89
90
91 LOGICAL LSAMEN
93
94
102
103
104 LOGICAL LERR, OK
105 CHARACTER*32 SRNAMT
106 INTEGER INFOT, NOUT
107
108
109 COMMON / infoc / infot, nout, ok, lerr
110 COMMON / srnamc / srnamt
111
112
113 INTRINSIC dble
114
115
116
117 nout = nunit
118 WRITE( nout, fmt = * )
119 c2 = path( 2: 3 )
120
121
122
123 DO 20 j = 1, nmax
124 DO 10 i = 1, nmax
125 a( i, j ) = 1.d0 / dble( i+j )
126 10 CONTINUE
127 20 CONTINUE
128 DO 30 j = 1, nmax
129 d( j ) = dble( j )
130 e( j ) = 0.0d0
131 i1( j ) = j
132 i2( j ) = j
133 tau( j ) = 1.d0
134 30 CONTINUE
135 ok = .true.
136 nt = 0
137
138
139
140 IF(
lsamen( 2, c2,
'ST' ) )
THEN
141
142
143
144 srnamt = 'ZHETRD'
145 infot = 1
146 CALL zhetrd(
'/', 0, a, 1, d, e, tau, w, 1, info )
147 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
148 infot = 2
149 CALL zhetrd(
'U', -1, a, 1, d, e, tau, w, 1, info )
150 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
151 infot = 4
152 CALL zhetrd(
'U', 2, a, 1, d, e, tau, w, 1, info )
153 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
154 infot = 9
155 CALL zhetrd(
'U', 0, a, 1, d, e, tau, w, 0, info )
156 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
157 nt = nt + 4
158
159
160
161 srnamt = 'ZHETRD_2STAGE'
162 infot = 1
164 $ c, 1, w, 1, info )
165 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
166 infot = 1
168 $ c, 1, w, 1, info )
169 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
170 infot = 2
172 $ c, 1, w, 1, info )
173 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
174 infot = 3
176 $ c, 1, w, 1, info )
177 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
178 infot = 5
180 $ c, 1, w, 1, info )
181 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
182 infot = 10
184 $ c, 0, w, 1, info )
185 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
186 infot = 12
188 $ c, 1, w, 0, info )
189 CALL chkxer(
'ZHETRD_2STAGE', infot, nout, lerr, ok )
190 nt = nt + 7
191
192
193
194 srnamt = 'ZHETRD_HE2HB'
195 infot = 1
196 CALL zhetrd_he2hb(
'/', 0, 0, a, 1, c, 1, tau, w, 1, info )
197 CALL chkxer(
'ZHETRD_HE2HB', infot, nout, lerr, ok )
198 infot = 2
199 CALL zhetrd_he2hb(
'U', -1, 0, a, 1, c, 1, tau, w, 1, info )
200 CALL chkxer(
'ZHETRD_HE2HB', infot, nout, lerr, ok )
201 infot = 3
202 CALL zhetrd_he2hb(
'U', 0, -1, a, 1, c, 1, tau, w, 1, info )
203 CALL chkxer(
'ZHETRD_HE2HB', infot, nout, lerr, ok )
204 infot = 5
205 CALL zhetrd_he2hb(
'U', 2, 0, a, 1, c, 1, tau, w, 1, info )
206 CALL chkxer(
'ZHETRD_HE2HB', infot, nout, lerr, ok )
207 infot = 7
208 CALL zhetrd_he2hb(
'U', 0, 2, a, 1, c, 1, tau, w, 1, info )
209 CALL chkxer(
'ZHETRD_HE2HB', infot, nout, lerr, ok )
210 infot = 10
211 CALL zhetrd_he2hb(
'U', 0, 0, a, 1, c, 1, tau, w, 0, info )
212 CALL chkxer(
'ZHETRD_HE2HB', infot, nout, lerr, ok )
213 nt = nt + 6
214
215
216
217 srnamt = 'ZHETRD_HB2ST'
218 infot = 1
220 $ c, 1, w, 1, info )
221 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
222 infot = 2
224 $ c, 1, w, 1, info )
225 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
226 infot = 2
228 $ c, 1, w, 1, info )
229 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
230 infot = 3
232 $ c, 1, w, 1, info )
233 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
234 infot = 4
236 $ c, 1, w, 1, info )
237 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
238 infot = 5
240 $ c, 1, w, 1, info )
241 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
242 infot = 7
244 $ c, 1, w, 1, info )
245 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
246 infot = 11
248 $ c, 0, w, 1, info )
249 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
250 infot = 13
252 $ c, 1, w, 0, info )
253 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
254 nt = nt + 9
255
256
257
258 srnamt = 'ZUNGTR'
259 infot = 1
260 CALL zungtr(
'/', 0, a, 1, tau, w, 1, info )
261 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
262 infot = 2
263 CALL zungtr(
'U', -1, a, 1, tau, w, 1, info )
264 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
265 infot = 4
266 CALL zungtr(
'U', 2, a, 1, tau, w, 1, info )
267 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
268 infot = 7
269 CALL zungtr(
'U', 3, a, 3, tau, w, 1, info )
270 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
271 nt = nt + 4
272
273
274
275 srnamt = 'ZUNMTR'
276 infot = 1
277 CALL zunmtr(
'/',
'U',
'N', 0, 0, a, 1, tau, c, 1, w, 1, info )
278 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
279 infot = 2
280 CALL zunmtr(
'L',
'/',
'N', 0, 0, a, 1, tau, c, 1, w, 1, info )
281 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
282 infot = 3
283 CALL zunmtr(
'L',
'U',
'/', 0, 0, a, 1, tau, c, 1, w, 1, info )
284 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
285 infot = 4
286 CALL zunmtr(
'L',
'U',
'N', -1, 0, a, 1, tau, c, 1, w, 1,
287 $ info )
288 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
289 infot = 5
290 CALL zunmtr(
'L',
'U',
'N', 0, -1, a, 1, tau, c, 1, w, 1,
291 $ info )
292 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
293 infot = 7
294 CALL zunmtr(
'L',
'U',
'N', 2, 0, a, 1, tau, c, 2, w, 1, info )
295 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
296 infot = 7
297 CALL zunmtr(
'R',
'U',
'N', 0, 2, a, 1, tau, c, 1, w, 1, info )
298 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
299 infot = 10
300 CALL zunmtr(
'L',
'U',
'N', 2, 0, a, 2, tau, c, 1, w, 1, info )
301 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
302 infot = 12
303 CALL zunmtr(
'L',
'U',
'N', 0, 2, a, 1, tau, c, 1, w, 1, info )
304 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
305 infot = 12
306 CALL zunmtr(
'R',
'U',
'N', 2, 0, a, 1, tau, c, 2, w, 1, info )
307 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
308 nt = nt + 10
309
310
311
312 srnamt = 'ZHPTRD'
313 infot = 1
314 CALL zhptrd(
'/', 0, a, d, e, tau, info )
315 CALL chkxer(
'ZHPTRD', infot, nout, lerr, ok )
316 infot = 2
317 CALL zhptrd(
'U', -1, a, d, e, tau, info )
318 CALL chkxer(
'ZHPTRD', infot, nout, lerr, ok )
319 nt = nt + 2
320
321
322
323 srnamt = 'ZUPGTR'
324 infot = 1
325 CALL zupgtr(
'/', 0, a, tau, z, 1, w, info )
326 CALL chkxer(
'ZUPGTR', infot, nout, lerr, ok )
327 infot = 2
328 CALL zupgtr(
'U', -1, a, tau, z, 1, w, info )
329 CALL chkxer(
'ZUPGTR', infot, nout, lerr, ok )
330 infot = 6
331 CALL zupgtr(
'U', 2, a, tau, z, 1, w, info )
332 CALL chkxer(
'ZUPGTR', infot, nout, lerr, ok )
333 nt = nt + 3
334
335
336
337 srnamt = 'ZUPMTR'
338 infot = 1
339 CALL zupmtr(
'/',
'U',
'N', 0, 0, a, tau, c, 1, w, info )
340 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
341 infot = 2
342 CALL zupmtr(
'L',
'/',
'N', 0, 0, a, tau, c, 1, w, info )
343 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
344 infot = 3
345 CALL zupmtr(
'L',
'U',
'/', 0, 0, a, tau, c, 1, w, info )
346 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
347 infot = 4
348 CALL zupmtr(
'L',
'U',
'N', -1, 0, a, tau, c, 1, w, info )
349 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
350 infot = 5
351 CALL zupmtr(
'L',
'U',
'N', 0, -1, a, tau, c, 1, w, info )
352 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
353 infot = 9
354 CALL zupmtr(
'L',
'U',
'N', 2, 0, a, tau, c, 1, w, info )
355 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
356 nt = nt + 6
357
358
359
360 srnamt = 'ZPTEQR'
361 infot = 1
362 CALL zpteqr(
'/', 0, d, e, z, 1, rw, info )
363 CALL chkxer(
'ZPTEQR', infot, nout, lerr, ok )
364 infot = 2
365 CALL zpteqr(
'N', -1, d, e, z, 1, rw, info )
366 CALL chkxer(
'ZPTEQR', infot, nout, lerr, ok )
367 infot = 6
368 CALL zpteqr(
'V', 2, d, e, z, 1, rw, info )
369 CALL chkxer(
'ZPTEQR', infot, nout, lerr, ok )
370 nt = nt + 3
371
372
373
374 srnamt = 'ZSTEIN'
375 infot = 1
376 CALL zstein( -1, d, e, 0, x, i1, i2, z, 1, rw, iw, i3, info )
377 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
378 infot = 4
379 CALL zstein( 0, d, e, -1, x, i1, i2, z, 1, rw, iw, i3, info )
380 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
381 infot = 4
382 CALL zstein( 0, d, e, 1, x, i1, i2, z, 1, rw, iw, i3, info )
383 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
384 infot = 9
385 CALL zstein( 2, d, e, 0, x, i1, i2, z, 1, rw, iw, i3, info )
386 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
387 nt = nt + 4
388
389
390
391 srnamt = 'ZSTEQR'
392 infot = 1
393 CALL zsteqr(
'/', 0, d, e, z, 1, rw, info )
394 CALL chkxer(
'ZSTEQR', infot, nout, lerr, ok )
395 infot = 2
396 CALL zsteqr(
'N', -1, d, e, z, 1, rw, info )
397 CALL chkxer(
'ZSTEQR', infot, nout, lerr, ok )
398 infot = 6
399 CALL zsteqr(
'V', 2, d, e, z, 1, rw, info )
400 CALL chkxer(
'ZSTEQR', infot, nout, lerr, ok )
401 nt = nt + 3
402
403
404
405 srnamt = 'ZSTEDC'
406 infot = 1
407 CALL zstedc(
'/', 0, d, e, z, 1, w, 1, rw, 1, iw, 1, info )
408 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
409 infot = 2
410 CALL zstedc(
'N', -1, d, e, z, 1, w, 1, rw, 1, iw, 1, info )
411 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
412 infot = 6
413 CALL zstedc(
'V', 2, d, e, z, 1, w, 4, rw, 23, iw, 28, info )
414 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
415 infot = 8
416 CALL zstedc(
'N', 2, d, e, z, 1, w, 0, rw, 1, iw, 1, info )
417 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
418 infot = 8
419 CALL zstedc(
'V', 2, d, e, z, 2, w, 0, rw, 23, iw, 28, info )
420 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
421 infot = 10
422 CALL zstedc(
'N', 2, d, e, z, 1, w, 1, rw, 0, iw, 1, info )
423 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
424 infot = 10
425 CALL zstedc(
'I', 2, d, e, z, 2, w, 1, rw, 1, iw, 12, info )
426 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
427 infot = 10
428 CALL zstedc(
'V', 2, d, e, z, 2, w, 4, rw, 1, iw, 28, info )
429 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
430 infot = 12
431 CALL zstedc(
'N', 2, d, e, z, 1, w, 1, rw, 1, iw, 0, info )
432 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
433 infot = 12
434 CALL zstedc(
'I', 2, d, e, z, 2, w, 1, rw, 23, iw, 0, info )
435 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
436 infot = 12
437 CALL zstedc(
'V', 2, d, e, z, 2, w, 4, rw, 23, iw, 0, info )
438 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
439 nt = nt + 11
440
441
442
443 srnamt = 'ZHEEVD'
444 infot = 1
445 CALL zheevd(
'/',
'U', 0, a, 1, x, w, 1, rw, 1, iw, 1, info )
446 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
447 infot = 2
448 CALL zheevd(
'N',
'/', 0, a, 1, x, w, 1, rw, 1, iw, 1, info )
449 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
450 infot = 3
451 CALL zheevd(
'N',
'U', -1, a, 1, x, w, 1, rw, 1, iw, 1, info )
452 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
453 infot = 5
454 CALL zheevd(
'N',
'U', 2, a, 1, x, w, 3, rw, 2, iw, 1, info )
455 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
456 infot = 8
457 CALL zheevd(
'N',
'U', 1, a, 1, x, w, 0, rw, 1, iw, 1, info )
458 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
459 infot = 8
460 CALL zheevd(
'N',
'U', 2, a, 2, x, w, 2, rw, 2, iw, 1, info )
461 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
462 infot = 8
463 CALL zheevd(
'V',
'U', 2, a, 2, x, w, 3, rw, 25, iw, 12, info )
464 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
465 infot = 10
466 CALL zheevd(
'N',
'U', 1, a, 1, x, w, 1, rw, 0, iw, 1, info )
467 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
468 infot = 10
469 CALL zheevd(
'N',
'U', 2, a, 2, x, w, 3, rw, 1, iw, 1, info )
470 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
471 infot = 10
472 CALL zheevd(
'V',
'U', 2, a, 2, x, w, 8, rw, 18, iw, 12, info )
473 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
474 infot = 12
475 CALL zheevd(
'N',
'U', 1, a, 1, x, w, 1, rw, 1, iw, 0, info )
476 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
477 infot = 12
478 CALL zheevd(
'V',
'U', 2, a, 2, x, w, 8, rw, 25, iw, 11, info )
479 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
480 nt = nt + 12
481
482
483
484 srnamt = 'ZHEEVD_2STAGE'
485 infot = 1
487 $ rw, 1, iw, 1, info )
488 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
489 infot = 1
491 $ rw, 1, iw, 1, info )
492 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
493 infot = 2
495 $ rw, 1, iw, 1, info )
496 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
497 infot = 3
499 $ rw, 1, iw, 1, info )
500 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
501 infot = 5
503 $ rw, 2, iw, 1, info )
504 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
505 infot = 8
507 $ rw, 1, iw, 1, info )
508 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
509 infot = 8
511 $ rw, 2, iw, 1, info )
512 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
513
514
515
516
517 infot = 10
519 $ rw, 0, iw, 1, info )
520 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
521 infot = 10
523 $ rw, 1, iw, 1, info )
524 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
525
526
527
528
529 infot = 12
531 $ rw, 1, iw, 0, info )
532 CALL chkxer(
'ZHEEVD_2STAGE', infot, nout, lerr, ok )
533 infot = 12
534
535
536
537 nt = nt + 10
538
539
540
541 srnamt = 'ZHEEV '
542 infot = 1
543 CALL zheev(
'/',
'U', 0, a, 1, x, w, 1, rw, info )
544 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
545 infot = 2
546 CALL zheev(
'N',
'/', 0, a, 1, x, w, 1, rw, info )
547 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
548 infot = 3
549 CALL zheev(
'N',
'U', -1, a, 1, x, w, 1, rw, info )
550 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
551 infot = 5
552 CALL zheev(
'N',
'U', 2, a, 1, x, w, 3, rw, info )
553 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
554 infot = 8
555 CALL zheev(
'N',
'U', 2, a, 2, x, w, 2, rw, info )
556 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
557 nt = nt + 5
558
559
560
561 srnamt = 'ZHEEV_2STAGE '
562 infot = 1
563 CALL zheev_2stage(
'/',
'U', 0, a, 1, x, w, 1, rw, info )
564 CALL chkxer(
'ZHEEV_2STAGE ', infot, nout, lerr, ok )
565 infot = 1
566 CALL zheev_2stage(
'V',
'U', 0, a, 1, x, w, 1, rw, info )
567 CALL chkxer(
'ZHEEV_2STAGE ', infot, nout, lerr, ok )
568 infot = 2
569 CALL zheev_2stage(
'N',
'/', 0, a, 1, x, w, 1, rw, info )
570 CALL chkxer(
'ZHEEV_2STAGE ', infot, nout, lerr, ok )
571 infot = 3
572 CALL zheev_2stage(
'N',
'U', -1, a, 1, x, w, 1, rw, info )
573 CALL chkxer(
'ZHEEV_2STAGE ', infot, nout, lerr, ok )
574 infot = 5
575 CALL zheev_2stage(
'N',
'U', 2, a, 1, x, w, 3, rw, info )
576 CALL chkxer(
'ZHEEV_2STAGE ', infot, nout, lerr, ok )
577 infot = 8
578 CALL zheev_2stage(
'N',
'U', 2, a, 2, x, w, 2, rw, info )
579 CALL chkxer(
'ZHEEV_2STAGE ', infot, nout, lerr, ok )
580 nt = nt + 6
581
582
583
584 srnamt = 'ZHEEVX'
585 infot = 1
586 CALL zheevx(
'/',
'A',
'U', 0, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
587 $ m, x, z, 1, w, 1, rw, iw, i3, info )
588 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
589 infot = 2
590 CALL zheevx(
'V',
'/',
'U', 0, a, 1, 0.0d0, 1.0d0, 1, 0, 0.0d0,
591 $ m, x, z, 1, w, 1, rw, iw, i3, info )
592 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
593 infot = 3
594 CALL zheevx(
'V',
'A',
'/', 0, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
595 $ m, x, z, 1, w, 1, rw, iw, i3, info )
596 infot = 4
597 CALL zheevx(
'V',
'A',
'U', -1, a, 1, 0.0d0, 0.0d0, 0, 0,
598 $ 0.0d0, m, x, z, 1, w, 1, rw, iw, i3, info )
599 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
600 infot = 6
601 CALL zheevx(
'V',
'A',
'U', 2, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
602 $ m, x, z, 2, w, 3, rw, iw, i3, info )
603 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
604 infot = 8
605 CALL zheevx(
'V',
'V',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
606 $ m, x, z, 1, w, 1, rw, iw, i3, info )
607 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
608 infot = 9
609 CALL zheevx(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
610 $ m, x, z, 1, w, 1, rw, iw, i3, info )
611 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
612 infot = 10
613 CALL zheevx(
'V',
'I',
'U', 2, a, 2, 0.0d0, 0.0d0, 2, 1, 0.0d0,
614 $ m, x, z, 2, w, 3, rw, iw, i3, info )
615 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
616 infot = 15
617 CALL zheevx(
'V',
'A',
'U', 2, a, 2, 0.0d0, 0.0d0, 0, 0, 0.0d0,
618 $ m, x, z, 1, w, 3, rw, iw, i3, info )
619 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
620 infot = 17
621 CALL zheevx(
'V',
'A',
'U', 2, a, 2, 0.0d0, 0.0d0, 0, 0, 0.0d0,
622 $ m, x, z, 2, w, 2, rw, iw, i1, info )
623 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
624 nt = nt + 10
625
626
627
628 srnamt = 'ZHEEVX_2STAGE'
629 infot = 1
631 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
632 $ m, x, z, 1, w, 1, rw, iw, i3, info )
633 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
634 infot = 1
636 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
637 $ m, x, z, 1, w, 1, rw, iw, i3, info )
638 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
639 infot = 2
641 $ 0.0d0, 1.0d0, 1, 0, 0.0d0,
642 $ m, x, z, 1, w, 1, rw, iw, i3, info )
643 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
644 infot = 3
646 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
647 $ m, x, z, 1, w, 1, rw, iw, i3, info )
648 infot = 4
650 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
651 $ m, x, z, 1, w, 1, rw, iw, i3, info )
652 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
653 infot = 6
655 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
656 $ m, x, z, 2, w, 3, rw, iw, i3, info )
657 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
658 infot = 8
660 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
661 $ m, x, z, 1, w, 1, rw, iw, i3, info )
662 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
663 infot = 9
665 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
666 $ m, x, z, 1, w, 1, rw, iw, i3, info )
667 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
668 infot = 10
670 $ 0.0d0, 0.0d0, 2, 1, 0.0d0,
671 $ m, x, z, 2, w, 3, rw, iw, i3, info )
672 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
673 infot = 15
675 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
676 $ m, x, z, 0, w, 3, rw, iw, i3, info )
677 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
678 infot = 17
680 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
681 $ m, x, z, 2, w, 0, rw, iw, i1, info )
682 CALL chkxer(
'ZHEEVX_2STAGE', infot, nout, lerr, ok )
683 nt = nt + 11
684
685
686
687 srnamt = 'ZHEEVR'
688 n = 1
689 infot = 1
690 CALL zheevr(
'/',
'A',
'U', 0, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
691 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
692 $ 10*n, info )
693 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
694 infot = 2
695 CALL zheevr(
'V',
'/',
'U', 0, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
696 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
697 $ 10*n, info )
698 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
699 infot = 3
700 CALL zheevr(
'V',
'A',
'/', -1, a, 1, 0.0d0, 0.0d0, 1, 1,
701 $ 0.0d0, m, r, z, 1, iw, q, 2*n, rw, 24*n,
702 $ iw( 2*n+1 ), 10*n, info )
703 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
704 infot = 4
705 CALL zheevr(
'V',
'A',
'U', -1, a, 1, 0.0d0, 0.0d0, 1, 1,
706 $ 0.0d0, m, r, z, 1, iw, q, 2*n, rw, 24*n,
707 $ iw( 2*n+1 ), 10*n, info )
708 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
709 infot = 6
710 CALL zheevr(
'V',
'A',
'U', 2, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
711 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
712 $ 10*n, info )
713 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
714 infot = 8
715 CALL zheevr(
'V',
'V',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
716 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
717 $ 10*n, info )
718 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
719 infot = 9
720 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 1, 0.0d0,
721 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
722 $ 10*n, info )
723 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
724 infot = 10
725
726 CALL zheevr(
'V',
'I',
'U', 2, a, 2, 0.0d0, 0.0d0, 2, 1, 0.0d0,
727 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
728 $ 10*n, info )
729 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
730 infot = 15
731 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
732 $ m, r, z, 0, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
733 $ 10*n, info )
734 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
735 infot = 18
736 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
737 $ m, r, z, 1, iw, q, 2*n-1, rw, 24*n, iw( 2*n+1 ),
738 $ 10*n, info )
739 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
740 infot = 20
741 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
742 $ m, r, z, 1, iw, q, 2*n, rw, 24*n-1, iw( 2*n-1 ),
743 $ 10*n, info )
744 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
745 infot = 22
746 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
747 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw, 10*n-1,
748 $ info )
749 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
750 nt = nt + 12
751
752
753
754 srnamt = 'ZHEEVR_2STAGE'
755 n = 1
756 infot = 1
758 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
759 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
760 $ 10*n, info )
761 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
762 infot = 1
764 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
765 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
766 $ 10*n, info )
767 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
768 infot = 2
770 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
771 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
772 $ 10*n, info )
773 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
774 infot = 3
776 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
777 $ m, r, z, 1, iw, q, 2*n, rw, 24*n,
778 $ iw( 2*n+1 ), 10*n, info )
779 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
780 infot = 4
782 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
783 $ m, r, z, 1, iw, q, 2*n, rw, 24*n,
784 $ iw( 2*n+1 ), 10*n, info )
785 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
786 infot = 6
788 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
789 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
790 $ 10*n, info )
791 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
792 infot = 8
794 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
795 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
796 $ 10*n, info )
797 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
798 infot = 9
800 $ 0.0d0, 0.0d0, 0, 1, 0.0d0,
801 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
802 $ 10*n, info )
803 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
804 infot = 10
806 $ 0.0d0, 0.0d0, 2, 1, 0.0d0,
807 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
808 $ 10*n, info )
809 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
810 infot = 15
812 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
813 $ m, r, z, 0, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
814 $ 10*n, info )
815 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
816 infot = 18
818 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
819 $ m, r, z, 1, iw, q, 2*n-1, rw, 24*n, iw( 2*n+1 ),
820 $ 10*n, info )
821 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
822 infot = 20
824 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
825 $ m, r, z, 1, iw, q, 26*n, rw, 24*n-1, iw( 2*n-1 ),
826 $ 10*n, info )
827 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
828 infot = 22
830 $ 0.0d0, 0.0d0, 1, 1, 0.0d0,
831 $ m, r, z, 1, iw, q, 26*n, rw, 24*n, iw, 10*n-1,
832 $ info )
833 CALL chkxer(
'ZHEEVR_2STAGE', infot, nout, lerr, ok )
834 nt = nt + 13
835
836
837
838 srnamt = 'ZHPEVD'
839 infot = 1
840 CALL zhpevd(
'/',
'U', 0, a, x, z, 1, w, 1, rw, 1, iw, 1,
841 $ info )
842 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
843 infot = 2
844 CALL zhpevd(
'N',
'/', 0, a, x, z, 1, w, 1, rw, 1, iw, 1,
845 $ info )
846 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
847 infot = 3
848 CALL zhpevd(
'N',
'U', -1, a, x, z, 1, w, 1, rw, 1, iw, 1,
849 $ info )
850 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
851 infot = 7
852 CALL zhpevd(
'V',
'U', 2, a, x, z, 1, w, 4, rw, 25, iw, 12,
853 $ info )
854 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
855 infot = 9
856 CALL zhpevd(
'N',
'U', 1, a, x, z, 1, w, 0, rw, 1, iw, 1,
857 $ info )
858 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
859 infot = 9
860 CALL zhpevd(
'N',
'U', 2, a, x, z, 2, w, 1, rw, 2, iw, 1,
861 $ info )
862 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
863 infot = 9
864 CALL zhpevd(
'V',
'U', 2, a, x, z, 2, w, 2, rw, 25, iw, 12,
865 $ info )
866 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
867 infot = 11
868 CALL zhpevd(
'N',
'U', 1, a, x, z, 1, w, 1, rw, 0, iw, 1,
869 $ info )
870 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
871 infot = 11
872 CALL zhpevd(
'N',
'U', 2, a, x, z, 2, w, 2, rw, 1, iw, 1,
873 $ info )
874 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
875 infot = 11
876 CALL zhpevd(
'V',
'U', 2, a, x, z, 2, w, 4, rw, 18, iw, 12,
877 $ info )
878 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
879 infot = 13
880 CALL zhpevd(
'N',
'U', 1, a, x, z, 1, w, 1, rw, 1, iw, 0,
881 $ info )
882 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
883 infot = 13
884 CALL zhpevd(
'N',
'U', 2, a, x, z, 2, w, 2, rw, 2, iw, 0,
885 $ info )
886 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
887 infot = 13
888 CALL zhpevd(
'V',
'U', 2, a, x, z, 2, w, 4, rw, 25, iw, 2,
889 $ info )
890 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
891 nt = nt + 13
892
893
894
895 srnamt = 'ZHPEV '
896 infot = 1
897 CALL zhpev(
'/',
'U', 0, a, x, z, 1, w, rw, info )
898 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
899 infot = 2
900 CALL zhpev(
'N',
'/', 0, a, x, z, 1, w, rw, info )
901 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
902 infot = 3
903 CALL zhpev(
'N',
'U', -1, a, x, z, 1, w, rw, info )
904 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
905 infot = 7
906 CALL zhpev(
'V',
'U', 2, a, x, z, 1, w, rw, info )
907 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
908 nt = nt + 4
909
910
911
912 srnamt = 'ZHPEVX'
913 infot = 1
914 CALL zhpevx(
'/',
'A',
'U', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
915 $ x, z, 1, w, rw, iw, i3, info )
916 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
917 infot = 2
918 CALL zhpevx(
'V',
'/',
'U', 0, a, 0.0d0, 1.0d0, 1, 0, 0.0d0, m,
919 $ x, z, 1, w, rw, iw, i3, info )
920 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
921 infot = 3
922 CALL zhpevx(
'V',
'A',
'/', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
923 $ x, z, 1, w, rw, iw, i3, info )
924 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
925 infot = 4
926 CALL zhpevx(
'V',
'A',
'U', -1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0,
927 $ m, x, z, 1, w, rw, iw, i3, info )
928 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
929 infot = 7
930 CALL zhpevx(
'V',
'V',
'U', 1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
931 $ x, z, 1, w, rw, iw, i3, info )
932 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
933 infot = 8
934 CALL zhpevx(
'V',
'I',
'U', 1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
935 $ x, z, 1, w, rw, iw, i3, info )
936 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
937 infot = 9
938 CALL zhpevx(
'V',
'I',
'U', 2, a, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
939 $ x, z, 2, w, rw, iw, i3, info )
940 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
941 infot = 14
942 CALL zhpevx(
'V',
'A',
'U', 2, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
943 $ x, z, 1, w, rw, iw, i3, info )
944 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
945 nt = nt + 8
946
947
948
949 ELSE IF(
lsamen( 2, c2,
'HB' ) )
THEN
950
951
952
953 srnamt = 'ZHBTRD'
954 infot = 1
955 CALL zhbtrd(
'/',
'U', 0, 0, a, 1, d, e, z, 1, w, info )
956 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
957 infot = 2
958 CALL zhbtrd(
'N',
'/', 0, 0, a, 1, d, e, z, 1, w, info )
959 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
960 infot = 3
961 CALL zhbtrd(
'N',
'U', -1, 0, a, 1, d, e, z, 1, w, info )
962 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
963 infot = 4
964 CALL zhbtrd(
'N',
'U', 0, -1, a, 1, d, e, z, 1, w, info )
965 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
966 infot = 6
967 CALL zhbtrd(
'N',
'U', 1, 1, a, 1, d, e, z, 1, w, info )
968 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
969 infot = 10
970 CALL zhbtrd(
'V',
'U', 2, 0, a, 1, d, e, z, 1, w, info )
971 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
972 nt = nt + 6
973
974
975
976 srnamt = 'ZHETRD_HB2ST'
977 infot = 1
979 $ c, 1, w, 1, info )
980 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
981 infot = 2
983 $ c, 1, w, 1, info )
984 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
985 infot = 2
987 $ c, 1, w, 1, info )
988 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
989 infot = 3
991 $ c, 1, w, 1, info )
992 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
993 infot = 4
995 $ c, 1, w, 1, info )
996 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
997 infot = 5
999 $ c, 1, w, 1, info )
1000 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
1001 infot = 7
1003 $ c, 1, w, 1, info )
1004 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
1005 infot = 11
1007 $ c, 0, w, 1, info )
1008 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
1009 infot = 13
1011 $ c, 1, w, 0, info )
1012 CALL chkxer(
'ZHETRD_HB2ST', infot, nout, lerr, ok )
1013 nt = nt + 9
1014
1015
1016
1017 srnamt = 'ZHBEVD'
1018 infot = 1
1019 CALL zhbevd(
'/',
'U', 0, 0, a, 1, x, z, 1, w, 1, rw, 1, iw, 1,
1020 $ info )
1021 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1022 infot = 2
1023 CALL zhbevd(
'N',
'/', 0, 0, a, 1, x, z, 1, w, 1, rw, 1, iw, 1,
1024 $ info )
1025 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1026 infot = 3
1027 CALL zhbevd(
'N',
'U', -1, 0, a, 1, x, z, 1, w, 1, rw, 1, iw,
1028 $ 1, info )
1029 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1030 infot = 4
1031 CALL zhbevd(
'N',
'U', 0, -1, a, 1, x, z, 1, w, 1, rw, 1, iw,
1032 $ 1, info )
1033 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1034 infot = 6
1035 CALL zhbevd(
'N',
'U', 2, 1, a, 1, x, z, 1, w, 2, rw, 2, iw, 1,
1036 $ info )
1037 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1038 infot = 9
1039 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 1, w, 8, rw, 25, iw,
1040 $ 12, info )
1041 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1042 infot = 11
1043 CALL zhbevd(
'N',
'U', 1, 0, a, 1, x, z, 1, w, 0, rw, 1, iw, 1,
1044 $ info )
1045 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1046 infot = 11
1047 CALL zhbevd(
'N',
'U', 2, 1, a, 2, x, z, 2, w, 1, rw, 2, iw, 1,
1048 $ info )
1049 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1050 infot = 11
1051 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 2, w, 2, rw, 25, iw,
1052 $ 12, info )
1053 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1054 infot = 13
1055 CALL zhbevd(
'N',
'U', 1, 0, a, 1, x, z, 1, w, 1, rw, 0, iw, 1,
1056 $ info )
1057 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1058 infot = 13
1059 CALL zhbevd(
'N',
'U', 2, 1, a, 2, x, z, 2, w, 2, rw, 1, iw, 1,
1060 $ info )
1061 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1062 infot = 13
1063 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 2, w, 8, rw, 2, iw,
1064 $ 12, info )
1065 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1066 infot = 15
1067 CALL zhbevd(
'N',
'U', 1, 0, a, 1, x, z, 1, w, 1, rw, 1, iw, 0,
1068 $ info )
1069 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1070 infot = 15
1071 CALL zhbevd(
'N',
'U', 2, 1, a, 2, x, z, 2, w, 2, rw, 2, iw, 0,
1072 $ info )
1073 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1074 infot = 15
1075 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 2, w, 8, rw, 25, iw,
1076 $ 2, info )
1077 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
1078 nt = nt + 15
1079
1080
1081
1082 srnamt = 'ZHBEVD_2STAGE'
1083 infot = 1
1085 $ w, 1, rw, 1, iw, 1, info )
1086 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1087 infot = 1
1089 $ w, 1, rw, 1, iw, 1, info )
1090 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1091 infot = 2
1093 $ w, 1, rw, 1, iw, 1, info )
1094 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1095 infot = 3
1097 $ w, 1, rw, 1, iw, 1, info )
1098 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1099 infot = 4
1101 $ w, 1, rw, 1, iw, 1, info )
1102 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1103 infot = 6
1105 $ w, 2, rw, 2, iw, 1, info )
1106 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1107 infot = 9
1109 $ w, 8, rw, 25, iw, 12, info )
1110 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1111 infot = 11
1113 $ w, 0, rw, 1, iw, 1, info )
1114 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1115 infot = 11
1117 $ w, 1, rw, 2, iw, 1, info )
1118 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1119
1120
1121
1122
1123 infot = 13
1125 $ w, 1, rw, 0, iw, 1, info )
1126 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1127 infot = 13
1129 $ w, 25, rw, 1, iw, 1, info )
1130 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1131
1132
1133
1134
1135 infot = 15
1137 $ w, 1, rw, 1, iw, 0, info )
1138 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1139 infot = 15
1141 $ w, 25, rw, 2, iw, 0, info )
1142 CALL chkxer(
'ZHBEVD_2STAGE', infot, nout, lerr, ok )
1143
1144
1145
1146
1147 nt = nt + 13
1148
1149
1150
1151 srnamt = 'ZHBEV '
1152 infot = 1
1153 CALL zhbev(
'/',
'U', 0, 0, a, 1, x, z, 1, w, rw, info )
1154 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
1155 infot = 2
1156 CALL zhbev(
'N',
'/', 0, 0, a, 1, x, z, 1, w, rw, info )
1157 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
1158 infot = 3
1159 CALL zhbev(
'N',
'U', -1, 0, a, 1, x, z, 1, w, rw, info )
1160 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
1161 infot = 4
1162 CALL zhbev(
'N',
'U', 0, -1, a, 1, x, z, 1, w, rw, info )
1163 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
1164 infot = 6
1165 CALL zhbev(
'N',
'U', 2, 1, a, 1, x, z, 1, w, rw, info )
1166 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
1167 infot = 9
1168 CALL zhbev(
'V',
'U', 2, 0, a, 1, x, z, 1, w, rw, info )
1169 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
1170 nt = nt + 6
1171
1172
1173
1174 srnamt = 'ZHBEV_2STAGE '
1175 infot = 1
1177 $ z, 1, w, 0, rw, info )
1178 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1179 infot = 1
1181 $ z, 1, w, 0, rw, info )
1182 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1183 infot = 2
1185 $ z, 1, w, 0, rw, info )
1186 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1187 infot = 3
1189 $ z, 1, w, 0, rw, info )
1190 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1191 infot = 4
1193 $ z, 1, w, 0, rw, info )
1194 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1195 infot = 6
1197 $ z, 1, w, 0, rw, info )
1198 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1199 infot = 9
1201 $ z, 0, w, 0, rw, info )
1202 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1203 infot = 11
1205 $ z, 1, w, 0, rw, info )
1206 CALL chkxer(
'ZHBEV_2STAGE ', infot, nout, lerr, ok )
1207 nt = nt + 8
1208
1209
1210
1211 srnamt = 'ZHBEVX'
1212 infot = 1
1213 CALL zhbevx(
'/',
'A',
'U', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1214 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1215 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1216 infot = 2
1217 CALL zhbevx(
'V',
'/',
'U', 0, 0, a, 1, q, 1, 0.0d0, 1.0d0, 1,
1218 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1219 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1220 infot = 3
1221 CALL zhbevx(
'V',
'A',
'/', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1222 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1223 infot = 4
1224 CALL zhbevx(
'V',
'A',
'U', -1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1225 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1226 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1227 infot = 5
1228 CALL zhbevx(
'V',
'A',
'U', 0, -1, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1229 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1230 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1231 infot = 7
1232 CALL zhbevx(
'V',
'A',
'U', 2, 1, a, 1, q, 2, 0.0d0, 0.0d0, 0,
1233 $ 0, 0.0d0, m, x, z, 2, w, rw, iw, i3, info )
1234 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1235 infot = 9
1236 CALL zhbevx(
'V',
'A',
'U', 2, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1237 $ 0, 0.0d0, m, x, z, 2, w, rw, iw, i3, info )
1238 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1239 infot = 11
1240 CALL zhbevx(
'V',
'V',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1241 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1242 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1243 infot = 12
1244 CALL zhbevx(
'V',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
1245 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1246 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1247 infot = 13
1248 CALL zhbevx(
'V',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 1,
1249 $ 2, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1250 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1251 infot = 18
1252 CALL zhbevx(
'V',
'A',
'U', 2, 0, a, 1, q, 2, 0.0d0, 0.0d0, 0,
1253 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
1254 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
1255 nt = nt + 11
1256
1257
1258
1259 srnamt = 'ZHBEVX_2STAGE'
1260 infot = 1
1262 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1263 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1264 infot = 1
1266 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1267 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1268 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1269 infot = 2
1271 $ 0.0d0, 1.0d0, 1, 0, 0.0d0,
1272 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1273 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1274 infot = 3
1276 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1277 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1278 infot = 4
1280 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1281 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1282 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1283 infot = 5
1285 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1286 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1287 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1288 infot = 7
1290 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1291 $ m, x, z, 2, w, 0, rw, iw, i3, info )
1292 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1293
1294
1295
1296
1297
1298 infot = 11
1300 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1301 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1302 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1303 infot = 12
1305 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1306 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1307 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1308 infot = 13
1310 $ 0.0d0, 0.0d0, 1, 2, 0.0d0,
1311 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1312 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1313 infot = 18
1315 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1316 $ m, x, z, 0, w, 0, rw, iw, i3, info )
1317 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1318 infot = 20
1320 $ 0.0d0, 0.0d0, 0, 0, 0.0d0,
1321 $ m, x, z, 1, w, 0, rw, iw, i3, info )
1322 CALL chkxer(
'ZHBEVX_2STAGE', infot, nout, lerr, ok )
1323 nt = nt + 12
1324 END IF
1325
1326
1327
1328 IF( ok ) THEN
1329 WRITE( nout, fmt = 9999 )path, nt
1330 ELSE
1331 WRITE( nout, fmt = 9998 )path
1332 END IF
1333
1334 9999 FORMAT( 1x, a3, ' routines passed the tests of the error exits',
1335 $ ' (', i3, ' tests done)' )
1336 9998 FORMAT( ' *** ', a3, ' routines failed the tests of the error ',
1337 $ 'exits ***' )
1338
1339 RETURN
1340
1341
1342
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
logical function lsamen(N, CA, CB)
LSAMEN
subroutine zhetrd_2stage(VECT, UPLO, N, A, LDA, D, E, TAU, HOUS2, LHOUS2, WORK, LWORK, INFO)
ZHETRD_2STAGE
subroutine zhetrd_he2hb(UPLO, N, KD, A, LDA, AB, LDAB, TAU, WORK, LWORK, INFO)
ZHETRD_HE2HB
subroutine zhetrd(UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO)
ZHETRD
subroutine zheevd_2stage(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEEVD_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE mat...
subroutine zheevr(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEEVR computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zheevd(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zheevx(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO)
ZHEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zheevx_2stage(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO)
ZHEEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE mat...
subroutine zheev_2stage(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, INFO)
ZHEEV_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matr...
subroutine zheevr_2stage(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEEVR_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE mat...
subroutine zheev(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, INFO)
ZHEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZSTEQR
subroutine zupmtr(SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO)
ZUPMTR
subroutine zunmtr(SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMTR
subroutine zungtr(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGTR
subroutine zhptrd(UPLO, N, AP, D, E, TAU, INFO)
ZHPTRD
subroutine zstein(N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, IWORK, IFAIL, INFO)
ZSTEIN
subroutine zhetrd_hb2st(STAGE1, VECT, UPLO, N, KD, AB, LDAB, D, E, HOUS, LHOUS, WORK, LWORK, INFO)
ZHETRD_HB2ST reduces a complex Hermitian band matrix A to real symmetric tridiagonal form T
subroutine zstedc(COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZSTEDC
subroutine zhbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
ZHBTRD
subroutine zupgtr(UPLO, N, AP, TAU, Q, LDQ, WORK, INFO)
ZUPGTR
subroutine zhpev(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, RWORK, INFO)
ZHPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
subroutine zhbevd_2stage(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHBEVD_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER ...
subroutine zhpevd(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbevd(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHBEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbevx_2stage(JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO)
ZHBEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER ...
subroutine zhpevx(JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
ZHPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbev(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, RWORK, INFO)
ZHBEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
subroutine zhbevx(JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
ZHBEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbev_2stage(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK, RWORK, INFO)
ZHBEV_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER m...
subroutine zpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZPTEQR