117      SUBROUTINE dpocon( UPLO, N, A, LDA, ANORM, RCOND, WORK, IWORK,
 
  127      DOUBLE PRECISION   ANORM, RCOND
 
  131      DOUBLE PRECISION   A( LDA, * ), WORK( * )
 
  137      DOUBLE PRECISION   ONE, ZERO
 
  138      parameter( one = 1.0d+0, zero = 0.0d+0 )
 
  144      DOUBLE PRECISION   AINVNM, SCALE, SCALEL, SCALEU, SMLNUM
 
  152      DOUBLE PRECISION   DLAMCH
 
  153      EXTERNAL           lsame, idamax, dlamch
 
  166      upper = lsame( uplo, 
'U' )
 
  167      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  169      ELSE IF( n.LT.0 ) 
THEN 
  171      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  173      ELSE IF( anorm.LT.zero ) 
THEN 
  177         CALL xerbla( 
'DPOCON', -info )
 
  187      ELSE IF( anorm.EQ.zero ) 
THEN 
  191      smlnum = dlamch( 
'Safe minimum' )
 
  198      CALL dlacn2( n, work( n+1 ), work, iwork, ainvnm, kase, isave )
 
  204            CALL dlatrs( 
'Upper', 
'Transpose', 
'Non-unit', normin, n,
 
  206     $                   lda, work, scalel, work( 2*n+1 ), info )
 
  211            CALL dlatrs( 
'Upper', 
'No transpose', 
'Non-unit', normin,
 
  213     $                   a, lda, work, scaleu, work( 2*n+1 ), info )
 
  218            CALL dlatrs( 
'Lower', 
'No transpose', 
'Non-unit', normin,
 
  220     $                   a, lda, work, scalel, work( 2*n+1 ), info )
 
  225            CALL dlatrs( 
'Lower', 
'Transpose', 
'Non-unit', normin, n,
 
  227     $                   lda, work, scaleu, work( 2*n+1 ), info )
 
  232         scale = scalel*scaleu
 
  233         IF( scale.NE.one ) 
THEN 
  234            ix = idamax( n, work, 1 )
 
  235            IF( scale.LT.abs( work( ix ) )*smlnum .OR. scale.EQ.zero )
 
  237            CALL drscl( n, scale, work, 1 )
 
  245     $   rcond = ( one / ainvnm ) / anorm
 
 
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...
 
subroutine dlatrs(uplo, trans, diag, normin, n, a, lda, x, scale, cnorm, info)
DLATRS solves a triangular system of equations with the scale factor set to prevent overflow.
 
subroutine dpocon(uplo, n, a, lda, anorm, rcond, work, iwork, info)
DPOCON
 
subroutine drscl(n, sa, sx, incx)
DRSCL multiplies a vector by the reciprocal of a real scalar.