69 parameter( nmax = 3, lw = ( nmax+2 )*( nmax+2 )+nmax )
73 INTEGER I, IHI, ILO, , J, M, NT
77 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
78 DOUBLE PRECISION A( , NMAX ), C( NMAX, ), S( NMAX ),
79 $ TAU( NMAX ), VL( NMAX, NMAX ),
80 $ VR( NMAX, NMAX ), W( ), WI( NMAX ),
100 COMMON / infoc / infot, nout, ok, lerr
106 WRITE( nout, fmt = * )
123 IF( lsamen( 2, c2,
'HS' ) )
THEN
129 CALL dgebal(
'/', 0, a, 1, ilo
130 CALL chkxer(
'DGEBAL', infot, nout, lerr
132 CALL dgebal(
'N', -1, a, 1, ilo, ihi, s, info )
133 CALL chkxer(
'DGEBAL', infot, nout, lerr, ok )
135 CALL dgebal(
'N', 2, a, 1, ilo, ihi, s, info )
136 CALL chkxer(
'DGEBAL', infot, nout
143 CALL dgebak(
'/',
'R', 0, 1, 0, s, 0, a, 1, info )
144 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
146 CALL dgebak(
'N',
'/', 0, 1, 0, s, 0, a, 1, info )
147 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
149 CALL dgebak(
'N',
'R', -1, 1, 0, s, 0, a, 1, info )
150 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
152 CALL dgebak(
'N',
'R', 0, 0, 0, s, 0, a, 1, info )
153 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
155 CALL dgebak(
'N',
'R', 0, 2, 0, s, 0, a, 1, info )
156 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
158 CALL dgebak(
'N',
'R', 2, 2, 1, s, 0, a, 2, info )
159 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
161 CALL dgebak(
'N',
'R', 0, 1, 1, s, 0, a, 1, info )
162 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
164 CALL dgebak(
'N',
'R', 0, 1, 0, s, -1, a, 1, info )
165 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
167 CALL dgebak(
'N',
'R', 2, 1, 2, s, 0, a, 1, info )
168 CALL chkxer(
'DGEBAK', infot, nout, lerr, ok )
175 CALL dgehrd( -1, 1, 1, a, 1, tau, w, 1, info )
176 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
178 CALL dgehrd( 0, 0, 0, a, 1, tau, w, 1, info )
179 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
181 CALL dgehrd( 0, 2, 0, a, 1, tau, w, 1, info )
182 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
184 CALL dgehrd( 1, 1, 0, a, 1, tau, w, 1, info )
185 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
187 CALL dgehrd( 0, 1, 1, a, 1, tau, w, 1, info )
188 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
190 CALL dgehrd( 2, 1, 1, a, 1, tau, w, 2, info )
191 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
193 CALL dgehrd( 2, 1, 2, a, 2, tau, w, 1, info )
194 CALL chkxer(
'DGEHRD', infot, nout, lerr, ok )
201 CALL dorghr( -1, 1, 1, a, 1, tau, w, 1, info )
202 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
204 CALL dorghr( 0, 0, 0, a, 1, tau, w, 1, info )
205 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
207 CALL dorghr( 0, 2, 0, a, 1, tau, w, 1, info )
208 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
210 CALL dorghr( 1, 1, 0, a, 1, tau, w, 1, info )
211 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
213 CALL dorghr( 0, 1, 1, a, 1, tau, w, 1, info )
214 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
216 CALL dorghr( 2, 1, 1, a, 1, tau, w, 1, info )
217 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
219 CALL dorghr( 3, 1, 3, a, 3, tau, w, 1, info )
220 CALL chkxer(
'DORGHR', infot, nout, lerr, ok )
227 CALL DORMHR( '/
', 'n
', 0, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
229 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
231 CALL DORMHR( 'l
', '/
', 0, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
233 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
235 CALL DORMHR( 'l
', 'n
', -1, 0, 1, 0, A, 1, TAU, C, 1, W, 1,
237 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
239 CALL DORMHR( 'l
', 'n
', 0, -1, 1, 0, A, 1, TAU, C, 1, W, 1,
241 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
243 CALL DORMHR( 'l
', 'n
', 0, 0, 0, 0, A, 1, TAU, C, 1, W, 1,
245 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
247 CALL DORMHR( 'l
', 'n
', 0, 0, 2, 0, A, 1, TAU, C, 1, W, 1,
249 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
251 CALL DORMHR( 'l
', 'n
', 1, 2, 2, 1, A, 1, TAU, C, 1, W, 2,
253 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
255 CALL DORMHR( 'r
', 'n
', 2, 1, 2, 1, A, 1, TAU, C, 2, W, 2,
257 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
259 CALL DORMHR( 'l
', 'n
', 1, 1, 1, 0, A, 1, TAU, C, 1, W, 1,
261 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
263 CALL DORMHR( 'l
', 'n
', 0, 1, 1, 1, A, 1, TAU, C, 1, W, 1,
265 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
267 CALL DORMHR( 'r
', 'n
', 1, 0, 1, 1, A, 1, TAU, C, 1, W, 1,
269 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
271 CALL DORMHR( 'l
', 'n
', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
273 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
275 CALL DORMHR( 'r
', 'n
', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
277 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
279 CALL DORMHR( 'l
', 'n
', 2, 1, 1, 1, A, 2, TAU, C, 1, W, 1,
281 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
283 CALL DORMHR( 'l
', 'n
', 1, 2, 1, 1, A, 1, TAU, C, 1, W, 1,
285 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
287 CALL DORMHR( 'r
', 'n
', 2, 1, 1, 1, A, 1, TAU, C, 2, W, 1,
289 CALL CHKXER( 'dormhr', INFOT, NOUT, LERR, OK )
296 CALL DHSEQR( '/
', 'n
', 0, 1, 0, A, 1, WR, WI, C, 1, W, 1,
298 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
300 CALL DHSEQR( 'e
', '/
', 0, 1, 0, A, 1, WR, WI, C, 1, W, 1,
302 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
304 CALL DHSEQR( 'e
', 'n
', -1, 1, 0, A, 1, WR, WI, C, 1, W, 1,
306 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
308 CALL DHSEQR( 'e
', 'n
', 0, 0, 0, A, 1, WR, WI, C, 1, W, 1,
310 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
312 CALL DHSEQR( 'e
', 'n
', 0, 2, 0, A, 1, WR, WI, C, 1, W, 1,
314 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
316 CALL DHSEQR( 'e
', 'n
', 1, 1, 0, A, 1, WR, WI, C, 1, W, 1,
318 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
320 CALL DHSEQR( 'e
', 'n
', 1, 1, 2, A, 1, WR, WI, C, 1, W, 1,
322 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
324 CALL DHSEQR( 'e
', 'n
', 2, 1, 2, A, 1, WR, WI, C, 2, W, 1,
326 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
328 CALL DHSEQR( 'e
', 'v
', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1,
330 CALL CHKXER( 'dhseqr', INFOT, NOUT, LERR, OK )
337 CALL DHSEIN( '/
', 'n
', 'n
', SEL, 0, A, 1, WR, WI, VL, 1, VR, 1,
338 $ 0, M, W, IFAILL, IFAILR, INFO )
339 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
341 CALL DHSEIN( 'r
', '/
', 'n
', SEL, 0, A, 1, WR, WI, VL, 1, VR, 1,
342 $ 0, M, W, IFAILL, IFAILR, INFO )
343 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
345 CALL DHSEIN( 'r
', 'n
', '/
', SEL, 0, A, 1, WR, WI, VL, 1, VR, 1,
346 $ 0, M, W, IFAILL, IFAILR, INFO )
347 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
349 CALL DHSEIN( 'r
', 'n
', 'n
', SEL, -1, A, 1, WR, WI, VL, 1, VR,
350 $ 1, 0, M, W, IFAILL, IFAILR, INFO )
351 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
353 CALL DHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 1, WR, WI, VL, 1, VR, 2,
354 $ 4, M, W, IFAILL, IFAILR, INFO )
355 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
357 CALL DHSEIN( 'l
', 'n
', 'n
', SEL, 2, A, 2, WR, WI, VL, 1, VR, 1,
358 $ 4, M, W, IFAILL, IFAILR, INFO )
359 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
361 CALL DHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 2, WR, WI, VL, 1, VR, 1,
362 $ 4, M, W, IFAILL, IFAILR, INFO )
363 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
365 CALL DHSEIN( 'r
', 'n
', 'n
', SEL, 2, A, 2, WR, WI, VL, 1, VR, 2,
366 $ 1, M, W, IFAILL, IFAILR, INFO )
367 CALL CHKXER( 'dhsein', INFOT, NOUT, LERR, OK )
374 CALL DTREVC( '/
', 'a
', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
376 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
378 CALL DTREVC( 'l
', '/
', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
380 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
382 CALL DTREVC( 'l
', 'a
', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
384 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
386 CALL DTREVC( 'l
', 'a
', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
388 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
390 CALL DTREVC( 'l
', 'a
', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
392 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
394 CALL DTREVC( 'r
', 'a
', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
396 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
398 CALL DTREVC( 'l
', 'a
', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
400 CALL CHKXER( 'dtrevc', INFOT, NOUT, LERR, OK )
407 WRITE( NOUT, FMT = 9999 )PATH, NT
409 WRITE( NOUT, FMT = 9998 )PATH
412 9999 FORMAT( 1X, A3, ' routines passed
the tests of
the error exits
',
413 $ ' (
', I3, ' tests done)
' )
414 9998 FORMAT( ' ***
', A3, ' routines failed
the tests of
the error
',