JANUS is the 1D convective-radiative atmosphere module of the PROTEUS coupled atmosphere-interior evolution framework. It builds the vertical temperature-pressure structure of a rocky-planet or magma-ocean atmosphere and computes its radiative fluxes.
Given a surface temperature and pressure, a set of volatile partial pressures, the instellation, and a spectral file, JANUS constructs the profile along a generalised multi-species moist pseudoadiabat capped by a prescribed stratosphere, then evaluates the shortwave, longwave, and net fluxes with SOCRATES. It returns the temperature-pressure profile, the tropopause temperature, and the top-of-atmosphere and surface fluxes. Within PROTEUS it is called each step through the atmos_clim interface; it is also usable standalone for atmosphere-structure studies.
Named for Janus, the two-faced Roman god of transitions and doorways. Pronounced jan-us: Jan as in "january", us as in the collective pronoun.
- Generalised moist pseudoadiabat. The troposphere follows the multi-species pseudoadiabat of Graham et al. (2021), which lets several volatiles condense together, capped by a prescribed stratosphere above a diagnosed tropopause.
- Radiative transfer. Shortwave, longwave, and net fluxes are computed with the SOCRATES correlated-k code over a user-selected spectral file and stellar spectrum.
- Two entry points.
RadConvEqmsets the atmosphere to a temperature profile along the general adiabat, whileMCPA_CBLbuilds the multiple-condensible pseudoadiabat and steps the surface temperature to conserve energy across a conductive boundary layer.
Full documentation is at proteus-framework.org/JANUS, including:
- Getting started: installation and the quickest path to a first run.
- Tutorial: a first atmosphere-structure calculation.
- How-to guides: install, run the tests, build the documentation.
- Explanations: model overview and the testing suite.
- Validation anchors: the per-source reference-pinned test inventory.
- Publications: the papers that developed and applied JANUS.
Note: The standard way of installing JANUS is within the PROTEUS framework, as described in the PROTEUS installation guide. The steps below are for a standalone installation.
JANUS has one compiled dependency, SOCRATES, which a helper script clones and builds. Prerequisites: git, Python 3.10+, a Fortran/C build toolchain (gfortran, gcc, make), and NetCDF tools with NetCDF-Fortran development headers.
git clone https://github.com/FormingWorlds/JANUS.git
cd JANUS
# 1. Build SOCRATES and point RAD_DIR at it (omit the path to use ./socrates)
bash tools/get_socrates.sh /path/to/socrates
export RAD_DIR=/path/to/socrates
# 2. Install JANUS (add ,docs for a local documentation build)
pip install -e .[develop]
# 3. Point FWL_DATA at a data directory and download spectral + stellar data
export FWL_DATA=/path/to/fwl_data
janus download spectral
janus download stellarjanus env prints the resolved locations of RAD_DIR and FWL_DATA. The docs extra pulls in Zensical so you can build this documentation locally with zensical serve.
The two entry points are importable directly from janus.modules:
from janus.modules import RadConvEqm, MCPA_CBLThe examples/ folder holds runnable scripts that set up an atmosphere, prepare a spectral file, and solve for the profile and fluxes:
python examples/demo_runaway_greenhouse.py # runaway-greenhouse OLR curve
python examples/demo_instellation.py # profile vs instellationSee the first-run tutorial for the full walkthrough.
If you use JANUS in published work, please cite the methods papers below. The full reference list is on the Publications page.
- Graham, R.J., Lichtenberg, T., Boukrouche, R., & Pierrehumbert, R.T. (2021). A multispecies pseudoadiabat for simulating condensable-rich exoplanet atmospheres. PSJ 2, 207. [DOI]
- Lichtenberg, T., Bower, D.J., Hammond, M., Boukrouche, R., Sanan, P., Tsai, S.-M., & Pierrehumbert, R.T. (2021). Vertically resolved magma ocean-protoatmosphere evolution. JGR Planets 126, e2020JE006711. [DOI]
- Boukrouche, R., Lichtenberg, T., & Pierrehumbert, R.T. (2021). Beyond runaway: initiation of the post-runaway greenhouse state on rocky exoplanets. ApJ 919, 130. [DOI]
Apache License 2.0. JANUS is part of the PROTEUS framework.