INTERFACE:
subroutine BareGroundFluxes (c, p)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_varcon, only : cpair, vkc, grav
use shr_const_mod, only : SHR_CONST_RGAS
use FrictionVelocityMod, only : MoninObukIni, FrictionVelocity
ARGUMENTS:
implicit none
type (column_type), target, intent(inout) :: c !column-level data
type (pft_type), target, intent(inout) :: p !pft-level data
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 to the entire clm derived type. For consistency, only the derived type reference is passed (now pointing to the current column and pft), and the other original parameters are initialized locally. Using t_grnd instead of tg (tg eliminated 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 scalars
real(r8), pointer :: t_grnd !ground surface temperature [K]
real(r8), pointer :: thm !intermediate variable (forc_t+0.0098*forc_hgt_t)
real(r8), pointer :: qg !specific humidity at ground surface [kg/kg]
real(r8), pointer :: thv !virtual potential temperature (kelvin)
real(r8), pointer :: z0mg !roughness length, momentum [m]
real(r8), pointer :: dqgdT !temperature derivative of "qg"
real(r8), pointer :: htvp !latent heat of evaporation (/sublimation) [J/kg]
real(r8), pointer :: beta !coefficient of conective velocity [-]
real(r8), pointer :: zii !convective boundary height [m]
real(r8), pointer :: ur !wind speed at reference height [m/s]
real(r8), pointer :: forc_u !atmospheric wind speed in east direction (m/s)
real(r8), pointer :: forc_v !atmospheric wind speed in north direction (m/s)
real(r8), pointer :: forc_t !atmospheric temperature (Kelvin)
real(r8), pointer :: forc_th !atmospheric potential temperature (Kelvin)
real(r8), pointer :: forc_q !atmospheric specific humidity (kg/kg)
real(r8), pointer :: forc_rho !density (kg/m**3)
real(r8), pointer :: forc_pbot !atmospheric pressure (Pa)
real(r8), pointer :: forc_hgt !atmospheric reference height (m)
real(r8), pointer :: forc_hgt_u !observational height of wind [m]
real(r8), pointer :: forc_hgt_t !observational height of temperature [m]
real(r8), pointer :: forc_hgt_q !observational height of humidity [m]
local pointers to implicit inout scalars
real(r8), pointer :: z0hg !roughness length, sensible heat [m]
real(r8), pointer :: z0qg !roughness length, latent heat [m]
local pointers to implicit out scalars
real(r8), pointer :: dlrad !downward longwave radiation below the canopy [W/m2]
real(r8), pointer :: ulrad !upward longwave radiation above the canopy [W/m2]
real(r8), pointer :: cgrnds !deriv, of soil sensible heat flux wrt soil temp [w/m2/k]
real(r8), pointer :: cgrndl !deriv of soil latent heat flux wrt soil temp [w/m**2/k]
real(r8), pointer :: cgrnd !deriv. of soil energy flux wrt to soil temp [w/m2/k]
real(r8), pointer :: taux !wind (shear) stress: e-w (kg/m/s**2)
real(r8), pointer :: tauy !wind (shear) stress: n-s (kg/m/s**2)
real(r8), pointer :: eflx_sh_grnd !sensible heat flux from ground (W/m**2) [+ to atm]
real(r8), pointer :: eflx_sh_tot !total sensible heat flux (W/m**2) [+ to atm]
real(r8), pointer :: qflx_evap_soi!soil evaporation (mm H2O/s) (+ = to atm)
real(r8), pointer :: qflx_evap_tot!qflx_evap_soi + qflx_evap_veg + qflx_tran_veg
real(r8), pointer :: t_ref2m !2 m height surface air temperature (Kelvin)
real(r8), pointer :: t_veg !vegetation temperature (Kelvin)
real(r8), pointer :: btran !transpiration wetness factor (0 to 1)
real(r8), pointer :: rssun !sunlit stomatal resistance (s/m)
real(r8), pointer :: rssha !shaded stomatal resistance (s/m)
real(r8), pointer :: u10 !10-m wind (m/s) (for dust model)
real(r8), pointer :: fv !friction velocity (m/s) (for dust model)
real(r8), pointer :: ram1 !aerodynamical resistance (s/m)
local pointers to implicit out arrays
real(r8), dimension(:), pointer :: rootr !effective fraction of roots in each soil layer