apply_Dense_Dirichlet_base Subroutine

subroutine apply_Dense_Dirichlet_base(A, b, is_uniform, edge, value_dirichlet)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), optional :: A(:,:)
real(kind=real64), intent(inout) :: b(:)
logical, intent(in) :: is_uniform
integer(kind=int32), intent(in) :: edge(2)
real(kind=real64), intent(in) :: value_dirichlet

Source Code

    subroutine apply_Dense_Dirichlet_base(A, b, is_uniform, edge, value_dirichlet)
        implicit none
        real(real64), intent(inout), optional :: A(:, :)
        real(real64), intent(inout) :: b(:)
        logical, intent(in) :: is_uniform
        integer(int32), intent(in) :: edge(2)
        real(real64), intent(in) :: value_dirichlet

        integer(int32) :: i, ind, ps, pe
        integer(int32) :: p1, p2

        ! if (is_uniform) then
        !     ! ! --- ここからデバッグ用コード ---
        !     ! print *, 'Debug: edge = ', edge(1), edge(2)
        !     ! print *, 'Debug: size(perm) = ', size(perm)
        !     ! if (present(A)) then
        !     !     print *, 'Debug: shape(A) = ', shape(A)
        !     ! end if
        !     ! print *, 'Debug: size(b) = ', size(b)
        !     ! ! --- ここまでデバッグ用コード ---
        !     p1 = edge(1)
        !     p2 = edge(2)

        !     if (present(A)) then
        !         A(p1, :) = 0.0d0
        !         A(p1, p1) = 1.0d0

        !         A(p2, :) = 0.0d0
        !         A(p2, p2) = 1.0d0
        !     end if

        !     b(p1) = value_dirichlet
        !     b(p2) = value_dirichlet
        ! end if

    end subroutine apply_Dense_Dirichlet_base