Blend field id’s current bracket into the caller’s WHOLE,
device-mapped dest(n1, n2) array at the registration-time
offset. t must equal the value update_all most recently
refreshed this field with (fail-loud ordering check — a
consumer calling this before update_all has run for the
current step is a real bug, not a silent stale read). Exempt
for DATA_TIME_STATIC fields, whose bracket never changes.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_data_input_t), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | id | |||
| real(kind=wp), | intent(in) | :: | t | |||
| integer, | intent(in) | :: | n1 | |||
| integer, | intent(in) | :: | n2 | |||
| real(kind=wp), | intent(inout) | :: | dest(n1,n2) |
subroutine ocean_data_input_update_2d(this, id, t, n1, n2, dest) !! Blend field `id`'s current bracket into the caller's WHOLE, !! device-mapped `dest(n1, n2)` array at the registration-time !! offset. `t` must equal the value `update_all` most recently !! refreshed this field with (fail-loud ordering check — a !! consumer calling this before `update_all` has run for the !! current step is a real bug, not a silent stale read). Exempt !! for `DATA_TIME_STATIC` fields, whose bracket never changes. class(ocean_data_input_t), intent(in) :: this integer, intent(in) :: id, n1, n2 real(wp), intent(in) :: t real(wp), intent(inout) :: dest(n1, n2) call check_registered(this, id, is_3d=.false., n1=n1, n2=n2) call check_fresh(this, id, t) call data_input_blend_2d_impl(this%fields(id)%nx, this%fields(id)%ny, n1, n2, & this%fields(id)%dest_i0, this%fields(id)%dest_j0, & this%fields(id)%f0, this%fields(id)%f1, & this%fields(id)%w, dest) end subroutine ocean_data_input_update_2d