ywallscalarplus Subroutine

public subroutine ywallscalarplus(hi, hj, hk, putin, putout, bcvaluep, n)

Uses

  • proc~~ywallscalarplus~~UsesGraph proc~ywallscalarplus modibm::ywallscalarplus module~initfac initfac proc~ywallscalarplus->module~initfac module~modglobal modglobal proc~ywallscalarplus->module~modglobal module~modmpi modmpi proc~ywallscalarplus->module~modmpi module~modsubgriddata modsubgriddata proc~ywallscalarplus->module~modsubgriddata module~initfac->module~modglobal module~initfac->module~modmpi netcdf netcdf module~initfac->netcdf mpi mpi module~modmpi->mpi

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: hi
integer, intent(in) :: hj
integer, intent(in) :: hk
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

Called by

proc~~ywallscalarplus~~CalledByGraph proc~ywallscalarplus modibm::ywallscalarplus proc~ywallfunplus modibm::ywallfunplus proc~ywallfunplus->proc~ywallscalarplus proc~ibmwallfun modibm::ibmwallfun proc~ibmwallfun->proc~ywallfunplus program~dalesurban DALESURBAN program~dalesurban->proc~ibmwallfun

Contents

Source Code


Source Code

   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