x-face (u) 2D north fold (negate).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout) | :: | fld(nxf,nyt) |
x-face field (nx_total+1, ny_total). |
||
| integer, | intent(in) | :: | nxf | |||
| integer, | intent(in) | :: | nyt | |||
| integer, | intent(in) | :: | nx_phys | |||
| integer, | intent(in) | :: | ny_phys | |||
| integer, | intent(in) | :: | ng | |||
| logical, | intent(in), | optional | :: | device_resident |
Exchange path only: |
subroutine fold_u_2d(fld, nxf, nyt, nx_phys, ny_phys, ng, device_resident) !! x-face (u) 2D north fold (negate). integer, intent(in) :: nxf, nyt, nx_phys, ny_phys, ng real(wp), intent(inout) :: fld(nxf, nyt) !! x-face field (nx_total+1, ny_total). logical, intent(in), optional :: device_resident !! Exchange path only: `.false.` ⇒ host arrays. if (ocean_fold_is_distributed()) then call ocean_fold_begin(fold_stagger_nrows(FOLD_STAG_U, fx_ng)) call ocean_fold_pack(fld, nxf, nyt, FOLD_STAG_U, device_resident) call ocean_fold_exchange(device_resident) call ocean_fold_unpack(fld, nxf, nyt, FOLD_STAG_U, .true., device_resident) call ocean_fold_end() else call fold_north_u_face(fld, nxf, nyt, nx_phys, ny_phys, ng) end if end subroutine fold_u_2d