ocean_horizontal_viscosity_compute_tendencies Subroutine

public subroutine ocean_horizontal_viscosity_compute_tendencies(grid, metrics, this, ms, lateral_mix, dt, u_src, v_src, h_src)

Source-selecting shim over ocean_horizontal_viscosity_compute_tendencies_on: absent u_src/v_src/h_src (all callers today) forwards the prognostic components — bit-identical; the pred_corr driver passes the u_av time-mean family (SPEC §4 S3).

Arguments

Type IntentOptional Attributes Name
type(hgrid_t), intent(in) :: grid
type(ocean_metrics_t), intent(in) :: metrics
type(ocean_horizontal_viscosity_t), intent(inout) :: this
type(multilayer_state_t), intent(in) :: ms
type(ocean_lateral_mix_t), intent(in), optional :: lateral_mix
real(kind=wp), intent(in), optional :: dt
real(kind=wp), intent(in), optional :: u_src(:,:,:)
real(kind=wp), intent(in), optional :: v_src(:,:,:)
real(kind=wp), intent(in), optional :: h_src(:,:,:)

Calls

proc~~ocean_horizontal_viscosity_compute_tendencies~~CallsGraph proc~ocean_horizontal_viscosity_compute_tendencies ocean_horizontal_viscosity_compute_tendencies proc~ocean_horizontal_viscosity_compute_tendencies_on ocean_horizontal_viscosity_compute_tendencies_on proc~ocean_horizontal_viscosity_compute_tendencies->proc~ocean_horizontal_viscosity_compute_tendencies_on proc~hvisc_add_aniso_coef hvisc_add_aniso_coef proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_add_aniso_coef proc~hvisc_avg_a_face hvisc_avg_A_face proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_avg_a_face proc~hvisc_clamp_a hvisc_clamp_A proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_clamp_a proc~hvisc_compute_biharmonic_face_impl hvisc_compute_biharmonic_face_impl proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_compute_biharmonic_face_impl proc~hvisc_compute_biharmonic_impl hvisc_compute_biharmonic_impl proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_compute_biharmonic_impl proc~hvisc_compute_face_impl hvisc_compute_face_impl proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_compute_face_impl proc~hvisc_compute_scalar_impl hvisc_compute_scalar_impl proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_compute_scalar_impl proc~hvisc_compute_stress hvisc_compute_stress proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_compute_stress proc~hvisc_fill_a_scalar hvisc_fill_A_scalar proc~ocean_horizontal_viscosity_compute_tendencies_on->proc~hvisc_fill_a_scalar local local proc~hvisc_clamp_a->local proc~hvisc_compute_biharmonic_face_impl->local proc~hvisc_biharm_lap_closed hvisc_biharm_lap_closed proc~hvisc_compute_biharmonic_face_impl->proc~hvisc_biharm_lap_closed proc~hvisc_nu4_cfl_bound hvisc_nu4_cfl_bound proc~hvisc_compute_biharmonic_face_impl->proc~hvisc_nu4_cfl_bound proc~hvisc_compute_biharmonic_impl->local proc~hvisc_compute_biharmonic_impl->proc~hvisc_biharm_lap_closed proc~hvisc_compute_biharmonic_impl->proc~hvisc_nu4_cfl_bound proc~hvisc_compute_face_impl->local proc~hvisc_kh_cfl_bound hvisc_kh_cfl_bound proc~hvisc_compute_face_impl->proc~hvisc_kh_cfl_bound proc~hvisc_compute_scalar_impl->local proc~hvisc_compute_scalar_impl->proc~hvisc_kh_cfl_bound proc~hvisc_compute_stress->local proc~raw_sh_xx raw_sh_xx proc~hvisc_compute_stress->proc~raw_sh_xx proc~raw_sh_xy raw_sh_xy proc~hvisc_compute_stress->proc~raw_sh_xy proc~hvisc_biharm_lap_closed->local

Called by

proc~~ocean_horizontal_viscosity_compute_tendencies~~CalledByGraph proc~ocean_horizontal_viscosity_compute_tendencies ocean_horizontal_viscosity_compute_tendencies proc~run_stage run_stage proc~run_stage->proc~ocean_horizontal_viscosity_compute_tendencies proc~run_stage_split run_stage_split proc~run_stage_split->proc~ocean_horizontal_viscosity_compute_tendencies proc~ocean_dyn_step ocean_dyn_step proc~ocean_dyn_step->proc~run_stage proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~run_stage_split proc~engine_step engine_step proc~engine_step->proc~ocean_dyn_step proc~engine_step->proc~ocean_dyn_step_split proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean

Source Code

   subroutine ocean_horizontal_viscosity_compute_tendencies(grid, metrics, this, ms, lateral_mix, dt, u_src, v_src, h_src)
      !! Source-selecting shim over `ocean_horizontal_viscosity_compute_tendencies_on`:
      !! absent `u_src`/`v_src`/`h_src` (all callers today) forwards the
      !! prognostic components — bit-identical; the pred_corr driver passes
      !! the `u_av` time-mean family (SPEC §4 S3).
      type(hgrid_t), intent(in) :: grid
      type(ocean_metrics_t), intent(in) :: metrics
      type(ocean_horizontal_viscosity_t), intent(inout) :: this
      type(multilayer_state_t), intent(in) :: ms
      type(ocean_lateral_mix_t), intent(in), optional :: lateral_mix
      real(wp), intent(in), optional :: dt
      ! assumed-shape-ok: pure passthrough to the _on shim.
      real(wp), intent(in), optional :: u_src(:, :, :), v_src(:, :, :), h_src(:, :, :)

      if (present(u_src)) then
         call ocean_horizontal_viscosity_compute_tendencies_on(grid, metrics, this, ms, &
                                                               u_src, v_src, h_src, lateral_mix=lateral_mix, dt=dt)
      else
         call ocean_horizontal_viscosity_compute_tendencies_on(grid, metrics, this, ms, &
                                                               ms%u_face_x_layer, ms%v_face_y_layer, ms%h_layer, &
                                                               lateral_mix=lateral_mix, dt=dt)
      end if
   end subroutine ocean_horizontal_viscosity_compute_tendencies