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_size
ARGUMENTS:
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 hydrology
LOCAL 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 (-)