ice_ocean_heat_flux_impl Subroutine

private pure subroutine ice_ocean_heat_flux_impl(Q_heat, heat_flux_diag, Q_heat_const, nx, ny)

Full-array overwrite (including ghosts — same no-op-there reasoning as ice_ocean_brine_flux_impl). Explicit-shape dummies + decl-order. Runs on the device-resident Q_heat (mapped by sf%enter_data) and heat_flux_diag (mapped by ice%enter_data).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: Q_heat(nx,ny)
real(kind=wp), intent(in) :: heat_flux_diag(nx,ny)
real(kind=wp), intent(in) :: Q_heat_const
integer, intent(in) :: nx
integer, intent(in) :: ny

Called by

proc~~ice_ocean_heat_flux_impl~~CalledByGraph proc~ice_ocean_heat_flux_impl ice_ocean_heat_flux_impl proc~ice_ocean_heat_flux ice_ocean_heat_flux proc~ice_ocean_heat_flux->proc~ice_ocean_heat_flux_impl proc~engine_step_ice engine_step_ice proc~engine_step_ice->proc~ice_ocean_heat_flux proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step_ice proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step_ice proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: j

Source Code

   pure subroutine ice_ocean_heat_flux_impl(Q_heat, heat_flux_diag, Q_heat_const, nx, ny)
      !! Full-array overwrite (including ghosts — same no-op-there
      !! reasoning as `ice_ocean_brine_flux_impl`). Explicit-shape dummies
      !! + decl-order. Runs on the device-resident `Q_heat` (mapped by
      !! `sf%enter_data`) and `heat_flux_diag` (mapped by `ice%enter_data`).
      integer, intent(in) :: nx, ny
      real(wp), intent(inout) :: Q_heat(nx, ny)
      real(wp), intent(in) :: heat_flux_diag(nx, ny)
      real(wp), intent(in) :: Q_heat_const
      integer :: i, j

      do concurrent(j=1:ny, i=1:nx)
         Q_heat(i, j) = Q_heat_const + heat_flux_diag(i, j)
      end do
   end subroutine ice_ocean_heat_flux_impl