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 driverREVISION HISTORY:
Created by Mariana VertensteinLOCAL 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]