ocean_surfflux_cover_const_impl Subroutine

private pure subroutine ocean_surfflux_cover_const_impl(Q_heat, Q_salt, cover_frac, nx, ny)

Flat do concurrent kernel behind ocean_surface_flux_apply_cover_const — explicit-shape dummies, integer dims first (decl-order, ifx #8586).

Arguments

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

Calls

proc~~ocean_surfflux_cover_const_impl~~CallsGraph proc~ocean_surfflux_cover_const_impl ocean_surfflux_cover_const_impl local local proc~ocean_surfflux_cover_const_impl->local

Called by

proc~~ocean_surfflux_cover_const_impl~~CalledByGraph proc~ocean_surfflux_cover_const_impl ocean_surfflux_cover_const_impl proc~ocean_surface_flux_apply_cover_const ocean_surface_flux_apply_cover_const proc~ocean_surface_flux_apply_cover_const->proc~ocean_surfflux_cover_const_impl proc~configure_ocean_cavity configure_ocean_cavity proc~configure_ocean_cavity->proc~ocean_surface_flux_apply_cover_const proc~engine_setup engine_setup proc~engine_setup->proc~configure_ocean_cavity proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: j
real(kind=wp), private :: open_f

Source Code

   pure subroutine ocean_surfflux_cover_const_impl(Q_heat, Q_salt, cover_frac, nx, ny)
      !! Flat `do concurrent` kernel behind
      !! `ocean_surface_flux_apply_cover_const` — explicit-shape dummies,
      !! integer dims first (decl-order, ifx #8586).
      integer, intent(in)    :: nx, ny
      real(wp), intent(inout) :: Q_heat(nx, ny), Q_salt(nx, ny)
      real(wp), intent(in)    :: cover_frac(nx, ny)
      integer :: i, j
      real(wp) :: open_f
      do concurrent(j=1:ny, i=1:nx) local(open_f)
         open_f = 1.0_wp - cover_frac(i, j)
         Q_heat(i, j) = Q_heat(i, j)*open_f
         Q_salt(i, j) = Q_salt(i, j)*open_f
      end do
   end subroutine ocean_surfflux_cover_const_impl