INTERFACE:
subroutine Drainage (c, zwice, vol_liq, s, zwt, &
fcov, hk, dhkdw, dwat)
DESCRIPTION:
Calculate subsurface drainage
The original code was provide by Robert E. Dickinson based on
following clues: exponential decrease of Ksat, a water table
level determination level including highland and lowland levels
and fractional area of wetland (water table above the surface).
Runoff is parameterized from the lowlands in terms of precip
incident on wet areas and a base flow, where these are estimated
using ideas from TOPMODEL.
The original scheme was modified by Z.-L. Yang and G.-Y. Niu,
* using a new method to determine water table depth and
the fractional wet area (fcov)
* computing runoff (surface and subsurface) from this
fraction and the remaining fraction (i.e. 1-fcov)
* for the 1-fcov part, using BATS1e method to compute
surface and subsurface runoff.
The original code on soil moisture and runoff were provided by
R. E. Dickinson in July 1996.
USES:
use shr_kind_mod, only: r8 => shr_kind_r8
use clmtype
use globals, only: dtime
use clm_varcon, only: pondmx
use clm_varpar, only : nlevsoi
ARGUMENTS:
implicit none
type (column_type),target,intent(inout):: c !column derived type
real(r8), intent(in) :: vol_liq(1:nlevsoi) ! partial volume of liquid water in layer
real(r8), intent(in) :: zwice ! the sum of ice mass of soil (kg/m2)
real(r8), intent(in) :: s(1:nlevsoi) ! wetness of soil (including ice)
real(r8), intent(in) :: zwt ! water table depth
real(r8), intent(in) :: fcov ! fractional area with water table at surface
real(r8), intent(in) :: hk(1:nlevsoi) ! hydraulic conductivity (mm h2o/s)
real(r8), intent(in) :: dhkdw(1:nlevsoi) ! d(hk)/d(vol_liq)
real(r8), intent(in) :: dwat(1:nlevsoi) ! change in soil water
CALLED FROM:
REVISION 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 RevisionLOCAL VARIABLES:
local pointers to original implicit in scalars
integer,pointer:: snl !number of snow layers
real(r8),pointer:: qflx_snowcap !excess precipitation due to snow capping (mm H2O /s) [+]
real(r8),pointer:: qflx_dew_grnd !ground surface dew formation (mm H2O /s) [+]
real(r8),pointer:: qflx_dew_snow !surface dew added to snow pack (mm H2O /s) [+]
real(r8),pointer:: qflx_sub_snow !sublimation rate from snow pack (mm H2O /s) [+]
local pointers to original implicit out scalars
real(r8),pointer:: qflx_drain !sub-surface runoff (mm H2O /s)
real(r8),pointer:: qflx_qrgwl !qflx_surf at glaciers, wetlands, lakes
real(r8),pointer:: eflx_impsoil !implicit evaporation for soil temperature equation
local pointers to original implicit in arrays
real(r8),dimension(:),pointer:: dz !layer depth (m)
real(r8),dimension(:),pointer:: bsw !Clapp and Hornberger "b"
real(r8),dimension(:),pointer:: eff_porosity !effective porosity = porosity - vol_ice
local pointers to original implicit inout arrays
real(r8),dimension(:),pointer:: h2osoi_ice !ice lens (kg/m2)
real(r8),dimension(:),pointer:: h2osoi_liq !liquid water (kg/m2)