next up previous contents index
Next: Module Hydrology2Mod (File: Hydrology2Mod.F90) Up: Module Hydrology1Mod (File: Hydrology1Mod.F90) Previous: Module Hydrology1Mod (File: Hydrology1Mod.F90)   Contents   Index


Hydrology1


INTERFACE:

    subroutine Hydrology1(lbc, ubc, lbp, ubp, num_nolakec, filter_nolakec, &
                          num_nolakep, filter_nolakep)
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 clm_varcon   , only : tfrz, istice, istwet, istsoil
     use FracWetMod   , only : FracWet
     use time_manager , only : get_step_size
     use subgridAveMod, only : p2c
ARGUMENTS:
     implicit none
     integer, intent(in) :: lbp, ubp                     ! pft bounds
     integer, intent(in) :: lbc, ubc                     ! column bounds
     integer, intent(in) :: num_nolakec                  ! number of column no
     integer, intent(in) :: filter_nolakec(ubc-lbc+1)    ! column filter for n
     integer, intent(in) :: num_nolakep                  ! number of pft non-l
     integer, intent(in) :: filter_nolakep(ubp-lbp+1)    ! pft filter for non-
CALLED FROM:
   subroutine driver
REVISION 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 arrays
     integer , pointer :: cgridcell(:)      ! columns's gridcell
     integer , pointer :: clandunit(:)      ! columns's landunit
     integer , pointer :: pgridcell(:)      ! pft's gridcell
     integer , pointer :: plandunit(:)      ! pft's landunit
     integer , pointer :: pcolumn(:)        ! pft's column
     integer , pointer :: npfts(:)          ! number of pfts in column
     integer , pointer :: pfti(:)           ! column's beginning pft index
     integer , pointer :: itype(:)          ! landunit 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)
 #if (defined OFFLINE)
     real(r8), pointer :: flfall(:)         ! fraction of liquid water within 
 #endif
     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 s
     real(r8), pointer :: elai(:)           ! one-sided leaf area index with b
     real(r8), pointer :: esai(:)           ! one-sided stem area index with b
   local pointers to original implicit inout arrays
     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(:)         ! total canopy water (mm H2O)
   local pointers to original implicit out arrays
     real(r8), pointer :: qflx_prec_intr(:)     ! interception of precipitatio
     real(r8), pointer :: qflx_prec_grnd(:)     ! water onto ground including 
     real(r8), pointer :: qflx_snowcap(:)       ! excess precipitation due to 
     real(r8), pointer :: qflx_snow_grnd_pft(:) !snow on ground after intercep
     real(r8), pointer :: qflx_snow_grnd_col(:) !snow on ground after intercep
     real(r8), pointer :: qflx_rain_grnd(:)     ! rain on ground after interce
     real(r8), pointer :: fwet(:)               ! fraction of canopy that is w
     real(r8), pointer :: fdry(:)               ! fraction of foliage that is 
     real(r8), pointer :: zi(:,:)               ! interface level below a "z" 
     real(r8), pointer :: dz(:,:)               ! layer depth (m)
     real(r8), pointer :: z(:,:)                ! layer thickness (m)
     real(r8), pointer :: t_soisno(:,:)         ! soil temperature (Kelvin)
     real(r8), pointer :: h2osoi_ice(:,:)       ! ice lens (kg/m2)
     real(r8), pointer :: h2osoi_liq(:,:)       ! liquid water (kg/m2)
     real(r8), pointer :: frac_iceold(:,:)      ! fraction of ice relative to



Mariana Vertenstein 2004-06-21