Skip to main content

License Docs codecov Unit Tests Integration Tests

JANUS

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.

Atmosphere model

  • 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. RadConvEqm sets the atmosphere to a temperature profile along the general adiabat, while MCPA_CBL builds the multiple-condensible pseudoadiabat and steps the surface temperature to conserve energy across a conductive boundary layer.

Documentation

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: the per-source reference-pinned test inventory.
  • Publications: the papers that developed and applied JANUS.

Installation

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.11+, 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 stellar

janus 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.

Quick start

The two entry points are importable directly from janus.modules:

from janus.modules import RadConvEqm, MCPA_CBL

The 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 instellation

See the first-run tutorial for the full walkthrough.

Citation

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]

License

Apache License 2.0. JANUS is part of the PROTEUS framework.

Metadata

Release files for fwl-janus 26.10.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fwl-janus 26.10.15
File Size Uploaded
fwl_janus-26.10.15.tar.gz 150.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fwl-janus 26.10.15
File Interpreter ABI Platform
fwl_janus-26.10.15-py3-none-any.whl Python 3 none any Details

Total release size: 297.9 kB

Release files / fwl_janus-26.10.15.tar.gz

Download URL fwl_janus-26.10.15.tar.gz
Size 150.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c78cbda146d28a6820bba7dc5dc349f1a4780530d8dff1e5f00b6a37a595ee8e
BLAKE2b-256 checksum
How to use checksums
7d2523383a6e67a45df09b53cb115388e1538c335f9dc36e965aae8188d5594b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / fwl_janus-26.10.15-py3-none-any.whl

Download URL fwl_janus-26.10.15-py3-none-any.whl
Size 147.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43a0a1ce07721e6f22e0018d8f9be9d0b35a26a74b9cc4a0cc7f766d1f4b0773
BLAKE2b-256 checksum
How to use checksums
d75dff4fc7b5953fb2305e4e39d27692ebb08a356e21c312a77109abbb3b504b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

26.10.15 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page