174      SUBROUTINE zhetrf( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
 
  182      INTEGER            INFO, LDA, LWORK, N
 
  186      COMPLEX*16         A( LDA, * ), WORK( * )
 
  192      LOGICAL            LQUERY, UPPER
 
  193      INTEGER            IINFO, IWS, J, K, KB, LDWORK, LWKOPT, NB, NBMIN
 
  198      EXTERNAL           lsame, ilaenv
 
  211      upper = lsame( uplo, 
'U' )
 
  212      lquery = ( lwork.EQ.-1 )
 
  213      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  215      ELSE IF( n.LT.0 ) 
THEN 
  217      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  219      ELSE IF( lwork.LT.1 .AND. .NOT.lquery ) 
THEN 
  227         nb = ilaenv( 1, 
'ZHETRF', uplo, n, -1, -1, -1 )
 
  228         lwkopt = max( 1, n*nb )
 
  233         CALL xerbla( 
'ZHETRF', -info )
 
  235      ELSE IF( lquery ) 
THEN 
  241      IF( nb.GT.1 .AND. nb.LT.n ) 
THEN 
  243         IF( lwork.LT.iws ) 
THEN 
  244            nb = max( lwork / ldwork, 1 )
 
  245            nbmin = max( 2, ilaenv( 2, 
'ZHETRF', uplo, n, -1, -1,
 
  275            CALL zlahef( uplo, k, nb, kb, a, lda, ipiv, work, n,
 
  281            CALL zhetf2( uplo, k, a, lda, ipiv, iinfo )
 
  287         IF( info.EQ.0 .AND. iinfo.GT.0 )
 
  316            CALL zlahef( uplo, n-k+1, nb, kb, a( k, k ), lda,
 
  323            CALL zhetf2( uplo, n-k+1, a( k, k ), lda, ipiv( k ),
 
  330         IF( info.EQ.0 .AND. iinfo.GT.0 )
 
  331     $      info = iinfo + k - 1
 
  335         DO 30 j = k, k + kb - 1
 
  336            IF( ipiv( j ).GT.0 ) 
THEN 
  337               ipiv( j ) = ipiv( j ) + k - 1
 
  339               ipiv( j ) = ipiv( j ) - k + 1
 
 
subroutine zhetf2(uplo, n, a, lda, ipiv, info)
ZHETF2 computes the factorization of a complex Hermitian matrix, using the diagonal pivoting method (...
subroutine zhetrf(uplo, n, a, lda, ipiv, work, lwork, info)
ZHETRF
subroutine zlahef(uplo, n, nb, kb, a, lda, ipiv, w, ldw, info)
ZLAHEF computes a partial factorization of a complex Hermitian indefinite matrix using the Bunch-Kauf...