Skip to content

'Meier 2022' z0 parameterization causes errors with FATES (especially in SP mode.)  #2932

@rosiealice

Description

@rosiealice

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

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.

U_ustar_ini = (z0v_Cs(patch%itype(p)) + z0v_Cr(patch%itype(p)) * lt * 0.5_r8)**(-0.5_r8) &

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.

image

and this seems to lead to a larger boundary layer resistance.

image

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

Metadata

Metadata

Assignees

Labels

bugsomething is working incorrectlyscienceEnhancement to or bug impacting science

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions