fill_zero_impl Subroutine

private pure subroutine fill_zero_impl(buf)

Device-side zero of buf — used when a fill’s input is missing (e.g. tracer not registered) so the fold reads a defined value.

Arguments

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

Called by

proc~~fill_zero_impl~~CalledByGraph proc~fill_zero_impl fill_zero_impl proc~fill_age fill_age proc~fill_age->proc~fill_zero_impl proc~fill_ice_conc fill_ice_conc proc~fill_ice_conc->proc~fill_zero_impl proc~fill_ice_thick fill_ice_thick proc~fill_ice_thick->proc~fill_zero_impl proc~fill_pseudo_salt fill_pseudo_salt proc~fill_pseudo_salt->proc~fill_zero_impl proc~fill_pseudo_salt_diff fill_pseudo_salt_diff proc~fill_pseudo_salt_diff->proc~fill_zero_impl proc~fill_salinity fill_salinity proc~fill_salinity->proc~fill_zero_impl proc~fill_temperature fill_temperature proc~fill_temperature->proc~fill_zero_impl proc~remap_layer_to_density remap_layer_to_density proc~remap_layer_to_density->proc~fill_zero_impl

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_zero_impl(buf)
      !! Device-side zero of `buf` — used when a fill's input is missing
      !! (e.g. tracer not registered) so the fold reads a defined value.
      ! assumed-shape-ok: diag fill — fires once per output frame (cadence-bounded).
      real(wp), intent(inout) :: buf(:, :, :)
      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) = 0.0_wp
      end do
   end subroutine fill_zero_impl