compute_e_anom Subroutine

public pure subroutine compute_e_anom(bt_work)

SSH anomaly = 0.5·(bt_eta_end + bt_eta) − eta_PF: the part of η the BT substep produced beyond what the slow PGF saw. Zero at steady state.

Arguments

Type IntentOptional Attributes Name
type(barotropic_workstate_t), intent(inout) :: bt_work

Called by

proc~~compute_e_anom~~CalledByGraph proc~compute_e_anom compute_e_anom proc~run_stage_split run_stage_split proc~run_stage_split->proc~compute_e_anom 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_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 :: i
integer, private :: j
integer, private :: nx
integer, private :: ny

Source Code

   pure subroutine compute_e_anom(bt_work)
      !! SSH anomaly = 0.5·(bt_eta_end + bt_eta) − eta_PF: the part of η the BT
      !! substep produced beyond what the slow PGF saw. Zero at steady state.
      type(barotropic_workstate_t), intent(inout) :: bt_work
      integer :: i, j, nx, ny
      nx = size(bt_work%e_anom, 1)
      ny = size(bt_work%e_anom, 2)
      do concurrent(j=1:ny, i=1:nx)
         bt_work%e_anom(i, j) = 0.5_wp*(bt_work%bt_eta_end(i, j) + bt_work%bt_eta(i, j)) &
                                - bt_work%eta_PF(i, j)
      end do
   end subroutine compute_e_anom