117      SUBROUTINE zpocon( UPLO, N, A, LDA, ANORM, RCOND, WORK, RWORK,
 
  127      DOUBLE PRECISION   ANORM, RCOND
 
  130      DOUBLE PRECISION   RWORK( * )
 
  131      COMPLEX*16         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
 
  153      DOUBLE PRECISION   DLAMCH
 
  154      EXTERNAL           lsame, izamax, dlamch
 
  160      INTRINSIC          abs, dble, dimag, max
 
  163      DOUBLE PRECISION   CABS1
 
  166      cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
 
  173      upper = lsame( uplo, 
'U' )
 
  174      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  176      ELSE IF( n.LT.0 ) 
THEN 
  178      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  180      ELSE IF( anorm.LT.zero ) 
THEN 
  184         CALL xerbla( 
'ZPOCON', -info )
 
  194      ELSE IF( anorm.EQ.zero ) 
THEN 
  198      smlnum = dlamch( 
'Safe minimum' )
 
  205      CALL zlacn2( n, work( n+1 ), work, ainvnm, kase, isave )
 
  211            CALL zlatrs( 
'Upper', 
'Conjugate transpose', 
'Non-unit',
 
  212     $                   normin, n, a, lda, work, scalel, rwork, info )
 
  217            CALL zlatrs( 
'Upper', 
'No transpose', 
'Non-unit', normin,
 
  219     $                   a, lda, work, scaleu, rwork, info )
 
  224            CALL zlatrs( 
'Lower', 
'No transpose', 
'Non-unit', normin,
 
  226     $                   a, lda, work, scalel, rwork, info )
 
  231            CALL zlatrs( 
'Lower', 
'Conjugate transpose', 
'Non-unit',
 
  232     $                   normin, n, a, lda, work, scaleu, rwork, info )
 
  237         scale = scalel*scaleu
 
  238         IF( scale.NE.one ) 
THEN 
  239            ix = izamax( n, work, 1 )
 
  240            IF( scale.LT.cabs1( work( ix ) )*smlnum .OR. scale.EQ.zero )
 
  242            CALL zdrscl( n, scale, work, 1 )
 
  250     $   rcond = ( one / ainvnm ) / anorm
 
 
subroutine zlacn2(n, v, x, est, kase, isave)
ZLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...
subroutine zlatrs(uplo, trans, diag, normin, n, a, lda, x, scale, cnorm, info)
ZLATRS solves a triangular system of equations with the scale factor set to prevent overflow.
subroutine zpocon(uplo, n, a, lda, anorm, rcond, work, rwork, info)
ZPOCON
subroutine zdrscl(n, sa, sx, incx)
ZDRSCL multiplies a vector by the reciprocal of a real scalar.