tides_update_eta_sal Subroutine

public subroutine tides_update_eta_sal(this, eta_current)

Refresh the combined seam field eta_forcing for the current outer step. Scalar self-attraction & loading (C2): when use_sal, eta_sal = beta_sal*eta_current and eta_forcing = eta_eq + eta_sal; otherwise eta_forcing = eta_eq (bit-identical to C1). eta_current is the lagged (stage-start, previous outer step) barotropic surface elevation. Host does no work; the fill is a single explicit-shape do concurrent. Must be called AFTER tides_update_eta_eq (reads the fresh eta_eq).

Arguments

Type IntentOptional Attributes Name
type(ocean_tides_t), intent(inout) :: this
real(kind=wp), intent(in) :: eta_current(:,:)

Calls

proc~~tides_update_eta_sal~~CallsGraph proc~tides_update_eta_sal tides_update_eta_sal proc~tides_update_eta_sal_impl tides_update_eta_sal_impl proc~tides_update_eta_sal->proc~tides_update_eta_sal_impl

Called by

proc~~tides_update_eta_sal~~CalledByGraph proc~tides_update_eta_sal tides_update_eta_sal proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~tides_update_eta_sal proc~engine_step engine_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

Variables

Type Visibility Attributes Name Initial
integer, private :: nx
integer, private :: ny

Source Code

   subroutine tides_update_eta_sal(this, eta_current)
      !! Refresh the combined seam field `eta_forcing` for the current
      !! outer step.  Scalar self-attraction & loading (C2): when
      !! `use_sal`, `eta_sal = beta_sal*eta_current` and
      !! `eta_forcing = eta_eq + eta_sal`; otherwise `eta_forcing = eta_eq`
      !! (bit-identical to C1).  `eta_current` is the lagged (stage-start,
      !! previous outer step) barotropic surface elevation.  Host does no
      !! work; the fill is a single explicit-shape `do concurrent`.  Must
      !! be called AFTER `tides_update_eta_eq` (reads the fresh `eta_eq`).
      type(ocean_tides_t), intent(inout) :: this
      real(wp), intent(in) :: eta_current(:, :)
      integer :: nx, ny

      nx = size(this%eta_eq, 1)
      ny = size(this%eta_eq, 2)
      call tides_update_eta_sal_impl(nx, ny, this%use_sal, this%beta_sal, &
                                     eta_current, this%eta_eq, this%eta_sal, &
                                     this%eta_forcing)
   end subroutine tides_update_eta_sal