handle_error Subroutine

public subroutine handle_error(message, status_code, line_number, file_name, additional_info)

Logs an error to stderr and stops the program. If status_code is PARALLAX_SUCCESS, this subroutine will do nothing.

If status_code has an undefined value, the subroutine will be executed but the undefined status_code will be printed. This usage should be avoided, instead valid status codes given in status_codes_m should be used.

Arguments

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

Error or warning message

integer, intent(in) :: status_code

Error or warning code

integer, intent(in) :: line_number

Line number where error or warning occured, i.e. LINE

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

File name where error or warning occured, i.e. FILE

type(error_info_t), intent(in), optional :: additional_info

Additional information


Calls

proc~~handle_error~~CallsGraph proc~handle_error handle_error none~handle_error error_handler_t%handle_error proc~handle_error->none~handle_error

Called by

proc~~handle_error~~CalledByGraph proc~handle_error handle_error none~init~18 kisslinger_t%init none~init~18->proc~handle_error none~polygon_at_tor_xsection kisslinger_t%polygon_at_tor_xsection none~polygon_at_tor_xsection->proc~handle_error proc~bnd_types_to_bnd_descrs bnd_types_to_bnd_descrs proc~bnd_types_to_bnd_descrs->proc~handle_error proc~build_helmholtz_csr build_helmholtz_csr proc~build_helmholtz_csr->proc~handle_error proc~check_fitting_coef dommaschk_t%check_fitting_coef proc~check_fitting_coef->proc~handle_error proc~create_equilibrium create_equilibrium proc~create_equilibrium->proc~handle_error proc~create_immersed create_immersed proc~create_immersed->proc~handle_error proc~csr_transpose csr_transpose proc~csr_transpose->proc~handle_error proc~display immersed_trace_t%display proc~display->proc~handle_error proc~display~10 immersed_rho_t%display proc~display~10->proc~handle_error proc~distance_to_boundary distance_to_boundary proc~distance_to_boundary->proc~handle_error proc~trace trace proc~distance_to_boundary->proc~trace proc~district divertor_equilibrium_t%district proc~district->proc~handle_error proc~district_flux_defined divertor_equilibrium_t%district_flux_defined proc~district->proc~district_flux_defined proc~district_flux_defined->proc~handle_error proc~generate_poincare_data generate_poincare_data proc~generate_poincare_data->proc~handle_error proc~generate_poincare_data->proc~trace proc~get_device_count get_device_count proc~get_device_count->proc~handle_error proc~get_dphi_shift get_dphi_shift proc~get_dphi_shift->proc~handle_error proc~get_equilibrium_identifier get_equilibrium_identifier proc~get_equilibrium_identifier->proc~handle_error proc~get_immersed_identifier get_immersed_identifier proc~get_immersed_identifier->proc~handle_error proc~impose_default_device_affinity impose_default_device_affinity proc~impose_default_device_affinity->proc~handle_error proc~impose_default_device_affinity->proc~get_device_count proc~set_device_id set_device_id proc~impose_default_device_affinity->proc~set_device_id proc~init immersed_trace_t%init proc~init->proc~handle_error proc~init->proc~distance_to_boundary proc~init->proc~get_dphi_shift proc~read_params_immersed_trace immersed_trace_t%read_params_immersed_trace proc~init->proc~read_params_immersed_trace proc~init_imn dommaschk_t%init_Imn proc~init_imn->proc~handle_error proc~init_mag_axis_loc dommaschk_t%init_mag_axis_loc proc~init_mag_axis_loc->proc~handle_error proc~init_mag_axis_loc->proc~trace proc~interpol1d interpol1d proc~interpol1d->proc~handle_error proc~read_circtor_bnd_params read_circtor_bnd_params proc~read_circtor_bnd_params->proc~handle_error proc~read_equi_params_flare_type read_equi_params_flare_type proc~read_equi_params_flare_type->proc~handle_error proc~read_flare_bnd_params read_flare_bnd_params proc~read_flare_bnd_params->proc~handle_error proc~read_flare_equi_params read_flare_equi_params proc~read_flare_equi_params->proc~handle_error proc~read_flare_rho_params read_flare_rho_params proc~read_flare_rho_params->proc~handle_error proc~read_netcdf csrmat_t%read_netcdf proc~read_netcdf->proc~handle_error proc~read_params_circular read_params_circular proc~read_params_circular->proc~handle_error proc~read_params_circular_toroidal read_params_circular_toroidal proc~read_params_circular_toroidal->proc~handle_error proc~read_params_dommaschk read_params_dommaschk proc~read_params_dommaschk->proc~handle_error proc~read_params_immersed_rho immersed_rho_t%read_params_immersed_rho proc~read_params_immersed_rho->proc~handle_error proc~read_params_immersed_trace->proc~handle_error proc~read_params_salpha read_params_salpha proc~read_params_salpha->proc~handle_error proc~read_params_slab read_params_slab proc~read_params_slab->proc~handle_error proc~rho~6 dommaschk_t%rho proc~rho~6->proc~handle_error proc~set_device_id->proc~handle_error proc~solver3d_factory solver3d_factory proc~solver3d_factory->proc~handle_error proc~sync_device sync_device proc~sync_device->proc~handle_error proc~trace->proc~handle_error proc~write_circtor_bnd_params write_circtor_bnd_params proc~write_circtor_bnd_params->proc~handle_error proc~write_equi_params_flare_type write_equi_params_flare_type proc~write_equi_params_flare_type->proc~handle_error proc~write_flare_bnd_params write_flare_bnd_params proc~write_flare_bnd_params->proc~handle_error proc~write_flare_equi_params write_flare_equi_params proc~write_flare_equi_params->proc~handle_error proc~write_flare_rho_params write_flare_rho_params proc~write_flare_rho_params->proc~handle_error proc~write_params_circular write_params_circular proc~write_params_circular->proc~handle_error proc~write_params_circular_toroidal write_params_circular_toroidal proc~write_params_circular_toroidal->proc~handle_error proc~write_params_dommaschk write_params_dommaschk proc~write_params_dommaschk->proc~handle_error proc~write_params_salpha write_params_salpha proc~write_params_salpha->proc~handle_error proc~write_params_slab write_params_slab proc~write_params_slab->proc~handle_error program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->proc~handle_error program~benchmark_helmholtz_solvers->proc~create_equilibrium program~benchmark_helmholtz_solvers->proc~get_equilibrium_identifier program~benchmark_helmholtz_solvers->proc~impose_default_device_affinity proc~write_netcdf_helmholtz write_netcdf_helmholtz program~benchmark_helmholtz_solvers->proc~write_netcdf_helmholtz program~diagnose_poincare diagnose_poincare program~diagnose_poincare->proc~handle_error program~diagnose_poincare->proc~create_equilibrium program~diagnose_poincare->proc~generate_poincare_data program~diagnose_poincare->proc~get_equilibrium_identifier program~test_diffusion test_diffusion program~test_diffusion->proc~handle_error program~test_diffusion->proc~create_equilibrium program~test_diffusion->proc~get_equilibrium_identifier program~test_diffusion->proc~trace proc~complete_support_map complete_support_map program~test_diffusion->proc~complete_support_map proc~write_vtk_mesh write_vtk_mesh program~test_diffusion->proc~write_vtk_mesh proc~complete_support_map->proc~trace proc~connection_length connection_length proc~connection_length->proc~distance_to_boundary proc~in_vessel divertor_equilibrium_t%in_vessel proc~in_vessel->proc~district proc~in_vessel~6 dommaschk_t%in_vessel proc~in_vessel~6->none~polygon_at_tor_xsection proc~mag_axis_loc~6 dommaschk_t%mag_axis_loc proc~in_vessel~6->proc~mag_axis_loc~6 proc~init~5 slab_t%init proc~init~5->proc~read_params_slab proc~init~8 dommaschk_t%init proc~init~8->none~init~18 proc~init~8->proc~check_fitting_coef proc~init~8->proc~init_imn proc~init~8->proc~init_mag_axis_loc proc~init~8->proc~read_params_dommaschk proc~init~9 immersed_rho_t%init proc~init~9->proc~read_params_immersed_rho proc~mag_axis_loc~6->proc~interpol1d proc~shortest_dist_to_bound shortest_dist_to_bound proc~shortest_dist_to_bound->proc~distance_to_boundary proc~write_netcdf_helmholtz->proc~build_helmholtz_csr proc~write_vtk_mesh->proc~trace