cleaned up noah-mp phenology routine and removed check that gave 0 SAI & LAI if below 0.05 #484
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Make sure all the relevant boxes are checked (and only check the box if you actually completed the step):
Issue
Noah-MP code includes a check that sets SAI and/or LAI values to 0 if the ever drop below 0.05. This was (presumably) to avoid numerical issues with dividing by small numbers but this does not seem needed in current SUMMA. An undesirable consequence of this check was the potential to get unrealistic SAI and LAI patterns. Example below (copied from #479).
Fix
Removed the checks and did some general cleanup of the routine. Martyn and I decided that it would be good to notify the user of potentially unrealistic values so added a warning that triggers if SAI drops to 0 for vegetated land classes. Warning indentation matches indentation: in https://github.com/NCAR/summa/blob/372c3fbeb3825e3b3d635461a8e552f9f0895aec/build/source/netcdf/read_icond.f90#L401
SAI and LAI patterns look a lot better as a result (same test case as above):
Tests
This PR fundamentally changes how small values of LAI and SAI are treated in the code and changes to the test case outputs thus may be expected. I updated the outputs for standard test cases to also include
scalarCanopyTranspiration
,scalarCanopyEvaporation
,scalarGroundEvaporation
,scalarExposedLAI
andscalarExposedSAI
, because we should see changes in these ifscalarLAI
andscalarSAI
change for a given test case. As expected, differences are visible in test case outcomes.These new test outcomes should be "better" than the old ones because we no longer round SAI and LAI and instead use the originally calculated values.
Standard test cases
Click to show test case differences report
Additional tests
Changes in fluxes in the AU-GWW case from above:
Close-up of 1 year:
Evaporation/transpiration fluxes seem of appropriate magnitude in the new case compared to old. A difference in net radiation of ~700 [W m-2] is obviously wrong but that is unrelated to this PR (see #479, #327). In any case, net radiation is reported better with these changes than without:
See #487 for bugfix of incorrectly reported net radiation.