initialize_type_ftdss Subroutine

public subroutine initialize_type_ftdss(self)

Type Bound

type_ftdss

Arguments

Type IntentOptional Attributes Name
class(type_ftdss), intent(inout) :: self

Calls

proc~~initialize_type_ftdss~~CallsGraph proc~initialize_type_ftdss type_ftdss%initialize_type_ftdss configure configure proc~initialize_type_ftdss->configure log_information log_information proc~initialize_type_ftdss->log_information proc~apply type_ic%apply proc~initialize_type_ftdss->proc~apply proc~initialize_type_time type_time%initialize_type_time proc~initialize_type_ftdss->proc~initialize_type_time proc~output_coloring type_output%output_coloring proc~initialize_type_ftdss->proc~output_coloring proc~profile_start_timer type_time%profile_start_timer proc~initialize_type_ftdss->proc~profile_start_timer proc~profile_stop_timer type_time%profile_stop_timer proc~initialize_type_ftdss->proc~profile_stop_timer proc~record_timestamp type_time%record_timestamp proc~initialize_type_ftdss->proc~record_timestamp proc~setup_handler setup_handler proc~initialize_type_ftdss->proc~setup_handler apply apply proc~apply->apply interface~allocate_array allocate_array proc~initialize_type_time->interface~allocate_array proc~get_computation_dimension type_domain%get_computation_dimension proc~output_coloring->proc~get_computation_dimension proc~get_num_elements type_domain%get_num_elements proc~output_coloring->proc~get_num_elements proc~get_num_sides type_domain%get_num_sides proc~output_coloring->proc~get_num_sides interface~c_setup_signal_handler c_setup_signal_handler proc~setup_handler->interface~c_setup_signal_handler proc~allocate_rank1_int16 allocate_rank1_int16 interface~allocate_array->proc~allocate_rank1_int16 proc~allocate_rank1_int32 allocate_rank1_int32 interface~allocate_array->proc~allocate_rank1_int32 proc~allocate_rank1_int64 allocate_rank1_int64 interface~allocate_array->proc~allocate_rank1_int64 proc~allocate_rank1_int8 allocate_rank1_int8 interface~allocate_array->proc~allocate_rank1_int8 proc~allocate_rank1_logical1 allocate_rank1_logical1 interface~allocate_array->proc~allocate_rank1_logical1 proc~allocate_rank1_logical4 allocate_rank1_logical4 interface~allocate_array->proc~allocate_rank1_logical4 proc~allocate_rank1_logical8 allocate_rank1_logical8 interface~allocate_array->proc~allocate_rank1_logical8 proc~allocate_rank1_real128 allocate_rank1_real128 interface~allocate_array->proc~allocate_rank1_real128 proc~allocate_rank1_real32 allocate_rank1_real32 interface~allocate_array->proc~allocate_rank1_real32 proc~allocate_rank1_real64 allocate_rank1_real64 interface~allocate_array->proc~allocate_rank1_real64 proc~allocate_rank2_int16 allocate_rank2_int16 interface~allocate_array->proc~allocate_rank2_int16 proc~allocate_rank2_int32 allocate_rank2_int32 interface~allocate_array->proc~allocate_rank2_int32 proc~allocate_rank2_int64 allocate_rank2_int64 interface~allocate_array->proc~allocate_rank2_int64 proc~allocate_rank2_int8 allocate_rank2_int8 interface~allocate_array->proc~allocate_rank2_int8 proc~allocate_rank2_logical1 allocate_rank2_logical1 interface~allocate_array->proc~allocate_rank2_logical1 proc~allocate_rank2_logical4 allocate_rank2_logical4 interface~allocate_array->proc~allocate_rank2_logical4 proc~allocate_rank2_logical8 allocate_rank2_logical8 interface~allocate_array->proc~allocate_rank2_logical8 proc~allocate_rank2_real128 allocate_rank2_real128 interface~allocate_array->proc~allocate_rank2_real128 proc~allocate_rank2_real32 allocate_rank2_real32 interface~allocate_array->proc~allocate_rank2_real32 proc~allocate_rank2_real64 allocate_rank2_real64 interface~allocate_array->proc~allocate_rank2_real64 proc~error_message error_message proc~allocate_rank1_int16->proc~error_message proc~allocate_rank1_int32->proc~error_message proc~allocate_rank1_int64->proc~error_message proc~allocate_rank1_int8->proc~error_message proc~allocate_rank1_logical1->proc~error_message proc~allocate_rank1_logical4->proc~error_message proc~allocate_rank1_logical8->proc~error_message proc~allocate_rank1_real128->proc~error_message proc~allocate_rank1_real32->proc~error_message proc~allocate_rank1_real64->proc~error_message proc~allocate_rank2_int16->proc~error_message proc~allocate_rank2_int32->proc~error_message proc~allocate_rank2_int64->proc~error_message proc~allocate_rank2_int8->proc~error_message proc~allocate_rank2_logical1->proc~error_message proc~allocate_rank2_logical4->proc~error_message proc~allocate_rank2_logical8->proc~error_message proc~allocate_rank2_real128->proc~error_message proc~allocate_rank2_real32->proc~error_message proc~allocate_rank2_real64->proc~error_message log_error log_error proc~error_message->log_error

Source Code

    subroutine initialize_type_ftdss(self)
        implicit none
        class(type_ftdss), intent(inout) :: self

        type(type_input) :: input

        integer(int32) :: nsize
        integer(int32) :: iN

        integer(int32) :: ierr

        character(len=10), allocatable :: profiler_labels(:)

        ! ★ 計測したいセクション名を定義
        profiler_labels = [character(len=10) :: "IO", "Setup", "Assemble", "Solve", "Total"]
        call self%time%initialize(profiler_sections=profiler_labels)
        call self%time%Record("Start")
        call self%time%Profile_Start("Total")
        call self%time%Profile_Start("IO")

        ! Initialize the FDTSS module
        ! This is where you would set up any necessary parameters or configurations
        call input%initialize()
        call self%time%initialize(input=input)

        if (input%output_settings%standard_output%print_progress) then
            call global_logger%configure(level=information_level, &
                                         time_stamp=.true., &
                                         max_width=0)
        else
            call global_logger%configure(level=warning_level, &
                                         time_stamp=.false., &
                                         max_width=0)
        end if
        call setup_handler()

        !---------------------------------------------------------------------------------------------------------------------------
        !
        !---------------------------------------------------------------------------------------------------------------------------
        nsize = input%geometry%vtk%num_points

        ! Initialize the Structure
        allocate (self%coordinate)
        call self%coordinate%initialize(nsize)
        self%coordinate = input%geometry%vtk%POINTS

        call self%domain%initialize(input, self%coordinate, ierr)
        if (ierr /= 0) then
            print *, "Error initializing domain in Type_Thermal_3Phase_2D_Construct"
            return
        end if

        call self%bc%initialize(input, self%domain)
        call self%ic%initialize(input)

        call global_logger%log_information(message="Boundary and Initial Conditions set up.")

        self%Thermal = Type_Thermal_3Phase_2D(input, self%coordinate, self%domain)

        call self%property%initialize(input, ierr)

        call self%output%initialize(input, self%domain, self%coordinate)

        call self%phi%initialize(nsize, input%basic%solver_settings%bdf_order)
        call self%ic%apply('porosity', self%domain, self%phi)

        call self%output%output_coloring(self%domain)

        call self%time%Profile_Stop("IO")
        call global_logger%log_information(message="FTDSS module initialized successfully.")
    end subroutine initialize_type_ftdss