physics | climate | python

Climate modelling in Excel...

You can download the implementation of the FaIRv2.0 model in Excel described in this post here.

This is a brief post that introduces an Excel version of the FaIRv2.0 model1 that I’ve created. I go through some of the key features, suggest some experiments that you can do, and provide recipes for how to carry out a few different types of analyses with the model. Much of the information here is also available in the README file contained alongside the workbook in the .zip file. Something to make clear right from the start is that while I have tried to ensure everything is correct, including testing the model in as many configurations I can think of, there could still be mistakes. For this reason, for scientific or policy-relevant research, I’d strongly recommend using the “official” python model version where possible.

Introduction to FaIRv2.0 in Excel

There are several resources available with more information on the model itself, including the paper pre-print reference at the bottom, or in this other post. For this reason, I’m not going to go into the model specifics here. However, it’s worth mentioning that the Excel version of the model here is the full FaIRv2.0.0 model. It can replicate any experiment possible with the python version (though large ensemble experiments could be considered impossible practically due to the time they would take to run…). It includes all the forcing agents included in the python version: CO\(_2\), other GHGs, aerosols etc. From here onwards, I’ll refer to the FaIRv2.0.0 Excel version simply as the “model”.

Model Structure

The model workbook is divided into four categories of worksheet: output, model setup, model input and calculation. These do more or less exactly what you’d expect… There are also a number of hidden sheets containing underlying data, but these sheets are what you need to actually run the model.

Model setup


This is where you set-up how you want the model to be run:

Specifying input emissions or concentrations
Calculation tabs

Model output

The calculation tabs contain the “raw” model output. If you wish to do further data analysis in Excel or another programme, copy the data directly from these tabs as desired. For instance, if you want to compute the difference in temperature attributable to a specific emission perturbation, you’ll need to run the baseline, save the output, then run again with the perturbation, save the output, and finally difference the two outputs. However, the “reporting” tab contains a variety of key model outputs and charts that users may find sufficient. Some notes on the options provided are below:

Output options
Model diagnostics

Most of these are self-explanatory. A few definitions used:

Some experiment “recipes”

Probably the best way to get familiar with the model is to actually use it yourself - so to end this post I’m just providing some “recipes” for how to carry out various different types of experiment.

Standard emissions-driven SSP2-45 experiment (all forcings included)
Emissions-driven SSP2-45 experiment with 100 GtC CO\(_2\) perturbation in 2015 (all forcings included)

as above with

abrupt-4xCO2 experiment
1pctCO2-cdr experiment


That’s that for this short intro to FaIRv2.0 in Excel. Although not nearly as flexible or powerful as the python version, for carrying out simple experiments quickly, I still rely on it quite a bit! It can also be used as a teaching tool to explain many key concepts in climate science, such as: equilibrium climate sensitivity, transient climate response, realised warming fraction, transient climate response to cumulative carbon emissions, global warming potentials etc…

Feel free to email me / comment if you have any questions or notice any mistakes or issues in the model!


1 Leach, N. J., Jenkins, S., Nicholls, Z., Smith, C. J., Lynch, J., Cain, M., … Allen, M. R. (2020). FaIRv2.0.0: a generalised impulse-response model for climate uncertainty and future scenario exploration. Geosci. Model Dev. Discuss., 2020, 1–48.

2 Nicholls, Z. R. J., Meinshausen, M., Lewis, J., Gieseke, R., Dommenget, D., Dorheim, K., … Xie, Z. (2020). Reduced complexity model intercomparison project phase 1: Protocol, results and initial observations. Geoscientific Model Development Discussions, 1–33.

3 Friedlingstein, P., Jones, M. W., O’Sullivan, M., Andrew, R. M., Hauck, J., Peters, G. P., … Zaehle, S. (2019). Global carbon budget 2019. Earth System Science Data, 11(4), 1783–1838.

4 Kopp, R. E., Kemp, A. C., Bittermann, K., Horton, B. P., Donnelly, J. P., Gehrels, W. R., … Rahmstorf, S. (2016). Temperature-driven global sea-level variability in the Common Era. Proceedings of the National Academy of Sciences, 113(11), E1434 LP-E1441.

5 Morice, C. P., Kennedy, J. J., Rayner, N. A., Jones, P. D., P., M. C., J., K. J., … D., J. P. (2011). Quantifying uncertainties in global and regional temperature change using an ensemble of observational estimates: The HadCRUT4 data set. Journal of Geophysical Research: Atmospheres, 117(D8).

6 Vose, R. S., Arndt, D., Banzon, V. F., Easterling, D. R., Gleason, B., Huang, B., … Wuertz, D. B. (2012). NOAA’s Merged Land–Ocean Surface Temperature Analysis. Bulletin of the American Meteorological Society, 93(11), 1677–1685.

7 Lenssen, N. J. L., Schmidt, G. A., Hansen, J. E., Menne, M. J., Persin, A., Ruedy, R., & Zyss, D. (2019). Improvements in the uncertainty model in the Goddard Institute for Space Studies Surface Temperature (GISTEMP) analysis. Journal of Geophysical Research: Atmospheres, 2018JD029522.

8 Rohde, R. A., & Hausfather, Z. (2020). The Berkeley Earth Land/Ocean Temperature Record. Earth System Science Data, 12(4), 3469–3479.

9 Cowtan, K., & Way, R. G. (2014). Coverage bias in the HadCRUT4 temperature series and its impact on recent temperature trends. Quarterly Journal of the Royal Meteorological Society, 140(683), 1935–1944.

10 Frederikse, T., Landerer, F., Caron, L., Adhikari, S., Parkes, D., Humphrey, V. W., … Wu, Y.-H. (2020). The causes of sea-level rise since 1900. Nature, 584(7821), 393–397.