INTERFACE:
subroutine HydrologyLake(lbp, ubp, num_lakep, filter_lakep)DESCRIPTION:
Calculate lake hydrology
WARNING: This subroutine assumes lake columns have one and only one pft.
USES:
use shr_kind_mod, only: r8 => shr_kind_r8 use clmtype use clm_atmlnd , only : clm_a2l use clm_time_manager, only : get_step_size use clm_varcon , only : hfus, tfrz, spvalARGUMENTS:
implicit none integer, intent(in) :: lbp, ubp ! pft-index bounds integer, intent(in) :: num_lakep ! number of pft non-lake points in pft filter integer, intent(in) :: filter_lakep(ubp-lbp+1) ! pft filter for non-lake pointsCALLED FROM:
subroutine clm_driver1REVISION HISTORY:
Author: Gordon Bonan 15 September 1999: Yongjiu Dai; Initial code 15 December 1999: Paul Houser and Jon Radakovich; F90 Revision 3/4/02: Peter Thornton; Migrated to new data structures.LOCAL VARIABLES:
local pointers to implicit in arrays integer , pointer :: pcolumn(:) !pft's column index integer , pointer :: pgridcell(:) !pft's gridcell index real(r8), pointer :: begwb(:) !water mass begining of the time step real(r8), pointer :: forc_snow(:) !snow rate [mm/s] real(r8), pointer :: forc_rain(:) !rain rate [mm/s] logical , pointer :: do_capsnow(:) !true => do snow capping real(r8), pointer :: t_grnd(:) !ground temperature (Kelvin) real(r8), pointer :: qmelt(:) !snow melt [mm/s] real(r8), pointer :: qflx_evap_soi(:) !soil evaporation (mm H2O/s) (+ = to atm) real(r8), pointer :: qflx_evap_tot(:) !qflx_evap_soi + qflx_evap_can + qflx_tran_veg local pointers to implicit inout arrays real(r8), pointer :: h2osno(:) !snow water (mm H2O) local pointers to implicit out arrays real(r8), pointer :: endwb(:) !water mass end of the time step real(r8), pointer :: snowdp(:) !snow height (m) real(r8), pointer :: snowice(:) !average snow ice lens real(r8), pointer :: snowliq(:) !average snow liquid water real(r8), pointer :: eflx_snomelt(:) !snow melt heat flux (W/m**2) real(r8), pointer :: qflx_infl(:) !infiltration (mm H2O /s) real(r8), pointer :: qflx_snomelt(:) !snow melt (mm H2O /s) real(r8), pointer :: qflx_surf(:) !surface runoff (mm H2O /s) real(r8), pointer :: qflx_drain(:) !sub-surface runoff (mm H2O /s) real(r8), pointer :: qflx_irrig(:) !irrigation flux (mm H2O /s) real(r8), pointer :: qflx_qrgwl(:) !qflx_surf at glaciers, wetlands, lakes real(r8), pointer :: qflx_runoff(:) !total runoff (qflx_drain+qflx_surf+qflx_qrgwl) (mm H2O /s) real(r8), pointer :: qflx_snwcp_ice(:)!excess snowfall due to snow capping (mm H2O /s) [+]` real(r8), pointer :: qflx_evap_tot_col(:) !pft quantity averaged to the column (assuming one pft) real(r8) ,pointer :: soilalpha(:) !factor that reduces ground saturated specific humidity (-) real(r8), pointer :: zwt(:) !water table depth real(r8), pointer :: fcov(:) !fractional impermeable area real(r8), pointer :: fsat(:) !fractional area with water table at surface real(r8), pointer :: qcharge(:) !aquifer recharge rate (mm/s) local pointers to implicit out multi-level arrays real(r8), pointer :: rootr_column(:,:) !effective fraction of roots in each soil layer real(r8), pointer :: h2osoi_vol(:,:) !volumetric soil water (0<=h2osoi_vol<=watsat) [m3/m3] real(r8), pointer :: h2osoi_ice(:,:) !ice lens (kg/m2) real(r8), pointer :: h2osoi_liq(:,:) !liquid water (kg/m2) !OTHER LOCAL VARIABLES: