72      parameter( nmax = 4, lw = 3*nmax )
 
   77      INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
 
   78      DOUBLE PRECISION   ANRM, CCOND, RCOND, BERR
 
   81      INTEGER            IP( NMAX ), IW( NMAX )
 
   82      DOUBLE PRECISION   A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
 
   83     $                   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
 
   84     $                   W( LW ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ),
 
   85     $                   ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
 
  103      COMMON             / infoc / infot, nout, ok, lerr
 
  104      COMMON             / srnamc / srnamt
 
  112      WRITE( nout, fmt = * )
 
  119            a( i, j ) = 1.d0 / dble( i+j )
 
  120            af( i, j ) = 1.d0 / dble( i+j )
 
  134      IF( lsamen( 2, c2, 
'GE' ) ) 
THEN 
  143         CALL dgetrf( -1, 0, a, 1, ip, info )
 
  144         CALL chkxer( 
'DGETRF', infot, nout, lerr, ok )
 
  146         CALL dgetrf( 0, -1, a, 1, ip, info )
 
  147         CALL chkxer( 
'DGETRF', infot, nout, lerr, ok )
 
  149         CALL dgetrf( 2, 1, a, 1, ip, info )
 
  150         CALL chkxer( 
'DGETRF', infot, nout, lerr, ok )
 
  156         CALL dgetf2( -1, 0, a, 1, ip, info )
 
  157         CALL chkxer( 
'DGETF2', infot, nout, lerr, ok )
 
  159         CALL dgetf2( 0, -1, a, 1, ip, info )
 
  160         CALL chkxer( 
'DGETF2', infot, nout, lerr, ok )
 
  162         CALL dgetf2( 2, 1, a, 1, ip, info )
 
  163         CALL chkxer( 
'DGETF2', infot, nout, lerr, ok )
 
  169         CALL dgetri( -1, a, 1, ip, w, lw, info )
 
  170         CALL chkxer( 
'DGETRI', infot, nout, lerr, ok )
 
  172         CALL dgetri( 2, a, 1, ip, w, lw, info )
 
  173         CALL chkxer( 
'DGETRI', infot, nout, lerr, ok )
 
  179         CALL dgetrs( 
'/', 0, 0, a, 1, ip, b, 1, info )
 
  180         CALL chkxer( 
'DGETRS', infot, nout, lerr, ok )
 
  182         CALL dgetrs( 
'N', -1, 0, a, 1, ip, b, 1, info )
 
  183         CALL chkxer( 
'DGETRS', infot, nout, lerr, ok )
 
  185         CALL dgetrs( 
'N', 0, -1, a, 1, ip, b, 1, info )
 
  186         CALL chkxer( 
'DGETRS', infot, nout, lerr, ok )
 
  188         CALL dgetrs( 
'N', 2, 1, a, 1, ip, b, 2, info )
 
  189         CALL chkxer( 
'DGETRS', infot, nout, lerr, ok )
 
  191         CALL dgetrs( 
'N', 2, 1, a, 2, ip, b, 1, info )
 
  192         CALL chkxer( 
'DGETRS', infot, nout, lerr, ok )
 
  198         CALL dgerfs( 
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
 
  200         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  202         CALL dgerfs( 
'N', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
 
  204         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  206         CALL dgerfs( 
'N', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
 
  208         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  210         CALL dgerfs( 
'N', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
 
  212         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  214         CALL dgerfs( 
'N', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
 
  216         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  218         CALL dgerfs( 
'N', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
 
  220         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  222         CALL dgerfs( 
'N', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
 
  224         CALL chkxer( 
'DGERFS', infot, nout, lerr, ok )
 
  232         CALL dgerfsx( 
'/', eq, 0, 0, a, 1, af, 1, ip, r, c, b, 1, x,
 
  233     $        1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  234     $        nparams, params, w, iw, info )
 
  235         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  238         CALL dgerfsx( 
'N', eq, 2, 1, a, 1, af, 2, ip, r, c, b, 2, x,
 
  239     $        2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  240     $        nparams, params, w, iw, info )
 
  241         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  244         CALL dgerfsx( 
'N', eq, -1, 0, a, 1, af, 1, ip, r, c, b, 1, x,
 
  245     $        1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  246     $        nparams, params, w, iw, info )
 
  247         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  249         CALL dgerfsx( 
'N', eq, 0, -1, a, 1, af, 1, ip, r, c, b, 1, x,
 
  250     $        1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  251     $        nparams, params, w, iw, info )
 
  252         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  254         CALL dgerfsx( 
'N', eq, 2, 1, a, 1, af, 2, ip, r, c, b, 2, x,
 
  255     $        2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  256     $        nparams, params, w, iw, info )
 
  257         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  259         CALL dgerfsx( 
'N', eq, 2, 1, a, 2, af, 1, ip, r, c, b, 2, x,
 
  260     $        2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  261     $        nparams, params, w, iw, info )
 
  262         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  265         CALL dgerfsx( 
'N', eq, 2, 1, a, 2, af, 2, ip, r, c, b, 1, x,
 
  266     $        2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  267     $        nparams, params, w, iw, info )
 
  268         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  270         CALL dgerfsx( 
'N', eq, 2, 1, a, 2, af, 2, ip, r, c, b, 2, x,
 
  271     $        1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  272     $        nparams, params, w, iw, info )
 
  273         CALL chkxer( 
'DGERFSX', infot, nout, lerr, ok )
 
  279         CALL dgecon( 
'/', 0, a, 1, anrm, rcond, w, iw, info )
 
  280         CALL chkxer( 
'DGECON', infot, nout, lerr, ok )
 
  282         CALL dgecon( 
'1', -1, a, 1, anrm, rcond, w, iw, info )
 
  283         CALL chkxer( 
'DGECON', infot, nout, lerr, ok )
 
  285         CALL dgecon( 
'1', 2, a, 1, anrm, rcond, w, iw, info )
 
  286         CALL chkxer( 
'DGECON', infot, nout, lerr, ok )
 
  292         CALL dgeequ( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
 
  293         CALL chkxer( 
'DGEEQU', infot, nout, lerr, ok )
 
  295         CALL dgeequ( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
 
  296         CALL chkxer( 
'DGEEQU', infot, nout, lerr, ok )
 
  298         CALL dgeequ( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
 
  299         CALL chkxer( 
'DGEEQU', infot, nout, lerr, ok )
 
  305         CALL dgeequb( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
 
  306         CALL chkxer( 
'DGEEQUB', infot, nout, lerr, ok )
 
  308         CALL dgeequb( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
 
  309         CALL chkxer( 
'DGEEQUB', infot, nout, lerr, ok )
 
  311         CALL dgeequb( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
 
  312         CALL chkxer( 
'DGEEQUB', infot, nout, lerr, ok )
 
  314      ELSE IF( lsamen( 2, c2, 
'GB' ) ) 
THEN 
  323         CALL dgbtrf( -1, 0, 0, 0, a, 1, ip, info )
 
  324         CALL chkxer( 
'DGBTRF', infot, nout, lerr, ok )
 
  326         CALL dgbtrf( 0, -1, 0, 0, a, 1, ip, info )
 
  327         CALL chkxer( 
'DGBTRF', infot, nout, lerr, ok )
 
  329         CALL dgbtrf( 1, 1, -1, 0, a, 1, ip, info )
 
  330         CALL chkxer( 
'DGBTRF', infot, nout, lerr, ok )
 
  332         CALL dgbtrf( 1, 1, 0, -1, a, 1, ip, info )
 
  333         CALL chkxer( 
'DGBTRF', infot, nout, lerr, ok )
 
  335         CALL dgbtrf( 2, 2, 1, 1, a, 3, ip, info )
 
  336         CALL chkxer( 
'DGBTRF', infot, nout, lerr, ok )
 
  342         CALL dgbtf2( -1, 0, 0, 0, a, 1, ip, info )
 
  343         CALL chkxer( 
'DGBTF2', infot, nout, lerr, ok )
 
  345         CALL dgbtf2( 0, -1, 0, 0, a, 1, ip, info )
 
  346         CALL chkxer( 
'DGBTF2', infot, nout, lerr, ok )
 
  348         CALL dgbtf2( 1, 1, -1, 0, a, 1, ip, info )
 
  349         CALL chkxer( 
'DGBTF2', infot, nout, lerr, ok )
 
  351         CALL dgbtf2( 1, 1, 0, -1, a, 1, ip, info )
 
  352         CALL chkxer( 
'DGBTF2', infot, nout, lerr, ok )
 
  354         CALL dgbtf2( 2, 2, 1, 1, a, 3, ip, info )
 
  355         CALL chkxer( 
'DGBTF2', infot, nout, lerr, ok )
 
  361         CALL dgbtrs( 
'/', 0, 0, 0, 1, a, 1, ip, b, 1, info )
 
  362         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  364         CALL dgbtrs( 
'N', -1, 0, 0, 1, a, 1, ip, b, 1, info )
 
  365         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  367         CALL dgbtrs( 
'N', 1, -1, 0, 1, a, 1, ip, b, 1, info )
 
  368         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  370         CALL dgbtrs( 
'N', 1, 0, -1, 1, a, 1, ip, b, 1, info )
 
  371         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  373         CALL dgbtrs( 
'N', 1, 0, 0, -1, a, 1, ip, b, 1, info )
 
  374         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  376         CALL dgbtrs( 
'N', 2, 1, 1, 1, a, 3, ip, b, 2, info )
 
  377         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  379         CALL dgbtrs( 
'N', 2, 0, 0, 1, a, 1, ip, b, 1, info )
 
  380         CALL chkxer( 
'DGBTRS', infot, nout, lerr, ok )
 
  386         CALL dgbrfs( 
'/', 0, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
 
  388         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  390         CALL dgbrfs( 
'N', -1, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
 
  392         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  394         CALL dgbrfs( 
'N', 1, -1, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
 
  396         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  398         CALL dgbrfs( 
'N', 1, 0, -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
 
  400         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  402         CALL dgbrfs( 
'N', 1, 0, 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1,
 
  404         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  406         CALL dgbrfs( 
'N', 2, 1, 1, 1, a, 2, af, 4, ip, b, 2, x, 2, r1,
 
  408         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  410         CALL dgbrfs( 
'N', 2, 1, 1, 1, a, 3, af, 3, ip, b, 2, x, 2, r1,
 
  412         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  414         CALL dgbrfs( 
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 1, x, 2, r1,
 
  416         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  418         CALL dgbrfs( 
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 2, x, 1, r1,
 
  420         CALL chkxer( 
'DGBRFS', infot, nout, lerr, ok )
 
  428         CALL dgbrfsx( 
'/', eq, 0, 0, 0, 0, a, 1, af, 1, ip, r, c, b, 1,
 
  429     $        x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  430     $        nparams, params,  w, iw, info )
 
  431         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  434         CALL dgbrfsx( 
'N', eq, 2, 1, 1, 1, a, 1, af, 2, ip, r, c, b, 2,
 
  435     $        x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  436     $        nparams, params, w, iw, info )
 
  437         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  440         CALL dgbrfsx( 
'N', eq, -1, 1, 1, 0, a, 1, af, 1, ip, r, c, b,
 
  441     $        1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  442     $        nparams, params, w, iw, info )
 
  443         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  446         CALL dgbrfsx( 
'N', eq, 2, -1, 1, 1, a, 3, af, 4, ip, r, c, b,
 
  447     $        1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  448     $        nparams, params, w, iw, info )
 
  449         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  452         CALL dgbrfsx( 
'N', eq, 2, 1, -1, 1, a, 3, af, 4, ip, r, c, b,
 
  453     $        1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  454     $        nparams, params, w, iw, info )
 
  455         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  457         CALL dgbrfsx( 
'N', eq, 0, 0, 0, -1, a, 1, af, 1, ip, r, c, b,
 
  458     $        1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  459     $        nparams, params, w, iw, info )
 
  460         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  462         CALL dgbrfsx( 
'N', eq, 2, 1, 1, 1, a, 1, af, 2, ip, r, c, b,
 
  463     $        2, x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  464     $        nparams, params, w, iw, info )
 
  465         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  467         CALL dgbrfsx( 
'N', eq, 2, 1, 1, 1, a, 3, af, 3, ip, r, c, b, 2,
 
  468     $        x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  469     $        nparams, params, w, iw, info )
 
  470         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  473         CALL dgbrfsx( 
'N', eq, 2, 1, 1, 1, a, 3, af, 5, ip, r, c, b,
 
  474     $        1, x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  475     $        nparams, params, w, iw, info )
 
  476         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  478         CALL dgbrfsx( 
'N', eq, 2, 1, 1, 1, a, 3, af, 5, ip, r, c, b, 2,
 
  479     $        x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
 
  480     $        nparams, params, w, iw, info )
 
  481         CALL chkxer( 
'DGBRFSX', infot, nout, lerr, ok )
 
  487         CALL dgbcon( 
'/', 0, 0, 0, a, 1, ip, anrm, rcond, w, iw, info )
 
  488         CALL chkxer( 
'DGBCON', infot, nout, lerr, ok )
 
  490         CALL dgbcon( 
'1', -1, 0, 0, a, 1, ip, anrm, rcond, w, iw,
 
  492         CALL chkxer( 
'DGBCON', infot, nout, lerr, ok )
 
  494         CALL dgbcon( 
'1', 1, -1, 0, a, 1, ip, anrm, rcond, w, iw,
 
  496         CALL chkxer( 
'DGBCON', infot, nout, lerr, ok )
 
  498         CALL dgbcon( 
'1', 1, 0, -1, a, 1, ip, anrm, rcond, w, iw,
 
  500         CALL chkxer( 
'DGBCON', infot, nout, lerr, ok )
 
  502         CALL dgbcon( 
'1', 2, 1, 1, a, 3, ip, anrm, rcond, w, iw, info )
 
  503         CALL chkxer( 
'DGBCON', infot, nout, lerr, ok )
 
  509         CALL dgbequ( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
 
  511         CALL chkxer( 
'DGBEQU', infot, nout, lerr, ok )
 
  513         CALL dgbequ( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
 
  515         CALL chkxer( 
'DGBEQU', infot, nout, lerr, ok )
 
  517         CALL dgbequ( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
 
  519         CALL chkxer( 
'DGBEQU', infot, nout, lerr, ok )
 
  521         CALL dgbequ( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
 
  523         CALL chkxer( 
'DGBEQU', infot, nout, lerr, ok )
 
  525         CALL dgbequ( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
 
  527         CALL chkxer( 
'DGBEQU', infot, nout, lerr, ok )
 
  533         CALL dgbequb( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
 
  535         CALL chkxer( 
'DGBEQUB', infot, nout, lerr, ok )
 
  537         CALL dgbequb( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
 
  539         CALL chkxer( 
'DGBEQUB', infot, nout, lerr, ok )
 
  541         CALL dgbequb( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
 
  543         CALL chkxer( 
'DGBEQUB', infot, nout, lerr, ok )
 
  545         CALL dgbequb( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
 
  547         CALL chkxer( 
'DGBEQUB', infot, nout, lerr, ok )
 
  549         CALL dgbequb( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
 
  551         CALL chkxer( 
'DGBEQUB', infot, nout, lerr, ok )
 
  556      CALL alaesm( path, ok, nout )