139      SUBROUTINE ctbcon( NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND,
 
  148      CHARACTER          DIAG, NORM, UPLO
 
  149      INTEGER            INFO, KD, LDAB, N
 
  154      COMPLEX            AB( LDAB, * ), WORK( * )
 
  161      PARAMETER          ( ONE = 1.0e+0, zero = 0.0e+0 )
 
  164      LOGICAL            NOUNIT, ONENRM, UPPER
 
  166      INTEGER            IX, KASE, KASE1
 
  167      REAL               AINVNM, ANORM, SCALE, SMLNUM, XNORM
 
  177      EXTERNAL           lsame, icamax, clantb, slamch
 
  183      INTRINSIC          abs, aimag, max, real
 
  189      cabs1( zdum ) = abs( real( zdum ) ) + abs( aimag( zdum ) )
 
  196      upper = lsame( uplo, 
'U' )
 
  197      onenrm = norm.EQ.
'1' .OR. lsame( norm, 
'O' )
 
  198      nounit = lsame( diag, 
'N' )
 
  200      IF( .NOT.onenrm .AND. .NOT.lsame( norm, 
'I' ) ) 
THEN 
  202      ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  204      ELSE IF( .NOT.nounit .AND. .NOT.lsame( diag, 
'U' ) ) 
THEN 
  206      ELSE IF( n.LT.0 ) 
THEN 
  208      ELSE IF( kd.LT.0 ) 
THEN 
  210      ELSE IF( ldab.LT.kd+1 ) 
THEN 
  214         CALL xerbla( 
'CTBCON', -info )
 
  226      smlnum = slamch( 
'Safe minimum' )*real( max( n, 1 ) )
 
  230      anorm = clantb( norm, uplo, diag, n, kd, ab, ldab, rwork )
 
  234      IF( anorm.GT.zero ) 
THEN 
  247         CALL clacn2( n, work( n+1 ), work, ainvnm, kase, isave )
 
  249            IF( kase.EQ.kase1 ) 
THEN 
  253               CALL clatbs( uplo, 
'No transpose', diag, normin, n,
 
  255     $                      ab, ldab, work, scale, rwork, info )
 
  260               CALL clatbs( uplo, 
'Conjugate transpose', diag,
 
  262     $                      n, kd, ab, ldab, work, scale, rwork, info )
 
  268            IF( scale.NE.one ) 
THEN 
  269               ix = icamax( n, work, 1 )
 
  270               xnorm = cabs1( work( ix ) )
 
  271               IF( scale.LT.xnorm*smlnum .OR. scale.EQ.zero )
 
  273               CALL csrscl( n, scale, work, 1 )
 
  281     $      rcond = ( one / anorm ) / ainvnm
 
 
subroutine clacn2(n, v, x, est, kase, isave)
CLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...
subroutine clatbs(uplo, trans, diag, normin, n, kd, ab, ldab, x, scale, cnorm, info)
CLATBS solves a triangular banded system of equations.
subroutine csrscl(n, sa, sx, incx)
CSRSCL multiplies a vector by the reciprocal of a real scalar.
subroutine ctbcon(norm, uplo, diag, n, kd, ab, ldab, rcond, work, rwork, info)
CTBCON