71      parameter( nmax = 3, lw = 6*nmax )
 
   72      DOUBLE PRECISION   ONE, ZERO
 
   73      parameter( one = 1.0d+0, zero = 0.0d+0 )
 
   77      INTEGER            DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
 
   78     $                   J, M, NCYCLE, NT, SDIM, LWORK
 
   79      DOUBLE PRECISION   ANRM, BNRM, DIF, SCALE, TOLA, TOLB
 
   82      LOGICAL            BW( NMAX ), SEL( NMAX )
 
   83      INTEGER            IW( NMAX ), IDUM(NMAX)
 
   84      DOUBLE PRECISION   A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
 
   85     $                   Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
 
   86     $                   R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
 
   87     $                   TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
 
   88     $                   W( LW ), Z( NMAX, NMAX )
 
   91      LOGICAL            DLCTES, DLCTSX, LSAMEN
 
   92      EXTERNAL           dlctes, dlctsx, lsamen
 
  107      COMMON             / infoc / infot, nout, ok, lerr
 
  108      COMMON             / srnamc / srnamt
 
  113      WRITE( nout, fmt = * )
 
  147      IF( lsamen( 2, c2, 
'GG' ) ) 
THEN 
  153         CALL dgghrd( 
'/', 
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
 
  154         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  156         CALL dgghrd( 
'N', 
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
 
  157         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  159         CALL dgghrd( 
'N', 
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
 
  160         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  162         CALL dgghrd( 
'N', 
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
 
  163         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  165         CALL dgghrd( 
'N', 
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
 
  166         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  168         CALL dgghrd( 
'N', 
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
 
  169         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  171         CALL dgghrd( 
'N', 
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
 
  172         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  174         CALL dgghrd( 
'V', 
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
 
  175         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  177         CALL dgghrd( 
'N', 
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
 
  178         CALL chkxer( 
'DGGHRD', infot, nout, lerr, ok )
 
  185         CALL dgghd3( 
'/', 
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
 
  187         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  189         CALL dgghd3( 
'N', 
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
 
  191         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  193         CALL dgghd3( 
'N', 
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
 
  195         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  197         CALL dgghd3( 
'N', 
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
 
  199         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  201         CALL dgghd3( 
'N', 
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
 
  203         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  205         CALL dgghd3( 
'N', 
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
 
  207         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  209         CALL dgghd3( 
'N', 
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
 
  211         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  213         CALL dgghd3( 
'V', 
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
 
  215         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  217         CALL dgghd3( 
'N', 
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
 
  219         CALL chkxer( 
'DGGHD3', infot, nout, lerr, ok )
 
  226         CALL dhgeqz( 
'/', 
'N', 
'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
 
  227     $                1, z, 1, w, lw, info )
 
  228         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  230         CALL dhgeqz( 
'E', 
'/', 
'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
 
  231     $                1, z, 1, w, lw, info )
 
  232         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  234         CALL dhgeqz( 
'E', 
'N', 
'/', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
 
  235     $                1, z, 1, w, lw, info )
 
  236         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  238         CALL dhgeqz( 
'E', 
'N', 
'N', -1, 0, 0, a, 1, b, 1, r1, r2, r3,
 
  239     $                q, 1, z, 1, w, lw, info )
 
  240         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  242         CALL dhgeqz( 
'E', 
'N', 
'N', 0, 0, 0, a, 1, b, 1, r1, r2, r3, q,
 
  243     $                1, z, 1, w, lw, info )
 
  244         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  246         CALL dhgeqz( 
'E', 
'N', 
'N', 0, 1, 1, a, 1, b, 1, r1, r2, r3, q,
 
  247     $                1, z, 1, w, lw, info )
 
  248         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  250         CALL dhgeqz( 
'E', 
'N', 
'N', 2, 1, 1, a, 1, b, 2, r1, r2, r3, q,
 
  251     $                1, z, 1, w, lw, info )
 
  252         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  254         CALL dhgeqz( 
'E', 
'N', 
'N', 2, 1, 1, a, 2, b, 1, r1, r2, r3, q,
 
  255     $                1, z, 1, w, lw, info )
 
  256         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  258         CALL dhgeqz( 
'E', 
'V', 
'N', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
 
  259     $                1, z, 1, w, lw, info )
 
  260         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  262         CALL dhgeqz( 
'E', 
'N', 
'V', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
 
  263     $                1, z, 1, w, lw, info )
 
  264         CALL chkxer( 
'DHGEQZ', infot, nout, lerr, ok )
 
  271         CALL dtgevc( 
'/', 
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
 
  273         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  275         CALL dtgevc( 
'R', 
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
 
  277         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  279         CALL dtgevc( 
'R', 
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
 
  281         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  283         CALL dtgevc( 
'R', 
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
 
  285         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  287         CALL dtgevc( 
'R', 
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
 
  289         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  291         CALL dtgevc( 
'L', 
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
 
  293         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  295         CALL dtgevc( 
'R', 
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
 
  297         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  299         CALL dtgevc( 
'R', 
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
 
  301         CALL chkxer( 
'DTGEVC', infot, nout, lerr, ok )
 
  306      ELSE IF( lsamen( 3, path, 
'GSV' ) ) 
THEN 
  312         CALL dggsvd3( 
'/', 
'N', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  313     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  314         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  316         CALL dggsvd3( 
'N', 
'/', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  317     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  318         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  320         CALL dggsvd3( 
'N', 
'N', 
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  321     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  322         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  324         CALL dggsvd3( 
'N', 
'N', 
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
 
  325     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  326         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  328         CALL dggsvd3( 
'N', 
'N', 
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
 
  329     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  330         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  332         CALL dggsvd3( 
'N', 
'N', 
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
 
  333     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  334         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  336         CALL dggsvd3( 
'N', 
'N', 
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
 
  337     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  338         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  340         CALL dggsvd3( 
'N', 
'N', 
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
 
  341     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  342         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  344         CALL dggsvd3( 
'U', 
'N', 
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
 
  345     $               2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  346         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  348         CALL dggsvd3( 
'N', 
'V', 
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
 
  349     $               2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  350         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  352         CALL dggsvd3( 
'N', 
'N', 
'Q', 1, 2, 1, dummyk, dummyl, a, 1, b,
 
  353     $               1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
 
  354         CALL chkxer( 
'DGGSVD3', infot, nout, lerr, ok )
 
  361         CALL dggsvp3( 
'/', 
'N', 
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
 
  362     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  364         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  366         CALL dggsvp3( 
'N', 
'/', 
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
 
  367     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  369         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  371         CALL dggsvp3( 
'N', 
'N', 
'/', 0, 0, 0, a, 1, b, 1, tola, tolb,
 
  372     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  374         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  376         CALL dggsvp3( 
'N', 
'N', 
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
 
  377     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  379         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  381         CALL dggsvp3( 
'N', 
'N', 
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
 
  382     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  384         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  386         CALL dggsvp3( 
'N', 
'N', 
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
 
  387     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  389         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  391         CALL dggsvp3( 
'N', 
'N', 
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
 
  392     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  394         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  396         CALL dggsvp3( 
'N', 
'N', 
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
 
  397     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  399         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  401         CALL dggsvp3( 
'U', 
'N', 
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
 
  402     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  404         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  406         CALL dggsvp3( 
'N', 
'V', 
'N', 1, 2, 1, a, 1, b, 2, tola, tolb,
 
  407     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  409         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  411         CALL dggsvp3( 
'N', 
'N', 
'Q', 1, 1, 2, a, 1, b, 1, tola, tolb,
 
  412     $                 dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
 
  414         CALL chkxer( 
'DGGSVP3', infot, nout, lerr, ok )
 
  421         CALL dtgsja( 
'/', 
'N', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  422     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  424         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  426         CALL dtgsja( 
'N', 
'/', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  427     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  429         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  431         CALL dtgsja( 
'N', 
'N', 
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  432     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  434         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  436         CALL dtgsja( 
'N', 
'N', 
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
 
  437     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  439         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  441         CALL dtgsja( 
'N', 
'N', 
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
 
  442     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  444         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  446         CALL dtgsja( 
'N', 
'N', 
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
 
  447     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  449         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  451         CALL dtgsja( 
'N', 
'N', 
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
 
  452     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  454         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  456         CALL dtgsja( 
'N', 
'N', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  457     $                0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
 
  459         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  461         CALL dtgsja( 
'U', 
'N', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  462     $                1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
 
  464         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  466         CALL dtgsja( 
'N', 
'V', 
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  467     $                1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
 
  469         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  471         CALL dtgsja( 
'N', 
'N', 
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
 
  472     $                1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
 
  474         CALL chkxer( 
'DTGSJA', infot, nout, lerr, ok )
 
  479      ELSE IF( lsamen( 3, path, 
'GLM' ) ) 
THEN 
  485         CALL dggglm( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  486         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  488         CALL dggglm( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  489         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  491         CALL dggglm( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  492         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  494         CALL dggglm( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  495         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  497         CALL dggglm( 1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  498         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  500         CALL dggglm( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
 
  501         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  503         CALL dggglm( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
 
  504         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  506         CALL dggglm( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
 
  507         CALL chkxer( 
'DGGGLM', infot, nout, lerr, ok )
 
  512      ELSE IF( lsamen( 3, path, 
'LSE' ) ) 
THEN 
  518         CALL dgglse( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  519         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  521         CALL dgglse( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  522         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  524         CALL dgglse( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  525         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  527         CALL dgglse( 0, 0, 1, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  528         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  530         CALL dgglse( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
 
  531         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  533         CALL dgglse( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
 
  534         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  536         CALL dgglse( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
 
  537         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  539         CALL dgglse( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
 
  540         CALL chkxer( 
'DGGLSE', infot, nout, lerr, ok )
 
  545      ELSE IF( lsamen( 3, path, 
'CSD' ) ) 
THEN 
  551         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  554     $                 a, 1, a, 1, a, 1, a,
 
  555     $                 1, w, lw, iw, info )
 
  556         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  558         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  561     $                 a, 1, a, 1, a, 1, a,
 
  562     $                 1, w, lw, iw, info )
 
  563         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  565         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  568     $                 a, 1, a, 1, a, 1, a,
 
  569     $                 1, w, lw, iw, info )
 
  570         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  572         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  575     $                 a, 1, a, 1, a, 1, a,
 
  576     $                 1, w, lw, iw, info )
 
  577         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  579         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  582     $                 a, -1, a, 1, a, 1, a,
 
  583     $                 1, w, lw, iw, info )
 
  584         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  586         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  589     $                 a, 1, a, -1, a, 1, a,
 
  590     $                 1, w, lw, iw, info )
 
  591         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  593         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  596     $                 a, 1, a, 1, a, -1, a,
 
  597     $                 1, w, lw, iw, info )
 
  598         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  600         CALL dorcsd( 
'Y', 
'Y', 
'Y', 
'Y', 
'N', 
'N',
 
  603     $                 a, 1, a, 1, a, 1, a,
 
  604     $                 -1, w, lw, iw, info )
 
  605         CALL chkxer( 
'DORCSD', infot, nout, lerr, ok )
 
  610      ELSE IF( lsamen( 3, path, 
'GQR' ) ) 
THEN 
  616         CALL dggqrf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
 
  617         CALL chkxer( 
'DGGQRF', infot, nout, lerr, ok )
 
  619         CALL dggqrf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
 
  620         CALL chkxer( 
'DGGQRF', infot, nout, lerr, ok )
 
  622         CALL dggqrf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
 
  623         CALL chkxer( 
'DGGQRF', infot, nout, lerr, ok )
 
  625         CALL dggqrf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
 
  626         CALL chkxer( 
'DGGQRF', infot, nout, lerr, ok )
 
  628         CALL dggqrf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
 
  629         CALL chkxer( 
'DGGQRF', infot, nout, lerr, ok )
 
  631         CALL dggqrf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
 
  632         CALL chkxer( 
'DGGQRF', infot, nout, lerr, ok )
 
  639         CALL dggrqf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
 
  640         CALL chkxer( 
'DGGRQF', infot, nout, lerr, ok )
 
  642         CALL dggrqf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
 
  643         CALL chkxer( 
'DGGRQF', infot, nout, lerr, ok )
 
  645         CALL dggrqf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
 
  646         CALL chkxer( 
'DGGRQF', infot, nout, lerr, ok )
 
  648         CALL dggrqf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
 
  649         CALL chkxer( 
'DGGRQF', infot, nout, lerr, ok )
 
  651         CALL dggrqf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
 
  652         CALL chkxer( 
'DGGRQF', infot, nout, lerr, ok )
 
  654         CALL dggrqf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
 
  655         CALL chkxer( 
'DGGRQF', infot, nout, lerr, ok )
 
  660      ELSE IF( lsamen( 3, path, 
'DGS' ) .OR.
 
  661     $         lsamen( 3, path, 
'DGV' ) .OR.
 
  662     $         lsamen( 3, path, 
'DGX' ) .OR. lsamen( 3, path, 
'DXV' ) )
 
  669         CALL dgges( 
'/', 
'N', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
 
  670     $               r3, q, 1, u, 1, w, 1, bw, info )
 
  671         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  673         CALL dgges( 
'N', 
'/', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
 
  674     $               r3, q, 1, u, 1, w, 1, bw, info )
 
  675         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  677         CALL dgges( 
'N', 
'V', 
'/', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
 
  678     $               r3, q, 1, u, 1, w, 1, bw, info )
 
  679         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  681         CALL dgges( 
'N', 
'V', 
'S', dlctes, -1, a, 1, b, 1, sdim, r1,
 
  682     $               r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  683         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  685         CALL dgges( 
'N', 
'V', 
'S', dlctes, 1, a, 0, b, 1, sdim, r1, r2,
 
  686     $               r3, q, 1, u, 1, w, 1, bw, info )
 
  687         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  689         CALL dgges( 
'N', 
'V', 
'S', dlctes, 1, a, 1, b, 0, sdim, r1, r2,
 
  690     $               r3, q, 1, u, 1, w, 1, bw, info )
 
  691         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  693         CALL dgges( 
'N', 
'V', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
 
  694     $               r3, q, 0, u, 1, w, 1, bw, info )
 
  695         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  697         CALL dgges( 
'V', 
'V', 
'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
 
  698     $               r3, q, 1, u, 2, w, 1, bw, info )
 
  699         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  701         CALL dgges( 
'N', 
'V', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
 
  702     $               r3, q, 1, u, 0, w, 1, bw, info )
 
  703         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  705         CALL dgges( 
'V', 
'V', 
'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
 
  706     $               r3, q, 2, u, 1, w, 1, bw, info )
 
  707         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  709         CALL dgges( 
'V', 
'V', 
'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
 
  710     $               r3, q, 2, u, 2, w, 1, bw, info )
 
  711         CALL chkxer( 
'DGGES ', infot, nout, lerr, ok )
 
  718         CALL dgges3( 
'/', 
'N', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
 
  719     $                r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  720         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  722         CALL dgges3( 
'N', 
'/', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
 
  723     $                r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  724         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  726         CALL dgges3( 
'N', 
'V', 
'/', dlctes, 1, a, 1, b, 1, sdim, r1,
 
  727     $                r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  728         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  730         CALL dgges3( 
'N', 
'V', 
'S', dlctes, -1, a, 1, b, 1, sdim, r1,
 
  731     $                r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  732         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  734         CALL dgges3( 
'N', 
'V', 
'S', dlctes, 1, a, 0, b, 1, sdim, r1,
 
  735     $                r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  736         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  738         CALL dgges3( 
'N', 
'V', 
'S', dlctes, 1, a, 1, b, 0, sdim, r1,
 
  739     $                r2, r3, q, 1, u, 1, w, 1, bw, info )
 
  740         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  742         CALL dgges3( 
'N', 
'V', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
 
  743     $                r2, r3, q, 0, u, 1, w, 1, bw, info )
 
  744         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  746         CALL dgges3( 
'V', 
'V', 
'S', dlctes, 2, a, 2, b, 2, sdim, r1,
 
  747     $                r2, r3, q, 1, u, 2, w, 1, bw, info )
 
  748         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  750         CALL dgges3( 
'N', 
'V', 
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
 
  751     $                r2, r3, q, 1, u, 0, w, 1, bw, info )
 
  752         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  754         CALL dgges3( 
'V', 
'V', 
'S', dlctes, 2, a, 2, b, 2, sdim, r1,
 
  755     $                r2, r3, q, 2, u, 1, w, 1, bw, info )
 
  756         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  758         CALL dgges3( 
'V', 
'V', 
'S', dlctes, 2, a, 2, b, 2, sdim, r1,
 
  759     $                r2, r3, q, 2, u, 2, w, 1, bw, info )
 
  760         CALL chkxer( 
'DGGES3 ', infot, nout, lerr, ok )
 
  767         CALL dggesx( 
'/', 
'N', 
'S', dlctsx, 
'N', 1, a, 1, b, 1, sdim,
 
  768     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  770         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  772         CALL dggesx( 
'N', 
'/', 
'S', dlctsx, 
'N', 1, a, 1, b, 1, sdim,
 
  773     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  775         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  777         CALL dggesx( 
'V', 
'V', 
'/', dlctsx, 
'N', 1, a, 1, b, 1, sdim,
 
  778     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  780         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  782         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'/', 1, a, 1, b, 1, sdim,
 
  783     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  785         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  787         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', -1, a, 1, b, 1, sdim,
 
  788     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  790         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  792         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 1, a, 0, b, 1, sdim,
 
  793     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  795         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  797         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 1, a, 1, b, 0, sdim,
 
  798     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  800         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  802         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 1, a, 1, b, 1, sdim,
 
  803     $                r1, r2, r3, q, 0, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  805         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  807         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 2, a, 2, b, 2, sdim,
 
  808     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  810         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  812         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 1, a, 1, b, 1, sdim,
 
  813     $                r1, r2, r3, q, 1, u, 0, rce, rcv, w, 1, iw, 1, bw,
 
  815         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  817         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 2, a, 2, b, 2, sdim,
 
  818     $                r1, r2, r3, q, 2, u, 1, rce, rcv, w, 1, iw, 1, bw,
 
  820         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  822         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'B', 2, a, 2, b, 2, sdim,
 
  823     $                r1, r2, r3, q, 2, u, 2, rce, rcv, w, 1, iw, 1, bw,
 
  825         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  827         CALL dggesx( 
'V', 
'V', 
'S', dlctsx, 
'V', 1, a, 1, b, 1, sdim,
 
  828     $                r1, r2, r3, q, 1, u, 1, rce, rcv, w, 32, iw, 0,
 
  830         CALL chkxer( 
'DGGESX', infot, nout, lerr, ok )
 
  837         CALL dggev( 
'/', 
'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
 
  839         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  841         CALL dggev( 
'N', 
'/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
 
  843         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  845         CALL dggev( 
'V', 
'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
 
  847         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  849         CALL dggev( 
'V', 
'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1, w,
 
  851         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  853         CALL dggev( 
'V', 
'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1, w,
 
  855         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  857         CALL dggev( 
'N', 
'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1, w,
 
  859         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  861         CALL dggev( 
'V', 
'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2, w,
 
  863         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  865         CALL dggev( 
'V', 
'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0, w,
 
  867         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  869         CALL dggev( 
'V', 
'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1, w,
 
  871         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  873         CALL dggev( 
'V', 
'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
 
  875         CALL chkxer( 
'DGGEV ', infot, nout, lerr, ok )
 
  887         CALL dggev3( 
'/', 
'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
 
  889         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  891         CALL dggev3( 
'N', 
'/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
 
  893         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  895         CALL dggev3( 
'V', 
'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
 
  897         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  899         CALL dggev3( 
'V', 
'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1,
 
  901         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  903         CALL dggev3( 
'V', 
'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1,
 
  905         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  907         CALL dggev3( 
'N', 
'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1,
 
  909         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  911         CALL dggev3( 
'V', 
'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2,
 
  913         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  915         CALL dggev3( 
'V', 
'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0,
 
  917         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  919         CALL dggev3( 
'V', 
'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1,
 
  921         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  923         CALL dggev3( 
'V', 
'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
 
  925         CALL chkxer( 
'DGGEV3 ', infot, nout, lerr, ok )
 
  932         CALL dggevx( 
'/', 
'N', 
'N', 
'N', 1, a, 1, b, 1, r1, r2, r3, q,
 
  933     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  934     $                w, 1, iw, bw, info )
 
  935         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  937         CALL dggevx( 
'N', 
'/', 
'N', 
'N', 1, a, 1, b, 1, r1, r2, r3, q,
 
  938     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  939     $                w, 1, iw, bw, info )
 
  940         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  942         CALL dggevx( 
'N', 
'N', 
'/', 
'N', 1, a, 1, b, 1, r1, r2, r3, q,
 
  943     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  944     $                w, 1, iw, bw, info )
 
  945         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  947         CALL dggevx( 
'N', 
'N', 
'N', 
'/', 1, a, 1, b, 1, r1, r2, r3, q,
 
  948     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  949     $                w, 1, iw, bw, info )
 
  950         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  952         CALL dggevx( 
'N', 
'N', 
'N', 
'N', -1, a, 1, b, 1, r1, r2, r3, q,
 
  953     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  954     $                w, 1, iw, bw, info )
 
  955         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  957         CALL dggevx( 
'N', 
'N', 
'N', 
'N', 1, a, 0, b, 1, r1, r2, r3, q,
 
  958     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  959     $                w, 1, iw, bw, info )
 
  960         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  962         CALL dggevx( 
'N', 
'N', 
'N', 
'N', 1, a, 1, b, 0, r1, r2, r3, q,
 
  963     $                1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  964     $                w, 1, iw, bw, info )
 
  965         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  967         CALL dggevx( 
'N', 
'N', 
'N', 
'N', 1, a, 1, b, 1, r1, r2, r3, q,
 
  968     $                0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  969     $                w, 1, iw, bw, info )
 
  970         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  972         CALL dggevx( 
'N', 
'V', 
'N', 
'N', 2, a, 2, b, 2, r1, r2, r3, q,
 
  973     $                1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  974     $                w, 1, iw, bw, info )
 
  975         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  977         CALL dggevx( 
'N', 
'N', 
'N', 
'N', 1, a, 1, b, 1, r1, r2, r3, q,
 
  978     $                1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  979     $                w, 1, iw, bw, info )
 
  980         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  982         CALL dggevx( 
'N', 
'N', 
'V', 
'N', 2, a, 2, b, 2, r1, r2, r3, q,
 
  983     $                2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  984     $                w, 1, iw, bw, info )
 
  985         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  987         CALL dggevx( 
'N', 
'N', 
'V', 
'N', 2, a, 2, b, 2, r1, r2, r3, q,
 
  988     $                2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
 
  989     $                w, 1, iw, bw, info )
 
  990         CALL chkxer( 
'DGGEVX', infot, nout, lerr, ok )
 
  997         CALL dtgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
 
  999         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1001         CALL dtgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
 
 1002     $                ilst, w, 1, info )
 
 1003         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1005         CALL dtgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
 
 1006     $                ilst, w, 1, info )
 
 1007         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1009         CALL dtgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
 
 1010     $                ilst, w, 1, info )
 
 1011         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1013         CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
 
 1014     $                ilst, w, 1, info )
 
 1015         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1017         CALL dtgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
 
 1018     $                ilst, w, 1, info )
 
 1019         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1021         CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
 
 1022     $                ilst, w, 1, info )
 
 1023         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1025         CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 1, ifst,
 
 1026     $                ilst, w, 0, info )
 
 1027         CALL chkxer( 
'DTGEXC', infot, nout, lerr, ok )
 
 1034         CALL dtgsen( -1, .true., .true., sel, 1, a, 1, b, 1, r1, r2,
 
 1035     $                r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1037         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1039         CALL dtgsen( 1, .true., .true., sel, -1, a, 1, b, 1, r1, r2,
 
 1040     $                r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1042         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1044         CALL dtgsen( 1, .true., .true., sel, 1, a, 0, b, 1, r1, r2, r3,
 
 1045     $                q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1047         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1049         CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 0, r1, r2, r3,
 
 1050     $                q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1052         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1054         CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1055     $                q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1057         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1059         CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1060     $                q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1062         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1064         CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1065     $                q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1067         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1069         CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1070     $                q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1072         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1074         CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1075     $                q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
 
 1077         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1079         CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1080     $                q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
 
 1082         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1084         CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1085     $                q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
 
 1087         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1089         CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
 
 1090     $                q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 1,
 
 1092         CALL chkxer( 
'DTGSEN', infot, nout, lerr, ok )
 
 1099         CALL dtgsna( 
'/', 
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
 
 1100     $                1, m, w, 1, iw, info )
 
 1101         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1103         CALL dtgsna( 
'B', 
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
 
 1104     $                1, m, w, 1, iw, info )
 
 1105         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1107         CALL dtgsna( 
'B', 
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
 
 1108     $                1, m, w, 1, iw, info )
 
 1109         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1111         CALL dtgsna( 
'B', 
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
 
 1112     $                1, m, w, 1, iw, info )
 
 1113         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1115         CALL dtgsna( 
'B', 
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
 
 1116     $                1, m, w, 1, iw, info )
 
 1117         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1119         CALL dtgsna( 
'E', 
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
 
 1120     $                1, m, w, 1, iw, info )
 
 1121         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1123         CALL dtgsna( 
'E', 
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
 
 1124     $                1, m, w, 1, iw, info )
 
 1125         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1127         CALL dtgsna( 
'E', 
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
 
 1128     $                0, m, w, 1, iw, info )
 
 1129         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1131         CALL dtgsna( 
'E', 
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
 
 1132     $                1, m, w, 0, iw, info )
 
 1133         CALL chkxer( 
'DTGSNA', infot, nout, lerr, ok )
 
 1140         CALL dtgsyl( 
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1141     $                scale, dif, w, 1, iw, info )
 
 1142         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1144         CALL dtgsyl( 
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1145     $                scale, dif, w, 1, iw, info )
 
 1146         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1148         CALL dtgsyl( 
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1149     $                scale, dif, w, 1, iw, info )
 
 1150         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1152         CALL dtgsyl( 
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1153     $                scale, dif, w, 1, iw, info )
 
 1154         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1156         CALL dtgsyl( 
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1157     $                scale, dif, w, 1, iw, info )
 
 1158         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1160         CALL dtgsyl( 
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
 
 1161     $                scale, dif, w, 1, iw, info )
 
 1162         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1164         CALL dtgsyl( 
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
 
 1165     $                scale, dif, w, 1, iw, info )
 
 1166         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1168         CALL dtgsyl( 
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
 
 1169     $                scale, dif, w, 1, iw, info )
 
 1170         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1172         CALL dtgsyl( 
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
 
 1173     $                scale, dif, w, 1, iw, info )
 
 1174         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1176         CALL dtgsyl( 
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
 
 1177     $                scale, dif, w, 1, iw, info )
 
 1178         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1180         CALL dtgsyl( 
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1181     $                scale, dif, w, 1, iw, info )
 
 1182         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1184         CALL dtgsyl( 
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
 
 1185     $                scale, dif, w, 1, iw, info )
 
 1186         CALL chkxer( 
'DTGSYL', infot, nout, lerr, ok )
 
 1193         WRITE( nout, fmt = 9999 )path, nt
 
 1195         WRITE( nout, fmt = 9998 )path
 
 1198 9999 
FORMAT( 1x, a3, 
' routines passed the tests of the error exits (',
 
 1199     $      i3, 
' tests done)' )
 
 1200 9998 
FORMAT( 
' *** ', a3, 
' routines failed the tests of the error ',