fatal_error Subroutine

public subroutine fatal_error(scope, message)

Aborts the simulation with a formatted error message.

This routine should be used for unrecoverable errors (e.g., missing input files, converged solver failures). It writes to standard error and calls stop 1.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: scope

The name of the module or feature (e.g., "mod_input").

character(len=*), intent(in) :: message

Descriptive message explaining why the simulation failed.


Called by

proc~~fatal_error~~CalledByGraph proc~fatal_error mod_kinds::fatal_error proc~advance_energy_transport mod_energy::advance_energy_transport proc~advance_energy_transport->proc~fatal_error proc~build_boundary_thermo_y mod_energy::build_boundary_thermo_Y proc~advance_energy_transport->proc~build_boundary_thermo_y proc~energy_face_normal_distance mod_energy::energy_face_normal_distance proc~advance_energy_transport->proc~energy_face_normal_distance proc~recover_temperature_and_update_thermo_cantera mod_energy::recover_temperature_and_update_thermo_cantera proc~advance_energy_transport->proc~recover_temperature_and_update_thermo_cantera proc~recover_temperature_constant_cp mod_energy::recover_temperature_constant_cp proc~advance_energy_transport->proc~recover_temperature_constant_cp proc~boundary_enthalpy_from_temperature mod_energy::boundary_enthalpy_from_temperature proc~advance_energy_transport->proc~boundary_enthalpy_from_temperature proc~flow_exchange_cell_scalar mod_mpi_flow::flow_exchange_cell_scalar proc~advance_energy_transport->proc~flow_exchange_cell_scalar proc~append_cell_face mod_mesh_io::append_cell_face proc~append_cell_face->proc~fatal_error proc~balance_neumann_outlet_flux mod_flow_projection::balance_neumann_outlet_flux proc~balance_neumann_outlet_flux->proc~fatal_error proc~check_mpi mod_flow_projection::check_mpi proc~balance_neumann_outlet_flux->proc~check_mpi proc~build_bc_set mod_bc::build_bc_set proc~build_bc_set->proc~fatal_error proc~ensure_periodic_links mod_bc::ensure_periodic_links proc~build_bc_set->proc~ensure_periodic_links proc~parse_bc_type mod_bc::parse_bc_type proc~build_bc_set->proc~parse_bc_type proc~build_boundary_thermo_y->proc~fatal_error proc~build_cell_faces mod_mesh_io::build_cell_faces proc~build_cell_faces->proc~fatal_error proc~build_cell_faces->proc~append_cell_face proc~build_thermo_y mod_energy::build_thermo_Y proc~build_thermo_y->proc~fatal_error proc~check_mpi->proc~fatal_error proc~check_mpi~2 mod_mpi_flow::check_mpi proc~check_mpi~2->proc~fatal_error proc~check_mpi~4 mod_mpi_radiation::check_mpi proc~check_mpi~4->proc~fatal_error proc~compute_momentum_rhs mod_flow_projection::compute_momentum_rhs proc~compute_momentum_rhs->proc~fatal_error proc~face_normal_distance mod_flow_projection::face_normal_distance proc~compute_momentum_rhs->proc~face_normal_distance proc~face_linear_vector mod_flow_projection::face_linear_vector proc~compute_momentum_rhs->proc~face_linear_vector proc~pressure_gradient_cell mod_flow_projection::pressure_gradient_cell proc~compute_momentum_rhs->proc~pressure_gradient_cell proc~energy_face_normal_distance->proc~fatal_error proc~ensure_periodic_links->proc~fatal_error proc~ensure_pressure_operator_cache mod_flow_projection::ensure_pressure_operator_cache proc~ensure_pressure_operator_cache->proc~fatal_error proc~ensure_pressure_operator_cache->proc~face_normal_distance proc~enthalpy_from_temperature_cantera_point mod_energy::enthalpy_from_temperature_cantera_point proc~enthalpy_from_temperature_cantera_point->proc~fatal_error proc~face_neighbor_weight mod_flow_projection::face_neighbor_weight proc~face_neighbor_weight->proc~fatal_error proc~face_normal_distance->proc~fatal_error proc~flow_allgather_owned_matrix mod_mpi_flow::flow_allgather_owned_matrix proc~flow_allgather_owned_matrix->proc~fatal_error proc~flow_allgather_owned_matrix->proc~check_mpi~2 proc~prepare_matrix_gather mod_mpi_flow::prepare_matrix_gather proc~flow_allgather_owned_matrix->proc~prepare_matrix_gather proc~flow_allgather_owned_scalar mod_mpi_flow::flow_allgather_owned_scalar proc~flow_allgather_owned_scalar->proc~fatal_error proc~flow_allgather_owned_scalar->proc~check_mpi~2 proc~flow_allgather_owned_v4 mod_mpi_flow::flow_allgather_owned_v4 proc~flow_allgather_owned_v4->proc~fatal_error proc~flow_allgather_owned_v4->proc~check_mpi~2 proc~flow_allgather_owned_v4->proc~prepare_matrix_gather proc~flow_exchange_cell_matrix mod_mpi_flow::flow_exchange_cell_matrix proc~flow_exchange_cell_matrix->proc~fatal_error proc~flow_exchange_cell_matrix->proc~check_mpi~2 proc~get_case_filename lowmach_react_hex::get_case_filename proc~get_case_filename->proc~fatal_error proc~parse_bc_type->proc~fatal_error proc~prepare_matrix_gather->proc~fatal_error proc~prepare_output mod_output::prepare_output proc~prepare_output->proc~fatal_error proc~radiation_task_bounds mod_mpi_radiation::radiation_task_bounds proc~radiation_task_bounds->proc~fatal_error proc~read_boundary_input mod_input::read_boundary_input proc~read_boundary_input->proc~fatal_error proc~read_cells mod_mesh_io::read_cells proc~read_cells->proc~fatal_error proc~read_energy_input mod_input::read_energy_input proc~read_energy_input->proc~fatal_error proc~read_faces mod_mesh_io::read_faces proc~read_faces->proc~fatal_error proc~read_fluid_input mod_input::read_fluid_input proc~read_fluid_input->proc~fatal_error proc~read_mesh_input mod_input::read_mesh_input proc~read_mesh_input->proc~fatal_error proc~read_output_input mod_input::read_output_input proc~read_output_input->proc~fatal_error proc~read_patches mod_mesh_io::read_patches proc~read_patches->proc~fatal_error proc~read_periodic_optional mod_mesh_io::read_periodic_optional proc~read_periodic_optional->proc~fatal_error proc~read_points mod_mesh_io::read_points proc~read_points->proc~fatal_error proc~read_profiling_input mod_input::read_profiling_input proc~read_profiling_input->proc~fatal_error proc~read_solver_input mod_input::read_solver_input proc~read_solver_input->proc~fatal_error proc~read_species_input mod_input::read_species_input proc~read_species_input->proc~fatal_error proc~read_time_input mod_input::read_time_input proc~read_time_input->proc~fatal_error proc~recover_temperature_and_update_thermo_cantera->proc~fatal_error proc~recover_temperature_and_update_thermo_cantera->proc~build_thermo_y proc~recover_temperature_cantera mod_energy::recover_temperature_cantera proc~recover_temperature_cantera->proc~fatal_error proc~recover_temperature_cantera->proc~build_thermo_y proc~recover_temperature_constant_cp->proc~fatal_error proc~setup_owned_gather mod_mpi_flow::setup_owned_gather proc~setup_owned_gather->proc~fatal_error proc~setup_owned_gather->proc~check_mpi~2 proc~update_enthalpy_from_temperature_constant_cp mod_energy::update_enthalpy_from_temperature_constant_cp proc~update_enthalpy_from_temperature_constant_cp->proc~fatal_error proc~update_thermo_from_temperature_cantera mod_energy::update_thermo_from_temperature_cantera proc~update_thermo_from_temperature_cantera->proc~fatal_error proc~update_thermo_from_temperature_cantera->proc~build_thermo_y proc~update_transport_properties mod_transport_properties::update_transport_properties proc~update_transport_properties->proc~fatal_error proc~update_transport_properties->proc~flow_exchange_cell_matrix proc~update_transport_properties->proc~flow_exchange_cell_scalar proc~validate_boundary_arrays mod_input::validate_boundary_arrays proc~validate_boundary_arrays->proc~fatal_error proc~validate_hex_connectivity mod_output::validate_hex_connectivity proc~validate_hex_connectivity->proc~fatal_error proc~validate_params mod_input::validate_params proc~validate_params->proc~fatal_error proc~validate_params->proc~validate_boundary_arrays proc~write_energy_diagnostics_row mod_energy::write_energy_diagnostics_row proc~write_energy_diagnostics_row->proc~fatal_error proc~write_vtu_unstructured mod_output::write_vtu_unstructured proc~write_vtu_unstructured->proc~fatal_error program~lowmach_react_hex lowmach_react_hex program~lowmach_react_hex->proc~fatal_error program~lowmach_react_hex->proc~advance_energy_transport program~lowmach_react_hex->proc~build_bc_set program~lowmach_react_hex->proc~get_case_filename program~lowmach_react_hex->proc~prepare_output program~lowmach_react_hex->proc~update_transport_properties program~lowmach_react_hex->proc~write_energy_diagnostics_row program~lowmach_react_hex->proc~write_vtu_unstructured proc~advance_projection_step mod_flow_projection::advance_projection_step program~lowmach_react_hex->proc~advance_projection_step proc~advance_species_transport mod_species::advance_species_transport program~lowmach_react_hex->proc~advance_species_transport proc~compute_and_update_cfl mod_flow_projection::compute_and_update_cfl program~lowmach_react_hex->proc~compute_and_update_cfl proc~compute_flow_diagnostics mod_flow_projection::compute_flow_diagnostics program~lowmach_react_hex->proc~compute_flow_diagnostics proc~flow_mpi_finalize mod_mpi_flow::flow_mpi_finalize program~lowmach_react_hex->proc~flow_mpi_finalize proc~flow_mpi_initialize mod_mpi_flow::flow_mpi_initialize program~lowmach_react_hex->proc~flow_mpi_initialize proc~initialize_energy mod_energy::initialize_energy program~lowmach_react_hex->proc~initialize_energy proc~mpi_flow_startup mod_mpi_flow::mpi_flow_startup program~lowmach_react_hex->proc~mpi_flow_startup proc~radiation_mpi_finalize mod_mpi_radiation::radiation_mpi_finalize program~lowmach_react_hex->proc~radiation_mpi_finalize proc~radiation_mpi_initialize mod_mpi_radiation::radiation_mpi_initialize program~lowmach_react_hex->proc~radiation_mpi_initialize proc~read_case_params mod_input::read_case_params program~lowmach_react_hex->proc~read_case_params proc~read_native_mesh mod_mesh_io::read_native_mesh program~lowmach_react_hex->proc~read_native_mesh proc~advance_projection_step->proc~balance_neumann_outlet_flux proc~advance_projection_step->proc~compute_momentum_rhs proc~advance_projection_step->proc~ensure_pressure_operator_cache proc~advance_projection_step->proc~flow_exchange_cell_matrix proc~advance_projection_step->proc~compute_flow_diagnostics proc~correct_face_flux mod_flow_projection::correct_face_flux proc~advance_projection_step->proc~correct_face_flux proc~advance_projection_step->proc~flow_exchange_cell_scalar proc~flow_exchange_face_scalar mod_mpi_flow::flow_exchange_face_scalar proc~advance_projection_step->proc~flow_exchange_face_scalar proc~solve_pressure_correction mod_flow_projection::solve_pressure_correction proc~advance_projection_step->proc~solve_pressure_correction proc~compute_predicted_face_flux mod_flow_projection::compute_predicted_face_flux proc~advance_projection_step->proc~compute_predicted_face_flux proc~correct_cell_velocity mod_flow_projection::correct_cell_velocity proc~advance_projection_step->proc~correct_cell_velocity proc~advance_species_transport->proc~face_normal_distance proc~advance_species_transport->proc~flow_exchange_cell_matrix proc~boundary_enthalpy_from_temperature->proc~enthalpy_from_temperature_cantera_point proc~compute_and_update_cfl->proc~check_mpi proc~compute_flow_diagnostics->proc~check_mpi proc~flow_global_max_owned mod_mpi_flow::flow_global_max_owned proc~compute_flow_diagnostics->proc~flow_global_max_owned proc~correct_face_flux->proc~face_normal_distance proc~face_linear_scalar mod_flow_projection::face_linear_scalar proc~face_linear_scalar->proc~face_neighbor_weight proc~face_linear_vector->proc~face_neighbor_weight proc~flow_allgather_owned_matrix_inplace mod_mpi_flow::flow_allgather_owned_matrix_inplace proc~flow_allgather_owned_matrix_inplace->proc~check_mpi~2 proc~flow_allgather_owned_matrix_inplace->proc~prepare_matrix_gather proc~flow_allgather_owned_vector mod_mpi_flow::flow_allgather_owned_vector proc~flow_allgather_owned_vector->proc~flow_allgather_owned_matrix proc~flow_allreduce_global_scalar mod_mpi_flow::flow_allreduce_global_scalar proc~flow_allreduce_global_scalar->proc~check_mpi~2 proc~flow_allreduce_global_vector mod_mpi_flow::flow_allreduce_global_vector proc~flow_allreduce_global_vector->proc~check_mpi~2 proc~flow_exchange_cell_scalar->proc~check_mpi~2 proc~flow_exchange_face_scalar->proc~check_mpi~2 proc~flow_gather_owned_matrix_root mod_mpi_flow::flow_gather_owned_matrix_root proc~flow_gather_owned_matrix_root->proc~check_mpi~2 proc~flow_gather_owned_matrix_root->proc~prepare_matrix_gather proc~flow_gather_owned_scalar_root mod_mpi_flow::flow_gather_owned_scalar_root proc~flow_gather_owned_scalar_root->proc~check_mpi~2 proc~flow_global_dot_owned mod_mpi_flow::flow_global_dot_owned proc~flow_global_dot_owned->proc~check_mpi~2 proc~flow_global_dots_owned mod_mpi_flow::flow_global_dots_owned proc~flow_global_dots_owned->proc~check_mpi~2 proc~flow_global_max_owned->proc~check_mpi~2 proc~flow_global_sum_owned mod_mpi_flow::flow_global_sum_owned proc~flow_global_sum_owned->proc~check_mpi~2 proc~flow_global_two_dots_owned mod_mpi_flow::flow_global_two_dots_owned proc~flow_global_two_dots_owned->proc~check_mpi~2 proc~flow_mpi_finalize->proc~check_mpi~2 proc~flow_mpi_initialize->proc~check_mpi~2 proc~flow_mpi_initialize->proc~setup_owned_gather proc~flow_mpi_initialize->proc~flow_mpi_finalize proc~initialize_energy->proc~update_enthalpy_from_temperature_constant_cp proc~initialize_energy->proc~update_thermo_from_temperature_cantera proc~mpi_flow_startup->proc~check_mpi~2 proc~pressure_matvec mod_flow_projection::pressure_matvec proc~pressure_matvec->proc~ensure_pressure_operator_cache proc~radiation_mpi_finalize->proc~check_mpi~4 proc~radiation_mpi_initialize->proc~check_mpi~4 proc~radiation_mpi_initialize->proc~radiation_task_bounds proc~radiation_mpi_initialize->proc~radiation_mpi_finalize proc~read_case_params->proc~read_boundary_input proc~read_case_params->proc~read_energy_input proc~read_case_params->proc~read_fluid_input proc~read_case_params->proc~read_mesh_input proc~read_case_params->proc~read_output_input proc~read_case_params->proc~read_profiling_input proc~read_case_params->proc~read_solver_input proc~read_case_params->proc~read_species_input proc~read_case_params->proc~read_time_input proc~read_case_params->proc~validate_params proc~read_native_mesh->proc~build_cell_faces proc~read_native_mesh->proc~read_cells proc~read_native_mesh->proc~read_faces proc~read_native_mesh->proc~read_patches proc~read_native_mesh->proc~read_periodic_optional proc~read_native_mesh->proc~read_points proc~solve_pressure_correction->proc~ensure_pressure_operator_cache proc~solve_pressure_correction->proc~flow_exchange_cell_scalar proc~solve_pressure_correction->proc~flow_global_dot_owned proc~solve_pressure_correction->proc~flow_global_two_dots_owned proc~solve_pressure_correction->proc~pressure_matvec proc~compute_predicted_face_flux->proc~face_linear_vector proc~correct_cell_velocity->proc~face_linear_scalar proc~pressure_gradient_cell->proc~face_linear_scalar

Source Code

   subroutine fatal_error(scope, message)
      character(len=*), intent(in) :: scope
      character(len=*), intent(in) :: message

      write(error_unit,'(a,": ",a)') trim(scope), trim(message)
      stop 1
   end subroutine fatal_error