96      SUBROUTINE ssvdch( N, S, E, SVD, TOL, INFO )
 
  107      REAL               E( * ), S( * ), SVD( * )
 
  114      parameter( one = 1.0e0 )
 
  116      parameter( zero = 0.0e0 )
 
  119      INTEGER            BPNT, COUNT, NUML, NUMU, TPNT
 
  120      REAL               EPS, LOWER, OVFL, TUPPR, UNFL, UNFLEP, UPPER
 
  139      unfl = slamch( 
'Safe minimum' )
 
  140      ovfl = slamch( 
'Overflow' )
 
  141      eps = slamch( 
'Epsilon' )*slamch( 
'Base' )
 
  147      unflep = ( sqrt( sqrt( unfl ) ) / sqrt( ovfl ) )*svd( 1 ) +
 
  152      eps = tol*max( n / 10, 1 )*eps
 
  163      upper = ( one+eps )*svd( tpnt ) + unflep
 
  164      lower = ( one-eps )*svd( bpnt ) - unflep
 
  165      IF( lower.LE.unflep )
 
  173      tuppr = ( one+eps )*svd( bpnt+1 ) + unflep
 
  180      lower = ( one-eps )*svd( bpnt ) - unflep
 
  181      IF( lower.LE.unflep )
 
  188      CALL ssvdct( n, s, e, lower, numl )
 
  189      CALL ssvdct( n, s, e, upper, numu )
 
  193      IF( count.NE.bpnt-tpnt+1 ) 
THEN