Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
subroutine s_spline_matrix_banded__mat_add(self,a,amat,b,bmat)!self=a*amat+b*bmatclass(sll_t_spline_matrix_banded),intent(inout)::selfreal(wp),intent(in)::aclass(sll_c_spline_matrix),intent(in)::amatreal(wp),intent(in)::bclass(sll_c_spline_matrix),intent(in)::bmatselect 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(:)=0self%factorized=.FALSE.end select end select end subroutine s_spline_matrix_banded__mat_add