72       parameter( nmax = 3, lw = ( nmax+2 )*( nmax+2 )+nmax )
 
   76       INTEGER            I, IHI, ILO, INFO, J, M, NT
 
   80       INTEGER            IFAILL( NMAX ), IFAILR( NMAX )
 
   81       DOUBLE PRECISION   A( NMAX, NMAX ), C( NMAX, NMAX ), S( NMAX ),
 
   82      $                   TAU( NMAX ), VL( NMAX, NMAX ),
 
   83      $                   VR( NMAX, NMAX ), W( LW ), WI( NMAX ),
 
  103       COMMON             / infoc / infot, nout, ok, lerr
 
  104       COMMON             / srnamc / srnamt
 
  109       WRITE( nout, fmt = * )
 
  116             a( i, j ) = 1.d0 / dble( i+j )
 
  126       IF( 
lsamen( 2, c2, 
'HS' ) ) 
THEN 
  132          CALL dgebal( 
'/', 0, a, 1, ilo, ihi, s, info )
 
  133          CALL chkxer( 
'DGEBAL', infot, nout, lerr, ok )
 
  135          CALL dgebal( 
'N', -1, a, 1, ilo, ihi, s, info )
 
  136          CALL chkxer( 
'DGEBAL', infot, nout, lerr, ok )
 
  138          CALL dgebal( 
'N', 2, a, 1, ilo, ihi, s, info )
 
  139          CALL chkxer( 
'DGEBAL', infot, nout, lerr, ok )
 
  146          CALL dgebak( 
'/', 
'R', 0, 1, 0, s, 0, a, 1, info )
 
  147          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  149          CALL dgebak( 
'N', 
'/', 0, 1, 0, s, 0, a, 1, info )
 
  150          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  152          CALL dgebak( 
'N', 
'R', -1, 1, 0, s, 0, a, 1, info )
 
  153          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  155          CALL dgebak( 
'N', 
'R', 0, 0, 0, s, 0, a, 1, info )
 
  156          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  158          CALL dgebak( 
'N', 
'R', 0, 2, 0, s, 0, a, 1, info )
 
  159          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  161          CALL dgebak( 
'N', 
'R', 2, 2, 1, s, 0, a, 2, info )
 
  162          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  164          CALL dgebak( 
'N', 
'R', 0, 1, 1, s, 0, a, 1, info )
 
  165          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  167          CALL dgebak( 
'N', 
'R', 0, 1, 0, s, -1, a, 1, info )
 
  168          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  170          CALL dgebak( 
'N', 
'R', 2, 1, 2, s, 0, a, 1, info )
 
  171          CALL chkxer( 
'DGEBAK', infot, nout, lerr, ok )
 
  178          CALL dgehrd( -1, 1, 1, a, 1, tau, w, 1, info )
 
  179          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  181          CALL dgehrd( 0, 0, 0, a, 1, tau, w, 1, info )
 
  182          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  184          CALL dgehrd( 0, 2, 0, a, 1, tau, w, 1, info )
 
  185          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  187          CALL dgehrd( 1, 1, 0, a, 1, tau, w, 1, info )
 
  188          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  190          CALL dgehrd( 0, 1, 1, a, 1, tau, w, 1, info )
 
  191          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  193          CALL dgehrd( 2, 1, 1, a, 1, tau, w, 2, info )
 
  194          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  196          CALL dgehrd( 2, 1, 2, a, 2, tau, w, 1, info )
 
  197          CALL chkxer( 
'DGEHRD', infot, nout, lerr, ok )
 
  204          CALL dorghr( -1, 1, 1, a, 1, tau, w, 1, info )
 
  205          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  207          CALL dorghr( 0, 0, 0, a, 1, tau, w, 1, info )
 
  208          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  210          CALL dorghr( 0, 2, 0, a, 1, tau, w, 1, info )
 
  211          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  213          CALL dorghr( 1, 1, 0, a, 1, tau, w, 1, info )
 
  214          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  216          CALL dorghr( 0, 1, 1, a, 1, tau, w, 1, info )
 
  217          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  219          CALL dorghr( 2, 1, 1, a, 1, tau, w, 1, info )
 
  220          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  222          CALL dorghr( 3, 1, 3, a, 3, tau, w, 1, info )
 
  223          CALL chkxer( 
'DORGHR', infot, nout, lerr, ok )
 
  230          CALL dormhr( 
'/', 
'N', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
 
  232          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  234          CALL dormhr( 
'L', 
'/', 0, 0, 1, 0, a, 1, tau, c, 1, w, 1,
 
  236          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  238          CALL dormhr( 
'L', 
'N', -1, 0, 1, 0, a, 1, tau, c, 1, w, 1,
 
  240          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  242          CALL dormhr( 
'L', 
'N', 0, -1, 1, 0, a, 1, tau, c, 1, w, 1,
 
  244          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  246          CALL dormhr( 
'L', 
'N', 0, 0, 0, 0, a, 1, tau, c, 1, w, 1,
 
  248          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  250          CALL dormhr( 
'L', 
'N', 0, 0, 2, 0, a, 1, tau, c, 1, w, 1,
 
  252          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  254          CALL dormhr( 
'L', 
'N', 1, 2, 2, 1, a, 1, tau, c, 1, w, 2,
 
  256          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  258          CALL dormhr( 
'R', 
'N', 2, 1, 2, 1, a, 1, tau, c, 2, w, 2,
 
  260          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  262          CALL dormhr( 
'L', 
'N', 1, 1, 1, 0, a, 1, tau, c, 1, w, 1,
 
  264          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  266          CALL dormhr( 
'L', 
'N', 0, 1, 1, 1, a, 1, tau, c, 1, w, 1,
 
  268          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  270          CALL dormhr( 
'R', 
'N', 1, 0, 1, 1, a, 1, tau, c, 1, w, 1,
 
  272          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  274          CALL dormhr( 
'L', 
'N', 2, 1, 1, 1, a, 1, tau, c, 2, w, 1,
 
  276          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  278          CALL dormhr( 
'R', 
'N', 1, 2, 1, 1, a, 1, tau, c, 1, w, 1,
 
  280          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  282          CALL dormhr( 
'L', 
'N', 2, 1, 1, 1, a, 2, tau, c, 1, w, 1,
 
  284          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  286          CALL dormhr( 
'L', 
'N', 1, 2, 1, 1, a, 1, tau, c, 1, w, 1,
 
  288          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  290          CALL dormhr( 
'R', 
'N', 2, 1, 1, 1, a, 1, tau, c, 2, w, 1,
 
  292          CALL chkxer( 
'DORMHR', infot, nout, lerr, ok )
 
  299          CALL dhseqr( 
'/', 
'N', 0, 1, 0, a, 1, wr, wi, c, 1, w, 1,
 
  301          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  303          CALL dhseqr( 
'E', 
'/', 0, 1, 0, a, 1, wr, wi, c, 1, w, 1,
 
  305          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  307          CALL dhseqr( 
'E', 
'N', -1, 1, 0, a, 1, wr, wi, c, 1, w, 1,
 
  309          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  311          CALL dhseqr( 
'E', 
'N', 0, 0, 0, a, 1, wr, wi, c, 1, w, 1,
 
  313          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  315          CALL dhseqr( 
'E', 
'N', 0, 2, 0, a, 1, wr, wi, c, 1, w, 1,
 
  317          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  319          CALL dhseqr( 
'E', 
'N', 1, 1, 0, a, 1, wr, wi, c, 1, w, 1,
 
  321          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  323          CALL dhseqr( 
'E', 
'N', 1, 1, 2, a, 1, wr, wi, c, 1, w, 1,
 
  325          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  327          CALL dhseqr( 
'E', 
'N', 2, 1, 2, a, 1, wr, wi, c, 2, w, 1,
 
  329          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  331          CALL dhseqr( 
'E', 
'V', 2, 1, 2, a, 2, wr, wi, c, 1, w, 1,
 
  333          CALL chkxer( 
'DHSEQR', infot, nout, lerr, ok )
 
  340          CALL dhsein( 
'/', 
'N', 
'N', sel, 0, a, 1, wr, wi, vl, 1, vr, 1,
 
  341      $                0, m, w, ifaill, ifailr, info )
 
  342          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  344          CALL dhsein( 
'R', 
'/', 
'N', sel, 0, a, 1, wr, wi, vl, 1, vr, 1,
 
  345      $                0, m, w, ifaill, ifailr, info )
 
  346          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  348          CALL dhsein( 
'R', 
'N', 
'/', sel, 0, a, 1, wr, wi, vl, 1, vr, 1,
 
  349      $                0, m, w, ifaill, ifailr, info )
 
  350          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  352          CALL dhsein( 
'R', 
'N', 
'N', sel, -1, a, 1, wr, wi, vl, 1, vr,
 
  353      $                1, 0, m, w, ifaill, ifailr, info )
 
  354          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  356          CALL dhsein( 
'R', 
'N', 
'N', sel, 2, a, 1, wr, wi, vl, 1, vr, 2,
 
  357      $                4, m, w, ifaill, ifailr, info )
 
  358          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  360          CALL dhsein( 
'L', 
'N', 
'N', sel, 2, a, 2, wr, wi, vl, 1, vr, 1,
 
  361      $                4, m, w, ifaill, ifailr, info )
 
  362          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  364          CALL dhsein( 
'R', 
'N', 
'N', sel, 2, a, 2, wr, wi, vl, 1, vr, 1,
 
  365      $                4, m, w, ifaill, ifailr, info )
 
  366          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  368          CALL dhsein( 
'R', 
'N', 
'N', sel, 2, a, 2, wr, wi, vl, 1, vr, 2,
 
  369      $                1, m, w, ifaill, ifailr, info )
 
  370          CALL chkxer( 
'DHSEIN', infot, nout, lerr, ok )
 
  377          CALL dtrevc( 
'/', 
'A', sel, 0, a, 1, vl, 1, vr, 1, 0, m, w,
 
  379          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  381          CALL dtrevc( 
'L', 
'/', sel, 0, a, 1, vl, 1, vr, 1, 0, m, w,
 
  383          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  385          CALL dtrevc( 
'L', 
'A', sel, -1, a, 1, vl, 1, vr, 1, 0, m, w,
 
  387          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  389          CALL dtrevc( 
'L', 
'A', sel, 2, a, 1, vl, 2, vr, 1, 4, m, w,
 
  391          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  393          CALL dtrevc( 
'L', 
'A', sel, 2, a, 2, vl, 1, vr, 1, 4, m, w,
 
  395          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  397          CALL dtrevc( 
'R', 
'A', sel, 2, a, 2, vl, 1, vr, 1, 4, m, w,
 
  399          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  401          CALL dtrevc( 
'L', 
'A', sel, 2, a, 2, vl, 2, vr, 1, 1, m, w,
 
  403          CALL chkxer( 
'DTREVC', infot, nout, lerr, ok )
 
  410          WRITE( nout, fmt = 9999 )path, nt
 
  412          WRITE( nout, fmt = 9998 )path
 
  415  9999 
FORMAT( 1x, a3, 
' routines passed the tests of the error exits',
 
  416      $      
' (', i3, 
' tests done)' )
 
  417  9998 
FORMAT( 
' *** ', a3, 
' routines failed the tests of the error ',