Unpack the next field of the exchanged group into a 2D field.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout) | :: | fld(nxa,nya) |
Field; same stagger and order as at pack. |
||
| integer, | intent(in) | :: | nxa |
Storage extents of |
||
| integer, | intent(in) | :: | nya |
Storage extents of |
||
| integer, | intent(in) | :: | stagger |
|
||
| logical, | intent(in) | :: | negate |
|
||
| logical, | intent(in), | optional | :: | device_resident |
|
subroutine ocean_fold_unpack_2d(fld, nxa, nya, stagger, negate, device_resident) !! Unpack the next field of the exchanged group into a 2D field. integer, intent(in) :: nxa, nya !! Storage extents of `fld`. real(wp), intent(inout) :: fld(nxa, nya) !! Field; same stagger and order as at pack. integer, intent(in) :: stagger !! `FOLD_STAG_*`. logical, intent(in) :: negate !! `.true.` for a true-vector component (sign flips across the fold). logical, intent(in), optional :: device_resident !! `.false.` ⇒ host arrays; default device-resident. call ocean_fold_unpack_3d(fld, nxa, nya, 1, stagger, negate, device_resident) end subroutine ocean_fold_unpack_2d