Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

In which folder is the calculation formula of roughness length Z0MV?

zqzq

zqzqzqzq
Member
Dear all,
In which folder is the calculation formula of roughness length Z0MV?I seem to have found Z0MV in the folder FrictionVelocityMod.F90 but did not find its specific calculation formula.
 

dbailey

CSEG and Liaisons
Staff member
If you do a grep -ir on the components directory you will find that it is computed here:

clm/src/biogeophys/CanopyFluxesMod.F90

Moving this to the CLM forum.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Thanks Dave.
Another way to find the variable in the code (the history field doesn't always have the same name as the variable in the code) is to find the history call for Z0MV (by grep or other means):

call hist_addfld1d (fname='Z0MV', units='m', &
avgflag='A', long_name='roughness length over vegetation, momentum', &
ptr_patch=this%z0mv_patch, default='inactive')

So, the variable in the code is z0mv_patch and you can find instances of this using grep or other means.
The z0mv is calculated first in biogeophys/CanopyTemperatureMod.F90:

z0m(p) = z0mr(patch%itype(p)) * htop(p)
z0mv(p) = z0m(p)

and then as Dave noted modified for canopy density in biogeophys/CanopyFluxesMod.F90:

z0mv(p) = exp(egvf * log(z0mv(p)) + (1._r8 - egvf) * log(z0mg(c)))
 
Top