104      SUBROUTINE cpotrf( UPLO, N, A, LDA, INFO )
 
  123      parameter( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+0 ) )
 
  132      EXTERNAL           lsame, ilaenv
 
  146      upper = lsame( uplo, 
'U' )
 
  147      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  149      ELSE IF( n.LT.0 ) 
THEN 
  151      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  155         CALL xerbla( 
'CPOTRF', -info )
 
  166      nb = ilaenv( 1, 
'CPOTRF', uplo, n, -1, -1, -1 )
 
  167      IF( nb.LE.1 .OR. nb.GE.n ) 
THEN 
  171         CALL cpotrf2( uplo, n, a, lda, info )
 
  185               jb = min( nb, n-j+1 )
 
  186               CALL cherk( 
'Upper', 
'Conjugate transpose', jb, j-1,
 
  187     $                     -one, a( 1, j ), lda, one, a( j, j ), lda )
 
  188               CALL cpotrf2( 
'Upper', jb, a( j, j ), lda, info )
 
  195                  CALL cgemm( 
'Conjugate transpose', 
'No transpose',
 
  197     $                        n-j-jb+1, j-1, -cone, a( 1, j ), lda,
 
  198     $                        a( 1, j+jb ), lda, cone, a( j, j+jb ),
 
  200                  CALL ctrsm( 
'Left', 
'Upper', 
'Conjugate transpose',
 
  201     $                        
'Non-unit', jb, n-j-jb+1, cone, a( j, j ),
 
  202     $                        lda, a( j, j+jb ), lda )
 
  215               jb = min( nb, n-j+1 )
 
  216               CALL cherk( 
'Lower', 
'No transpose', jb, j-1, -one,
 
  217     $                     a( j, 1 ), lda, one, a( j, j ), lda )
 
  218               CALL cpotrf2( 
'Lower', jb, a( j, j ), lda, info )
 
  225                  CALL cgemm( 
'No transpose', 
'Conjugate transpose',
 
  226     $                        n-j-jb+1, jb, j-1, -cone, a( j+jb, 1 ),
 
  227     $                        lda, a( j, 1 ), lda, cone, a( j+jb, j ),
 
  229                  CALL ctrsm( 
'Right', 
'Lower',
 
  230     $                        
'Conjugate transpose',
 
  231     $                        
'Non-unit', n-j-jb+1, jb, cone, a( j, j ),
 
  232     $                        lda, a( j+jb, j ), lda )
 
 
subroutine cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
CGEMM
subroutine cherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
CHERK
subroutine ctrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRSM