86      SUBROUTINE ssvdct( N, S, E, SHIFT, NUM )
 
  104      parameter( one = 1.0e0 )
 
  106      parameter( zero = 0.0e0 )
 
  110      REAL               M1, M2, MX, OVFL, SOV, SSHIFT, SSUN, SUN, TMP,
 
  118      INTRINSIC          abs, max, sqrt
 
  124      unfl = 2*slamch( 
'Safe minimum' )
 
  131         mx = max( mx, abs( s( i+1 ) ), abs( e( i ) ) )
 
  134      IF( mx.EQ.zero ) 
THEN 
  135         IF( shift.LT.zero ) 
THEN 
  161      sshift = ( shift*m1 )*m2
 
  172      tmp = ( s( 1 )*m1 )*m2
 
  173      u = -tmp*( tmp / u ) - sshift
 
  184         tmp = ( e( i )*m1 )*m2
 
  185         u = -tmp*( tmp / u ) - sshift
 
  195         tmp = ( s( i+1 )*m1 )*m2
 
  196         u = -tmp*( tmp / u ) - sshift