next up previous contents
Next: Fortran: Module Interface HydrologyLakeMod Up: Fortran: Module Interface Hydrology2Mod Previous: Fortran: Module Interface Hydrology2Mod   Contents

Hydrology2


INTERFACE:

   subroutine Hydrology2 (c)
DESCRIPTION:

   This is the main subroutine to execute the calculation of soil/snow 
   hydrology
   Calling sequence is: 
    Hydrology2:                       surface hydrology driver
      -> SnowWater:                   change of snow mass and snow water
                                      onto soil
      -> SurfaceRunoff:               surface runoff 
      -> Infiltration:                infiltration into surface soil layer
      -> SoilWater:                   soil water movement between layers
            -> Tridiagonal            tridiagonal matrix solution
      -> Drainage:                    subsurface runoff  
      -> SnowCompaction:              compaction of snow layers
      -> CombineSnowLayers:           combine snow layers that are thinner
                                       than minimum
      -> DivideSnowLayers:            subdivide snow layers that are thicker
                                       than maximum
      -> WetIceHydrology:             calculate hydrology for wetland and land
USES:
     use shr_kind_mod, only: r8 => shr_kind_r8
     use clmtype
     use clm_varcon, only : denh2o, denice, istice, istwet, istsoil, spval
     use clm_varpar, only : nlevsoi, nlevsno
     use SnowHydrologyMod, only : SnowCompaction, CombineSnowLayers, DivideSnowLayers, SnowWater
     use SoilHydrologyMod, only : Infiltration, SoilWater, Drainage, SurfaceRunoff
     use WetIceHydrologyMod, only : WetIceHydrology
ARGUMENTS:
     implicit none
     type (column_type), target, intent(inout) :: c !column derived type
CALLED FROM:
   subroutine driver
REVISION HISTORY:
   Created by Mariana Vertenstein
LOCAL VARIABLES:
   local pointers to implicit in scalars
     integer , pointer :: itypwat !water type
     integer , pointer :: snl     !number of snow layers
     real(r8), pointer :: h2ocan  !canopy water (mm H2O)
     real(r8), pointer :: h2osno  !snow water (mm H2O)
   local pointers to implicit out scalars
     real(r8), pointer :: endwb   !water mass end of the time step
     real(r8), pointer :: snowage !non dimensional snow age [-]
     real(r8), pointer :: wf      !soil water as frac. of whc for top 0.5 m
     real(r8), pointer :: t_snow  !vertically averaged snow temperature
     real(r8), pointer :: t_grnd  !ground temperature (Kelvin)
     real(r8), pointer :: snowice !average snow ice lens
     real(r8), pointer :: snowliq !average snow liquid water
   local pointers to implicit in arrays
     real(r8), dimension(:), pointer :: watsat !volumetric soil water at saturation (porosity)
     real(r8), dimension(:), pointer :: sucsat !minimum soil suction (mm)
     real(r8), dimension(:), pointer :: bsw    !Clapp and Hornberger "b"
     real(r8), dimension(:), pointer :: z      !layer depth  (m)
   local pointers to implicit inout arrays
     real(r8), dimension(:), pointer :: dz     !layer thickness depth (m)
     real(r8), dimension(:), pointer :: zi     !interface depth (m)
   local pointers to implicit out arrays
     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 :: h2osoi_vol   !volumetric soil water (0<=h2osoi_vol<=watsat) [m3/m3]



Mariana Vertenstein 2003-01-14