104      SUBROUTINE dpotrf( UPLO, N, A, LDA, INFO )
 
  115      DOUBLE PRECISION   A( LDA, * )
 
  122      parameter( one = 1.0d+0 )
 
  131      EXTERNAL           lsame, ilaenv
 
  145      upper = lsame( uplo, 
'U' )
 
  146      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  148      ELSE IF( n.LT.0 ) 
THEN 
  150      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  154         CALL xerbla( 
'DPOTRF', -info )
 
  165      nb = ilaenv( 1, 
'DPOTRF', uplo, n, -1, -1, -1 )
 
  166      IF( nb.LE.1 .OR. nb.GE.n ) 
THEN 
  170         CALL dpotrf2( uplo, n, a, lda, info )
 
  184               jb = min( nb, n-j+1 )
 
  185               CALL dsyrk( 
'Upper', 
'Transpose', jb, j-1, -one,
 
  186     $                     a( 1, j ), lda, one, a( j, j ), lda )
 
  187               CALL dpotrf2( 
'Upper', jb, a( j, j ), lda, info )
 
  194                  CALL dgemm( 
'Transpose', 
'No transpose', jb,
 
  196     $                        j-1, -one, a( 1, j ), lda, a( 1, j+jb ),
 
  197     $                        lda, one, a( j, j+jb ), lda )
 
  198                  CALL dtrsm( 
'Left', 
'Upper', 
'Transpose',
 
  200     $                        jb, n-j-jb+1, one, a( j, j ), lda,
 
  201     $                        a( j, j+jb ), lda )
 
  214               jb = min( nb, n-j+1 )
 
  215               CALL dsyrk( 
'Lower', 
'No transpose', jb, j-1, -one,
 
  216     $                     a( j, 1 ), lda, one, a( j, j ), lda )
 
  217               CALL dpotrf2( 
'Lower', jb, a( j, j ), lda, info )
 
  224                  CALL dgemm( 
'No transpose', 
'Transpose', n-j-jb+1,
 
  226     $                        j-1, -one, a( j+jb, 1 ), lda, a( j, 1 ),
 
  227     $                        lda, one, a( j+jb, j ), lda )
 
  228                  CALL dtrsm( 
'Right', 
'Lower', 
'Transpose',
 
  230     $                        n-j-jb+1, jb, one, a( j, j ), lda,
 
  231     $                        a( j+jb, j ), lda )
 
 
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM
subroutine dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
DSYRK
subroutine dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRSM