--- 
:name: slaqtr
:md5sum: 01fae868ef726aad2b53e42607504b14
:category: :subroutine
:arguments: 
- ltran: 
    :type: logical
    :intent: input
- lreal: 
    :type: logical
    :intent: input
- n: 
    :type: integer
    :intent: input
- t: 
    :type: real
    :intent: input
    :dims: 
    - ldt
    - n
- ldt: 
    :type: integer
    :intent: input
- b: 
    :type: real
    :intent: input
    :dims: 
    - n
- w: 
    :type: real
    :intent: input
- scale: 
    :type: real
    :intent: output
- x: 
    :type: real
    :intent: input/output
    :dims: 
    - 2*n
- work: 
    :type: real
    :intent: workspace
    :dims: 
    - n
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE SLAQTR( LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  SLAQTR solves the real quasi-triangular system\n\
  *\n\
  *               op(T)*p = scale*c,               if LREAL = .TRUE.\n\
  *\n\
  *  or the complex quasi-triangular systems\n\
  *\n\
  *             op(T + iB)*(p+iq) = scale*(c+id),  if LREAL = .FALSE.\n\
  *\n\
  *  in real arithmetic, where T is upper quasi-triangular.\n\
  *  If LREAL = .FALSE., then the first diagonal block of T must be\n\
  *  1 by 1, B is the specially structured matrix\n\
  *\n\
  *                 B = [ b(1) b(2) ... b(n) ]\n\
  *                     [       w            ]\n\
  *                     [           w        ]\n\
  *                     [              .     ]\n\
  *                     [                 w  ]\n\
  *\n\
  *  op(A) = A or A', A' denotes the conjugate transpose of\n\
  *  matrix A.\n\
  *\n\
  *  On input, X = [ c ].  On output, X = [ p ].\n\
  *                [ d ]                  [ q ]\n\
  *\n\
  *  This subroutine is designed for the condition number estimation\n\
  *  in routine STRSNA.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  LTRAN   (input) LOGICAL\n\
  *          On entry, LTRAN specifies the option of conjugate transpose:\n\
  *             = .FALSE.,    op(T+i*B) = T+i*B,\n\
  *             = .TRUE.,     op(T+i*B) = (T+i*B)'.\n\
  *\n\
  *  LREAL   (input) LOGICAL\n\
  *          On entry, LREAL specifies the input matrix structure:\n\
  *             = .FALSE.,    the input is complex\n\
  *             = .TRUE.,     the input is real\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          On entry, N specifies the order of T+i*B. N >= 0.\n\
  *\n\
  *  T       (input) REAL array, dimension (LDT,N)\n\
  *          On entry, T contains a matrix in Schur canonical form.\n\
  *          If LREAL = .FALSE., then the first diagonal block of T must\n\
  *          be 1 by 1.\n\
  *\n\
  *  LDT     (input) INTEGER\n\
  *          The leading dimension of the matrix T. LDT >= max(1,N).\n\
  *\n\
  *  B       (input) REAL array, dimension (N)\n\
  *          On entry, B contains the elements to form the matrix\n\
  *          B as described above.\n\
  *          If LREAL = .TRUE., B is not referenced.\n\
  *\n\
  *  W       (input) REAL\n\
  *          On entry, W is the diagonal element of the matrix B.\n\
  *          If LREAL = .TRUE., W is not referenced.\n\
  *\n\
  *  SCALE   (output) REAL\n\
  *          On exit, SCALE is the scale factor.\n\
  *\n\
  *  X       (input/output) REAL array, dimension (2*N)\n\
  *          On entry, X contains the right hand side of the system.\n\
  *          On exit, X is overwritten by the solution.\n\
  *\n\
  *  WORK    (workspace) REAL array, dimension (N)\n\
  *\n\
  *  INFO    (output) INTEGER\n\
  *          On exit, INFO is set to\n\
  *             0: successful exit.\n\
  *               1: the some diagonal 1 by 1 block has been perturbed by\n\
  *                  a small number SMIN to keep nonsingularity.\n\
  *               2: the some diagonal 2 by 2 block has been perturbed by\n\
  *                  a small number in SLALN2 to keep nonsingularity.\n\
  *          NOTE: In the interests of speed, this routine does not\n\
  *                check the inputs for errors.\n\
  *\n\n\
  * =====================================================================\n\
  *\n"
