--- 
:name: zgbsv
:md5sum: ae5d9df6f8b2826acd8be07569b5c355
:category: :subroutine
:arguments: 
- n: 
    :type: integer
    :intent: input
- kl: 
    :type: integer
    :intent: input
- ku: 
    :type: integer
    :intent: input
- nrhs: 
    :type: integer
    :intent: input
- ab: 
    :type: doublecomplex
    :intent: input/output
    :dims: 
    - ldab
    - n
- ldab: 
    :type: integer
    :intent: input
- ipiv: 
    :type: integer
    :intent: output
    :dims: 
    - n
- b: 
    :type: doublecomplex
    :intent: input/output
    :dims: 
    - ldb
    - nrhs
- ldb: 
    :type: integer
    :intent: input
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE ZGBSV( N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  ZGBSV computes the solution to a complex system of linear equations\n\
  *  A * X = B, where A is a band matrix of order N with KL subdiagonals\n\
  *  and KU superdiagonals, and X and B are N-by-NRHS matrices.\n\
  *\n\
  *  The LU decomposition with partial pivoting and row interchanges is\n\
  *  used to factor A as A = L * U, where L is a product of permutation\n\
  *  and unit lower triangular matrices with KL subdiagonals, and U is\n\
  *  upper triangular with KL+KU superdiagonals.  The factored form of A\n\
  *  is then used to solve the system of equations A * X = B.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The number of linear equations, i.e., the order of the\n\
  *          matrix A.  N >= 0.\n\
  *\n\
  *  KL      (input) INTEGER\n\
  *          The number of subdiagonals within the band of A.  KL >= 0.\n\
  *\n\
  *  KU      (input) INTEGER\n\
  *          The number of superdiagonals within the band of A.  KU >= 0.\n\
  *\n\
  *  NRHS    (input) INTEGER\n\
  *          The number of right hand sides, i.e., the number of columns\n\
  *          of the matrix B.  NRHS >= 0.\n\
  *\n\
  *  AB      (input/output) COMPLEX*16 array, dimension (LDAB,N)\n\
  *          On entry, the matrix A in band storage, in rows KL+1 to\n\
  *          2*KL+KU+1; rows 1 to KL of the array need not be set.\n\
  *          The j-th column of A is stored in the j-th column of the\n\
  *          array AB as follows:\n\
  *          AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+KL)\n\
  *          On exit, details of the factorization: U is stored as an\n\
  *          upper triangular band matrix with KL+KU superdiagonals in\n\
  *          rows 1 to KL+KU+1, and the multipliers used during the\n\
  *          factorization are stored in rows KL+KU+2 to 2*KL+KU+1.\n\
  *          See below for further details.\n\
  *\n\
  *  LDAB    (input) INTEGER\n\
  *          The leading dimension of the array AB.  LDAB >= 2*KL+KU+1.\n\
  *\n\
  *  IPIV    (output) INTEGER array, dimension (N)\n\
  *          The pivot indices that define the permutation matrix P;\n\
  *          row i of the matrix was interchanged with row IPIV(i).\n\
  *\n\
  *  B       (input/output) COMPLEX*16 array, dimension (LDB,NRHS)\n\
  *          On entry, the N-by-NRHS right hand side matrix B.\n\
  *          On exit, if INFO = 0, the N-by-NRHS solution matrix X.\n\
  *\n\
  *  LDB     (input) INTEGER\n\
  *          The leading dimension of the array B.  LDB >= 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\
  *          > 0:  if INFO = i, U(i,i) is exactly zero.  The factorization\n\
  *                has been completed, but the factor U is exactly\n\
  *                singular, and the solution has not been computed.\n\
  *\n\n\
  *  Further Details\n\
  *  ===============\n\
  *\n\
  *  The band storage scheme is illustrated by the following example, when\n\
  *  M = N = 6, KL = 2, KU = 1:\n\
  *\n\
  *  On entry:                       On exit:\n\
  *\n\
  *      *    *    *    +    +    +       *    *    *   u14  u25  u36\n\
  *      *    *    +    +    +    +       *    *   u13  u24  u35  u46\n\
  *      *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56\n\
  *     a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66\n\
  *     a21  a32  a43  a54  a65   *      m21  m32  m43  m54  m65   *\n\
  *     a31  a42  a53  a64   *    *      m31  m42  m53  m64   *    *\n\
  *\n\
  *  Array elements marked * are not used by the routine; elements marked\n\
  *  + need not be set on entry, but are required by the routine to store\n\
  *  elements of U because of fill-in resulting from the row interchanges.\n\
  *\n\
  *  =====================================================================\n\
  *\n\
  *     .. External Subroutines ..\n      EXTERNAL           XERBLA, ZGBTRF, ZGBTRS\n\
  *     ..\n\
  *     .. Intrinsic Functions ..\n      INTRINSIC          MAX\n\
  *     ..\n"
