556      SUBROUTINE cgbsvxx( FACT, TRANS, N, KL, KU, NRHS, AB, LDAB,
 
  558     $                    LDAFB, IPIV, EQUED, R, C, B, LDB, X, LDX,
 
  559     $                    RCOND, RPVGRW, BERR, N_ERR_BNDS,
 
  560     $                    ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS,
 
  561     $                    WORK, RWORK, INFO )
 
  568      CHARACTER          EQUED, FACT, TRANS
 
  569      INTEGER            INFO, LDAB, LDAFB, LDB, LDX, N, NRHS, NPARAMS,
 
  575      COMPLEX            AB( LDAB, * ), AFB( LDAFB, * ), B( LDB, * ),
 
  576     $                   x( ldx , * ),work( * )
 
  577      REAL               R( * ), C( * ), PARAMS( * ), BERR( * ),
 
  578     $                   ERR_BNDS_NORM( NRHS, * ),
 
  579     $                   err_bnds_comp( nrhs, * ), rwork( * )
 
  586      PARAMETER          ( ZERO = 0.0e+0, one = 1.0e+0 )
 
  587      INTEGER            FINAL_NRM_ERR_I, FINAL_CMP_ERR_I, BERR_I
 
  588      INTEGER            RCOND_I, NRM_RCOND_I, NRM_ERR_I, CMP_RCOND_I
 
  589      INTEGER            CMP_ERR_I, PIV_GROWTH_I
 
  590      parameter( final_nrm_err_i = 1, final_cmp_err_i = 2,
 
  592      parameter( rcond_i = 4, nrm_rcond_i = 5, nrm_err_i = 6 )
 
  593      parameter( cmp_rcond_i = 7, cmp_err_i = 8,
 
  597      LOGICAL            COLEQU, EQUIL, NOFACT, NOTRAN, ROWEQU
 
  598      INTEGER            INFEQU, I, J, KL, KU
 
  599      REAL               AMAX, BIGNUM, COLCND, RCMAX, RCMIN,
 
  605      REAL               SLAMCH, CLA_GBRPVGRW
 
  618      nofact = lsame( fact, 
'N' )
 
  619      equil = lsame( fact, 
'E' )
 
  620      notran = lsame( trans, 
'N' )
 
  621      smlnum = slamch( 
'Safe minimum' )
 
  622      bignum = one / smlnum
 
  623      IF( nofact .OR. equil ) 
THEN 
  628         rowequ = lsame( equed, 
'R' ) .OR. lsame( equed, 
'B' )
 
  629         colequ = lsame( equed, 
'C' ) .OR. lsame( equed, 
'B' )
 
  640      IF( .NOT.nofact .AND. .NOT.equil .AND. .NOT.
 
  641     $     lsame( fact, 
'F' ) ) 
THEN 
  643      ELSE IF( .NOT.notran .AND. .NOT.lsame( trans, 
'T' ) .AND. .NOT.
 
  644     $        lsame( trans, 
'C' ) ) 
THEN 
  646      ELSE IF( n.LT.0 ) 
THEN 
  648      ELSE IF( kl.LT.0 ) 
THEN 
  650      ELSE IF( ku.LT.0 ) 
THEN 
  652      ELSE IF( nrhs.LT.0 ) 
THEN 
  654      ELSE IF( ldab.LT.kl+ku+1 ) 
THEN 
  656      ELSE IF( ldafb.LT.2*kl+ku+1 ) 
THEN 
  658      ELSE IF( lsame( fact, 
'F' ) .AND. .NOT.
 
  659     $        ( rowequ .OR. colequ .OR. lsame( equed, 
'N' ) ) ) 
THEN 
  666               rcmin = min( rcmin, r( j ) )
 
  667               rcmax = max( rcmax, r( j ) )
 
  669            IF( rcmin.LE.zero ) 
THEN 
  671            ELSE IF( n.GT.0 ) 
THEN 
  672               rowcnd = max( rcmin, smlnum ) / min( rcmax, bignum )
 
  677         IF( colequ .AND. info.EQ.0 ) 
THEN 
  681               rcmin = min( rcmin, c( j ) )
 
  682               rcmax = max( rcmax, c( j ) )
 
  684            IF( rcmin.LE.zero ) 
THEN 
  686            ELSE IF( n.GT.0 ) 
THEN 
  687               colcnd = max( rcmin, smlnum ) / min( rcmax, bignum )
 
  693            IF( ldb.LT.max( 1, n ) ) 
THEN 
  695            ELSE IF( ldx.LT.max( 1, n ) ) 
THEN 
  702         CALL xerbla( 
'CGBSVXX', -info )
 
  710         CALL cgbequb( n, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd,
 
  712         IF( infequ.EQ.0 ) 
THEN 
  716            CALL claqgb( n, n, kl, ku, ab, ldab, r, c, rowcnd,
 
  719            rowequ = lsame( equed, 
'R' ) .OR. lsame( equed, 
'B' )
 
  720            colequ = lsame( equed, 
'C' ) .OR. lsame( equed, 
'B' )
 
  725         IF ( .NOT.rowequ ) 
THEN 
  730         IF ( .NOT.colequ ) 
THEN 
  740         IF( rowequ ) 
CALL clascl2( n, nrhs, r, b, ldb )
 
  742         IF( colequ ) 
CALL clascl2( n, nrhs, c, b, ldb )
 
  745      IF( nofact .OR. equil ) 
THEN 
  750            DO 30, i = kl+1, 2*kl+ku+1
 
  751               afb( i, j ) = ab( i-kl, j )
 
  754         CALL cgbtrf( n, n, kl, ku, afb, ldafb, ipiv, info )
 
  764            rpvgrw = cla_gbrpvgrw( n, kl, ku, info, ab, ldab, afb,
 
  772      rpvgrw = cla_gbrpvgrw( n, kl, ku, n, ab, ldab, afb, ldafb )
 
  776      CALL clacpy( 
'Full', n, nrhs, b, ldb, x, ldx )
 
  777      CALL cgbtrs( trans, n, kl, ku, nrhs, afb, ldafb, ipiv, x, ldx,
 
  783      CALL cgbrfsx( trans, equed, n, kl, ku, nrhs, ab, ldab, afb,
 
  785     $     ipiv, r, c, b, ldb, x, ldx, rcond, berr,
 
  786     $     n_err_bnds, err_bnds_norm, err_bnds_comp, nparams, params,
 
  787     $     work, rwork, info )
 
  792      IF ( colequ .AND. notran ) 
THEN 
  793         CALL clascl2( n, nrhs, c, x, ldx )
 
  794      ELSE IF ( rowequ .AND. .NOT.notran ) 
THEN 
  795         CALL clascl2( n, nrhs, r, x, ldx )
 
 
subroutine cgbrfsx(trans, equed, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, r, c, b, ldb, x, ldx, rcond, berr, n_err_bnds, err_bnds_norm, err_bnds_comp, nparams, params, work, rwork, info)
CGBRFSX
 
subroutine cgbsvxx(fact, trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, r, c, b, ldb, x, ldx, rcond, rpvgrw, berr, n_err_bnds, err_bnds_norm, err_bnds_comp, nparams, params, work, rwork, info)
CGBSVXX computes the solution to system of linear equations A * X = B for GB matrices