next up previous contents
Next: incident_diffuse Up: Fortran: Module Interface UrbanMod Previous: view_factor   Contents

incident_direct


INTERFACE:

   subroutine incident_direct (lbl, ubl, num_urbanl, canyon_hwr, coszen, zen, sdir, sdir_road, sdir_sunwall, sdir_shadewall)
DESCRIPTION:

Direct beam solar radiation incident on walls and road in urban canyon

Sun / roof / --- /-- - | / | | sunlit wall | / | shaded wall h | / | | ---/--- - road <-- w -->

Method: Road = Horizontal surface. Account for shading by wall. Integrate over all canyon orientations Wall (sunlit) = Adjust horizontal radiation for 90 degree surface. Account for shading by opposing wall. Integrate over all canyon orientations Wall (shaded) = 0

Conservation check: Total incoming direct beam (sdir) = sdir_road + (sdir_shadewall + sdir_sunwall)*canyon_hwr Multiplication by canyon_hwr scales wall fluxes (per unit wall area) to per unit ground area

Source: Masson, V. (2000) A physically-based scheme for the urban energy budget in atmospheric models. Boundary-Layer Meteorology 94:357-397

This analytical solution from Masson (2000) agrees with the numerical solution to within 0.6 W/m**2 for sdir = 1000 W/m**2 and for all H/W from 0.1 to 10 by 0.1 and all solar zenith angles from 1 to 90 deg by 1


USES:

     use shr_kind_mod  , only : r8 => shr_kind_r8
     use clm_varcon    , only : rpi
     implicit none
ARGUMENTS:
     integer,  intent(in)  :: lbl, ubl                           ! landunit-index bounds
     integer , intent(in)  :: num_urbanl                         ! number of urban landunits
     real(r8), intent(in)  :: canyon_hwr(num_urbanl)             ! ratio of building height to street width
     real(r8), intent(in)  :: coszen(num_urbanl)                 ! cosine solar zenith angle
     real(r8), intent(in)  :: zen(num_urbanl)                    ! solar zenith angle (radians)
     real(r8), intent(in)  :: sdir(num_urbanl, numrad)           ! direct beam solar radiation incident on horizontal surface
     real(r8), intent(out) :: sdir_road(num_urbanl, numrad)      ! direct beam solar radiation incident on road per unit incident flux
     real(r8), intent(out) :: sdir_sunwall(num_urbanl, numrad)   ! direct beam solar radiation (per unit wall area) incident on sunlit wall per unit incident flux
     real(r8), intent(out) :: sdir_shadewall(num_urbanl, numrad) ! direct beam solar radiation (per unit wall area) incident on shaded wall per unit incident flux
CALLED FROM:
   subroutine UrbanAlbedo in this module
REVISION HISTORY:
   Author: Gordon Bonan
LOCAL VARIABLES:




Erik Kluzek 2011-06-15