fill_ghost_north_res Subroutine

private pure subroutine fill_ghost_north_res(hTr, h_layer, tres_n, nx_total, ny_total, nz, j_n, i0, i1, nghost, it, n_tr)

Reservoir-based ghost fill, north edge.

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_n(nx_total,nz,n_tr)
integer, intent(in) :: nx_total
integer, intent(in) :: ny_total
integer, intent(in) :: nz
integer, intent(in) :: j_n
integer, intent(in) :: i0
integer, intent(in) :: i1
integer, intent(in) :: nghost
integer, intent(in) :: it
integer, intent(in) :: n_tr

Calls

proc~~fill_ghost_north_res~~CallsGraph proc~fill_ghost_north_res fill_ghost_north_res local local proc~fill_ghost_north_res->local

Called by

proc~~fill_ghost_north_res~~CalledByGraph proc~fill_ghost_north_res fill_ghost_north_res proc~ocean_obc_fill_ghosts ocean_obc_fill_ghosts proc~ocean_obc_fill_ghosts->proc~fill_ghost_north_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 :: i
integer, private :: k

Source Code

   pure subroutine fill_ghost_north_res(hTr, h_layer, tres_n, &
                                        nx_total, ny_total, nz, &
                                        j_n, i0, i1, nghost, it, n_tr)
      !! Reservoir-based ghost fill, north edge.
      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_n(nx_total, nz, n_tr)
      integer, intent(in) :: j_n, i0, i1
      integer :: i, k, g
      real(wp) :: hTr_bc
      do concurrent(k=1:nz, i=i0:i1, g=1:nghost) local(hTr_bc)
         hTr_bc = tres_n(i, k, it)*h_layer(i, ny_total - g + 1, k)
         hTr(i, ny_total - g + 1, k) = hTr_bc
      end do
   end subroutine fill_ghost_north_res