This winter I took a course in computational physics, which has probably been my favourite undergraduate course to date. Essentially it was an advanced numerical methods course, but from a very practical point of view. We got a lot of practice using numerical techniques to solve realistic problems, rather than just analysing error estimates and proving conditions of convergence. As a math student I found this refreshing, and incredibly useful for my research career.

We all had to complete a term project of our choice, and I decided to build a small climate model. I was particularly interested in the stochastic techniques taught in the course, and given that modern GCMs and EMICs are almost entirely deterministic, it was possible that I could contribute something original to the field.

The basic premise of my model is this: All anthropogenic forcings are deterministic, and chosen by the user. Everything else is determined stochastically: parameters such as climate sensitivity are sampled from probability distributions, whereas natural forcings are randomly generated but follow the same general pattern that exists in observations. The idea is to run this model with the same anthropogenic input hundreds of times and build up a probability distribution of future temperature trajectories. The spread in possible scenarios is entirely due to uncertainty in the natural processes involved.

This approach mimics the real world, because the only part of the climate system we have full control over is our own actions. Other influences on climate are out of our control, sometimes poorly understood, and often unpredictable. It is just begging to be modelled as a stochastic system. (Not that it is actually stochastic, of course; in fact, I understand that nothing is truly stochastic, even random number generators – unless you can find a counterexample using quantum mechanics? But that’s a discussion for another time.)

A word of caution: I built this model in about eight weeks. As such, it is highly simplified and leaves out a lot of processes. You should never ever use it for real climate projections. This project is purely an exercise in numerical methods, and an exploration of the possible role of stochastic techniques in climate modelling.

Over the coming weeks, I will write a series of posts that explains each component of my simple stochastic climate model in detail. I will show the results from some sample simulations, and discuss how one might apply these stochastic techniques to existing GCMs. I also plan to make the code available to anyone who’s interested – it’s written in Matlab, although I might translate it to a free language like Python, partly because I need an excuse to finally learn Python.

I am very excited to finally share this project with you all! Check back soon for the next installment.

on June 18, 2013 at 6:06 am |Brian Romansawesome, I look forward to this series of posts

on June 18, 2013 at 6:47 am |Roger WehageI hope to hear about your Nobel Prize some day before I pass on. Mighty fine work, if I may say.

Yes, by all means learn Python! My son, who is now working toward his Ph.D. in a field similar to my Ph.D. of 30+ years ago, (I am his informal academic adviser) and I have been learning and applying Python. (Easy for him, not so easy for my atrophying neurons.) While not quite as fast as compiled languages such as Fortran and C, Python is much more powerful in ease of program development, nearly as convenient as Matlab, and is generally faster than Matlab.

One powerful feature of Python that you’ll love is its ease of developing powerful, interactive 3D graphics for rendering and displaying your analysis and simulation results.

And check this out: http://www.google-melange.com/gsoc/homepage/google/gsoc2013 Maybe it’s not too late to participate.

on June 18, 2013 at 7:32 am |rpauliThank you. Looking forward to your new posts.

I keep wishing that video game makers, and game simulators would adopt climate modeling for the productions. Anthropogenic is perfectly suited for a game simulation. it would do much to give people are real world understanding of the models. Thanks for all that you do.

on June 18, 2013 at 6:01 pm |Abha SoodI was wondering whether features of nonlinear coupling (anthropogenic forcing and natural variability) of the climate system which may lead to novel climate states be modeled using this approach. There will some “extremes” but will one in principle be able to relate them to their underlying process?

on June 19, 2013 at 5:41 am |docrichardWill your model be able to project PDO and AMO? It seems to me that their absence in models is what is causing observations to diverge from model projections.

on June 19, 2013 at 5:47 am |Arcticio (@arcticio)Please put me on that list of people interested in a climate model written in Python.

on June 19, 2013 at 8:11 am |rpauliYou may have seen the announcement http://www.magicc.org/

on June 19, 2013 at 8:11 pm |Doug BostromI’ve got a copy of MatLab but the licence expired and I then realized it’s a waste of money to continue leasing my own creative work from MatLab’s publisher. Translating from the strangely anachronistic, for-hire-only grammar of MatLab into something that everybody can freely speak would be a great thing!

on June 19, 2013 at 8:38 pm |Doug BostromToo preoccupied w/snarking on MatLab and alchemists; thank you for sharing your work!