JGCRI / hector

The Hector Simple Climate Model
http://jgcri.github.io/hector/
GNU General Public License v3.0
107 stars 45 forks source link

Reduce (or increase) NPP due to LUC effects on vegetation #651

Closed bpbond closed 1 year ago

bpbond commented 1 year ago

This PR cherry-picks the NPP reduction (due to LUC effects on vegetation) code from #639 .

This PR adds a new term to our NPP calculation: vegetation losses (or gains) due to LUC change, with the the aim of avoiding double-counting of regrowth fluxes. We save the end-of-spinup vegetation C value; keep a running total of LUC emissions from (or gains to) vegetation; and then adjust NPP:

  npp_luc_adjust = (end_of_spinup_vegc - cum_luc_va) / end_of_spinup_vegc;
  npp = npp * npp_luc_adjust;

Cumulative vegetation losses from LUC:

cum_luc_va

This peaks at ~80 Pg C, which ~15% of the end-of-spinup vegetation C value of 550 Pg C, and so the npp_luc_adjust drops to ~85%:

npp_luc_adjust

bpbond commented 1 year ago

Differences from v3_dev:

diff

Notice that NPP drops by, again, ~15%:

diff_percent

bpbond commented 1 year ago

One other thought: we could give users control over the strength of this effect. For example, in the INI files there could be

 luc_npp_effect=1.0

meaning that every petagram of vegetation loss from LUC results in a petagram of NPP reduction. Setting this parameter to 0.5 would mean a 0.5 Pg NPP reduction for every Pg veg loss, and setting to zero would replicate the behavior of Hector 2.x: NPP is unaffected by LUC.

kdorheim commented 1 year ago

I like the idea of being able to look at uncertainty in the strength of this interaction, but I have a few questions... How would the luc emission be balanced? if luc_npp_effect != 0 would this also be applied to the luc emissions coming out of the soil and detritus pool? Or would these fractions be adjusted so that it is balanced? Otherwise wouldn't we be double-counting carbon again? What would the purpose of that be to preserve backwards behavior?

bpbond commented 1 year ago

My thought was that luc_npp_effect wouldn't affect LUC emissions at all; it would only affect how much NPP is downregulated due to vegetation losses to LUC. Modifying the equations above:

npp_luc_adjust = (end_of_spinup_vegc - (cum_luc_va * luc_npp_effect)) / end_of_spinup_vegc;
npp = npp * npp_luc_adjust;

...so that when luc_npp_effect is 1.0, it's the same as the equation above; at 0.5, NPP would adjust downward at 50% the rate of veg loss; and when it's 0.0, npp_luc_adjust would be 1, and so npp wouldn't change at all.

kdorheim commented 1 year ago

luc_npp_effect wouldn't affect LUC emissions at all;

Correct. Isn't this development about making sure NPP is adjusted with respect to the luc emissions? so like when luc_npp_effect is 0 luc would have no effect on NPP aka seeing the same behavior we are in Hector v2.5 that double counts carbon?

bpbond commented 1 year ago

Right; and right, if it was zero, you'd potentially be in a double-counting situation. (But maybe you're running an experiment where you want NPP rebound from LUC.)

bpbond commented 1 year ago

This would also be super simple to add later; we could say the npp_luc_effect idea is something for 3.1 or 3.5.

bpbond commented 1 year ago

Sounds good, thanks.

bpbond commented 1 year ago

I assume you will check and merge when ready

kdorheim commented 1 year ago

Are we ready to merge?

bpbond commented 1 year ago

From my point of view, yes, but am depending on you to assess model performance and decide you (we) are OK with it. Thanks!

kdorheim commented 1 year ago

@bpbond here are some comparisons between this latest Hector v3 with observations

image image image image

Future CO2 emissions vs gmst between IPCC and Hector is spot on! We are on the cooler end of the envelope during the historical period... which is not great but I am not sure how concerning that is...
image

bpbond commented 1 year ago

@kdorheim Wow, that looks really good overall. The only thing concerning I see is the land sink graph — any insight into why we drop so abruptly around 2000?

Re temperature, how can we be so down the middle vs. NASA GISS but so low in the IPCC SPM 10 graph?

kdorheim commented 1 year ago

Those are great questions but unfortunately, I don't have great answers...

re the land sink

Screen Shot 2022-11-07 at 9 54 57 AM

In fact when we use GCB luc emissions as inputs the land sink fit is worse after the year 2000 and the [co2] also suffers

Re the IPCC figure *Here is the information that I used to construct the figure. I normalized hector's temperature using Hector's average temperature from 1850-1900. Looking at the IPCC historical results, it does appear that their results were normalized to this period, the IPCC 1850 to 1900 is non 0 which to me suggests that we aren't using the same reference period/something is wrong with how we are normalizing.

bpbond commented 1 year ago

Thanks for the additional detail @kdorheim . Regardless, overall things look good to me.

kdorheim commented 1 year ago

After this passes tests I this this is ready to merge from my pov

bpbond commented 1 year ago

And then maybe we make a v3.0.alpha tag? 🎉

Edit: maybe not. But we think this is the last active-science change before v3.

kdorheim commented 1 year ago

I don't think we are ready for the v3 alpha branch. I need to update the ini files with the new default parameters! But let's get this NPP branch merged into v3!