INTERFACE:
subroutine FrictionVelocity(lbn, ubn, fn, filtern, & displa, z0m, z0h, z0q, & obu, iter, ur, um, ustar, & temp1, temp2, temp12m, temp22m, fm, landunit_index)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_atmlnd, only : clm_a2l use clm_varcon, only : vkc use clm_varctl, only : iulogARGUMENTS:
implicit none integer , intent(in) :: lbn, ubn ! pft/landunit array bounds integer , intent(in) :: fn ! number of filtered pft/landunit elements integer , intent(in) :: filtern(fn) ! pft/landunit filter real(r8), intent(in) :: displa(lbn:ubn) ! displacement height (m) real(r8), intent(in) :: z0m(lbn:ubn) ! roughness length over vegetation, momentum [m] real(r8), intent(in) :: z0h(lbn:ubn) ! roughness length over vegetation, sensible heat [m] real(r8), intent(in) :: z0q(lbn:ubn) ! roughness length over vegetation, latent heat [m] real(r8), intent(in) :: obu(lbn:ubn) ! monin-obukhov length (m) integer, intent(in) :: iter ! iteration number real(r8), intent(in) :: ur(lbn:ubn) ! wind speed at reference height [m/s] real(r8), intent(in) :: um(lbn:ubn) ! wind speed including the stablity effect [m/s] logical, optional, intent(in) :: landunit_index ! optional argument that defines landunit or pft level real(r8), intent(out) :: ustar(lbn:ubn) ! friction velocity [m/s] real(r8), intent(out) :: temp1(lbn:ubn) ! relation for potential temperature profile real(r8), intent(out) :: temp12m(lbn:ubn) ! relation for potential temperature profile applied at 2-m real(r8), intent(out) :: temp2(lbn:ubn) ! relation for specific humidity profile real(r8), intent(out) :: temp22m(lbn:ubn) ! relation for specific humidity profile applied at 2-m real(r8), intent(inout) :: fm(lbn:ubn) ! diagnose 10m wind (DUST only)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 :: ngridcell(:) !pft/landunit gridcell index real(r8), pointer :: forc_hgt_u_pft(:) !observational height of wind at pft level [m] real(r8), pointer :: forc_hgt_t_pft(:) !observational height of temperature at pft level [m] real(r8), pointer :: forc_hgt_q_pft(:) !observational height of specific humidity at pft level [m] integer , pointer :: pfti(:) !beginning pfti index for landunit integer , pointer :: pftf(:) !final pft index for landunit 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 model) real(r8), pointer :: vds(:) ! dry deposition velocity term (m/s) (for SO4 NH4NO3) real(r8), pointer :: u10_clm(:) ! 10-m wind (m/s) real(r8), pointer :: va(:) ! atmospheric wind speed plus convective velocity (m/s) !OTHER LOCAL VARIABLES: