142      SUBROUTINE dgtcon( NORM, N, DL, D, DU, DU2, IPIV, ANORM, RCOND,
 
  143     $                   WORK, IWORK, INFO )
 
  152      DOUBLE PRECISION   ANORM, RCOND
 
  155      INTEGER            IPIV( * ), IWORK( * )
 
  156      DOUBLE PRECISION   D( * ), DL( * ), DU( * ), DU2( * ), WORK( * )
 
  162      DOUBLE PRECISION   ONE, ZERO
 
  163      parameter( one = 1.0d+0, zero = 0.0d+0 )
 
  167      INTEGER            I, KASE, KASE1
 
  168      DOUBLE PRECISION   AINVNM
 
  185      onenrm = norm.EQ.
'1' .OR. lsame( norm, 
'O' )
 
  186      IF( .NOT.onenrm .AND. .NOT.lsame( norm, 
'I' ) ) 
THEN 
  188      ELSE IF( n.LT.0 ) 
THEN 
  190      ELSE IF( anorm.LT.zero ) 
THEN 
  194         CALL xerbla( 
'DGTCON', -info )
 
  204      ELSE IF( anorm.EQ.zero ) 
THEN 
  223      CALL dlacn2( n, work( n+1 ), work, iwork, ainvnm, kase, isave )
 
  225         IF( kase.EQ.kase1 ) 
THEN 
  229            CALL dgttrs( 
'No transpose', n, 1, dl, d, du, du2, ipiv,
 
  235            CALL dgttrs( 
'Transpose', n, 1, dl, d, du, du2, ipiv,
 
  245     $   rcond = ( one / ainvnm ) / anorm
 
 
subroutine dgtcon(norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, iwork, info)
DGTCON
subroutine dgttrs(trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info)
DGTTRS
subroutine dlacn2(n, v, x, isgn, est, kase, isave)
DLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...