initialize_map Subroutine

private subroutine initialize_map(self, num_nodes, elements, algorithm)

Type Bound

type_map_node_to_element

Arguments

Type IntentOptional Attributes Name
class(type_map_node_to_element), intent(inout) :: self
integer(kind=int32), intent(in) :: num_nodes
type(holder_elements), intent(in) :: elements(:)
character(len=*), intent(in), optional :: algorithm

Calls

proc~~initialize_map~~CallsGraph proc~initialize_map type_map_node_to_element%initialize_map proc~destroy_map type_map_node_to_element%destroy_map proc~initialize_map->proc~destroy_map proc~initialize_fast initialize_fast proc~initialize_map->proc~initialize_fast proc~initialize_simple initialize_simple proc~initialize_map->proc~initialize_simple proc~get_connectivity abst_mesh%get_connectivity proc~initialize_fast->proc~get_connectivity proc~get_num_nodes~3 abst_mesh%get_num_nodes proc~initialize_fast->proc~get_num_nodes~3 proc~initialize_simple->proc~get_connectivity proc~initialize_simple->proc~get_num_nodes~3

Source Code

    subroutine initialize_map(self, num_nodes, elements, algorithm)
        class(type_map_node_to_element), intent(inout) :: self
        integer(int32), intent(in) :: num_nodes
        type(holder_elements), intent(in) :: elements(:)
        character(len=*), intent(in), optional :: algorithm

        character(len=10) :: chosen_algorithm

        ! 既存のマップがあれば解放
        call self%destroy()

        ! アルゴリズムの選択 (指定がなければ 'fast' をデフォルトに)
        if (present(algorithm)) then
            chosen_algorithm = trim(adjustl(algorithm))
        else
            chosen_algorithm = 'fast'
        end if

        select case (chosen_algorithm)
        case ('fast')
            call initialize_fast(self, num_nodes, elements)
        case ('simple')
            call initialize_simple(self, num_nodes, elements)
        case default
            ! error handling
        end select
    end subroutine initialize_map