s_spline_matrix_banded__solve_inplace Subroutine

private subroutine s_spline_matrix_banded__solve_inplace(self, nrhs, bx)

Type Bound

sll_t_spline_matrix_banded

Arguments

Type IntentOptional Attributes Name
class(sll_t_spline_matrix_banded), intent(in) :: self
integer, intent(in) :: nrhs
real(kind=wp), intent(inout), dimension(*) :: bx

Calls

proc~~s_spline_matrix_banded__solve_inplace~~CallsGraph proc~s_spline_matrix_banded__solve_inplace sll_t_spline_matrix_banded%s_spline_matrix_banded__solve_inplace dgbtrs dgbtrs proc~s_spline_matrix_banded__solve_inplace->dgbtrs sll_assert sll_assert proc~s_spline_matrix_banded__solve_inplace->sll_assert sll_error sll_error proc~s_spline_matrix_banded__solve_inplace->sll_error

Called by

proc~~s_spline_matrix_banded__solve_inplace~~CalledByGraph proc~s_spline_matrix_banded__solve_inplace sll_t_spline_matrix_banded%s_spline_matrix_banded__solve_inplace proc~applyprecond ApplyPrecond proc~applyprecond->proc~s_spline_matrix_banded__solve_inplace proc~evalforce EvalForce proc~evalforce->proc~applyprecond proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~evalforce proc~minimizemhd3d_descent MinimizeMHD3D_descent proc~minimizemhd3d_descent->proc~evalforce program~gvec_post GVEC_POST program~gvec_post->proc~evalforce proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->proc~minimizemhd3d_descent

Source Code

  subroutine s_spline_matrix_banded__solve_inplace( self, nrhs, bx )
    class(sll_t_spline_matrix_banded), intent(in   ) :: self
    integer                          , intent(in   ) :: nrhs
    real(wp),dimension(*)            , intent(inout) :: bx

    integer :: info

    character(len=*), parameter :: &
         this_sub_name = "sll_t_spline_matrix_banded % solve_inplace"
    character(len=256) :: err_msg

!    SLL_ASSERT( size(bx)  == self%n*nrhs )
    SLL_ASSERT( self%factorized   )

    call dgbtrs( 'N', self%n, self%kl, self%ku, nrhs, self%q, 2*self%kl+self%ku+1, &
                 self%ipiv, bx, self%n, info )

    if ( info < 0 ) then
      write( err_msg, '(i0,a)' ) abs(info), "-th argument had an illegal value"
      SLL_ERROR(this_sub_name,err_msg)
    end if

  end subroutine s_spline_matrix_banded__solve_inplace