INTERFACE:
subroutine Hydrology1 (c)DESCRIPTION:
Calculation of
(1) water storage of intercepted precipitation
(2) direct throughfall and canopy drainage of precipitation
(3) the fraction of foliage covered by water and the fraction
of foliage that is dry and transpiring.
(4) snow layer initialization if the snow accumulation exceeds 10 mm.
Note: The evaporation loss is taken off after the calculation of leaf
temperature in the subroutine clm_leaftem.f90, not in this subroutine.
USES:
use shr_kind_mod, only: r8 => shr_kind_r8
use clmtype
use globals, only: dtime
use clm_varcon, only : tfrz, istice, istwet, istsoil
use FracWetMod, only : FracWet
ARGUMENTS:
implicit none
type (column_type),target,intent(inout):: c !column derived type
CALLED FROM:
subroutine driverREVISION HISTORY:
15 September 1999: Yongjiu Dai; Initial code 15 December 1999: Paul Houser and Jon Radakovich; F90 Revision 2/15/02, Peter Thornton: Migrated to new data structures. Required adding a PFT loop.LOCAL VARIABLES:
local pointers to original implicit in scalars
integer , pointer :: itypwat !water type
integer , pointer :: itypprc !precipitatin type
real(r8), pointer :: forc_rain !rain rate [mm/s]
real(r8), pointer :: forc_snow !snow rate [mm/s]
real(r8), pointer :: forc_t !atmospheric temperature (Kelvin)
logical , pointer :: do_capsnow !true => do snow capping
real(r8), pointer :: t_grnd !ground temperature (Kelvin)
real(r8), pointer :: dewmx !Maximum allowed dew [mm]
integer , pointer :: frac_veg_nosno !fraction of veg not covered by snow (0/1 now) [-]
real(r8), pointer :: elai !one-sided leaf area index with burying by snow
real(r8), pointer :: esai !one-sided stem area index with burying by snow
local pointers to original implicit inout scalars
integer , pointer :: snl !number of snow layers
real(r8), pointer :: snowage !non dimensional snow age [-]
real(r8), pointer :: snowdp !snow height (m)
real(r8), pointer :: h2osno !snow water (mm H2O)
real(r8), pointer :: h2ocan !canopy water (mm H2O)
local pointers to original implicit out scalars
real(r8), pointer :: qflx_prec_intr !interception of precipitation [mm/s]
real(r8), pointer :: qflx_prec_grnd !water onto ground including canopy runoff [kg/(m2 s)]
real(r8), pointer :: qflx_snowcap !excess precipitation due to snow capping (mm H2O /s) [+]
real(r8), pointer :: qflx_snow_grnd !snow on ground after interception (mm H2O/s) [+]
real(r8), pointer :: qflx_rain_grnd !rain on ground after interception (mm H2O/s) [+]
local pointers to original implicit out arrays
real(r8), dimension(:), pointer :: zi !interface level below a "z" level (m)
real(r8), dimension(:), pointer :: dz !layer depth (m)
real(r8), dimension(:), pointer :: z !layer thickness (m)
real(r8), dimension(:), pointer :: t_soisno !soil temperature (Kelvin)
real(r8), dimension(:), pointer :: h2osoi_ice !ice lens (kg/m2)
real(r8), dimension(:), pointer :: h2osoi_liq !liquid water (kg/m2)
real(r8), dimension(:), pointer :: frac_iceold !fraction of ice relative to the tot water