160      SUBROUTINE slagts( JOB, N, A, B, C, D, IN, Y, TOL, INFO )
 
  172      REAL               A( * ), B( * ), C( * ), D( * ), Y( * )
 
  179      parameter( one = 1.0e+0, zero = 0.0e+0 )
 
  183      REAL               ABSAK, AK, BIGNUM, EPS, PERT, SFMIN, TEMP
 
  186      INTRINSIC          abs, max, sign
 
  198      IF( ( abs( job ).GT.2 ) .OR. ( job.EQ.0 ) ) 
THEN 
  200      ELSE IF( n.LT.0 ) 
THEN 
  204         CALL xerbla( 
'SLAGTS', -info )
 
  211      eps = slamch( 
'Epsilon' )
 
  212      sfmin = slamch( 
'Safe minimum' )
 
  216         IF( tol.LE.zero ) 
THEN 
  219     $         tol = max( tol, abs( a( 2 ) ), abs( b( 1 ) ) )
 
  221               tol = max( tol, abs( a( k ) ), abs( b( k-1 ) ),
 
  230      IF( abs( job ).EQ.1 ) 
THEN 
  232            IF( in( k-1 ).EQ.0 ) 
THEN 
  233               y( k ) = y( k ) - c( k-1 )*y( k-1 )
 
  237               y( k ) = temp - c( k-1 )*y( k )
 
  243                  temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
 
  244               ELSE IF( k.EQ.n-1 ) 
THEN 
  245                  temp = y( k ) - b( k )*y( k+1 )
 
  251               IF( absak.LT.one ) 
THEN 
  252                  IF( absak.LT.sfmin ) 
THEN 
  253                     IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
 
  261                  ELSE IF( abs( temp ).GT.absak*bignum ) 
THEN 
  271                  temp = y( k ) - b( k )*y( k+1 ) - d( k )*y( k+2 )
 
  272               ELSE IF( k.EQ.n-1 ) 
THEN 
  273                  temp = y( k ) - b( k )*y( k+1 )
 
  278               pert = sign( tol, ak )
 
  281               IF( absak.LT.one ) 
THEN 
  282                  IF( absak.LT.sfmin ) 
THEN 
  283                     IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
 
  292                  ELSE IF( abs( temp ).GT.absak*bignum ) 
THEN 
  308                  temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
 
  309               ELSE IF( k.EQ.2 ) 
THEN 
  310                  temp = y( k ) - b( k-1 )*y( k-1 )
 
  316               IF( absak.LT.one ) 
THEN 
  317                  IF( absak.LT.sfmin ) 
THEN 
  318                     IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
 
  326                  ELSE IF( abs( temp ).GT.absak*bignum ) 
THEN 
  336                  temp = y( k ) - b( k-1 )*y( k-1 ) - d( k-2 )*y( k-2 )
 
  337               ELSE IF( k.EQ.2 ) 
THEN 
  338                  temp = y( k ) - b( k-1 )*y( k-1 )
 
  343               pert = sign( tol, ak )
 
  346               IF( absak.LT.one ) 
THEN 
  347                  IF( absak.LT.sfmin ) 
THEN 
  348                     IF( absak.EQ.zero .OR. abs( temp )*sfmin.GT.absak )
 
  357                  ELSE IF( abs( temp ).GT.absak*bignum ) 
THEN 
  368            IF( in( k-1 ).EQ.0 ) 
THEN 
  369               y( k-1 ) = y( k-1 ) - c( k-1 )*y( k )
 
  373               y( k ) = temp - c( k-1 )*y( k )
 
 
subroutine slagts(job, n, a, b, c, d, in, y, tol, info)
SLAGTS solves the system of equations (T-λI)x = y or (T-λI)^Tx = y, where T is a general tridiagonal ...