ocean_data_input_update_2d Subroutine

public 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.

Arguments

Type IntentOptional 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)

Calls

proc~~ocean_data_input_update_2d~~CallsGraph proc~ocean_data_input_update_2d ocean_data_input_update_2d proc~check_fresh check_fresh proc~ocean_data_input_update_2d->proc~check_fresh proc~check_registered check_registered proc~ocean_data_input_update_2d->proc~check_registered proc~data_input_blend_2d_impl data_input_blend_2d_impl proc~ocean_data_input_update_2d->proc~data_input_blend_2d_impl error error proc~check_fresh->error to_string to_string proc~check_fresh->to_string proc~check_registered->error proc~check_registered->to_string

Called by

proc~~ocean_data_input_update_2d~~CalledByGraph proc~ocean_data_input_update_2d ocean_data_input_update_2d proc~ocean_data_forcing_apply ocean_data_forcing_apply proc~ocean_data_forcing_apply->proc~ocean_data_input_update_2d proc~engine_step engine_step proc~engine_step->proc~ocean_data_forcing_apply proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean

Source Code

   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