INTERFACE:
subroutine BareGroundFluxes(lbp, ubp, num_nolakep, filter_nolakep)DESCRIPTION:
Compute sensible and latent fluxes and their derivatives with respect to ground temperature using ground temperatures from previous time step.
USES:
use clmtype
use clm_varpar , only : nlevsoi
use clm_varcon , only : cpair, vkc, grav
use shr_const_mod , only : SHR_CONST_RGAS
use FrictionVelocityMod, only : FrictionVelocity, MoninObukIni
ARGUMENTS:
implicit none
integer, intent(in) :: lbp, ubp ! pft bounds
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 Biogeophysics1 in module Biogeophysics1ModREVISION HISTORY:
15 September 1999: Yongjiu Dai; Initial code 15 December 1999: Paul Houser and Jon Radakovich; F90 Revision 12/19/01, Peter Thornton This routine originally had a long list of parameters, and also a reference the entire clm derived type. For consistency, only the derived type refere is passed (now pointing to the current column and pft), and the other origi parameters are initialized locally. Using t_grnd instead of tg (tg eliminat as redundant). 1/23/02, PET: Added pft reference as parameter. All outputs will be written to the pft data structures, and averaged to the column level outside of this routine.LOCAL VARIABLES:
local pointers to implicit in arguments
integer , pointer :: pcolumn(:) ! pft's column index
integer , pointer :: pgridcell(:) ! pft's gridcell index
integer , pointer :: frac_veg_nosno(:) ! fraction of vegetation not cover
real(r8), pointer :: t_grnd(:) ! ground surface temperature [K]
real(r8), pointer :: thm(:) ! intermediate variable (forc_t+0.
real(r8), pointer :: qg(:) ! specific humidity at ground surf
real(r8), pointer :: thv(:) ! virtual potential temperature (k
real(r8), pointer :: dqgdT(:) ! temperature derivative of "qg"
real(r8), pointer :: htvp(:) ! latent heat of evaporation (/sub
real(r8), pointer :: beta(:) ! coefficient of conective velocit
real(r8), pointer :: zii(:) ! convective boundary height [m]
real(r8), pointer :: forc_u(:) ! atmospheric wind speed in east d
real(r8), pointer :: forc_v(:) ! atmospheric wind speed in north
real(r8), pointer :: forc_t(:) ! atmospheric temperature (Kelvin)
real(r8), pointer :: forc_th(:) ! atmospheric potential temperatur
real(r8), pointer :: forc_q(:) ! atmospheric specific humidity (k
real(r8), pointer :: forc_rho(:) ! density (kg/m**3)
real(r8), pointer :: forc_pbot(:) ! atmospheric pressure (Pa)
real(r8), pointer :: forc_hgt_u(:) ! observational height of wind [m]
real(r8), pointer :: psnsun(:) ! sunlit leaf photosynthesis (umol
real(r8), pointer :: psnsha(:) ! shaded leaf photosynthesis (umol
real(r8), pointer :: z0mg_col(:) ! roughness length, momentum [m]
local pointers to implicit inout arguments
real(r8), pointer :: z0hg_col(:) ! roughness length, sensible heat
real(r8), pointer :: z0qg_col(:) ! roughness length, latent heat [m
local pointers to implicit out arguments
real(r8), pointer :: dlrad(:) ! downward longwave radiation below
real(r8), pointer :: ulrad(:) ! upward longwave radiation above t
real(r8), pointer :: cgrnds(:) ! deriv, of soil sensible heat flux
real(r8), pointer :: cgrndl(:) ! deriv of soil latent heat flux wr
real(r8), pointer :: cgrnd(:) ! deriv. of soil energy flux wrt to
real(r8), pointer :: taux(:) ! wind (shear) stress: e-w (kg/m/s*
real(r8), pointer :: tauy(:) ! wind (shear) stress: n-s (kg/m/s*
real(r8), pointer :: eflx_sh_grnd(:) ! sensible heat flux from ground (W
real(r8), pointer :: eflx_sh_tot(:) ! total sensible heat flux (W/m**2)
real(r8), pointer :: qflx_evap_soi(:) ! soil evaporation (mm H2O/s) (+ =
real(r8), pointer :: qflx_evap_tot(:) ! qflx_evap_soi + qflx_evap_veg + q
real(r8), pointer :: t_ref2m(:) ! 2 m height surface air temperatur
real(r8), pointer :: q_ref2m(:) ! 2 m height surface specific humid
real(r8), pointer :: t_veg(:) ! vegetation temperature (Kelvin)
real(r8), pointer :: btran(:) ! transpiration wetness factor (0 t
real(r8), pointer :: rssun(:) ! sunlit stomatal resistance (s/m)
real(r8), pointer :: rssha(:) ! shaded stomatal resistance (s/m)
real(r8), pointer :: ram1(:) ! aerodynamical resistance (s/m)
real(r8), pointer :: fpsn(:) ! photosynthesis (umol CO2 /m**2 /s
real(r8), pointer :: rootr(:,:) ! effective fraction of roots in ea