--- 
:name: slagts
:md5sum: 6a4561511123cd1f15a6d9c4867535a3
:category: :subroutine
:arguments: 
- job: 
    :type: integer
    :intent: input
- n: 
    :type: integer
    :intent: input
- a: 
    :type: real
    :intent: input
    :dims: 
    - n
- b: 
    :type: real
    :intent: input
    :dims: 
    - n-1
- c: 
    :type: real
    :intent: input
    :dims: 
    - n-1
- d: 
    :type: real
    :intent: input
    :dims: 
    - n-2
- in: 
    :type: integer
    :intent: input
    :dims: 
    - n
- y: 
    :type: real
    :intent: input/output
    :dims: 
    - n
- tol: 
    :type: real
    :intent: input/output
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE SLAGTS( JOB, N, A, B, C, D, IN, Y, TOL, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  SLAGTS may be used to solve one of the systems of equations\n\
  *\n\
  *     (T - lambda*I)*x = y   or   (T - lambda*I)'*x = y,\n\
  *\n\
  *  where T is an n by n tridiagonal matrix, for x, following the\n\
  *  factorization of (T - lambda*I) as\n\
  *\n\
  *     (T - lambda*I) = P*L*U ,\n\
  *\n\
  *  by routine SLAGTF. The choice of equation to be solved is\n\
  *  controlled by the argument JOB, and in each case there is an option\n\
  *  to perturb zero or very small diagonal elements of U, this option\n\
  *  being intended for use in applications such as inverse iteration.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  JOB     (input) INTEGER\n\
  *          Specifies the job to be performed by SLAGTS as follows:\n\
  *          =  1: The equations  (T - lambda*I)x = y  are to be solved,\n\
  *                but diagonal elements of U are not to be perturbed.\n\
  *          = -1: The equations  (T - lambda*I)x = y  are to be solved\n\
  *                and, if overflow would otherwise occur, the diagonal\n\
  *                elements of U are to be perturbed. See argument TOL\n\
  *                below.\n\
  *          =  2: The equations  (T - lambda*I)'x = y  are to be solved,\n\
  *                but diagonal elements of U are not to be perturbed.\n\
  *          = -2: The equations  (T - lambda*I)'x = y  are to be solved\n\
  *                and, if overflow would otherwise occur, the diagonal\n\
  *                elements of U are to be perturbed. See argument TOL\n\
  *                below.\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The order of the matrix T.\n\
  *\n\
  *  A       (input) REAL array, dimension (N)\n\
  *          On entry, A must contain the diagonal elements of U as\n\
  *          returned from SLAGTF.\n\
  *\n\
  *  B       (input) REAL array, dimension (N-1)\n\
  *          On entry, B must contain the first super-diagonal elements of\n\
  *          U as returned from SLAGTF.\n\
  *\n\
  *  C       (input) REAL array, dimension (N-1)\n\
  *          On entry, C must contain the sub-diagonal elements of L as\n\
  *          returned from SLAGTF.\n\
  *\n\
  *  D       (input) REAL array, dimension (N-2)\n\
  *          On entry, D must contain the second super-diagonal elements\n\
  *          of U as returned from SLAGTF.\n\
  *\n\
  *  IN      (input) INTEGER array, dimension (N)\n\
  *          On entry, IN must contain details of the matrix P as returned\n\
  *          from SLAGTF.\n\
  *\n\
  *  Y       (input/output) REAL array, dimension (N)\n\
  *          On entry, the right hand side vector y.\n\
  *          On exit, Y is overwritten by the solution vector x.\n\
  *\n\
  *  TOL     (input/output) REAL\n\
  *          On entry, with  JOB .lt. 0, TOL should be the minimum\n\
  *          perturbation to be made to very small diagonal elements of U.\n\
  *          TOL should normally be chosen as about eps*norm(U), where eps\n\
  *          is the relative machine precision, but if TOL is supplied as\n\
  *          non-positive, then it is reset to eps*max( abs( u(i,j) ) ).\n\
  *          If  JOB .gt. 0  then TOL is not referenced.\n\
  *\n\
  *          On exit, TOL is changed as described above, only if TOL is\n\
  *          non-positive on entry. Otherwise TOL is unchanged.\n\
  *\n\
  *  INFO    (output) INTEGER\n\
  *          = 0   : successful exit\n\
  *          .lt. 0: if INFO = -i, the i-th argument had an illegal value\n\
  *          .gt. 0: overflow would occur when computing the INFO(th)\n\
  *                  element of the solution vector x. This can only occur\n\
  *                  when JOB is supplied as positive and either means\n\
  *                  that a diagonal element of U is very small, or that\n\
  *                  the elements of the right-hand side vector y are very\n\
  *                  large.\n\
  *\n\n\
  *  =====================================================================\n\
  *\n"
