INTERFACE:
subroutine SurfaceRunoff (lbc, ubc, lbp, ubp, num_hydrologyc, filter_hydrologyc, & num_urbanc, filter_urbanc, vol_liq, icefrac)DESCRIPTION:
Calculate surface runoff
USES:
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_sizeARGUMENTS:
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 (-)CALLED FROM:
subroutine Hydrology2 in module Hydrology2ModREVISION HISTORY:
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 hydrologyLOCAL VARIABLES:
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 (-)