fill_buffer_impl Subroutine

private pure subroutine fill_buffer_impl(buf, val)

Device-side scalar fill. Used by reset_accumulator and (when idx_temperature / idx_salinity is unset) the manager could also seed output_buffer via this; today only the accumulator reset goes through here.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: buf(:,:,:)
real(kind=wp), intent(in) :: val

Called by

proc~~fill_buffer_impl~~CalledByGraph proc~fill_buffer_impl fill_buffer_impl proc~reset_accumulator reset_accumulator proc~reset_accumulator->proc~fill_buffer_impl proc~ocean_diag_register ocean_diag_t%ocean_diag_register proc~ocean_diag_register->proc~reset_accumulator proc~ocean_diag_step ocean_diag_t%ocean_diag_step proc~ocean_diag_step->proc~reset_accumulator proc~engine_step_finalize engine_step_finalize proc~engine_step_finalize->proc~ocean_diag_step proc~register_derived register_derived proc~register_derived->proc~ocean_diag_register proc~register_one_canonical register_one_canonical proc~register_one_canonical->proc~ocean_diag_register proc~apply_diag_selection apply_diag_selection proc~apply_diag_selection->proc~register_derived proc~register_default_diags register_default_diags proc~apply_diag_selection->proc~register_default_diags proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step_finalize proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step_finalize proc~register_default_diags->proc~register_one_canonical proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~engine_configure_diag engine_configure_diag proc~engine_configure_diag->proc~apply_diag_selection

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: j
integer, private :: k
integer, private :: nx
integer, private :: ny
integer, private :: nz

Source Code

   pure subroutine fill_buffer_impl(buf, val)
      !! Device-side scalar fill.  Used by reset_accumulator and (when
      !! `idx_temperature` / `idx_salinity` is unset) the manager could
      !! also seed `output_buffer` via this; today only the accumulator
      !! reset goes through here.
      ! assumed-shape-ok: diag accumulator reset — fires once per output frame.
      real(wp), intent(inout) :: buf(:, :, :)
      real(wp), intent(in)    :: val
      integer :: i, j, k, nx, ny, nz
      nx = size(buf, 1)
      ny = size(buf, 2)
      nz = size(buf, 3)
      do concurrent(k=1:nz, j=1:ny, i=1:nx)
         buf(i, j, k) = val
      end do
   end subroutine fill_buffer_impl