How do I plot a streamfunction for the UM?

In theory I understand how streamfunctions work, but I’m having trouble migrating from ocean-model-land (where velocities are defined in m/s, and model levels are in m) to UM-atmosphere-model-land (where vertical velocities seem to be defined in Pa/s? maybe? or don’t exist? and vertical co-ordinates can be one of many things)

How would I make a picture like the top half of the image below but using UM output?Specifically, what variables do I need to integrate over what dimensions, and are there any tricky unit conversions I need to consider?
I’m planning on working with ACCESS-CM3 output, but I imagine the broad idea is pretty generalisable.


(Dey et al, 2019, The coupled ocean–atmosphere hydrologic cycle)

Hi Jemma,
I haven’t done it for the UM, but for GFDL to calculate a meridional overturning streamfunction in the atmosphere I have used Martin Jucker’s aostools:

Specifically, the functions ComputePsi and ComputePsiXr located within the climate.py code. Once you install the package (as per the instructions), you can load these tools by doing:

from aostools import climate

And then call the function like:

psi, psis = climate.ComputePsi(data=infile, outFileName=outfile)

Tagging @mjucker just in case of issues and also please thank Martin for his excellent code package if you find it useful.
Dave

2 Likes