Author CliMA
24 Stars
Updated Last
11 Months Ago
Started In
July 2021


Documentation dev
Docs Build docs build
GHA CI gha ci
Code Coverage codecov
Bors enabled bors

TurbulenceConvection (Single Column Atmospheric Model in Julia) provides a framework for testing parameterizations of clouds and turbulence. It is particularly designed to support eddy-diffusivity mass-flux modeling frameworks.

Information about the EDMF parameterization implemented in TurbulenceConvection can be found in:

Tan, Z., Kaul, C. M., Pressel, K. G., Cohen, Y., Schneider, T., and Teixeira, J. (2018) An extended eddy-diffusivity mass-flux scheme for unified representation of subgrid-scale turbulence and convection. Journal of Advances in Modeling Earth Systems. doi

Cohen, Y., Lopez-Gomez, I., Jaruga, A., He, J., Kaul, C., and Schneider, T. (2020) Unified entrainment and detrainment closures for extended eddy-diffusivity mass-flux schemes. Journal of Advances in Modeling Earth Systems, 12, e2020MS002162. doi

Lopez-Gomez, I., Cohen, Y., He, J., Jaruga, A., Schneider, T. (2020) A generalized mixing length closure for eddy-diffusivity mass-flux schemes of turbulence and convection. Journal of Advances in Modeling Earth Systems, 12, e2020MS002161. doi

He, J., Cohen, Y., Lopez-Gomez, I., Jaruga, A., Schneider, T. (2021) An improved perturbation pressure closure for eddy-diffusivity mass-flux schemes. preprint

The code is written in Julia, and was translated from SCAMPy for the commit 496dad0c2438235684823511cacbf5761d6a237c.

Code Contributors (alphabetical): Yair Cohen (Caltech), Jia He (Caltech), Anna Jaruga (Caltech), Colleen Kaul (PNNL) --initial/primary developer of SCAMPy, Charles Kawczynski (Caltech), Ignacio Lopez-Gomez (Caltech), Kyle Pressel (PNNL),

Additional Acknowledgements: Tapio Schneider (Caltech), Joao Teixeira (JPL).

User Installation

Installation is easy:

(@v1.6) pkg> add TurbulenceConvection

TurbulenceConvection.jl requires Julia 1.6 or higher. If you plan to develop TurbulenceConvection.jl, you may want to clone it instead:

git clone https://github.com/CliMA/TurbulenceConvection.jl
cd TurbulenceConvection.jl
julia --project=integration_tests
julia> ]
pkg> instantiate


$ cd TurbulenceConvection.jl

TurbulenceConvection.jl can be run in the same way that SCAMPy used to, given one of the following cases:

  • Bomex
  • life_cycle_Tan2018
  • Soares
  • Rico

with, for example:

julia --project=integration_tests driver/generate_namelist.jl Soares
julia --project=integration_tests driver/main.jl Soares

or by calling our integraion test driver,

julia --project=integration_tests integration_tests/driver.jl --case Soares

or, interactively, with

julia --project=integration_tests
julia> case_name = "Soares" # default is "Bomex"
julia> include(joinpath("integration_tests", "driver.jl"))

Automated plotting

Upon running a particular experiment (described above), comparison plots (against SCAMPy) are automatically generated in, for example, Output.Bomex.01/stats/comparison/.

Table of prognostic and diagnostic variables

  • Prognostic [✓]
  • Diagnostic [x]
  • NA [-]
Variable Grid-mean Environment Updrafts
u [✓] [x] [x]
v [✓] [x] [x]
w [-] [x] [✓]
θ_liq_ice [✓] [x] [✓]
q_tot [✓] [x] [✓]
a [-] [x] [✓]
tke [x] [✓] [-]
θ′θ′ [x] [✓] [-]
q_tot′q_tot′ [x] [✓] [-]
θ′q_tot′ [x] [✓] [-]