{"id":578,"date":"2020-05-11T09:52:44","date_gmt":"2020-05-11T13:52:44","guid":{"rendered":"https:\/\/storm.uml.edu\/~metweb\/Blog\/?p=578"},"modified":"2021-09-16T16:42:19","modified_gmt":"2021-09-16T16:42:19","slug":"simple-atmospheric-models-resources","status":"publish","type":"post","link":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/2020\/05\/11\/simple-atmospheric-models-resources\/","title":{"rendered":"Simple Atmospheric Models: Resources"},"content":{"rendered":"\n<p><em>by Mathew Barlow, EEAS Professor of Climate Science<\/em><\/p>\n\n\n\n<p>This post gives links to freely-available code for simple models of the atmosphere (and ocean). If you know of anything I&#8217;ve missed, please email me at Mathew_Barlow@uml.edu and I will add it here.  Many thanks to Daniela Domeisen, Geoff Vallis, Malte Stuecker, Nathaneal Wong, Milan Kl\u00f6wer, and Gregory Wagner for additional suggestions!  <\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Geoff Vallis&#8217; codes:<\/strong> <a href=\"http:\/\/empslocal.ex.ac.uk\/people\/staff\/gv219\/codes\/index.html\">http:\/\/empslocal.ex.ac.uk\/people\/staff\/gv219\/codes\/index.html<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Matlab and Python<\/li><li>Models:  several, including barotropic, mountain gravity waves, &amp; Gill-Matsuno<\/li><li>Notes:  models link to my favorite dynamics book, Geoff&#8217;s  Atmospheric and Oceanic Fluid Dynamics<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Robin Hogan&#8217;s shallow water model:<\/strong> <a href=\"http:\/\/www.met.reading.ac.uk\/~swrhgnrj\/shallow_water_model\/\">http:\/\/www.met.reading.ac.uk\/~swrhgnrj\/shallow_water_model\/<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Matlab<\/li><li>Models:  shallow water model<\/li><li>Notes:  several great examples and related notes<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Milan Kl\u00f6wer&#8217;s shallow water model:<\/strong> <br><a href=\"https:\/\/github.com\/milankl\/ShallowWaters.jl\">https:\/\/github.com\/milankl\/ShallowWaters.jl<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Julia<\/li><li>Models:  shallow water model<\/li><li>Notes:  easy to run, registered Julia package<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>pyqg:<\/strong>   <br><a href=\"https:\/\/pyqg.readthedocs.io\/en\/latest\/\">https:\/\/pyqg.readthedocs.io\/en\/latest\/<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Python<\/li><li>Models:  multi-layer quasi-geostrophic, with additional special cases<\/li><li>Notes:  research grade, includes spectrum and stability analysis<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Brian Rose&#8217;s climlab package:<\/strong>                                                          <br><a href=\"https:\/\/github.com\/brian-rose\/climlab\">https:\/\/github.com\/brian-rose\/climlab<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Python<\/li><li>Models:  several, including column models &amp; convection schemes<\/li><li>Notes: flexible code, many options<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Holton &amp; Hakim, Intro to Dynamic Meteorology:<\/strong><br><a href=\"https:\/\/booksite.elsevier.com\/9780123848666\/matlab_code.php\">https:\/\/booksite.elsevier.com\/9780123848666\/matlab_code.php<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Matlab<\/li><li>Models:  many!<\/li><li>Notes: models linked specifically to exercises in the classic textbook for dynamical meteorology<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Matt Barlow&#8217;s codes:<\/strong><br><a href=\"https:\/\/github.com\/mathewbarlow\/simple-atmospheric-models\">https:\/\/github.com\/mathewbarlow\/simple-atmospheric-models<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran, Python<\/li><li>Models:  1D barotropic, global linearized barotropic, two-layer baroclinic model (as in Holton), inertial oscillations<\/li><li>Notes: not research grade, some need recoding, more models will be added as time allows<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>U Chicago&#8217;s climate and carbon cycle models:<\/strong><br><a href=\"http:\/\/climatemodels.uchicago.edu\">http:\/\/climatemodels.uchicago.edu<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  models run through web browsers<\/li><li>Models:  several physics, carbon cycle, and cryosphere models<\/li><li>Notes: models run online, linked to textbook and free online course<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>GeophysicalFlows:<\/strong><br><a href=\"https:\/\/github.com\/FourierFlows\/GeophysicalFlows.jl\">https:\/\/github.com\/FourierFlows\/GeophysicalFlows.jl<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Julia<\/li><li>Models:  2D vorticity equation, with and without rotation, topography, imposed zonal flow, etc.<\/li><li>Notes: comes with several turbulence examples<\/li><\/ul>\n\n\n\n<div style=\"height:71px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><em>The following have linearized dynamical cores<\/em><\/strong><\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>U Tokyo Linear Baroclinic Model (LBM)<\/strong><br><a href=\"https:\/\/ccsr.aori.u-tokyo.ac.jp\/~lbm\/sub\/lbm.html\">https:\/\/ccsr.aori.u-tokyo.ac.jp\/~lbm\/sub\/lbm.html<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran<\/li><li>Models:  several versions of linearized primitive equation models (steady response to forcing, storm track, etc.)<\/li><li>Notes: basis for several papers, must request access<\/li><\/ul>\n\n\n\n<div style=\"height:65px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><em>The following have full dynamical cores but simplified physics<\/em><\/strong><\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>ICTP SPEEDY model<\/strong><br><a href=\"https:\/\/www.ictp.it\/research\/esp\/models\/speedy.aspx\">https:\/\/www.ictp.it\/research\/esp\/models\/speedy.aspx<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran<\/li><li>Models:  primitive equation dynamics, simplified parameterizations<\/li><li>Notes: runs quickly, basis for several papers, must request access<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>U Hamburg&#8217;s PUMA model<\/strong><br><a href=\"https:\/\/www.mi.uni-hamburg.de\/en\/arbeitsgruppen\/theoretische-meteorologie\/modelle\/puma.html\">https:\/\/www.mi.uni-hamburg.de\/en\/arbeitsgruppen\/theoretische-meteorologie\/modelle\/puma.html<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran<\/li><li>Models:  primitive equation dynamics, simplified parameterizations<\/li><li>Notes: detailed user guide<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Martin Jucker&#8217;s MiMA model<\/strong><br><a href=\"http:\/\/mjucker.github.io\/MiMA\/\">http:\/\/mjucker.github.io\/MiMA\/<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran and C<\/li><li>Models:  intermediate GCM with full radiation<\/li><li>Notes: requires Intel compilers, basis for several papers<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>CESM2 dry dynamical core<\/strong><br><a href=\"http:\/\/www.cesm.ucar.edu\/models\/simpler-models\/dry-dynamical-core.html\">http:\/\/www.cesm.ucar.edu\/models\/simpler-models\/dry-dynamical-core.html<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran<\/li><li>Models:  dry dynamical core with adiabatic or Held-Suarez physics<\/li><li>Notes: as best I can tell, must be downloaded as part of the full CESM2 package<\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Oceananigans<\/strong><br><a href=\"https:\/\/github.com\/CliMA\/Oceananigans.jl\">https:\/\/github.com\/CliMA\/Oceananigans.jl<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Julia<\/li><li>Models:  rotating Boussinesq equations&nbsp;in 1 to 3 dimensions<\/li><li>Notes: ocean oriented, has some nice idealized examples<\/li><\/ul>\n\n\n\n<div style=\"height:64px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><em>The following are packages that can run models at a range of complexities<\/em><\/strong><\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Exeter&#8217;s Isca model<\/strong><br><a href=\"https:\/\/execlim.github.io\/IscaWebsite\/team.html\">https:\/\/execlim.github.io\/IscaWebsite\/team.html<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran, Python front end<\/li><li>Models:  varying levels of complexity for parameterizations and boundary conditions<\/li><li>Notes: can also be used to model the atmosphere of other planets<\/li><\/ul>\n\n\n\n<div style=\"height:74px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><em>The following are full models that include idealized cases<\/em><\/strong><\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Weather Research and Forecasting (WRF) model<\/strong><br><a href=\"https:\/\/www2.mmm.ucar.edu\/wrf\/users\/tutorial\/201507\/IDEAL.pdf\">https:\/\/www2.mmm.ucar.edu\/wrf\/users\/tutorial\/201507\/IDEAL.pdf<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran<\/li><li>Idealized cases:  several 1D, 2D, and 3D idealized cases, including baroclinic instability, squall lines, and mountain waves<\/li><li>Notes: the idealized cases simplify the model in different ways (number of dimensions, beta plane, dry dynamics, etc.) <\/li><\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Marat Khairoutdinov&#8217;s System for Atmospheric Modeling (SAM):<\/strong><br><a href=\"http:\/\/rossby.msrc.sunysb.edu\/~marat\/SAM.html\">http:\/\/rossby.msrc.sunysb.edu\/~marat\/SAM.html<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Languages:  Fortran<\/li><li>Models:  cloud-resolving model, can be run in simplified configurations<\/li><li>Notes:  must request access<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>by Mathew Barlow, EEAS Professor of Climate Science This post gives links to freely-available code for simple models of the atmosphere (and ocean). If you know of anything I&#8217;ve missed, please email me at Mathew_Barlow@uml.edu and I will add it here. Many thanks to Daniela Domeisen, Geoff Vallis, Malte Stuecker, Nathaneal Wong, Milan Kl\u00f6wer, and [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,15],"tags":[41],"class_list":["post-578","post","type-post","status-publish","format-standard","hentry","category-dynamics","category-models","tag-dynamics"],"_links":{"self":[{"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/posts\/578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/comments?post=578"}],"version-history":[{"count":1,"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/posts\/578\/revisions"}],"predecessor-version":[{"id":950,"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/posts\/578\/revisions\/950"}],"wp:attachment":[{"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/media?parent=578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/categories?post=578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/storm.uml.edu\/~metweb\/newBlog\/wordpress\/wp-json\/wp\/v2\/tags?post=578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}