ice_sample_velocity_impl Subroutine

private pure subroutine ice_sample_velocity_impl(u_surf, v_surf, wet_u, wet_v, u_ice, v_ice, nx, ny)

u_ice(i,j) = u_surf(i,j)*wet_u(i,j), ditto v. v1 interim filler (SPEC §5 Phase 0) — PR 5 EVP replaces this call with a dynamics solve writing the SAME u_ice/v_ice faces.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: u_surf(nx+1,ny)
real(kind=wp), intent(in) :: v_surf(nx,ny+1)
real(kind=wp), intent(in) :: wet_u(nx+1,ny)
real(kind=wp), intent(in) :: wet_v(nx,ny+1)
real(kind=wp), intent(out) :: u_ice(nx+1,ny)
real(kind=wp), intent(out) :: v_ice(nx,ny+1)
integer, intent(in) :: nx
integer, intent(in) :: ny

Called by

proc~~ice_sample_velocity_impl~~CalledByGraph proc~ice_sample_velocity_impl ice_sample_velocity_impl proc~ice_transport_step ice_transport_step proc~ice_transport_step->proc~ice_sample_velocity_impl proc~engine_step_ice engine_step_ice proc~engine_step_ice->proc~ice_transport_step 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_sample_velocity_impl(u_surf, v_surf, wet_u, wet_v, u_ice, v_ice, nx, ny)
      !! `u_ice(i,j) = u_surf(i,j)*wet_u(i,j)`, ditto v.  v1 interim
      !! filler (SPEC §5 Phase 0) — PR 5 EVP replaces this call with a
      !! dynamics solve writing the SAME `u_ice`/`v_ice` faces.
      integer, intent(in) :: nx, ny
      real(wp), intent(in) :: u_surf(nx + 1, ny)
      real(wp), intent(in) :: v_surf(nx, ny + 1)
      real(wp), intent(in) :: wet_u(nx + 1, ny)
      real(wp), intent(in) :: wet_v(nx, ny + 1)
      real(wp), intent(out) :: u_ice(nx + 1, ny)
      real(wp), intent(out) :: v_ice(nx, ny + 1)
      integer :: i, j

      do concurrent(j=1:ny, i=1:nx + 1)
         u_ice(i, j) = u_surf(i, j)*wet_u(i, j)
      end do
      do concurrent(j=1:ny + 1, i=1:nx)
         v_ice(i, j) = v_surf(i, j)*wet_v(i, j)
      end do
   end subroutine ice_sample_velocity_impl