71      parameter( nmax = 4, one = 1.0e0, zero = 0.0e0 )
 
   74      INTEGER            I, IFST, ILST, INFO, J, M, NT
 
   80      REAL               A( NMAX, NMAX ), B( NMAX, NMAX ),
 
   81     $                   C( NMAX, NMAX ), S( NMAX ), SEP( NMAX ),
 
   82     $                   WI( NMAX ), WORK( NMAX ), WR( NMAX )
 
   93      COMMON             / infoc / infot, nout, ok, lerr
 
   94      COMMON             / srnamc / srnamt
 
  119      CALL strsyl( 
'X', 
'N', 1, 0, 0, a, 1, b, 1, c, 1, scale, info )
 
  120      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  122      CALL strsyl( 
'N', 
'X', 1, 0, 0, a, 1, b, 1, c, 1, scale, info )
 
  123      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  125      CALL strsyl( 
'N', 
'N', 0, 0, 0, a, 1, b, 1, c, 1, scale, info )
 
  126      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  128      CALL strsyl( 
'N', 
'N', 1, -1, 0, a, 1, b, 1, c, 1, scale, info )
 
  129      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  131      CALL strsyl( 
'N', 
'N', 1, 0, -1, a, 1, b, 1, c, 1, scale, info )
 
  132      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  134      CALL strsyl( 
'N', 
'N', 1, 2, 0, a, 1, b, 1, c, 2, scale, info )
 
  135      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  137      CALL strsyl( 
'N', 
'N', 1, 0, 2, a, 1, b, 1, c, 1, scale, info )
 
  138      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  140      CALL strsyl( 
'N', 
'N', 1, 2, 0, a, 2, b, 1, c, 1, scale, info )
 
  141      CALL chkxer( 
'STRSYL', infot, nout, lerr, ok )
 
  148      CALL strsyl3( 
'X', 
'N', 1, 0, 0, a, 1, b, 1, c, 1, scale,
 
  149     $              iwork, nmax, work, nmax, info )
 
  150      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  152      CALL strsyl3( 
'N', 
'X', 1, 0, 0, a, 1, b, 1, c, 1, scale,
 
  153     $              iwork, nmax, work, nmax, info )
 
  154      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  156      CALL strsyl3( 
'N', 
'N', 0, 0, 0, a, 1, b, 1, c, 1, scale,
 
  157     $              iwork, nmax, work, nmax, info )
 
  158      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  160      CALL strsyl3( 
'N', 
'N', 1, -1, 0, a, 1, b, 1, c, 1, scale,
 
  161     $              iwork, nmax, work, nmax, info )
 
  162      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  164      CALL strsyl3( 
'N', 
'N', 1, 0, -1, a, 1, b, 1, c, 1, scale,
 
  165     $              iwork, nmax, work, nmax, info )
 
  166      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  168      CALL strsyl3( 
'N', 
'N', 1, 2, 0, a, 1, b, 1, c, 2, scale,
 
  169     $              iwork, nmax, work, nmax, info )
 
  170      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  172      CALL strsyl3( 
'N', 
'N', 1, 0, 2, a, 1, b, 1, c, 1, scale,
 
  173     $              iwork, nmax, work, nmax, info )
 
  174      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  176      CALL strsyl3( 
'N', 
'N', 1, 2, 0, a, 2, b, 1, c, 1, scale,
 
  177     $              iwork, nmax, work, nmax, info )
 
  178      CALL chkxer( 
'STRSYL3', infot, nout, lerr, ok )
 
  187      CALL strexc( 
'X', 1, a, 1, b, 1, ifst, ilst, work, info )
 
  188      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  190      CALL strexc( 
'N', -1, a, 1, b, 1, ifst, ilst, work, info )
 
  191      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  194      CALL strexc( 
'N', 2, a, 1, b, 1, ifst, ilst, work, info )
 
  195      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  197      CALL strexc( 
'V', 2, a, 2, b, 1, ifst, ilst, work, info )
 
  198      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  202      CALL strexc( 
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
 
  203      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  206      CALL strexc( 
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
 
  207      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  211      CALL strexc( 
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
 
  212      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  215      CALL strexc( 
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
 
  216      CALL chkxer( 
'STREXC', infot, nout, lerr, ok )
 
  223      CALL strsna( 
'X', 
'A', sel, 0, a, 1, b, 1, c, 1, s, sep, 1, m,
 
  224     $             work, 1, iwork, info )
 
  225      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  227      CALL strsna( 
'B', 
'X', sel, 0, a, 1, b, 1, c, 1, s, sep, 1, m,
 
  228     $             work, 1, iwork, info )
 
  229      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  231      CALL strsna( 
'B', 
'A', sel, -1, a, 1, b, 1, c, 1, s, sep, 1, m,
 
  232     $             work, 1, iwork, info )
 
  233      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  235      CALL strsna( 
'V', 
'A', sel, 2, a, 1, b, 1, c, 1, s, sep, 2, m,
 
  236     $             work, 2, iwork, info )
 
  237      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  239      CALL strsna( 
'B', 
'A', sel, 2, a, 2, b, 1, c, 2, s, sep, 2, m,
 
  240     $             work, 2, iwork, info )
 
  241      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  243      CALL strsna( 
'B', 
'A', sel, 2, a, 2, b, 2, c, 1, s, sep, 2, m,
 
  244     $             work, 2, iwork, info )
 
  245      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  247      CALL strsna( 
'B', 
'A', sel, 1, a, 1, b, 1, c, 1, s, sep, 0, m,
 
  248     $             work, 1, iwork, info )
 
  249      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  251      CALL strsna( 
'B', 
'S', sel, 2, a, 2, b, 2, c, 2, s, sep, 1, m,
 
  252     $             work, 2, iwork, info )
 
  253      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  255      CALL strsna( 
'B', 
'A', sel, 2, a, 2, b, 2, c, 2, s, sep, 2, m,
 
  256     $             work, 1, iwork, info )
 
  257      CALL chkxer( 
'STRSNA', infot, nout, lerr, ok )
 
  265      CALL strsen( 
'X', 
'N', sel, 0, a, 1, b, 1, wr, wi, m, s( 1 ),
 
  266     $             sep( 1 ), work, 1, iwork, 1, info )
 
  267      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  269      CALL strsen( 
'N', 
'X', sel, 0, a, 1, b, 1, wr, wi, m, s( 1 ),
 
  270     $             sep( 1 ), work, 1, iwork, 1, info )
 
  271      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  273      CALL strsen( 
'N', 
'N', sel, -1, a, 1, b, 1, wr, wi, m, s( 1 ),
 
  274     $             sep( 1 ), work, 1, iwork, 1, info )
 
  275      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  277      CALL strsen( 
'N', 
'N', sel, 2, a, 1, b, 1, wr, wi, m, s( 1 ),
 
  278     $             sep( 1 ), work, 2, iwork, 1, info )
 
  279      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  281      CALL strsen( 
'N', 
'V', sel, 2, a, 2, b, 1, wr, wi, m, s( 1 ),
 
  282     $             sep( 1 ), work, 1, iwork, 1, info )
 
  283      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  285      CALL strsen( 
'N', 
'V', sel, 2, a, 2, b, 2, wr, wi, m, s( 1 ),
 
  286     $             sep( 1 ), work, 0, iwork, 1, info )
 
  287      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  289      CALL strsen( 
'E', 
'V', sel, 3, a, 3, b, 3, wr, wi, m, s( 1 ),
 
  290     $             sep( 1 ), work, 1, iwork, 1, info )
 
  291      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  293      CALL strsen( 
'V', 
'V', sel, 3, a, 3, b, 3, wr, wi, m, s( 1 ),
 
  294     $             sep( 1 ), work, 3, iwork, 2, info )
 
  295      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  297      CALL strsen( 
'E', 
'V', sel, 2, a, 2, b, 2, wr, wi, m, s( 1 ),
 
  298     $             sep( 1 ), work, 1, iwork, 0, info )
 
  299      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  301      CALL strsen( 
'V', 
'V', sel, 3, a, 3, b, 3, wr, wi, m, s( 1 ),
 
  302     $             sep( 1 ), work, 4, iwork, 1, info )
 
  303      CALL chkxer( 
'STRSEN', infot, nout, lerr, ok )
 
  309         WRITE( nout, fmt = 9999 )path, nt
 
  311         WRITE( nout, fmt = 9998 )path
 
  315 9999 
FORMAT( 1x, a3, 
' routines passed the tests of the error exits (',
 
  316     $      i3, 
' tests done)' )
 
  317 9998 
FORMAT( 
' *** ', a3, 
' routines failed the tests of the error ex',