error_ring_push Subroutine

public subroutine error_ring_push(msg)

Push one message; error_ring_get(0) is always the most recent. Overwrites the oldest slot once full.

Arguments

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

Called by

proc~~error_ring_push~~CalledByGraph proc~error_ring_push error_ring_push proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~error_ring_push proc~engine_setup engine_setup proc~complete_ocean_create->proc~engine_setup proc~derived_requires_fail derived_requires_fail proc~derived_requires_fail->proc~error_ring_push proc~fail fail proc~fail->proc~error_ring_push proc~multilayer_register_passive_tracer multilayer_state_t%multilayer_register_passive_tracer proc~multilayer_register_passive_tracer->proc~error_ring_push proc~ocean_pseudo_salt_register ocean_pseudo_salt_register proc~ocean_pseudo_salt_register->proc~error_ring_push proc~ocean_pseudo_salt_register->proc~multilayer_register_passive_tracer proc~ocean_restart_check_decomp ocean_restart_check_decomp proc~ocean_restart_check_decomp->proc~error_ring_push proc~nc_close nc_close proc~ocean_restart_check_decomp->proc~nc_close proc~nc_get_att_int nc_get_att_int proc~ocean_restart_check_decomp->proc~nc_get_att_int proc~nc_open_read nc_open_read proc~ocean_restart_check_decomp->proc~nc_open_read proc~ocean_restart_read_local ocean_restart_read_local proc~ocean_restart_read_local->proc~error_ring_push proc~ocean_restart_read_local->proc~ocean_restart_check_decomp proc~nc_check nc_check proc~ocean_restart_read_local->proc~nc_check proc~ocean_restart_read_local->proc~nc_close proc~nc_get_varid nc_get_varid proc~ocean_restart_read_local->proc~nc_get_varid proc~ocean_restart_read_local->proc~nc_open_read proc~ocean_restart_write_local ocean_restart_write_local proc~ocean_restart_write_local->proc~error_ring_push proc~ocean_restart_write_local->proc~nc_check proc~ocean_restart_write_local->proc~nc_close proc~nc_create_file nc_create_file proc~ocean_restart_write_local->proc~nc_create_file proc~nc_def_dim nc_def_dim proc~ocean_restart_write_local->proc~nc_def_dim proc~nc_enddef nc_enddef proc~ocean_restart_write_local->proc~nc_enddef proc~nc_put_att_global nc_put_att_global proc~ocean_restart_write_local->proc~nc_put_att_global proc~nc_put_att_global_int nc_put_att_global_int proc~ocean_restart_write_local->proc~nc_put_att_global_int proc~restart_io_ok restart_io_ok proc~ocean_restart_write_local->proc~restart_io_ok proc~post_parse_validate post_parse_validate proc~post_parse_validate->proc~error_ring_push proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~error_ring_push proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~error_ring_push proc~rdb_ocean_create_from_string->proc~complete_ocean_create proc~build_pending_handle build_pending_handle proc~rdb_ocean_create_from_string->proc~build_pending_handle proc~rdb_ocean_create_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~error_ring_push proc~rdb_ocean_create_pending->proc~build_pending_handle proc~read_config_from_string_impl read_config_from_string_impl proc~read_config_from_string_impl->proc~error_ring_push proc~schema_parse_lines nml_schema_t%schema_parse_lines proc~read_config_from_string_impl->proc~schema_parse_lines proc~read_config_impl read_config_impl proc~read_config_impl->proc~error_ring_push proc~schema_parse nml_schema_t%schema_parse proc~read_config_impl->proc~schema_parse proc~register_derived register_derived proc~register_derived->proc~error_ring_push proc~register_derived->proc~derived_requires_fail proc~validate_config validate_config proc~validate_config->proc~error_ring_push proc~validate_config->proc~fail proc~apply_diag_selection apply_diag_selection proc~apply_diag_selection->proc~register_derived proc~apply_layer_rho_init apply_layer_rho_init proc~apply_layer_rho_init->proc~fail proc~bathymetry_normalise_sign bathymetry_normalise_sign proc~bathymetry_normalise_sign->proc~fail proc~build_pending_handle->proc~validate_config proc~read_config_from_string read_config_from_string proc~build_pending_handle->proc~read_config_from_string proc~check_time_mode check_time_mode proc~check_time_mode->proc~fail proc~configure_obc_edge_nodal configure_obc_edge_nodal proc~configure_obc_edge_nodal->proc~fail proc~configure_ocean_bc configure_ocean_bc proc~configure_ocean_bc->proc~fail proc~configure_ocean_bc->proc~configure_obc_edge_nodal proc~configure_ocean_cavity configure_ocean_cavity proc~configure_ocean_cavity->proc~fail proc~configure_ocean_cavity_melt configure_ocean_cavity_melt proc~configure_ocean_cavity_melt->proc~fail proc~configure_ocean_closed_faces configure_ocean_closed_faces proc~configure_ocean_closed_faces->proc~fail proc~refuse_open_zfixed_staircase refuse_open_zfixed_staircase proc~configure_ocean_closed_faces->proc~refuse_open_zfixed_staircase proc~configure_ocean_conv configure_ocean_conv proc~configure_ocean_conv->proc~fail proc~configure_ocean_ddiff configure_ocean_ddiff proc~configure_ocean_ddiff->proc~fail proc~configure_ocean_drag configure_ocean_drag proc~configure_ocean_drag->proc~fail proc~configure_ocean_epbl configure_ocean_epbl proc~configure_ocean_epbl->proc~fail proc~configure_ocean_foxkemper configure_ocean_foxkemper proc~configure_ocean_foxkemper->proc~fail proc~configure_ocean_kappa_shear configure_ocean_kappa_shear proc~configure_ocean_kappa_shear->proc~fail proc~configure_ocean_lateral configure_ocean_lateral proc~configure_ocean_lateral->proc~fail proc~configure_ocean_lateral->proc~configure_ocean_conv proc~configure_ocean_lateral->proc~configure_ocean_ddiff proc~configure_ocean_lateral->proc~configure_ocean_epbl proc~configure_ocean_lateral->proc~configure_ocean_foxkemper proc~configure_ocean_lateral->proc~configure_ocean_kappa_shear proc~configure_ocean_tidal_mixing configure_ocean_tidal_mixing proc~configure_ocean_lateral->proc~configure_ocean_tidal_mixing proc~configure_ocean_wavespeed configure_ocean_wavespeed proc~configure_ocean_lateral->proc~configure_ocean_wavespeed proc~configure_ocean_metrics configure_ocean_metrics proc~configure_ocean_metrics->proc~fail proc~metrics_fill_from_supergrid metrics_fill_from_supergrid proc~configure_ocean_metrics->proc~metrics_fill_from_supergrid proc~configure_ocean_pgf configure_ocean_pgf proc~configure_ocean_pgf->proc~fail proc~eos_validate eos_validate proc~configure_ocean_pgf->proc~eos_validate proc~configure_ocean_porous configure_ocean_porous proc~configure_ocean_porous->proc~fail proc~configure_ocean_tidal_mixing->proc~fail proc~configure_ocean_tides configure_ocean_tides proc~configure_ocean_tides->proc~fail proc~parse_constituent_list parse_constituent_list proc~configure_ocean_tides->proc~parse_constituent_list proc~configure_ocean_vmix configure_ocean_vmix proc~configure_ocean_vmix->proc~fail proc~configure_ocean_wave_drag configure_ocean_wave_drag proc~configure_ocean_wave_drag->proc~fail proc~configure_ocean_wavespeed->proc~fail proc~engine_setup->proc~fail proc~engine_setup->proc~configure_ocean_bc proc~engine_setup->proc~configure_ocean_cavity proc~engine_setup->proc~configure_ocean_cavity_melt proc~engine_setup->proc~configure_ocean_closed_faces proc~engine_setup->proc~configure_ocean_drag proc~engine_setup->proc~configure_ocean_lateral proc~engine_setup->proc~configure_ocean_metrics proc~engine_setup->proc~configure_ocean_pgf proc~engine_setup->proc~configure_ocean_porous proc~engine_setup->proc~configure_ocean_tides proc~engine_setup->proc~configure_ocean_vmix proc~engine_setup->proc~configure_ocean_wave_drag proc~ocean_fold_exchange_init ocean_fold_exchange_init proc~engine_setup->proc~ocean_fold_exchange_init proc~ocean_halo_init ocean_halo_init proc~engine_setup->proc~ocean_halo_init proc~ocean_halo_reserve ocean_halo_reserve proc~engine_setup->proc~ocean_halo_reserve proc~ocean_stability_audit ocean_stability_audit proc~engine_setup->proc~ocean_stability_audit proc~ocean_state_restart_read ocean_state_restart_read proc~engine_setup->proc~ocean_state_restart_read proc~ocean_state_seed_from_cfg ocean_state_seed_from_cfg proc~engine_setup->proc~ocean_state_seed_from_cfg proc~engine_configure_diag engine_configure_diag proc~engine_setup->proc~engine_configure_diag proc~ocean_data_forcing_configure ocean_data_forcing_configure proc~engine_setup->proc~ocean_data_forcing_configure proc~ocean_state_init_from_config ocean_state_t%ocean_state_init_from_config proc~engine_setup->proc~ocean_state_init_from_config proc~eos_validate->proc~fail proc~find_var find_var proc~find_var->proc~fail proc~find_var->proc~nc_close proc~metrics_fill_from_supergrid->proc~fail proc~metrics_fill_from_supergrid->proc~nc_close proc~nc_get_dim_len nc_get_dim_len proc~metrics_fill_from_supergrid->proc~nc_get_dim_len proc~nc_get_var_slab_2d nc_get_var_slab_2d proc~metrics_fill_from_supergrid->proc~nc_get_var_slab_2d proc~nc_get_varid~2 nc_get_varid proc~metrics_fill_from_supergrid->proc~nc_get_varid~2 proc~metrics_fill_from_supergrid->proc~nc_open_read proc~supergrid_io_ok supergrid_io_ok proc~metrics_fill_from_supergrid->proc~supergrid_io_ok proc~nc_check->proc~fail proc~ocean_cavity_flux_step ocean_cavity_flux_step proc~ocean_cavity_flux_step->proc~fail proc~ocean_cavity_mass_step ocean_cavity_mass_step proc~ocean_cavity_mass_step->proc~fail proc~ocean_diag_set_output_density_levels ocean_diag_t%ocean_diag_set_output_density_levels proc~ocean_diag_set_output_density_levels->proc~fail proc~ocean_diag_set_output_sigma_levels ocean_diag_t%ocean_diag_set_output_sigma_levels proc~ocean_diag_set_output_sigma_levels->proc~fail proc~ocean_diag_set_output_z_levels ocean_diag_t%ocean_diag_set_output_z_levels proc~ocean_diag_set_output_z_levels->proc~fail proc~ocean_diag_set_output_zstar_levels ocean_diag_t%ocean_diag_set_output_zstar_levels proc~ocean_diag_set_output_zstar_levels->proc~fail proc~ocean_fold_exchange_init->proc~fail proc~ocean_halo_init->proc~fail proc~ocean_halo_reserve->proc~fail proc~ocean_stability_audit->proc~fail proc~ocean_state_init ocean_state_t%ocean_state_init proc~ocean_state_init->proc~ocean_pseudo_salt_register proc~ocean_state_restart_read->proc~fail proc~ocean_state_restart_read->proc~ocean_restart_read_local proc~ocean_state_restart_write ocean_state_restart_write proc~ocean_state_restart_write->proc~ocean_restart_write_local proc~ocean_state_restart_write_drop_field ocean_state_restart_write_drop_field proc~ocean_state_restart_write_drop_field->proc~ocean_restart_write_local proc~ocean_state_seed_from_cfg->proc~fail proc~ocean_state_seed_from_cfg->proc~apply_layer_rho_init proc~ocean_state_seed_from_cfg->proc~bathymetry_normalise_sign proc~seed_baroclinic_jet_ic seed_baroclinic_jet_ic proc~ocean_state_seed_from_cfg->proc~seed_baroclinic_jet_ic proc~seed_cavity_draft seed_cavity_draft proc~ocean_state_seed_from_cfg->proc~seed_cavity_draft proc~seed_eady_ic seed_eady_ic proc~ocean_state_seed_from_cfg->proc~seed_eady_ic proc~seed_geostrophic_adjustment_ic seed_geostrophic_adjustment_ic proc~ocean_state_seed_from_cfg->proc~seed_geostrophic_adjustment_ic proc~load_bathymetry_into_array load_bathymetry_into_array proc~ocean_state_seed_from_cfg->proc~load_bathymetry_into_array proc~seed_zinit_overlay seed_zinit_overlay proc~ocean_state_seed_from_cfg->proc~seed_zinit_overlay proc~parse_constituent_list->proc~fail proc~rdb_ocean_get_diagnostic_ptr rdb_ocean_get_diagnostic_ptr proc~rdb_ocean_get_diagnostic_ptr->proc~fail proc~rdb_ocean_get_tracer_ptr rdb_ocean_get_tracer_ptr proc~rdb_ocean_get_tracer_ptr->proc~fail proc~rdb_ocean_set_bathymetry rdb_ocean_set_bathymetry proc~rdb_ocean_set_bathymetry->proc~fail proc~rdb_ocean_set_h rdb_ocean_set_h proc~rdb_ocean_set_h->proc~fail proc~rdb_ocean_set_heat_flux rdb_ocean_set_heat_flux proc~rdb_ocean_set_heat_flux->proc~fail proc~rdb_ocean_set_salt_flux rdb_ocean_set_salt_flux proc~rdb_ocean_set_salt_flux->proc~fail proc~rdb_ocean_set_tracer rdb_ocean_set_tracer proc~rdb_ocean_set_tracer->proc~fail proc~rdb_ocean_set_u rdb_ocean_set_u proc~rdb_ocean_set_u->proc~fail proc~rdb_ocean_set_v rdb_ocean_set_v proc~rdb_ocean_set_v->proc~fail proc~rdb_ocean_set_wind rdb_ocean_set_wind proc~rdb_ocean_set_wind->proc~fail proc~read_config read_config proc~read_config->proc~read_config_impl proc~read_config_from_string->proc~read_config_from_string_impl proc~read_dims read_dims proc~read_dims->proc~fail proc~read_dims->proc~nc_check proc~read_dims->proc~nc_close proc~zinit_io_ok zinit_io_ok proc~read_dims->proc~zinit_io_ok proc~refuse_open_zfixed_staircase->proc~fail proc~register_common register_common proc~register_common->proc~fail proc~register_common->proc~nc_check proc~register_common->proc~nc_close proc~nc_get_var_1d nc_get_var_1d proc~register_common->proc~nc_get_var_1d proc~register_common->proc~nc_open_read proc~data_input_read_slab_impl data_input_read_slab_impl proc~register_common->proc~data_input_read_slab_impl proc~reg_io_ok reg_io_ok proc~register_common->proc~reg_io_ok proc~register_tag register_tag proc~register_tag->proc~fail proc~ocean_data_input_register_2d ocean_data_input_register_2d proc~register_tag->proc~ocean_data_input_register_2d proc~resolve_flux_targets resolve_flux_targets proc~resolve_flux_targets->proc~fail proc~schema_parse->proc~post_parse_validate proc~schema_parse_lines->proc~post_parse_validate proc~seed_baroclinic_jet_ic->proc~fail proc~seed_cavity_draft->proc~fail proc~ocean_data_input_load_static_2d ocean_data_input_load_static_2d proc~seed_cavity_draft->proc~ocean_data_input_load_static_2d proc~seed_eady_ic->proc~fail proc~seed_geostrophic_adjustment_ic->proc~fail proc~seed_ts_from_zfile seed_ts_from_zfile proc~seed_ts_from_zfile->proc~fail proc~seed_ts_from_zfile->proc~find_var proc~seed_ts_from_zfile->proc~read_dims proc~seed_ts_from_zfile->proc~nc_close proc~seed_ts_from_zfile->proc~nc_get_var_1d proc~seed_ts_from_zfile->proc~nc_open_read proc~read_field_xyz read_field_xyz proc~seed_ts_from_zfile->proc~read_field_xyz proc~seed_ts_from_zfile->proc~zinit_io_ok proc~seed_ts_linear_z seed_ts_linear_z proc~seed_ts_linear_z->proc~fail proc~segment_geometry segment_geometry proc~segment_geometry->proc~fail proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_run_ocean->proc~ocean_state_restart_write proc~engine_step_finalize engine_step_finalize proc~driver_run_ocean->proc~engine_step_finalize proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~engine_configure_diag->proc~apply_diag_selection proc~engine_configure_diag->proc~ocean_diag_set_output_density_levels proc~engine_configure_diag->proc~ocean_diag_set_output_sigma_levels proc~engine_configure_diag->proc~ocean_diag_set_output_z_levels proc~engine_configure_diag->proc~ocean_diag_set_output_zstar_levels proc~open_stream open_stream proc~engine_configure_diag->proc~open_stream proc~engine_step_finalize->proc~ocean_cavity_flux_step proc~load_bathymetry_into_array->proc~nc_check proc~load_bathymetry_into_array->proc~nc_close proc~load_bathymetry_into_array->proc~nc_get_dim_len proc~load_bathymetry_into_array->proc~nc_get_var_slab_2d proc~load_bathymetry_into_array->proc~nc_open_read proc~bathy_io_ok bathy_io_ok proc~load_bathymetry_into_array->proc~bathy_io_ok proc~nc_close->proc~nc_check proc~nc_create_file->proc~nc_check proc~nc_def_dim->proc~nc_check proc~nc_def_var_2d nc_def_var_2d proc~nc_def_var_2d->proc~nc_check proc~nc_def_var_3d nc_def_var_3d proc~nc_def_var_3d->proc~nc_check proc~nc_def_var_4d nc_def_var_4d proc~nc_def_var_4d->proc~nc_check proc~nc_emit_post_fire nc_emit_post_fire proc~nc_emit_post_fire->proc~nc_check proc~nc_put_var_3d_slice nc_put_var_3d_slice proc~nc_emit_post_fire->proc~nc_put_var_3d_slice proc~nc_put_var_3d_slice_r4 nc_put_var_3d_slice_r4 proc~nc_emit_post_fire->proc~nc_put_var_3d_slice_r4 proc~nc_put_var_4d_slice nc_put_var_4d_slice proc~nc_emit_post_fire->proc~nc_put_var_4d_slice proc~nc_put_var_4d_slice_r4 nc_put_var_4d_slice_r4 proc~nc_emit_post_fire->proc~nc_put_var_4d_slice_r4 proc~nc_enddef->proc~nc_check proc~nc_get_att_int->proc~nc_check proc~nc_get_dim_len->proc~nc_check proc~nc_get_var_1d->proc~nc_check proc~nc_get_var_2d nc_get_var_2d proc~nc_get_var_2d->proc~nc_check proc~nc_get_var_3d nc_get_var_3d proc~nc_get_var_3d->proc~nc_check proc~nc_get_var_slab_2d->proc~nc_check proc~nc_get_var_slab_3d nc_get_var_slab_3d proc~nc_get_var_slab_3d->proc~nc_check proc~nc_get_varid->proc~nc_check proc~nc_get_varid~2->proc~nc_check proc~nc_open_read->proc~nc_check proc~nc_open_write nc_open_write proc~nc_open_write->proc~nc_check proc~nc_put_att nc_put_att proc~nc_put_att->proc~nc_check proc~nc_put_att_global->proc~nc_check proc~nc_put_att_global_int->proc~nc_check proc~nc_put_att_int nc_put_att_int proc~nc_put_att_int->proc~nc_check proc~nc_put_att_real nc_put_att_real proc~nc_put_att_real->proc~nc_check proc~nc_put_att_real_r4 nc_put_att_real_r4 proc~nc_put_att_real_r4->proc~nc_check proc~nc_put_var_2d nc_put_var_2d proc~nc_put_var_2d->proc~nc_check proc~nc_put_var_3d_slice->proc~nc_check proc~nc_put_var_3d_slice_r4->proc~nc_check proc~nc_put_var_4d_slice->proc~nc_check proc~nc_put_var_4d_slice_r4->proc~nc_check proc~ocean_data_forcing_configure->proc~check_time_mode proc~ocean_data_forcing_configure->proc~register_tag proc~ocean_data_forcing_configure->proc~resolve_flux_targets proc~ocean_data_input_register_2d->proc~register_common proc~ocean_data_input_register_3d ocean_data_input_register_3d proc~ocean_data_input_register_3d->proc~register_common proc~ocean_data_input_register_segment_2d ocean_data_input_register_segment_2d proc~ocean_data_input_register_segment_2d->proc~register_common proc~ocean_data_input_register_segment_2d->proc~segment_geometry proc~ocean_data_input_register_segment_3d ocean_data_input_register_segment_3d proc~ocean_data_input_register_segment_3d->proc~register_common proc~ocean_data_input_register_segment_3d->proc~segment_geometry proc~ocean_state_init_from_config->proc~ocean_state_init proc~rdb_def_var_1d rdb_def_var_1d proc~rdb_def_var_1d->proc~nc_check proc~rdb_put_var_1d rdb_put_var_1d proc~rdb_put_var_1d->proc~nc_check proc~rdb_put_var_2d_slice rdb_put_var_2d_slice proc~rdb_put_var_2d_slice->proc~nc_check proc~run_stage run_stage proc~run_stage->proc~ocean_cavity_mass_step proc~run_stage_split run_stage_split proc~run_stage_split->proc~ocean_cavity_mass_step proc~seed_zinit_overlay->proc~seed_ts_from_zfile proc~seed_zinit_overlay->proc~seed_ts_linear_z proc~bathy_io_ok->proc~nc_close proc~close_stream close_stream proc~close_stream->proc~nc_close proc~data_input_read_slab_impl->proc~nc_get_var_slab_3d proc~diag_io_ok diag_io_ok proc~diag_io_ok->proc~nc_close proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~ocean_data_input_destroy ocean_data_input_t%ocean_data_input_destroy proc~ocean_data_input_destroy->proc~nc_close proc~ocean_data_input_load_static_2d->proc~ocean_data_input_register_2d proc~ocean_data_input_load_static_2d->proc~ocean_data_input_destroy proc~ocean_dyn_step ocean_dyn_step proc~ocean_dyn_step->proc~run_stage proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~run_stage_split proc~open_stream->proc~nc_create_file proc~open_stream->proc~nc_def_dim proc~open_stream->proc~nc_def_var_3d proc~open_stream->proc~nc_def_var_4d proc~open_stream->proc~nc_enddef proc~open_stream->proc~nc_put_att proc~open_stream->proc~nc_put_att_global proc~open_stream->proc~nc_put_att_global_int proc~open_stream->proc~nc_put_att_real proc~open_stream->proc~nc_put_att_real_r4 proc~open_stream->proc~rdb_def_var_1d proc~open_stream->proc~diag_io_ok proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step_finalize proc~read_field_xyz->proc~nc_get_var_slab_3d proc~reg_io_ok->proc~nc_close proc~restart_io_ok->proc~nc_close proc~supergrid_io_ok->proc~nc_close proc~zinit_io_ok->proc~nc_close proc~data_input_refresh_brackets data_input_refresh_brackets proc~data_input_refresh_brackets->proc~data_input_read_slab_impl proc~engine_step engine_step proc~engine_step->proc~ocean_dyn_step proc~engine_step->proc~ocean_dyn_step_split proc~engine_teardown engine_teardown proc~engine_teardown->proc~close_stream proc~ocean_data_input_init ocean_data_input_t%ocean_data_input_init proc~ocean_data_input_init->proc~ocean_data_input_destroy

Source Code

   subroutine error_ring_push(msg)
      !! Push one message; `error_ring_get(0)` is always the most recent.
      !! Overwrites the oldest slot once full.
      character(len=*), intent(in) :: msg

      ring_head = mod(ring_head, ERROR_RING_SLOTS) + 1
      ring(ring_head) = msg
      if (ring_count < ERROR_RING_SLOTS) ring_count = ring_count + 1
   end subroutine error_ring_push