69 parameter( nmax = 3, lw = nmax*nmax )
73 INTEGER I, IHI, ILO, INFO, J, M, NT
77 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
78 DOUBLE PRECISION RW( NMAX ), S( NMAX )
79 COMPLEX*16 A( NMAX, NMAX ), ( NMAX, NMAX ), TAU( NMAX ),
80 $ VL( NMAX, NMAX ), VR( NMAX, NMAX ), W( LW ),
100 COMMON / infoc / infot, nout, ok, lerr
101 COMMON / srnamc / srnamt
106 WRITE( nout, fmt = * )
113 a( i, j ) = 1.d0 / dble( i+j )
122 IF(
lsamen( 2, c2,
'HS' ) )
THEN
128 CALL zgebal(
'/', 0, a, 1, ilo, ihi, s, info )
129 CALL chkxer(
'ZGEBAL', infot, nout, lerr, ok )
131 CALL zgebal(
'N', -1, a, 1, ilo, ihi, s, info )
132 CALL chkxer(
'ZGEBAL', infot, nout, lerr, ok )
134 CALL zgebal(
'N', 2, a, 1, ilo, ihi, s, info )
135 CALL chkxer(
'ZGEBAL', infot, nout, lerr, ok )
142 CALL zgebak(
'/',
'R', 0, 1, 0, s, 0, a, 1, info )
143 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
145 CALL zgebak(
'N',
'/', 0, 1, 0, s, 0, a, 1, info )
146 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
148 CALL zgebak(
'N',
'R', -1, 1, 0, s, 0, a, 1, info )
149 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
151 CALL zgebak(
'N',
'R', 0, 0, 0, s, 0, a, 1, info )
152 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
154 CALL zgebak(
'N',
'R', 0, 2, 0, s, 0, a, 1, info )
155 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
157 CALL zgebak(
'N',
'R', 2, 2, 1, s, 0, a, 2, info )
158 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
160 CALL zgebak(
'N',
'R', 0, 1, 1, s, 0, a, 1, info )
161 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
163 CALL zgebak(
'N',
'R', 0, 1, 0, s, -1, a, 1, info )
164 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
166 CALL zgebak(
'N',
'R', 2, 1, 2, s, 0, a, 1, info )
167 CALL chkxer(
'ZGEBAK', infot, nout, lerr, ok )
174 CALL zgehrd( -1, 1, 1, a, 1, tau, w, 1, info )
175 CALL chkxer(
'ZGEHRD', infot, nout
177 CALL zgehrd( 0, 0, 0, a, 1, tau, w, 1, info
178 CALL chkxer(
'ZGEHRD', infot, nout, lerr, ok )
180 CALL zgehrd( 0, 2, 0, a, 1, tau, w, 1, info )
181 CALL chkxer(
'ZGEHRD', infot, nout, lerr, ok )
183 CALL zgehrd( 1, 1, 0, a, 1, tau, w, 1, info )
184 CALL chkxer(
'ZGEHRD', infot, nout, lerr, ok )
186 CALL zgehrd( 0, 1, 1, a, 1, tau, w, 1, info )
187 CALL chkxer(
'ZGEHRD', infot, nout, lerr, ok )
189 CALL zgehrd( 2, 1, 1, a, 1, tau, w, 2, info )
190 CALL chkxer(
'ZGEHRD', infot, nout, lerr, ok )
192 CALL zgehrd( 2, 1, 2, a, 2, tau, w, 1, info )
193 CALL chkxer(
'ZGEHRD', infot, nout, lerr, ok )
200 CALL zunghr( -1, 1, 1, a, 1, tau, w, 1, info )
201 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
203 CALL zunghr( 0, 0, 0, a, 1, tau, w, 1, info )
204 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
206 CALL zunghr( 0, 2, 0, a, 1, tau, w, 1, info )
207 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
209 CALL zunghr( 1, 1, 0, a, 1, tau, w, 1, info )
210 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
212 CALL zunghr( 0, 1, 1, a, 1, tau, w, 1, info )
213 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
215 CALL zunghr( 2, 1, 1, a, 1, tau, w, 1, info )
216 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
218 CALL zunghr( 3, 1, 3, a, 3, tau, w, 1, info )
219 CALL chkxer(
'ZUNGHR', infot, nout, lerr, ok )
226 CALL zunmhr(
'/',
'N', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
228 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
230 CALL zunmhr(
'L',
'/', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
232 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
234 CALL zunmhr(
'L',
'N', -1, 0, 1, 0, a, 1, tau, c, 1, w, 1,
236 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
238 CALL zunmhr(
'L',
'N', 0, -1, 1, 0, a, 1, tau, c, 1, w, 1,
240 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
242 CALL zunmhr(
'L',
'N', 0, 0, 0, 0, a, 1, tau, c, 1, w, 1,
244 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
246 CALL zunmhr(
'L',
'N', 0, 0, 2, 0, a, 1, tau, c, 1, w, 1,
248 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
250 CALL zunmhr(
'L',
'N', 1, 2, 2, 1, a, 1, tau, c, 1, w, 2,
252 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
254 CALL zunmhr(
'R',
'N', 2, 1, 2, 1, a, 1, tau, c, 2, w, 2,
256 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok
258 CALL zunmhr(
'L',
'N', 1, 1, 1, 0, a, 1, tau, c, 1, w, 1,
260 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
262 CALL zunmhr(
'L',
'N', 0, 1, 1, 1, a, 1, tau, c, 1, w, 1,
264 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
266 CALL zunmhr(
'R',
'N', 1, 0, 1, 1, a, 1, tau, c, 1, w, 1,
268 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
270 CALL zunmhr(
'L',
'N', 2, 1, 1, 1, a, 1, tau, c, 2, w, 1,
272 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
274 CALL zunmhr(
'R',
'N', 1, 2, 1, 1, a, 1, tau, c, 1, w, 1,
276 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
278 CALL zunmhr(
'L',
'N', 2, 1, 1, 1, a, 2, tau, c, 1, w, 1,
280 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
282 CALL zunmhr(
'L',
'N', 1, 2, 1, 1, a, 1, tau, c, 1, w, 1,
284 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
286 CALL zunmhr(
'R',
'N', 2, 1, 1, 1, a, 1, tau, c, 2, w, 1,
288 CALL chkxer(
'ZUNMHR', infot, nout, lerr, ok )
295 CALL zhseqr(
'/',
'N', 0, 1, 0, a, 1, x, c, 1, w, 1, info )
296 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
298 CALL zhseqr(
'E',
'/', 0, 1, 0, a, 1, x, c, 1, w, 1, info )
299 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
301 CALL zhseqr(
'E',
'N', -1, 1, 0, a, 1, x, c, 1, w, 1, info )
302 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
304 CALL zhseqr(
'E',
'N', 0, 0, 0, a, 1, x, c, 1, w, 1, info )
305 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
307 CALL zhseqr(
'E',
'N', 0, 2, 0, a, 1, x, c, 1, w, 1, info )
308 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
310 CALL zhseqr(
'E',
'N', 1, 1, 0, a, 1, x, c, 1, w, 1, info )
311 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
313 CALL zhseqr(
'E',
'N', 1, 1, 2, a, 1, x, c, 1, w, 1, info )
314 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
316 CALL zhseqr(
'E',
'N', 2, 1, 2, a, 1, x, c, 2, w, 1, info )
317 CALL chkxer(
'ZHSEQR', infot, nout, lerr, ok )
319 CALL zhseqr( 'e
', 'v
', 2, 1, 2, A, 2, X, C, 1, W, 1, INFO )
320 CALL CHKXER( 'zhseqr', INFOT, NOUT, LERR, OK )
327 CALL ZHSEIN( '/
', 'n
', 'n
', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
328 $ M, W, RW, IFAILL, IFAILR, INFO )
329 CALL CHKXER( 'zhsein', INFOT, NOUT, LERR, OK )
331 CALL ZHSEIN( 'r
', '/
', 'n
', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
332 $ M, W, RW, IFAILL, IFAILR, INFO )
333 CALL CHKXER( 'zhsein', INFOT, NOUT, LERR, OK )
335 CALL ZHSEIN( 'r
', 'n
', '/
', SEL, 0, A, 1, X, VL, 1, VR, 1, 0,
336 $ M, W, RW, IFAILL, IFAILR, INFO )
337 CALL CHKXER( 'zhsein', INFOT, NOUT, LERR, OK )
339 CALL ZHSEIN( 'r
', 'n
', 'n
', SEL, -1, A, 1, X, VL, 1, VR, 1, 0,
340 $ M, W, RW, IFAILL, IFAILR, INFO )
341 CALL CHKXER( 'zhsein', INFOT, NOUT, LERR, OK )
343 CALL ZHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 1, X, VL, 1, VR, 2, 4,
344 $ M, W, RW, IFAILL, IFAILR, INFO )
345 CALL CHKXER( 'zhsein', INFOT, NOUT, LERR, OK )
347 CALL ZHSEIN( 'l
', 'n
', 'n
', SEL, 2, A, 2, X, VL, 1, VR, 1, 4,
348 $ M, W, RW, IFAILL, IFAILR, INFO )
349 CALL CHKXER( 'zhsein', INFOT, NOUT, LERR, OK )
351 CALL ZHSEIN( 'r',
'N',
'N', sel, 2, a, 2, x, vl, 1, vr, 1, 4,
352 $ m, w, rw, ifaill, ifailr, info )
353 CALL chkxer(
'ZHSEIN', infot, nout, lerr, ok )
355 CALL zhsein(
'R',
'N',
'N', sel, 2, a, 2, x, vl, 1, vr, 2, 1,
356 $ m, w, rw, ifaill, ifailr, info )
357 CALL chkxer(
'ZHSEIN', infot, nout, lerr, ok )
364 CALL ztrevc(
'/',
'A', sel, 0, a, 1, vl, 1, vr, 1, 0, m, w, rw,
366 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
368 CALL ztrevc(
'L',
'/', sel, 0, a, 1, vl, 1, vr, 1, 0, m, w, rw,
370 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
372 CALL ztrevc(
'L',
'A', sel, -1, a, 1, vl, 1, vr, 1, 0, m, w,
374 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
376 CALL ztrevc(
'L',
'A', sel, 2, a, 1, vl, 2, vr, 1, 4, m, w, rw,
378 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
380 CALL ztrevc(
'L',
'A', sel, 2, a, 2, vl, 1, vr, 1, 4, m, w, rw,
382 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
384 CALL ztrevc(
'R',
'A', sel, 2, a, 2, vl, 1, vr, 1, 4, m, w, rw,
386 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
388 CALL ztrevc(
'L',
'A', sel, 2, a, 2, vl, 2, vr, 1, 1, m, w, rw,
390 CALL chkxer(
'ZTREVC', infot, nout, lerr, ok )
397 WRITE( nout, fmt = 9999 )path, nt
399 WRITE( nout, fmt = 9998 )path
402 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits',
403 $
' (', i3,
' tests done)' )
404 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',