type_coo_add Subroutine

private subroutine type_coo_add(alpha, A, B, C)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: alpha
type(type_coo), intent(in) :: A
type(type_coo), intent(in) :: B
type(type_coo), intent(inout) :: C

Called by

proc~~type_coo_add~~CalledByGraph proc~type_coo_add type_coo_add interface~add add interface~add->proc~type_coo_add

Source Code

    subroutine type_coo_add(alpha, A, B, C)
        ! C := alpha*A + B
        !
        ! [ATTENTION] Assumes A, B, and C have the exact same sparsity pattern.
        !
        implicit none
        real(real64), intent(in) :: alpha
        type(type_coo), intent(in) :: A
        type(type_coo), intent(in) :: B
        type(type_coo), intent(inout) :: C

        integer(int32) :: i

        !$omp parallel do
        do i = 1, A%nnz
            C%val(i) = alpha * A%val(i) + B%val(i)
        end do
        !$omp end parallel do
    end subroutine type_coo_add