-
Notifications
You must be signed in to change notification settings - Fork 341
Description
Brief summary of bug
The implementation of the Meier 2022 paameterization for the z0param_method causes errors in FATES that are especially large in SP mode.
General bug information
CTSM version you are using: [output of git describe]
ctsm5.3.018
Does this bug cause significantly incorrect results in the model's science? Yes
Configurations affected: [Fill this in if known.]
FATES, FATES-SP
Details of bug
The Meier 2022 implementation of the z0 param method, specifically this line
CTSM/src/biogeophys/CanopyFluxesMod.F90
Line 901 in fb89f33
| displa(p) = htop(p) * (1._r8 - (1._r8 - exp(-(cd1_param * lt)**0.5_r8)) / (cd1_param*lt)**0.5_r8) |
overwrites the DISPLA_PATCH values, that are previously calculated as a FATES variable. These values are wrong in FATES-SP mode, because the code uses the 'HTOP_PATCH' variable to recalculate 'DISPLA' , but in FATES-SP mode, this HTOP value is the driver variable for SP mode and is not an output of FATES. Instead, we should be using HTOP_HIST_PATCH for this calculation, which contains the output from FATES assigned the the correct PFT patches.
There are also several instances where itype is used to define a patch property, which cannot be used when FATES is on.
CTSM/src/biogeophys/CanopyFluxesMod.F90
Line 906 in fb89f33
| U_ustar_ini = (z0v_Cs(patch%itype(p)) + z0v_Cr(patch%itype(p)) * lt * 0.5_r8)**(-0.5_r8) & |
CTSM/src/biogeophys/CanopyFluxesMod.F90
Line 903 in fb89f33
| lt = min(lt,z0v_LAImax(patch%itype(p))) |
This means that the displacement height in FATES-SP, for example, is way to low in the tropics.
and this seems to lead to a larger boundary layer resistance.
A solution is to use the alternative parameterization (ZengWang2007). I am not familiar with the motivation for including Meier2022 in the first place though. Should we reimplement it in FATES? @swensosc @RonnyMeier can you advise?
I currently suspect that since whenever this is was made the default it will have affected all CLM-FATES simulations, including @adrifoster's calibration runs.
Definition of done:
- Bring in changes so that ZengWang is the default for FATES, and disallow using Meier
- Make the needed changes to the code so that Meier can be used with FATES
- Do a scientific evaluation of the use of Meier with FATES
- Allow Meier to be used with FATES
- Change the default for FATES to be Meier to be consistent with clm6_0

