--- 
:name: zggbak
:md5sum: 6989e9096344ffe7d282754d45eeda01
:category: :subroutine
:arguments: 
- job: 
    :type: char
    :intent: input
- side: 
    :type: char
    :intent: input
- n: 
    :type: integer
    :intent: input
- ilo: 
    :type: integer
    :intent: input
- ihi: 
    :type: integer
    :intent: input
- lscale: 
    :type: doublereal
    :intent: input
    :dims: 
    - n
- rscale: 
    :type: doublereal
    :intent: input
    :dims: 
    - n
- m: 
    :type: integer
    :intent: input
- v: 
    :type: doublecomplex
    :intent: input/output
    :dims: 
    - ldv
    - m
- ldv: 
    :type: integer
    :intent: input
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE ZGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V, LDV, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  ZGGBAK forms the right or left eigenvectors of a complex generalized\n\
  *  eigenvalue problem A*x = lambda*B*x, by backward transformation on\n\
  *  the computed eigenvectors of the balanced pair of matrices output by\n\
  *  ZGGBAL.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  JOB     (input) CHARACTER*1\n\
  *          Specifies the type of backward transformation required:\n\
  *          = 'N':  do nothing, return immediately;\n\
  *          = 'P':  do backward transformation for permutation only;\n\
  *          = 'S':  do backward transformation for scaling only;\n\
  *          = 'B':  do backward transformations for both permutation and\n\
  *                  scaling.\n\
  *          JOB must be the same as the argument JOB supplied to ZGGBAL.\n\
  *\n\
  *  SIDE    (input) CHARACTER*1\n\
  *          = 'R':  V contains right eigenvectors;\n\
  *          = 'L':  V contains left eigenvectors.\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The number of rows of the matrix V.  N >= 0.\n\
  *\n\
  *  ILO     (input) INTEGER\n\
  *  IHI     (input) INTEGER\n\
  *          The integers ILO and IHI determined by ZGGBAL.\n\
  *          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.\n\
  *\n\
  *  LSCALE  (input) DOUBLE PRECISION array, dimension (N)\n\
  *          Details of the permutations and/or scaling factors applied\n\
  *          to the left side of A and B, as returned by ZGGBAL.\n\
  *\n\
  *  RSCALE  (input) DOUBLE PRECISION array, dimension (N)\n\
  *          Details of the permutations and/or scaling factors applied\n\
  *          to the right side of A and B, as returned by ZGGBAL.\n\
  *\n\
  *  M       (input) INTEGER\n\
  *          The number of columns of the matrix V.  M >= 0.\n\
  *\n\
  *  V       (input/output) COMPLEX*16 array, dimension (LDV,M)\n\
  *          On entry, the matrix of right or left eigenvectors to be\n\
  *          transformed, as returned by ZTGEVC.\n\
  *          On exit, V is overwritten by the transformed eigenvectors.\n\
  *\n\
  *  LDV     (input) INTEGER\n\
  *          The leading dimension of the matrix V. LDV >= max(1,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\
  *  See R.C. Ward, Balancing the generalized eigenvalue problem,\n\
  *                 SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.\n\
  *\n\
  *  =====================================================================\n\
  *\n\
  *     .. Local Scalars ..\n      LOGICAL            LEFTV, RIGHTV\n      INTEGER            I, K\n\
  *     ..\n\
  *     .. External Functions ..\n      LOGICAL            LSAME\n      EXTERNAL           LSAME\n\
  *     ..\n\
  *     .. External Subroutines ..\n      EXTERNAL           XERBLA, ZDSCAL, ZSWAP\n\
  *     ..\n\
  *     .. Intrinsic Functions ..\n      INTRINSIC          MAX\n\
  *     ..\n"
