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

Drainage


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 Revision
LOCAL 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)



Mariana Vertenstein 2003-01-14