149      SUBROUTINE dpbstf( UPLO, N, KD, AB, LDAB, INFO )
 
  157      INTEGER            INFO, KD, LDAB, N
 
  160      DOUBLE PRECISION   AB( LDAB, * )
 
  166      DOUBLE PRECISION   ONE, ZERO
 
  167      parameter( one = 1.0d+0, zero = 0.0d+0 )
 
  171      INTEGER            J, KLD, KM, M
 
  182      INTRINSIC          max, min, sqrt
 
  189      upper = lsame( uplo, 
'U' )
 
  190      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  192      ELSE IF( n.LT.0 ) 
THEN 
  194      ELSE IF( kd.LT.0 ) 
THEN 
  196      ELSE IF( ldab.LT.kd+1 ) 
THEN 
  200         CALL xerbla( 
'DPBSTF', -info )
 
  209      kld = max( 1, ldab-1 )
 
  219         DO 10 j = n, m + 1, -1
 
  233            CALL dscal( km, one / ajj, ab( kd+1-km, j ), 1 )
 
  234            CALL dsyr( 
'Upper', km, -one, ab( kd+1-km, j ), 1,
 
  235     $                 ab( kd+1, j-km ), kld )
 
  255               CALL dscal( km, one / ajj, ab( kd, j+1 ), kld )
 
  256               CALL dsyr( 
'Upper', km, -one, ab( kd, j+1 ), kld,
 
  257     $                    ab( kd+1, j+1 ), kld )
 
  264         DO 30 j = n, m + 1, -1
 
  278            CALL dscal( km, one / ajj, ab( km+1, j-km ), kld )
 
  279            CALL dsyr( 
'Lower', km, -one, ab( km+1, j-km ), kld,
 
  280     $                 ab( 1, j-km ), kld )
 
  300               CALL dscal( km, one / ajj, ab( 2, j ), 1 )
 
  301               CALL dsyr( 
'Lower', km, -one, ab( 2, j ), 1,
 
  302     $                    ab( 1, j+1 ), kld )
 
 
subroutine dsyr(uplo, n, alpha, x, incx, a, lda)
DSYR