ywallscalarmin Subroutine

public subroutine ywallscalarmin(hi, hj, hk, putin, putout, bcvaluem, n)

Uses

  • proc~~ywallscalarmin~~UsesGraph proc~ywallscalarmin modibm::ywallscalarmin module~initfac initfac proc~ywallscalarmin->module~initfac module~modglobal modglobal proc~ywallscalarmin->module~modglobal module~modmpi modmpi proc~ywallscalarmin->module~modmpi module~modsubgriddata modsubgriddata proc~ywallscalarmin->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) :: bcvaluem
integer, intent(in) :: n

Called by

proc~~ywallscalarmin~~CalledByGraph proc~ywallscalarmin modibm::ywallscalarmin proc~ywallfunmin modibm::ywallfunmin proc~ywallfunmin->proc~ywallscalarmin proc~ibmwallfun modibm::ibmwallfun proc~ibmwallfun->proc~ywallfunmin program~dalesurban DALESURBAN program~dalesurban->proc~ibmwallfun

Contents

Source Code


Source Code

   subroutine ywallscalarmin(hi, hj, hk, putin, putout, bcvaluem, n)
      use modglobal, only:dyi, ib, ie, jb, je, kb, ke, prandtlmoli, numol
      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)    :: bcvaluem
      integer, intent(in)    :: n

      j = iyminwall(n, 2)
      m = iyminwall(n, 1)
      il = block(m, 1)
      iu = block(m, 2)
      kl = block(m, 5)
      ku = block(m, 6)

      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 + 1, k) - putin(i, j, k))*dyi &
                              - bcvaluem)*dyi
         end do
      end do

   end subroutine ywallscalarmin