Skip to main content

VerCOR

Documentation status Test status

Versatile Earth system COupleR (VerCOR) connects atmosphere, ocean, sea-ice, land, and forcing-data components on a shared clock. It helps Earth-system researchers compose models, exchange fields between grids, and collect diagnostics and output.

VerCOR is built on JAX. Output-free JAX workflows remain differentiable end to end, supporting sensitivity analysis, automatic differentiation, and gradient-based experiments.

Stable release: Version 0.4.6 is the current release. Use the current researcher and developer guides.

Key capabilities

  • Combine JAX-native and host-side models in one coupled simulation.
  • Exchange scalar and vector fields between rectilinear grids.
  • Use bilinear or conservative regridding.
  • Run Gregorian, no-leap, or 360-day calendars.
  • Use bundled slab atmosphere, ocean, land, and sea-ice components.
  • Connect optional JCM, Veros, and CAMulator models.
  • Supply static or time-dependent forcing data.
  • Preserve immutable state across JAX transformations.
  • Enable period averages, final fields, and snapshots when requested.

Requirements and installation

VerCOR supports Python 3.12 and 3.13 and requires a JAX installation supported by your platform.

Install the core package:

python -m pip install "vercor==0.4.6"

Install an optional extra before using a bundled JCM or Veros setup:

python -m pip install "vercor[jcm]"
python -m pip install "vercor[veros]"

CAMulator additionally requires NCAR's MILES-CREDIT. A compatible CREDIT release has not yet been confirmed or pinned.

Version 0.4.6 is the current release. Upgrade an older installation for the published stable API:

python -m pip install --upgrade "vercor==0.4.6"

Quick start

This dependency-light example runs a slab ocean for two one-hour steps:

from datetime import datetime

import jax.numpy as jnp

from vercor import Clock, Coupler, RectilinearGrid
from vercor.setups import make_slab_ocean


grid = RectilinearGrid.uniform(
    "quickstart",
    nlon=2,
    nlat=2,
    longitude=(0.0, 360.0),
    latitude=(-90.0, 90.0),
)
clock = Clock(datetime(2000, 1, 1), dt_seconds=3600.0, steps=2)
ocean = make_slab_ocean(grid)
coupler = Coupler(clock, components=(ocean,), run_order=(ocean.name,))

final_state = coupler.run()
sea_surface_temperature = final_state.component(ocean.name).field(
    "sea_surface_temperature"
)

assert sea_surface_temperature.shape == grid.shape
assert bool(jnp.all(jnp.isfinite(sea_surface_temperature)))

Setup gallery

VerCOR packages runnable setup scripts with its distribution. List the available templates, copy one into a user-editable directory, then run that local copy:

vercor show-setups
vercor copy-setup run_jcm_with_veros \
  --to ~/vercor-setups/run_jcm_with_veros
vercor run \
  --loglevel info \
  --float-type float64 \
  ~/vercor-setups/run_jcm_with_veros/run_jcm_with_veros.py

vercor --version reports the installed distribution version. VERCOR_SETUP_DIR may add external templates as an os.pathsep-separated list of direct directories. Every template name must be unique across the packaged gallery and those directories; duplicates are errors. copy-setup --to creates missing parent directories or reuses an existing directory, but never overwrites an existing setup file.

An external template must define exactly run_setup(*, loglevel, float_type). vercor run passes lowercase-only loglevel choices (trace, debug, info, warning, or error) and float_type choices (float64 or float32); their defaults are info and float64. The function returns None for success or an integer process status.

Documentation

Read the canonical documentation at https://vercor.readthedocs.io/:

Repository resources:

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vercor-0.4.6.tar.gz (168.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vercor-0.4.6-py3-none-any.whl (240.0 kB view details)

Uploaded Python 3

File details

Details for the file vercor-0.4.6.tar.gz.

File metadata

  • Download URL: vercor-0.4.6.tar.gz
  • Upload date:
  • Size: 168.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for vercor-0.4.6.tar.gz
Algorithm Hash digest
SHA256 9f97a4e6f47a28cc9d4aeeaee99d3efabf5f62898561b7fab81286a399403bea
MD5 62f59fb52d66ee84b554eaa23c0b5b05
BLAKE2b-256 9133fe26085d227dea18f1812e204a53ff50c42c69b27e89bc477fc090320ce0

See more details on using hashes here.

File details

Details for the file vercor-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: vercor-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 240.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for vercor-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 860fe6454db9c1c7461f53892f83f4bee7fee3bd8009dae6be9eb390516a579c
MD5 7cb94e81d2bebfbe352358e1db1579b6
BLAKE2b-256 24a8fa92816f4f39e497c35ac1467693d180ef780280b8f4c0a559a4c4c0db2b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.6 This release

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 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