69 parameter( nmax = 3, lw = ( nmax+2 )*( nmax+2 )+nmax )
73 INTEGER , IHI, ILO, INFO, , M, NT
77 INTEGER IFAILL( NMAX ), IFAILR( NMAX )
78 DOUBLE PRECISION A( NMAX, NMAX ), C( NMAX, NMAX ), S( NMAX ),
79 $ TAU( NMAX ), VL( NMAX, NMAX ),
80 $ VR( NMAX, NMAX ), W( LW ), WI( NMAX ),
100 COMMON / infoc / infot, nout, ok, lerr
101 COMMON / srnamc / srnamt
106 WRITE( nout, fmt = * )
113 a( i, j ) = 1.d0 / dble( i+j )
123 IF( lsamen( 2, c2,
'HS' ) )
THEN
129 CALL dgebal(
'/', 0, a, 1, ilo, ihi, s, info )
130 CALL chkxer(
'DGEBAL', infot, nout, lerr, ok )
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, lerr, ok )
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 )
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
',