https://github.com/brian-rose/emombm

Code for the coupled Energy-Momentum Balance Model from Rose and Marshall, JAS 2009

https://github.com/brian-rose/emombm

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary

Keywords

climate-model energy-balance-model sea-ice
Last synced: 6 months ago · JSON representation

Repository

Code for the coupled Energy-Momentum Balance Model from Rose and Marshall, JAS 2009

Basic Info
  • Host: GitHub
  • Owner: brian-rose
  • License: mit
  • Language: Matlab
  • Default Branch: master
  • Size: 4.93 MB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
climate-model energy-balance-model sea-ice
Created almost 8 years ago · Last pushed almost 8 years ago
Metadata Files
Readme License

README.md

Source code for the Energy-Momentum Balance Model

Brian E. J. Rose

Department of Atmospheric & Environmental Sciences, University at Albany

This code solves time-dependent diffusion equations for zonally averaged QGPV in a two-level atmosphere.
The resulting surface stress curl is used to compute heat transport in an underlying ocean layer, assuming that transport is dominated by wind-driven gyres.

Reference:

Rose and Marshall, 2009: Ocean heat transport, sea ice, and multiple climate states: insights from energy balance models, J. Atmos. Sci. 66, 2828--2843

For more details, see also Rose, B.E.J., 2010: Oceanic Control of the Sea Ice Edge and Multiple Equilibria in the Climate System, PhD thesis, Massachusetts Institute of Technology.

Code is provided as-is. Proceed with caution.
I am not actively developing or maintaining the code at this point, but I hope it will be useful to others.
Please feel free to raise issues here on github.

Three versions of the code are provided:

  • time-stepping codes for Fortran 95
  • time-stepping code for MATLAB,
  • MATLAB code for the steady-state boundary value problem

Fortran code was used to produce the calculations in Rose and Marshall (2009). MATLAB code is slower but should do the same thing. However this code is older and there are no guarantees that it is free of bugs.

Fortran code files

  • emombm.f95: the main model code. Notation generally follows what's laid out in Rose and Marshall (2009), so should be understandable. Note that these are just subroutines that need to be invoked by a main program.
  • run_emombm.f95: an example program that invokes the model and integrates it for a specified number of timesteps.
  • iceline_emombm.f95: a program that iterates over an array of parameters, in this case solar constant, timestepping the model out to equilibrium for each parameter value.
  • tridiag.f95: a useful subroutine for solving a tridiagonal linear system, which arises from the implicit timestepping scheme on the diffusion operator.
  • SIZE.h: a header file that specifies the grid size.
  • paramfile: contains parameters that are read in at run-time. Not everything in this file is used in these examples.
  • extract_results.f95: a standalone program that I used to read particular results from a large output file, such as generated by iceline_emombm.f95

I was able to compile and run this code with gfortran on several different machines.

MATLAB time-stepping code files

  • computeku.m
  • current_diagnostics.m
  • EMomBM.m
  • fastSolveU.m
  • final_diagnostics.m
  • fluxes.m
  • heating.m
  • iceline_qg.m
  • Kvectors.m
  • marshallY.m
  • noflow.m
  • pvflux.m
  • stress.m
  • temperature.m

Try just running iceline_qg at the MATLAB prompt.

MATLAB bvp code

  • run_EMomBM.m
  • YetAnotherEMomBM.m

Type run_EMomBM at the MATLAB prompt.

This is offered as an example of how to set up the boundary value problem for surface wind stress, using the built-in MATLAB BVP solvers. There is no ocean component in this version, but one could be added by adding another ODE and appropriate boundary conditions. For details on the steady-state problem please see Chapter 3 of my thesis cited above.

Owner

  • Name: Brian Rose
  • Login: brian-rose
  • Kind: user
  • Location: Albany, NY, USA
  • Company: University at Albany

Climate scientist, professor, and practitioner of open-source science. I use mathematical and numerical models to study climatic processes at the global scale.

GitHub Events

Total
Last Year

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 4
  • Total Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Brian Rose b****e@a****u 4
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels