JGCRI / hector

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

Enable permafrost by default in Hector #722

Closed bpbond closed 5 months ago

bpbond commented 5 months ago

Following #720 , this PR changes the model's INI files so that permafrost carbon is nonzero—i.e., enabled—by default. The parameterization follows that of Woodard et al. 2021.

It also fixes a number of code issues and bugs, fully described below.

Adding permafrost produces a warmer model overall:

pf1

Specifically, for SSP2.45 we see +100 ppm CO2 and +0.4 °C with permafrost enabled. The permafrost pool loses about 250 Pg C, and the thawed pool peaks about ~180 Pg C. These results are broadly consistent with Figure 3 in Woodard et al. (which used a much older version of the model and different parameterization).

github-actions[bot] commented 5 months ago

Differences in Hector outputs

Hello, this is leeyabot!

The current pull request's outputs do not differ from 3.1.1 (0953efdd).

bpbond commented 5 months ago

Several specific bug fixes are broken out in the figure above, including:

Here's a better visualization of the science impact of these changes, plotted as the difference from run (B) above:

pf2

The labile/static fix is the only one with any appreciable impact, cooling the climate as expected (because fpf_static is 0.74). Fixing the double-counting also cools the climate slightly, again as expected.

bpbond commented 5 months ago

Finally, note that this PR implements permafrost in a single global biome. Following the more realistic protocol of Woodard et al., with a permafrost biome that warms 2.2x as fast as the global average, produces a much warmer climate:

pf3

But as @kdorheim and I have decided, it's much simpler to have the default 'out of box' setting be a single global biome. The INI files have commented-out sections that show users how to implement the Woodard configuration.

codecov-commenter commented 5 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (dev@d55e3af). Click here to learn what that means.

:exclamation: Current head 76d15d8 differs from pull request most recent head 87c5134. Consider uploading reports for the commit 87c5134 to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## dev #722 +/- ## ====================================== Coverage ? 80.15% ====================================== Files ? 61 Lines ? 5992 Branches ? 0 ====================================== Hits ? 4803 Misses ? 1189 Partials ? 0 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

bpbond commented 5 months ago

Talking with @melatg0 I noticed that atmospheric CO2 is 800 ppm in 2000 --- 😕 ?!?

kdorheim commented 5 months ago

Talking with @melatg0 I noticed that atmospheric CO2 is 800 ppm in 2000 --- 😕 ?!?

Hi Ben. Okay, so we've run into this issue in the past, and it has to do with the units (remember how confusing the atmospheric C vs CO2 was so we added the CONCENTRATIONS_CO2() variable). You are plotting the atmos_co2 variable which is in Pg C vs CO2_concentration which is in ppmv CO2. Which means that the values you and @melatg0 were looking at are atmos_co2 786.4845 Pg C or CO2_concentration 369.2416 ppmv CO2 which is a little high but reasonable

bpbond commented 5 months ago

Haha thank you...again!

kdorheim commented 5 months ago

Since [CO2] is kind of a catch-all (changes in ocean carbon cycle & terrestrial carbon cycle) would also cause [CO2] to change I lean towards adding a pf variable to the old new test, it shouldn't increase the size too much... what do you think?

bpbond commented 5 months ago

Since [CO2] is kind of a catch-all (changes in ocean carbon cycle & terrestrial carbon cycle) would also cause [CO2] to change I lean towards adding a pf variable to the old new test, it shouldn't increase the size too much... what do you think?

I think it's not needed, but doesn't hurt. Will do.

github-actions[bot] commented 5 months ago

Differences in Hector outputs

Hello, this is leeyabot!

The current pull request's outputs do not differ from 3.1.1 (87c5134a).