Skip to content

Commit

Permalink
Complete draft of JOSS paper
Browse files Browse the repository at this point in the history
  • Loading branch information
brian-rose committed Mar 23, 2018
1 parent 171c918 commit c01b94a
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 29 deletions.
30 changes: 30 additions & 0 deletions paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,33 @@ @article{Held:2005fk
Volume = {86},
Year = {2005},
}

@article{Rose:2017a,
Author = {Brian E. J. Rose and Timothy W. Cronin and Cecilia M. Bitz},
Doi = {10.3847/1538-4357/aa8306},
Journal = {Astrophys. J.},
Pages = {28},
Title = {Ice Caps and Ice Belts: The Effects of Obliquity on Ice−Albedo Feedback},
Volume = {846},
Year = {2017},
}

@article{Mlawer:1997a,
Author = {Eli J. Mlawer and Steven J. Taubman and Patrick D. Brown and Michael J. Iacono and Shepard A. Clough},
Doi = {10.1029/97JD00237},
Journal = {J. Geophys. Res.},
Pages = {16663--16682},
Title = {Radiative transfer for inhomogeneous atmospheres: RRTM, a validated correlated-k model for the longwave},
Volume = {102},
Year = {1997},
}

@article{Clough:2005a,
Author = {Clough, S.A. and M.W. Shepard and E.J. Mlawer and J.S. Delamere and M.J. Iacono and K. Cady-Pereira and S. Boukabara and P.D. Brown},
Doi = {10.1016/j.jqsrt.2004.05.058},
Journal = {J. Quant. Spectrosocopy Radiative Transfer},
Pages = {233--244},
Title = {Atmospheric radiative transfer modeling: a summary of the {AER} codes},
Volume = {91},
Year = {2005},
}
50 changes: 21 additions & 29 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: 'CLIMLAB: a Python toolkit for interactive, process-oriented climate modeling'
tags:
- climate
- climate
authors:
- name: Brian E. J. Rose
orcid: 0000-0002-9961-3821
Expand All @@ -12,46 +13,37 @@ bibliography: paper.bib

# Summary

CLIMLAB is an open-ended software engine for interactive, process-oriented climate modeling for use in education and research. It is motivated by the need for simpler tools and more reproducible workflows with which to "fill in the gaps" between blackboard-level theory and the results of comprehensive climate models. With CLIMLAB you can interactively mix and match physical model components, or combine simpler process models together into a more comprehensive model. CLIMLAB is used in the classroom to put models in the hands of students (undergraduate and graduate), and emphasize a hierarchical, process-oriented approach to understanding the key emergent properties of the climate system. CLIMLAB is equally a tool for climate research, where the same needs exist for more robust, process- based understanding and reproducible computational results [@Held:2005fk], [@Jeevanjee:2017a]. \
CLIMLAB is an open-ended engine for interactive, process-oriented climate modeling for use in education and research. It is motivated by the need for simpler tools and more reproducible workflows with which to "fill in the gaps" between blackboard-level theory and the results of comprehensive climate models. With CLIMLAB you can interactively mix and match physical model components, or combine simpler process models together into a more comprehensive model. CLIMLAB is used in the classroom (undergraduate and graduate) to put models in the hands of students, and emphasize a hierarchical, process-oriented approach to understanding the key emergent properties of the climate system. CLIMLAB is equally a tool for climate research, where the same needs exist for more robust, process- based understanding and reproducible computational results [@Held:2005fk; @Jeevanjee:2017a].

CLIMLAB defines a base Python class called `Process`, a generalized model operator that contains, at a minimum:
CLIMLAB defines a base Python class called `Process`. This generalized model operator contains, at a minimum:
- a dictionary of state variables, each with a well-defined spatial domain
- a list of required input fields
- methods to compute tendencies (rates of change) of its state variables.
A `Process` object can also contain an arbitrarily complex tree of subprocesses (each also some sub-class of `Process`). Tendencies are then computed by iterating through the subprocess tree and summing up contributions from each member. Using this object-oriented approach, every climate process (radiative, dynamical, physical, turbulent, convective, chemical, etc.) can be simulated as a stand-alone
model given appropriate input, or as a component of a more complex model.
- methods to compute tendencies (rates of change) of its state variables given inputs and current state.

The user-facing parts of CLIMAB are written in Python and well-suited to interactive command line use. CLIMAB is agnostic about the underlying numerics. Several existing process modules use compiled Fortran code.
A `Process` object can also contain an arbitrarily complex tree of subprocesses (each also some sub-class of `Process`). Tendencies are then computed by iterating through the subprocess tree and summing up contributions from each member. Using this object-oriented approach, every climate process (radiative, dynamical, physical, turbulent, convective, chemical, etc.) can be simulated as a stand-alone model given appropriate input, or as a component of a more complex model.

CLIMLAB has out-of-the-box support and documented examples for
- Several atmospheric radiation codes including the widely used [RRTMG model](http://rtweb.aer.com/rrtm_frame.html) [@Mlawer:1997a;@Clough:2005a]
- Convection models including the [Emanuel moist convection scheme](https://emanuel.mit.edu/problem-convective-moistening) [@EmanueL:1991a; @EmanueL:1999a]
- Diffusion solvers for energy balance models
- Insolation for arbitrary orbital parameters [e.g. as used by @Rose:2017a]
- Boundary layer turbulence
CLIMLAB allows the user to assemble arbitrary combinations of the above on 1D, 2D, or 3D spatial domains. It is also an open framework allowing arbitrary pieces of useful climate model code to be wrapped into new `Process` classes.

- Radiative and radiative-convective column models, with various radiation schemes:
- [RRTMG](http://rtweb.aer.com/rrtm_frame.html) (a widely used radiative transfer code)
- CAM3 (from the NCAR GCM)
- Grey Gas
- Simplified band-averaged models (4 bands each in longwave and shortwave)
- Emanuel moist convection scheme
- Hard convective adjustment
- Diffusive energy balance models
- Seasonal and steady-state models
- Arbitrary combinations of the above, for example:
- 2D latitude-pressure models with radiation, horizontal diffusion, and fixed relative humidity
- Orbital / insolation calculations
- Boundary layer sensible and latent heat fluxes
The user-facing parts of CLIMLAB are written in Python and well-suited to interactive command line use. CLIMLAB is agnostic about the underlying numerics; several process modules use compiled Fortran code. Automated build services are used to provide binaries for most common platforms, vastly simplifying the deployment of scientific software to non-specialist students and researchers.

In addition to the documentation, a large collection of example classroom usage can be found in the Jupyter notebook collection at <https://github.com/brian-rose/ClimateModeling_courseware>.

Development of CLIMLAB is partially supported by the National Science Foundation under award AGS-1455071 to Brian Rose. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

- A summary describing the high-level functionality and purpose of the software
for a diverse, non-specialist audience
- A clear statement of need that illustrates the purpose of the software
- A list of key references including a link to the software archive
- Mentions (if applicable) of any ongoing research projects using the software
or recent scholarly publications enabled by it
# Links

- Source repository: <https://github.com/brian-rose/climlab>
- Documentation: <http://climlab.readthedocs.io/en/latest/>

Citations to entries in paper.bib should be in
[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html)
format.

# Acknowledgement

Development of CLIMLAB is partially supported by the National Science Foundation under award AGS-1455071 to Brian Rose. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.


# References

0 comments on commit c01b94a

Please sign in to comment.