pure subroutine fill_ghost_east_res(hTr, h_layer, tres_e, &
nx_total, ny_total, nz, &
i_e, j0, j1, nghost, it, n_tr)
!! Reservoir-based ghost fill, east 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_e(ny_total, nz, n_tr)
integer, intent(in) :: i_e, 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_e(j, k, it)*h_layer(nx_total - g + 1, j, k)
hTr(nx_total - g + 1, j, k) = hTr_bc
end do
end subroutine fill_ghost_east_res