69 parameter( nmax = 3, lw = nmax*nmax )
73 INTEGER I, IHI, ILO, INFO, J, M,
77 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
78 REAL RW( NMAX ), S( NMAX )
79 COMPLEX A( , NMAX ), C( 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. / real( i+j )
122 IF( lsamen( 2, c2,
'HS' ) )
THEN
128 CALL cgebal(
'/', 0, a, 1, ilo, ihi, s, info )
129 CALL chkxer(
'CGEBAL', infot, nout, lerr, ok )
131 CALL cgebal(
'N', -1, a, 1, ilo, ihi, s, info )
132 CALL chkxer(
'CGEBAL', infot, nout, lerr, ok )
134 CALL cgebal(
'N', 2, a, 1, ilo, ihi, s, info )
135 CALL chkxer(
'CGEBAL', infot, nout, lerr, ok )
142 CALL cgebak(
'/',
'R', 0, 1, 0, s, 0, a, 1, info )
143 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
145 CALL cgebak(
'N',
'/', 0, 1, 0, s, 0, a, 1, info )
146 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
148 CALL cgebak(
'N',
'R', -1, 1, 0, s, 0, a, 1, info )
149 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
151 CALL cgebak(
'N',
'R', 0, 0, 0, s, 0, a, 1, info )
152 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
154 CALL cgebak(
'N',
'R', 0, 2, 0, s, 0, a, 1, info )
155 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
157 CALL cgebak(
'N',
'R', 2, 2, 1, s, 0, a, 2, info )
158 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
160 CALL cgebak(
'N',
'R', 0, 1, 1, s, 0, a, 1, info )
161 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
163 CALL cgebak(
'N',
'R', 0, 1, 0, s, -1, a, 1, info )
164 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
166 CALL cgebak(
'N',
'R', 2, 1, 2, s, 0, a, 1, info )
167 CALL chkxer(
'CGEBAK', infot, nout, lerr, ok )
174 CALL cgehrd( -1, 1, 1, a, 1, tau, w, 1, info )
175 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
177 CALL cgehrd( 0, 0, 0, a, 1, tau, w, 1, info )
178 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
180 CALL cgehrd( 0, 2, 0, a, 1, tau, w, 1, info )
181 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
183 CALL cgehrd( 1, 1, 0, a, 1, tau, w, 1, info )
184 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
186 CALL cgehrd( 0, 1, 1, a, 1, tau, w, 1, info )
187 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
189 CALL cgehrd( 2, 1, 1, a, 1, tau, w, 2, info )
190 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
192 CALL cgehrd( 2, 1, 2, a, 2, tau, w, 1, info )
193 CALL chkxer(
'CGEHRD', infot, nout, lerr, ok )
200 CALL cunghr( -1, 1, 1, a, 1, tau, w, 1, info )
201 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
203 CALL cunghr( 0, 0, 0, a, 1, tau, w, 1, info )
204 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
206 CALL cunghr( 0, 2, 0, a, 1, tau, w, 1, info )
207 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
209 CALL cunghr( 1, 1, 0, a, 1, tau, w, 1, info )
210 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
212 CALL cunghr( 0, 1, 1, a, 1, tau, w, 1, info )
213 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
215 CALL cunghr( 2, 1, 1, a, 1, tau, w, 1, info )
216 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
218 CALL cunghr( 3, 1, 3, a, 3, tau, w, 1, info )
219 CALL chkxer(
'CUNGHR', infot, nout, lerr, ok )
226 CALL cunmhr(
'/',
'N', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
228 CALL chkxer(
'CUNMHR', infot, nout, lerr, ok )
230 CALL cunmhr(
'L',
'/', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
232 CALL chkxer(
'CUNMHR', infot, nout, lerr, ok )
234 CALL cunmhr(
'L',
'N', -1, 0, 1, 0, a, 1, tau, c, 1, w, 1,
238 CALL CUNMHR( 'l
', 'n
', 0, -1, 1, 0, A, 1, TAU, C, 1, W, 1,
240 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
242 CALL CUNMHR( 'l
', 'n
', 0, 0, 0, 0, A, 1, TAU, C, 1, W, 1,
244 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
246 CALL CUNMHR( 'l
', 'n
', 0, 0, 2, 0, A, 1, TAU, C, 1, W, 1,
248 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
250 CALL CUNMHR( 'l
', 'n
', 1, 2, 2, 1, A, 1, TAU, C, 1, W, 2,
252 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
254 CALL CUNMHR( 'r
', 'n
', 2, 1, 2, 1, A, 1, TAU, C, 2, W, 2,
256 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
258 CALL CUNMHR( 'l
', 'n
', 1, 1, 1, 0, A, 1, TAU, C, 1, W, 1,
260 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
262 CALL CUNMHR( 'l
', 'n
', 0, 1, 1, 1, A, 1, TAU, C, 1, W, 1,
264 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
266 CALL CUNMHR( 'r
', 'n
', 1, 0, 1, 1, A, 1, TAU, C, 1, W, 1,
268 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
270 CALL CUNMHR( 'l
', 'n
', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
272 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
274 CALL CUNMHR( 'r
', 'n
', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
276 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
278 CALL CUNMHR( 'l
', 'n
', 2, 1, 1, 1, A, 2, TAU, C, 1, W, 1,
280 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
282 CALL CUNMHR( 'l
', 'n
', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
284 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
286 CALL CUNMHR( 'r
', 'n
', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
288 CALL CHKXER( 'cunmhr', INFOT, NOUT, LERR, OK )
295 CALL CHSEQR( '/
', 'n
', 0, 1, 0, A, 1, X, C, 1, W, 1,
297 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
299 CALL CHSEQR( 'e
', '/
', 0, 1, 0, A, 1, X, C, 1, W, 1,
301 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
303 CALL CHSEQR( 'e
', 'n
', -1, 1, 0, A, 1, X, C, 1, W, 1,
305 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
307 CALL CHSEQR( 'e
', 'n
', 0, 0, 0, A, 1, X, C, 1, W, 1,
309 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
311 CALL CHSEQR( 'e
', 'n
', 0, 2, 0, A, 1, X, C, 1, W, 1,
313 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
315 CALL CHSEQR( 'e
', 'n
', 1, 1, 0, A, 1, X, C, 1, W, 1,
317 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
319 CALL CHSEQR( 'e
', 'n
', 1, 1, 2, A, 1, X, C, 1, W, 1,
321 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
323 CALL CHSEQR( 'e
', 'n
', 2, 1, 2, A, 1, X, C, 2, W, 1,
325 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
327 CALL CHSEQR( 'e
', 'v
', 2, 1, 2, A, 2, X, C, 1, W, 1,
329 CALL CHKXER( 'chseqr', INFOT, NOUT, LERR, OK )
336 CALL CHSEIN( '/
', 'n',
'N', sel, 0, a, 1, x, vl, 1, vr, 1,
337 $ 0, m, w, rw, ifaill, ifailr, info )
338 CALL chkxer(
'CHSEIN', infot, nout, lerr, ok )
340 CALL chsein( 'r
', '/
', 'n
', SEL, 0, A, 1, X, VL, 1, VR, 1,
341 $ 0, M, W, RW, IFAILL, IFAILR, INFO )
342 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
344 CALL CHSEIN( 'r
', 'n
', '/
', SEL, 0, A, 1, X, VL, 1, VR, 1,
345 $ 0, M, W, RW, IFAILL, IFAILR, INFO )
346 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
348 CALL CHSEIN( 'r
', 'n
', 'n
', SEL, -1, A, 1, X, VL, 1, VR,
349 $ 1, 0, M, W, RW, IFAILL, IFAILR, INFO )
350 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
352 CALL CHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 1, X, VL, 1, VR, 2,
353 $ 4, M, W, RW, IFAILL, IFAILR, INFO )
354 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
356 CALL CHSEIN( 'l
', 'n
', 'n
', SEL, 2, A, 2, X, VL, 1, VR, 1,
357 $ 4, M, W, RW, IFAILL, IFAILR, INFO )
358 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
360 CALL CHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 2, X, VL, 1, VR, 1,
361 $ 4, M, W, RW, IFAILL, IFAILR, INFO )
362 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
364 CALL CHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 2, X, VL, 1, VR, 2,
365 $ 1, M, W, RW, IFAILL, IFAILR, INFO )
366 CALL CHKXER( 'chsein', INFOT, NOUT, LERR, OK )
373 CALL CTREVC( '/
', 'a
', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
375 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
377 CALL CTREVC( 'l
', '/
', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
379 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
381 CALL CTREVC( 'l
', 'a
', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
383 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
385 CALL CTREVC( 'l
', 'a
', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
387 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
389 CALL CTREVC( 'l
', 'a
', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
391 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
393 CALL CTREVC( 'r
', 'a
', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
395 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
397 CALL CTREVC( 'l
', 'a
', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
399 CALL CHKXER( 'ctrevc', INFOT, NOUT, LERR, OK )
406 WRITE( NOUT, FMT = 9999 )PATH, NT
408 WRITE( NOUT, FMT = 9998 )PATH
411 9999 FORMAT( 1X, A3, ' routines passed
the tests of
the error exits
',
412 $ ' (
', I3, ' tests done)
' )
413 9998 FORMAT( ' ***
', A3, ' routines failed
the tests of
the error
',