Single-call two-pass exchange of three barotropic fields. Calls the three individual 2D exchanges in order, which each run their own full two-pass X-then-Y exchange.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout) | :: | eta(oh_nx_total,oh_ny_total) |
Barotropic sea-surface height (nx_total x ny_total) |
||
| real(kind=wp), | intent(inout) | :: | ubt(oh_nx_total+1,oh_ny_total) |
Barotropic u-transport (nx_total+1 x ny_total) |
||
| real(kind=wp), | intent(inout) | :: | vbt(oh_nx_total,oh_ny_total+1) |
Barotropic v-transport (nx_total x ny_total+1) |
||
| logical, | intent(in), | optional | :: | device_resident |
Forwarded to the three individual exchanges. See centre_2d. |
subroutine ocean_halo_bt_group_2d(eta, ubt, vbt, device_resident) !! Single-call two-pass exchange of three barotropic fields. !! Calls the three individual 2D exchanges in order, which each !! run their own full two-pass X-then-Y exchange. real(wp), intent(inout) :: eta(oh_nx_total, oh_ny_total) !! Barotropic sea-surface height (nx_total x ny_total) real(wp), intent(inout) :: ubt(oh_nx_total + 1, oh_ny_total) !! Barotropic u-transport (nx_total+1 x ny_total) real(wp), intent(inout) :: vbt(oh_nx_total, oh_ny_total + 1) !! Barotropic v-transport (nx_total x ny_total+1) logical, intent(in), optional :: device_resident !! Forwarded to the three individual exchanges. See centre_2d. call oh_count_bt_group() call oh_count_suppress_on() call ocean_halo_centre_2d(eta, device_resident) call ocean_halo_face_x_2d(ubt, device_resident) call ocean_halo_face_y_2d(vbt, device_resident) call oh_count_suppress_off() end subroutine ocean_halo_bt_group_2d