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


BareGroundFluxes


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



Mariana Vertenstein 2004-06-21