next up previous contents
Next: Fortran: Module Interface Biogeophysics1Mod Up: Fortran: Module Interface (Source Previous: Fortran: Module Interface (Source   Contents

BareGroundFluxes


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 Biogeophysics1Mod
REVISION 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



Mariana Vertenstein 2003-01-14