--- 
:name: slaeda
:md5sum: 24a9751e7a3bb6e15256dfe9218457ca
:category: :subroutine
:arguments: 
- n: 
    :type: integer
    :intent: input
- tlvls: 
    :type: integer
    :intent: input
- curlvl: 
    :type: integer
    :intent: input
- curpbm: 
    :type: integer
    :intent: input
- prmptr: 
    :type: integer
    :intent: input
    :dims: 
    - n*LG(n)
- perm: 
    :type: integer
    :intent: input
    :dims: 
    - n*LG(n)
- givptr: 
    :type: integer
    :intent: input
    :dims: 
    - n*LG(n)
- givcol: 
    :type: integer
    :intent: input
    :dims: 
    - "2"
    - n*LG(n)
- givnum: 
    :type: real
    :intent: input
    :dims: 
    - "2"
    - n*LG(n)
- q: 
    :type: real
    :intent: input
    :dims: 
    - pow(n,2)
- qptr: 
    :type: integer
    :intent: input
    :dims: 
    - ldqptr
- z: 
    :type: real
    :intent: output
    :dims: 
    - n
- ztemp: 
    :type: real
    :intent: workspace
    :dims: 
    - n
- info: 
    :type: integer
    :intent: output
:substitutions: 
  n: ldqptr-2
:fortran_help: "      SUBROUTINE SLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  SLAEDA computes the Z vector corresponding to the merge step in the\n\
  *  CURLVLth step of the merge process with TLVLS steps for the CURPBMth\n\
  *  problem.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  N      (input) INTEGER\n\
  *         The dimension of the symmetric tridiagonal matrix.  N >= 0.\n\
  *\n\
  *  TLVLS  (input) INTEGER\n\
  *         The total number of merging levels in the overall divide and\n\
  *         conquer tree.\n\
  *\n\
  *  CURLVL (input) INTEGER\n\
  *         The current level in the overall merge routine,\n\
  *         0 <= curlvl <= tlvls.\n\
  *\n\
  *  CURPBM (input) INTEGER\n\
  *         The current problem in the current level in the overall\n\
  *         merge routine (counting from upper left to lower right).\n\
  *\n\
  *  PRMPTR (input) INTEGER array, dimension (N lg N)\n\
  *         Contains a list of pointers which indicate where in PERM a\n\
  *         level's permutation is stored.  PRMPTR(i+1) - PRMPTR(i)\n\
  *         indicates the size of the permutation and incidentally the\n\
  *         size of the full, non-deflated problem.\n\
  *\n\
  *  PERM   (input) INTEGER array, dimension (N lg N)\n\
  *         Contains the permutations (from deflation and sorting) to be\n\
  *         applied to each eigenblock.\n\
  *\n\
  *  GIVPTR (input) INTEGER array, dimension (N lg N)\n\
  *         Contains a list of pointers which indicate where in GIVCOL a\n\
  *         level's Givens rotations are stored.  GIVPTR(i+1) - GIVPTR(i)\n\
  *         indicates the number of Givens rotations.\n\
  *\n\
  *  GIVCOL (input) INTEGER array, dimension (2, N lg N)\n\
  *         Each pair of numbers indicates a pair of columns to take place\n\
  *         in a Givens rotation.\n\
  *\n\
  *  GIVNUM (input) REAL array, dimension (2, N lg N)\n\
  *         Each number indicates the S value to be used in the\n\
  *         corresponding Givens rotation.\n\
  *\n\
  *  Q      (input) REAL array, dimension (N**2)\n\
  *         Contains the square eigenblocks from previous levels, the\n\
  *         starting positions for blocks are given by QPTR.\n\
  *\n\
  *  QPTR   (input) INTEGER array, dimension (N+2)\n\
  *         Contains a list of pointers which indicate where in Q an\n\
  *         eigenblock is stored.  SQRT( QPTR(i+1) - QPTR(i) ) indicates\n\
  *         the size of the block.\n\
  *\n\
  *  Z      (output) REAL array, dimension (N)\n\
  *         On output this vector contains the updating vector (the last\n\
  *         row of the first sub-eigenvector matrix and the first row of\n\
  *         the second sub-eigenvector matrix).\n\
  *\n\
  *  ZTEMP  (workspace) REAL array, dimension (N)\n\
  *\n\
  *  INFO   (output) INTEGER\n\
  *          = 0:  successful exit.\n\
  *          < 0:  if INFO = -i, the i-th argument had an illegal value.\n\
  *\n\n\
  *  Further Details\n\
  *  ===============\n\
  *\n\
  *  Based on contributions by\n\
  *     Jeff Rutter, Computer Science Division, University of California\n\
  *     at Berkeley, USA\n\
  *\n\
  *  =====================================================================\n\
  *\n"
