s_spline_matrix_banded__mat_add Subroutine

private subroutine s_spline_matrix_banded__mat_add(self, a, amat, b, bmat)

Type Bound

sll_t_spline_matrix_banded

Arguments

Type IntentOptional Attributes Name
class(sll_t_spline_matrix_banded), intent(inout) :: self
real(kind=wp), intent(in) :: a
class(sll_c_spline_matrix), intent(in) :: amat
real(kind=wp), intent(in) :: b
class(sll_c_spline_matrix), intent(in) :: bmat

Calls

proc~~s_spline_matrix_banded__mat_add~~CallsGraph proc~s_spline_matrix_banded__mat_add sll_t_spline_matrix_banded%s_spline_matrix_banded__mat_add sll_assert sll_assert proc~s_spline_matrix_banded__mat_add->sll_assert

Source Code

  subroutine s_spline_matrix_banded__mat_add( self,a,amat,b,bmat) !self=a*amat+b*bmat
    class(sll_t_spline_matrix_banded), intent(inout) :: self
    real(wp)                         , intent(in   ) :: a
    class(sll_c_spline_matrix       ), intent(in   ) :: amat
    real(wp)                         , intent(in   ) :: b
    class(sll_c_spline_matrix       ), intent(in   ) :: bmat

    select type(amat); type is(sll_t_spline_matrix_banded)
    select type(bmat); type is(sll_t_spline_matrix_banded)
    SLL_ASSERT( amat%n  == self%n  )
    SLL_ASSERT( amat%kl == self%kl )
    SLL_ASSERT( amat%ku == self%ku )
    SLL_ASSERT( bmat%n  == self%n  )
    SLL_ASSERT( bmat%kl == self%kl )
    SLL_ASSERT( bmat%ku == self%ku )
    SLL_ASSERT( .not.amat%factorized )
    SLL_ASSERT( .not.bmat%factorized )

    self%q(:,:) = a*amat%q(:,:)+b*bmat%q(:,:)
    self%ipiv(:)=0
    self%factorized=.FALSE.
    end select
    end select
  end subroutine s_spline_matrix_banded__mat_add