NGEET / fates

repository for the Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Other
105 stars 92 forks source link

Leaf layer resolution impacts total absorbed radiation #747

Open rosiealice opened 3 years ago

rosiealice commented 3 years ago

Looking at the SP mode simulations, it appears that FATES has a low bias in the absorbed radiation fluxes (and a correspondingly high bias in reflected radiation), compared to CLM5-SP runs with the same LAI forcing, no stem area index (for the sake of avoiding #744) and optical properties.

The dinc_ed parameter is hard-wired, here: https://github.com/NGEET/fates/blob/516c1845d5fe18eacbb7e8e7d70596b4eff364aa/main/EDTypesMod.F90#L123

Modifying it from 1.0 to 0.2 reduces the bias from ˜0.15 (version 4 below) to <0.06 (version 5 below).

Obviously, this is non-ideal. The potential fixes include:

  1. Having a dinc_ed so small that we resolve the radiation environment perfectly
  2. Adding in a scheme whereby dinc changes (gets larger) as a function of canopy depth, to better resolve the rapid changes in light in the upper layers.
  3. We change to/implement a 2-stream scheme within cohorts in FATES.

'1' is just really for the sake of completeness and/or testing. Making dinc uniformly <0.2 through the canopy would be far too expensive.
'2' is less of a time sink than '3'., and is probably what we need to do in the interim. '3' would allow one to replicate 'big-leaf' physiology in the FATES code and thus ultimately reduce duplication.

˜SP_2rad_SABV_5 (3)

SP_2rad_SABV_4 (4)

walkeranthonyp commented 3 years ago

There's a further hybrid option of those you list above, but it's going to add complexity.

  1. Hybrid option(s): Different dinc_ed for RT and for calculation of photosynthesis. e.g. calculating RT with dinc_ed of 0.2 or smaller, and photosynthesis with dinc_d of 1 ... or perhaps variable by canopy layer. If RT calculation is still too expensive Gordon's textbook has a tridiagonal solver for the Norman scheme (tho I recognise that's not trivial to add with with this awesome fates RT code!).

By two-stream do you mean the same as the two bigleaf approach with a single sun and shade leaf (as in clm), but I guess one sun n shade leaf per canopy layer (per pft)? If so I guess option 4 is a slightly more complicated version of that.

ckoven commented 3 years ago

I have code working now that does strategy (2) above. FATES branch is: https://github.com/NGEET/fates/compare/master...ckoven:variable_vai_bins?expand=1 and corresponding CTSM branch is: https://github.com/ESCOMP/CTSM/compare/master...ckoven:variable_dinc_2?expand=1

nlevleaf is still hard-coded in: https://github.com/ckoven/fates/blob/variable_vai_bins/main/EDTypesMod.F90#L62

but the parameters for controlling bin width (top bin width and fractinal increase in width per layer) are in the parameter file for greater ease of experimentation: https://github.com/ckoven/fates/blob/variable_vai_bins/parameter_files/fates_params_default.cdl#L690-L695 and https://github.com/ckoven/fates/blob/variable_vai_bins/parameter_files/fates_params_default.cdl#L1339-L1341

currently doing some comparisons against master to see how it works.

rosiealice commented 1 year ago

Noting that our plan to change the bin widths in an upcoming PR will address the majority of this problem