INTERFACE:
subroutine FrictionVelocity(lbp, ubp, fn, filterp, &
displa, z0m, z0h, z0q, &
obu, iter, ur, um, ustar, &
temp1, temp2, temp12m, temp22m, fm)
DESCRIPTION:
Calculation of the friction velocity, relation for potential temperature and humidity profiles of surface boundary layer. The scheme is based on the work of Zeng et al. (1998): Intercomparison of bulk aerodynamic algorithms for the computation of sea surface fluxes using TOGA CORE and TAO data. J. Climate, Vol. 11, 2628-2644.USES:
use clmtype
use clm_varcon, only : vkc
ARGUMENTS:
implicit none
integer , intent(in) :: lbp, ubp ! pft array bounds
integer , intent(in) :: fn ! number of filtered pft element
integer , intent(in) :: filterp(fn) ! pft filter
real(r8), intent(in) :: displa(lbp:ubp) ! displacement height (m)
real(r8), intent(in) :: z0m(lbp:ubp) ! roughness length over vegetati
real(r8), intent(in) :: z0h(lbp:ubp) ! roughness length over vegetati
real(r8), intent(in) :: z0q(lbp:ubp) ! roughness length over vegetati
real(r8), intent(in) :: obu(lbp:ubp) ! monin-obukhov length (m)
integer, intent(in) :: iter ! iteration number
real(r8), intent(in) :: ur(lbp:ubp) ! wind speed at reference height
real(r8), intent(in) :: um(lbp:ubp) ! wind speed including the stabl
real(r8), intent(out) :: ustar(lbp:ubp) ! friction velocity [m/s]
real(r8), intent(out) :: temp1(lbp:ubp) ! relation for potential tempera
real(r8), intent(out) :: temp12m(lbp:ubp) ! relation for potential tempera
real(r8), intent(out) :: temp2(lbp:ubp) ! relation for specific humidity
real(r8), intent(out) :: temp22m(lbp:ubp) ! relation for specific humidity
real(r8), intent(inout) :: fm(lbp:ubp) ! needed for DGVM only to diagno
CALLED FROM:
REVISION HISTORY:
15 September 1999: Yongjiu Dai; Initial code 15 December 1999: Paul Houser and Jon Radakovich; F90 Revision 12/19/01, Peter Thornton Added arguments to eliminate passing clm derived type into this function. Created by Mariana VertensteinLOCAL VARIABLES:
local pointers to implicit in arguments
integer , pointer :: pgridcell(:) ! pft's gridcell index
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
real(r8), pointer :: forc_hgt_q(:) ! observational height of humidity [m]
local pointers to implicit out arguments
real(r8), pointer :: u10(:) ! 10-m wind (m/s) (for dust model)
real(r8), pointer :: fv(:) ! friction velocity (m/s) (for dust mo