next up previous contents
Next: Infiltration Up: Fortran: Module Interface SoilHydrologyMod Previous: Fortran: Module Interface SoilHydrologyMod   Contents



   subroutine SurfaceRunoff (lbc, ubc, lbp, ubp, num_hydrologyc, filter_hydrologyc, &
                             num_urbanc, filter_urbanc, vol_liq, icefrac)

Calculate surface runoff


     use shr_kind_mod    , only : r8 => shr_kind_r8
     use clmtype
     use clm_varcon      , only : denice, denh2o, wimp, pondmx_urban, &
                                  icol_roof, icol_sunwall, icol_shadewall, &
                                  icol_road_imperv, icol_road_perv
     use clm_varpar      , only : nlevsoi, maxpatch_pft
     use clm_time_manager, only : get_step_size
     implicit none
     integer , intent(in)  :: lbc, ubc                     ! column bounds
     integer , intent(in)  :: lbp, ubp                     ! pft bounds   
     integer , intent(in)  :: num_hydrologyc               ! number of column soil points in column filter
     integer , intent(in)  :: filter_hydrologyc(ubc-lbc+1) ! column filter for soil points
     integer , intent(in)  :: num_urbanc                   ! number of column urban points in column filter
     integer , intent(in)  :: filter_urbanc(ubc-lbc+1)     ! column filter for urban points
     real(r8), intent(out) :: vol_liq(lbc:ubc,1:nlevsoi)   ! partial volume of liquid water in layer
     real(r8), intent(out) :: icefrac(lbc:ubc,1:nlevsoi)   ! fraction of ice in layer (-)
   subroutine Hydrology2 in module Hydrology2Mod
   15 September 1999: Yongjiu Dai; Initial code
   12 November 1999:  Z.-L. Yang and G.-Y. Niu
   15 December 1999:  Paul Houser and Jon Radakovich; F90 Revision
   2/26/02, Peter Thornton: Migrated to new data structures.
   4/26/05, David Lawrence: Made surface runoff for dry soils a function
     of rooting fraction in top three soil layers.
   04/25/07  Keith Oleson: Completely new routine for CLM3.5 hydrology
   local pointers to original implicit in arguments
     integer , pointer :: cgridcell(:)      ! gridcell index for each column
     integer , pointer :: ctype(:)          ! column type index
     real(r8), pointer :: qflx_top_soil(:)  !net water input into soil from top (mm/s)
     real(r8), pointer :: watsat(:,:)       !volumetric soil water at saturation (porosity)
     real(r8), pointer :: hkdepth(:)        !decay factor (m)
     real(r8), pointer :: zwt(:)            !water table depth (m)
     real(r8), pointer :: fcov(:)           !fractional impermeable area
     real(r8), pointer :: fsat(:)           !fractional area with water table at surface
     real(r8), pointer :: dz(:,:)           !layer depth (m)
     real(r8), pointer :: h2osoi_ice(:,:)   !ice lens (kg/m2)
     real(r8), pointer :: h2osoi_liq(:,:)   !liquid water (kg/m2)
     real(r8), pointer :: wtfact(:)         !maximum saturated fraction for a gridcell
     real(r8), pointer :: hksat(:,:)        ! hydraulic conductivity at saturation (mm H2O /s)
     real(r8), pointer :: bsw(:,:)          ! Clapp and Hornberger "b"
     real(r8), pointer :: sucsat(:,:)       ! minimum soil suction (mm)
     integer , pointer :: snl(:)            ! minus number of snow layers
     real(r8), pointer :: qflx_evap_grnd(:) ! ground surface evaporation rate (mm H2O/s) [+]
     real(r8), pointer :: zi(:,:)           ! interface level below a "z" level (m)
   local pointers to original implicit out arguments
     real(r8), pointer :: qflx_surf(:)      ! surface runoff (mm H2O /s)
     real(r8), pointer :: eff_porosity(:,:) ! effective porosity = porosity - vol_ice
     real(r8), pointer :: fracice(:,:)      !fractional impermeability (-)

Erik Kluzek 2011-06-15