band_lapack_solve Subroutine

private subroutine band_lapack_solve(ab, kl, ku, n, b, info)

Banded linear solver using LAPACK dgbsv.

AB must be in LAPACK band storage: AB(kl+ku+1+i-j, j) = A(i,j), leading dimension ldab = 2*kl + ku + 1 (the extra kl rows are used as pivoting workspace by LAPACK). On exit b contains the solution x = A^{-1} b.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: ab(2*kl+ku+1,n)
integer, intent(in) :: kl

Lower bandwidth

integer, intent(in) :: ku

Lower bandwidth Upper bandwidth

integer, intent(in) :: n

Lower bandwidth Upper bandwidth Matrix order (number of unknowns)

real(kind=wp), intent(inout) :: b(n)
integer, intent(out) :: info

LAPACK return code (0 = success)