106      SUBROUTINE spotf2( UPLO, N, A, LDA, INFO )
 
  124      parameter( one = 1.0e+0, zero = 0.0e+0 )
 
  132      LOGICAL            LSAME, SISNAN
 
  134      EXTERNAL           lsame, sdot, sisnan
 
  147      upper = lsame( uplo, 
'U' )
 
  148      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  150      ELSE IF( n.LT.0 ) 
THEN 
  152      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  156         CALL xerbla( 
'SPOTF2', -info )
 
  173            ajj = a( j, j ) - sdot( j-1, a( 1, j ), 1, a( 1, j ), 1 )
 
  174            IF( ajj.LE.zero.OR.sisnan( ajj ) ) 
THEN 
  184               CALL sgemv( 
'Transpose', j-1, n-j, -one, a( 1, j+1 ),
 
  185     $                     lda, a( 1, j ), 1, one, a( j, j+1 ), lda )
 
  186               CALL sscal( n-j, one / ajj, a( j, j+1 ), lda )
 
  197            ajj = a( j, j ) - sdot( j-1, a( j, 1 ), lda, a( j, 1 ),
 
  199            IF( ajj.LE.zero.OR.sisnan( ajj ) ) 
THEN 
  209               CALL sgemv( 
'No transpose', n-j, j-1, -one, a( j+1,
 
  211     $                     lda, a( j, 1 ), lda, one, a( j+1, j ), 1 )
 
  212               CALL sscal( n-j, one / ajj, a( j+1, j ), 1 )
 
 
subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
SGEMV
subroutine spotf2(uplo, n, a, lda, info)
SPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...