initialize_input_type_output_overall Module Subroutine

module subroutine initialize_input_type_output_overall(self, input, coordinate, domain, dir_output)

Arguments

Type IntentOptional Attributes Name
class(type_output_overall), intent(inout) :: self
type(type_input), intent(in) :: input
type(type_dp_3d), intent(in) :: coordinate
type(type_domain), intent(inout) :: domain
character(len=*), intent(in) :: dir_output

Calls

proc~~initialize_input_type_output_overall~~CallsGraph proc~initialize_input_type_output_overall initialize_input_type_output_overall interface~initialize_output_overall_vtk type_output_overall%initialize_output_overall_vtk proc~initialize_input_type_output_overall->interface~initialize_output_overall_vtk interface~initialize_output_overall_vtu type_output_overall%initialize_output_overall_vtu proc~initialize_input_type_output_overall->interface~initialize_output_overall_vtu to_string to_string proc~initialize_input_type_output_overall->to_string proc~initialize_output_overall_vtk initialize_output_overall_vtk interface~initialize_output_overall_vtk->proc~initialize_output_overall_vtk proc~initialize_output_overall_vtu initialize_output_overall_vtu interface~initialize_output_overall_vtu->proc~initialize_output_overall_vtu interface~allocate_array allocate_array proc~initialize_output_overall_vtk->interface~allocate_array proc~type_dp_3d_initialize type_dp_3d%type_dp_3d_initialize proc~initialize_output_overall_vtk->proc~type_dp_3d_initialize proc~initialize_output_overall_vtu->interface~allocate_array proc~initialize_output_overall_vtu->proc~type_dp_3d_initialize 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~type_dp_3d_initialize->interface~allocate_array 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

Called by

proc~~initialize_input_type_output_overall~~CalledByGraph proc~initialize_input_type_output_overall initialize_input_type_output_overall interface~initialize_input_type_output_overall type_output_overall%initialize_input_type_output_overall interface~initialize_input_type_output_overall->proc~initialize_input_type_output_overall

Source Code

    module subroutine initialize_input_type_output_overall(self, input, coordinate, domain, dir_output)
        implicit none
        class(type_output_overall), intent(inout) :: self
        type(Type_input), intent(in) :: input
        type(type_dp_3d), intent(in) :: coordinate
        type(type_domain), intent(inout) :: domain
        character(*), intent(in) :: dir_output

        real(real64) :: simulation_period_second
        real(real64) :: output_step_second
        integer(int32) :: max_file_counts_digit

        select case (input%output_settings%field_output%file_format)
        case ("vtk")
            call self%initialize_vtk(input, coordinate, domain)
        case ("vtu")
            call self%initialize_vtu(input, coordinate, domain)
        end select

        if (allocated(self%variable_names)) deallocate (self%variable_names)
        allocate (self%variable_names, source=input%output_settings%field_output%variable_names)

        self%dir_output_field = trim(adjustl(dir_output))
        self%file_extension = "."//input%output_settings%field_output%file_format

        select case (input%conditions%time_control%simulation_period%unit)
        case ("second")
            simulation_period_second = (input%conditions%time_control%simulation_period%end &
                                        - input%conditions%time_control%simulation_period%start)
        case ("minute")
            simulation_period_second = (input%conditions%time_control%simulation_period%end &
                                        - input%conditions%time_control%simulation_period%start) * 60.0d0
        case ("hour")
            simulation_period_second = (input%conditions%time_control%simulation_period%end &
                                        - input%conditions%time_control%simulation_period%start) * 3600.0d0
        case ("day")
            simulation_period_second = (input%conditions%time_control%simulation_period%end &
                                        - input%conditions%time_control%simulation_period%start) * 86400.0d0
        case ("year")
            simulation_period_second = (input%conditions%time_control%simulation_period%end &
                                        - input%conditions%time_control%simulation_period%start) * 31536000.0d0
        end select

        select case (input%output_settings%field_output%output_interval_unit)
        case ("second")
            output_step_second = input%output_settings%field_output%output_interval_step
        case ("minute")
            output_step_second = input%output_settings%field_output%output_interval_step * 60.0d0
        case ("hour")
            output_step_second = input%output_settings%field_output%output_interval_step * 3600.0d0
        case ("day")
            output_step_second = input%output_settings%field_output%output_interval_step * 86400.0d0
        case ("year")
            output_step_second = input%output_settings%field_output%output_interval_step * 31536000.0d0
        end select

        max_file_counts_digit = int(log10(simulation_period_second / output_step_second), kind=int32) + 1_int32
        if (max_file_counts_digit < 1) max_file_counts_digit = 1

        self%format_output = "(a,a,i"//to_string(max_file_counts_digit)//"."//to_string(max_file_counts_digit)//",a)"

    end subroutine initialize_input_type_output_overall