191      SUBROUTINE dsytf2( UPLO, N, A, LDA, IPIV, INFO )
 
  203      DOUBLE PRECISION   A( LDA, * )
 
  209      DOUBLE PRECISION   ZERO, ONE
 
  210      parameter( zero = 0.0d+0, one = 1.0d+0 )
 
  211      DOUBLE PRECISION   EIGHT, SEVTEN
 
  212      parameter( eight = 8.0d+0, sevten = 17.0d+0 )
 
  216      INTEGER            I, IMAX, J, JMAX, K, KK, KP, KSTEP
 
  217      DOUBLE PRECISION   ABSAKK, ALPHA, COLMAX, D11, D12, D21, D22, R1,
 
  218     $                   ROWMAX, T, WK, WKM1, WKP1
 
  221      LOGICAL            LSAME, DISNAN
 
  223      EXTERNAL           lsame, idamax, disnan
 
  229      INTRINSIC          abs, max, sqrt
 
  236      upper = lsame( uplo, 
'U' )
 
  237      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  239      ELSE IF( n.LT.0 ) 
THEN 
  241      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  245         CALL xerbla( 
'DSYTF2', -info )
 
  251      alpha = ( one+sqrt( sevten ) ) / eight
 
  272         absakk = abs( a( k, k ) )
 
  279            imax = idamax( k-1, a( 1, k ), 1 )
 
  280            colmax = abs( a( imax, k ) )
 
  285         IF( (max( absakk, colmax ).EQ.zero) .OR.
 
  286     $       disnan(absakk) ) 
THEN 
  295            IF( absakk.GE.alpha*colmax ) 
THEN 
  305               jmax = imax + idamax( k-imax, a( imax, imax+1 ), lda )
 
  306               rowmax = abs( a( imax, jmax ) )
 
  308                  jmax = idamax( imax-1, a( 1, imax ), 1 )
 
  309                  rowmax = max( rowmax, abs( a( jmax, imax ) ) )
 
  312               IF( absakk.GE.alpha*colmax*( colmax / rowmax ) ) 
THEN 
  317               ELSE IF( abs( a( imax, imax ) ).GE.alpha*rowmax ) 
THEN 
  339               CALL dswap( kp-1, a( 1, kk ), 1, a( 1, kp ), 1 )
 
  340               CALL dswap( kk-kp-1, a( kp+1, kk ), 1, a( kp, kp+1 ),
 
  343               a( kk, kk ) = a( kp, kp )
 
  345               IF( kstep.EQ.2 ) 
THEN 
  347                  a( k-1, k ) = a( kp, k )
 
  354            IF( kstep.EQ.1 ) 
THEN 
  367               CALL dsyr( uplo, k-1, -r1, a( 1, k ), 1, a, lda )
 
  371               CALL dscal( k-1, r1, a( 1, k ), 1 )
 
  389                  d22 = a( k-1, k-1 ) / d12
 
  390                  d11 = a( k, k ) / d12
 
  391                  t = one / ( d11*d22-one )
 
  394                  DO 30 j = k - 2, 1, -1
 
  395                     wkm1 = d12*( d11*a( j, k-1 )-a( j, k ) )
 
  396                     wk = d12*( d22*a( j, k )-a( j, k-1 ) )
 
  398                        a( i, j ) = a( i, j ) - a( i, k )*wk -
 
  412         IF( kstep.EQ.1 ) 
THEN 
  443         absakk = abs( a( k, k ) )
 
  450            imax = k + idamax( n-k, a( k+1, k ), 1 )
 
  451            colmax = abs( a( imax, k ) )
 
  456         IF( (max( absakk, colmax ).EQ.zero) .OR.
 
  457     $       disnan(absakk) ) 
THEN 
  466            IF( absakk.GE.alpha*colmax ) 
THEN 
  476               jmax = k - 1 + idamax( imax-k, a( imax, k ), lda )
 
  477               rowmax = abs( a( imax, jmax ) )
 
  479                  jmax = imax + idamax( n-imax, a( imax+1, imax ),
 
  481                  rowmax = max( rowmax, abs( a( jmax, imax ) ) )
 
  484               IF( absakk.GE.alpha*colmax*( colmax / rowmax ) ) 
THEN 
  489               ELSE IF( abs( a( imax, imax ) ).GE.alpha*rowmax ) 
THEN 
  512     $            
CALL dswap( n-kp, a( kp+1, kk ), 1, a( kp+1, kp ),
 
  514               CALL dswap( kp-kk-1, a( kk+1, kk ), 1, a( kp, kk+1 ),
 
  517               a( kk, kk ) = a( kp, kp )
 
  519               IF( kstep.EQ.2 ) 
THEN 
  521                  a( k+1, k ) = a( kp, k )
 
  528            IF( kstep.EQ.1 ) 
THEN 
  542                  d11 = one / a( k, k )
 
  543                  CALL dsyr( uplo, n-k, -d11, a( k+1, k ), 1,
 
  544     $                       a( k+1, k+1 ), lda )
 
  548                  CALL dscal( n-k, d11, a( k+1, k ), 1 )
 
  564                  d11 = a( k+1, k+1 ) / d21
 
  565                  d22 = a( k, k ) / d21
 
  566                  t = one / ( d11*d22-one )
 
  571                     wk = d21*( d11*a( j, k )-a( j, k+1 ) )
 
  572                     wkp1 = d21*( d22*a( j, k+1 )-a( j, k ) )
 
  575                        a( i, j ) = a( i, j ) - a( i, k )*wk -
 
  589         IF( kstep.EQ.1 ) 
THEN