subroutine ywallscalarplus(hi, hj, hk, putin, putout, bcvaluep, n)
use modglobal, only:dyi, ib, ie, jb, je, kb, ke, numol, prandtlmoli
use modsubgriddata, only:ekh
use modmpi, only:myid
use initfac, only:block
integer i, j, k, il, iu, kl, ku, m
integer, intent(in) :: hi !<size of halo in i
integer, intent(in) :: hj !<size of halo in j
integer, intent(in) :: hk !<size of halo in k
real, intent(in) :: putin(ib - hi:ie + hi, jb - hj:je + hj, kb - hk:ke + hk)
real, intent(inout) :: putout(ib - hi:ie + hi, jb - hj:je + hj, kb:ke + hk)
real, intent(in) :: bcvaluep
integer, intent(in) :: n
m = iypluswall(n, 1)
j = iypluswall(n, 2)
il = block(m, 1)
iu = block(m, 2)
kl = block(m, 5)
ku = block(m, 6)
!fixed flux
do k = kl, ku
do i = il, iu
putout(i, j, k) = putout(i, j, k) + (0.5*(ekh(i, j, k) + ekh(i, j - 1, k))*(putin(i, j, k) - putin(i, j - 1, k))*dyi - bcvaluep)*dyi
end do
end do
end subroutine ywallscalarplus