calclw Subroutine

public subroutine calclw()

Uses

  • proc~~calclw~~UsesGraph proc~calclw modEB::calclw module~initfac initfac proc~calclw->module~initfac module~modglobal modglobal proc~calclw->module~modglobal module~initfac->module~modglobal module~modmpi modmpi module~initfac->module~modmpi netcdf netcdf module~initfac->netcdf mpi mpi module~modmpi->mpi

Arguments

None

Called by

proc~~calclw~~CalledByGraph proc~calclw modEB::calclw proc~eb modEB::EB proc~eb->proc~calclw program~dalesurban DALESURBAN program~dalesurban->proc~eb

Contents

Source Code


Source Code

   subroutine calclw
      !calculate the longwave exchange between facets
      use modglobal, only:nfcts, boltz, skyLW
      use initfac, only:facem, vf, svf, faca, facT, facLWin, facets
      integer :: n, m
      real :: ltemp = 0.

      do n = 1, nfcts
         if (facets(n, 2) < -100) then !it's a bounding wall, no need to update incoming longwave
            cycle
         else
            ltemp = 0.
            do m = 1, nfcts  !for n, sum over all other m facets 
               ltemp = ltemp + vf(m, n)*faca(m)/faca(n)*facem(m)*boltz*facT(m, 1)**4 ![W/m2]
            end do
            facLWin(n) = (ltemp + svf(n)*skyLW)*facem(n)
         end if
      end do
   end subroutine calclw