fill_ghost_west_res Subroutine

private pure subroutine fill_ghost_west_res(hTr, h_layer, tres_w, nx_total, ny_total, nz, i_w, j0, j1, nghost, it, n_tr)

Reservoir-based ghost fill, west edge. hTr_ghost = tres_w(j, k, it) * h_ghost — unconditional.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout) :: hTr(nx_total,ny_total,nz)
real(kind=wp), intent(in) :: h_layer(nx_total,ny_total,nz)
real(kind=wp), intent(in) :: tres_w(ny_total,nz,n_tr)
integer, intent(in) :: nx_total
integer, intent(in) :: ny_total
integer, intent(in) :: nz
integer, intent(in) :: i_w
integer, intent(in) :: j0
integer, intent(in) :: j1
integer, intent(in) :: nghost
integer, intent(in) :: it
integer, intent(in) :: n_tr

Calls

proc~~fill_ghost_west_res~~CallsGraph proc~fill_ghost_west_res fill_ghost_west_res local local proc~fill_ghost_west_res->local

Called by

proc~~fill_ghost_west_res~~CalledByGraph proc~fill_ghost_west_res fill_ghost_west_res proc~ocean_obc_fill_ghosts ocean_obc_fill_ghosts proc~ocean_obc_fill_ghosts->proc~fill_ghost_west_res proc~run_continuity_chain run_continuity_chain proc~run_continuity_chain->proc~ocean_obc_fill_ghosts proc~run_stage_split run_stage_split proc~run_stage_split->proc~run_continuity_chain 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

Variables

Type Visibility Attributes Name Initial
integer, private :: g
real(kind=wp), private :: hTr_bc
integer, private :: j
integer, private :: k

Source Code

   pure subroutine fill_ghost_west_res(hTr, h_layer, tres_w, &
                                       nx_total, ny_total, nz, &
                                       i_w, j0, j1, nghost, it, n_tr)
      !! Reservoir-based ghost fill, west edge.
      !! hTr_ghost = tres_w(j, k, it) * h_ghost — unconditional.
      integer, intent(in) :: nx_total, ny_total, nz, nghost, it, n_tr
      real(wp), intent(inout) :: hTr(nx_total, ny_total, nz)
      real(wp), intent(in)    :: h_layer(nx_total, ny_total, nz)
      real(wp), intent(in)    :: tres_w(ny_total, nz, n_tr)
      integer, intent(in) :: i_w, j0, j1
      integer :: j, k, g
      real(wp) :: hTr_bc
      do concurrent(k=1:nz, j=j0:j1, g=1:nghost) local(hTr_bc)
         hTr_bc = tres_w(j, k, it)*h_layer(g, j, k)
         hTr(g, j, k) = hTr_bc
      end do
   end subroutine fill_ghost_west_res