error_message Subroutine

public subroutine error_message(err_number, myrank, opt, c_opt)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: err_number
integer(kind=int32), intent(in), optional :: myrank
real(kind=real64), intent(in), optional :: opt
character(len=*), intent(in), optional :: c_opt

Calls

proc~~error_message~~CallsGraph proc~error_message error_message log_error log_error proc~error_message->log_error

Called by

proc~~error_message~~CalledByGraph proc~error_message error_message proc~allocate_pointer_int32 allocate_pointer_int32 proc~allocate_pointer_int32->proc~error_message proc~allocate_pointer_int64 allocate_pointer_int64 proc~allocate_pointer_int64->proc~error_message proc~allocate_pointer_real128 allocate_pointer_real128 proc~allocate_pointer_real128->proc~error_message proc~allocate_pointer_real32 allocate_pointer_real32 proc~allocate_pointer_real32->proc~error_message proc~allocate_pointer_real64 allocate_pointer_real64 proc~allocate_pointer_real64->proc~error_message proc~allocate_rank1_int16 allocate_rank1_int16 proc~allocate_rank1_int16->proc~error_message proc~allocate_rank1_int32 allocate_rank1_int32 proc~allocate_rank1_int32->proc~error_message proc~allocate_rank1_int32_pointer allocate_rank1_int32_pointer proc~allocate_rank1_int32_pointer->proc~error_message proc~allocate_rank1_int32_specify_pointer allocate_rank1_int32_specify_pointer proc~allocate_rank1_int32_specify_pointer->proc~error_message proc~allocate_rank1_int64 allocate_rank1_int64 proc~allocate_rank1_int64->proc~error_message proc~allocate_rank1_int64_pointer allocate_rank1_int64_pointer proc~allocate_rank1_int64_pointer->proc~error_message proc~allocate_rank1_int64_specify_pointer allocate_rank1_int64_specify_pointer proc~allocate_rank1_int64_specify_pointer->proc~error_message proc~allocate_rank1_int8 allocate_rank1_int8 proc~allocate_rank1_int8->proc~error_message proc~allocate_rank1_logical1 allocate_rank1_logical1 proc~allocate_rank1_logical1->proc~error_message proc~allocate_rank1_logical4 allocate_rank1_logical4 proc~allocate_rank1_logical4->proc~error_message proc~allocate_rank1_logical8 allocate_rank1_logical8 proc~allocate_rank1_logical8->proc~error_message proc~allocate_rank1_logical_pointer allocate_rank1_logical_pointer proc~allocate_rank1_logical_pointer->proc~error_message proc~allocate_rank1_logical_specify_pointer allocate_rank1_logical_specify_pointer proc~allocate_rank1_logical_specify_pointer->proc~error_message proc~allocate_rank1_real128 allocate_rank1_real128 proc~allocate_rank1_real128->proc~error_message proc~allocate_rank1_real128_pointer allocate_rank1_real128_pointer proc~allocate_rank1_real128_pointer->proc~error_message proc~allocate_rank1_real128_specify_pointer allocate_rank1_real128_specify_pointer proc~allocate_rank1_real128_specify_pointer->proc~error_message proc~allocate_rank1_real32 allocate_rank1_real32 proc~allocate_rank1_real32->proc~error_message proc~allocate_rank1_real32_pointer allocate_rank1_real32_pointer proc~allocate_rank1_real32_pointer->proc~error_message proc~allocate_rank1_real32_specify_pointer allocate_rank1_real32_specify_pointer proc~allocate_rank1_real32_specify_pointer->proc~error_message proc~allocate_rank1_real64 allocate_rank1_real64 proc~allocate_rank1_real64->proc~error_message proc~allocate_rank1_real64_pointer allocate_rank1_real64_pointer proc~allocate_rank1_real64_pointer->proc~error_message proc~allocate_rank1_real64_specify_pointer allocate_rank1_real64_specify_pointer proc~allocate_rank1_real64_specify_pointer->proc~error_message proc~allocate_rank2_int16 allocate_rank2_int16 proc~allocate_rank2_int16->proc~error_message proc~allocate_rank2_int32 allocate_rank2_int32 proc~allocate_rank2_int32->proc~error_message proc~allocate_rank2_int64 allocate_rank2_int64 proc~allocate_rank2_int64->proc~error_message proc~allocate_rank2_int8 allocate_rank2_int8 proc~allocate_rank2_int8->proc~error_message proc~allocate_rank2_logical1 allocate_rank2_logical1 proc~allocate_rank2_logical1->proc~error_message proc~allocate_rank2_logical4 allocate_rank2_logical4 proc~allocate_rank2_logical4->proc~error_message proc~allocate_rank2_logical8 allocate_rank2_logical8 proc~allocate_rank2_logical8->proc~error_message proc~allocate_rank2_real128 allocate_rank2_real128 proc~allocate_rank2_real128->proc~error_message proc~allocate_rank2_real32 allocate_rank2_real32 proc~allocate_rank2_real32->proc~error_message proc~allocate_rank2_real64 allocate_rank2_real64 proc~allocate_rank2_real64->proc~error_message proc~cm_inverse_method cm_inverse_method proc~cm_inverse_method->proc~error_message interface~allocate_array allocate_array proc~cm_inverse_method->interface~allocate_array interface~deallocate_array deallocate_array proc~cm_inverse_method->interface~deallocate_array proc~cm_reorder_method cm_reorder_method proc~cm_reorder_method->proc~error_message proc~cm_reorder_method->interface~allocate_array proc~cm_reorder_method->interface~deallocate_array proc~build_node_adjacency_from_elements build_node_adjacency_from_elements proc~cm_reorder_method->proc~build_node_adjacency_from_elements proc~execute_cm_ordering execute_cm_ordering proc~cm_reorder_method->proc~execute_cm_ordering proc~configure_output_variables configure_output_variables proc~configure_output_variables->proc~error_message proc~deallocate_rank1_int32 deallocate_rank1_int32 proc~deallocate_rank1_int32->proc~error_message proc~deallocate_rank1_int64 deallocate_rank1_int64 proc~deallocate_rank1_int64->proc~error_message proc~deallocate_rank1_int8 deallocate_rank1_int8 proc~deallocate_rank1_int8->proc~error_message proc~deallocate_rank1_logical1 deallocate_rank1_logical1 proc~deallocate_rank1_logical1->proc~error_message proc~deallocate_rank1_logical4 deallocate_rank1_logical4 proc~deallocate_rank1_logical4->proc~error_message proc~deallocate_rank1_logical8 deallocate_rank1_logical8 proc~deallocate_rank1_logical8->proc~error_message proc~deallocate_rank1_real128 deallocate_rank1_real128 proc~deallocate_rank1_real128->proc~error_message proc~deallocate_rank1_real32 deallocate_rank1_real32 proc~deallocate_rank1_real32->proc~error_message proc~deallocate_rank1_real64 deallocate_rank1_real64 proc~deallocate_rank1_real64->proc~error_message proc~deallocate_rank2_int32 deallocate_rank2_int32 proc~deallocate_rank2_int32->proc~error_message proc~deallocate_rank2_int64 deallocate_rank2_int64 proc~deallocate_rank2_int64->proc~error_message proc~deallocate_rank2_int8 deallocate_rank2_int8 proc~deallocate_rank2_int8->proc~error_message proc~deallocate_rank2_logical1 deallocate_rank2_logical1 proc~deallocate_rank2_logical1->proc~error_message proc~deallocate_rank2_logical4 deallocate_rank2_logical4 proc~deallocate_rank2_logical4->proc~error_message proc~deallocate_rank2_logical8 deallocate_rank2_logical8 proc~deallocate_rank2_logical8->proc~error_message proc~deallocate_rank2_real128 deallocate_rank2_real128 proc~deallocate_rank2_real128->proc~error_message proc~deallocate_rank2_real32 deallocate_rank2_real32 proc~deallocate_rank2_real32->proc~error_message proc~deallocate_rank2_real64 deallocate_rank2_real64 proc~deallocate_rank2_real64->proc~error_message proc~initialize_type_input type_input%initialize_type_input proc~initialize_type_input->proc~error_message interface~inout_read_geometry type_input%inout_read_geometry proc~initialize_type_input->interface~inout_read_geometry proc~get_project_path get_project_path proc~initialize_type_input->proc~get_project_path interface~inout_read_basic_parameters type_input%inout_read_basic_parameters proc~initialize_type_input->interface~inout_read_basic_parameters interface~inout_read_conditions type_input%inout_read_conditions proc~initialize_type_input->interface~inout_read_conditions interface~inout_read_output_settings type_input%inout_read_output_settings proc~initialize_type_input->interface~inout_read_output_settings proc~inout_project_path_initialize inout_project_path_initialize proc~inout_project_path_initialize->proc~error_message proc~inout_read_geometry inout_read_geometry proc~inout_read_geometry->proc~error_message proc~type_vtk_vtk_initialize type_vtk%type_vtk_vtk_initialize proc~inout_read_geometry->proc~type_vtk_vtk_initialize proc~type_vtk_vtu_initialize type_vtk%type_vtk_vtu_initialize proc~inout_read_geometry->proc~type_vtk_vtu_initialize proc~output_overall_vtk_cell output_overall_vtk_cell proc~output_overall_vtk_cell->proc~error_message proc~output_overall_vtk_fields output_overall_vtk_fields proc~output_overall_vtk_fields->proc~error_message proc~output_overall_vtk_fields->interface~allocate_array proc~output_overall_vtk_fields->interface~deallocate_array proc~rcm_inverse_method rcm_inverse_method proc~rcm_inverse_method->proc~error_message proc~rcm_inverse_method->interface~allocate_array proc~rcm_inverse_method->interface~deallocate_array proc~rcm_reorder_method rcm_reorder_method proc~rcm_reorder_method->proc~error_message proc~rcm_reorder_method->interface~allocate_array proc~rcm_reorder_method->interface~deallocate_array proc~rcm_reorder_method->proc~build_node_adjacency_from_elements proc~rcm_reorder_method->proc~execute_cm_ordering proc~read_conditions_boundary_conditions read_conditions_boundary_conditions proc~read_conditions_boundary_conditions->proc~error_message proc~read_conditions_boundary_conditions_hydraulic read_conditions_boundary_conditions_hydraulic proc~read_conditions_boundary_conditions->proc~read_conditions_boundary_conditions_hydraulic proc~read_conditions_boundary_conditions_thermal read_conditions_boundary_conditions_thermal proc~read_conditions_boundary_conditions->proc~read_conditions_boundary_conditions_thermal proc~read_conditions_boundary_conditions_hydraulic->proc~error_message proc~read_conditions_boundary_conditions_thermal->proc~error_message proc~read_conditions_initial_conditions_hydraulic read_conditions_initial_conditions_hydraulic proc~read_conditions_initial_conditions_hydraulic->proc~error_message proc~read_conditions_initial_conditions_hydraulic->proc~read_conditions_boundary_conditions_hydraulic proc~read_conditions_initial_conditions_porosity read_conditions_initial_conditions_porosity proc~read_conditions_initial_conditions_porosity->proc~error_message proc~read_conditions_initial_conditions_thermal read_conditions_initial_conditions_thermal proc~read_conditions_initial_conditions_thermal->proc~error_message proc~read_conditions_initial_conditions_thermal->proc~read_conditions_boundary_conditions_thermal proc~read_conditions_time_control_boundary_time_points read_conditions_time_control_boundary_time_points proc~read_conditions_time_control_boundary_time_points->proc~error_message proc~read_conditions_time_control_simulation_period read_conditions_time_control_simulation_period proc~read_conditions_time_control_simulation_period->proc~error_message proc~read_conditions_time_control_time_stepping read_conditions_time_control_time_stepping proc~read_conditions_time_control_time_stepping->proc~error_message proc~read_output_settings_fields read_output_settings_fields proc~read_output_settings_fields->proc~error_message proc~read_output_settings_fields->proc~configure_output_variables proc~read_output_settings_history read_output_settings_history proc~read_output_settings_history->proc~error_message proc~read_output_settings_history->proc~configure_output_variables proc~read_output_settings_standard read_output_settings_standard proc~read_output_settings_standard->proc~error_message proc~read_parameters_analysis_controls read_parameters_analysis_controls proc~read_parameters_analysis_controls->proc~error_message proc~read_parameters_geometry_settings read_parameters_geometry_settings proc~read_parameters_geometry_settings->proc~error_message proc~read_parameters_materials read_parameters_materials proc~read_parameters_materials->proc~error_message proc~read_parameters_materials_basic read_parameters_materials_basic proc~read_parameters_materials->proc~read_parameters_materials_basic proc~read_parameters_materials_hydrauilic read_parameters_materials_hydrauilic proc~read_parameters_materials->proc~read_parameters_materials_hydrauilic proc~read_parameters_materials_thermal read_parameters_materials_thermal proc~read_parameters_materials->proc~read_parameters_materials_thermal proc~read_parameters_materials_basic->proc~error_message proc~read_parameters_materials_hydrauilic->proc~error_message proc~read_parameters_materials_wrf read_parameters_materials_wrf proc~read_parameters_materials_hydrauilic->proc~read_parameters_materials_wrf proc~read_parameters_materials_thermal->proc~error_message proc~read_parameters_materials_thermal->proc~read_parameters_materials_wrf proc~read_parameters_materials_thermal->interface~allocate_array proc~read_parameters_materials_wrf->proc~error_message proc~read_parameters_simulation_settings read_parameters_simulation_settings proc~read_parameters_simulation_settings->proc~error_message proc~read_parameters_solver_parallel_settings read_parameters_solver_parallel_settings proc~read_parameters_solver_parallel_settings->proc~error_message proc~read_parameters_solver_settings read_parameters_solver_settings proc~read_parameters_solver_settings->proc~error_message proc~read_parameters_solver_settings->proc~read_parameters_solver_parallel_settings proc~read_parameters_solver_settings_nonlinear read_parameters_solver_settings_nonlinear proc~read_parameters_solver_settings->proc~read_parameters_solver_settings_nonlinear 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_linear_local read_parameters_solver_settings_linear_local proc~read_parameters_solver_settings_linear_local->proc~error_message proc~read_parameters_solver_settings_nonlinear->proc~error_message 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_nonlinear_convergence->proc~error_message interface~allocate_array->proc~allocate_rank1_int16 interface~allocate_array->proc~allocate_rank1_int32 interface~allocate_array->proc~allocate_rank1_int64 interface~allocate_array->proc~allocate_rank1_int8 interface~allocate_array->proc~allocate_rank1_logical1 interface~allocate_array->proc~allocate_rank1_logical4 interface~allocate_array->proc~allocate_rank1_logical8 interface~allocate_array->proc~allocate_rank1_real128 interface~allocate_array->proc~allocate_rank1_real32 interface~allocate_array->proc~allocate_rank1_real64 interface~allocate_array->proc~allocate_rank2_int16 interface~allocate_array->proc~allocate_rank2_int32 interface~allocate_array->proc~allocate_rank2_int64 interface~allocate_array->proc~allocate_rank2_int8 interface~allocate_array->proc~allocate_rank2_logical1 interface~allocate_array->proc~allocate_rank2_logical4 interface~allocate_array->proc~allocate_rank2_logical8 interface~allocate_array->proc~allocate_rank2_real128 interface~allocate_array->proc~allocate_rank2_real32 interface~allocate_array->proc~allocate_rank2_real64 interface~allocate_pointer allocate_pointer interface~allocate_pointer->proc~allocate_pointer_int32 interface~allocate_pointer->proc~allocate_pointer_int64 interface~allocate_pointer->proc~allocate_pointer_real128 interface~allocate_pointer->proc~allocate_pointer_real32 interface~allocate_pointer->proc~allocate_pointer_real64 interface~allocate_pointer->proc~allocate_rank1_int32_pointer interface~allocate_pointer->proc~allocate_rank1_int32_specify_pointer interface~allocate_pointer->proc~allocate_rank1_int64_pointer interface~allocate_pointer->proc~allocate_rank1_int64_specify_pointer interface~allocate_pointer->proc~allocate_rank1_logical_pointer interface~allocate_pointer->proc~allocate_rank1_logical_specify_pointer interface~allocate_pointer->proc~allocate_rank1_real128_pointer interface~allocate_pointer->proc~allocate_rank1_real128_specify_pointer interface~allocate_pointer->proc~allocate_rank1_real32_pointer interface~allocate_pointer->proc~allocate_rank1_real32_specify_pointer interface~allocate_pointer->proc~allocate_rank1_real64_pointer interface~allocate_pointer->proc~allocate_rank1_real64_specify_pointer interface~cm_inverse_method type_reordering%cm_inverse_method interface~cm_inverse_method->proc~cm_inverse_method interface~cm_reorder_method type_reordering%cm_reorder_method interface~cm_reorder_method->proc~cm_reorder_method interface~deallocate_array->proc~deallocate_rank1_int32 interface~deallocate_array->proc~deallocate_rank1_int64 interface~deallocate_array->proc~deallocate_rank1_int8 interface~deallocate_array->proc~deallocate_rank1_logical1 interface~deallocate_array->proc~deallocate_rank1_logical4 interface~deallocate_array->proc~deallocate_rank1_logical8 interface~deallocate_array->proc~deallocate_rank1_real128 interface~deallocate_array->proc~deallocate_rank1_real32 interface~deallocate_array->proc~deallocate_rank1_real64 interface~deallocate_array->proc~deallocate_rank2_int32 interface~deallocate_array->proc~deallocate_rank2_int64 interface~deallocate_array->proc~deallocate_rank2_int8 interface~deallocate_array->proc~deallocate_rank2_logical1 interface~deallocate_array->proc~deallocate_rank2_logical4 interface~deallocate_array->proc~deallocate_rank2_logical8 interface~deallocate_array->proc~deallocate_rank2_real128 interface~deallocate_array->proc~deallocate_rank2_real32 interface~deallocate_array->proc~deallocate_rank2_real64 interface~inout_read_geometry->proc~inout_read_geometry interface~rcm_inverse_method type_reordering%rcm_inverse_method interface~rcm_inverse_method->proc~rcm_inverse_method interface~rcm_reorder_method type_reordering%rcm_reorder_method interface~rcm_reorder_method->proc~rcm_reorder_method proc~get_project_path->proc~inout_project_path_initialize proc~inout_read_basic_parameters inout_read_basic_parameters proc~inout_read_basic_parameters->proc~read_parameters_analysis_controls proc~inout_read_basic_parameters->proc~read_parameters_geometry_settings proc~inout_read_basic_parameters->proc~read_parameters_materials proc~inout_read_basic_parameters->proc~read_parameters_simulation_settings proc~inout_read_basic_parameters->proc~read_parameters_solver_settings proc~inout_read_conditions inout_read_conditions proc~inout_read_conditions->proc~read_conditions_boundary_conditions proc~read_conditions_initial_conditions read_conditions_initial_conditions proc~inout_read_conditions->proc~read_conditions_initial_conditions proc~read_conditions_time_control read_conditions_time_control proc~inout_read_conditions->proc~read_conditions_time_control proc~inout_read_output_settings inout_read_output_settings proc~inout_read_output_settings->proc~read_output_settings_fields proc~inout_read_output_settings->proc~read_output_settings_history proc~inout_read_output_settings->proc~read_output_settings_standard proc~read_conditions_initial_conditions->proc~read_conditions_initial_conditions_hydraulic proc~read_conditions_initial_conditions->proc~read_conditions_initial_conditions_porosity proc~read_conditions_initial_conditions->proc~read_conditions_initial_conditions_thermal proc~read_conditions_time_control->proc~read_conditions_time_control_boundary_time_points proc~read_conditions_time_control->proc~read_conditions_time_control_simulation_period proc~read_conditions_time_control->proc~read_conditions_time_control_time_stepping proc~read_parameters_solver_settings_linear->proc~read_parameters_solver_settings_linear_local interface~inout_read_basic_parameters->proc~inout_read_basic_parameters interface~inout_read_conditions->proc~inout_read_conditions interface~inout_read_output_settings->proc~inout_read_output_settings proc~apply_reordering type_domain%apply_reordering proc~apply_reordering->interface~allocate_array proc~build_csr_from_edges build_csr_from_edges proc~build_csr_from_edges->interface~allocate_array proc~build_csr_from_edges->interface~deallocate_array proc~build_node_adjacency_from_elements->interface~allocate_array proc~build_node_adjacency_from_elements->interface~deallocate_array proc~initialize_node_adjacency type_node_adjacency%initialize_node_adjacency proc~build_node_adjacency_from_elements->proc~initialize_node_adjacency proc~coloring_dsatur coloring_dsatur proc~coloring_dsatur->interface~allocate_array proc~coloring_dsatur->interface~deallocate_array proc~get_neighbors_impl type_crs_adjacency_element%get_neighbors_impl proc~coloring_dsatur->proc~get_neighbors_impl proc~update_saturation update_saturation proc~coloring_dsatur->proc~update_saturation proc~coloring_lfo coloring_lfo proc~coloring_lfo->interface~allocate_array proc~coloring_lfo->interface~deallocate_array proc~coloring_lfo->proc~get_neighbors_impl proc~coloring_welsh_powell coloring_welsh_powell proc~coloring_welsh_powell->interface~allocate_array proc~coloring_welsh_powell->interface~deallocate_array proc~find_smallest_available_color find_smallest_available_color proc~coloring_welsh_powell->proc~find_smallest_available_color proc~get_welsh_powell_order get_welsh_powell_order proc~coloring_welsh_powell->proc~get_welsh_powell_order proc~construct_side_first construct_side_first proc~construct_side_first->interface~allocate_array proc~construct_side_second construct_side_second proc~construct_side_second->interface~allocate_array proc~construct_square_first construct_square_first proc~construct_square_first->interface~allocate_array proc~construct_square_second construct_square_second proc~construct_square_second->interface~allocate_array proc~construct_triangle_first construct_triangle_first proc~construct_triangle_first->interface~allocate_array proc~construct_triangle_second construct_triangle_second proc~construct_triangle_second->interface~allocate_array proc~construct_type_hcf_base_bc Construct_Type_HCF_Base_BC proc~construct_type_hcf_base_bc->interface~allocate_array proc~construct_type_hcf_base_durner Construct_Type_HCF_Base_Durner proc~construct_type_hcf_base_durner->interface~allocate_array proc~construct_type_hcf_base_dvgch Construct_Type_HCF_Base_DVGCH proc~construct_type_hcf_base_dvgch->interface~allocate_array proc~construct_type_hcf_base_impedance_bc Construct_Type_HCF_Base_Impedance_BC proc~construct_type_hcf_base_impedance_bc->interface~allocate_array proc~construct_type_hcf_base_impedance_durner Construct_Type_HCF_Base_Impedance_Durner proc~construct_type_hcf_base_impedance_durner->interface~allocate_array proc~construct_type_hcf_base_impedance_dvgch Construct_Type_HCF_Base_Impedance_DVGCH proc~construct_type_hcf_base_impedance_dvgch->interface~allocate_array proc~construct_type_hcf_base_impedance_ko Construct_Type_HCF_Base_Impedance_KO proc~construct_type_hcf_base_impedance_ko->interface~allocate_array proc~construct_type_hcf_base_impedance_mvg Construct_Type_HCF_Base_Impedance_MVG proc~construct_type_hcf_base_impedance_mvg->interface~allocate_array proc~construct_type_hcf_base_impedance_vg Construct_Type_HCF_Base_Impedance_VG proc~construct_type_hcf_base_impedance_vg->interface~allocate_array proc~construct_type_hcf_base_impedance_viscosity_bc Construct_Type_HCF_Base_Impedance_Viscosity_BC proc~construct_type_hcf_base_impedance_viscosity_bc->interface~allocate_array proc~construct_type_hcf_base_impedance_viscosity_durner Construct_Type_HCF_Base_Impedance_Viscosity_Durner proc~construct_type_hcf_base_impedance_viscosity_durner->interface~allocate_array proc~construct_type_hcf_base_impedance_viscosity_dvgch Construct_Type_HCF_Base_Impedance_Viscosity_DVGCH proc~construct_type_hcf_base_impedance_viscosity_dvgch->interface~allocate_array proc~construct_type_hcf_base_impedance_viscosity_ko Construct_Type_HCF_Base_Impedance_Viscosity_KO proc~construct_type_hcf_base_impedance_viscosity_ko->interface~allocate_array proc~construct_type_hcf_base_impedance_viscosity_mvg Construct_Type_HCF_Base_Impedance_Viscosity_MVG proc~construct_type_hcf_base_impedance_viscosity_mvg->interface~allocate_array proc~construct_type_hcf_base_impedance_viscosity_vg Construct_Type_HCF_Base_Impedance_Viscosity_VG proc~construct_type_hcf_base_impedance_viscosity_vg->interface~allocate_array proc~construct_type_hcf_base_ko Construct_Type_HCF_Base_KO proc~construct_type_hcf_base_ko->interface~allocate_array proc~construct_type_hcf_base_mvg Construct_Type_HCF_Base_MVG proc~construct_type_hcf_base_mvg->interface~allocate_array proc~construct_type_hcf_base_vg Construct_Type_HCF_Base_VG proc~construct_type_hcf_base_vg->interface~allocate_array proc~construct_type_hcf_base_viscosity_bc Construct_Type_HCF_Base_Viscosity_BC proc~construct_type_hcf_base_viscosity_bc->interface~allocate_array proc~construct_type_hcf_base_viscosity_durner Construct_Type_HCF_Base_Viscosity_Durner proc~construct_type_hcf_base_viscosity_durner->interface~allocate_array proc~construct_type_hcf_base_viscosity_dvgch Construct_Type_HCF_Base_Viscosity_DVGCH proc~construct_type_hcf_base_viscosity_dvgch->interface~allocate_array proc~construct_type_hcf_base_viscosity_ko Construct_Type_HCF_Base_Viscosity_KO proc~construct_type_hcf_base_viscosity_ko->interface~allocate_array proc~construct_type_hcf_base_viscosity_mvg Construct_Type_HCF_Base_Viscosity_MVG proc~construct_type_hcf_base_viscosity_mvg->interface~allocate_array proc~construct_type_hcf_base_viscosity_vg Construct_Type_HCF_Base_Viscosity_VG proc~construct_type_hcf_base_viscosity_vg->interface~allocate_array proc~construct_type_hcf_impedance Construct_Type_HCF_Impedance proc~construct_type_hcf_impedance->interface~allocate_array proc~construct_type_hcf_impedance_viscosity Construct_Type_HCF_Impedance_Viscosity proc~construct_type_hcf_impedance_viscosity->interface~allocate_array proc~construct_type_hcf_viscosity Construct_Type_HCF_Viscosity proc~construct_type_hcf_viscosity->interface~allocate_array proc~construct_type_thermal_3phase_2d construct_type_thermal_3phase_2d proc~construct_type_thermal_3phase_2d->interface~allocate_array proc~initialize_type_crs type_crs%initialize_type_crs proc~construct_type_thermal_3phase_2d->proc~initialize_type_crs proc~copy_coo type_coo%copy_coo proc~copy_coo->interface~allocate_array proc~copy_crs type_crs%copy_crs proc~copy_crs->interface~allocate_array proc~copy_dense type_dense%copy_dense proc~copy_dense->interface~allocate_array proc~destory_coo type_coo%destory_coo proc~destory_coo->interface~deallocate_array proc~destory_crs type_crs%destory_crs proc~destory_crs->interface~deallocate_array proc~destroy_node_adjacency type_node_adjacency%destroy_node_adjacency proc~destroy_node_adjacency->interface~deallocate_array proc~finalize_type_reordering finalize_type_reordering proc~finalize_type_reordering->interface~deallocate_array proc~find_smallest_available_color->interface~allocate_array proc~find_smallest_available_color->interface~deallocate_array proc~find_smallest_available_color->proc~get_neighbors_impl proc~find_target_edges_by_group find_target_edges_by_group proc~find_target_edges_by_group->interface~allocate_array proc~generate_all_edges generate_all_edges proc~generate_all_edges->interface~allocate_array proc~get_neighbors_impl->interface~allocate_array proc~get_welsh_powell_order->interface~allocate_array proc~get_welsh_powell_order->interface~deallocate_array proc~initialize_crs_adjacency type_crs_adjacency_element%initialize_crs_adjacency proc~initialize_crs_adjacency->interface~allocate_array proc~initialize_crs_adjacency->interface~deallocate_array proc~initialize_node_adjacency->interface~deallocate_array proc~initialize_node_adjacency->proc~build_csr_from_edges proc~initialize_node_adjacency->proc~generate_all_edges proc~initialize_output_overall_vtk initialize_output_overall_vtk 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 initialize_output_overall_vtu proc~initialize_output_overall_vtu->interface~allocate_array proc~initialize_output_overall_vtu->proc~type_dp_3d_initialize proc~initialize_type_bc_thermal_adiabatic initialize_type_bc_thermal_adiabatic proc~initialize_type_bc_thermal_adiabatic->interface~allocate_array proc~initialize_type_bc_thermal_adiabatic->interface~deallocate_array interface~find_target_edges_by_group find_target_edges_by_group proc~initialize_type_bc_thermal_adiabatic->interface~find_target_edges_by_group proc~initialize_type_bc_thermal_dirichlet initialize_type_bc_thermal_dirichlet proc~initialize_type_bc_thermal_dirichlet->interface~allocate_array proc~initialize_type_bc_thermal_dirichlet->interface~deallocate_array proc~initialize_type_bc_thermal_dirichlet->interface~find_target_edges_by_group proc~initialize_type_coo type_coo%initialize_type_coo proc~initialize_type_coo->interface~allocate_array proc~initialize_type_coo->interface~deallocate_array interface~unique unique proc~initialize_type_coo->interface~unique proc~initialize_type_crs->interface~allocate_array proc~initialize_type_crs->interface~deallocate_array proc~initialize_type_crs->proc~destory_coo proc~initialize_type_crs->proc~initialize_type_coo proc~initialize_type_dense type_dense%initialize_type_dense proc~initialize_type_dense->interface~allocate_array proc~initialize_type_output type_output%initialize_type_output proc~initialize_type_output->proc~get_project_path interface~initialize_type_output_observation type_output_observation%initialize_type_output_observation proc~initialize_type_output->interface~initialize_type_output_observation proc~initialize_type_reordering type_reordering%initialize_type_reordering proc~initialize_type_reordering->interface~cm_inverse_method proc~initialize_type_reordering->interface~cm_reorder_method proc~initialize_type_reordering->interface~rcm_inverse_method proc~initialize_type_reordering->interface~rcm_reorder_method proc~initialize_type_time type_time%initialize_type_time proc~initialize_type_time->interface~allocate_array proc~output_overall_vtu_fields output_overall_vtu_fields proc~output_overall_vtu_fields->interface~allocate_array proc~output_overall_vtu_fields->interface~deallocate_array proc~sort_and_enqueue_neighbors sort_and_enqueue_neighbors proc~sort_and_enqueue_neighbors->interface~allocate_array proc~sort_and_enqueue_neighbors->interface~deallocate_array proc~type_dp_2d_destroy type_dp_2d%type_dp_2d_destroy proc~type_dp_2d_destroy->interface~deallocate_array proc~type_dp_2d_initialize type_dp_2d%type_dp_2d_initialize proc~type_dp_2d_initialize->interface~allocate_array proc~type_dp_3d_destroy type_dp_3d_destroy proc~type_dp_3d_destroy->interface~deallocate_array proc~type_dp_3d_initialize->interface~allocate_array proc~type_int_2d_destroy type_int_2d_destroy proc~type_int_2d_destroy->interface~deallocate_array proc~type_int_2d_initialize type_int_2d_initialize proc~type_int_2d_initialize->interface~allocate_array proc~type_int_3d_destroy type_int_3d_destroy proc~type_int_3d_destroy->interface~deallocate_array proc~type_int_3d_initialize type_int_3d_initialize proc~type_int_3d_initialize->interface~allocate_array proc~type_variable_initialize type_variable%type_variable_initialize proc~type_variable_initialize->interface~allocate_array proc~type_vtk_vtk_initialize->interface~allocate_array proc~type_vtk_vtk_initialize->interface~deallocate_array proc~type_vtk_vtk_initialize->proc~type_dp_3d_initialize proc~type_vtk_vtu_initialize->interface~allocate_array proc~type_vtk_vtu_initialize->interface~deallocate_array proc~type_vtk_vtu_initialize->proc~type_dp_3d_initialize proc~unique_int16 unique_int16 proc~unique_int16->interface~allocate_array proc~unique_int32 unique_int32 proc~unique_int32->interface~allocate_array proc~unique_int64 unique_int64 proc~unique_int64->interface~allocate_array proc~unique_int8 unique_int8 proc~unique_int8->interface~allocate_array proc~update_saturation->interface~deallocate_array proc~update_saturation->proc~get_neighbors_impl interface~coloring_dsatur type_coloring%coloring_dsatur interface~coloring_dsatur->proc~coloring_dsatur interface~coloring_lfo type_coloring%coloring_lfo interface~coloring_lfo->proc~coloring_lfo interface~coloring_welsh_powell type_coloring%coloring_welsh_powell interface~coloring_welsh_powell->proc~coloring_welsh_powell interface~construct_side_first construct_side_first interface~construct_side_first->proc~construct_side_first interface~construct_side_second construct_side_second interface~construct_side_second->proc~construct_side_second interface~construct_square_first construct_square_first interface~construct_square_first->proc~construct_square_first interface~construct_square_second construct_square_second interface~construct_square_second->proc~construct_square_second interface~construct_triangle_first construct_triangle_first interface~construct_triangle_first->proc~construct_triangle_first interface~construct_triangle_second construct_triangle_second interface~construct_triangle_second->proc~construct_triangle_second interface~construct_type_hcf_base_bc Construct_Type_HCF_Base_BC interface~construct_type_hcf_base_bc->proc~construct_type_hcf_base_bc interface~construct_type_hcf_base_durner Construct_Type_HCF_Base_Durner interface~construct_type_hcf_base_durner->proc~construct_type_hcf_base_durner interface~construct_type_hcf_base_dvgch Construct_Type_HCF_Base_DVGCH interface~construct_type_hcf_base_dvgch->proc~construct_type_hcf_base_dvgch interface~construct_type_hcf_base_impedance_bc Construct_Type_HCF_Base_Impedance_BC interface~construct_type_hcf_base_impedance_bc->proc~construct_type_hcf_base_impedance_bc interface~construct_type_hcf_base_impedance_durner Construct_Type_HCF_Base_Impedance_Durner interface~construct_type_hcf_base_impedance_durner->proc~construct_type_hcf_base_impedance_durner interface~construct_type_hcf_base_impedance_dvgch Construct_Type_HCF_Base_Impedance_DVGCH interface~construct_type_hcf_base_impedance_dvgch->proc~construct_type_hcf_base_impedance_dvgch interface~construct_type_hcf_base_impedance_ko Construct_Type_HCF_Base_Impedance_KO interface~construct_type_hcf_base_impedance_ko->proc~construct_type_hcf_base_impedance_ko interface~construct_type_hcf_base_impedance_mvg Construct_Type_HCF_Base_Impedance_MVG interface~construct_type_hcf_base_impedance_mvg->proc~construct_type_hcf_base_impedance_mvg interface~construct_type_hcf_base_impedance_vg Construct_Type_HCF_Base_Impedance_VG interface~construct_type_hcf_base_impedance_vg->proc~construct_type_hcf_base_impedance_vg interface~construct_type_hcf_base_impedance_viscosity_bc Construct_Type_HCF_Base_Impedance_Viscosity_BC interface~construct_type_hcf_base_impedance_viscosity_bc->proc~construct_type_hcf_base_impedance_viscosity_bc interface~construct_type_hcf_base_impedance_viscosity_durner Construct_Type_HCF_Base_Impedance_Viscosity_Durner interface~construct_type_hcf_base_impedance_viscosity_durner->proc~construct_type_hcf_base_impedance_viscosity_durner interface~construct_type_hcf_base_impedance_viscosity_dvgch Construct_Type_HCF_Base_Impedance_Viscosity_DVGCH interface~construct_type_hcf_base_impedance_viscosity_dvgch->proc~construct_type_hcf_base_impedance_viscosity_dvgch interface~construct_type_hcf_base_impedance_viscosity_ko Construct_Type_HCF_Base_Impedance_Viscosity_KO interface~construct_type_hcf_base_impedance_viscosity_ko->proc~construct_type_hcf_base_impedance_viscosity_ko interface~construct_type_hcf_base_impedance_viscosity_mvg Construct_Type_HCF_Base_Impedance_Viscosity_MVG interface~construct_type_hcf_base_impedance_viscosity_mvg->proc~construct_type_hcf_base_impedance_viscosity_mvg interface~construct_type_hcf_base_impedance_viscosity_vg Construct_Type_HCF_Base_Impedance_Viscosity_VG interface~construct_type_hcf_base_impedance_viscosity_vg->proc~construct_type_hcf_base_impedance_viscosity_vg interface~construct_type_hcf_base_ko Construct_Type_HCF_Base_KO interface~construct_type_hcf_base_ko->proc~construct_type_hcf_base_ko interface~construct_type_hcf_base_mvg Construct_Type_HCF_Base_MVG interface~construct_type_hcf_base_mvg->proc~construct_type_hcf_base_mvg interface~construct_type_hcf_base_vg Construct_Type_HCF_Base_VG interface~construct_type_hcf_base_vg->proc~construct_type_hcf_base_vg interface~construct_type_hcf_base_viscosity_bc Construct_Type_HCF_Base_Viscosity_BC interface~construct_type_hcf_base_viscosity_bc->proc~construct_type_hcf_base_viscosity_bc interface~construct_type_hcf_base_viscosity_durner Construct_Type_HCF_Base_Viscosity_Durner interface~construct_type_hcf_base_viscosity_durner->proc~construct_type_hcf_base_viscosity_durner interface~construct_type_hcf_base_viscosity_dvgch Construct_Type_HCF_Base_Viscosity_DVGCH interface~construct_type_hcf_base_viscosity_dvgch->proc~construct_type_hcf_base_viscosity_dvgch interface~construct_type_hcf_base_viscosity_ko Construct_Type_HCF_Base_Viscosity_KO interface~construct_type_hcf_base_viscosity_ko->proc~construct_type_hcf_base_viscosity_ko interface~construct_type_hcf_base_viscosity_mvg Construct_Type_HCF_Base_Viscosity_MVG interface~construct_type_hcf_base_viscosity_mvg->proc~construct_type_hcf_base_viscosity_mvg interface~construct_type_hcf_base_viscosity_vg Construct_Type_HCF_Base_Viscosity_VG interface~construct_type_hcf_base_viscosity_vg->proc~construct_type_hcf_base_viscosity_vg interface~construct_type_hcf_impedance Construct_Type_HCF_Impedance interface~construct_type_hcf_impedance->proc~construct_type_hcf_impedance interface~construct_type_hcf_impedance_viscosity Construct_Type_HCF_Impedance_Viscosity interface~construct_type_hcf_impedance_viscosity->proc~construct_type_hcf_impedance_viscosity interface~construct_type_hcf_viscosity Construct_Type_HCF_Viscosity interface~construct_type_hcf_viscosity->proc~construct_type_hcf_viscosity interface~construct_type_thermal_3phase_2d construct_type_thermal_3phase_2d interface~construct_type_thermal_3phase_2d->proc~construct_type_thermal_3phase_2d interface~find_target_edges_by_group->proc~find_target_edges_by_group interface~initialize_output_overall_vtk type_output_overall%initialize_output_overall_vtk interface~initialize_output_overall_vtk->proc~initialize_output_overall_vtk interface~initialize_output_overall_vtu type_output_overall%initialize_output_overall_vtu interface~initialize_output_overall_vtu->proc~initialize_output_overall_vtu interface~initialize_type_bc_thermal_adiabatic type_bc_thermal_adiabatic%initialize_type_bc_thermal_adiabatic interface~initialize_type_bc_thermal_adiabatic->proc~initialize_type_bc_thermal_adiabatic interface~initialize_type_bc_thermal_dirichlet type_bc_thermal_dirichlet%initialize_type_bc_thermal_dirichlet interface~initialize_type_bc_thermal_dirichlet->proc~initialize_type_bc_thermal_dirichlet interface~unique->proc~unique_int16 interface~unique->proc~unique_int32 interface~unique->proc~unique_int64 interface~unique->proc~unique_int8 proc~execute_cm_ordering->proc~sort_and_enqueue_neighbors proc~initialize_type_domain type_domain%initialize_type_domain proc~initialize_type_domain->proc~apply_reordering proc~initialize_type_domain->proc~initialize_crs_adjacency proc~initialize_type_ftdss type_ftdss%initialize_type_ftdss proc~initialize_type_ftdss->proc~initialize_type_time proc~initialize_type_output_observation initialize_type_output_observation proc~initialize_type_output_observation->proc~type_dp_3d_initialize interface~initialize_type_output_observation->proc~initialize_type_output_observation interface~type_hcf_base_bc Type_HCF_Base_BC interface~type_hcf_base_bc->interface~construct_type_hcf_base_bc interface~type_hcf_base_durner Type_HCF_Base_Durner interface~type_hcf_base_durner->interface~construct_type_hcf_base_durner interface~type_hcf_base_dvgch Type_HCF_Base_DVGCH interface~type_hcf_base_dvgch->interface~construct_type_hcf_base_dvgch interface~type_hcf_base_impedance_bc Type_HCF_Base_Impedance_BC interface~type_hcf_base_impedance_bc->interface~construct_type_hcf_base_impedance_bc interface~type_hcf_base_impedance_durner Type_HCF_Base_Impedance_Durner interface~type_hcf_base_impedance_durner->interface~construct_type_hcf_base_impedance_durner interface~type_hcf_base_impedance_dvgch Type_HCF_Base_Impedance_DVGCH interface~type_hcf_base_impedance_dvgch->interface~construct_type_hcf_base_impedance_dvgch interface~type_hcf_base_impedance_ko Type_HCF_Base_Impedance_KO interface~type_hcf_base_impedance_ko->interface~construct_type_hcf_base_impedance_ko interface~type_hcf_base_impedance_mvg Type_HCF_Base_Impedance_MVG interface~type_hcf_base_impedance_mvg->interface~construct_type_hcf_base_impedance_mvg interface~type_hcf_base_impedance_vg Type_HCF_Base_Impedance_VG interface~type_hcf_base_impedance_vg->interface~construct_type_hcf_base_impedance_vg interface~type_hcf_base_impedance_viscosity_bc Type_HCF_Base_Impedance_Viscosity_BC interface~type_hcf_base_impedance_viscosity_bc->interface~construct_type_hcf_base_impedance_viscosity_bc interface~type_hcf_base_impedance_viscosity_durner Type_HCF_Base_Impedance_Viscosity_Durner interface~type_hcf_base_impedance_viscosity_durner->interface~construct_type_hcf_base_impedance_viscosity_durner interface~type_hcf_base_impedance_viscosity_dvgch Type_HCF_Base_Impedance_Viscosity_DVGCH interface~type_hcf_base_impedance_viscosity_dvgch->interface~construct_type_hcf_base_impedance_viscosity_dvgch interface~type_hcf_base_impedance_viscosity_ko Type_HCF_Base_Impedance_Viscosity_KO interface~type_hcf_base_impedance_viscosity_ko->interface~construct_type_hcf_base_impedance_viscosity_ko interface~type_hcf_base_impedance_viscosity_mvg Type_HCF_Base_Impedance_Viscosity_MVG interface~type_hcf_base_impedance_viscosity_mvg->interface~construct_type_hcf_base_impedance_viscosity_mvg interface~type_hcf_base_impedance_viscosity_vg Type_HCF_Base_Impedance_Viscosity_VG interface~type_hcf_base_impedance_viscosity_vg->interface~construct_type_hcf_base_impedance_viscosity_vg interface~type_hcf_base_ko Type_HCF_Base_KO interface~type_hcf_base_ko->interface~construct_type_hcf_base_ko interface~type_hcf_base_mvg Type_HCF_Base_MVG interface~type_hcf_base_mvg->interface~construct_type_hcf_base_mvg interface~type_hcf_base_vg Type_HCF_Base_VG interface~type_hcf_base_vg->interface~construct_type_hcf_base_vg interface~type_hcf_base_viscosity_bc Type_HCF_Base_Viscosity_BC interface~type_hcf_base_viscosity_bc->interface~construct_type_hcf_base_viscosity_bc interface~type_hcf_base_viscosity_durner Type_HCF_Base_Viscosity_Durner interface~type_hcf_base_viscosity_durner->interface~construct_type_hcf_base_viscosity_durner interface~type_hcf_base_viscosity_dvgch Type_HCF_Base_Viscosity_DVGCH interface~type_hcf_base_viscosity_dvgch->interface~construct_type_hcf_base_viscosity_dvgch interface~type_hcf_base_viscosity_ko Type_HCF_Base_Viscosity_KO interface~type_hcf_base_viscosity_ko->interface~construct_type_hcf_base_viscosity_ko interface~type_hcf_base_viscosity_mvg Type_HCF_Base_Viscosity_MVG interface~type_hcf_base_viscosity_mvg->interface~construct_type_hcf_base_viscosity_mvg interface~type_hcf_base_viscosity_vg Type_HCF_Base_Viscosity_VG interface~type_hcf_base_viscosity_vg->interface~construct_type_hcf_base_viscosity_vg interface~type_hcf_impedance Type_HCF_Impedance interface~type_hcf_impedance->interface~construct_type_hcf_impedance interface~type_hcf_impedance_viscosity Type_HCF_Impedance_Viscosity interface~type_hcf_impedance_viscosity->interface~construct_type_hcf_impedance_viscosity interface~type_hcf_viscosity Type_HCF_Viscosity interface~type_hcf_viscosity->interface~construct_type_hcf_viscosity interface~type_side_first type_side_first interface~type_side_first->interface~construct_side_first interface~type_side_second type_side_second interface~type_side_second->interface~construct_side_second interface~type_square_first type_square_first interface~type_square_first->interface~construct_square_first interface~type_square_second type_square_second interface~type_square_second->interface~construct_square_second interface~type_thermal_3phase_2d type_thermal_3phase_2d interface~type_thermal_3phase_2d->interface~construct_type_thermal_3phase_2d interface~type_triangle_first type_triangle_first interface~type_triangle_first->interface~construct_triangle_first interface~type_triangle_second type_triangle_second interface~type_triangle_second->interface~construct_triangle_second proc~get_active_region_info type_vtk%get_active_region_info proc~get_active_region_info->interface~unique proc~initialize_input_type_output_overall initialize_input_type_output_overall proc~initialize_input_type_output_overall->interface~initialize_output_overall_vtk proc~initialize_input_type_output_overall->interface~initialize_output_overall_vtu proc~initialize_type_coloring type_coloring%initialize_type_coloring proc~initialize_type_coloring->interface~coloring_dsatur proc~initialize_type_coloring->interface~coloring_lfo proc~initialize_type_coloring->interface~coloring_welsh_powell 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 proc~initialize type_material_manager%initialize proc~initialize->proc~get_active_region_info proc~type_proereties_manager_initialize type_proereties_manager%type_proereties_manager_initialize proc~type_proereties_manager_initialize->proc~initialize

Source Code

    subroutine error_message(err_number, myrank, opt, c_opt)
        implicit none
        integer(int32), intent(in) :: err_number
        integer(int32), optional, intent(in) :: myrank
        real(real64), optional, intent(in) :: opt
        character(*), optional, intent(in) :: c_opt

        character(256) :: msg
        integer(int32) :: ierr
        character(8) :: fmt = '(a,i3,a)'

        if (err_number == 901) then
            write (msg, '(a)') "Don't exist Input folder."
        else if (err_number == 902) then
            if (present(c_opt)) then
                write (msg, '(3a)') "Don't exist file '", trim(adjustl(c_opt)), "'."
            else
                write (msg, '(a)') "Don't exist file."
            end if
        else if (err_number == 903) then
            if (present(c_opt)) then
                write (msg, '(3a)') "Can't open file '", trim(adjustl(c_opt)), "'."
            else
                write (msg, '(a)') "Can't open file."
            end if
        else if (err_number == 904) then
            if (present(c_opt)) then
                write (msg, '(3a)') "Selected variable '", trim(adjustl(c_opt)), "' is not found in JSON file."
            else
                write (msg, '(a)') "Selected variable is not found in JSON file."
            end if
        else if (err_number == 905) then
            if (present(c_opt)) then
                write (msg, '(3a)') "Selected variable '", trim(adjustl(c_opt)), "' is invalid."
            else
                write (msg, '(a)') "Selected variable is invalid."
            end if
        else if (err_number == 906) then
            if (present(c_opt)) then
                write (msg, '(3a)') "Selected file '", trim(adjustl(c_opt)), "' is invalid"
            else
                write (msg, '(a)') "Selected file is invalid"
            end if
        else if (err_number == 911) then
            msg = "The number of elements must be positive."
        else if (err_number == 912) then
            msg = "The number of nodal must be positive."
        else if (err_number == 913) then
            msg = "The number of shape must be positive."
        else if (err_number == 914) then
            msg = "The number of dimention must be positive."
        else if (err_number == 915) then
            msg = "Dirichlet boundary conditions for water transport must be positive."
        else if (err_number == 916) then
            msg = "Dirichlet boundary conditions for heat transport must be positive."
        else if (err_number == 917) then
            msg = "The value of porosity must be positive."
        else if (err_number == 918) then
            msg = "The value of density must be positive."
        else if (err_number == 919) then
            msg = "The value of hydrulic conductivity must be positive."
        else if (err_number == 920) then
            msg = "The value of thermal conductivity must be positive."
        else if (err_number == 921) then
            msg = "The value of specific heat must be positive."
        else if (err_number == 922) then
            msg = "The value of latent heat must be positive."
        else if (err_number == 923) then
            msg = "The number of concering time information must be positive."
        else if (err_number == 924) then
            msg = "The initial and coolant temperature are same."
        else if (err_number == 928) then
            msg = "Two or more points are the same."
        else if (err_number == 929) then
            msg = "The number of array elements must be positive."
        else if (err_number == 930) then
            msg = "The number of matrix elements must be positive."

            ! reordering error message
        else if (err_number == 931) then
            if (present(c_opt)) then
                write (msg, fmt) "#", err_number, ": Could not find a starting node in "//trim(adjustl(c_opt))//"."
            else
                write (msg, fmt) "#", err_number, ": Could not find a starting node."
            end if
        else if (err_number == 932) then
            if (present(c_opt)) then
                write (msg, fmt) "#", err_number, ": Permutation is not ready in"//trim(adjustl(c_opt))//". Call reordering first."
            else
                write (msg, fmt) "#", err_number, ": Permutation is not ready. Call reordering first."
            end if

            ! solver error message
        else if (err_number == 933) then
            msg = "Solver type is not selected."
        else if (err_number == 934) then
            msg = "Freezing calculation is not selected."
        else if (err_number == 941) then
            msg = "The solution to the simultaneous linear equations could not be found."
        else if (err_number == 942) then
            msg = "LU decomposition could not be successed."
        else if (err_number == 943) then
            msg = "The inverse matrix could not be found."
        else if (err_number == 944) then
            msg = "The target result is too high."
        else if (err_number == 945) then
            msg = "The target result is too low."
        else if (err_number == 946) then
            msg = "The solution has been diverged."
        else if (err_number == 951) then
            write (msg, fmt) "#", err_number, ": Array is already allocated."
        else if (err_number == 952) then
            write (msg, fmt) "#", err_number, ": Invalid array length."
        else if (err_number == 953) then
            write (msg, fmt) "#", err_number, ": Requested index range is too large."
        else if (err_number == 954) then
            write (msg, fmt) "#", err_number, ": Invalid range - first index is greater than last."
        else if (err_number == 955) then
            write (msg, fmt) "#", err_number, ": Memory allocation failed."
        else if (err_number == 956) then
            write (msg, fmt) "#", err_number, ": Cannot specify both length and bounds."
        else if (err_number == 957) then
            write (msg, fmt) "#", err_number, ": Either length or bounds must be specified."
        else if (err_number == 958) then
            write (msg, fmt) "#", err_number, ": bounds array must have exactly 2 elements."
        else if (err_number == 961) then
            write (msg, '(a)') "Pointer has already allocated."
        else if (err_number == 971) then
            write (msg, fmt) "#", err_number, ": Memory deallocation failed."
        else
            msg = "Unknown error"
        end if

#ifdef _MPI
        if (myrank == 0) then
            call MPI_Finalize(ierr)
#endif

            call global_logger%log_error(message=msg)
            stop

#ifdef _MPI
        end if
#endif
    end subroutine error_message