VerCOR
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.4is the current release. VerCOR 0.3 applications should follow the Migration guide.
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.4"
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.4 is the current release. Upgrade an older installation for the
published stable API:
python -m pip install --upgrade "vercor==0.4.4"
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vercor-0.4.4.tar.gz.
File metadata
- Download URL: vercor-0.4.4.tar.gz
- Upload date:
- Size: 161.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d51d71703924f4a1413b5dca310a830e776df063432c03dc8d7ad21dbdab1467
|
|
| MD5 |
2b7e46c3ee77a200b5d7b9e973009dab
|
|
| BLAKE2b-256 |
7ac0d70848b2277f24e8a76f4c8ed5a20782d108d8e657229e408af12f045ea1
|
File details
Details for the file vercor-0.4.4-py3-none-any.whl.
File metadata
- Download URL: vercor-0.4.4-py3-none-any.whl
- Upload date:
- Size: 231.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d37fc724d0dcbaa1656eaf35bdaa23b5903799e0a80e7a39ab22804e97e45f2
|
|
| MD5 |
0c35106d964b3e08e2ecb5e1461cbcf8
|
|
| BLAKE2b-256 |
d496574dff6546ee276437d5ee34eca369a1d70441ec2589bdb92e83005f57e1
|