69 parameter( nmax = 3, lw = nmax*nmax )
73 INTEGER I, IHI, ILO, INFO, J, M, NT
77 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
78 REAL RW( NMAX ), S( NMAX )
79 COMPLEX A( NMAX, 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,
236 CALL chkxer(
'CUNMHR', infot, nout, lerr, ok )
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 ',
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
logical function lsamen(N, CA, CB)
LSAMEN
subroutine cgehrd(N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO)
CGEHRD
subroutine cgebal(JOB, N, A, LDA, ILO, IHI, SCALE, INFO)
CGEBAL
subroutine cgebak(JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO)
CGEBAK
subroutine cunmhr(SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMHR
subroutine cunghr(N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO)
CUNGHR
subroutine chseqr(JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, WORK, LWORK, INFO)
CHSEQR
subroutine chsein(SIDE, EIGSRC, INITV, SELECT, N, H, LDH, W, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, IFAILL, IFAILR, INFO)
CHSEIN
subroutine ctrevc(SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
CTREVC