Width-parameterized grouped barotropic exchange (eta+ubt+vbt). Bumps oh_count_bt_group; suppresses the three inner primitive counters exactly as ocean_halo_bt_group_2d does.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout) | :: | eta(oh_nx_local+2*ng_wide,oh_ny_local+2*ng_wide) |
Barotropic SSH (nx_local+2ng_wide, ny_local+2ng_wide) |
||
| real(kind=wp), | intent(inout) | :: | ubt(oh_nx_local+2*ng_wide+1,oh_ny_local+2*ng_wide) |
Barotropic u-transport (nx_local+2ng_wide+1, ny_local+2ng_wide) |
||
| real(kind=wp), | intent(inout) | :: | vbt(oh_nx_local+2*ng_wide,oh_ny_local+2*ng_wide+1) |
Barotropic v-transport (nx_local+2ng_wide, ny_local+2ng_wide+1) |
||
| integer, | intent(in) | :: | ng_wide |
Wide ghost cell width (>= oh_nghost) |
||
| logical, | intent(in), | optional | :: | device_resident |
Forwarded to the three individual exchanges. See centre_2d. |
subroutine ocean_halo_bt_group_2d_wide(eta, ubt, vbt, ng_wide, device_resident) !! Width-parameterized grouped barotropic exchange (eta+ubt+vbt). !! Bumps oh_count_bt_group; suppresses the three inner primitive !! counters exactly as ocean_halo_bt_group_2d does. integer, intent(in) :: ng_wide !! Wide ghost cell width (>= oh_nghost) real(wp), intent(inout) :: eta(oh_nx_local + 2*ng_wide, oh_ny_local + 2*ng_wide) !! Barotropic SSH (nx_local+2*ng_wide, ny_local+2*ng_wide) real(wp), intent(inout) :: ubt(oh_nx_local + 2*ng_wide + 1, oh_ny_local + 2*ng_wide) !! Barotropic u-transport (nx_local+2*ng_wide+1, ny_local+2*ng_wide) real(wp), intent(inout) :: vbt(oh_nx_local + 2*ng_wide, oh_ny_local + 2*ng_wide + 1) !! Barotropic v-transport (nx_local+2*ng_wide, ny_local+2*ng_wide+1) logical, intent(in), optional :: device_resident !! Forwarded to the three individual exchanges. See centre_2d. call oh_count_bt_group() call wide_halo_guards(ng_wide, "ocean_halo_bt_group_2d_wide") call ocean_halo_buffers_ensure_wide(ng_wide) call oh_count_suppress_on() call ocean_halo_centre_2d_impl(eta, ng_wide, device_resident) call ocean_halo_face_x_2d_impl(ubt, ng_wide, device_resident) call ocean_halo_face_y_2d_impl(vbt, ng_wide, device_resident) call oh_count_suppress_off() end subroutine ocean_halo_bt_group_2d_wide