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

UrbanRadiation


INTERFACE:

   subroutine UrbanRadiation (nc, lbl, ubl, lbc, ubc, lbp, ubp, &
                              num_nourbanl, filter_nourbanl, &
                              num_urbanl, filter_urbanl, &
                              num_urbanc, filter_urbanc, &
                              num_urbanp, filter_urbanp)
DESCRIPTION:

Solar fluxes absorbed and reflected by roof and canyon (walls, road). Also net and upward longwave fluxes.


USES:

     use clmtype
     use clm_varcon       , only : spval, icol_roof, icol_sunwall, icol_shadewall, &
                                   icol_road_perv, icol_road_imperv, sb
     use clm_varcon       , only : tfrz                ! To use new constant..
     use clm_time_manager , only : get_curr_date, get_step_size
     use clm_atmlnd       , only : clm_a2l
ARGUMENTS:
     implicit none
     integer , intent(in) :: nc                         ! clump index
     integer,  intent(in) :: lbl, ubl                   ! landunit-index bounds
     integer,  intent(in) :: lbc, ubc                   ! column-index bounds
     integer,  intent(in) :: lbp, ubp                   ! pft-index bounds
     integer , intent(in) :: num_nourbanl               ! number of non-urban landunits in clump
     integer , intent(in) :: filter_nourbanl(ubl-lbl+1) ! non-urban landunit filter
     integer , intent(in) :: num_urbanl                 ! number of urban landunits in clump
     integer , intent(in) :: filter_urbanl(ubl-lbl+1)   ! urban landunit filter
     integer , intent(in) :: num_urbanc                 ! number of urban columns in clump
     integer , intent(in) :: filter_urbanc(ubc-lbc+1)   ! urban column filter
     integer , intent(in) :: num_urbanp                 ! number of urban pfts in clump
     integer , intent(in) :: filter_urbanp(ubp-lbp+1)   ! urban pft filter
CALLED FROM:
   subroutine clm_driver1
REVISION HISTORY:
   Author: Gordon Bonan
   03/2003, Mariana Vertenstein: Migrated to clm2.2 
   07/2004, Mariana Vertenstein: Migrated to clm3.0
   01/2008, Erik Kluzek:         Migrated to clm3.5.15
LOCAL VARIABLES:
   local pointers to original implicit in arguments (urban clump)
     real(r8), pointer :: canyon_hwr(:)           ! ratio of building height to street width
     real(r8), pointer :: wtroad_perv(:)          ! weight of pervious road wrt total road
     real(r8), pointer :: em_roof(:)              ! roof emissivity
     real(r8), pointer :: em_improad(:)           ! impervious road emissivity
     real(r8), pointer :: em_perroad(:)           ! pervious road emissivity
     real(r8), pointer :: em_wall(:)              ! wall emissivity
   local pointers to original implicit in arguments (clmtype)
     integer , pointer :: pgridcell(:)            ! gridcell of corresponding pft
     integer , pointer :: pcolumn(:)              ! column of corresponding pft
     integer , pointer :: lgridcell(:)            ! gridcell of corresponding landunit
     integer , pointer :: ctype(:)                ! column type
     integer , pointer :: coli(:)                 ! beginning column index for landunit 
     integer , pointer :: colf(:)                 ! ending column index for landunit
     integer , pointer :: pfti(:)                 ! beginning pfti index for landunit 
     integer , pointer :: pftf(:)                 ! ending pftf index for landunit
     real(r8), pointer :: londeg(:)               ! longitude (degrees)
     real(r8), pointer :: forc_lwrad(:)           ! downward infrared (longwave) radiation (W/m**2)
     real(r8), pointer :: forc_solad(:,:)         ! direct beam radiation  (vis=forc_sols , nir=forc_soll ) (W/m**2)
     real(r8), pointer :: forc_solai(:,:)         ! diffuse beam radiation (vis=forc_sols , nir=forc_soll ) (W/m**2)
     real(r8), pointer :: forc_solar(:)           ! incident solar radiation (W/m**2)
     real(r8), pointer :: albd(:,:)               ! surface albedo (direct)
     real(r8), pointer :: albi(:,:)               ! surface albedo (diffuse)
     real(r8), pointer :: t_grnd(:)               ! ground temperature (K)
     real(r8), pointer :: frac_sno(:)             ! fraction of ground covered by snow (0 to 1)
     real(r8), pointer :: t_ref2m(:)              ! 2 m height surface air temperature (K)
     real(r8), pointer :: vf_sr(:)                ! view factor of sky for road
     real(r8), pointer :: vf_wr(:)                ! view factor of one wall for road
     real(r8), pointer :: vf_sw(:)                ! view factor of sky for one wall
     real(r8), pointer :: vf_rw(:)                ! view factor of road for one wall
     real(r8), pointer :: vf_ww(:)                ! view factor of opposing wall for one wall
     real(r8), pointer :: sabs_roof_dir(:,:)      ! direct  solar absorbed  by roof per unit ground area per unit incident flux
     real(r8), pointer :: sabs_roof_dif(:,:)      ! diffuse solar absorbed  by roof per unit ground area per unit incident flux
     real(r8), pointer :: sabs_sunwall_dir(:,:)   ! direct  solar absorbed  by sunwall per unit wall area per unit incident flux
     real(r8), pointer :: sabs_sunwall_dif(:,:)   ! diffuse solar absorbed  by sunwall per unit wall area per unit incident flux
     real(r8), pointer :: sabs_shadewall_dir(:,:) ! direct  solar absorbed  by shadewall per unit wall area per unit incident flux
     real(r8), pointer :: sabs_shadewall_dif(:,:) ! diffuse solar absorbed  by shadewall per unit wall area per unit incident flux
     real(r8), pointer :: sabs_improad_dir(:,:)   ! direct  solar absorbed  by impervious road per unit ground area per unit incident flux
     real(r8), pointer :: sabs_improad_dif(:,:)   ! diffuse solar absorbed  by impervious road per unit ground area per unit incident flux
     real(r8), pointer :: sabs_perroad_dir(:,:)   ! direct  solar absorbed  by pervious road per unit ground area per unit incident flux
     real(r8), pointer :: sabs_perroad_dif(:,:)   ! diffuse solar absorbed  by pervious road per unit ground area per unit incident flux
   local pointers to original implicit out arguments (clmtype)
     real(r8), pointer :: parsun(:)               ! average absorbed PAR for sunlit leaves (W/m**2)
     real(r8), pointer :: parsha(:)               ! average absorbed PAR for shaded leaves (W/m**2)
     real(r8), pointer :: sabg(:)                 ! solar radiation absorbed by ground (W/m**2)
     real(r8), pointer :: sabv(:)                 ! solar radiation absorbed by vegetation (W/m**2)
     real(r8), pointer :: fsa(:)                  ! solar radiation absorbed (total) (W/m**2)
     real(r8), pointer :: fsa_u(:)                ! urban solar radiation absorbed (total) (W/m**2)
     real(r8), pointer :: fsr(:)                  ! solar radiation reflected (total) (W/m**2)
     real(r8), pointer :: fsds_vis_d(:)           ! incident direct beam vis solar radiation (W/m**2)
     real(r8), pointer :: fsds_nir_d(:)           ! incident direct beam nir solar radiation (W/m**2)
     real(r8), pointer :: fsds_vis_i(:)           ! incident diffuse vis solar radiation (W/m**2)
     real(r8), pointer :: fsds_nir_i(:)           ! incident diffuse nir solar radiation (W/m**2)
     real(r8), pointer :: fsr_vis_d(:)            ! reflected direct beam vis solar radiation (W/m**2)
     real(r8), pointer :: fsr_nir_d(:)            ! reflected direct beam nir solar radiation (W/m**2)
     real(r8), pointer :: fsr_vis_i(:)            ! reflected diffuse vis solar radiation (W/m**2)
     real(r8), pointer :: fsr_nir_i(:)            ! reflected diffuse nir solar radiation (W/m**2)
     real(r8), pointer :: fsds_vis_d_ln(:)        ! incident direct beam vis solar rad at local noon (W/m**2)
     real(r8), pointer :: fsds_nir_d_ln(:)        ! incident direct beam nir solar rad at local noon (W/m**2)
     real(r8), pointer :: fsr_vis_d_ln(:)         ! reflected direct beam vis solar rad at local noon (W/m**2)
     real(r8), pointer :: fsr_nir_d_ln(:)         ! reflected direct beam nir solar rad at local noon (W/m**2)
     real(r8), pointer :: eflx_lwrad_out(:)       ! emitted infrared (longwave) radiation (W/m**2)
     real(r8), pointer :: eflx_lwrad_net(:)       ! net infrared (longwave) rad (W/m**2) [+ = to atm]
     real(r8), pointer :: eflx_lwrad_net_u(:)     ! urban net infrared (longwave) rad (W/m**2) [+ = to atm]
   !OTHER LOCAL VARIABLES



Erik Kluzek 2011-06-15