driver_run Subroutine

public subroutine driver_run(cfg)

Compute-rank entry point. Runs the Arakawa C-grid + continuity-PPM split-RK2 ocean dynamical core in src/core/ocean/.

Arguments

Type IntentOptional Attributes Name
type(config_t), intent(inout) :: cfg

Calls

proc~~driver_run~~CallsGraph proc~driver_run driver_run proc~driver_run_ocean driver_run_ocean proc~driver_run->proc~driver_run_ocean get_elapsed_time get_elapsed_time proc~driver_run_ocean->get_elapsed_time get_knowledge get_knowledge proc~driver_run_ocean->get_knowledge info info proc~driver_run_ocean->info proc~comm_env_abort comm_env_abort proc~driver_run_ocean->proc~comm_env_abort proc~comm_env_compute_rank comm_env_compute_rank proc~driver_run_ocean->proc~comm_env_compute_rank proc~comm_env_compute_size comm_env_compute_size proc~driver_run_ocean->proc~comm_env_compute_size proc~comm_env_rank comm_env_rank proc~driver_run_ocean->proc~comm_env_rank proc~engine_enter_data engine_enter_data proc~driver_run_ocean->proc~engine_enter_data proc~engine_exit_data engine_exit_data proc~driver_run_ocean->proc~engine_exit_data proc~engine_setup engine_setup proc~driver_run_ocean->proc~engine_setup proc~engine_step engine_step proc~driver_run_ocean->proc~engine_step proc~engine_step_finalize engine_step_finalize proc~driver_run_ocean->proc~engine_step_finalize proc~engine_step_ice engine_step_ice proc~driver_run_ocean->proc~engine_step_ice proc~engine_teardown engine_teardown proc~driver_run_ocean->proc~engine_teardown proc~halo_allreduce_sum halo_allreduce_sum proc~driver_run_ocean->proc~halo_allreduce_sum proc~mem_host_rss_bytes mem_host_rss_bytes proc~driver_run_ocean->proc~mem_host_rss_bytes proc~mem_log_computed_budget mem_log_computed_budget proc~driver_run_ocean->proc~mem_log_computed_budget proc~mem_log_computed_line mem_log_computed_line proc~driver_run_ocean->proc~mem_log_computed_line proc~mem_log_device_actuals mem_log_device_actuals proc~driver_run_ocean->proc~mem_log_device_actuals proc~mem_log_device_growth mem_log_device_growth proc~driver_run_ocean->proc~mem_log_device_growth proc~mem_log_state_budget mem_log_state_budget proc~driver_run_ocean->proc~mem_log_state_budget proc~mem_set_counted_budget mem_set_counted_budget proc~driver_run_ocean->proc~mem_set_counted_budget proc~ocean_budget_stage_weight ocean_budget_stage_weight proc~driver_run_ocean->proc~ocean_budget_stage_weight proc~ocean_console_stats_report ocean_console_stats_report proc~driver_run_ocean->proc~ocean_console_stats_report proc~ocean_dyn_flush_tracer_window ocean_dyn_flush_tracer_window proc~driver_run_ocean->proc~ocean_dyn_flush_tracer_window proc~ocean_state_bytes ocean_state_t%ocean_state_bytes proc~driver_run_ocean->proc~ocean_state_bytes proc~ocean_state_restart_write ocean_state_restart_write proc~driver_run_ocean->proc~ocean_state_restart_write proc~output_rank_filename output_rank_filename proc~driver_run_ocean->proc~output_rank_filename proc~print_banner print_banner proc~driver_run_ocean->proc~print_banner proc~print_status_line print_status_line proc~driver_run_ocean->proc~print_status_line proc~profiler_end profiler_end proc~driver_run_ocean->proc~profiler_end proc~profiler_init profiler_init proc~driver_run_ocean->proc~profiler_init proc~profiler_report profiler_report proc~driver_run_ocean->proc~profiler_report proc~profiler_start profiler_start proc~driver_run_ocean->proc~profiler_start proc~profiler_stop profiler_stop proc~driver_run_ocean->proc~profiler_stop proc~report_throughput report_throughput proc~driver_run_ocean->proc~report_throughput start start proc~driver_run_ocean->start to_char_count to_char_count proc~driver_run_ocean->to_char_count to_string to_string proc~driver_run_ocean->to_string warning warning proc~driver_run_ocean->warning abort_comm abort_comm proc~comm_env_abort->abort_comm interface~ocean_halo_face_x ocean_halo_face_x proc~engine_enter_data->interface~ocean_halo_face_x proc~ocean_dyn_enable_bt_wide ocean_dyn_enable_bt_wide proc~engine_enter_data->proc~ocean_dyn_enable_bt_wide proc~ocean_halo_bt_group_2d ocean_halo_bt_group_2d proc~engine_enter_data->proc~ocean_halo_bt_group_2d proc~ocean_halo_bt_group_2d_wide ocean_halo_bt_group_2d_wide proc~engine_enter_data->proc~ocean_halo_bt_group_2d_wide proc~ocean_halo_exchange_ml_state ocean_halo_exchange_ml_state proc~engine_enter_data->proc~ocean_halo_exchange_ml_state proc~ocean_state_enter_data ocean_state_enter_data proc~engine_enter_data->proc~ocean_state_enter_data proc~ice_ocean_stress_cleanup ice_ocean_stress_cleanup proc~engine_exit_data->proc~ice_ocean_stress_cleanup proc~ocean_state_exit_data ocean_state_exit_data proc~engine_exit_data->proc~ocean_state_exit_data proc~engine_setup->info proc~engine_setup->proc~output_rank_filename proc~engine_setup->to_string proc~engine_setup->warning f_rows f_rows proc~engine_setup->f_rows interface~ocean_fold_north_corner ocean_fold_north_corner proc~engine_setup->interface~ocean_fold_north_corner interface~ocean_halo_centre ocean_halo_centre proc~engine_setup->interface~ocean_halo_centre proc~engine_setup->interface~ocean_halo_face_x proc~bt_halo_auto_exclusion bt_halo_auto_exclusion proc~engine_setup->proc~bt_halo_auto_exclusion proc~configure_ocean_bc configure_ocean_bc proc~engine_setup->proc~configure_ocean_bc proc~configure_ocean_bt configure_ocean_bt proc~engine_setup->proc~configure_ocean_bt proc~configure_ocean_bt_split configure_ocean_bt_split proc~engine_setup->proc~configure_ocean_bt_split proc~configure_ocean_cavity configure_ocean_cavity proc~engine_setup->proc~configure_ocean_cavity proc~configure_ocean_cavity_melt configure_ocean_cavity_melt proc~engine_setup->proc~configure_ocean_cavity_melt proc~configure_ocean_closed_faces configure_ocean_closed_faces proc~engine_setup->proc~configure_ocean_closed_faces proc~configure_ocean_drag configure_ocean_drag proc~engine_setup->proc~configure_ocean_drag proc~configure_ocean_forcing configure_ocean_forcing proc~engine_setup->proc~configure_ocean_forcing proc~configure_ocean_hdiff configure_ocean_hdiff proc~engine_setup->proc~configure_ocean_hdiff proc~configure_ocean_k_bot configure_ocean_k_bot proc~engine_setup->proc~configure_ocean_k_bot proc~configure_ocean_k_top configure_ocean_k_top proc~engine_setup->proc~configure_ocean_k_top proc~configure_ocean_land_mask configure_ocean_land_mask proc~engine_setup->proc~configure_ocean_land_mask proc~configure_ocean_lateral configure_ocean_lateral proc~engine_setup->proc~configure_ocean_lateral proc~configure_ocean_metrics configure_ocean_metrics proc~engine_setup->proc~configure_ocean_metrics proc~configure_ocean_p_surf configure_ocean_p_surf proc~engine_setup->proc~configure_ocean_p_surf proc~configure_ocean_pgf configure_ocean_pgf proc~engine_setup->proc~configure_ocean_pgf proc~configure_ocean_porous configure_ocean_porous proc~engine_setup->proc~configure_ocean_porous proc~configure_ocean_reference_density configure_ocean_reference_density proc~engine_setup->proc~configure_ocean_reference_density proc~configure_ocean_sponge configure_ocean_sponge proc~engine_setup->proc~configure_ocean_sponge proc~configure_ocean_tides configure_ocean_tides proc~engine_setup->proc~configure_ocean_tides proc~configure_ocean_top_drag configure_ocean_top_drag proc~engine_setup->proc~configure_ocean_top_drag proc~configure_ocean_tracers configure_ocean_tracers proc~engine_setup->proc~configure_ocean_tracers proc~configure_ocean_vmix configure_ocean_vmix proc~engine_setup->proc~configure_ocean_vmix proc~configure_ocean_wave_drag configure_ocean_wave_drag proc~engine_setup->proc~configure_ocean_wave_drag proc~configure_ocean_wetdry configure_ocean_wetdry proc~engine_setup->proc~configure_ocean_wetdry proc~configure_ocean_z_fixed_profile configure_ocean_z_fixed_profile proc~engine_setup->proc~configure_ocean_z_fixed_profile proc~decomp_auto_factor decomp_auto_factor proc~engine_setup->proc~decomp_auto_factor proc~decomp_init_from_config decomp_init_from_config proc~engine_setup->proc~decomp_init_from_config proc~decomp_log_summary decomp_log_summary proc~engine_setup->proc~decomp_log_summary proc~engine_configure_diag engine_configure_diag proc~engine_setup->proc~engine_configure_diag proc~fail fail proc~engine_setup->proc~fail proc~grid_init hgrid_t%grid_init proc~engine_setup->proc~grid_init proc~ice_evp_params_from_config ice_evp_params_from_config proc~engine_setup->proc~ice_evp_params_from_config proc~ice_ic_params_from_config ice_ic_params_from_config proc~engine_setup->proc~ice_ic_params_from_config proc~ice_init_apply ice_init_apply proc~engine_setup->proc~ice_init_apply proc~ice_ocean_stress_resume_apply ice_ocean_stress_resume_apply proc~engine_setup->proc~ice_ocean_stress_resume_apply proc~isopycnal_vanish_tol isopycnal_vanish_tol proc~engine_setup->proc~isopycnal_vanish_tol proc~metrics_assemble_from_supergrid_arrays metrics_assemble_from_supergrid_arrays proc~engine_setup->proc~metrics_assemble_from_supergrid_arrays proc~metrics_finalize metrics_finalize proc~engine_setup->proc~metrics_finalize proc~metrics_fold_periodic_ghosts metrics_fold_periodic_ghosts proc~engine_setup->proc~metrics_fold_periodic_ghosts proc~ocean_bc_state_set_edges ocean_bc_state_set_edges proc~engine_setup->proc~ocean_bc_state_set_edges proc~ocean_bc_state_set_topology ocean_bc_state_set_topology proc~engine_setup->proc~ocean_bc_state_set_topology proc~ocean_bc_type_from_string ocean_bc_type_from_string proc~engine_setup->proc~ocean_bc_type_from_string proc~ocean_data_forcing_configure ocean_data_forcing_configure proc~engine_setup->proc~ocean_data_forcing_configure proc~ocean_fold_exchange_init ocean_fold_exchange_init proc~engine_setup->proc~ocean_fold_exchange_init proc~ocean_fold_exchange_reserve ocean_fold_exchange_reserve proc~engine_setup->proc~ocean_fold_exchange_reserve proc~ocean_fold_wrap_eta_2d ocean_fold_wrap_eta_2d proc~engine_setup->proc~ocean_fold_wrap_eta_2d proc~ocean_fold_wrap_state ocean_fold_wrap_state proc~engine_setup->proc~ocean_fold_wrap_state proc~ocean_halo_exchange_ice_state ocean_halo_exchange_ice_state proc~engine_setup->proc~ocean_halo_exchange_ice_state proc~engine_setup->proc~ocean_halo_exchange_ml_state 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_kappa_shear_init_vertex ocean_kappa_shear_t%ocean_kappa_shear_init_vertex proc~engine_setup->proc~ocean_kappa_shear_init_vertex proc~ocean_periodic_wrap_centre_2d ocean_periodic_wrap_centre_2d proc~engine_setup->proc~ocean_periodic_wrap_centre_2d proc~ocean_periodic_wrap_state ocean_periodic_wrap_state proc~engine_setup->proc~ocean_periodic_wrap_state proc~ocean_pressure_force_set_bathymetry ocean_pressure_force_t%ocean_pressure_force_set_bathymetry proc~engine_setup->proc~ocean_pressure_force_set_bathymetry proc~ocean_sponge_snapshot_reference ocean_sponge_snapshot_reference proc~engine_setup->proc~ocean_sponge_snapshot_reference proc~ocean_stability_audit ocean_stability_audit proc~engine_setup->proc~ocean_stability_audit proc~ocean_state_init_from_config ocean_state_t%ocean_state_init_from_config proc~engine_setup->proc~ocean_state_init_from_config 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~ocean_surfflux_set_components ocean_surface_flux_t%ocean_surfflux_set_components proc~engine_setup->proc~ocean_surfflux_set_components proc~ocean_surfflux_set_const ocean_surface_flux_t%ocean_surfflux_set_const proc~engine_setup->proc~ocean_surfflux_set_const proc~ocean_surfflux_set_p_surf_const ocean_surface_flux_t%ocean_surfflux_set_p_surf_const proc~engine_setup->proc~ocean_surfflux_set_p_surf_const proc~ocean_surfflux_set_restore ocean_surface_flux_t%ocean_surfflux_set_restore proc~engine_setup->proc~ocean_surfflux_set_restore proc~ocean_surfflux_set_sw ocean_surface_flux_t%ocean_surfflux_set_sw proc~engine_setup->proc~ocean_surfflux_set_sw proc~ocean_vcoord_build_zref_full ocean_vcoord_t%ocean_vcoord_build_zref_full proc~engine_setup->proc~ocean_vcoord_build_zref_full proc~parse_ocean_vcoord_type parse_ocean_vcoord_type proc~engine_setup->proc~parse_ocean_vcoord_type proc~parse_remap_method parse_remap_method proc~engine_setup->proc~parse_remap_method proc~register_default_tracers register_default_tracers proc~engine_setup->proc~register_default_tracers proc~resolve_bt_halo resolve_bt_halo proc~engine_setup->proc~resolve_bt_halo proc~setup_failed setup_failed proc~engine_setup->proc~setup_failed proc~engine_step->proc~profiler_start proc~engine_step->proc~profiler_stop proc~constant_update ocean_boundary_data_constant_t%constant_update proc~engine_step->proc~constant_update proc~ocean_data_forcing_apply ocean_data_forcing_apply proc~engine_step->proc~ocean_data_forcing_apply proc~ocean_data_input_update_all ocean_data_input_update_all proc~engine_step->proc~ocean_data_input_update_all proc~ocean_dyn_step ocean_dyn_step proc~engine_step->proc~ocean_dyn_step proc~ocean_dyn_step_split ocean_dyn_step_split proc~engine_step->proc~ocean_dyn_step_split proc~ocean_porous_refresh ocean_porous_refresh proc~engine_step->proc~ocean_porous_refresh proc~ocean_sponge_refresh_target ocean_sponge_refresh_target proc~engine_step->proc~ocean_sponge_refresh_target proc~ocean_cavity_flux_step ocean_cavity_flux_step proc~engine_step_finalize->proc~ocean_cavity_flux_step proc~ocean_diag_step ocean_diag_t%ocean_diag_step proc~engine_step_finalize->proc~ocean_diag_step proc~ocean_dyn_is_thermo_step ocean_dyn_t%ocean_dyn_is_thermo_step proc~engine_step_finalize->proc~ocean_dyn_is_thermo_step proc~ocean_surface_flux_assemble ocean_surface_flux_assemble proc~engine_step_finalize->proc~ocean_surface_flux_assemble proc~ocean_surface_stress_set_shelf_from_ustar ocean_surface_stress_set_shelf_from_ustar proc~engine_step_finalize->proc~ocean_surface_stress_set_shelf_from_ustar proc~engine_step_ice->proc~profiler_start proc~engine_step_ice->proc~profiler_stop proc~engine_step_ice->to_string proc~engine_step_ice->warning error error proc~engine_step_ice->error proc~halo_allreduce_sum_i8 halo_allreduce_sum_i8 proc~engine_step_ice->proc~halo_allreduce_sum_i8 proc~ice_adjust_categories ice_adjust_categories proc~engine_step_ice->proc~ice_adjust_categories proc~ice_atm_forcing_restoring ice_atm_forcing_restoring proc~engine_step_ice->proc~ice_atm_forcing_restoring proc~ice_compute_basal_flux ice_compute_basal_flux proc~engine_step_ice->proc~ice_compute_basal_flux proc~ice_evp_step ice_evp_step proc~engine_step_ice->proc~ice_evp_step proc~ice_frazil_accumulate ice_frazil_accumulate proc~engine_step_ice->proc~ice_frazil_accumulate proc~ice_frazil_uptake ice_frazil_uptake proc~engine_step_ice->proc~ice_frazil_uptake proc~ice_ocean_brine_flux ice_ocean_brine_flux proc~engine_step_ice->proc~ice_ocean_brine_flux proc~ice_ocean_heat_flux ice_ocean_heat_flux proc~engine_step_ice->proc~ice_ocean_heat_flux proc~ice_ocean_stress_flux ice_ocean_stress_flux proc~engine_step_ice->proc~ice_ocean_stress_flux proc~ice_ocean_sw_flux ice_ocean_sw_flux proc~engine_step_ice->proc~ice_ocean_sw_flux proc~ice_snowfall_ocean_share ice_snowfall_ocean_share proc~engine_step_ice->proc~ice_snowfall_ocean_share proc~ice_thermo_driver_step ice_thermo_driver_step proc~engine_step_ice->proc~ice_thermo_driver_step proc~ice_transport_step ice_transport_step proc~engine_step_ice->proc~ice_transport_step proc~engine_step_ice->proc~ocean_dyn_is_thermo_step proc~ocean_dyn_therm_dt ocean_dyn_t%ocean_dyn_therm_dt proc~engine_step_ice->proc~ocean_dyn_therm_dt proc~ocean_halo_exchange_ice_fluxes ocean_halo_exchange_ice_fluxes proc~engine_step_ice->proc~ocean_halo_exchange_ice_fluxes proc~engine_step_ice->proc~ocean_halo_exchange_ice_state proc~ocean_halo_is_decomposed ocean_halo_is_decomposed proc~engine_step_ice->proc~ocean_halo_is_decomposed proc~close_stream close_stream proc~engine_teardown->proc~close_stream proc~ocean_fold_exchange_destroy ocean_fold_exchange_destroy proc~engine_teardown->proc~ocean_fold_exchange_destroy proc~ocean_geothermal_destroy ocean_geothermal_t%ocean_geothermal_destroy proc~engine_teardown->proc~ocean_geothermal_destroy proc~ocean_halo_destroy ocean_halo_destroy proc~engine_teardown->proc~ocean_halo_destroy allreduce allreduce proc~halo_allreduce_sum->allreduce proc~comm_env_compute_comm comm_env_compute_comm proc~halo_allreduce_sum->proc~comm_env_compute_comm proc~mem_log_computed_budget->info proc~mem_format_bytes mem_format_bytes proc~mem_log_computed_budget->proc~mem_format_bytes proc~mem_log_computed_line->info proc~mem_log_computed_line->proc~mem_format_bytes proc~mem_log_device_actuals->info proc~mem_log_device_actuals->warning proc~mem_device_free_bytes mem_device_free_bytes proc~mem_log_device_actuals->proc~mem_device_free_bytes proc~mem_device_total_bytes mem_device_total_bytes proc~mem_log_device_actuals->proc~mem_device_total_bytes proc~mem_log_device_actuals->proc~mem_format_bytes proc~mem_log_device_growth->info proc~mem_log_device_growth->warning proc~mem_device_used_bytes mem_device_used_bytes proc~mem_log_device_growth->proc~mem_device_used_bytes proc~mem_log_device_growth->proc~mem_format_bytes proc~mem_log_state_budget->info proc~mem_log_state_budget->to_string proc~mem_log_state_budget->warning proc~device_num device_num proc~mem_log_state_budget->proc~device_num proc~mem_log_state_budget->proc~mem_device_free_bytes proc~mem_log_state_budget->proc~mem_device_total_bytes proc~mem_log_state_budget->proc~mem_format_bytes proc~ocean_console_stats_report->info proc~ocean_console_stats_report->proc~halo_allreduce_sum proc~compute_ice_totals compute_ice_totals proc~ocean_console_stats_report->proc~compute_ice_totals proc~compute_ice_totals_efp compute_ice_totals_efp proc~ocean_console_stats_report->proc~compute_ice_totals_efp proc~compute_max_cfl compute_max_cfl proc~ocean_console_stats_report->proc~compute_max_cfl proc~compute_total_h compute_total_h proc~ocean_console_stats_report->proc~compute_total_h proc~compute_total_h_efp compute_total_h_efp proc~ocean_console_stats_report->proc~compute_total_h_efp proc~compute_total_ke compute_total_ke proc~ocean_console_stats_report->proc~compute_total_ke proc~compute_total_ke_efp compute_total_ke_efp proc~ocean_console_stats_report->proc~compute_total_ke_efp proc~compute_total_tracer compute_total_tracer proc~ocean_console_stats_report->proc~compute_total_tracer proc~compute_total_tracer_efp compute_total_tracer_efp proc~ocean_console_stats_report->proc~compute_total_tracer_efp proc~console_stats_report console_stats_report proc~ocean_console_stats_report->proc~console_stats_report proc~efp_from_real efp_from_real proc~ocean_console_stats_report->proc~efp_from_real proc~efp_to_real efp_to_real proc~ocean_console_stats_report->proc~efp_to_real proc~halo_allreduce_efp_list halo_allreduce_efp_list proc~ocean_console_stats_report->proc~halo_allreduce_efp_list proc~halo_allreduce_max halo_allreduce_max proc~ocean_console_stats_report->proc~halo_allreduce_max proc~ocean_budget_is_active ocean_budget_is_active proc~ocean_console_stats_report->proc~ocean_budget_is_active proc~ocean_budget_out ocean_budget_out proc~ocean_console_stats_report->proc~ocean_budget_out proc~ocean_budget_src ocean_budget_src proc~ocean_console_stats_report->proc~ocean_budget_src proc~ocean_frazil_heat_src ocean_frazil_heat_src proc~ocean_console_stats_report->proc~ocean_frazil_heat_src proc~ocean_heat_src_sum ocean_heat_src_sum proc~ocean_console_stats_report->proc~ocean_heat_src_sum proc~ocean_salt_src_sum ocean_salt_src_sum proc~ocean_console_stats_report->proc~ocean_salt_src_sum proc~oh_counters_format oh_counters_format proc~ocean_console_stats_report->proc~oh_counters_format proc~continuity_tracer_drain continuity_tracer_drain proc~ocean_dyn_flush_tracer_window->proc~continuity_tracer_drain proc~barotropic_state_bytes barotropic_state_t%barotropic_state_bytes proc~ocean_state_bytes->proc~barotropic_state_bytes proc~ocean_restart_write_local ocean_restart_write_local proc~ocean_state_restart_write->proc~ocean_restart_write_local proc~ocean_state_build_restart_registry ocean_state_build_restart_registry proc~ocean_state_restart_write->proc~ocean_state_build_restart_registry proc~ocean_state_fill_restart_metadata ocean_state_fill_restart_metadata proc~ocean_state_restart_write->proc~ocean_state_fill_restart_metadata proc~print_banner->get_knowledge proc~print_banner->info proc~print_status_line->info proc~profiler_report->info proc~find_or_create_region find_or_create_region proc~profiler_start->proc~find_or_create_region proc~get_wall_time get_wall_time proc~profiler_start->proc~get_wall_time proc~nvtx_range_push nvtx_range_push proc~profiler_start->proc~nvtx_range_push proc~profiler_stop->proc~get_wall_time proc~nvtx_range_pop nvtx_range_pop proc~profiler_stop->proc~nvtx_range_pop proc~report_throughput->info proc~report_throughput->to_string

Source Code

   subroutine driver_run(cfg)
      !! Compute-rank entry point.  Runs the Arakawa C-grid +
      !! continuity-PPM split-RK2 ocean dynamical core in `src/core/ocean/`.
      type(config_t), intent(inout) :: cfg

      call driver_run_ocean(cfg)
   end subroutine driver_run