read_parameters_solver_settings Subroutine

subroutine read_parameters_solver_settings(self, json)

Arguments

Type IntentOptional Attributes Name
class(type_input) :: self
type(json_file), intent(inout) :: json

Calls

proc~~read_parameters_solver_settings~~CallsGraph proc~read_parameters_solver_settings read_parameters_solver_settings destroy destroy proc~read_parameters_solver_settings->destroy get get proc~read_parameters_solver_settings->get interface~value_in_range value_in_range proc~read_parameters_solver_settings->interface~value_in_range log_warning log_warning proc~read_parameters_solver_settings->log_warning print_error_message print_error_message proc~read_parameters_solver_settings->print_error_message proc~error_message error_message proc~read_parameters_solver_settings->proc~error_message proc~join join proc~read_parameters_solver_settings->proc~join proc~read_parameters_solver_parallel_settings read_parameters_solver_parallel_settings proc~read_parameters_solver_settings->proc~read_parameters_solver_parallel_settings proc~read_parameters_solver_settings_linear read_parameters_solver_settings_linear proc~read_parameters_solver_settings->proc~read_parameters_solver_settings_linear proc~read_parameters_solver_settings_nonlinear read_parameters_solver_settings_nonlinear proc~read_parameters_solver_settings->proc~read_parameters_solver_settings_nonlinear proc~value_in_range_int16 value_in_range_int16 interface~value_in_range->proc~value_in_range_int16 proc~value_in_range_int32 value_in_range_int32 interface~value_in_range->proc~value_in_range_int32 proc~value_in_range_int64 value_in_range_int64 interface~value_in_range->proc~value_in_range_int64 proc~value_in_range_int8 value_in_range_int8 interface~value_in_range->proc~value_in_range_int8 proc~value_in_range_real128 value_in_range_real128 interface~value_in_range->proc~value_in_range_real128 proc~value_in_range_real32 value_in_range_real32 interface~value_in_range->proc~value_in_range_real32 proc~value_in_range_real64 value_in_range_real64 interface~value_in_range->proc~value_in_range_real64 log_error log_error proc~error_message->log_error proc~read_parameters_solver_parallel_settings->destroy proc~read_parameters_solver_parallel_settings->get proc~read_parameters_solver_parallel_settings->log_warning proc~read_parameters_solver_parallel_settings->print_error_message proc~read_parameters_solver_parallel_settings->proc~error_message proc~read_parameters_solver_parallel_settings->proc~join proc~read_parameters_solver_settings_linear->proc~join proc~read_parameters_solver_settings_linear_local read_parameters_solver_settings_linear_local proc~read_parameters_solver_settings_linear->proc~read_parameters_solver_settings_linear_local proc~read_parameters_solver_settings_nonlinear->destroy proc~read_parameters_solver_settings_nonlinear->get proc~read_parameters_solver_settings_nonlinear->log_warning proc~read_parameters_solver_settings_nonlinear->print_error_message proc~read_parameters_solver_settings_nonlinear->proc~error_message proc~read_parameters_solver_settings_nonlinear->proc~join proc~read_parameters_solver_settings_nonlinear_convergence read_parameters_solver_settings_nonlinear_convergence proc~read_parameters_solver_settings_nonlinear->proc~read_parameters_solver_settings_nonlinear_convergence proc~read_parameters_solver_settings_linear_local->destroy proc~read_parameters_solver_settings_linear_local->get proc~read_parameters_solver_settings_linear_local->log_warning proc~read_parameters_solver_settings_linear_local->print_error_message proc~read_parameters_solver_settings_linear_local->proc~error_message proc~read_parameters_solver_settings_linear_local->proc~join proc~read_parameters_solver_settings_nonlinear_convergence->destroy proc~read_parameters_solver_settings_nonlinear_convergence->get proc~read_parameters_solver_settings_nonlinear_convergence->log_warning proc~read_parameters_solver_settings_nonlinear_convergence->print_error_message proc~read_parameters_solver_settings_nonlinear_convergence->proc~error_message proc~read_parameters_solver_settings_nonlinear_convergence->proc~join

Called by

proc~~read_parameters_solver_settings~~CalledByGraph proc~read_parameters_solver_settings read_parameters_solver_settings proc~inout_read_basic_parameters inout_read_basic_parameters proc~inout_read_basic_parameters->proc~read_parameters_solver_settings interface~inout_read_basic_parameters type_input%inout_read_basic_parameters interface~inout_read_basic_parameters->proc~inout_read_basic_parameters proc~initialize_type_input type_input%initialize_type_input proc~initialize_type_input->interface~inout_read_basic_parameters

Source Code

    subroutine read_parameters_solver_settings(self, json)
        implicit none
        class(type_input) :: self
        type(json_file), intent(inout) :: json

        logical :: found
        character(:), allocatable :: key

        key = join([solver_settings, bdf_order])
        call json%get(key, self%basic%solver_settings%bdf_order, found)
        call json%print_error_message(output_unit)
        if (.not. found) then
            call json%destroy()
            call error_message(904, c_opt=key)
        else if (.not. value_in_range(self%basic%solver_settings%bdf_order, 1, 6)) then
            call json%destroy()
            call error_message(905, c_opt=key)
        end if

        key = join([solver_settings, reordering])
        call json%get(key, self%basic%solver_settings%reordering, found)
        call json%print_error_message(output_unit)
        if (.not. found) then
            call global_logger%log_warning(message="Default reordering is set to 'none'.")
            self%basic%solver_settings%reordering = "none"
        else if (.not. any(valid_reordering_types(:) == self%basic%solver_settings%reordering)) then
            call json%destroy()
            call error_message(905, c_opt=key)
        end if

        key = join([solver_settings, coloring])
        call json%get(key, self%basic%solver_settings%coloring, found)
        call json%print_error_message(output_unit)
        if (.not. found) then
            call global_logger%log_warning(message="Default coloring is set to 'none'.")
            self%basic%solver_settings%coloring = "none"
        else if (.not. any(coloring_types(:) == self%basic%solver_settings%coloring)) then
            call json%destroy()
            call error_message(905, c_opt=key)
        end if

        call read_parameters_solver_settings_nonlinear(self, json)
        call read_parameters_solver_settings_linear(self, json)
        call read_parameters_solver_parallel_settings(self, json)

    end subroutine read_parameters_solver_settings