bt_wide_entry_exchange_impl Subroutine

private subroutine bt_wide_entry_exchange_impl(this)

Non-polymorphic entry_exchange body.

Arguments

Type IntentOptional Attributes Name
type(bt_wide_t), intent(inout) :: this

Calls

proc~~bt_wide_entry_exchange_impl~~CallsGraph proc~bt_wide_entry_exchange_impl bt_wide_entry_exchange_impl proc~ocean_halo_bt_group_2d_wide ocean_halo_bt_group_2d_wide proc~bt_wide_entry_exchange_impl->proc~ocean_halo_bt_group_2d_wide proc~ocean_halo_centre_2d_wide ocean_halo_centre_2d_wide proc~bt_wide_entry_exchange_impl->proc~ocean_halo_centre_2d_wide proc~ocean_halo_face_x_2d_wide ocean_halo_face_x_2d_wide proc~bt_wide_entry_exchange_impl->proc~ocean_halo_face_x_2d_wide proc~ocean_halo_face_y_2d_wide ocean_halo_face_y_2d_wide proc~bt_wide_entry_exchange_impl->proc~ocean_halo_face_y_2d_wide proc~profiler_start profiler_start proc~bt_wide_entry_exchange_impl->proc~profiler_start proc~profiler_stop profiler_stop proc~bt_wide_entry_exchange_impl->proc~profiler_stop proc~ocean_halo_buffers_ensure_wide ocean_halo_buffers_ensure_wide proc~ocean_halo_bt_group_2d_wide->proc~ocean_halo_buffers_ensure_wide proc~ocean_halo_centre_2d_impl ocean_halo_centre_2d_impl proc~ocean_halo_bt_group_2d_wide->proc~ocean_halo_centre_2d_impl proc~ocean_halo_face_x_2d_impl ocean_halo_face_x_2d_impl proc~ocean_halo_bt_group_2d_wide->proc~ocean_halo_face_x_2d_impl proc~ocean_halo_face_y_2d_impl ocean_halo_face_y_2d_impl proc~ocean_halo_bt_group_2d_wide->proc~ocean_halo_face_y_2d_impl proc~oh_count_bt_group oh_count_bt_group proc~ocean_halo_bt_group_2d_wide->proc~oh_count_bt_group proc~oh_count_suppress_off oh_count_suppress_off proc~ocean_halo_bt_group_2d_wide->proc~oh_count_suppress_off proc~oh_count_suppress_on oh_count_suppress_on proc~ocean_halo_bt_group_2d_wide->proc~oh_count_suppress_on proc~wide_halo_guards wide_halo_guards proc~ocean_halo_bt_group_2d_wide->proc~wide_halo_guards proc~ocean_halo_centre_2d_wide->proc~ocean_halo_buffers_ensure_wide proc~ocean_halo_centre_2d_wide->proc~ocean_halo_centre_2d_impl proc~oh_count_centre_2d oh_count_centre_2d proc~ocean_halo_centre_2d_wide->proc~oh_count_centre_2d proc~ocean_halo_centre_2d_wide->proc~wide_halo_guards proc~ocean_halo_face_x_2d_wide->proc~ocean_halo_buffers_ensure_wide proc~ocean_halo_face_x_2d_wide->proc~ocean_halo_face_x_2d_impl proc~oh_count_face_x_2d oh_count_face_x_2d proc~ocean_halo_face_x_2d_wide->proc~oh_count_face_x_2d proc~ocean_halo_face_x_2d_wide->proc~wide_halo_guards proc~ocean_halo_face_y_2d_wide->proc~ocean_halo_buffers_ensure_wide proc~ocean_halo_face_y_2d_wide->proc~ocean_halo_face_y_2d_impl proc~oh_count_face_y_2d oh_count_face_y_2d proc~ocean_halo_face_y_2d_wide->proc~oh_count_face_y_2d proc~ocean_halo_face_y_2d_wide->proc~wide_halo_guards 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 to_string to_string proc~ocean_halo_buffers_ensure_wide->to_string warning warning proc~ocean_halo_buffers_ensure_wide->warning comm_irecv_real_sp_array_n comm_irecv_real_sp_array_n proc~ocean_halo_centre_2d_impl->comm_irecv_real_sp_array_n comm_isend_real_sp_array_n comm_isend_real_sp_array_n proc~ocean_halo_centre_2d_impl->comm_isend_real_sp_array_n proc~comm_env_compute_comm comm_env_compute_comm proc~ocean_halo_centre_2d_impl->proc~comm_env_compute_comm proc~ew_rank_east ew_rank_east proc~ocean_halo_centre_2d_impl->proc~ew_rank_east proc~ew_rank_west ew_rank_west proc~ocean_halo_centre_2d_impl->proc~ew_rank_west proc~needs_flags needs_flags proc~ocean_halo_centre_2d_impl->proc~needs_flags proc~ns_rank_north ns_rank_north proc~ocean_halo_centre_2d_impl->proc~ns_rank_north proc~ns_rank_south ns_rank_south proc~ocean_halo_centre_2d_impl->proc~ns_rank_south proc~ocean_periodic_wrap_centre_2d ocean_periodic_wrap_centre_2d proc~ocean_halo_centre_2d_impl->proc~ocean_periodic_wrap_centre_2d proc~oh_count_msgs oh_count_msgs proc~ocean_halo_centre_2d_impl->proc~oh_count_msgs waitall waitall proc~ocean_halo_centre_2d_impl->waitall proc~ocean_halo_face_x_2d_impl->comm_irecv_real_sp_array_n proc~ocean_halo_face_x_2d_impl->comm_isend_real_sp_array_n proc~ocean_halo_face_x_2d_impl->proc~comm_env_compute_comm proc~ocean_halo_face_x_2d_impl->proc~ew_rank_east proc~ocean_halo_face_x_2d_impl->proc~ew_rank_west proc~ocean_halo_face_x_2d_impl->proc~needs_flags proc~ocean_halo_face_x_2d_impl->proc~ns_rank_north proc~ocean_halo_face_x_2d_impl->proc~ns_rank_south proc~ocean_periodic_wrap_face_x_2d ocean_periodic_wrap_face_x_2d proc~ocean_halo_face_x_2d_impl->proc~ocean_periodic_wrap_face_x_2d proc~ocean_halo_face_x_2d_impl->proc~oh_count_msgs proc~ocean_halo_face_x_2d_impl->waitall proc~ocean_halo_face_y_2d_impl->comm_irecv_real_sp_array_n proc~ocean_halo_face_y_2d_impl->comm_isend_real_sp_array_n proc~ocean_halo_face_y_2d_impl->proc~comm_env_compute_comm proc~ocean_halo_face_y_2d_impl->proc~ew_rank_east proc~ocean_halo_face_y_2d_impl->proc~ew_rank_west proc~ocean_halo_face_y_2d_impl->proc~needs_flags proc~ocean_halo_face_y_2d_impl->proc~ns_rank_north proc~ocean_halo_face_y_2d_impl->proc~ns_rank_south proc~ocean_periodic_wrap_face_y_2d ocean_periodic_wrap_face_y_2d proc~ocean_halo_face_y_2d_impl->proc~ocean_periodic_wrap_face_y_2d proc~ocean_halo_face_y_2d_impl->proc~oh_count_msgs proc~ocean_halo_face_y_2d_impl->waitall error error proc~wide_halo_guards->error proc~wide_halo_guards->to_string comm_world comm_world proc~comm_env_compute_comm->comm_world proc~decomp_rank_from_coords decomp_rank_from_coords proc~ew_rank_east->proc~decomp_rank_from_coords proc~ew_rank_west->proc~decomp_rank_from_coords proc~ns_rank_north->proc~decomp_rank_from_coords proc~ns_rank_south->proc~decomp_rank_from_coords

Called by

proc~~bt_wide_entry_exchange_impl~~CalledByGraph proc~bt_wide_entry_exchange_impl bt_wide_entry_exchange_impl proc~bt_wide_entry_exchange bt_wide_t%bt_wide_entry_exchange proc~bt_wide_entry_exchange->proc~bt_wide_entry_exchange_impl proc~run_stage_split run_stage_split proc~run_stage_split->proc~bt_wide_entry_exchange proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~run_stage_split proc~engine_step engine_step proc~engine_step->proc~ocean_dyn_step_split proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step

Variables

Type Visibility Attributes Name Initial
integer, private :: ng_w

Source Code

   subroutine bt_wide_entry_exchange_impl(this)
      !! Non-polymorphic entry_exchange body.
      type(bt_wide_t), intent(inout) :: this
      integer :: ng_w
      ng_w = this%ng_wide
      call profiler_start("ocean_comms_bt")
      call ocean_halo_bt_group_2d_wide(this%w_eta, this%w_ubt, this%w_vbt, ng_w)
      call ocean_halo_centre_2d_wide(this%w_H_ref, ng_w)
      call ocean_halo_face_x_2d_wide(this%w_ubt_prev, ng_w)
      call ocean_halo_face_x_2d_wide(this%w_rem_u, ng_w)
      call ocean_halo_face_x_2d_wide(this%w_force_u, ng_w)
      call ocean_halo_face_y_2d_wide(this%w_vbt_prev, ng_w)
      call ocean_halo_face_y_2d_wide(this%w_rem_v, ng_w)
      call ocean_halo_face_y_2d_wide(this%w_force_v, ng_w)
      call profiler_stop("ocean_comms_bt")
   end subroutine bt_wide_entry_exchange_impl