250      COMPLEX*16         A( LDA, * ), E( * )
 
  256      DOUBLE PRECISION   ZERO, ONE
 
  257      parameter( zero = 0.0d+0, one = 1.0d+0 )
 
  258      DOUBLE PRECISION   EIGHT, SEVTEN
 
  259      parameter( eight = 8.0d+0, sevten = 17.0d+0 )
 
  260      COMPLEX*16         CONE, CZERO
 
  261      parameter( cone = ( 1.0d+0, 0.0d+0 ),
 
  262     $                   czero = ( 0.0d+0, 0.0d+0 ) )
 
  266      INTEGER            I, IMAX, J, JMAX, ITEMP, K, KK, KP, KSTEP,
 
  268      DOUBLE PRECISION   ABSAKK, ALPHA, COLMAX, ROWMAX, DTEMP, SFMIN
 
  269      COMPLEX*16         D11, D12, D21, D22, T, WK, WKM1, WKP1, Z
 
  274      DOUBLE PRECISION   DLAMCH
 
  275      EXTERNAL           lsame, izamax, dlamch
 
  281      INTRINSIC          abs, max, sqrt, dimag, dble
 
  284      DOUBLE PRECISION   CABS1
 
  287      cabs1( z ) = abs( dble( z ) ) + abs( dimag( z ) )
 
  294      upper = lsame( uplo, 
'U' )
 
  295      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  297      ELSE IF( n.LT.0 ) 
THEN 
  299      ELSE IF( lda.LT.max( 1, n ) ) 
THEN 
  303         CALL xerbla( 
'ZSYTF2_RK', -info )
 
  309      alpha = ( one+sqrt( sevten ) ) / eight
 
  313      sfmin = dlamch( 
'S' )
 
  340         absakk = cabs1( a( k, k ) )
 
  347            imax = izamax( k-1, a( 1, k ), 1 )
 
  348            colmax = cabs1( a( imax, k ) )
 
  353         IF( (max( absakk, colmax ).EQ.zero) ) 
THEN 
  373            IF( .NOT.( absakk.LT.alpha*colmax ) ) 
THEN 
  394                     jmax = imax + izamax( k-imax, a( imax, imax+1 ),
 
  396                     rowmax = cabs1( a( imax, jmax ) )
 
  402                     itemp = izamax( imax-1, a( 1, imax ), 1 )
 
  403                     dtemp = cabs1( a( itemp, imax ) )
 
  404                     IF( dtemp.GT.rowmax ) 
THEN 
  413                  IF( .NOT.( cabs1( a( imax, imax ) ).LT.alpha*rowmax ))
 
  425                  ELSE IF( ( p.EQ.jmax ).OR.( rowmax.LE.colmax ) ) 
THEN 
  444               IF( .NOT. done ) 
GOTO 12
 
  452            IF( ( kstep.EQ.2 ) .AND. ( p.NE.k ) ) 
THEN 
  458     $            
CALL zswap( p-1, a( 1, k ), 1, a( 1, p ), 1 )
 
  460     $            
CALL zswap( k-p-1, a( p+1, k ), 1, a( p, p+1 ),
 
  463               a( k, k ) = a( p, p )
 
  470     $            
CALL zswap( n-k, a( k, k+1 ), lda, a( p, k+1 ),
 
  484     $            
CALL zswap( kp-1, a( 1, kk ), 1, a( 1, kp ), 1 )
 
  485               IF( ( kk.GT.1 ) .AND. ( kp.LT.(kk-1) ) )
 
  486     $            
CALL zswap( kk-kp-1, a( kp+1, kk ), 1, a( kp,
 
  490               a( kk, kk ) = a( kp, kp )
 
  492               IF( kstep.EQ.2 ) 
THEN 
  494                  a( k-1, k ) = a( kp, k )
 
  502     $            
CALL zswap( n-k, a( kk, k+1 ), lda, a( kp, k+1 ),
 
  509            IF( kstep.EQ.1 ) 
THEN 
  522                  IF( cabs1( a( k, k ) ).GE.sfmin ) 
THEN 
  528                     d11 = cone / a( k, k )
 
  529                     CALL zsyr( uplo, k-1, -d11, a( 1, k ), 1, a,
 
  534                     CALL zscal( k-1, d11, a( 1, k ), 1 )
 
  541                        a( ii, k ) = a( ii, k ) / d11
 
  549                     CALL zsyr( uplo, k-1, -d11, a( 1, k ), 1, a,
 
  578                  d22 = a( k-1, k-1 ) / d12
 
  579                  d11 = a( k, k ) / d12
 
  580                  t = cone / ( d11*d22-cone )
 
  582                  DO 30 j = k - 2, 1, -1
 
  584                     wkm1 = t*( d11*a( j, k-1 )-a( j, k ) )
 
  585                     wk = t*( d22*a( j, k )-a( j, k-1 ) )
 
  588                        a( i, j ) = a( i, j ) - (a( i, k ) / d12 )*wk -
 
  589     $                              ( a( i, k-1 ) / d12 )*wkm1
 
  595                     a( j, k-1 ) = wkm1 / d12
 
  616         IF( kstep.EQ.1 ) 
THEN 
  654         absakk = cabs1( a( k, k ) )
 
  661            imax = k + izamax( n-k, a( k+1, k ), 1 )
 
  662            colmax = cabs1( a( imax, k ) )
 
  667         IF( ( max( absakk, colmax ).EQ.zero ) ) 
THEN 
  687            IF( .NOT.( absakk.LT.alpha*colmax ) ) 
THEN 
  708                     jmax = k - 1 + izamax( imax-k, a( imax, k ),
 
  710                     rowmax = cabs1( a( imax, jmax ) )
 
  716                     itemp = imax + izamax( n-imax, a( imax+1,
 
  719                     dtemp = cabs1( a( itemp, imax ) )
 
  720                     IF( dtemp.GT.rowmax ) 
THEN 
  729                  IF( .NOT.( cabs1( a( imax, imax ) ).LT.alpha*rowmax ))
 
  741                  ELSE IF( ( p.EQ.jmax ).OR.( rowmax.LE.colmax ) ) 
THEN 
  760               IF( .NOT. done ) 
GOTO 42
 
  768            IF( ( kstep.EQ.2 ) .AND. ( p.NE.k ) ) 
THEN 
  774     $            
CALL zswap( n-p, a( p+1, k ), 1, a( p+1, p ), 1 )
 
  776     $            
CALL zswap( p-k-1, a( k+1, k ), 1, a( p, k+1 ),
 
  779               a( k, k ) = a( p, p )
 
  786     $            
CALL zswap( k-1, a( k, 1 ), lda, a( p, 1 ), lda )
 
  799     $            
CALL zswap( n-kp, a( kp+1, kk ), 1, a( kp+1, kp ),
 
  801               IF( ( kk.LT.n ) .AND. ( kp.GT.(kk+1) ) )
 
  802     $            
CALL zswap( kp-kk-1, a( kk+1, kk ), 1, a( kp,
 
  806               a( kk, kk ) = a( kp, kp )
 
  808               IF( kstep.EQ.2 ) 
THEN 
  810                  a( k+1, k ) = a( kp, k )
 
  818     $            
CALL zswap( k-1, a( kk, 1 ), lda, a( kp, 1 ), lda )
 
  824            IF( kstep.EQ.1 ) 
THEN 
  837                  IF( cabs1( a( k, k ) ).GE.sfmin ) 
THEN 
  843                     d11 = cone / a( k, k )
 
  844                     CALL zsyr( uplo, n-k, -d11, a( k+1, k ), 1,
 
  845     $                          a( k+1, k+1 ), lda )
 
  849                     CALL zscal( n-k, d11, a( k+1, k ), 1 )
 
  856                        a( ii, k ) = a( ii, k ) / d11
 
  864                     CALL zsyr( uplo, n-k, -d11, a( k+1, k ), 1,
 
  865     $                          a( k+1, k+1 ), lda )
 
  894                  d11 = a( k+1, k+1 ) / d21
 
  895                  d22 = a( k, k ) / d21
 
  896                  t = cone / ( d11*d22-cone )
 
  902                     wk = t*( d11*a( j, k )-a( j, k+1 ) )
 
  903                     wkp1 = t*( d22*a( j, k+1 )-a( j, k ) )
 
  908                        a( i, j ) = a( i, j ) - ( a( i, k ) / d21 )*wk -
 
  909     $                              ( a( i, k+1 ) / d21 )*wkp1
 
  915                     a( j, k+1 ) = wkp1 / d21
 
  936         IF( kstep.EQ.1 ) 
THEN