-
Notifications
You must be signed in to change notification settings - Fork 321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change renormalization of landunit areas in mksurfdata_map to be consistent with raw datasets #1555
Comments
Thanks @billsacks and @olyson for this post and the meeting. Yes this is the approach I would support as well except I don't think there is a problem leaving the raw as it is. Having the PCT_NATVEG being the residual of the other land units ensures that the PCT_NAT_PFT x PCT_NATVEG (generated in the model at runtime) should be correct regardless of the other land units. |
For the first task (Look at the sum of all landunits other than natural veg (but including crop!): If this sum is > 100%, scale down all landunits other than natural veg (but including crop!) proportionally.), does this bit of code accomplish what we want? Here I've included the crop landunit in the rescaling.
|
Yes, that looks right - thanks! |
…istent with raw datasets (Issue ESCOMP#1555)
@lawrencepj1 sorry - I didn't see this comment until just now. (I think you edited your original comment, but edits don't generate a notification, so I only noticed this addition when I was rereading through this whole issue.) To first order, you're right. However, I think the forcing of PCT_NATVEG to 100% on the raw datasets causes problems with the remapping from source to destination. I explain this more clearly in #1556 - particularly in the example I give there. Can you look through that and see if it makes sense to you? Let's move further discussion of this point to #1556 . |
In recent discussions (spinning off from #1445 , including @Face2sea @fang-bowen @keerzhang1 @olyson and @lawrencepj1 ), it has become clear that there are problems with the current renormalization of PCT_NATVEG and PCT_CROP in mksurfdata_map to ensure that all landunits add up to 100%. This refers mainly to the code in
normalizencheck_landuse
and this initial adjustment:CTSM/tools/mksurfdata_map/src/mksurfdat.F90
Lines 751 to 763 in 7a85024
My sense is that these adjustments made sense at one point (e.g., maybe for CLM4.0), but have not been updated to remain correct with other recent changes – one big one being the standard placement of crop on its own landunit.
Specific problems with what's currently done are:
My proposal, based on discussions with @lawrencepj1 and @olyson, is:
To accomplish this:
suma
rescaling code that is done just before callingnormalizencheck_landuse
.normalizencheck_landuse
.Note that this scaling down process differs from what's done in dynLandunitAreaMod: in the latter, landunits are decreased in a priority order. There is some argument for keeping the two consistent, although there is also some argument for allowing them to remain inconsistent. The argument for the latter is: The corrections in mksurfdata_map relate to reconciling raw datasets that disagree but should (in principle) be consistent; the corrections in dynLandunitAreaMod are more about handling dynamic areas from other components (e.g., dynamic glacier). It may be that the best solution is to just save all of the normalization to 100% to runtime (see my comment near the end of #1445 (comment) ), but it feels like that introduces a lot of potential for new issues, for uncertain benefit, so we probably won't go there for now.
When making these changes, we should double-check that there isn't any code that assumes that PCT_NATVEG + PCT_CROP adds up to 100% (or forces that to be the case). I didn't see anything like this in my initial, quick read-through, but we should double-check that. One specific thing to look for is: will code work correctly if the input PCT_NATVEG = PCT_CROP = 0%? (Or would such grid cells incorrectly be considered ocean, for example?)
The text was updated successfully, but these errors were encountered: