69 parameter( nmax = 3, lw = ( nmax+2 )*( nmax+2 )+nmax )
73 INTEGER I, ILO, IHI, INFO, J, M, NT
77 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
78 REAL A( NMAX, NMAX ), C( NMAX, NMAX ), TAU( NMAX ),
79 $ VL( NMAX, NMAX ), VR( NMAX, NMAX ), W( LW ),
80 $ WI( NMAX ), WR( NMAX ), S( NMAX )
99 COMMON / infoc / infot, nout, ok, lerr
100 COMMON / srnamc / srnamt
105 WRITE( nout, fmt = * )
112 a( i, j ) = 1. / real( i+j )
122 IF( lsamen( 2, c2,
'HS' ) )
THEN
128 CALL sgebal(
'/', 0, a, 1, ilo, ihi, s, info )
129 CALL chkxer(
'SGEBAL', infot, nout, lerr, ok )
131 CALL sgebal(
'N', -1, a, 1, ilo, ihi, s, info )
132 CALL chkxer(
'SGEBAL', infot, nout, lerr, ok )
134 CALL sgebal(
'N', 2, a, 1, ilo, ihi, s, info )
135 CALL chkxer(
'SGEBAL', infot, nout, lerr, ok )
142 CALL sgebak(
'/',
'R', 0, 1, 0, s, 0, a, 1, info )
143 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
145 CALL sgebak(
'N',
'/', 0, 1, 0, s, 0, a, 1, info )
146 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
148 CALL sgebak(
'N',
'R', -1, 1, 0, s, 0, a, 1, info )
149 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
151 CALL sgebak(
'N',
'R', 0, 0, 0, s, 0, a, 1, info )
152 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
154 CALL sgebak(
'N',
'R', 0, 2, 0, s, 0, a, 1, info )
155 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
157 CALL sgebak(
'N',
'R', 2, 2, 1, s, 0, a, 2, info )
158 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
160 CALL sgebak(
'N',
'R', 0, 1, 1, s, 0, a, 1, info )
161 CALL chkxer(
'SGEBAK', infot, nout, lerr, ok )
163 CALL sgebak( 'n
', 'r
', 0, 1, 0, S, -1, A, 1, INFO )
164 CALL CHKXER( 'sgebak', INFOT, NOUT, LERR, OK )
166 CALL SGEBAK( 'n
', 'r
', 2, 1, 2, S, 0, A, 1, INFO )
167 CALL CHKXER( 'sgebak', INFOT, NOUT, LERR, OK )
174 CALL SGEHRD( -1, 1, 1, A, 1, TAU, W, 1, INFO )
175 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
177 CALL SGEHRD( 0, 0, 0, A, 1, TAU, W, 1, INFO )
178 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
180 CALL SGEHRD( 0, 2, 0, A, 1, TAU, W, 1, INFO )
181 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
183 CALL SGEHRD( 1, 1, 0, A, 1, TAU, W, 1, INFO )
184 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
186 CALL SGEHRD( 0, 1, 1, A, 1, TAU, W, 1, INFO )
187 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
189 CALL SGEHRD( 2, 1, 1, A, 1, TAU, W, 2, INFO )
190 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
192 CALL SGEHRD( 2, 1, 2, A, 2, TAU, W, 1, INFO )
193 CALL CHKXER( 'sgehrd', INFOT, NOUT, LERR, OK )
200 CALL SORGHR( -1, 1, 1, A, 1, TAU, W, 1, INFO )
201 CALL CHKXER( 'sorghr', INFOT, NOUT, LERR, OK )
203 CALL SORGHR( 0, 0, 0, A, 1, TAU, W, 1, INFO )
204 CALL CHKXER( 'sorghr', infot, nout, lerr, ok )
206 CALL sorghr( 0, 2, 0, a, 1, tau, w, 1, info )
207 CALL chkxer(
'SORGHR', infot, nout, lerr, ok )
209 CALL sorghr( 1, 1, 0, a, 1, tau, w, 1, info )
210 CALL chkxer(
'SORGHR', infot, nout, lerr, ok )
212 CALL sorghr( 0, 1, 1, a, 1, tau, w, 1, info )
213 CALL chkxer(
'SORGHR', infot, nout, lerr, ok )
215 CALL sorghr( 2, 1, 1, a, 1, tau, w, 1, info )
216 CALL chkxer(
'SORGHR', infot, nout, lerr, ok )
218 CALL sorghr( 3, 1, 3, a, 3, tau, w, 1, info )
219 CALL chkxer(
'SORGHR', infot, nout, lerr, ok )
226 CALL sormhr(
'/',
'N', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
228 CALL chkxer(
'SORMHR', infot, nout, lerr, ok )
230 CALL sormhr(
'L',
'/', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
232 CALL chkxer(
'SORMHR', infot, nout, lerr, ok )
234 CALL sormhr(
'L',
'N', -1, 0, 1, 0, a, 1, tau, c, 1, w, 1,
236 CALL chkxer(
'SORMHR', infot, nout, lerr, ok )
238 CALL sormhr(
'L',
'N', 0, -1, 1, 0, a, 1, tau, c, 1, w, 1,
240 CALL chkxer(
'SORMHR', infot, nout, lerr, ok )
242 CALL sormhr( 'l
', 'n
', 0, 0, 0, 0, A, 1, TAU, C, 1, W, 1,
244 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
246 CALL SORMHR( 'l
', 'n
', 0, 0, 2, 0, A, 1, TAU, C, 1, W, 1,
248 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
250 CALL SORMHR( 'l
', 'n
', 1, 2, 2, 1, A, 1, TAU, C, 1, W, 2,
252 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
254 CALL SORMHR( 'r
', 'n
', 2, 1, 2, 1, A, 1, TAU, C, 2, W, 2,
256 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
258 CALL SORMHR( 'l
', 'n
', 1, 1, 1, 0, A, 1, TAU, C, 1, W, 1,
260 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
262 CALL SORMHR( 'l
', 'n
', 0, 1, 1, 1, A, 1, TAU, C, 1, W, 1,
264 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
266 CALL SORMHR( 'r
', 'n
', 1, 0, 1, 1, A, 1, TAU, C, 1, W, 1,
268 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
270 CALL SORMHR( 'l
', 'n
', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
272 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
274 CALL SORMHR( 'r
', 'n
', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
276 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
278 CALL SORMHR( 'l
', 'n
', 2, 1, 1, 1, A, 2, TAU, C, 1, W, 1,
280 CALL CHKXER( 'sormhr', INFOT, NOUT, LERR, OK )
282 CALL SORMHR( 'l',
'N', 1, 2, 1, 1, a, 1, tau, c, 1, w, 1,
284 CALL chkxer(
'SORMHR', infot, nout, lerr, ok )
286 CALL sormhr(
'R',
'N', 2, 1, 1, 1, a, 1, tau, c, 2, w, 1,
288 CALL chkxer(
'SORMHR', infot, nout, lerr, ok )
295 CALL shseqr(
'/',
'N', 0, 1, 0, a, 1, wr, wi, c, 1, w, 1,
297 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
299 CALL shseqr(
'E',
'/', 0, 1, 0, a, 1, wr, wi, c, 1, w, 1,
301 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
303 CALL shseqr(
'E',
'N', -1, 1, 0, a, 1, wr, wi, c, 1, w, 1,
305 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
307 CALL shseqr(
'E',
'N', 0, 0, 0, a, 1, wr, wi, c, 1, w, 1,
309 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
311 CALL shseqr(
'E',
'N', 0, 2, 0, a, 1, wr, wi, c, 1, w, 1,
313 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
315 CALL shseqr(
'E',
'N', 1, 1, 0, a, 1, wr, wi, c, 1, w, 1,
319 CALL shseqr(
'E',
'N', 1, 1, 2, a, 1, wr, wi, c, 1, w, 1,
321 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
323 CALL shseqr(
'E',
'N', 2, 1, 2, a, 1, wr, wi, c, 2, w, 1,
325 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
327 CALL shseqr(
'E',
'V', 2, 1, 2, a, 2, wr, wi, c, 1, w, 1,
329 CALL chkxer(
'SHSEQR', infot, nout, lerr, ok )
336 CALL shsein(
'/',
'N',
'N', sel, 0, a, 1, wr, wi, vl, 1, vr, 1,
337 $ 0, m, w, ifaill, ifailr, info )
338 CALL chkxer(
'SHSEIN', infot, nout, lerr, ok )
340 CALL shsein(
'R',
'/',
'N', sel, 0, a, 1, wr, wi, vl, 1, vr, 1,
341 $ 0, m, w, ifaill, ifailr, info )
342 CALL chkxer(
'SHSEIN', infot, nout, lerr, ok )
344 CALL shsein(
'R',
'N',
'/', sel, 0, a, 1, wr, wi, vl, 1, vr, 1,
345 $ 0, m, w, ifaill, ifailr, info )
346 CALL chkxer(
'SHSEIN', infot, nout, lerr, ok )
348 CALL shsein(
'R',
'N',
'N', sel, -1, a, 1, wr, wi, vl, 1, vr,
349 $ 1, 0, m, w, ifaill, ifailr, info )
350 CALL chkxer(
'SHSEIN', infot, nout, lerr, ok )
352 CALL shsein(
'R',
'N',
'N', sel, 2, a, 1, wr, wi, vl, 1, vr, 2,
353 $ 4, m, w, ifaill, ifailr, info )
354 CALL chkxer(
'SHSEIN', infot, nout, lerr, ok )
356 CALL shsein(
'L',
'N', 'n
', SEL, 2, A, 2, WR, WI, VL, 1, VR, 1,
357 $ 4, M, W, IFAILL, IFAILR, INFO )
358 CALL CHKXER( 'shsein', INFOT, NOUT, LERR, OK )
360 CALL SHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 2, WR, WI, VL, 1, VR, 1,
361 $ 4, M, W, IFAILL, IFAILR, INFO )
362 CALL CHKXER( 'shsein', INFOT, NOUT, LERR, OK )
364 CALL SHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 2, WR, WI, VL, 1, VR, 2,
365 $ 1, M, W, IFAILL, IFAILR, INFO )
366 CALL CHKXER( 'shsein', INFOT, NOUT, LERR, OK )
373 CALL STREVC( '/
', 'a
', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
375 CALL CHKXER( 'strevc', INFOT, NOUT, LERR, OK )
377 CALL STREVC( 'l
', '/
', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
379 CALL CHKXER( 'strevc', INFOT, NOUT, LERR, OK )
381 CALL STREVC( 'l
', 'a
', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
383 CALL CHKXER( 'strevc', INFOT, NOUT, LERR, OK )
385 CALL STREVC( 'l
', 'a
', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
387 CALL CHKXER( 'strevc', INFOT, NOUT, LERR, OK )
389 CALL STREVC( 'l
', 'a
', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
391 CALL CHKXER( 'strevc', INFOT, NOUT, LERR, OK )
393 CALL STREVC( 'r
', 'a
', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
395 CALL CHKXER( 'strevc', INFOT, NOUT, LERR, OK )
397 CALL STREVC( 'l
', 'a
', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
399 CALL CHKXER( 'strevc', 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
',