From 02b30c4796b92715ba67fb754fd582d15dd2cefe Mon Sep 17 00:00:00 2001 From: AgentOxygen Date: Mon, 28 Sep 2026 12:42:05 -0500 Subject: [PATCH 1/8] Added jsonschema as dependency --- .pylintrc | 2 +- Dockerfile | 1 + pyproject.toml | 2 +- requirements.txt | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.pylintrc b/.pylintrc index 49480959..1d237c1e 100644 --- a/.pylintrc +++ b/.pylintrc @@ -17,5 +17,5 @@ disable= max-line-length=100 [TYPECHECK] -ignored-modules=xarray,xesmf,cmor,numpy,geocat.comp,yaml,cftime,pytest,dask +ignored-modules=xarray,xesmf,cmor,numpy,geocat.comp,yaml,jsonschema,cftime,pytest,dask ignored-classes=cmor diff --git a/Dockerfile b/Dockerfile index 3c417051..d4e47ac1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ RUN conda install -y -n base -c conda-forge \ h5netcdf \ cftime \ pyyaml \ + jsonschema \ click \ matplotlib-base \ pytest \ diff --git a/pyproject.toml b/pyproject.toml index 123efed0..2cb2672c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ python = ">=3.10.13,<3.14" # Dependency management is handled by your conda environment. # Example setup (Python 3.12 is required for conda cmor 3.15): # conda create -n cmip7-prep -c conda-forge python=3.12 cmor=3.15 xarray numpy \ -# dask xesmf cftime pyyaml click pandas tqdm geocat-comp +# dask xesmf cftime pyyaml jsonschema click pandas tqdm geocat-comp # conda activate cmip7-prep # pip install -e . --no-deps # pip install gents dulwich cmip7-data-request-api diff --git a/requirements.txt b/requirements.txt index 98d2c32b..e9f24d33 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,6 +13,7 @@ h5netcdf cftime dask pyyaml +jsonschema # mapping YAML schema (cmip7_prep/schema.py) click xesmf geocat-comp From 3f07915409f31e5621b482bc9d49a16ffef7f1b9 Mon Sep 17 00:00:00 2001 From: AgentOxygen Date: Mon, 28 Sep 2026 14:01:45 -0500 Subject: [PATCH 2/8] Initial new jsonschema implementation with short form and long form entries --- INSTALL.md | 2 +- data/schemas/mapping.schema.yaml | 113 +++++++++++++++ scripts/cmor_driver.py | 9 +- scripts/convert_csv_to_yaml.py | 15 +- scripts/validate_cmor_output.py | 4 +- src/cmip7_prep/cmor_utils.py | 23 --- src/cmip7_prep/mapping_compat.py | 231 +++++++++++++++++++++++++++++-- src/cmip7_prep/schema.py | 52 +++++++ tests/test_mapping_compat.py | 106 ++++++++++++++ tests/test_schema.py | 39 ++++++ 10 files changed, 543 insertions(+), 51 deletions(-) create mode 100644 data/schemas/mapping.schema.yaml create mode 100644 src/cmip7_prep/schema.py create mode 100644 tests/test_schema.py diff --git a/INSTALL.md b/INSTALL.md index f2301d6d..405b368b 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -16,7 +16,7 @@ CMOR 3.15 is the version that validates against the CMIP7 controlled vocabulary ```bash conda create --prefix /projects/NS9560K/diagnostics/cmordev_env_312 -c conda-forge \ - python=3.12 cmor=3.15 xarray numpy dask xesmf cftime pyyaml click pandas geocat-comp + python=3.12 cmor=3.15 xarray numpy dask xesmf cftime pyyaml jsonschema click pandas geocat-comp ``` When conda prints its plan, confirm the `cmor` line shows `3.15.x` with a `py312` diff --git a/data/schemas/mapping.schema.yaml b/data/schemas/mapping.schema.yaml new file mode 100644 index 00000000..69e52c68 --- /dev/null +++ b/data/schemas/mapping.schema.yaml @@ -0,0 +1,113 @@ +# JSON Schema (draft 2020-12), written in YAML, for the variable mapping files +# data/_to_cmip7_.yaml. A mapping entry holds only what cannot +# be derived from the CMOR tables, the run's command line or the data/ lookup +# tables. +# +# Checked by cmip7_prep.schema.mapping_errors: when a Mapping is loaded (as +# warnings), by scripts/convert_csv_to_yaml.py before it writes, and by +# tests/test_schema.py for every mapping file in data/. Changing this file +# changes what the pipeline accepts: update cmip7_prep.mapping_compat in the +# same change. +# +# Derived by cmip7_prep.mapping_compat instead of stored: +# sources names used in `formula` (parsed with ast), minus +# mapping_compat.FORMULA_NAMESPACE +# table the run's --realm table if it has the variable, else the one +# table that does (11 names are in more than one table) +# levels the variable's `dimensions` in the CMOR table (plevNN, +# alevel, alevhalf) +# regrid_method data/intensive_vars.yaml, looked up at run time +# metadata long_name, standard_name, cell_methods: CMOR writes them +# from the table +# +# Example file: +# grids: [gn] +# variables: +# tas_tavg-h2m-hxy-u: TREFHT +# clt_tavg-u-hxy-u: {formula: CLDTOT, units: "1"} # CMOR converts 1 -> % +# siconc_tavg-u-hxy-si: {formula: {mon: siconc, day: siconc_d}} +# +# A formula is a Python expression over native variable names, evaluated with +# no builtins. A bare name is a rename. It is written either as one string, +# or as one string per output frequency. + +$schema: https://json-schema.org/draft/2020-12/schema +title: cmip7-prep variable mapping +type: object +required: [variables] +additionalProperties: false + +properties: + + grids: + description: >- + Default output grids for every entry in this file: gn keeps the native + grid, gr regrids to lat/lon. Default [gr]. + type: array + minItems: 1 + uniqueItems: true + items: {enum: [gn, gr]} + + variables: + description: Keyed by the variable's name in the CMOR table. + type: object + additionalProperties: + # Short form: the whole entry is the formula. Long form: an object. + if: {type: string} + then: {minLength: 1} + else: + type: object + additionalProperties: false + # Either one formula, or a list of variants each with its own. + if: {required: [variants]} + then: {not: {required: [formula]}} + else: {required: [formula]} + properties: + + formula: + if: {type: string} + then: {minLength: 1} + else: + type: object + minProperties: 1 + propertyNames: {enum: [1hr, 3hr, 6hr, day, mon, yr]} + additionalProperties: {type: string, minLength: 1} + + units: + description: >- + Units of the formula result, if they differ from the table's. + CMOR converts compatible units (1 -> %, degC -> K) and rejects + incompatible ones. + type: string + + positive: + description: >- + Sign convention of the formula result, if it differs from the + table's. CMOR flips the sign to match the table. + enum: [up, down] + + grids: + description: Overrides the file's default grids. + type: array + minItems: 1 + uniqueItems: true + items: {enum: [gn, gr]} + + variants: + description: One output per region, e.g. NH and SH sea-ice totals. + type: array + minItems: 1 + items: + type: object + required: [region, formula] + additionalProperties: false + properties: + region: {type: string} + formula: + if: {type: string} + then: {minLength: 1} + else: + type: object + minProperties: 1 + propertyNames: {enum: [1hr, 3hr, 6hr, day, mon, yr]} + additionalProperties: {type: string, minLength: 1} diff --git a/scripts/cmor_driver.py b/scripts/cmor_driver.py index ae734c53..19e4e42e 100755 --- a/scripts/cmor_driver.py +++ b/scripts/cmor_driver.py @@ -30,7 +30,6 @@ from cmor import set_cur_dataset_attribute from cmip7_prep.cmor_utils import ( - load_positive_overrides, bounds_from_centers_1d, roll_for_monotonic_with_bounds, packaged_dataset_json, @@ -511,9 +510,6 @@ def process_one_var( # native tripolar grid and the regridded one, hence the loop. There is no # default: every variable states its grids, so a missing key is a mapping # error rather than something to guess at. - # Hand-set 'positive' values; anything not listed takes the CMOR table's. - positive_overrides = load_positive_overrides(model) - grids = cfg.get("grids") if not grids: logger.error("no grids specified for %s in the mapping YAML", varname) @@ -667,7 +663,7 @@ def process_one_var( "name": shortname, "table": write_cfg.get("table", "atmos"), "units": write_cfg.get("units", ""), - "positive": positive_overrides.get(str(cmip7name)), + "positive": write_cfg.get("positive"), "cell_methods": write_cfg.get("cell_methods", None), "long_name": write_cfg.get("long_name", None), "standard_name": write_cfg.get("standard_name", None), @@ -902,6 +898,9 @@ def main(): logger.error(f"default_tables path {tables_root} does not exist") sys.exit(1) logger.info(f"Using CMOR tables from: {tables_root}") + # Lets the mapping fill each variable's table, units and levels. + mapping.tables_root = tables_root + mapping.realm = realm # Determine time series files all_ts_files = sorted( diff --git a/scripts/convert_csv_to_yaml.py b/scripts/convert_csv_to_yaml.py index d8655a61..b5456d71 100755 --- a/scripts/convert_csv_to_yaml.py +++ b/scripts/convert_csv_to_yaml.py @@ -4,9 +4,10 @@ import re import sys import argparse -from pathlib import Path from typing import Optional +from cmip7_prep.mapping_compat import load_intensive_vars + # ── Regrid method ──────────────────────────────────────────────────────────── # Intensive quantities -- temperatures, pressures, winds, sea surface height -- # are point values and interpolate smoothly, so they use the bilinear map. @@ -14,17 +15,7 @@ # uses the conservative map. # # The list of intensive quantities lives in data/intensive_vars.yaml, keyed by -# root variable name. - -INTENSIVE_VARS_YAML = Path(__file__).parent.parent / "data" / "intensive_vars.yaml" - - -def load_intensive_vars() -> set[str]: - """Return the root names that should be regridded bilinearly.""" - if not INTENSIVE_VARS_YAML.is_file(): - return set() - with open(INTENSIVE_VARS_YAML, encoding="utf-8") as handle: - return set((yaml.safe_load(handle) or {}).get("intensive") or ()) +# root variable name, and read by cmip7_prep.mapping_compat.load_intensive_vars. # ── Grid labels ────────────────────────────────────────────────────────────── diff --git a/scripts/validate_cmor_output.py b/scripts/validate_cmor_output.py index bfb03e3c..38b77367 100644 --- a/scripts/validate_cmor_output.py +++ b/scripts/validate_cmor_output.py @@ -33,7 +33,7 @@ import xarray as xr import yaml -from cmip7_prep.mapping_compat import packaged_mapping_resource +from cmip7_prep.mapping_compat import expand_entry, packaged_mapping_resource from cmor_driver import REALM_YAML_MAP @@ -354,7 +354,7 @@ def build_variable_provenance( """Extract per-variable source/mapping info from the YAML mapping entries.""" provenance = {} for variable in expected_variables: - entry = yaml_variables.get(variable) + entry = expand_entry(variable, yaml_variables.get(variable), []) if not isinstance(entry, dict): continue sources = entry.get("sources") or [] diff --git a/src/cmip7_prep/cmor_utils.py b/src/cmip7_prep/cmor_utils.py index dd99c03c..a324766d 100644 --- a/src/cmip7_prep/cmor_utils.py +++ b/src/cmip7_prep/cmor_utils.py @@ -1,6 +1,5 @@ """Utility functions for CMOR processing.""" -from functools import lru_cache from pathlib import Path import warnings import re @@ -11,32 +10,10 @@ import cmor import cftime import numpy as np -import yaml import xarray as xr _FILL_DEFAULT = 1.0e20 -_DATA_DIR = Path(__file__).parent.parent.parent / "data" - - -@lru_cache(maxsize=None) -def load_positive_overrides(model: str) -> dict: - """Return the hand-set 'positive' values for *model*, or {} if it has none. - - 'positive' tells CMOR which direction a flux is measured in. CMOR checks - it against its own tables and flips the sign of the data if they disagree, - so a wrong value inverts the field. - - A variable listed in data/_positive.yaml uses that value. Anything - else takes the value from the CMOR table. - """ - path = _DATA_DIR / f"{model}_positive.yaml" - if not path.is_file(): - return {} - with open(path, encoding="utf-8") as handle: - return (yaml.safe_load(handle) or {}).get("positive") or {} - - _HANDLE_RE = re.compile(r"^hdl:21\.14100/[0-9a-f\-]{36}$", re.IGNORECASE) _UUID_RE = re.compile(r"^[0-9a-f\-]{36}$", re.IGNORECASE) diff --git a/src/cmip7_prep/mapping_compat.py b/src/cmip7_prep/mapping_compat.py index 349a1e8e..e6513b13 100644 --- a/src/cmip7_prep/mapping_compat.py +++ b/src/cmip7_prep/mapping_compat.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # cmip7_prep/mapping_compat.py """ Mapping loader and evaluator for CMIP7-style YAML variable mapping files. @@ -46,10 +47,14 @@ from __future__ import annotations +import ast from dataclasses import dataclass +from functools import lru_cache from importlib.resources import as_file +import json from pathlib import Path from typing import Any, Dict, List, Mapping as TMapping, Optional +import re import warnings import logging @@ -57,6 +62,8 @@ import xarray as xr import yaml # runtime dep +from cmip7_prep.schema import mapping_errors + logger = logging.getLogger(__name__) @@ -223,10 +230,9 @@ def as_cfg(self) -> Dict[str, Any]: # ── formula namespace ──────────────────────────────────────────────────────── # The functions below, plus ``np`` and ``xr``, are the complete set of names a -# mapping formula may call. They are exposed as FORMULA_NAMESPACE so that -# scripts/convert_csv_to_yaml.py can validate formulas against the same list -# the evaluator actually uses -- adding a function here makes it available to -# formulas and known to the CSV validator in one edit. +# mapping formula may call. formula_names relies on FORMULA_NAMESPACE too: +# a name listed here is never taken for a native variable, so adding a +# function makes it callable and keeps it out of the file search in one edit. def verticalsum(arr, capped_at=None, dim="levsoi"): @@ -371,6 +377,186 @@ def _safe_eval(expr: str, local_names: Dict[str, Any]) -> Any: return eval(expr, safe_globals, safe_locals) +# ── minimal mapping form ───────────────────────────────────────────────────── +# Mapping files (schema: data/schemas/mapping.schema.yaml) hold a formula and +# only what cannot be looked up elsewhere. expand_entry spells such an entry +# out in the form the rest of this module works with; the CMOR table supplies +# table, units and levels (Mapping._add_table_fields). + +INTENSIVE_VARS_YAML = ( + Path(__file__).parent.parent.parent / "data" / "intensive_vars.yaml" +) + +_IDENTIFIER = re.compile(r"\b[A-Za-z_]\w*\b") + +# Vertical axes in a CMOR table's 'dimensions', as the level names the pipeline +# and writer dispatch on. plevNN keeps its own name. +_HYBRID_LEVELS = { + "alevel": "standard_hybrid_sigma", + "alevhalf": "standard_hybrid_sigma_half", +} + + +@lru_cache(maxsize=None) +def load_intensive_vars() -> frozenset: + """Return the root names that should be regridded bilinearly.""" + if not INTENSIVE_VARS_YAML.is_file(): + return frozenset() + with open(INTENSIVE_VARS_YAML, encoding="utf-8") as handle: + return frozenset((yaml.safe_load(handle) or {}).get("intensive") or ()) + + +def formula_names(formula: str) -> List[str]: + """Return the native variables a formula reads, sorted. + + That is every name in the expression except the functions it calls and + the names in :data:`FORMULA_NAMESPACE`. + + >>> formula_names("(PRECC + PRECL) * 1.e6") + ['PRECC', 'PRECL'] + >>> formula_names("verticalsum(SOILICE, capped_at=5000)") + ['SOILICE'] + >>> formula_names("(siconc * tarea).where(siconc.coords['TLAT'] > 0).sum(dim=['nj'])") + ['siconc', 'tarea'] + """ + try: + tree = ast.parse(formula, mode="eval") + except SyntaxError as exc: + raise ValueError(f"formula is not a valid expression: {formula!r}") from exc + called = { + node.func.id + for node in ast.walk(tree) + if isinstance(node, ast.Call) and isinstance(node.func, ast.Name) + } + names = {node.id for node in ast.walk(tree) if isinstance(node, ast.Name)} + return sorted(names - called - set(FORMULA_NAMESPACE)) + + +def expand_entry(name: str, entry: Any, grids: List[str]) -> Any: + """Spell a mapping entry out with ``sources``, the form the loader works with. + + A formula written per frequency becomes frequency-tagged sources; where the + frequencies share one formula, the other frequencies' variable names become + aliases of the monthly (or first) frequency's. Entries that already list + ``sources`` (the previous file format) are returned unchanged. + + >>> expand_entry("tas_tavg-h2m-hxy-u", "TREFHT", ["gr"]) + {'grids': ['gr'], 'regrid_method': 'bilinear', 'sources': [{'model_var': 'TREFHT'}]} + >>> expand_entry("siu", {"formula": {"day": "siu_d", "mon": "siu"}}, ["gn"])["sources"] + [{'model_var': 'siu_d', 'freq': 'day'}, {'model_var': 'siu', 'freq': 'mon'}] + >>> e = expand_entry("x", {"formula": {"day": "A_d * B", "mon": "A * B"}}, ["gr"]) + >>> e["formula"] + 'A * B' + >>> e["sources"][0] + {'model_var': 'A_d', 'freq': 'day', 'alias': 'A'} + """ + if isinstance(entry, str): + entry = {"formula": entry} + if not isinstance(entry, dict) or "sources" in entry: + return entry + per_freq = (entry.get("variants") or [entry])[0]["formula"] + if not isinstance(per_freq, dict): + per_freq = {None: per_freq} + main_freq = "mon" if "mon" in per_freq else next(iter(per_freq)) + main = per_freq[main_freq] + + # A plain rename at every frequency needs no formula. + rename = not entry.get("variants") and all( + _IDENTIFIER.fullmatch(text.strip()) for text in per_freq.values() + ) + if rename: + sources = [ + ( + {"model_var": text.strip(), "freq": freq} + if freq + else {"model_var": text.strip()} + ) + for freq, text in per_freq.items() + ] + else: + sources, aliased = [], set() + for freq, text in per_freq.items(): + if freq == main_freq: + continue + if _IDENTIFIER.sub("_", text) != _IDENTIFIER.sub("_", main): + raise ValueError( + f"{name}: per-frequency formulas may differ only in variable names" + ) + for model_var, alias in zip( + _IDENTIFIER.findall(text), _IDENTIFIER.findall(main) + ): + source = {"model_var": model_var, "freq": freq, "alias": alias} + if model_var != alias and source not in sources: + sources.append(source) + aliased.add(alias) + try: + names = formula_names(main) + except ValueError: + # Not valid Python: keep the file loadable; evaluating it will fail. + names = [ + n + for n in dict.fromkeys(_IDENTIFIER.findall(main)) + if n not in FORMULA_NAMESPACE + ] + for model_var in names: + source = {"model_var": model_var} + if model_var in aliased: + source["freq"] = main_freq + sources.append(source) + + expanded = {k: v for k, v in entry.items() if k not in ("formula", "variants")} + expanded.setdefault("grids", list(grids)) + expanded.setdefault( + "regrid_method", + "bilinear" if name.split("_")[0] in load_intensive_vars() else "conservative", + ) + expanded["sources"] = sources + if entry.get("variants"): + expanded["variants"] = [ + { + **variant, + "formula": ( + variant["formula"][main_freq] + if isinstance(variant["formula"], dict) + else variant["formula"] + ), + } + for variant in entry["variants"] + ] + elif not rename: + expanded["formula"] = main + return expanded + + +@lru_cache(maxsize=None) +def _table_entries(tables_root: str, table: str) -> Dict[str, dict]: + """Return the variable_entry of ``/tables/CMIP7_.json``, or {}.""" + path = Path(tables_root) / "tables" / f"CMIP7_{table}.json" + if not path.is_file(): + return {} + with open(path, encoding="utf-8") as handle: + return json.load(handle).get("variable_entry") or {} + + +def _levels(table_entry: dict) -> Optional[Dict[str, str]]: + """Return the levels the pipeline needs, from a table entry's dimensions. + + >>> _levels({"dimensions": "longitude latitude plev19 time"}) + {'name': 'plev19'} + >>> _levels({"dimensions": ["longitude", "latitude", "alevel", "time"]}) + {'name': 'standard_hybrid_sigma'} + >>> _levels({"dimensions": "longitude latitude time"}) is None + True + """ + dims = table_entry.get("dimensions") or [] + if isinstance(dims, str): + dims = dims.split() + for dim in dims: + if dim.startswith("plev") or dim in _HYBRID_LEVELS: + return {"name": _HYBRID_LEVELS.get(dim, dim)} + return None + + class Mapping: """Load and evaluate a CMIP7 variable mapping YAML file. @@ -403,6 +589,10 @@ class Mapping: def __init__(self, path: str | Path) -> None: self.path = Path(path) self.default_freq: Optional[str] = None + # Set by cmor_driver.py, so configs get table, units and levels from + # the CMOR table (see _add_table_fields). + self.tables_root: Optional[Path] = None + self.realm: Optional[str] = None self._vars, self._raw, self._variant_keys = self._load_yaml(self.path) @classmethod @@ -437,7 +627,14 @@ def _load_yaml(path: Path): "Unsupported YAML structure: expected top-level 'variables:' dict." ) - data = data["variables"] + # Warn rather than raise, so one malformed entry does not stop a run. + for message in mapping_errors(data): + logger.warning("%s does not match the mapping schema: %s", path, message) + grids = data.get("grids") or ["gr"] + data = { + name: expand_entry(name, cfg, grids) + for name, cfg in data["variables"].items() + } result: Dict[str, VarConfig] = {} raw: Dict[str, Any] = {} variant_keys: Dict[str, List[str]] = {} @@ -483,8 +680,26 @@ def get_cfg(self, cmip_name: str, freq: Optional[str] = None) -> Dict[str, Any]: effective_freq = freq if freq is not None else self.default_freq raw = self._raw.get(cmip_name) if effective_freq is not None and raw is not None: - return _to_varconfig(cmip_name, raw, freq=effective_freq).as_cfg() - return self._vars[cmip_name].as_cfg() + return self._add_table_fields( + _to_varconfig(cmip_name, raw, freq=effective_freq).as_cfg() + ) + return self._add_table_fields(self._vars[cmip_name].as_cfg()) + + def _add_table_fields(self, cfg: Dict[str, Any]) -> Dict[str, Any]: + """Fill table, units and levels from the CMOR table, unless cfg sets them. + + Needs tables_root and realm; without them cfg is returned unchanged. + """ + if self.tables_root is None: + return cfg + entry = _table_entries(str(self.tables_root), self.realm).get(cfg["name"], {}) + cfg.setdefault("table", self.realm) + if "units" in entry: + cfg.setdefault("units", entry["units"]) + levels = _levels(entry) + if levels: + cfg.setdefault("levels", levels) + return cfg def timeseries_source_vars( self, cmip_name: str, freq: Optional[str] = None @@ -604,7 +819,7 @@ def realize_all( da.attrs.setdefault("long_name", vc.long_name) if vc.standard_name: da.attrs.setdefault("standard_name", vc.standard_name) - results.append((da, vc.as_cfg())) + results.append((da, self._add_table_fields(vc.as_cfg()))) return results # No public access to _vars or _raw outside this file. diff --git a/src/cmip7_prep/schema.py b/src/cmip7_prep/schema.py new file mode 100644 index 00000000..d4fee178 --- /dev/null +++ b/src/cmip7_prep/schema.py @@ -0,0 +1,52 @@ +"""Validate mapping files against data/schemas/mapping.schema.yaml. + +The schema is the contract for the mapping YAML; this module only loads it and +hands it to jsonschema. Edit the schema, not this module, to change what a +mapping file may contain. +""" + +from __future__ import annotations + +from functools import lru_cache +from pathlib import Path +from typing import Any + +import jsonschema +from jsonschema.exceptions import best_match +import yaml + +SCHEMA_PATH = ( + Path(__file__).parent.parent.parent / "data" / "schemas" / "mapping.schema.yaml" +) + + +@lru_cache(maxsize=None) +def _validator() -> jsonschema.Draft202012Validator: + """Load the schema once, check that it is itself valid, and build a validator.""" + with open(SCHEMA_PATH, encoding="utf-8") as handle: + schema = yaml.safe_load(handle) + jsonschema.Draft202012Validator.check_schema(schema) + return jsonschema.Draft202012Validator(schema) + + +def mapping_errors(data: Any) -> list[str]: + """Return one message per schema violation in a loaded mapping file. + + An empty list means the file is valid. Where the schema offers + alternatives (an entry needs 'formula' or 'variants'), the most specific + reason is reported. + + >>> mapping_errors({"variables": {"tas": "TREFHT"}}) + [] + >>> bad = {"formula": "T", "grids": ["gm"], "scale": 2} + >>> print("\\n".join(mapping_errors({"variables": {"tas": bad}}))) + variables/tas: Additional properties are not allowed ('scale' was unexpected) + variables/tas/grids/0: 'gm' is not one of ['gn', 'gr'] + """ + errors = sorted( + (best_match([error]) for error in _validator().iter_errors(data)), + key=lambda e: [str(p) for p in e.path], + ) + return [ + f"{'/'.join(str(p) for p in e.path) or ''}: {e.message}" for e in errors + ] diff --git a/tests/test_mapping_compat.py b/tests/test_mapping_compat.py index e4aaee74..c9d5b412 100644 --- a/tests/test_mapping_compat.py +++ b/tests/test_mapping_compat.py @@ -3,6 +3,7 @@ Tests mapping compatibility and normalization logic for CMIP7 variable mapping workflows. """ +import json import tempfile import xarray as xr import numpy as np @@ -539,3 +540,108 @@ def test_verticalmean_rejects_bad_dim( """A wrong dimension name is reported before anything else is attempted.""" with pytest.raises(ValueError, match="Dimension 'lev' not found"): _safe_eval("verticalmean(uvel, levelname='lev')", {"uvel": uvel_sigma}) + + +# --------------------------------------------------------------------------- +# Minimal mapping form (data/schemas/mapping.schema.yaml) +# --------------------------------------------------------------------------- +_MINIMAL_YAML = """ +grids: [gr] +variables: + tas_tavg-h2m-hxy-u: TREFHT + pr_tavg-u-hxy-u: (PRECC + PRECL) * 1000 + ta_tavg-p19-hxy-air: T + cl_tavg-al-hxy-u: {formula: CLOUD, units: "1"} + rsds_tavg-u-hxy-u: {formula: FSDS, positive: up} + tos_tavg-u-hxy-sea: {formula: tos, grids: [gn, gr]} + siu_tavg-u-hxy-si: + formula: {day: siu_d, mon: siu} + siarea_tavg-u-hm-u: + variants: + - region: nh + formula: + day: (siconc_d * tarea).where(siconc_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (siconc * tarea).where(siconc.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + - region: sh + formula: + day: (siconc_d * tarea).where(siconc_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (siconc * tarea).where(siconc.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) +""" + +# A stand-in for cmip7-cmor-tables: only the fields the mapping reads. +_TABLE = { + "tas_tavg-h2m-hxy-u": { + "units": "K", + "dimensions": "longitude latitude time height2m", + }, + "ta_tavg-p19-hxy-air": { + "units": "K", + "dimensions": ["longitude", "latitude", "plev19", "time"], + }, + "cl_tavg-al-hxy-u": {"units": "%", "dimensions": "longitude latitude alevel time"}, +} + + +@pytest.fixture(name="minimal") +def minimal_fixture(tmp_path): + """A Mapping over _MINIMAL_YAML that knows where the (fake) CMOR tables are.""" + (tmp_path / "tables").mkdir() + (tmp_path / "tables" / "CMIP7_atmos.json").write_text( + json.dumps({"variable_entry": _TABLE}) + ) + (tmp_path / "mapping.yaml").write_text(_MINIMAL_YAML) + mapping = Mapping(tmp_path / "mapping.yaml") + mapping.tables_root = tmp_path + mapping.realm = "atmos" + return mapping + + +def test_minimal_short_form(minimal): + """A string entry is the formula; a bare name is a plain source.""" + assert minimal.get_cfg("tas_tavg-h2m-hxy-u")["source"] == "TREFHT" + cfg = minimal.get_cfg("pr_tavg-u-hxy-u") + assert cfg["formula"] == "(PRECC + PRECL) * 1000" + assert cfg["raw_variables"] == ["PRECC", "PRECL"] + + +def test_minimal_grids_regrid_positive(minimal): + """File grids default, entry override, regrid method and positive.""" + assert minimal.get_cfg("tas_tavg-h2m-hxy-u")["grids"] == ["gr"] + assert minimal.get_cfg("tos_tavg-u-hxy-sea")["grids"] == ["gn", "gr"] + assert minimal.get_cfg("tas_tavg-h2m-hxy-u")["regrid_method"] == "bilinear" + assert minimal.get_cfg("pr_tavg-u-hxy-u")["regrid_method"] == "conservative" + assert minimal.get_cfg("rsds_tavg-u-hxy-u")["positive"] == "up" + + +def test_minimal_table_fields(minimal): + """Table, units and levels come from the CMOR table; declared units win.""" + cfg = minimal.get_cfg("ta_tavg-p19-hxy-air") + assert (cfg["table"], cfg["units"], cfg["levels"]) == ( + "atmos", + "K", + {"name": "plev19"}, + ) + cl = minimal.get_cfg("cl_tavg-al-hxy-u") + assert cl["units"] == "1" + assert cl["levels"] == {"name": "standard_hybrid_sigma"} + + +def test_minimal_per_frequency(minimal): + """A per-frequency formula picks the frequency's model variable.""" + assert minimal.get_cfg("siu_tavg-u-hxy-si", freq="mon")["source"] == "siu" + assert minimal.get_cfg("siu_tavg-u-hxy-si", freq="day")["source"] == "siu_d" + assert minimal.iter_variable_names(freq="3hr") == [ + name for name in minimal.iter_variable_names() if name != "siu_tavg-u-hxy-si" + ] + + +def test_minimal_variants_per_frequency(minimal): + """Variant formulas are realized per region, and per frequency.""" + ds = _make_siarea_ds() + ds["siconc_d"] = ds["siconc_d"] * 2 + mon = minimal.realize_all(ds, "siarea_tavg-u-hm-u", freq="mon") + day = minimal.realize_all(ds, "siarea_tavg-u-hm-u", freq="day") + assert [cfg["region"] for _, cfg in mon] == ["nh", "sh"] + assert float(day[0][0].isel(time=0)) == pytest.approx( + 2 * float(mon[0][0].isel(time=0)) + ) diff --git a/tests/test_schema.py b/tests/test_schema.py new file mode 100644 index 00000000..09c2ca47 --- /dev/null +++ b/tests/test_schema.py @@ -0,0 +1,39 @@ +"""Tests for the mapping schema (data/schemas/mapping.schema.yaml).""" + +import pytest + +from cmip7_prep.schema import mapping_errors + + +@pytest.mark.parametrize( + "entry, expected", + [ + ("", "should be non-empty"), + (1.0, "1.0 is not of type 'object'"), + ({"formula": "T", "grids": ["gm"]}, "'gm' is not one of ['gn', 'gr']"), + ({"formula": "T", "units": 1}, "1 is not of type 'string'"), + ({"formula": "T", "positive": "upward"}, "'upward' is not one of"), + ({"formula": {"month": "T"}}, "'month' is not one of"), + ( + {"formula": "T", "sources": [{"model_var": "T"}]}, + "('sources' was unexpected)", + ), + ({"units": "K"}, "'formula' is a required property"), + ( + {"formula": "T", "variants": [{"region": "nh", "formula": "T"}]}, + "should not be valid under", + ), + ({"variants": [{"formula": "T"}]}, "'region' is a required property"), + ], +) +def test_invalid_entries_are_reported(entry, expected): + """Common mistakes, including keys of the old format, are caught.""" + errors = mapping_errors({"variables": {"tas": entry}}) + assert any(expected in message for message in errors), errors + + +def test_file_grids_default(): + """The file-level grids default is checked like an entry's.""" + assert mapping_errors({"grids": ["gm"], "variables": {}}) == [ + "grids/0: 'gm' is not one of ['gn', 'gr']" + ] From 85ac655364fad9b89f2351d23c7b0e4b3362c901 Mon Sep 17 00:00:00 2001 From: AgentOxygen Date: Mon, 28 Sep 2026 14:02:31 -0500 Subject: [PATCH 3/8] Updated data files to new schema --- data/cesm_positive.yaml | 22 - data/cesm_to_cmip7_atmos.yaml | 635 ++----- data/cesm_to_cmip7_land.yaml | 2479 +++----------------------- data/cesm_to_cmip7_landice.yaml | 12 +- data/cesm_to_cmip7_ocean.yaml | 153 +- data/cesm_to_cmip7_seaIce.yaml | 774 ++++----- data/noresm_positive.yaml | 17 - data/noresm_to_cmip7_aerosol.yaml | 1065 ++---------- data/noresm_to_cmip7_atmos.yaml | 2515 +++++---------------------- data/noresm_to_cmip7_atmosChem.yaml | 140 +- data/noresm_to_cmip7_land.yaml | 1643 +++-------------- data/noresm_to_cmip7_landIce.yaml | 218 +-- data/noresm_to_cmip7_seaIce.yaml | 774 ++++----- 13 files changed, 1892 insertions(+), 8555 deletions(-) delete mode 100644 data/cesm_positive.yaml delete mode 100644 data/noresm_positive.yaml diff --git a/data/cesm_positive.yaml b/data/cesm_positive.yaml deleted file mode 100644 index c6988aa8..00000000 --- a/data/cesm_positive.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# Hand-set 'positive' values for CESM variables. -# -# 'positive' tells CMOR which direction a flux is measured in. CMOR checks it -# against its own tables and flips the sign of the data if they disagree, so a -# wrong entry here inverts the field. -# -# Only variables that differ from the CMOR table need an entry. Everything -# else takes the table's value, so this list should stay short. - -positive: - fNVegSoil_tavg-u-hxy-lnd: up # not in any CMOR table - rlds_tavg-u-hxy-u: up # table says down - rldscs_tavg-u-hxy-u: up # table says down - rsds_tavg-u-hxy-lnd: up # table says down - rsds_tavg-u-hxy-u: up # table says down - rsdscs_tavg-u-hxy-u: up # table says down - rsdt_tavg-u-hxy-u: up # table says down - sisnhc_tavg-u-hxy-si: down # not in any CMOR table - sistrxubot_tavg-u-hxy-si: down # table says up - sistryubot_tavg-u-hxy-si: down # table says up - tauu_tavg-u-hxy-u: up # table says down - tauv_tavg-u-hxy-u: up # table says down diff --git a/data/cesm_to_cmip7_atmos.yaml b/data/cesm_to_cmip7_atmos.yaml index 7e363ac6..3fdd4d67 100644 --- a/data/cesm_to_cmip7_atmos.yaml +++ b/data/cesm_to_cmip7_atmos.yaml @@ -1,602 +1,169 @@ -dataset_overrides: {institution_id: NCAR, nominal_resolution: 100 km, source_id: CESM3} +grids: [gr] variables: - ccb_tavg-u-hxy-ccl: - cell_methods: 'area: time: mean where convective_cloud (weighted by total convective - cloud area)' - grids: [gr] - long_name: Air Pressure at Convective Cloud Base - regrid_method: conservative - sources: [model_var: PCLDBOT] - standard_name: air_pressure_at_convective_cloud_base - table: atmos - units: Pa - - ccb_tpt-u-hs-u: - cell_methods: 'area: point time: point' - grids: [gr] - long_name: Air Pressure at Convective Cloud Base - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: air_pressure_at_convective_cloud_base - table: atmos - units: Pa - - cct_tavg-u-hxy-ccl: - cell_methods: 'area: time: mean where convective_cloud (weighted by total convective - cloud area)' - grids: [gr] - long_name: Air Pressure at Convective Cloud Top - regrid_method: conservative - sources: [model_var: PCLDTOP] - standard_name: air_pressure_at_convective_cloud_top - table: atmos - units: Pa - - cct_tpt-u-hs-u: - cell_methods: 'area: point time: point' - grids: [gr] - long_name: Air Pressure at Convective Cloud Top - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: air_pressure_at_convective_cloud_top - table: atmos - units: Pa - - cl_tavg-al-hxy-u: - cell_methods: 'time: mean' - formula: CLOUD * 100 - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - long_name: Cloud Area Fraction - regrid_method: conservative - sources: [model_var: CLOUD] - standard_name: cloud_area_fraction - table: atmos - units: '%' + ccb_tavg-u-hxy-ccl: PCLDBOT - cldnci_tavg-u-hxy-cl: - cell_methods: 'area: time: mean where cloud (mean over the portion of the cell - containing ice topped cloud, as seen from top of atmosphere)' - grids: [gr] - long_name: Ice Crystal Number Concentration of Cloud Tops - regrid_method: conservative - sources: [model_var: ACTNI] - standard_name: number_concentration_of_ice_crystals_in_air_at_ice_cloud_top - table: atmos - units: m-3 - - cldncl_tavg-u-hxy-cl: - cell_methods: 'area: time: mean where cloud (mean over the portion of the cell - containing liquid topped cloud, as seen from top of atmosphere)' - grids: [gr] - long_name: Cloud Droplet Number Concentration of Cloud Tops - regrid_method: conservative - sources: [model_var: ACTNL] - standard_name: number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top - table: atmos - units: m-3 - - cli_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLDICE] - table: atmos - units: kg kg-1 + cct_tavg-u-hxy-ccl: PCLDTOP - climodis_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: MODIS Ice Cloud Area Percentage - regrid_method: conservative - sources: [{model_var: 'CLIMODIS [COSP]'}] - standard_name: modis_ice_topped_cloud_area_fraction - table: atmos - units: '%' + cl_tavg-al-hxy-u: CLOUD * 100 - clivi_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDIWP] - table: atmos - units: kg m-2 - - clivic_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: Convective Ice Water Path - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: atmosphere_mass_content_of_convective_cloud_ice - table: atmos - units: kg m-2 - - clivimodis_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: MODIS Ice Water Path - regrid_method: conservative - sources: [{model_var: 'IWPMODIS [COSP]'}] - standard_name: atmosphere_mass_content_of_cloud_ice - table: atmos - units: kg m-2 - - clmodis_tavg-p7c-hxy-air: - cell_methods: 'area: time: mean where air' - grids: [gr] - levels: {name: plev7c, units: Pa} - long_name: MODIS Cloud Area Percentage - regrid_method: conservative - sources: [{model_var: 'CLMODIS [COSP]'}] - standard_name: modis_cloud_area_fraction - table: atmos - units: '%' + cldnci_tavg-u-hxy-cl: ACTNI - clmodisice_tavg-p7c-hxy-air: - cell_methods: 'area: time: mean where air' - grids: [gr] - levels: {name: plev7c, units: Pa} - long_name: MODIS Ice Topped Cloud Area Percentage - regrid_method: conservative - sources: [{model_var: 'CLIMODIS [COSP]'}] - standard_name: modis_ice_topped_cloud_area_fraction - table: atmos - units: '%' + cldncl_tavg-u-hxy-cl: ACTNL - clmodisliquid_tavg-p7c-hxy-air: - cell_methods: 'area: time: mean where air' - grids: [gr] - levels: {name: plev7c, units: Pa} - long_name: MODIS Liquid Topped Cloud Area Percentage - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: modis_liquid_topped_cloud_area_fraction - table: atmos - units: '%' + cli_tavg-al-hxy-u: CLDICE - clt_tavg-u-hxy-u: - formula: CLDTOT * 100 - grids: [gr] - regrid_method: bilinear - sources: [model_var: CLDTOT] - table: atmos - units: '%' + climodis_tavg-u-hxy-u: CLIMODIS [COSP] - clw_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLDLIQ] - table: atmos - units: kg kg-1 + clivi_tavg-u-hxy-u: TGCLDIWP - clwvi_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDLWP] - table: atmos - units: kg m-2 - - clwvimodis_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: IWPMODIS+CLWMODIS - grids: [gr] - long_name: MODIS Condensed Water Path - regrid_method: conservative - sources: [{model_var: 'IWPMODIS [COSP], CLWMODIS [COSP]'}] - standard_name: atmosphere_mass_content_of_cloud_condensed_water - table: atmos - units: kg m-2 - - co23D_tavg-al-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - long_name: 3D-Field of Transported CO2 - regrid_method: conservative - sources: [model_var: CO2] - standard_name: mass_fraction_of_carbon_dioxide_tracer_in_air - table: atmos - units: kg kg-1 + clivimodis_tavg-u-hxy-u: IWPMODIS [COSP] - evspsbl_tavg-u-hxy-u: - cell_methods: 'time: mean' - formula: QFLX * -1. - grids: [gr] - long_name: Evaporation - regrid_method: conservative - sources: [model_var: QFLX] - table: atmos - units: kg m-2 s-1 + clmodis_tavg-p7c-hxy-air: CLMODIS [COSP] + + clmodisice_tavg-p7c-hxy-air: CLIMODIS [COSP] + + clt_tavg-u-hxy-u: CLDTOT * 100 + + clw_tavg-al-hxy-u: CLDLIQ + + clwvi_tavg-u-hxy-u: TGCLDLWP + + clwvimodis_tavg-u-hxy-u: IWPMODIS+CLWMODIS + + co23D_tavg-al-hxy-u: CO2 + + evspsbl_tavg-u-hxy-u: QFLX * -1. evspsblsoi_tavg-u-hxy-u: formula: QSOIL * -1. - grids: [gr] - long_name: Water Evaporation from Soil - regrid_method: conservative - sources: [model_var: QSOIL] - table: atmos units: kg m-2 s-1 evspsblveg_tavg-u-hxy-u: formula: QVEGE * -1. - grids: [gr] - long_name: Water Evaporation from Vegetation - regrid_method: conservative - sources: [model_var: QVEGE] - table: atmos units: kg m-2 s-1 - hfls_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: LHFLX] - table: atmos - units: W m-2 - - hfss_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: SHFLX] - table: atmos - units: W m-2 - - hur_tavg-p19-hxy-air: - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: RELHUM] - table: atmos - units: '%' + hfls_tavg-u-hxy-u: LHFLX + + hfss_tavg-u-hxy-u: SHFLX + + hur_tavg-p19-hxy-air: RELHUM hurs_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: RELHUM] - table: atmos + formula: RELHUM units: '%' hurs_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: RHREFHT] - table: atmos + formula: RHREFHT units: '%' hus_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos + formula: Q units: kg kg-1 hus_tavg-p19-hxy-u: - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos + formula: Q units: kg kg-1 - huss_tavg-h2m-hxy-u: - grids: [gr] - long_name: Near-Surface Specific Humidity - regrid_method: bilinear - sources: [model_var: QREFHT] - table: atmos - units: '1' + huss_tavg-h2m-hxy-u: QREFHT irrDem_tavg-u-hxy-u: - grids: [gr] - long_name: Irrigation Demand - regrid_method: conservative - sources: [model_var: IRR_DEM] - table: atmos + formula: IRR_DEM units: kg m-2 s-1 irrGw_tavg-u-hxy-u: - grids: [gr] - long_name: Groundwater Irrigation - regrid_method: conservative - sources: [model_var: IRR_GW] - table: atmos + formula: IRR_GW units: kg m-2 s-1 irrLut_tavg-u-hxy-u: - grids: [gr] - long_name: Surface Water Irrigation - regrid_method: conservative - sources: [model_var: IRR_LUT] - table: atmos + formula: IRR_LUT units: kg m-2 s-1 irrSurf_tavg-u-hxy-u: - grids: [gr] - long_name: Irrigation from Surface Water - regrid_method: conservative - sources: [model_var: IRR_SURF] - table: atmos + formula: IRR_SURF units: kg m-2 s-1 - pr_tavg-u-hxy-u: - cell_methods: 'time: mean' - formula: PRECT * 1000. - grids: [gr] - long_name: Precipitation - regrid_method: conservative - sources: [model_var: PRECT] - standard_name: precipitation_flux - table: atmos - units: kg m-2 s-1 + pr_tavg-u-hxy-u: PRECT * 1000. - prc_tavg-u-hxy-u: - formula: PRECC * 1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECC] - table: atmos - units: kg m-2 s-1 + prc_tavg-u-hxy-u: PRECC * 1000.0 - prsn_tavg-u-hxy-u: - formula: (PRECSC + PRECSL) * 1000.0 - grids: [gr] - regrid_method: bilinear - sources: [model_var: PRECSC, model_var: PRECSL] - table: atmos - units: kg m-2 s-1 + prsn_tavg-u-hxy-u: (PRECSC + PRECSL) * 1000.0 - prw_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: TMQ] - table: atmos - units: kg m-2 - - ps_tavg-u-hxy-u: - cell_methods: 'time: mean' - grids: [gr] - long_name: Surface Air Pressure - regrid_method: bilinear - sources: [model_var: PS] - table: atmos - units: Pa - - psl_tavg-u-hxy-u: - cell_methods: 'time: mean' - grids: [gr] - long_name: Sea Level Pressure - regrid_method: bilinear - sources: [model_var: PSL] - table: atmos - units: Pa + prw_tavg-u-hxy-u: TMQ + + ps_tavg-u-hxy-u: PS + + psl_tavg-u-hxy-u: PSL rlds_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS] - table: atmos - units: W m-2 + formula: FLDS + positive: up rldscs_tavg-u-hxy-u: formula: FLDS + FLNS - FLNSC - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS, model_var: FLNS, model_var: FLNSC] - table: atmos - units: W m-2 - - rlus_tavg-u-hxy-u: - formula: FLDS + FLNS - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS, model_var: FLNS] - table: atmos - units: W m-2 - - rluscs_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FLNSC] - table: atmos - units: W m-2 - - rlut_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FLUT] - table: atmos - units: W m-2 - - rlutcs_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FLUTC] - table: atmos - units: W m-2 + positive: up + + rlus_tavg-u-hxy-u: FLDS + FLNS + + rluscs_tavg-u-hxy-u: FLNSC + + rlut_tavg-u-hxy-u: FLUT + + rlutcs_tavg-u-hxy-u: FLUTC rsds_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: atmos - units: W m-2 + formula: FSDS + positive: up rsdscs_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC] - table: atmos - units: W m-2 + formula: FSDSC + positive: up rsdt_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLIN] - table: atmos - units: W m-2 - - rsus_tavg-u-hxy-u: - formula: FSDS - FSNS - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS, model_var: FSNS] - table: atmos - units: W m-2 - - rsuscs_tavg-u-hxy-u: - formula: FSDSC - FSNSC - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC, model_var: FSNSC] - table: atmos - units: W m-2 - - rsut_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: FLUT] - table: atmos - units: W m-2 - - rsutcs_tavg-u-hxy-u: - formula: SOLIN - FSNTOAC - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLIN, model_var: FSNTOAC] - table: atmos - units: W m-2 - - sfcWind_tavg-h10m-hxy-u: - grids: [gr] - regrid_method: bilinear - sources: [model_var: U10] - table: atmos - units: m s-1 - - ta_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - long_name: Air Temperature - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - ta_tavg-p19-hxy-air: - grids: [gr] - levels: {name: plev19, units: Pa} - long_name: Air Temperature - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - tas_tavg-h2m-hxy-u: - cell_methods: 'time: mean' - grids: [gr] - long_name: Near-Surface Air Temperature - regrid_method: bilinear - sources: [model_var: TREFHT] - standard_name: air_temperature - table: atmos - units: K + formula: SOLIN + positive: up + + rsus_tavg-u-hxy-u: FSDS - FSNS + + rsuscs_tavg-u-hxy-u: FSDSC - FSNSC + + rsut_tavg-u-hxy-u: FLUT + + rsutcs_tavg-u-hxy-u: SOLIN - FSNTOAC + + sfcWind_tavg-h10m-hxy-u: U10 + + ta_tavg-al-hxy-u: T + + ta_tavg-p19-hxy-air: T + + tas_tavg-h2m-hxy-u: TREFHT tauu_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUX] - table: atmos + formula: TAUX + positive: up units: N m-2 tauv_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUY] - table: atmos + formula: TAUY + positive: up units: N m-2 - ts_tavg-u-hxy-u: - grids: [gr] - regrid_method: bilinear - sources: [model_var: TS] - table: atmos - units: K - - ua_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - long_name: Zonal Wind - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - ua_tavg-p19-hxy-air: - grids: [gr] - levels: {name: plev19, units: Pa} - long_name: Zonal Wind - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - uas_tavg-h10m-hxy-u: - grids: [gr] - regrid_method: bilinear - sources: [model_var: U10] - table: atmos - units: m s-1 - - va_tavg-al-hxy-u: - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - long_name: Meridional Wind - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - va_tavg-p19-hxy-air: - grids: [gr] - levels: {name: plev19, units: Pa} - long_name: Meridional Wind - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - vas_tavg-h10m-hxy-u: - grids: [gr] - regrid_method: bilinear - sources: [model_var: VBOT] - table: atmos - units: m s-1 - - wap_tavg-p19-hxy-air: - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: OMEGA] - table: atmos - units: Pa s-1 - - zg_tavg-p19-hxy-air: - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m + ts_tavg-u-hxy-u: TS + + ua_tavg-al-hxy-u: U + + ua_tavg-p19-hxy-air: U + + uas_tavg-h10m-hxy-u: U10 + + va_tavg-al-hxy-u: V + + va_tavg-p19-hxy-air: V + + vas_tavg-h10m-hxy-u: VBOT + + wap_tavg-p19-hxy-air: OMEGA + + zg_tavg-p19-hxy-air: Z3 diff --git a/data/cesm_to_cmip7_land.yaml b/data/cesm_to_cmip7_land.yaml index 4fc0da9a..e245df63 100644 --- a/data/cesm_to_cmip7_land.yaml +++ b/data/cesm_to_cmip7_land.yaml @@ -1,2464 +1,385 @@ -dataset_overrides: {institution_id: NCAR, nominal_resolution: 100 km, source_id: CESM3} +grids: [gr] variables: - albc_tavg-u-hxy-veg: - cell_methods: 'area: time: mean where vegetation (weighted by canopy area and - by downwelling shortwave radiation at the surface)' - grids: [gr] - long_name: Canopy Albedo - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: canopy_albedo - table: land - units: '1' - - areacellg_ti-u-hxy-u: - cell_methods: 'area: sum' - grids: [gr] - long_name: Grid-Cell Area for Ice Sheet Variables - regrid_method: conservative - sources: [model_var: area] - standard_name: cell_area - table: land - units: m2 - - areacellr_ti-u-hxy-u: - cell_methods: 'area: sum' - grids: [gr] - long_name: Grid-Cell Area for River Model Variables - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: cell_area - table: land - units: m2 - - baresoilFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data(PCT_NAT_PFT[:,0,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], - time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Bare Soil Percentage Area Coverage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - burntFractionAll_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: chunits(burntFraction(FAREA_BURNED),units='%') - grids: [gr] - long_name: Percentage of Entire Grid Cell That Is Covered by Burnt Vegetation - (All Classes) - regrid_method: conservative - sources: [model_var: FAREA_BURNED] - standard_name: area_fraction - table: land - units: '%' - - c13Land_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_TOTECOSYSC, units='g/m^2') - grids: [gr] - long_name: Mass of 13C in All Terrestrial Carbon Pools - regrid_method: conservative - sources: [model_var: C13_TOTECOSYSC] - standard_name: mass_content_of_13C_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products - table: land - units: kg m-2 + areacellg_ti-u-hxy-u: area - c13Litter_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_TOTLITC, units='g/m^2') - grids: [gr] - long_name: Mass of 13C in Litter Pool - regrid_method: conservative - sources: [model_var: C13_TOTLITC] - standard_name: litter_mass_content_of_13C - table: land - units: kg m-2 + baresoilFrac_tavg-u-hxy-u: 'yeartomonth_data(PCT_NAT_PFT[:,0,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - c13Soil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_TOTSOMC, units='g/m^2') - grids: [gr] - long_name: Mass of 13C in Soil Pool - regrid_method: conservative - sources: [model_var: C13_TOTSOMC] - standard_name: soil_mass_content_of_13C - table: land - units: kg m-2 + burntFractionAll_tavg-u-hxy-u: chunits(burntFraction(FAREA_BURNED),units='%') - c13Veg_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_TOTVEGC, units='g/m^2') - grids: [gr] - long_name: Mass of 13C in Vegetation - regrid_method: conservative - sources: [model_var: C13_TOTVEGC] - standard_name: vegetation_mass_content_of_13C - table: land - units: kg m-2 + c13Land_tavg-u-hxy-lnd: chunits(C13_TOTECOSYSC, units='g/m^2') - c14Land_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_TOTECOSYSC, units='g/m^2') - grids: [gr] - long_name: Mass of 14C in All Terrestrial Carbon Pools - regrid_method: conservative - sources: [model_var: C14_TOTECOSYSC] - standard_name: mass_content_of_14C_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products - table: land - units: kg m-2 + c13Litter_tavg-u-hxy-lnd: chunits(C13_TOTLITC, units='g/m^2') - c14Litter_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_TOTLITC, units='g/m^2') - grids: [gr] - long_name: Mass of 14C in Litter Pool - regrid_method: conservative - sources: [model_var: C14_TOTLITC] - standard_name: litter_mass_content_of_14C - table: land - units: kg m-2 + c13Soil_tavg-u-hxy-lnd: chunits(C13_TOTSOMC, units='g/m^2') - c14Soil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_TOTSOMC, units='g/m^2') - grids: [gr] - long_name: Mass of 14C in Soil Pool - regrid_method: conservative - sources: [model_var: C14_TOTSOMC] - standard_name: soil_mass_content_of_14C - table: land - units: kg m-2 + c13Veg_tavg-u-hxy-lnd: chunits(C13_TOTVEGC, units='g/m^2') - c14Veg_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_TOTVEGC, units='g/m^2') - grids: [gr] - long_name: Mass of 14C in Vegetation - regrid_method: conservative - sources: [model_var: C14_TOTVEGC] - standard_name: vegetation_mass_content_of_14C - table: land - units: kg m-2 + c14Land_tavg-u-hxy-lnd: chunits(C14_TOTECOSYSC, units='g/m^2') - c3PftFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data(PCT_NAT_PFT[:,1,:,:]+PCT_NAT_PFT[:,2,:,:]+PCT_NAT_PFT[:,3,:,:]+PCT_NAT_PFT[:,4,:,:]+PCT_NAT_PFT[:,5,:,:]+PCT_NAT_PFT[:,6,:,:]+PCT_NAT_PFT[:,7,:,:]+PCT_NAT_PFT[:,8,:,:]+PCT_NAT_PFT[:,9,:,:]+PCT_NAT_PFT[:,10,:,:]+PCT_NAT_PFT[:,11,:,:]+PCT_NAT_PFT[:,12,:,:]+PCT_NAT_PFT[:,13,:,:], - time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon)+yeartomonth_data(PCT_CFT[:,4,:,:]+PCT_CFT[:,5,:,:]+PCT_CFT[:,8,:,:]+PCT_CFT[:,9,:,:]+PCT_CFT[:,26,:,:]+PCT_CFT[:,27,:,:]+PCT_CFT[:,46,:,:]+PCT_CFT[:,47,:,:]+PCT_CFT[:,62,:,:]+PCT_CFT[:,63,:,:], - time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,1,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Percentage Cover by C3 Plant Functional Type - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT, model_var: PCT_CFT] - standard_name: area_fraction - table: land - units: '%' - - c4PftFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data(PCT_NAT_PFT[:,14,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], - time, lat, lon)+yeartomonth_data(PCT_CFT[:,2,:,:]+PCT_CFT[:,3,:,:]+PCT_CFT[:,52,:,:]+PCT_CFT[:,53,:,:]+PCT_CFT[:,60,:,:]+PCT_CFT[:,61,:,:], - time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,1,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Percentage Cover by C4 Plant Functional Type - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT, model_var: PCT_CFT] - standard_name: area_fraction - table: land - units: '%' - - cGeologicStorage_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: Carbon Mass in Geologic Storage - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: carbon_mass_content_of_geological_storage - table: land - units: kg m-2 + c14Litter_tavg-u-hxy-lnd: chunits(C14_TOTLITC, units='g/m^2') - cLand_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(TOTECOSYSC, units=''g/m^2'') #clm2.h0' - grids: [gr] - long_name: Total Carbon in All Terrestrial Carbon Pools - regrid_method: conservative - sources: [model_var: TOTECOSYSC] - standard_name: mass_content_of_carbon_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products - table: land - units: kg m-2 + c14Soil_tavg-u-hxy-lnd: chunits(C14_TOTSOMC, units='g/m^2') - cLeaf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LEAFC, units='g m-2') - grids: [gr] - long_name: Carbon Mass in Leaves - regrid_method: conservative - sources: [model_var: LEAFC] - standard_name: leaf_mass_content_of_carbon - table: land - units: kg m-2 + c14Veg_tavg-u-hxy-lnd: chunits(C14_TOTVEGC, units='g/m^2') - cLitterCwd_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(CWDC, units='g/m^2') - grids: [gr] - long_name: Carbon Mass in Coarse Woody Debris - regrid_method: conservative - sources: [model_var: CWDC] - standard_name: wood_debris_mass_content_of_carbon - table: land - units: kg m-2 + c3PftFrac_tavg-u-hxy-u: 'yeartomonth_data(PCT_NAT_PFT[:,1,:,:]+PCT_NAT_PFT[:,2,:,:]+PCT_NAT_PFT[:,3,:,:]+PCT_NAT_PFT[:,4,:,:]+PCT_NAT_PFT[:,5,:,:]+PCT_NAT_PFT[:,6,:,:]+PCT_NAT_PFT[:,7,:,:]+PCT_NAT_PFT[:,8,:,:]+PCT_NAT_PFT[:,9,:,:]+PCT_NAT_PFT[:,10,:,:]+PCT_NAT_PFT[:,11,:,:]+PCT_NAT_PFT[:,12,:,:]+PCT_NAT_PFT[:,13,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon)+yeartomonth_data(PCT_CFT[:,4,:,:]+PCT_CFT[:,5,:,:]+PCT_CFT[:,8,:,:]+PCT_CFT[:,9,:,:]+PCT_CFT[:,26,:,:]+PCT_CFT[:,27,:,:]+PCT_CFT[:,46,:,:]+PCT_CFT[:,47,:,:]+PCT_CFT[:,62,:,:]+PCT_CFT[:,63,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,1,:,:], time, lat, lon) #clm2.h3' - cLitterLut_tpt-u-hxy-multi: - cell_methods: 'area: mean where sector time: point' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(TOTLITC,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g/m^2'') #clm2.h4' - grids: [gr] - long_name: Carbon in Above and Below-Ground Litter Pools on Land-Use Tiles - regrid_method: conservative - sources: [model_var: TOTLITC] - standard_name: litter_mass_content_of_carbon - table: land - units: kg m-2 + c4PftFrac_tavg-u-hxy-u: 'yeartomonth_data(PCT_NAT_PFT[:,14,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon)+yeartomonth_data(PCT_CFT[:,2,:,:]+PCT_CFT[:,3,:,:]+PCT_CFT[:,52,:,:]+PCT_CFT[:,53,:,:]+PCT_CFT[:,60,:,:]+PCT_CFT[:,61,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,1,:,:], time, lat, lon) #clm2.h3' - cLitterSubSurf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Carbon Mass in Below-Ground Litter - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: subsurface_litter_mass_content_of_carbon - table: land - units: kg m-2 + cLand_tavg-u-hxy-lnd: 'chunits(TOTECOSYSC, units=''g/m^2'') #clm2.h0' - cLitterSurf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Carbon Mass in Above-Ground Litter - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_litter_mass_content_of_carbon - table: land - units: kg m-2 + cLeaf_tavg-u-hxy-lnd: chunits(LEAFC, units='g m-2') - cLitter_tavg-u-hxy-lnd: - formula: (TOTLITC + CWD_C)/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTLITC, model_var: CWD_C] - table: land - units: kg m-2 + cLitterCwd_tavg-u-hxy-lnd: chunits(CWDC, units='g/m^2') - cOther_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(STORVEGC, units='g/m^2') - grids: [gr] - long_name: Carbon Mass in Vegetation Components Other than Leaves, Stems and Roots - regrid_method: conservative - sources: [model_var: STORVEGC] - standard_name: miscellaneous_living_matter_mass_content_of_carbon - table: land - units: kg m-2 + cLitterLut_tpt-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(TOTLITC,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g/m^2'') #clm2.h4' - cProductLut_tpt-u-hxy-multi: - cell_methods: 'area: mean where sector time: point' - grids: [gr] - long_name: Wood and Agricultural Product Pool Carbon Associated with Land-Use - Tiles - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: carbon_mass_content_of_forestry_and_agricultural_products - table: land - units: kg m-2 + cLitter_tavg-u-hxy-lnd: (TOTLITC + CWD_C)/1000.0 - cProduct_tavg-u-hxy-lnd: - formula: (TOTPRODC + CWD_P)/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTPRODC, model_var: CWD_P] - table: land - units: kg m-2 + cOther_tavg-u-hxy-lnd: chunits(STORVEGC, units='g/m^2') - cRoot_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: '(FROOTC+LIVECROOTC+DEADCROOTC)/1000.chunits(FROOTC+LIVECROOTC+DEADCROOTC, - units=''g m-2'') #clm2.h0' - grids: [gr] - long_name: Carbon Mass in Roots - regrid_method: conservative - sources: [model_var: FROOTC, model_var: LIVECROOTC, model_var: DEADCROOTC] - standard_name: root_mass_content_of_carbon - table: land - units: kg m-2 + cProduct_tavg-u-hxy-lnd: (TOTPRODC + CWD_P)/1000.0 - cSoilLut_tpt-u-hxy-multi: - cell_methods: 'area: mean where sector time: point' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(TOTSOMC,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g/m^2'') #clm2.h4' - grids: [gr] - long_name: Carbon in Soil Pool on Land-Use Tiles - regrid_method: conservative - sources: [model_var: TOTSOMC] - standard_name: soil_mass_content_of_carbon - table: land - units: kg m-2 + cRoot_tavg-u-hxy-lnd: '(FROOTC+LIVECROOTC+DEADCROOTC)/1000.chunits(FROOTC+LIVECROOTC+DEADCROOTC, units=''g m-2'') #clm2.h0' - cSoilPools_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(get_soilpools(SOIL1C,SOIL2C,SOIL3C,soilpools), units=''g/m^2'') #clm2.h0' - grids: [gr] - long_name: Carbon Mass in Each Model Soil Pool (Summed over Vertical Levels) - regrid_method: conservative - sources: [{model_var: 'SOIL1C, SOIL2C, SOIL3C, soilpools)'}] - standard_name: soil_mass_content_of_carbon - table: land - units: kg m-2 + cSoilLut_tpt-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(TOTSOMC,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g/m^2'') #clm2.h4' - cSoil_tavg-d100cm-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(TOTSOMC_1m, units=''g/m^2'') #clm2.h0' - grids: [gr] - long_name: Carbon Mass in Soil Pool Above 1m Depth - regrid_method: conservative - sources: [model_var: TOTSOMC_1m] - standard_name: carbon_mass_content_of_soil_layer - table: land - units: kg m-2 + cSoilPools_tavg-u-hxy-lnd: 'chunits(get_soilpools(SOIL1C,SOIL2C,SOIL3C,soilpools), units=''g/m^2'') #clm2.h0' - cSoil_tavg-sl-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(yeartomonth_data3D(SOIL1C_vr, time, lat, lon,levsoi)+yeartomonth_data3D(SOIL2C_vr, - time, lat, lon,levsoi)+yeartomonth_data3D(SOIL3C_vr, time, lat, lon,levsoi), - units=''g/m^2'') #clm2.h3' - grids: [gr] - long_name: Carbon Mass in Each Model Soil Level (Summed over All Soil Carbon Pools - in That Level) - regrid_method: conservative - sources: [model_var: TOTSOMC] - standard_name: carbon_mass_content_of_soil_layer - table: land - units: kg m-2 + cSoil_tavg-d100cm-hxy-lnd: 'chunits(TOTSOMC_1m, units=''g/m^2'') #clm2.h0' - cSoil_tavg-u-hxy-lnd: - formula: (SOIL1C + SOIL2C + SOIL3C)/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: SOIL1C, model_var: SOIL2C, model_var: SOIL3C] - table: land - units: kg m-2 + cSoil_tavg-sl-hxy-lnd: 'chunits(yeartomonth_data3D(SOIL1C_vr, time, lat, lon,levsoi)+yeartomonth_data3D(SOIL2C_vr, time, lat, lon,levsoi)+yeartomonth_data3D(SOIL3C_vr, time, lat, lon,levsoi), units=''g/m^2'') #clm2.h3' - cStem_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LIVESTEMC + DEADSTEMC, units='g/m^2') - grids: [gr] - long_name: Carbon Mass in Stem - regrid_method: conservative - sources: [model_var: LIVESTEMC, model_var: DEADSTEMC] - standard_name: stem_mass_content_of_carbon - table: land - units: kg m-2 + cSoil_tavg-u-hxy-lnd: (SOIL1C + SOIL2C + SOIL3C)/1000.0 - cVegLut_tpt-u-hxy-multi: - cell_methods: 'area: mean where sector time: point' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(TOTVEGC,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g/m^2'') #clm2.h4' - grids: [gr] - long_name: Carbon in Vegetation on Land-Use Tiles - regrid_method: conservative - sources: [model_var: TOTVEGC] - standard_name: vegetation_carbon_content - table: land - units: kg m-2 + cStem_tavg-u-hxy-lnd: chunits(LIVESTEMC + DEADSTEMC, units='g/m^2') - cVeg_tavg-u-hxy-lnd: - formula: (TOTVEGC)/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTVEGC] - table: land - units: kg m-2 + cVegLut_tpt-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(TOTVEGC,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g/m^2'') #clm2.h4' - cVeg_tavg-u-hxy-ng: - cell_methods: 'area: time: mean where natural_grasses (mask=grassFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(TOTVEGC,''grass'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g/m^2'') #clm2.h1' - grids: [gr] - long_name: Carbon Mass in Vegetation on Grass Tiles - regrid_method: conservative - sources: [model_var: TOTVEGC] - standard_name: vegetation_carbon_content - table: land - units: kg m-2 + cVeg_tavg-u-hxy-lnd: (TOTVEGC)/1000.0 - cVeg_tavg-u-hxy-shb: - cell_methods: 'area: time: mean where shrubs (mask=shrubFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(TOTVEGC,''shrub'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g/m^2'') #clm2.h2' - grids: [gr] - long_name: Carbon Mass in Vegetation on Shrub Tiles - regrid_method: conservative - sources: [model_var: TOTVEGC] - standard_name: vegetation_carbon_content - table: land - units: kg m-2 + cVeg_tavg-u-hxy-ng: 'chunits(CLM_pft_to_CMIP6_vegtype(TOTVEGC,''grass'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g/m^2'') #clm2.h1' - cVeg_tavg-u-hxy-tree: - cell_methods: 'area: time: mean where trees (mask=treeFrac)' - formula: chunits(CLM_pft_to_CMIP6_vegtype(TOTVEGC,'tree',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units='g/m^2') - grids: [gr] - long_name: Carbon Mass in Vegetation on Tree Tiles - regrid_method: conservative - sources: [model_var: TOTVEGC] - standard_name: vegetation_carbon_content - table: land - units: kg m-2 + cVeg_tavg-u-hxy-shb: 'chunits(CLM_pft_to_CMIP6_vegtype(TOTVEGC,''shrub'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g/m^2'') #clm2.h2' - cnc_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: Canopy Covered Area Percentage - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: vegetation_area_fraction - table: land - units: '%' + cVeg_tavg-u-hxy-tree: chunits(CLM_pft_to_CMIP6_vegtype(TOTVEGC,'tree',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units='g/m^2') cropFracC3_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: CROP_C3_FRAC] - table: land + formula: CROP_C3_FRAC units: '1' cropFracC4_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: CROP_C4_FRAC] - table: land + formula: CROP_C4_FRAC units: '1' - cropFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: PCT_LANDUNIT[:,1,:,:] - grids: [gr] - long_name: Percentage Crop Cover - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - dcw_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: DCW] - table: land - units: kg m-2 + cropFrac_tavg-u-hxy-u: PCT_LANDUNIT[:,1,:,:] - depthl_ti-u-hxy-u: - cell_methods: 'area: mean' - grids: [gr] - long_name: Depth of Lake Below the Surface - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: depth - table: land - units: m - - depthsl_ti-u-hxy-u: - cell_methods: 'area: mean' - grids: [gr] - long_name: Total (Cumulative) Thickness of All Soil Layers - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: depth - table: land - units: m - - dgw_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: DGW] - table: land - units: kg m-2 + dcw_tavg-u-hxy-lnd: DCW - drivw_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: DRIVW] - table: land - units: kg m-2 + dgw_tavg-u-hxy-lnd: DGW - dslw_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: DSLW] - table: land - units: kg m-2 + drivw_tavg-u-hxy-lnd: DRIVW - dsn_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: DSN] - table: land - units: kg m-2 + dslw_tavg-u-hxy-lnd: DSLW - dsw_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: DSW] - table: land - units: kg m-2 + dsn_tavg-u-hxy-lnd: DSN + + dsw_tavg-u-hxy-lnd: DSW esn_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: ESN] - table: land + formula: ESN units: kg m-2 evspsbl_tavg-u-hxy-lnd: - grids: [gr] - long_name: Evaporation over land - regrid_method: conservative - sources: [model_var: QVEGT] - table: land + formula: QVEGT units: kg m-2 s-1 - evspsblpot_tavg-u-hxy-lnd: - grids: [gr] - long_name: Potential Evaporation over Land - regrid_method: conservative - sources: [model_var: QVEGT_POT] - table: land - units: kg m-2 s-1 + evspsblpot_tavg-u-hxy-lnd: QVEGT_POT - evspsblsoi_tavg-u-hxy-lnd: - grids: [gr] - long_name: Water Evaporation from Soil - regrid_method: conservative - sources: [model_var: QSOIL] - table: land - units: kg m-2 s-1 + evspsblsoi_tavg-u-hxy-lnd: QSOIL - evspsblveg_tavg-u-hxy-lnd: - grids: [gr] - long_name: Water Evaporation from Vegetation - regrid_method: conservative - sources: [model_var: QVEGE] - table: land - units: kg m-2 s-1 + evspsblveg_tavg-u-hxy-lnd: QVEGE - fAnthDisturb_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LAND_USE_FLUX-CROPPROD1C_LOSS, units='g m-2 s-1') - grids: [gr] - long_name: Carbon Mass Flux from Vegetation, Litter or Soil Pools into the Atmosphere - Due to any Human Activity [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: LAND_USE_FLUX, model_var: CROPPROD1C_LOSS] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_land_use_or_land_cover_change_excluding_forestry_and_agricultural_products - table: land - units: kg m-2 s-1 + fAnthDisturb_tavg-u-hxy-lnd: chunits(LAND_USE_FLUX-CROPPROD1C_LOSS, units='g m-2 s-1') - fBNF_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(FFIX_TO_SMINN, units='g m-2 s-1')+chunits(NFIX, units='g m-2 - s-1') - grids: [gr] - long_name: Biological Nitrogen Fixation - regrid_method: conservative - sources: [model_var: FFIX_TO_SMINN, model_var: NFIX] - standard_name: tendency_of_soil_and_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation - table: land - units: kg m-2 s-1 + fBNF_tavg-u-hxy-lnd: chunits(FFIX_TO_SMINN, units='g m-2 s-1')+chunits(NFIX, units='g m-2 s-1') - fCLandToOcean_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(SOM_C_LEACHED, units='g m-2 s-1') - grids: [gr] - long_name: Lateral Transfer of Carbon out of Grid Cell That Eventually Goes into - Ocean - regrid_method: conservative - sources: [model_var: SOMC_LEACHED] - standard_name: mass_flux_of_carbon_into_sea_water_from_rivers - table: land - units: kg m-2 s-1 + fCLandToOcean_tavg-u-hxy-lnd: chunits(SOM_C_LEACHED, units='g m-2 s-1') - fDeforestToAtmos_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(DWT_CONV_CFLUX, units='g m-2 s-1') - grids: [gr] - long_name: Deforested Biomass That Goes into Atmosphere as a Result of Anthropogenic - Land-Use Change [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: DWT_CONV_CFLUX] - standard_name: surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change - table: land - units: kg m-2 s-1 + fDeforestToAtmos_tavg-u-hxy-lnd: chunits(DWT_CONV_CFLUX, units='g m-2 s-1') - fDeforestToProduct_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(DWT_WOOD_PRODUCTC_GAIN_PATCH, units=''g m-2 s-1'') #clm2.h0' - grids: [gr] - long_name: Deforested Biomass That Goes into Product Pool as a Result of Anthropogenic - Land-Use Change - regrid_method: conservative - sources: [model_var: DWT_WOOD_PRODUCTC_GAIN_PATCH] - standard_name: carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change - table: land - units: kg m-2 s-1 + fDeforestToProduct_tavg-u-hxy-lnd: 'chunits(DWT_WOOD_PRODUCTC_GAIN_PATCH, units=''g m-2 s-1'') #clm2.h0' - fFireAll_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(COL_FIRE_CLOSS, units=''g m-2 s-1'') #clm2.h0' - grids: [gr] - long_name: Carbon Mass Flux into Atmosphere Due to CO2 Emission from Fire Including - All Sources [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: COL_FIRE_CLOSS] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires - table: land - units: kg m-2 s-1 + fFireAll_tavg-u-hxy-lnd: 'chunits(COL_FIRE_CLOSS, units=''g m-2 s-1'') #clm2.h0' - fFireNat_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Carbon Mass Flux into Atmosphere Due to CO2 Emission from Natural Fire - [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_fires - table: land - units: kg m-2 s-1 + fFire_tavg-u-hxy-lnd: COL_FIRE_CLOSS/1000.0 - fFire_tavg-u-hxy-lnd: - formula: COL_FIRE_CLOSS/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: COL_FIRE_CLOSS] - table: land - units: kg m-2 s-1 + fHarvestToProduct_tavg-u-hxy-lnd: 'chunits(WOOD_HARVESTC, units=''g m-2 s-1'') #clm2.h0' - fHarvestToAtmos_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Harvested Biomass That Goes Straight into Atmosphere as Carbon Mass - Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting - table: land - units: kg m-2 s-1 + fLitterSoil_tavg-u-hxy-lnd: chunits((LITR1C_TO_SOIL1C+LITR2C_TO_SOIL1C+LITR3C_TO_SOIL2C), units='g m-2 s-1') - fHarvestToGeologicStorage_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Harvested Biomass That Goes into Geological Storage - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: mass_flux_of_carbon_from_biomass_into_geological_storage - table: land - units: kg m-2 s-1 + fLuc_tavg-u-hxy-lnd: chunits((DWT_CONV_CFLUX+TOT_WOODPRODC_LOSS), units='g m-2 s-1') - fHarvestToProduct_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(WOOD_HARVESTC, units=''g m-2 s-1'') #clm2.h0' - grids: [gr] - long_name: Harvested Biomass That Goes into Product Pool - regrid_method: conservative - sources: [model_var: WOOD_HARVESTC] - standard_name: mass_flux_of_carbon_into_forestry_and_agricultural_products_due_to_crop_harvesting - table: land - units: kg m-2 s-1 + fLulccAtmLut_tavg-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(DWT_CONV_CFLUX_PATCH,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g m-2 s-1'') #clm2.h2' - fLitterFire_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Carbon Mass Flux from Litter, CWD or any non-Living Pool into Atmosphere - Due to CO2 Emission from All Fire [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_litter_in_fires - table: land - units: kg m-2 s-1 + fN2O_tavg-u-hxy-lnd: F_N2O_DENIT + F_N2O_NIT - fLitterSoil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits((LITR1C_TO_SOIL1C+LITR2C_TO_SOIL1C+LITR3C_TO_SOIL2C), units='g - m-2 s-1') - grids: [gr] - long_name: Total Carbon Mass Flux from Litter to Soil - regrid_method: conservative - sources: [model_var: LITR1C_TO_SOIL1C, model_var: LITR2C_TO_SOIL1C, model_var: LITR3C_TO_SOIL2C] - standard_name: carbon_mass_flux_into_soil_from_litter - table: land - units: kg m-2 s-1 + fNLitterSoil_tavg-u-hxy-lnd: chunits((LITR1N_TO_SOIL1N+LITR2N_TO_SOIL1N+LITR3N_TO_SOIL2N), units='g m-2 s-1') - fLuc_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits((DWT_CONV_CFLUX+TOT_WOODPRODC_LOSS), units='g m-2 s-1') - grids: [gr] - long_name: Net Carbon Mass Flux into Atmosphere Due to Land-Use Change [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: DWT_CONV_CFLUX, model_var: TOT_WOODPRODC_LOSS] - standard_name: surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change - table: land - units: kg m-2 s-1 + fNProduct_tavg-u-hxy-lnd: chunits(TOT_WOODPRODN_LOSS, units='g m-2 s-1') - fLulccAtmLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(DWT_CONV_CFLUX_PATCH,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g m-2 s-1'') #clm2.h2' - grids: [gr] - long_name: Carbon Transferred Directly to Atmosphere Due to any Land-Use or Land-Cover - Change Activities [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: DWT_CONV_CFLUX_PATCH] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_land_use_or_land_cover_change_excluding_forestry_and_agricultural_products - table: land - units: kg m-2 s-1 + fNVegLitter_tavg-u-hxy-lnd: chunits(LITFALL_N, units='g m-2 s-1') - fN2O_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: F_N2O_DENIT + F_N2O_NIT - grids: [gr] - long_name: Total Land N2O Flux - regrid_method: conservative - sources: [model_var: F_N2O_DENIT, model_var: F_N2O_NIT] - standard_name: surface_upward_mass_flux_of_nitrous_oxide_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil - table: land - units: kg m-2 s-1 + fNVegSoil_tavg-u-hxy-lnd: + formula: NVEG_SOIL_CLOSS/1000.0 + positive: up - fNAnthDisturb_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Nitrogen Mass Flux out of Land Due to any Human Activity - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_anthropogenic_emission - table: land - units: kg m-2 s-1 + fNdep_tavg-u-hxy-lnd: chunits(NDEP_TO_SMINN, units='g m-2 s-1') - fNLandToOcean_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Lateral Transfer of Nitrogen out of Grid Cell That Eventually Goes - into Ocean - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_into_sea_from_rivers - table: land - units: kg m-2 s-1 + fNfert_tavg-u-hxy-lnd: chunits(NFERTILIZATION, units='g m-2 s-1') - fNLitterSoil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits((LITR1N_TO_SOIL1N+LITR2N_TO_SOIL1N+LITR3N_TO_SOIL2N), units='g - m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Mass Flux from Litter to Soil - regrid_method: conservative - sources: [model_var: LITR1N_TO_SOIL1N, model_var: LITR2N_TO_SOIL1N, model_var: LITR3N_TO_SOIL2N] - standard_name: nitrogen_mass_flux_into_soil_from_litter - table: land - units: kg m-2 s-1 + fNgasFire_tavg-u-hxy-lnd: chunits(PFT_FIRE_NLOSS,units='g m-2 s-1') - fNOx_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Total Land NOx Flux - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_nox_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil - table: land - units: kg m-2 s-1 + fNgasNonFire_tavg-u-hxy-lnd: chunits(F_N2O_NIT,units='g m-2 s-1') + chunits(F_DENIT,units='g m-2 s-1') - fNProduct_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TOT_WOODPRODN_LOSS, units='g m-2 s-1') - grids: [gr] - long_name: Deforested or Harvested Biomass as a Result of Anthropogenic Land-Use - or Change - regrid_method: conservative - sources: [model_var: TOT_WOODPRODN_LOSS] - standard_name: nitrogen_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change - table: land - units: kg m-2 s-1 + fNgas_tavg-u-hxy-lnd: chunits(PFT_FIRE_NLOSS,units='g m-2 s-1') + chunits(F_N2O_NIT,units='g m-2 s-1') + chunits(F_DENIT,units='g m-2 s-1') - fNVegLitter_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LITFALL_N, units='g m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Mass Flux from Vegetation to Litter - regrid_method: conservative - sources: [model_var: LITFALL_N] - standard_name: nitrogen_mass_flux_into_litter_from_vegetation - table: land - units: kg m-2 s-1 + fNleach_tavg-u-hxy-lnd: chunits(SMIN_NO3_LEACHED,units='g m-2 s-1') + chunits(SMIN_NO3_RUNOFF,units='g m-2 s-1') - fNVegSoil_tavg-u-hxy-lnd: - formula: NVEG_SOIL_CLOSS/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: NVEG_SOIL_CLOSS] - table: land - units: kg m-2 s-1 + fNloss_tavg-u-hxy-lnd: chunits((PFT_FIRE_NLOSS + F_N2O_NIT + F_DENIT + SMIN_NO3_LEACHED + SMIN_NO3_RUNOFF), units='g m-2 s-1') - fNdep_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(NDEP_TO_SMINN, units='g m-2 s-1') - grids: [gr] - long_name: Dry and Wet Deposition of Reactive Nitrogen onto Land - regrid_method: conservative - sources: [model_var: NDEP_TO_SMINN] - standard_name: minus_tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_deposition - table: land - units: kg m-2 s-1 + fNnetmin_tavg-u-hxy-lnd: chunits(ACTUAL_IMMOB, units='g m-2 s-1')+chunits(NET_NMIN, units='g m-2 s-1') - fNfert_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(NFERTILIZATION, units='g m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Added for Cropland Fertilisation (Artificial and Manure) - regrid_method: conservative - sources: [model_var: NFERTILIZATION] - standard_name: tendency_of_soil_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fertilization - table: land - units: kg m-2 s-1 + fNup_tavg-u-hxy-lnd: chunits(NUPTAKE, units='g m-2 s-1') - fNgasFire_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(PFT_FIRE_NLOSS,units='g m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Lost to the Atmosphere (Including NHx, NOx, N2O, N2) - from Fire - regrid_method: conservative - sources: [model_var: PFT_FIRE_NLOSS] - standard_name: surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_emission_from_fires - table: land - units: kg m-2 s-1 + fProductDecomp_tavg-u-hxy-lnd: chunits(TOT_WOODPRODC_LOSS, units='g m-2 s-1')+chunits(CROPPROD1C_LOSS, units='g m-2 s-1') - fNgasNonFire_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(F_N2O_NIT,units='g m-2 s-1') + chunits(F_DENIT,units='g m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Lost to the Atmosphere (Including NHx, NOx, N2O, N2) - from All Processes Except Fire - regrid_method: conservative - sources: [model_var: F_N2O_NIT, model_var: F_DENIT] - standard_name: surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_all_land_processes_excluding_fires - table: land - units: kg m-2 s-1 + fVegFire_tavg-u-hxy-lnd: chunits(PFT_FIRE_CLOSS, units='g m-2 s-1') - fNgas_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(PFT_FIRE_NLOSS,units='g m-2 s-1') + chunits(F_N2O_NIT,units='g - m-2 s-1') + chunits(F_DENIT,units='g m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Lost to the Atmosphere (Sum of NHx, NOx, N2O, N2) - regrid_method: conservative - sources: [model_var: PFT_FIRE_NLOSS, model_var: F_N2O_NIT, model_var: F_DENIT] - standard_name: surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen - table: land - units: kg m-2 s-1 + fVegLitterMortality_tavg-u-hxy-lnd: SUM(H928) - fNleach_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(SMIN_NO3_LEACHED,units='g m-2 s-1') + chunits(SMIN_NO3_RUNOFF,units='g - m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Loss to Leaching or Runoff (Sum of Ammonium, Nitrite - and Nitrate) - regrid_method: conservative - sources: [model_var: SMIN_NO3_LEACHED, model_var: SMIN_NO3_RUNOFF] - standard_name: mass_flux_of_carbon_out_of_soil_due_to_leaching_and_runoff - table: land - units: kg m-2 s-1 + fVegLitterSenescence_tavg-u-hxy-lnd: chunits(LEAFC_TO_LITTER + FROOTC_TO_LITTER, units='g m-2 s-1') - fNloss_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits((PFT_FIRE_NLOSS + F_N2O_NIT + F_DENIT + SMIN_NO3_LEACHED + SMIN_NO3_RUNOFF), - units='g m-2 s-1') - grids: [gr] - long_name: Total Nitrogen Lost (Including NHx, NOx, N2O, N2 and Leaching) - regrid_method: conservative - sources: [model_var: PFT_FIRE_NLOSS, model_var: F_N2O_NIT, model_var: F_DENIT, - model_var: SMIN_NO3_LEACHED, model_var: SMIN_NO3_RUNOFF] - standard_name: surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil - table: land - units: kg m-2 s-1 + fVegLitter_tavg-u-hxy-lnd: chunits(LITFALL, units='g m-2 s-1') - fNnetmin_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(ACTUAL_IMMOB, units='g m-2 s-1')+chunits(NET_NMIN, units='g m-2 - s-1') - grids: [gr] - long_name: Net Nitrogen Release from Soil and Litter as the Outcome of Nitrogen - Immobilisation and Gross Mineralisation - regrid_method: conservative - sources: [model_var: ACTUAL_IMMOB, model_var: NET_NMIN] - standard_name: mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_litter_and_soil_due_to_immobilisation_and_remineralization - table: land - units: kg m-2 s-1 + fracLut_tpt-u-hxy-u: reduce_lu(PCT_LANDUNIT,landUse) - fNup_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(NUPTAKE, units='g m-2 s-1') - grids: [gr] - long_name: Total Plant Nitrogen Uptake (Sum of Ammonium and Nitrate) Irrespective - of the Source of Nitrogen - regrid_method: conservative - sources: [model_var: NUPTAKE] - standard_name: tendency_of_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation - table: land - units: kg m-2 s-1 + gppLut_tavg-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(GPP,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g m-2 s-1'') #clm2.h2' - fProductDecomp_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TOT_WOODPRODC_LOSS, units='g m-2 s-1')+chunits(CROPPROD1C_LOSS, - units='g m-2 s-1') - grids: [gr] - long_name: Decomposition out of Product Pools to CO2 in Atmosphere as Carbon Mass - Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: TOT_WOODPRODC_LOSS, model_var: CROPPROD1C_LOSS] - standard_name: tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products - table: land - units: kg m-2 s-1 + gppVgt_tavg-u-hxy-multi: chunits(GPP, units='g m-2 s-1') - fVegFire_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(PFT_FIRE_CLOSS, units='g m-2 s-1') - grids: [gr] - long_name: Carbon Mass Flux from Vegetation into Atmosphere Due to CO2 Emission - from All Fire [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: PFT_FIRE_CLOS] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_vegetation_in_fires - table: land - units: kg m-2 s-1 + gpp_tavg-u-hxy-lnd: GPP/1000.0 - fVegLitterMortality_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: SUM(H928) - grids: [gr] - long_name: Total Carbon Mass Flux from Vegetation to Litter as a Result of Mortality - regrid_method: conservative - sources: [model_var: M_LEAFC_TO_LITTER, model_var: M_LEAFC_STORAGE_TO_LITTER, - model_var: M_LEAFC_XFER_TO_LITTER, model_var: M_FROOTC_TO_LITTER, model_var: M_FROOTC_STORAGE_TO_LITTER, - model_var: M_FROOTC_XFER_TO_LITTER, model_var: M_LIVESTEMC_TO_LITTER, { - model_var: M_LIVESTEMC_STORAGE_TO_LITTER}, model_var: M_LIVESTEMC_XFER_TO_LITTER, - model_var: M_DEADSTEMC_TO_LITTER, model_var: M_DEADSTEMC_STORAGE_TO_LITTER, - model_var: M_DEADSTEMC_XFER_TO_LITTER, model_var: M_LIVECROOTC_TO_LITTER, - model_var: M_LIVECROOTC_STORAGE_TO_LITTER, model_var: M_LIVECROOTC_XFER_TO_LITTER, - model_var: M_DEADCROOTC_TO_LITTER, model_var: M_DEADCROOTC_STORAGE_TO_LITTER, - model_var: M_DEADCROOTC_XFER_TO_LITTER, model_var: M_GRESP_STORAGE_TO_LITTER, - model_var: M_GRESP_XFER_TO_LITTER, model_var: M_LEAFC_TO_LITTER_FIRE, { - model_var: M_LEAFC_STORAGE_TO_LITTER_FIRE}, model_var: M_LEAFC_XFER_TO_LITTER_FIRE, - model_var: M_LIVESTEMC_TO_LITTER_FIRE, model_var: M_LIVESTEMC_STORAGE_TO_LITTER_FIRE, - model_var: M_LIVESTEMC_XFER_TO_LITTER_FIRE, model_var: M_DEADSTEMC_TO_LITTER_FIRE, - model_var: M_DEADSTEMC_STORAGE_TO_LITTER_FIRE, model_var: M_DEADSTEMC_XFER_TO_LITTER_FIRE, - model_var: M_FROOTC_TO_LITTER_FIRE, model_var: M_FROOTC_STORAGE_TO_LITTER_FIRE, - model_var: M_FROOTC_XFER_TO_LITTER_FIRE, model_var: M_LIVECROOTC_TO_LITTER_FIRE, - model_var: M_LIVECROOTC_STORAGE_TO_LITTER_FIRE, model_var: M_LIVECROOTC_XFER_TO_LITTER_FIRE, - model_var: M_DEADCROOTC_TO_LITTER_FIRE, model_var: M_DEADCROOTC_STORAGE_TO_LITTER_FIRE, - model_var: M_DEADCROOTC_XFER_TO_LITTER_FIRE, model_var: M_GRESP_STORAGE_TO_LITTER_FIRE, - model_var: M_GRESP_XFER_TO_LITTER_FIRE] - standard_name: mass_flux_of_carbon_into_litter_from_vegetation_due_to_mortality - table: land - units: kg m-2 s-1 + gpp_tavg-u-hxy-ng: 'chunits(CLM_pft_to_CMIP6_vegtype(GPP,''grass'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - fVegLitterSenescence_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LEAFC_TO_LITTER + FROOTC_TO_LITTER, units='g m-2 s-1') - grids: [gr] - long_name: Total Carbon Mass Flux from Vegetation to Litter as a Result of Leaf, - Branch, and Root Senescence - regrid_method: conservative - sources: [model_var: LEAFC_TO_LITTER, model_var: FROOTC_TO_LITTER] - standard_name: mass_flux_of_carbon_into_litter_from_vegetation_due_to_senescence - table: land - units: kg m-2 s-1 + gpp_tavg-u-hxy-shb: 'chunits(CLM_pft_to_CMIP6_vegtype(GPP,''shrub'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - fVegLitter_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LITFALL, units='g m-2 s-1') - grids: [gr] - long_name: Total Carbon Mass Flux from Vegetation to Litter - regrid_method: conservative - sources: [model_var: LITFALL] - standard_name: mass_flux_of_carbon_into_litter_from_vegetation - table: land - units: kg m-2 s-1 + gpp_tavg-u-hxy-tree: 'chunits(CLM_pft_to_CMIP6_vegtype(GPP,''tree'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - fVegSoilMortality_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Total Carbon Mass Flux from Vegetation to Soil as a Result of Mortality - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: mass_flux_of_carbon_into_soil_from_vegetation_due_to_mortality - table: land - units: kg m-2 s-1 + gppc13_tavg-u-hxy-lnd: chunits(C13_GPP, units='g m-2 s-1') - fVegSoilSenescence_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Total Carbon Mass Flux from Vegetation to Soil as a Result of Leaf, - Branch, and Root Senescence - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: mass_flux_of_carbon_into_soil_from_vegetation_due_to_senescence - table: land - units: kg m-2 s-1 + gppc14_tavg-u-hxy-lnd: chunits(C14_GPP, units='g m-2 s-1') - fVegSoil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Total Carbon Mass Flux from Vegetation Directly to Soil - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: carbon_mass_flux_into_soil_from_vegetation_excluding_litter - table: land - units: kg m-2 s-1 - fracInLut_tsum-u-hxy-lnd: - cell_methods: 'area: mean where land over all_area_types time: sum' - grids: [gr] - long_name: Annual Gross Percentage That Was Transferred into This Tile from Other - Land-Use Tiles - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: area_fraction - table: land - units: '%' - - fracLut_tpt-u-hxy-u: - cell_methods: 'area: mean time: point' - formula: reduce_lu(PCT_LANDUNIT,landUse) - grids: [gr] - long_name: Percentage of Grid Cell for Each Land-Use Tile - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - fracOutLut_tsum-u-hxy-lnd: - cell_methods: 'area: mean where land over all_area_types time: sum' - grids: [gr] - long_name: Annual Gross Percentage of Land-Use Tile That Was Transferred into - Other Land-Use Tiles - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: area_fraction - table: land - units: '%' - - gppLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(GPP,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g m-2 s-1'') #clm2.h2' - grids: [gr] - long_name: Gross Primary Production on Land-Use Tile as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: GPP, model_var: landunit, model_var: level] - standard_name: gross_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + grassFracC3_tavg-u-hxy-u: 'yeartomonth_data((PCT_NAT_PFT[:,12,:,:]+PCT_NAT_PFT[:,13,:,:]), time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - gppVgt_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: chunits(GPP, units='g m-2 s-1') - grids: [gr] - long_name: Gross Primary Production on Vegetation type as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: GPP, model_var: pft, model_var: level] - standard_name: gross_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + grassFracC4_tavg-u-hxy-u: 'yeartomonth_data(PCT_NAT_PFT[:,14,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - gpp_tavg-u-hxy-lnd: - formula: GPP/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: GPP] - table: land - units: kg m-2 s-1 + grassFrac_tavg-u-hxy-u: 'yeartomonth_data((PCT_NAT_PFT[:,12,:,:]+PCT_NAT_PFT[:,13,:,:]+PCT_NAT_PFT[:,14,:,:]), time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon)) #clm2.h3' - gpp_tavg-u-hxy-ng: - cell_methods: 'area: time: mean where natural_grasses (mask=grassFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(GPP,''grass'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Gross Primary Production on Grass Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: GPP, model_var: pft, model_var: level] - standard_name: gross_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + hfdsl_tavg-u-hxy-lnd: FGR12 - gpp_tavg-u-hxy-shb: - cell_methods: 'area: time: mean where shrubs (mask=shrubFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(GPP,''shrub'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Gross Primary Production on Shrub Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: GPP, model_var: pft, model_var: level] - standard_name: gross_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + hflsLut_tavg-u-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(EFLX_LH_TOT,"all",time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - gpp_tavg-u-hxy-tree: - cell_methods: 'area: time: mean where trees (mask=treeFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(GPP,''tree'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Gross Primary Production on Tree Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: GPP, model_var: pft, model_var: level] - standard_name: gross_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + hfssLut_tavg-u-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(FSH,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - gppc13_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_GPP, units='g m-2 s-1') - grids: [gr] - long_name: Carbon-13 Mass Flux out of Atmosphere Due to Gross Primary Production - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C13_GPP] - standard_name: gross_primary_productivity_of_biomass_expressed_as_13C - table: land - units: kg m-2 s-1 + irrLut_tavg-u-hxy-multi: chunits(CLM_landunit_to_CMIP6_Lut(QIRRIG,'all',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units='kg m-2 s-1') - gppc14_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_GPP, units='g m-2 s-1') - grids: [gr] - long_name: Carbon-14 Mass Flux out of Atmosphere Due to Gross Primary Production - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C14_GPP] - standard_name: gross_primary_productivity_of_biomass_expressed_as_14C - table: land - units: kg m-2 s-1 + laiLut_tavg-u-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(TLAI,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grassFracC3_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data((PCT_NAT_PFT[:,12,:,:]+PCT_NAT_PFT[:,13,:,:]), time, - lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: C3 Natural Grass Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - grassFracC4_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data(PCT_NAT_PFT[:,14,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], - time, lat, lon) #clm2.h3' - grids: [gr] - long_name: C4 Natural Grass Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - grassFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data((PCT_NAT_PFT[:,12,:,:]+PCT_NAT_PFT[:,13,:,:]+PCT_NAT_PFT[:,14,:,:]), - time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon)) #clm2.h3' - grids: [gr] - long_name: Natural Grass Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - hfdsl_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Ground heat flux at 3hr - regrid_method: conservative - sources: [model_var: FGR12] - standard_name: surface_downward_heat_flux_in_air - table: land - units: W m-2 - - hflsLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(EFLX_LH_TOT,"all",time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Latent Heat Flux on Land-Use Tile - regrid_method: conservative - sources: [model_var: EFLX_LH_TOT] - standard_name: surface_upward_latent_heat_flux - table: land - units: W m-2 - - hfssLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(FSH,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Sensible Heat Flux on Land-Use Tile - regrid_method: conservative - sources: [model_var: FSH] - standard_name: surface_upward_sensible_heat_flux - table: land - units: W m-2 - - irrLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: chunits(CLM_landunit_to_CMIP6_Lut(QIRRIG,'all',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units='kg m-2 s-1') - grids: [gr] - long_name: Irrigation Flux Including any Irrigation for Crops, Trees, Pasture, - or Urban Lawns - regrid_method: conservative - sources: [model_var: QIRRIG] - standard_name: surface_downward_mass_flux_of_water_due_to_irrigation - table: land - units: kg m-2 s-1 + lai_tavg-u-hxy-lnd: TLAI - laiLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(TLAI,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Leaf Area Index on Land-Use Tile - regrid_method: conservative - sources: [model_var: TLAI, model_var: landunit, model_var: level] - standard_name: leaf_area_index - table: land - units: '1' + mrro_tavg-u-hxy-lnd: QRUNOFF - laiVgt_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - grids: [gr] - long_name: Leaf Area Index on Vegetation type - regrid_method: conservative - sources: [model_var: TLAI, model_var: pft, model_var: level] - standard_name: leaf_area_index - table: land - units: '1' + mrrob_tavg-u-hxy-lnd: QBURDRUNOFF - lai_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: TLAI] - table: land - units: '1' + mrros_tavg-u-hxy-lnd: QOVER - landCoverFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: Percentage of Area by Vegetation or Land-Cover Category - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: area_fraction - table: land - units: '%' - - mrro_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: QRUNOFF] - table: land - units: kg m-2 s-1 + mrsfl_tavg-sl-hxy-lnd: SOILMOIST - mrrob_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: QBURDRUNOFF] - table: land - units: kg m-2 s-1 + mrsll_tavg-sl-hxy-lnd: SOILLIQ - mrros_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: QOVER] - table: land - units: kg m-2 s-1 + mrso_tavg-u-hxy-lnd: verticalsum(SOILICE + SOILLIQ, capped_at=5000) - mrsfl_tavg-sl-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILMOIST] - table: land - units: kg m-2 + mrsolLut_tavg-d10cm-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(SOILWATER_10CM,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - mrsll_tavg-sl-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILLIQ] - table: land - units: kg m-2 + mrsol_tavg-d10cm-hxy-lnd: SOILWATER_10CM - mrso_tavg-u-hxy-lnd: - formula: verticalsum(SOILICE + SOILLIQ, capped_at=5000) - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILICE, model_var: SOILLIQ] - table: land - units: kg m-2 + mrsol_tavg-sl-hxy-lnd: SOILLIQ + SOILICE - mrsofc_ti-u-hxy-lnd: - cell_methods: 'area: mean where land' - grids: [gr] - long_name: Capacity of Soil to Store Water (Field Capacity) - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: soil_moisture_content_at_field_capacity - table: land - units: kg m-2 + mrsol_tpt-d10cm-hxy-lnd: SOILWATER_10CM - mrsolLut_tavg-d10cm-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(SOILWATER_10CM,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Moisture in Upper Portion of Soil Column of Land-Use Tile - regrid_method: conservative - sources: [model_var: SOILWATER_10CM] - standard_name: mass_content_of_water_in_soil_layer - table: land - units: kg m-2 + mrtws_tavg-u-hxy-lnd: chunits(TWS, units='kg m-2') - mrsol_tavg-d100cm-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Soil moisture in the top 1 m of the soil column - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: mass_content_of_water_in_soil_layer - table: land - units: kg m-2 + nLand_tavg-u-hxy-lnd: chunits(TOTECOSYSN, units='g m-2') - mrsol_tavg-d10cm-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILWATER_10CM] - table: land - units: kg m-2 + nLeaf_tavg-u-hxy-lnd: chunits(LEAFN, units='g m-2') - mrsol_tavg-sl-hxy-lnd: - formula: SOILLIQ + SOILICE - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILLIQ, model_var: SOILICE] - table: land - units: kg m-2 + nLitterCwd_tavg-u-hxy-lnd: chunits(CWDN, units='g m-2') - mrsol_tpt-d10cm-hxy-lnd: - cell_methods: 'area: mean where land time: point' - grids: [gr] - long_name: Moisture in Upper Portion of Soil Column - regrid_method: conservative - sources: [model_var: SOILWATER_10CM] - standard_name: mass_content_of_water_in_soil_layer - table: land - units: kg m-2 + nLitter_tavg-u-hxy-lnd: chunits(TOTLITN, units='g m-2') - mrsow_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Total Soil Wetness - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: volume_fraction_of_condensed_water_in_soil_at_field_capacity - table: land - units: '1' + nMineralNH4_tavg-u-hxy-lnd: chunits(SMIN_NH4, units='g m-2') - mrtws_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TWS, units='kg m-2') - grids: [gr] - long_name: Terrestrial Water Storage - regrid_method: conservative - sources: [model_var: TWS] - standard_name: land_water_amount - table: land - units: kg m-2 + nMineralNO3_tavg-u-hxy-lnd: chunits(SMIN_NO3, units='g m-2') - nLand_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TOTECOSYSN, units='g m-2') - grids: [gr] - long_name: Total Nitrogen in All Terrestrial Nitrogen Pools - regrid_method: conservative - sources: [model_var: TOTECOSYSN] - standard_name: mass_content_of_nitrogen_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products - table: land - units: kg m-2 + nMineral_tavg-u-hxy-lnd: chunits(SMINN/1000, units='kg/m^2') - nLeaf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LEAFN, units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Leaves - regrid_method: conservative - sources: [model_var: LEAFN] - standard_name: leaf_mass_content_of_nitrogen - table: land - units: kg m-2 + nProduct_tavg-u-hxy-lnd: chunits(TOT_WOODPRODN, units='g m-2') - nLitterCwd_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(CWDN, units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Coarse Woody Debris - regrid_method: conservative - sources: [model_var: CWDN] - standard_name: wood_debris_mass_content_of_nitrogen - table: land - units: kg m-2 + nRoot_tavg-u-hxy-lnd: chunits(LIVECROOTN, units='g m-2')+chunits(DEADCROOTN, units='g m-2')+chunits(FROOTN, units='g m-2') - nLitterSubSurf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Nitrogen Mass in Below-Ground Litter (non CWD) - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: subsurface_litter_mass_content_of_nitrogen - table: land - units: kg m-2 + nSoil_tavg-u-hxy-lnd: chunits(TOTSOMN, units='g m-2') - nLitterSurf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Nitrogen Mass in Above-Ground Litter (non CWD) - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_litter_mass_content_of_nitrogen - table: land - units: kg m-2 + nStem_tavg-u-hxy-lnd: chunits(DEADSTEMN, units='g m-2')+chunits(LIVESTEMN, units='g m-2') - nLitter_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TOTLITN, units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Litter Pool - regrid_method: conservative - sources: [model_var: TOTLITN] - standard_name: litter_mass_content_of_nitrogen - table: land - units: kg m-2 + nVeg_tavg-u-hxy-lnd: (WOOD_C + LEAF_C + ROOT_C)/1000.0 - nMineralNH4_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(SMIN_NH4, units='g m-2') - grids: [gr] - long_name: Mineral Ammonium in the Soil - regrid_method: conservative - sources: [model_var: SMIN_NH4] - standard_name: soil_mass_content_of_inorganic_ammonium_expressed_as_nitrogen - table: land - units: kg m-2 + nbp_tavg-u-hxy-lnd: NBP/1000.0 - nMineralNO3_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(SMIN_NO3, units='g m-2') - grids: [gr] - long_name: Mineral Nitrate in the Soil - regrid_method: conservative - sources: [model_var: SMIN_NO3] - standard_name: soil_mass_content_of_inorganic_nitrate_expressed_as_nitrogen - table: land - units: kg m-2 + nep_tavg-u-hxy-lnd: chunits(NEE, units='g m-2 s-1') - nMineral_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(SMINN/1000, units='kg/m^2') - grids: [gr] - long_name: Mineral Nitrogen in the Soil - regrid_method: conservative - sources: [model_var: SMINN] - standard_name: soil_mass_content_of_inorganic_nitrogen_expressed_as_nitrogen - table: land - units: kg m-2 + netAtmosLandC13Flux_tavg-u-hxy-lnd: chunits(C13_NBP, units='g m-2 s-1') - nOther_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Nitrogen Mass in Vegetation Components Other than Leaves, Stem and - Root - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: miscellaneous_living_matter_mass_content_of_nitrogen - table: land - units: kg m-2 + netAtmosLandC14Flux_tavg-u-hxy-lnd: chunits(C14_NBP, units='g m-2 s-1') - nProduct_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TOT_WOODPRODN, units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Products of Land-Use Change - regrid_method: conservative - sources: [model_var: TOT_WOODPRODN] - standard_name: nitrogen_mass_content_of_forestry_and_agricultural_products - table: land - units: kg m-2 + nppLeaf_tavg-u-hxy-lnd: chunits(LEAFC_ALLOC, units='g m-2 s-1') - nRoot_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LIVECROOTN, units='g m-2')+chunits(DEADCROOTN, units='g m-2')+chunits(FROOTN, - units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Roots - regrid_method: conservative - sources: [model_var: LIVECROOTN, model_var: DEADCROOTN, model_var: FROOTN] - standard_name: root_mass_content_of_nitrogen - table: land - units: kg m-2 + nppLut_tavg-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(NPP,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g m-2 s-1'') #clm2.h2' - nSoil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(TOTSOMN, units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Soil Pool - regrid_method: conservative - sources: [model_var: TOTSOMN] - standard_name: soil_mass_content_of_nitrogen - table: land - units: kg m-2 + nppRoot_tavg-u-hxy-lnd: chunits(FROOTC_ALLOC, units='g m-2 s-1') - nStem_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(DEADSTEMN, units='g m-2')+chunits(LIVESTEMN, units='g m-2') - grids: [gr] - long_name: Nitrogen Mass in Stem - regrid_method: conservative - sources: [model_var: DEADSTEMN, model_var: LIVESTEMN] - standard_name: stem_mass_content_of_nitrogen - table: land - units: kg m-2 + nppStem_tavg-u-hxy-lnd: chunits(WOODC_ALLOC, units='g m-2 s-1') - nVeg_tavg-u-hxy-lnd: - formula: (WOOD_C + LEAF_C + ROOT_C)/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: WOOD_C, model_var: LEAF_C, model_var: ROOT_C] - table: land - units: kg m-2 + npp_tavg-u-hxy-lnd: NPP/1000.0 - nbpLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - grids: [gr] - long_name: Net Carbon Mass Flux into Land-Use Tile [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes - table: land - units: kg m-2 s-1 + npp_tavg-u-hxy-ng: 'chunits(CLM_pft_to_CMIP6_vegtype(NPP,''grass'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - nbp_tavg-u-hxy-lnd: - formula: NBP/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: NBP] - table: land - units: kg m-2 s-1 + npp_tavg-u-hxy-shb: 'chunits(CLM_pft_to_CMIP6_vegtype(NPP,''shrub'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - nep_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(NEE, units='g m-2 s-1') - grids: [gr] - long_name: Net Carbon Mass Flux out of Atmosphere Due to Net Ecosystem Productivity - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: NEE] - standard_name: surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change - table: land - units: kg m-2 s-1 + npp_tavg-u-hxy-tree: 'chunits(CLM_pft_to_CMIP6_vegtype(NPP,''tree'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - netAtmosLandC13Flux_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_NBP, units='g m-2 s-1') - grids: [gr] - long_name: Net Mass Flux of 13C Between Atmosphere and Land (Positive into Land) - as a Result of All Processes [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C13_NBP] - standard_name: surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_all_land_processes - table: land - units: kg m-2 s-1 + pastureFracC3_tavg-u-hxy-u: + formula: PASTURE_C3_FRAC + units: '1' - netAtmosLandC14Flux_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_NBP, units='g m-2 s-1') - grids: [gr] - long_name: Net Mass Flux of 14C Between Atmosphere and Land (Positive into Land) - as a Result of All Processes [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C14_NBP] - standard_name: surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_all_land_processes - table: land - units: kg m-2 s-1 + pastureFracC4_tavg-u-hxy-u: + formula: PASTURE_C4_FRAC + units: '1' - nppLeaf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LEAFC_ALLOC, units='g m-2 s-1') - grids: [gr] - long_name: Net Primary Production Allocated to Leaves as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: LEAFC_ALLOC] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_leaves - table: land - units: kg m-2 s-1 + prveg_tavg-u-hxy-lnd: QINTR - nppLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(NPP,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g m-2 s-1'') #clm2.h2' - grids: [gr] - long_name: Net Primary Production on Land-Use Tile as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: NPP] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + raLeaf_tavg-u-hxy-lnd: chunits(LEAF_MR, units='g m-2 s-1') - nppOther_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Net Primary Production Allocated to Other Pools (not Leaves Stem or - Roots) as Carbon Mass Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_miscellaneous_living_matter - table: land - units: kg m-2 s-1 + raLut_tavg-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(AR,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g m-2 s-1'') #clm2.h2' - nppRoot_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(FROOTC_ALLOC, units='g m-2 s-1') - grids: [gr] - long_name: Net Primary Production Allocated to Roots as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: FROOTC_ALLOC] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_roots - table: land - units: kg m-2 s-1 + raOther_tavg-u-hxy-lnd: 'chunits(NPP_NUPTAKE, units=''g m-2 s-1'') # included in AR flux Lmon.ra' - nppStem_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(WOODC_ALLOC, units='g m-2 s-1') - grids: [gr] - long_name: Net Primary Production Allocated to Stem as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: WOODC_ALLOC] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_stems - table: land - units: kg m-2 s-1 + raRoot_tavg-u-hxy-lnd: chunits(RR, units='g m-2 s-1') - nppVgt_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - grids: [gr] - long_name: Net Primary Production on Vegetation type as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: NPP, model_var: pft, model_var: level] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + raStem_tavg-u-hxy-lnd: chunits(LIVESTEM_MR + CPOOL_LIVESTEM_GR, units='g m-2 s-1') - npp_tavg-u-hxy-lnd: - formula: NPP/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: NPP] - table: land - units: kg m-2 s-1 + ra_tavg-u-hxy-lnd: AR/1000.0 - npp_tavg-u-hxy-ng: - cell_methods: 'area: time: mean where natural_grasses (mask=grassFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(NPP,''grass'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Net Primary Production on Grass Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: NPP, model_var: pft, model_var: level] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + ra_tavg-u-hxy-ng: 'chunits(CLM_pft_to_CMIP6_vegtype(AR,''grass'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - npp_tavg-u-hxy-shb: - cell_methods: 'area: time: mean where shrubs (mask=shrubFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(NPP,''shrub'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Net Primary Production on Shrub Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: NPP, model_var: pft, model_var: level] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + ra_tavg-u-hxy-shb: 'chunits(CLM_pft_to_CMIP6_vegtype(AR,''shrub'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - npp_tavg-u-hxy-tree: - cell_methods: 'area: time: mean where trees (mask=treeFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(NPP,''tree'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Net Primary Production on Tree Tiles as Carbon Mass Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: NPP, model_var: pft, model_var: level] - standard_name: net_primary_productivity_of_biomass_expressed_as_carbon - table: land - units: kg m-2 s-1 + ra_tavg-u-hxy-tree: 'chunits(CLM_pft_to_CMIP6_vegtype(AR,''tree'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), units=''g m-2 s-1'') #clm2.h1' - pastureFracC3_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: PASTURE_C3_FRAC] - table: land - units: '1' + rac13_tavg-u-hxy-lnd: chunits(C13_AR, units='g m-2 s-1') - pastureFracC4_tavg-u-hxy-u: - grids: [gr] - regrid_method: conservative - sources: [model_var: PASTURE_C4_FRAC] - table: land - units: '1' + rac14_tavg-u-hxy-lnd: chunits(C14_AR, units='g m-2 s-1') - pastureFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: Percentage of Land Which Is Anthropogenic Pasture - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: area_fraction - table: land - units: '%' - - prveg_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: QINTR] - table: land - units: kg m-2 s-1 + residualFrac_tavg-u-hxy-u: 1-PCT_LANDUNIT[:,0,:,:]-PCT_LANDUNIT[:,1,:,:] - qgwr_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Groundwater Recharge from Soil Layer - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: downward_liquid_water_mass_flux_into_groundwater - table: land - units: kg m-2 s-1 + rhLitter_tavg-u-hxy-lnd: chunits(LITTERC_HR, units='g m-2 s-1') - raLeaf_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LEAF_MR, units='g m-2 s-1') - grids: [gr] - long_name: Total Respiration from Leaves as Carbon Mass Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: LEAF_MR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_leaves - table: land - units: kg m-2 s-1 + rhLut_tavg-u-hxy-multi: 'chunits(CLM_landunit_to_CMIP6_Lut(HR,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), units=''g m-2 s-1'') #clm2.h2' - raLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(AR,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g m-2 s-1'') #clm2.h2' - grids: [gr] - long_name: Autotrophic Respiration on Land-Use Tile as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: AR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration - table: land - units: kg m-2 s-1 + rhSoil_tavg-u-hxy-lnd: chunits(SOILC_HR, units='g m-2 s-1') - raOther_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(NPP_NUPTAKE, units=''g m-2 s-1'') # included in AR flux Lmon.ra' - grids: [gr] - long_name: Total Respiration from Other Pools (not Leaves Stem or Roots) as Carbon - Mass Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: NPP_NUPTAKE] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_miscellaneous_living_matter - table: land - units: kg m-2 s-1 + rh_tavg-u-hxy-lnd: HR/1000.0 - raRoot_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(RR, units='g m-2 s-1') - grids: [gr] - long_name: Total Respiration from Roots as Carbon Mass Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: RR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_roots - table: land - units: kg m-2 s-1 + rhc13_tavg-u-hxy-lnd: chunits(C13_HR, units='g m-2 s-1') - raStem_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LIVESTEM_MR + CPOOL_LIVESTEM_GR, units='g m-2 s-1') - grids: [gr] - long_name: Total Respiration from Stem as Carbon Mass Flux [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: LIVESTEM_MR, model_var: CPOOL_LIVESTEM_GR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_stems - table: land - units: kg m-2 s-1 + rhc14_tavg-u-hxy-lnd: chunits(C14_HR, units='g m-2 s-1') - raVgt_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - grids: [gr] - long_name: Autotrophic Respiration on Vegetation type as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: AR, model_var: pft, model_var: level] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration - table: land - units: kg m-2 s-1 + rivo_tavg-u-hxy-lnd: 'RIVER_DISCHARGE_OVER_LAND_LIQ #mosart.h1' - ra_tavg-u-hxy-lnd: - formula: AR/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: AR] - table: land - units: kg m-2 s-1 + rsds_tavg-u-hxy-lnd: + formula: FSDS + positive: up - ra_tavg-u-hxy-ng: - cell_methods: 'area: time: mean where natural_grasses (mask=grassFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(AR,''grass'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Autotrophic Respiration on Grass Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: AR, model_var: pft, model_var: level] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration - table: land - units: kg m-2 s-1 + rsus_tavg-u-hxy-lnd: FSR - ra_tavg-u-hxy-shb: - cell_methods: 'area: time: mean where shrubs (mask=shrubFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(AR,''shrub'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Autotrophic Respiration on Shrub Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: AR, model_var: pft, model_var: level] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration - table: land - units: kg m-2 s-1 + rsus_tavg-u-hxy-sn: SSRE_FSRVI + SSRE_FSRVD (NEED use_SSRE = .true.) - ra_tavg-u-hxy-tree: - cell_methods: 'area: time: mean where trees (mask=treeFrac)' - formula: 'chunits(CLM_pft_to_CMIP6_vegtype(AR,''tree'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit), - units=''g m-2 s-1'') #clm2.h1' - grids: [gr] - long_name: Autotrophic Respiration on Tree Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: AR, model_var: pft, model_var: level] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration - table: land - units: kg m-2 s-1 + sftgif_tavg-u-hxy-u: 'PCT_LANDUNIT[:,3,:,:] #clm2.h0' - rac13_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_AR, units='g m-2 s-1') - grids: [gr] - long_name: Carbon-13 Mass Flux into Atmosphere Due to Autotrophic (Plant) Respiration - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C13_AR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_plant_respiration - table: land - units: kg m-2 s-1 + sftlaf_ti-u-hxy-u: 'PCT_LANDUNIT[:,4,:,:] #clm2.h0' - rac14_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_AR, units='g m-2 s-1') - grids: [gr] - long_name: Carbon-14 Mass Flux into Atmosphere Due to Autotrophic (Plant) Respiration - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C14_AR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_plant_respiration - table: land - units: kg m-2 s-1 + shrubFrac_tavg-u-hxy-u: 'yeartomonth_data((PCT_NAT_PFT[:,9,:,:]+PCT_NAT_PFT[:,10,:,:]+PCT_NAT_PFT[:,11,:,:]), time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - residualFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 1-PCT_LANDUNIT[:,0,:,:]-PCT_LANDUNIT[:,1,:,:] - grids: [gr] - long_name: Percentage of Grid Cell That Is Land but neither Vegetation Covered - nor Bare Soil - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - rhLitter_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(LITTERC_HR, units='g m-2 s-1') - grids: [gr] - long_name: Carbon Mass Flux into Atmosphere Due to Heterotrophic Respiration from - Litter on Land - regrid_method: conservative - sources: [model_var: LITTERC_HR] - standard_name: surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_litter - table: land - units: kg m-2 s-1 + slthick_ti-sl-hxy-lnd: DZSOI - rhLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'chunits(CLM_landunit_to_CMIP6_Lut(HR,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse), - units=''g m-2 s-1'') #clm2.h2' - grids: [gr] - long_name: Heterotrophic Respiration on Land-Use Tile as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: HR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + srfrad_tavg-u-hxy-u: FSA - FIRA - rhSoil_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(SOILC_HR, units='g m-2 s-1') - grids: [gr] - long_name: Carbon Mass Flux into Atmosphere Due to Heterotrophic Respiration from - Soil on Land - regrid_method: conservative - sources: [model_var: SOILC_HR] - standard_name: surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_soil - table: land - units: kg m-2 s-1 + sw_tavg-u-hxy-lnd: 'chunits(H2OSFC, units=''kg m-2'') #clm2.h5' - rhVgt_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - grids: [gr] - long_name: Heterotrophic Respiration on Vegetation type as Carbon Mass Flux [kgC - m-2 s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + sweLut_tavg-u-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(H2OSNO,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - rh_tavg-u-hxy-lnd: - formula: HR/1000.0 - grids: [gr] - regrid_method: conservative - sources: [model_var: HR] - table: land - units: kg m-2 s-1 + tasLut_tavg-h2m-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(TSA,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - rh_tavg-u-hxy-ng: - cell_methods: 'area: time: mean where natural_grasses (mask=grassFrac)' - grids: [gr] - long_name: Heterotrophic Respiration on Grass Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + tran_tavg-u-hxy-lnd: QSOIL + QVEGT - rh_tavg-u-hxy-shb: - cell_methods: 'area: time: mean where shrubs (mask=shrubFrac)' - grids: [gr] - long_name: Heterotrophic Respiration on Shrub Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + tran_tavg-u-hxy-u: chunits(QVEGT, units='kg m-2 s-1') - rh_tavg-u-hxy-tree: - cell_methods: 'area: time: mean where trees (mask=treeFrac)' - grids: [gr] - long_name: Heterotrophic Respiration on Tree Tiles as Carbon Mass Flux [kgC m-2 - s-1] - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + treeFracBdlDcd_tavg-u-hxy-u: 'yeartomonth_data((PCT_NAT_PFT[:,6,:,:]+PCT_NAT_PFT[:,7,:,:]+PCT_NAT_PFT[:,8,:,:]), time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - rhc13_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C13_HR, units='g m-2 s-1') - grids: [gr] - long_name: Carbon-13 Mass Flux into Atmosphere Due to Heterotrophic Respiration - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C13_HR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + treeFracBdlEvg_tavg-u-hxy-u: 'yeartomonth_data((PCT_NAT_PFT[:,4,:,:]+PCT_NAT_PFT[:,5,:,:]), time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - rhc14_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(C14_HR, units='g m-2 s-1') - grids: [gr] - long_name: Carbon-14 Mass Flux into Atmosphere Due to Heterotrophic Respiration - on Land [kgC m-2 s-1] - regrid_method: conservative - sources: [model_var: C14_HR] - standard_name: surface_upward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_heterotrophic_respiration - table: land - units: kg m-2 s-1 + treeFracNdlDcd_tavg-u-hxy-u: 'yeartomonth_data(PCT_NAT_PFT[:,3,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - rivi_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: River Inflow - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: incoming_water_volume_transport_along_river_channel - table: land - units: m3 s-1 - - rivo_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'RIVER_DISCHARGE_OVER_LAND_LIQ #mosart.h1' - grids: [gr] - long_name: River Discharge - regrid_method: conservative - sources: [model_var: RIVER_DISCHARGE_OVER_LAND_LIQ] - standard_name: outgoing_water_volume_transport_along_river_channel - table: land - units: m3 s-1 - - rootd_ti-u-hxy-lnd: - cell_methods: 'area: mean where land' - grids: [gr] - long_name: Maximum Root Depth - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: root_depth - table: land - units: m + treeFracNdlEvg_tavg-u-hxy-u: 'yeartomonth_data((PCT_NAT_PFT[:,1,:,:]+PCT_NAT_PFT[:,2,:,:]), time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - rsds_tavg-u-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: land - units: W m-2 - - rsds_tavg-u-hxy-sn: - cell_methods: 'area: time: mean where snow (mask=snc)' - grids: [gr] - long_name: Surface Downwelling Shortwave Radiation over Snow - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: surface_downwelling_shortwave_flux_in_air - table: land - units: W m-2 - - rsus_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land' - grids: [gr] - long_name: Surface Upwelling Shortwave Radiation over Land - regrid_method: conservative - sources: [model_var: FSR] - standard_name: surface_upwelling_shortwave_flux_in_air - table: land - units: W m-2 - - rsus_tavg-u-hxy-sn: - cell_methods: 'area: time: mean where snow (mask=snc)' - formula: SSRE_FSRVI + SSRE_FSRVD (NEED use_SSRE = .true.) - grids: [gr] - long_name: Surface Upwelling Shortwave Radiation over Snow - regrid_method: conservative - sources: [model_var: SSRE_FSRVI, model_var: SSRE_FSRVD] - standard_name: surface_upwelling_shortwave_flux_in_air - table: land - units: W m-2 - - rzwc_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Root Zone Soil Moisture - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: mass_content_of_water_in_soil_layer_defined_by_root_depth - table: land - units: kg m-2 + treeFrac_tavg-u-hxy-u: '(PCT_NAT_PFT[:,1,:,:]+PCT_NAT_PFT[:,2,:,:]+PCT_NAT_PFT[:,3,:,:]+PCT_NAT_PFT[:,4,:,:]+PCT_NAT_PFT[:,5,:,:]+PCT_NAT_PFT[:,6,:,:]+PCT_NAT_PFT[:,7,:,:]+PCT_NAT_PFT[:,8,:,:])*PCT_LANDUNIT[:,0,:,:] #clm2.h3' - sftgif_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'PCT_LANDUNIT[:,3,:,:] #clm2.h0' - grids: [gr] - long_name: Land Ice Area Percentage - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - standard_name: land_ice_area_fraction - table: land - units: '%' - - sftgif_ti-u-hxy-u: - cell_methods: 'area: mean' - grids: [gr] - long_name: Land Ice Area Percentage - regrid_method: conservative - sources: [model_var: N, model_var: A] - standard_name: land_ice_area_fraction - table: land - units: '%' - - sftlaf_ti-u-hxy-u: - cell_methods: 'area: mean' - formula: 'PCT_LANDUNIT[:,4,:,:] #clm2.h0' - grids: [gr] - long_name: Fraction of the Grid Cell Occupied by Lake - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - shrubFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data((PCT_NAT_PFT[:,9,:,:]+PCT_NAT_PFT[:,10,:,:]+PCT_NAT_PFT[:,11,:,:]), - time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Percentage Cover by Shrub - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - slthick_ti-sl-hxy-lnd: - cell_methods: 'area: mean where land' - grids: [gr] - long_name: Thickness of Soil Layers - regrid_method: conservative - sources: [model_var: DZSOI] - standard_name: cell_thickness - table: land - units: m - - srfrad_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: FSA - FIRA - grids: [gr] - long_name: Net radiative flux at surface - regrid_method: conservative - sources: [model_var: FSA, model_var: FIRA] - standard_name: surface_net_downward_radiative_flux - table: land - units: W m-2 - - sw_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: 'chunits(H2OSFC, units=''kg m-2'') #clm2.h5' - grids: [gr] - long_name: Surface Water Storage - regrid_method: conservative - sources: [model_var: H2OSFC] - standard_name: land_surface_liquid_water_amount - table: land - units: kg m-2 + tsLut_tavg-u-hxy-multi: 'CLM_landunit_to_CMIP6_Lut(TSKIN,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - sweLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(H2OSNO,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Snow Water Equivalent on Land-Use Tile - regrid_method: conservative - sources: [model_var: H2OSNO] - standard_name: lwe_thickness_of_surface_snow_amount - table: land - units: m - - tasLut_tavg-h2m-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(TSA,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Near-Surface Air Temperature on Land Use Tile - regrid_method: conservative - sources: [model_var: TSA] - standard_name: air_temperature - table: land - units: K - - tran_tavg-u-hxy-lnd: - formula: QSOIL + QVEGT - grids: [gr] - regrid_method: conservative - sources: [model_var: QVEGT, model_var: QSOIL] - table: land - units: kg m-2 s-1 + tsl_tavg-sl-hxy-lnd: TSOI - tran_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: chunits(QVEGT, units='kg m-2 s-1') - grids: [gr] - long_name: Transpiration - regrid_method: conservative - sources: [model_var: QVEGT] - standard_name: transpiration_flux - table: land - units: kg m-2 s-1 + tslsi_tavg-u-hxy-lsi: TSKIN - treeFracBdlDcd_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data((PCT_NAT_PFT[:,6,:,:]+PCT_NAT_PFT[:,7,:,:]+PCT_NAT_PFT[:,8,:,:]), - time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Broadleaf Deciduous Tree Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - treeFracBdlEvg_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data((PCT_NAT_PFT[:,4,:,:]+PCT_NAT_PFT[:,5,:,:]), time, - lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Broadleaf Evergreen Tree Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - treeFracNdlDcd_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data(PCT_NAT_PFT[:,3,:,:], time, lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], - time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Needleleaf Deciduous Tree Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - treeFracNdlEvg_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: 'yeartomonth_data((PCT_NAT_PFT[:,1,:,:]+PCT_NAT_PFT[:,2,:,:]), time, - lat, lon)*yeartomonth_data(PCT_LANDUNIT[:,0,:,:], time, lat, lon) #clm2.h3' - grids: [gr] - long_name: Needleleaf Evergreen Tree Area Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - treeFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: '(PCT_NAT_PFT[:,1,:,:]+PCT_NAT_PFT[:,2,:,:]+PCT_NAT_PFT[:,3,:,:]+PCT_NAT_PFT[:,4,:,:]+PCT_NAT_PFT[:,5,:,:]+PCT_NAT_PFT[:,6,:,:]+PCT_NAT_PFT[:,7,:,:]+PCT_NAT_PFT[:,8,:,:])*PCT_LANDUNIT[:,0,:,:] #clm2.h3' - grids: [gr] - long_name: Tree Cover Percentage - regrid_method: conservative - sources: [model_var: PCT_NAT_PFT, model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - tsLut_tavg-u-hxy-multi: - cell_methods: 'area: time: mean where sector' - formula: 'CLM_landunit_to_CMIP6_Lut(TSKIN,''all'',time,lat,lon,grid1d_ixy,grid1d_jxy,grid1d_lon,grid1d_lat,land1d_lon,land1d_lat,land1d_ityplunit,land1d_active,land1d_wtgcell,landUse) #clm2.h2' - grids: [gr] - long_name: Surface Temperature on Landuse Tile - regrid_method: conservative - sources: [model_var: TSKIN] - standard_name: surface_temperature - table: land - units: K - - tsl_tavg-sl-hxy-lnd: - grids: [gr] - regrid_method: conservative - sources: [model_var: TSOI] - table: land - units: K - - tslsi_tavg-u-hxy-lsi: - cell_methods: 'area: time: mean (over land and sea ice)' - grids: [gr] - long_name: Surface Temperature Where Land or Sea Ice - regrid_method: conservative - sources: [model_var: TSKIN] - standard_name: surface_temperature - table: land - units: K - - tslsi_tpt-u-hxy-lsi: - cell_methods: 'area: mean (over land and sea ice) time: point' - grids: [gr] - long_name: Surface Temperature Where Land or Sea Ice - regrid_method: conservative - sources: [model_var: TSKIN] - standard_name: surface_temperature - table: land - units: K - - vegFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - formula: PCT_LANDUNIT[:,0,:,:]+PCT_LANDUNIT[:,1,:,:] - grids: [gr] - long_name: Total Vegetated Percentage Cover - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - standard_name: area_fraction - table: land - units: '%' - - vegHeight_tavg-u-hxy-ng: - cell_methods: 'area: time: mean where natural_grasses (mask=grassFrac)' - formula: 'CLM_pft_to_CMIP6_vegtype(HTOP,''grass'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit) #clm2.h1' - grids: [gr] - long_name: Height of Grass - regrid_method: conservative - sources: [model_var: HTOP] - standard_name: canopy_height - table: land - units: m - - vegHeight_tavg-u-hxy-shb: - cell_methods: 'area: time: mean where shrubs (mask=shrubFrac)' - formula: 'CLM_pft_to_CMIP6_vegtype(HTOP,''shrub'',time, lat, lon, grid1d_ixy, - grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit) #clm2.h1' - grids: [gr] - long_name: Height of Shrubs - regrid_method: conservative - sources: [model_var: HTOP] - standard_name: canopy_height - table: land - units: m - - vegHeight_tavg-u-hxy-tree: - cell_methods: 'area: time: mean where trees (mask=treeFrac)' - formula: 'CLM_pft_to_CMIP6_vegtype(HTOP,''tree'',time, lat, lon, grid1d_ixy, grid1d_jxy, - grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, - pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit) #clm2.h1' - grids: [gr] - long_name: Height of Trees - regrid_method: conservative - sources: [model_var: HTOP] - standard_name: canopy_height - table: land - units: m - - vegHeight_tavg-u-hxy-veg: - cell_methods: 'area: time: mean where vegetation (mask=vegFrac)' - grids: [gr] - long_name: Height of the Vegetation Canopy - regrid_method: conservative - sources: [model_var: HTOP] - standard_name: canopy_height - table: land - units: m - - wetlandCH4_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(FCH4, units='kg/m2/s') - grids: [gr] - long_name: Grid Averaged Methane Emissions from Wetlands - regrid_method: conservative - sources: [model_var: FCH4] - standard_name: surface_net_upward_mass_flux_of_methane_due_to_emission_from_wetland_biological_processes - table: land - units: kg m-2 s-1 + tslsi_tpt-u-hxy-lsi: TSKIN - wetlandCH4cons_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(CH4PROD, units='g/m2/s') - chunits(FCH4, units='kg/m2/s') - grids: [gr] - long_name: Grid Averaged Methane Consumption (Methanotrophy) from Wetlands - regrid_method: conservative - sources: [model_var: CH4PROD] - standard_name: surface_downward_mass_flux_of_methane_due_to_wetland_biological_consumption - table: land - units: kg m-2 s-1 + vegFrac_tavg-u-hxy-u: PCT_LANDUNIT[:,0,:,:]+PCT_LANDUNIT[:,1,:,:] - wetlandCH4prod_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - formula: chunits(CH4PROD, units='g/m2/s') - grids: [gr] - long_name: Grid Averaged Methane Production (Methanogenesis) from Wetlands - regrid_method: conservative - sources: [model_var: CH4PROD] - standard_name: surface_upward_mass_flux_of_methane_due_to_emission_from_wetland_biological_production - table: land - units: kg m-2 s-1 + vegHeight_tavg-u-hxy-ng: 'CLM_pft_to_CMIP6_vegtype(HTOP,''grass'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit) #clm2.h1' + + vegHeight_tavg-u-hxy-shb: 'CLM_pft_to_CMIP6_vegtype(HTOP,''shrub'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit) #clm2.h1' + + vegHeight_tavg-u-hxy-tree: 'CLM_pft_to_CMIP6_vegtype(HTOP,''tree'',time, lat, lon, grid1d_ixy, grid1d_jxy, grid1d_lon,grid1d_lat, land1d_lon, land1d_lat, land1d_ityplunit,pfts1d_lon, pfts1d_lat, pfts1d_active, pfts1d_itype_veg,pfts1d_wtgcell, pfts1d_wtlunit) #clm2.h1' + + vegHeight_tavg-u-hxy-veg: HTOP + + wetlandCH4_tavg-u-hxy-lnd: chunits(FCH4, units='kg/m2/s') + + wetlandCH4cons_tavg-u-hxy-lnd: chunits(CH4PROD, units='g/m2/s') - chunits(FCH4, units='kg/m2/s') + + wetlandCH4prod_tavg-u-hxy-lnd: chunits(CH4PROD, units='g/m2/s') + + wetlandFrac_tavg-u-hxy-u: FINUNDATED - wetlandFrac_tavg-u-hxy-u: - cell_methods: 'area: time: mean' - grids: [gr] - long_name: Wetland Percentage Cover - regrid_method: conservative - sources: [model_var: FINUNDATED] - standard_name: area_fraction - table: land - units: '%' - - wtd_tavg-u-hxy-lnd: - cell_methods: 'area: mean where land time: mean' - grids: [gr] - long_name: Water Table Depth - regrid_method: conservative - sources: [model_var: ZWT] - standard_name: water_table_depth - table: land - units: m + wtd_tavg-u-hxy-lnd: ZWT diff --git a/data/cesm_to_cmip7_landice.yaml b/data/cesm_to_cmip7_landice.yaml index c2540933..28e05fe0 100644 --- a/data/cesm_to_cmip7_landice.yaml +++ b/data/cesm_to_cmip7_landice.yaml @@ -1,11 +1,7 @@ -dataset_overrides: {institution_id: NCAR, nominal_resolution: 100 km, source_id: CESM3} +grids: [gn] variables: {} - # NOTE: the following belongs in the land yaml file and needs to have an entry in the CESM CSV file - # mrfso_tavg-u-hxy-lnd: - # dims: [time, lat, lon] - # formula: verticalsum(SOILICE, capped_at=5000) - # sources: [model_var: SOILICE] - # table: landIce - # units: kg m-2 +# NOTE: the following belongs in the land yaml file and needs to have an entry +# in the CESM CSV file: +# mrfso_tavg-u-hxy-lnd: verticalsum(SOILICE, capped_at=5000) diff --git a/data/cesm_to_cmip7_ocean.yaml b/data/cesm_to_cmip7_ocean.yaml index 122a9b6f..dc8b7d5f 100644 --- a/data/cesm_to_cmip7_ocean.yaml +++ b/data/cesm_to_cmip7_ocean.yaml @@ -1,160 +1,73 @@ -dataset_overrides: {institution_id: NCAR, nominal_resolution: 100 km, source_id: CESM3} +grids: [gn] variables: - agessc_tavg-ol-hxy-sea: - grids: [gn] - long_name: Ideal Age of Sea Water - regrid_method: conservative - sources: [model_var: agessc] - table: ocean - units: yr - - deptho_ti-u-hxy-sea: - grids: [gn] - long_name: Sea Floor Depth - regrid_method: conservative - sources: [model_var: deptho] - standard_name: depth_below_sea_level - table: fx - units: m + agessc_tavg-ol-hxy-sea: agessc - evspsbl_tavg-u-hxy-ifs: - grids: [gn] - long_name: Evaporation over ice free ocean - regrid_method: conservative - sources: [model_var: evs] - table: ocean - units: kg m-2 s-1 + deptho_ti-u-hxy-sea: deptho - ficeberg_tavg-u-hxy-sea: - grids: [gn] - long_name: Iceberg Freshwater Flux - regrid_method: conservative - sources: [model_var: ficeberg] - table: ocean - units: kg m-2 s-1 + evspsbl_tavg-u-hxy-ifs: evs - hfds_tavg-u-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [model_var: hfds] - table: ocean - units: W m-2 - - hfsnthermds_tavg-u-hxy-sea: - grids: [gn] - long_name: Latent Heat to melt frozen Precipitation - regrid_method: conservative - sources: [model_var: hfsnthermds] - table: ocean - units: W m-2 - - mlotst_tavg-u-hxy-sea: - grids: [gn] - long_name: Ocean Mixed Layer Thickness Defined by Sigma T - regrid_method: conservative - sources: [model_var: mlotst] - table: ocean - units: m + ficeberg_tavg-u-hxy-sea: ficeberg + + hfds_tavg-u-hxy-sea: hfds + + hfsnthermds_tavg-u-hxy-sea: hfsnthermds + + mlotst_tavg-u-hxy-sea: mlotst siareaacrossline_tavg-u-ht-u: - grids: [gn] - long_name: Sea Ice Area Across Line - regrid_method: conservative - sources: [{freq: day, model_var: siareaacrossline_d}, {freq: mon, model_var: siareaacrossline}] - table: ocean + formula: + day: siareaacrossline_d + mon: siareaacrossline units: m siflfwbot_tavg-u-hxy-sea: - grids: [gn] - long_name: Freshwater Flux from Sea Ice to Ocean - regrid_method: conservative - sources: [{freq: day, model_var: siflfwbot_d}, {freq: mon, model_var: siflfwbot}] - table: ocean - units: kg m-2 s-1 + formula: + day: siflfwbot_d + mon: siflfwbot sig1_tavg-u-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sigl_d}, {freq: mon, model_var: sigl}] - table: ocean + formula: + day: sigl_d + mon: sigl units: m s-1 sihc_tavg-u-hxy-sea: - grids: [gn] - long_name: Sea Ice Surface Freshwater Flux to Ocean - regrid_method: conservative - sources: [{freq: day, model_var: sihc_d}, {freq: mon, model_var: sihc}] - table: ocean + formula: + day: sihc_d + mon: sihc units: kg m-2 s-1 sos_tavg-u-hxy-sea: + formula: sos grids: [gn, gr] - regrid_method: conservative - sources: [model_var: sos] - table: ocean units: 100E-03 - tauuo_tavg-u-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [model_var: tauuo] - table: ocean - units: N m-2 + tauuo_tavg-u-hxy-sea: tauuo - tauvo_tavg-u-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [model_var: tauvo] - table: ocean - units: N m-2 + tauvo_tavg-u-hxy-sea: tauvo thetao_tavg-ol-hxy-sea: + formula: thetao grids: [gn, gr] - regrid_method: bilinear - sources: [model_var: thetao] - table: ocean units: K tos_tavg-u-hxy-sea: + formula: tos grids: [gn, gr] - regrid_method: bilinear - sources: [model_var: tos] - table: ocean units: K - umo_tavg-ol-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [model_var: umo] - table: ocean - units: kg s-1 + umo_tavg-ol-hxy-sea: umo - vmo_tavg-ol-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [model_var: vmo] - table: ocean - units: kg s-1 + vmo_tavg-ol-hxy-sea: vmo vo_tavg-ol-hxy-sea: + formula: vo grids: [gn, gr] - regrid_method: bilinear - sources: [model_var: vo] - table: ocean - units: m s-1 wo_tavg-ol-hxy-sea: + formula: wo grids: [gn, gr] - regrid_method: bilinear - sources: [model_var: wo] - table: ocean - units: m s-1 - zos_tavg-u-hxy-sea: - grids: [gn] - regrid_method: bilinear - sources: [model_var: zos] - table: ocean - units: m + zos_tavg-u-hxy-sea: zos diff --git a/data/cesm_to_cmip7_seaIce.yaml b/data/cesm_to_cmip7_seaIce.yaml index f939284d..bea3837c 100644 --- a/data/cesm_to_cmip7_seaIce.yaml +++ b/data/cesm_to_cmip7_seaIce.yaml @@ -1,687 +1,533 @@ -dataset_overrides: {institution_id: NCAR, nominal_resolution: 100 km, source_id: CESM3} +grids: [gn] variables: siage_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siage_d}, {freq: mon, model_var: siage}] - table: seaIce + formula: + day: siage_d + mon: siage units: yr sialgc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sialgc_d}, {freq: mon, model_var: sialgc}] - table: seaIce + formula: + day: sialgc_d + mon: sialgc units: kg m-2 siarea_tavg-u-hm-u: - grids: [gm] - regrid_method: conservative - sources: [{alias: siconc, freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}, - model_var: tarea] - table: seaIce units: m2 - variants: [{formula: '(siconc * tarea / 100.).where(siconc.coords[''TLAT''] > - 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Area (Northern Hemisphere), - region: nh}, {formula: '(siconc * tarea / 100.).where(siconc.coords[''TLAT''] - < 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Area (Southern Hemisphere), - region: sh}] + variants: + - formula: + day: (siconc_d * tarea / 100.).where(siconc_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (siconc * tarea / 100.).where(siconc.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (siconc_d * tarea / 100.).where(siconc_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (siconc * tarea / 100.).where(siconc.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sichl_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sichl_d}, {freq: mon, model_var: sichl}] - table: seaIce + formula: + day: sichl_d + mon: sichl units: kg m-2 sicompstren_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sicompstren_d}, {freq: mon, model_var: sicompstren}] - table: seaIce - units: N m-1 + formula: + day: sicompstren_d + mon: sicompstren siconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}] - table: seaIce + formula: + day: siconc_d + mon: siconc units: '%' siconc_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}] - table: seaIce - units: '%' + formula: + day: siconc_d + mon: siconc siconca_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siconca_d}, {freq: mon, model_var: siconca}] - table: seaIce - units: '%' + formula: + day: siconca_d + mon: siconca sidconcdyn_tavg-u-hxy-sea: - grids: [gn] - long_name: Dynamic Sea Ice Concentration Change - regrid_method: conservative - sources: [{freq: day, model_var: sidconcdyn_d}, {freq: mon, model_var: sidconcdyn}] - table: seaIce - units: s-1 + formula: + day: sidconcdyn_d + mon: sidconcdyn sidconcth_tavg-u-hxy-sea: - grids: [gn] - long_name: Sea Ice Concentration Change due to Thickness Changes - regrid_method: conservative - sources: [{freq: day, model_var: sidconcth_d}, {freq: mon, model_var: sidconcth}] - table: seaIce - units: s-1 + formula: + day: sidconcth_d + mon: sidconcth sidconcth_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidconcth_d}, {freq: mon, model_var: sidconcth}] - table: seaIce + formula: + day: sidconcth_d + mon: sidconcth units: kg m-2 sidivvel_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidivvel_d}, {freq: mon, model_var: sidivvel}] - table: seaIce - units: s-1 + formula: + day: sidivvel_d + mon: sidivvel sidmassdyn_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassdyn_d}, {freq: mon, model_var: sidmassdyn}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassdyn_d + mon: sidmassdyn sidmassgrowthbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassgrowthbot_d}, {freq: mon, model_var: sidmassgrowthbot}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassgrowthbot_d + mon: sidmassgrowthbot sidmassgrowthsi_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassgrowthsi_d}, {freq: mon, model_var: sidmassgrowthsi}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassgrowthsi_d + mon: sidmassgrowthsi sidmassgrowthwat_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassgrowthwat_d}, {freq: mon, model_var: sidmassgrowthwat}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassgrowthwat_d + mon: sidmassgrowthwat sidmassmeltbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassmeltbot_d}, {freq: mon, model_var: sidmassmeltbot}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassmeltbot_d + mon: sidmassmeltbot sidmassmeltlat_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassmeltlat_d}, {freq: mon, model_var: sidmassmeltlat}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassmeltlat_d + mon: sidmassmeltlat sidmassmelttop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassmelttop_d}, {freq: mon, model_var: sidmassmelttop}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassmelttop_d + mon: sidmassmelttop sidmassth_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassth_d}, {freq: mon, model_var: sidmassth}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassth_d + mon: sidmassth sidmasstranx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstranx_d}, {freq: mon, model_var: sidmasstranx}] - table: seaIce + formula: + day: sidmasstranx_d + mon: sidmasstranx units: kg s-1 sidmasstranx_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstranx_d}, {freq: mon, model_var: sidmasstranx}] - table: seaIce - units: kg s-1 + formula: + day: sidmasstranx_d + mon: sidmasstranx sidmasstrany_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstrany_d}, {freq: mon, model_var: sidmasstrany}] - table: seaIce + formula: + day: sidmasstrany_d + mon: sidmasstrany units: kg s-1 sidmasstrany_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstrany_d}, {freq: mon, model_var: sidmasstrany}] - table: seaIce - units: kg s-1 + formula: + day: sidmasstrany_d + mon: sidmasstrany sidragbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidragbot_d}, {freq: mon, model_var: sidragbot}] - table: seaIce - units: '1' + formula: + day: sidragbot_d + mon: sidragbot sidragtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidragtop_d}, {freq: mon, model_var: sidragtop}] - table: seaIce - units: '1' + formula: + day: sidragtop_d + mon: sidragtop sieqthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sieqthick_d}, {freq: mon, model_var: sieqthick}] - table: seaIce - units: m + formula: + day: sieqthick_d + mon: sieqthick siextent_tavg-u-hm-u: - grids: [gm] - regrid_method: conservative - sources: [{alias: siconc, freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}, - model_var: tarea] - table: seaIce units: m2 - variants: [{formula: '(tarea.where(siconc > 15., 0.0)).where(siconc.coords[''TLAT''] - > 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Extent (Northern Hemisphere), - region: nh}, {formula: '(tarea.where(siconc > 15., 0.0)).where(siconc.coords[''TLAT''] - < 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Extent (Southern Hemisphere), - region: sh}] + variants: + - formula: + day: (tarea.where(siconc_d > 15., 0.0)).where(siconc_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (tarea.where(siconc > 15., 0.0)).where(siconc.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (tarea.where(siconc_d > 15., 0.0)).where(siconc_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (tarea.where(siconc > 15., 0.0)).where(siconc.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sifb_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sifb_d}, {freq: mon, model_var: sifb}] - table: seaIce - units: m + formula: + day: sifb_d + mon: sifb siflcondbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflcondbot_d}, {freq: mon, model_var: siflcondbot}] - table: seaIce - units: W m-2 + formula: + day: siflcondbot_d + mon: siflcondbot siflcondtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflcondtop_d}, {freq: mon, model_var: siflcondtop}] - table: seaIce - units: W m-2 + formula: + day: siflcondtop_d + mon: siflcondtop siflfwbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflfwbot_d}, {freq: mon, model_var: siflfwbot}] - table: seaIce - units: kg m-2 s-1 + formula: + day: siflfwbot_d + mon: siflfwbot siflfwdrain_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflfwdrain_d}, {freq: mon, model_var: siflfwdrain}] - table: seaIce - units: kg m-2 s-1 + formula: + day: siflfwdrain_d + mon: siflfwdrain sifllattop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sifllattop_d}, {freq: mon, model_var: sifllattop}] - table: seaIce - units: W m-2 + formula: + day: sifllattop_d + mon: sifllattop siflsensbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflsensbot_d}, {freq: mon, model_var: siflsensbot}] - table: seaIce - units: W m-2 + formula: + day: siflsensbot_d + mon: siflsensbot siflsenstop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflsenstop_d}, {freq: mon, model_var: siflsenstop}] - table: seaIce - units: W m-2 + formula: + day: siflsenstop_d + mon: siflsenstop siflswdbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflswdbot_d}, {freq: mon, model_var: siflswdbot}] - table: seaIce - units: W m-2 + formula: + day: siflswdbot_d + mon: siflswdbot siflswdtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflswdtop_d}, {freq: mon, model_var: siflswdtop}] - table: seaIce + formula: + day: siflswdtop_d + mon: siflswdtop units: W m-2 siflswutop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflswutop_d}, {freq: mon, model_var: siflswutop}] - table: seaIce + formula: + day: siflswutop_d + mon: siflswutop units: m siforcecoriolx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcecoriolx_d}, {freq: mon, model_var: siforcecoriolx}] - table: seaIce - units: N m-2 + formula: + day: siforcecoriolx_d + mon: siforcecoriolx siforcecorioly_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcecorioly_d}, {freq: mon, model_var: siforcecorioly}] - table: seaIce - units: N m-2 + formula: + day: siforcecorioly_d + mon: siforcecorioly siforceintstrx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforceintstrx_d}, {freq: mon, model_var: siforceintstrx}] - table: seaIce - units: N m-2 + formula: + day: siforceintstrx_d + mon: siforceintstrx siforceintstry_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforceintstry_d}, {freq: mon, model_var: siforceintstry}] - table: seaIce - units: N m-2 + formula: + day: siforceintstry_d + mon: siforceintstry siforcetiltx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcetiltx_d}, {freq: mon, model_var: siforcetiltx}] - table: seaIce - units: N m-2 + formula: + day: siforcetiltx_d + mon: siforcetiltx siforcetilty_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcetilty_d}, {freq: mon, model_var: siforcetilty}] - table: seaIce - units: N m-2 + formula: + day: siforcetilty_d + mon: siforcetilty sigpp_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sigpp_d}, {freq: mon, model_var: sigpp}] - table: seaIce + formula: + day: sigpp_d + mon: sigpp units: m s-1 siitdconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitdconc_d}, {freq: mon, model_var: sitdconc}] - table: seaIce + formula: + day: sitdconc_d + mon: sitdconc units: kg m-2 siitdsnconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitdsnconc_d}, {freq: mon, model_var: sitdsnconc}] - table: seaIce + formula: + day: sitdsnconc_d + mon: sitdsnconc units: kg m-2 siitdsnthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siitdsnthick_d}, {freq: mon, model_var: siitdsnthick}] - table: seaIce - units: m + formula: + day: siitdsnthick_d + mon: siitdsnthick siitdthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siitdthick_d}, {freq: mon, model_var: siitdthick}] - table: seaIce - units: m + formula: + day: siitdthick_d + mon: siitdthick simass_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simass_d}, {freq: mon, model_var: simass}] - table: seaIce - units: kg m-2 + formula: + day: simass_d + mon: simass simassacrossline_tavg-u-ht-u: - grids: [gn] - long_name: Sea Ice Mass Across Line - regrid_method: conservative - sources: [{freq: day, model_var: simassacrossline_d}, {freq: mon, model_var: simassacrossline}] - table: seaIce + formula: + day: simassacrossline_d + mon: simassacrossline units: kg m-2 simpconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpconc_d}, {freq: mon, model_var: simpconc}] - table: seaIce - units: '%' + formula: + day: simpconc_d + mon: simpconc simpeffconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpeffconc_d}, {freq: mon, model_var: simpeffconc}] - table: seaIce - units: '%' + formula: + day: simpeffconc_d + mon: simpeffconc simprefrozen_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simprefrozen_d}, {freq: mon, model_var: simprefrozen}] - table: seaIce + formula: + day: simprefrozen_d + mon: simprefrozen units: m simprefrozen_tavg-u-hxy-simp: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simprefrozen_d}, {freq: mon, model_var: simprefrozen}] - table: seaIce - units: m + formula: + day: simprefrozen_d + mon: simprefrozen simpthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpthick_d}, {freq: mon, model_var: simpthick}] - table: seaIce - units: m + formula: + day: simpthick_d + mon: simpthick simpthick_tavg-u-hxy-simp: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpthick_d}, {freq: mon, model_var: simpthick}] - table: seaIce - units: m + formula: + day: simpthick_d + mon: simpthick sino3_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sino3_d}, {freq: mon, model_var: sino3}] - table: seaIce + formula: + day: sino3_d + mon: sino3 units: kg m-2 sipr_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sipr_d}, {freq: mon, model_var: sipr}] - table: seaIce + formula: + day: sipr_d + mon: sipr units: kg m-2 s-1 sirdgconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sirdgconc_d}, {freq: mon, model_var: sirdgconc}] - table: seaIce - units: '%' + formula: + day: sirdgconc_d + mon: sirdgconc sirdgthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sirdgthick_d}, {freq: mon, model_var: sirdgthick}] - table: seaIce + formula: + day: sirdgthick_d + mon: sirdgthick units: m sisali_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisali_d}, {freq: mon, model_var: sisali}] - table: seaIce + formula: + day: sisali_d + mon: sisali units: 100E-03 sisaltmass_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisaltmass_d}, {freq: mon, model_var: sisaltmass}] - table: seaIce - units: kg m-2 + formula: + day: sisaltmass_d + mon: sisaltmass sishearvel_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sishearvel_d}, {freq: mon, model_var: sishearvel}] - table: seaIce + formula: + day: sishearvel_d + mon: sishearvel units: m s-1 sisi_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisi_d}, {freq: mon, model_var: sisi}] - table: seaIce + formula: + day: sisi_d + mon: sisi units: kg m-2 s-1 sisndmassdyn_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmassdyn_d}, {freq: mon, model_var: sisndmassdyn}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sisndmassdyn_d + mon: sisndmassdyn sisndmassmelt_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmassmelt_d}, {freq: mon, model_var: sisndmassmelt}] - table: seaIce + formula: + day: sisndmassmelt_d + mon: sisndmassmelt units: kg m-2 s-1 sisndmasssi_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasssi_d}, {freq: mon, model_var: sisndmasssi}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sisndmasssi_d + mon: sisndmasssi sisndmasssnf_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasssnf_d}, {freq: mon, model_var: sisndmasssnf}] - table: seaIce + formula: + day: sisndmasssnf_d + mon: sisndmasssnf units: kg m-2 s-1 sisndmasssubl_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasssubl_d}, {freq: mon, model_var: sisndmasssubl}] - table: seaIce + formula: + day: sisndmasssubl_d + mon: sisndmasssubl units: kg m-2 s-1 sisndmasswind_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasswind_d}, {freq: mon, model_var: sisndmasswind}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sisndmasswind_d + mon: sisndmasswind sisnhc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisnhc_d}, {freq: mon, model_var: sisnhc}] - table: seaIce - units: J m-2 + formula: + day: sisnhc_d + mon: sisnhc + positive: down sisnmass_tavg-u-hm-si: - grids: [gm] - regrid_method: conservative - sources: [{alias: sisnmass, freq: day, model_var: sisnmass_d}, {freq: mon, model_var: sisnmass}, - model_var: tarea] - table: seaIce - units: kg - variants: [{formula: '(sisnmass * tarea).where(sisnmass.coords[''TLAT''] > 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Snow Mass (Northern Hemisphere), region: nh}, - {formula: '(sisnmass * tarea).where(sisnmass.coords[''TLAT''] < 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Snow Mass (Southern Hemisphere), region: sh}] + variants: + - formula: + day: (sisnmass_d * tarea).where(sisnmass_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (sisnmass * tarea).where(sisnmass.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (sisnmass_d * tarea).where(sisnmass_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (sisnmass * tarea).where(sisnmass.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sisnmassacrossline_tavg-u-ht-u: - grids: [gn] - long_name: Sea Ice Mass Across Line - regrid_method: conservative - sources: [{freq: day, model_var: sisnmassacrossline_d}, {freq: mon, model_var: sisnmassacrossline}] - table: seaIce + formula: + day: sisnmassacrossline_d + mon: sisnmassacrossline units: kg m-2 s-1 sisnthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisnthick_d}, {freq: mon, model_var: sisnthick}] - table: seaIce + formula: + day: sisnthick_d + mon: sisnthick units: m sispeed_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sispeed_d}, {freq: mon, model_var: sispeed}] - table: seaIce - units: m s-1 + formula: + day: sispeed_d + mon: sispeed sistressave_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistressave_d}, {freq: mon, model_var: sistressave}] - table: seaIce + formula: + day: sistressave_d + mon: sistressave units: N m-2 sistressmax_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistressmax_d}, {freq: mon, model_var: sistressmax}] - table: seaIce + formula: + day: sistressmax_d + mon: sistressmax units: N m-2 sistrxdtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistrxdtop_d}, {freq: mon, model_var: sistrxdtop}] - table: seaIce - units: N m-2 + formula: + day: sistrxdtop_d + mon: sistrxdtop sistrxubot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistrxubot_d}, {freq: mon, model_var: sistrxubot}] - table: seaIce - units: N m-2 + formula: + day: sistrxubot_d + mon: sistrxubot + positive: down sistrydtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistrydtop_d}, {freq: mon, model_var: sistrydtop}] - table: seaIce - units: N m-2 + formula: + day: sistrydtop_d + mon: sistrydtop sistryubot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistryubot_d}, {freq: mon, model_var: sistryubot}] - table: seaIce - units: N m-2 + formula: + day: sistryubot_d + mon: sistryubot + positive: down sitempbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitempbot_d}, {freq: mon, model_var: sitempbot}] - table: seaIce - units: K + formula: + day: sitempbot_d + mon: sitempbot sitempsnic_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitempsnic_d}, {freq: mon, model_var: sitempsnic}] - table: seaIce - units: K + formula: + day: sitempsnic_d + mon: sitempsnic sitemptop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitemptop_d}, {freq: mon, model_var: sitemptop}] - table: seaIce + formula: + day: sitemptop_d + mon: sitemptop units: K sithick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sithick_d}, {freq: mon, model_var: sithick}] - table: seaIce - units: m + formula: + day: sithick_d + mon: sithick sithick_tavg-u-hxy-sir: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sithick_d}, {freq: mon, model_var: sithick}] - table: seaIce - units: m + formula: + day: sithick_d + mon: sithick sitimefrac_tavg-u-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitimefrac_d}, {freq: mon, model_var: sitimefrac}] - table: seaIce - units: '1' + formula: + day: sitimefrac_d + mon: sitimefrac siu_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siu_d}, {freq: mon, model_var: siu}] - table: seaIce - units: m s-1 + formula: + day: siu_d + mon: siu siv_tavg-u-hxy-ifs: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siv_d}, {freq: mon, model_var: siv}] - table: seaIce + formula: + day: siv_d + mon: siv units: m s-1 siv_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siv_d}, {freq: mon, model_var: siv}] - table: seaIce - units: m s-1 + formula: + day: siv_d + mon: siv sivol_tavg-u-hm-u: - grids: [gm] - regrid_method: conservative - sources: [{alias: sivol, freq: day, model_var: sivol_d}, {freq: mon, model_var: sivol}, - model_var: tarea] - table: seaIce units: 1e3 km^3 - variants: [{formula: '(sivol * tarea).where(sivol.coords[''TLAT''] > 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Volume (Northern Hemisphere), region: nh}, - {formula: '(sivol * tarea).where(sivol.coords[''TLAT''] < 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Volume (Southern Hemisphere), region: sh}] + variants: + - formula: + day: (sivol_d * tarea).where(sivol_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (sivol * tarea).where(sivol.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (sivol_d * tarea).where(sivol_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (sivol * tarea).where(sivol.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sivol_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sivol_d}, {freq: mon, model_var: sivol}] - table: seaIce + formula: + day: sivol_d + mon: sivol units: m3 m-3 diff --git a/data/noresm_positive.yaml b/data/noresm_positive.yaml deleted file mode 100644 index 0c7b4444..00000000 --- a/data/noresm_positive.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Hand-set 'positive' values for NorESM variables. -# -# 'positive' tells CMOR which direction a flux is measured in. CMOR checks it -# against its own tables and flips the sign of the data if they disagree, so a -# wrong entry here inverts the field. -# -# Only variables that differ from the CMOR table need an entry. Everything -# else takes the table's value, so this list should stay short. - -positive: - rls_tavg-u-hxy-u: up # table says down - rsds_tavg-u-hxy-u: up # table says down - rsdscs_tavg-u-hxy-u: up # table says down - rsdt_tavg-u-hxy-u: up # table says down - sisnhc_tavg-u-hxy-si: down # not in any CMOR table - sistrxubot_tavg-u-hxy-si: down # table says up - sistryubot_tavg-u-hxy-si: down # table says up diff --git a/data/noresm_to_cmip7_aerosol.yaml b/data/noresm_to_cmip7_aerosol.yaml index 9c25c28c..ca4e28ed 100644 --- a/data/noresm_to_cmip7_aerosol.yaml +++ b/data/noresm_to_cmip7_aerosol.yaml @@ -1,888 +1,183 @@ -dataset_overrides: - institution_id: NCC - nominal_resolution: 200 km - source_id: NorESM3 +grids: [gr] variables: - abs550aer_tavg-u-hxy-u: - description: Optical thickness of atmospheric aerosols at wavelength 550 nanometers. - formula: ABS550AL/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: ABS550AL, model_var: DAYFOC] - table: aerosol - units: '1' - - abs550bc_tavg-u-hxy-u: - description: This is the black carbon aerosol optical depth at 550nm due to absorption - formula: A550_BC/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: A550_BC, model_var: DAYFOC] - table: aerosol - units: '1' - - abs550dust_tavg-u-hxy-u: - description: This is the dust aerosol optical depth at 550nm due to absorption - formula: A550_DU/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: A550_DU, model_var: DAYFOC] - table: aerosol - units: '1' - - abs550oa_tavg-u-hxy-u: - description: This is the particular organic matter aerosol optical depth at 550nm - due to absorption - formula: A550_POM/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: A550_POM, model_var: DAYFOC] - table: aerosol - units: '1' - - abs550so4_tavg-u-hxy-u: - description: This is the sulphate aerosol optical depth at 550nm due to absorption - formula: A550_SO4/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: A550_SO4, model_var: DAYFOC] - table: aerosol - units: '1' - - abs550ss_tavg-u-hxy-u: - description: This is the sea salt aerosol optical depth at 550nm due to absorption - formula: A550_SS/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: A550_SS, model_var: DAYFOC] - table: aerosol - units: '1' - - airmass_tavg-al-hxy-u: - description: The mass of air in an atmospheric layer. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AIRMASSL] - table: aerosol - units: kg m-2 - - bs550aer_tpt-al-hxy-u: - description: Aerosol Backscatter at wavelength 550nm and scattering angle 180 - degrees, computed from extinction and lidar ratio - formula: BS550AER/DAYFOC - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: BS550AER, model_var: DAYFOC] - table: aerosol - units: m-1 sr-1 - - ccn1_tavg-al-hxy-u: - description: This is the concentration of cloud condensation nuclei (CCN) at 1.0 - percent supersaturation, based on aerosol chemical composition and size - formula: CCN7*1.e6 - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CCN7, model_var: e6] - table: aerosol - units: m-3 - - ccn_tavg-u-hxy-ccl: - description: 'proposed name: number_concentration_of_ambient_aerosol_in_air_at_liquid_water_cloud_top' - formula: CCN_B/FCTL_B - grids: [gr] - regrid_method: conservative - sources: [model_var: CCN_B, model_var: FCTL_B] - table: aerosol - units: m-3 - - ccnp02_tavg-al-hxy-u: - description: This is the concentration of cloud condensation nuclei (CCN) at 0.2% - supersaturation, based on aerosol chemical composition and size - formula: CCN5*1.e6 - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CCN5, model_var: e6] - table: aerosol - units: m-3 - - cdnc_tavg-al-hxy-u: - description: Cloud Droplet Number Concentration in liquid water clouds. - formula: AWNC/FREQL - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AWNC, model_var: FREQL] - table: aerosol - units: m-3 - - cheaqpso4_tavg-al-hxy-u: - description: 'proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_aqueous_phase_net_chemical_production' - formula: AQSO4_H2O2_3D+AQSO4_O3_3D - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AQSO4_H2O2_3D, model_var: AQSO4_O3_3D] - table: aerosol - units: kg m-2 s-1 - - chegpso4_tavg-al-hxy-u: - description: 'proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_gas_phase_net_chemical_production' - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: GSSO4_3D] - table: aerosol - units: kg m-2 s-1 - - chepsoa_tavg-u-hxy-u: - description: If model lumps SOA emissions with POA, then the sum of POA and SOA - emissions is reported as OA emissions. "mass" refers to the mass of primary - organic matter, not mass of organic carbon alone. - formula: GS_SOA_LV + GS_SOA_SV - grids: [gr] - regrid_method: conservative - sources: [model_var: GS_SOA_LV, model_var: GS_SOA_SV] - table: aerosol - units: kg m-2 s-1 - - cod_tavg-u-hxy-u: - description: The optical thickness is the integral along the path of radiation - of a volume scattering/absorption/attenuation coefficient. The radiative flux - is reduced by a factor exp(-optical_thickness) on traversing the path. A coordinate - variable of radiation_wavelength or radiation_frequency can be specified to - indicate that the optical thickness applies at specific wavelengths or frequencies. - The atmosphere optical thickness applies to radiation passing through the entire - atmosphere. "Cloud" means the component of extinction owing to the presence - of liquid or ice water particles. The specification of a physical process by - the phrase due_to_process means that the quantity named is a single term in - a sum of terms which together compose the general quantity named by omitting - the phrase. - formula: TAUTMODIS/CLTMODIS - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUTMODIS, model_var: CLTMODIS] - table: aerosol - units: '1' - - conccn_tavg-al-hxy-u: - description: This is the number concentration of air particles in air - formula: N_AER*1e6 - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: N_AER, model_var: e6] - table: aerosol - units: m-3 - - drybc_tavg-u-hxy-u: - description: Dry Deposition Rate of Black Carbon Aerosol Mass - grids: [gr] - regrid_method: conservative - sources: [model_var: dry_BC] - table: aerosol - units: kg m-2 s-1 - - drydust_tavg-u-hxy-u: - description: Dry Deposition Rate of Dust - grids: [gr] - regrid_method: conservative - sources: [model_var: dry_DUST] - table: aerosol - units: kg m-2 s-1 - - dryoa_tavg-u-hxy-u: - description: Dry Deposition Rate of Dry Aerosol Total Organic Matter - grids: [gr] - regrid_method: conservative - sources: [model_var: dry_OM] - table: aerosol - units: kg m-2 s-1 - - dryso2_tavg-u-hxy-u: - description: Dry Deposition Rate of SO2 - grids: [gr] - regrid_method: conservative - sources: [model_var: DF_SO2] - table: aerosol - units: kg m-2 s-1 - - dryso4_tavg-u-hxy-u: - description: Dry Deposition Rate of SO4 - grids: [gr] - regrid_method: conservative - sources: [model_var: dry_SULFATE] - table: aerosol - units: kg m-2 s-1 - - dryss_tavg-u-hxy-u: - description: Dry Deposition Rate of Sea-Salt Aerosol - grids: [gr] - regrid_method: conservative - sources: [model_var: dry_SALT] - table: aerosol - units: kg m-2 s-1 - - ec550aer_tavg-al-hxy-u: - description: Aerosol Extinction at 550nm - formula: EC550AER/DAYFOC - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: EC550AER, model_var: DAYFOC] - table: aerosol - units: m-1 - - ec550aer_tpt-al-hxy-u: - description: Aerosol Extinction @550nm - formula: EC550AER/DAYFOC - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: EC550AER, model_var: DAYFOC] - table: aerosol - units: m-1 - - emibc_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_BC] - table: aerosol - units: kg m-2 s-1 - - emibvoc_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field._If_ fixed molecular - weight of NMVOC is not available in model, please provide in units of kilomole - m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add - a comment to your file. - formula: emis_isoprene+emis_monoterp - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_isoprene, model_var: emis_monoterp] - table: aerosol - units: kg m-2 s-1 - - emidms_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_DMS] - table: aerosol - units: kg m-2 s-1 - - emidust_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_DUST] - table: aerosol - units: kg m-2 s-1 - - emiisop_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_isoprene] - table: aerosol - units: kg m-2 s-1 - - emioa_tavg-u-hxy-u: - description: This is the sum of total emission of POA and total production of - SOA (emipoa+chepsoa). "Mass" refers to the mass of organic matter, not mass - of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your - model has more detailed info available. Integrate 3D chemical production and - emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_OM] - table: aerosol - units: kg m-2 s-1 - - emiso2_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_SO2] - table: aerosol - units: kg m-2 s-1 - - emiso4_tavg-u-hxy-u: - description: Direct primary emission does not include secondary sulfate production. - Integrate 3D emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_SULFATE] - table: aerosol - units: kg m-2 s-1 - - emiss_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field. - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_SALT] - table: aerosol - units: kg m-2 s-1 - - emivoc_tavg-u-hxy-u: - description: Integrate 3D emission field vertically to 2d field. _If_ fixed molecular - weight of NMVOC is not available in model, please provide in units of kilomole - m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add - a comment to your file. - formula: emis_isoprene+emis_monoterp - grids: [gr] - regrid_method: conservative - sources: [model_var: emis_isoprene, model_var: emis_monoterp] - table: aerosol - units: kg m-2 s-1 - - ho2_tavg-p39-hy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. The chemical formula of hydroperoxyl - radical is HO2. - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: conservative - sources: [model_var: HO2_aft] - table: aerosol - units: mol mol-1 - - isop_tavg-al-hxy-u: - description: Mole fraction of isoprene in air. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: isoprene] - table: aerosol - units: mol mol-1 - - lwp_tavg-u-hxy-u: - description: The total mass of liquid water in cloud per unit area. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDLWP] - table: aerosol - units: kg m-2 - - mmraerh2o_tavg-al-hxy-u: - description: Mass fraction is used in the construction mass_fraction_of_X_in_Y, - where X is a material constituent of Y. It means the ratio of the mass of X - to the mass of Y (including X). "Aerosol" means the system of suspended liquid - or solid particles in air (except cloud droplets) and their carrier gas, the - air itself. "Ambient_aerosol" means that the aerosol is measured or modelled - at the ambient state of pressure, temperature and relative humidity that exists - in its immediate environment. "Ambient aerosol particles" are aerosol particles - that have taken up ambient water through hygroscopic growth. The extent of hygroscopic - growth depends on the relative humidity and the composition of the particles. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: MMR_AH2O] - table: aerosol - units: kg kg-1 - - mmraerh2o_tavg-h2m-hxy-u: - description: Daily mean Aerosol water mass mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: MMR_AH2O] - table: aerosol - units: kg kg-1 - - mmraerh2o_tpt-h2m-hs-u: - description: "This variable represents the instantaneous near surface aerosol\ - \ water\_Mass Mixing Ratio at CF sites, sampled every 3 hours" - grids: [gr] - regrid_method: conservative - sources: [model_var: MMR_AH2O] - table: aerosol - units: kg kg-1 - - mmrbc_tavg-al-hxy-u: - description: Dry mass fraction of black carbon aerosol particles in air. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: mmr_BC] - table: aerosol - units: kg kg-1 - - mmrbc_tavg-h2m-hxy-u: - description: Daily mean elemental carbon mass mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_BC] - table: aerosol - units: kg kg-1 - - mmrdust_tavg-al-hxy-u: - description: Dry mass fraction of dust aerosol particles in air. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: mmr_DUST] - table: aerosol - units: kg kg-1 - - mmrdust_tavg-h2m-hxy-u: - description: Daily mean dust aerosol mass mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_DUST] - table: aerosol - units: kg kg-1 - - mmrdust_tpt-h2m-hs-u: - description: This variable represents the instantaneous near surface Dust Aerosol - Mass Mixing Ratio at CF sites, sampled every 3 hours - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_DUST] - table: aerosol - units: kg kg-1 - - mmroa_tavg-al-hxy-u: - description: We recommend a scale factor of POM=1.4*OC, unless your model has - more detailed info available. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: mmr_OM] - table: aerosol - units: kg kg-1 - - mmroa_tavg-h2m-hxy-u: - description: Daily mean total organic aerosol mass mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_OM] - table: aerosol - units: kg kg-1 - - mmroa_tpt-h2m-hs-u: - description: "This variable represents the instantaneous near surface organic\ - \ aerosol\_Mass Mixing Ratio at CF sites, sampled every 3 hours." - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_OM] - table: aerosol - units: kg kg-1 - - mmrpm1_tavg-al-hxy-u: - description: Mass fraction atmospheric particulate compounds with an aerodynamic - diameter of less than or equal to 1 micrometers - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: MMRPM1] - table: aerosol - units: kg kg-1 - - mmrpm2p5_tavg-al-hxy-u: - description: Mass fraction atmospheric particulate compounds with an aerodynamic - diameter of less than or equal to 2.5 micrometers - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: MMRPM2P5] - table: aerosol - units: kg kg-1 - - mmrso4_tavg-al-hxy-u: - description: Dry mass of sulfate (SO4) in aerosol particles as a fraction of air - mass. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: mmr_SULFATE] - table: aerosol - units: kg kg-1 - - mmrso4_tavg-h2m-hxy-u: - description: Daily mean sulfate aerosol mass mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_SULFATE] - table: aerosol - units: kg kg-1 - - mmrso4_tpt-h2m-hs-u: - description: This variable is for instantaneous near surface mass mixing ratio - of sulfate aerosol at CF sites, sampled every 3 hours - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_SULFATE] - table: aerosol - units: kg kg-1 - - mmrsoa_tavg-al-hxy-u: - description: Mass fraction in the atmosphere of secondary organic aerosols (particulate - organic matter formed within the atmosphere from gaseous precursors; dry mass). - formula: SOA_NA+SOA_A1 - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: SOA_NA, model_var: SOA_A1] - table: aerosol - units: kg kg-1 - - mmrsoa_tavg-h2m-hxy-u: - description: Daily mean secondary organic aerosol mass mixing ratio near surface. - formula: SOA_NA+SOA_A1 - grids: [gr] - regrid_method: conservative - sources: [model_var: SOA_NA, model_var: SOA_A1] - table: aerosol - units: kg kg-1 - - mmrss_tavg-al-hxy-u: - description: Mass fraction in the atmosphere of sea salt aerosol (dry mass). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: mmr_SALT] - table: aerosol - units: kg kg-1 - - mmrss_tavg-h2m-hxy-u: - description: Daily mean Sea Salt mass mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: mmr_SALT] - table: aerosol - units: kg kg-1 - - od443aer_tavg-u-hxy-u: - description: 'This is the aerosol optical depth (AOD) from the ambient aerosls - (i.e., includes aerosol water). Does not include AOD from stratospheric aerosols - if these are prescribed but includes other possible background aerosol types. - Needs a comment attribute "wavelength: 443 nm"' - formula: DOD440/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: DOD440, model_var: DAYFOC] - table: aerosol - units: '1' - - od550aer_tavg-u-hxy-u: - description: 'AOD from the ambient aerosls (i.e., includes aerosol water). Does - not include AOD from stratospheric aerosols if these are prescribed but includes - other possible background aerosol types. Needs a comment attribute "wavelength: - 550 nm"' - formula: DOD550/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: DOD550, model_var: DAYFOC] - table: aerosol - units: '1' - - od550aerh2o_tavg-u-hxy-u: - description: 'proposed name: atmosphere_optical_thickness_due_to_water_ambient_aerosol' - formula: (DOD550-OD550DRY)/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: DOD550, model_var: OD550DRY, model_var: DAYFOC] - table: aerosol - units: '1' - - od550bc_tavg-u-hxy-u: - description: Total aerosol AOD due to black carbon aerosol at a wavelength of - 550 nanometres. - formula: D550_BC/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: D550_BC, model_var: DAYFOC] - table: aerosol - units: '1' - - od550csaer_tavg-u-hxy-u: - description: 'AOD from the ambient aerosols in clear skies if od550aer is for - all-sky (i.e., includes aerosol water). Does not include AOD from stratospheric - aerosols if these are prescribed but includes other possible background aerosol - types. Needs a comment attribute "wavelength: 550 nm"' - formula: CDOD550/DAYFOC/CLDFREE - grids: [gr] - regrid_method: conservative - sources: [model_var: CDOD550, model_var: DAYFOC, model_var: CLDFREE] - table: aerosol - units: '1' - - od550dust_tavg-u-hxy-u: - description: Total aerosol AOD due to dust aerosol at a wavelength of 550 nanometres. - formula: D550_DU/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: D550_DU, model_var: DAYFOC] - table: aerosol - units: '1' - - od550lt1aer_tavg-u-hxy-u: - description: od550 due to particles with wet diameter less than 1 um ("ambient" - means "wetted"). When models do not include explicit size information, it can - be assumed that all anthropogenic aerosols and natural secondary aerosols have - diameter less than 1 um. - formula: (DLT_SS+DLT_DUST+DLT_SO4+DLT_BC+DLT_POM)/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: DLT_SS, model_var: DLT_DUST, model_var: DLT_SO4, { - model_var: DLT_BC}, model_var: DLT_POM, model_var: DAYFOC] - table: aerosol - units: '1' - - od550oa_tavg-u-hxy-u: - description: total organic aerosol AOD, comprises all organic aerosols, primary - + secondary ; natural + anthropogenic including biomasss burning organic aerosol - formula: D550_POM/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: D550_POM, model_var: DAYFOC] - table: aerosol - units: '1' - - od550so4_tavg-u-hxy-u: - description: Total aerosol AOD due to sulfate aerosol at a wavelength of 550 nanometres. - formula: D550_SO4/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: D550_SO4, model_var: DAYFOC] - table: aerosol - units: '1' - - od550ss_tavg-u-hxy-u: - description: Total aerosol AOD due to sea salt aerosol at a wavelength of 550 - nanometres. - formula: D550_SS/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: D550_SS, model_var: DAYFOC] - table: aerosol - units: '1' - - od865aer_tavg-u-hxy-u: - description: 'AOD from the ambient aerosols (i.e., includes aerosol water). Does - not include AOD from stratospheric aerosols if these are prescribed but includes - other possible background aerosol types. Needs a comment attribute "wavelength: - 865 nm"' - formula: DOD870/DAYFOC - grids: [gr] - regrid_method: conservative - sources: [model_var: DOD870, model_var: DAYFOC] - table: aerosol - units: '1' - - oh_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: OH_aft] - table: aerosol - units: mol mol-1 - - oh_tavg-p39-hy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: conservative - sources: [model_var: OH_aft] - table: aerosol - units: mol mol-1 - - reffclwtop_tavg-u-hxy-cl: - description: Droplets are liquid only. This is the effective radius "as seen - from space" over liquid cloudy portion of grid cell. This is the value from - uppermost model layer with liquid cloud or, if available, or for some models - it is the sum over all liquid cloud tops, no matter where they occur, as long - as they are seen from the top of the atmosphere.TOA) each time sample when computing - monthly mean. Reported values are weighted by total liquid cloud top fraction - of (as seen from TOA) each time sample when computing monthly mean. - formula: REFFCLWMODIS/CLWMODIS - grids: [gr] - regrid_method: conservative - sources: [model_var: REFFCLWMODIS, model_var: CLWMODIS] - table: aerosol - units: m - - rluscsaf_tavg-u-hxy-u: - description: Flux corresponding to rluscs resulting from an aerosol-free call - to radiation - formula: FLNSCAF-FLDSCAF - grids: [gr] - regrid_method: conservative - sources: [model_var: FLNSCAF, model_var: FLDSCAF] - table: aerosol - units: W m-2 - - rlutaf_tavg-u-hxy-u: - description: Flux corresponding to rlut resulting fom aerosol-free call to radiation - formula: FSNTOAAF-FSNTAF+FLNTAF - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOAAF, model_var: FSNTAF, model_var: FLNTAF] - table: aerosol - units: W m-2 - - rlutcsaf_tavg-u-hxy-u: - description: Flux corresponding to rlutcs resulting fom aerosol-free call to radiation - formula: FSNTOACAF-FSNTCAF+FLNTCAF - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOACAF, model_var: FSNTCAF, model_var: FLNTCAF] - table: aerosol - units: W m-2 - - rsutaf_tavg-u-hxy-u: - description: Flux corresponding to rsut resulting fom aerosol-free call to radiation - grids: [gr] - regrid_method: conservative - sources: [model_var: FSUTOAAF] - table: aerosol - units: W m-2 - - rsutcsaf_tavg-u-hxy-u: - description: Flux corresponding to rsutcs resulting fom aerosol-free call to radiation - formula: SOLIN-FSNTOACAF - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLIN, model_var: FSNTOACAF] - table: aerosol - units: W m-2 - - so2_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: SO2] - table: aerosol - units: mol mol-1 - - so2_tavg-h2m-hxy-u: - description: Daily mean SO2 volume mixing ratio near surface. - grids: [gr] - regrid_method: conservative - sources: [model_var: SO2] - table: aerosol - units: mol mol-1 - - so2_tpt-h2m-hs-u: - description: This variable represents the instantaneous near surface so2 volume - mixing ration at CF sites, sampled every 3 hours - grids: [gr] - regrid_method: conservative - sources: [model_var: SO2] - table: aerosol - units: mol mol-1 - - tatp_tavg-u-hxy-u: - description: 2D monthly mean thermal tropopause calculated using WMO tropopause - definition on 3d temperature - grids: [gr] - regrid_method: conservative - sources: [model_var: TROP_T] - table: aerosol - units: K - - toz_tavg-u-hxy-u: - description: Total ozone column - grids: [gr] - regrid_method: conservative - sources: [model_var: cb_ozone_c] - table: aerosol - units: m - - ua_tavg-10hPa-hxy-air: - description: Zonal wind on the 10 hPa surface - grids: [gr] - regrid_method: bilinear - sources: [model_var: U010] - table: aerosol - units: m s-1 - - wetbc_tavg-u-hxy-u: - description: Surface deposition rate of black carbon (dry mass) due to wet processes - grids: [gr] - regrid_method: conservative - sources: [model_var: wet_BC] - table: aerosol - units: kg m-2 s-1 - - wetdust_tavg-u-hxy-u: - description: Surface deposition rate of dust (dry mass) due to wet processes - grids: [gr] - regrid_method: conservative - sources: [model_var: wet_DUST] - table: aerosol - units: kg m-2 s-1 - - wetoa_tavg-u-hxy-u: - description: Deposition rate of organic matter in aerosols (measured by the dry - mass) due to wet processes - grids: [gr] - regrid_method: conservative - sources: [model_var: wet_OM] - table: aerosol - units: kg m-2 s-1 - - wetso2_tavg-u-hxy-u: - description: Deposition rate of sulfur dioxide due to wet processes - grids: [gr] - regrid_method: conservative - sources: [model_var: WD_A_SO2] - table: aerosol - units: kg m-2 s-1 - - wetso4_tavg-u-hxy-u: - description: 'proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_wet_deposition' - grids: [gr] - regrid_method: conservative - sources: [model_var: wet_SULFATE] - table: aerosol - units: kg m-2 s-1 - - wetss_tavg-u-hxy-u: - description: Deposition rate of sea salt aerosols (measured by the dry mass) due - to wet processes - grids: [gr] - regrid_method: conservative - sources: [model_var: wet_SALT] - table: aerosol - units: kg m-2 s-1 - - zg_tavg-10hPa-hxy-air: - description: Geopotential height on the 10 hPa surface - grids: [gr] - regrid_method: bilinear - sources: [model_var: Z010] - table: aerosol - units: m + abs550aer_tavg-u-hxy-u: ABS550AL/DAYFOC + + abs550bc_tavg-u-hxy-u: A550_BC/DAYFOC + + abs550dust_tavg-u-hxy-u: A550_DU/DAYFOC + + abs550oa_tavg-u-hxy-u: A550_POM/DAYFOC + + abs550so4_tavg-u-hxy-u: A550_SO4/DAYFOC + + abs550ss_tavg-u-hxy-u: A550_SS/DAYFOC + + airmass_tavg-al-hxy-u: AIRMASSL + + bs550aer_tpt-al-hxy-u: BS550AER/DAYFOC + + ccn1_tavg-al-hxy-u: CCN7*1.e6 + + ccn_tavg-u-hxy-ccl: CCN_B/FCTL_B + + ccnp02_tavg-al-hxy-u: CCN5*1.e6 + + cdnc_tavg-al-hxy-u: AWNC/FREQL + + cheaqpso4_tavg-al-hxy-u: AQSO4_H2O2_3D+AQSO4_O3_3D + + chegpso4_tavg-al-hxy-u: GSSO4_3D + + chepsoa_tavg-u-hxy-u: GS_SOA_LV + GS_SOA_SV + + cod_tavg-u-hxy-u: TAUTMODIS/CLTMODIS + + conccn_tavg-al-hxy-u: N_AER*1e6 + + drybc_tavg-u-hxy-u: dry_BC + + drydust_tavg-u-hxy-u: dry_DUST + + dryoa_tavg-u-hxy-u: dry_OM + + dryso2_tavg-u-hxy-u: DF_SO2 + + dryso4_tavg-u-hxy-u: dry_SULFATE + + dryss_tavg-u-hxy-u: dry_SALT + + ec550aer_tavg-al-hxy-u: EC550AER/DAYFOC + + ec550aer_tpt-al-hxy-u: EC550AER/DAYFOC + + emibc_tavg-u-hxy-u: emis_BC + + emibvoc_tavg-u-hxy-u: emis_isoprene+emis_monoterp + + emidms_tavg-u-hxy-u: emis_DMS + + emidust_tavg-u-hxy-u: emis_DUST + + emiisop_tavg-u-hxy-u: emis_isoprene + + emioa_tavg-u-hxy-u: emis_OM + + emiso2_tavg-u-hxy-u: emis_SO2 + + emiso4_tavg-u-hxy-u: emis_SULFATE + + emiss_tavg-u-hxy-u: emis_SALT + + emivoc_tavg-u-hxy-u: emis_isoprene+emis_monoterp + + ho2_tavg-p39-hy-air: HO2_aft + + isop_tavg-al-hxy-u: isoprene + + lwp_tavg-u-hxy-u: TGCLDLWP + + mmraerh2o_tavg-al-hxy-u: MMR_AH2O + + mmraerh2o_tavg-h2m-hxy-u: MMR_AH2O + + mmraerh2o_tpt-h2m-hs-u: MMR_AH2O + + mmrbc_tavg-al-hxy-u: mmr_BC + + mmrbc_tavg-h2m-hxy-u: mmr_BC + + mmrdust_tavg-al-hxy-u: mmr_DUST + + mmrdust_tavg-h2m-hxy-u: mmr_DUST + + mmrdust_tpt-h2m-hs-u: mmr_DUST + + mmroa_tavg-al-hxy-u: mmr_OM + + mmroa_tavg-h2m-hxy-u: mmr_OM + + mmroa_tpt-h2m-hs-u: mmr_OM + + mmrpm1_tavg-al-hxy-u: MMRPM1 + + mmrpm2p5_tavg-al-hxy-u: MMRPM2P5 + + mmrso4_tavg-al-hxy-u: mmr_SULFATE + + mmrso4_tavg-h2m-hxy-u: mmr_SULFATE + + mmrso4_tpt-h2m-hs-u: mmr_SULFATE + + mmrsoa_tavg-al-hxy-u: SOA_NA+SOA_A1 + + mmrsoa_tavg-h2m-hxy-u: SOA_NA+SOA_A1 + + mmrss_tavg-al-hxy-u: mmr_SALT + + mmrss_tavg-h2m-hxy-u: mmr_SALT + + od443aer_tavg-u-hxy-u: DOD440/DAYFOC + + od550aer_tavg-u-hxy-u: DOD550/DAYFOC + + od550aerh2o_tavg-u-hxy-u: (DOD550-OD550DRY)/DAYFOC + + od550bc_tavg-u-hxy-u: D550_BC/DAYFOC + + od550csaer_tavg-u-hxy-u: CDOD550/DAYFOC/CLDFREE + + od550dust_tavg-u-hxy-u: D550_DU/DAYFOC + + od550lt1aer_tavg-u-hxy-u: (DLT_SS+DLT_DUST+DLT_SO4+DLT_BC+DLT_POM)/DAYFOC + + od550oa_tavg-u-hxy-u: D550_POM/DAYFOC + + od550so4_tavg-u-hxy-u: D550_SO4/DAYFOC + + od550ss_tavg-u-hxy-u: D550_SS/DAYFOC + + od865aer_tavg-u-hxy-u: DOD870/DAYFOC + + oh_tavg-al-hxy-u: OH_aft + + oh_tavg-p39-hy-air: OH_aft + + reffclwtop_tavg-u-hxy-cl: REFFCLWMODIS/CLWMODIS + + rluscsaf_tavg-u-hxy-u: FLNSCAF-FLDSCAF + + rlutaf_tavg-u-hxy-u: FSNTOAAF-FSNTAF+FLNTAF + + rlutcsaf_tavg-u-hxy-u: FSNTOACAF-FSNTCAF+FLNTCAF + + rsutaf_tavg-u-hxy-u: FSUTOAAF + + rsutcsaf_tavg-u-hxy-u: SOLIN-FSNTOACAF + + so2_tavg-al-hxy-u: SO2 + + so2_tavg-h2m-hxy-u: SO2 + + so2_tpt-h2m-hs-u: SO2 + + tatp_tavg-u-hxy-u: TROP_T + + toz_tavg-u-hxy-u: cb_ozone_c + + ua_tavg-10hPa-hxy-air: U010 + + wetbc_tavg-u-hxy-u: wet_BC + + wetdust_tavg-u-hxy-u: wet_DUST + + wetoa_tavg-u-hxy-u: wet_OM + + wetso2_tavg-u-hxy-u: WD_A_SO2 + + wetso4_tavg-u-hxy-u: wet_SULFATE + + wetss_tavg-u-hxy-u: wet_SALT + + zg_tavg-10hPa-hxy-air: Z010 diff --git a/data/noresm_to_cmip7_atmos.yaml b/data/noresm_to_cmip7_atmos.yaml index 5f714205..8e1eb893 100644 --- a/data/noresm_to_cmip7_atmos.yaml +++ b/data/noresm_to_cmip7_atmos.yaml @@ -1,2098 +1,449 @@ -dataset_overrides: - institution_id: NCC - nominal_resolution: 200 km - source_id: NorESM3 +grids: [gr] variables: - albisccp_tavg-u-hxy-cl: - description: Time-means are weighted by the ISCCP Total Cloud Fraction - see https://www.cfmip.org/tools-and-data/cosp. - Values will be missing where there are no clouds or no sunlight. - formula: MEANCLDALB_ISCCP/CLDTOT_ISCCP - grids: [gr] - regrid_method: conservative - sources: [model_var: MEANCLDALB_ISCCP, model_var: CLDTOT_ISCCP] - table: atmos - units: '1' + albisccp_tavg-u-hxy-cl: MEANCLDALB_ISCCP/CLDTOT_ISCCP aod550volso4_tavg-u-hxy-u: - description: This is the monthly averaged aerosol optical thickness at 550 nm - due to stratospheric volcanic sulphate aerosols - grids: [gr] - regrid_method: conservative - sources: [model_var: AODVVOLC] - table: atmos + formula: AODVVOLC units: '1.00E-09' - areacella_ti-u-hxy-u: - description: Cell areas for any grid used to report atmospheric variables and - any other variable using that grid (e.g., soil moisture content). These cell - areas should be defined to enable exact calculation of global integrals (e.g., - of vertical fluxes of energy at the surface and top of the atmosphere). - grids: [gr] - regrid_method: conservative - sources: [model_var: area] - table: atmos - units: m2 - - bldep_tavg-u-hxy-u: - description: Boundary layer depth - grids: [gr] - regrid_method: conservative - sources: [model_var: PBLH] - table: atmos - units: m - - bldep_tmax-u-hxy-u: - description: 'maximum boundary layer height during the day (add cell_methods attribute: - "time: maximum")' - grids: [gr] - regrid_method: conservative - sources: [model_var: PBLHMX] - table: atmos - units: m - - bldep_tmin-u-hxy-u: - description: 'minimum boundary layer height during the day (add cell_methods attribute: - "time: minimum")' - grids: [gr] - regrid_method: conservative - sources: [model_var: PBLHMN] - table: atmos - units: m - - bldep_tpt-u-hxy-u: - description: Boundary Layer Depth every 3 hours - grids: [gr] - regrid_method: conservative - sources: [model_var: PBLH] - table: atmos - units: m - - cfadDbze94_tavg-h40-hxy-air: - description: CloudSat Radar Reflectivity - grids: [gr] - regrid_method: conservative - sources: [model_var: CFAD_DBZE94_CS] - table: atmos - units: '1' - - cfadLidarsr532_tavg-h40-hxy-air: - description: CALIPSO Scattering Ratio - grids: [gr] - regrid_method: conservative - sources: [model_var: CFAD_SR532_CAL] - table: atmos - units: '1' - - cl_tavg-al-hxy-u: - description: Includes both large-scale and convective cloud. - formula: 100*CLOUD - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLOUD] - table: atmos - units: '%' - - cl_tpt-al-hs-u: - description: Includes both large-scale and convective cloud. - formula: 100*CLOUD - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLOUD] - table: atmos - units: '%' - - clcalipso_tavg-220hPa-hxy-air: - description: Percentage cloud cover in layer centred on 220hPa - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDHGH_CAL] - table: atmos - units: '%' - - clcalipso_tavg-560hPa-hxy-air: - description: Percentage cloud cover in layer centred on 560hPa - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDMED_CAL] - table: atmos - units: '%' - - clcalipso_tavg-840hPa-hxy-air: - description: Percentage cloud cover in layer centred on 840hPa - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDLOW_CAL] - table: atmos - units: '%' - - clcalipsoice_tavg-h40-hxy-air: - description: CALIPSO Ice Cloud Fraction - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDTOT_CAL_ICE] - table: atmos - units: '%' - - clcalipsoliq_tavg-h40-hxy-air: - description: CALIPSO Liquid Cloud Fraction - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDTOT_CAL_LIQ] - table: atmos - units: '%' - - cli_tavg-al-hxy-u: - description: Includes both large-scale and convective cloud. This is calculated - as the mass of cloud ice in the grid cell divided by the mass of air (including - the water in all phases) in the grid cell. It includes precipitating hydrometeors - ONLY if the precipitating hydrometeors affect the calculation of radiative transfer - in model. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLDICE] - table: atmos - units: kg kg-1 - - cli_tpt-al-hs-u: - description: Includes both large-scale and convective cloud. This is the mass - of cloud ice in the grid cell divided by the mass of air (including the water - in all phases) in the grid cell. This includes precipitating hydrometeors ONLY - if the precipitating hydrometeors affect the calculation of radiative transfer - in model. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLDICE] - table: atmos - units: kg kg-1 - - climodis_tavg-u-hxy-u: - description: MODIS Ice Cloud Fraction - grids: [gr] - regrid_method: conservative - sources: [model_var: CLIMODIS] - table: atmos - units: '%' - - clisccp_tavg-p7c-hxy-air: - description: Percentage cloud cover in optical depth categories. - grids: [gr] - levels: {name: plev7c, units: Pa} - regrid_method: conservative - sources: [model_var: FISCCP1_COSP] - table: atmos - units: '%' - - clivi_tavg-u-hxy-u: - description: mass of ice water in the column divided by the area of the column - (not just the area of the cloudy portion of the column). Includes precipitating - frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation - of radiative transfer in model. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDIWP] - table: atmos - units: kg m-2 - - clivi_tpt-u-hs-u: - description: mass of ice water in the column divided by the area of the column - (not just the area of the cloudy portion of the column). Includes precipitating - frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation - of radiative transfer in model. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDIWP] - table: atmos - units: kg m-2 - - clivi_tpt-u-hxy-u: - description: mass of ice water in the column divided by the area of the column - (not just the area of the cloudy portion of the column). Includes precipitating - frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation - of radiative transfer in model. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDIWP] - table: atmos - units: kg m-2 - - clt_tavg-u-hxy-lnd: - description: Total cloud fraction - grids: [gr] - regrid_method: bilinear - sources: [model_var: CLDTOT] - table: atmos - units: '%' - - clt_tavg-u-hxy-u: - description: for the whole atmospheric column, as seen from the surface or the - top of the atmosphere. Includes both large-scale and convective cloud. - formula: 100*CLDTOT - grids: [gr] - regrid_method: bilinear - sources: [model_var: CLDTOT] - table: atmos - units: '%' - - clt_tpt-u-hs-u: - description: for the whole atmospheric column, as seen from the surface or the - top of the atmosphere. Include both large-scale and convective cloud. - formula: 100*CLDTOT - grids: [gr] - regrid_method: bilinear - sources: [model_var: CLDTOT] - table: atmos - units: '%' - - clt_tpt-u-hxy-u: - description: for the whole atmospheric column, as seen from the surface or the - top of the atmosphere. Include both large-scale and convective cloud. - formula: CLDTOT*100 - grids: [gr] - regrid_method: bilinear - sources: [model_var: CLDTOT] - table: atmos - units: '%' - - cltcalipso_tavg-u-hxy-u: - description: Total cloud area fraction (reported as a percentage) for the whole - atmospheric column, as seen by the Cloud-Aerosol Lidar and Infrared Pathfinder - Satellite Observation (CALIPSO) instrument. Includes both large-scale and convective - cloud. - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDTOT_CAL] - table: atmos - units: '%' - - cltcalipso_tpt-u-hxy-u: - description: CALIPSO Total Cloud Fraction - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDTOT_CAL] - table: atmos - units: '%' - - cltisccp_tavg-u-hxy-u: - description: Total cloud area fraction (reported as a percentage) for the whole - atmospheric column, as seen by the International Satellite Cloud Climatology - Project (ISCCP) analysis. Includes both large-scale and convective cloud. (MODIS). - Includes both large-scale and convective cloud. - grids: [gr] - regrid_method: conservative - sources: [model_var: CLDTOT_ISCCP] - table: atmos - units: '%' - - cltmodis_tavg-u-hxy-u: - description: Percentage of total cloud cover as seen by the MODIS instrument simulator. - grids: [gr] - regrid_method: conservative - sources: [model_var: CLTMODIS] - table: atmos - units: '%' - - clw_tavg-al-hxy-u: - description: Includes both large-scale and convective cloud. Calculate as the - mass of cloud liquid water in the grid cell divided by the mass of air (including - the water in all phases) in the grid cells. Precipitating hydrometeors are included - ONLY if the precipitating hydrometeors affect the calculation of radiative transfer - in model. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLDLIQ] - table: atmos - units: kg kg-1 - - clw_tpt-al-hs-u: - description: Includes both large-scale and convective cloud. This is the mass - of cloud liquid water in the grid cell divided by the mass of air (including - the water in all phases) in the grid cell. This includes precipitating hydrometeors - ONLY if the precipitating hydrometeors affect the calculation of radiative transfer - in model. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CLDLIQ] - table: atmos - units: kg kg-1 - - clwmodis_tavg-u-hxy-u: - description: MODIS Liquid Cloud Fraction - grids: [gr] - regrid_method: conservative - sources: [model_var: CLWMODIS] - table: atmos - units: '%' - - clwvi_tavg-u-hxy-u: - description: mass of condensed (liquid + ice) water in the column divided by the - area of the column (not just the area of the cloudy portion of the column). - Includes precipitating hydrometeors ONLY if the precipitating hydrometeor affects - the calculation of radiative transfer in model. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDCWP] - table: atmos - units: kg m-2 - - clwvi_tpt-u-hs-u: - description: mass of condensed (liquid + ice) water in the column divided by the - area of the column (not just the area of the cloudy portion of the column). - Includes precipitating hydrometeors ONLY if the precipitating hydrometeor affects - the calculation of radiative transfer in model. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDCWP] - table: atmos - units: kg m-2 - - clwvi_tpt-u-hxy-u: - description: mass of condensed (liquid + ice) water in the column divided by the - area of the column (not just the area of the cloudy portion of the column). - Includes precipitating hydrometeors ONLY if the precipitating hydrometeor affects - the calculation of radiative transfer in model. - grids: [gr] - regrid_method: conservative - sources: [model_var: TGCLDCWP] - table: atmos - units: kg m-2 - - co2_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: CO2] - table: atmos - units: mol mol-1 - - co2_tavg-p19-hxy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: CO2] - table: atmos - units: mol mol-1 - - co2mass_tavg-u-hm-u: - description: Total atmospheric mass of Carbon Dioxide - grids: [gr] - regrid_method: conservative - sources: [model_var: TMCO2] - table: atmos - units: kg - - evspsbl_tavg-u-hxy-lnd: - description: 'Evaporation at surface (also known as evapotranspiration): flux - of water into the atmosphere due to conversion of both liquid and solid phases - to vapor (from underlying surface and vegetation)' - formula: QVEGT+QVEGE+QSOIL - grids: [gr] - regrid_method: conservative - sources: [model_var: QVEGT, model_var: QVEGE, model_var: QSOIL] - table: atmos - units: kg m-2 s-1 - - evspsbl_tavg-u-hxy-u: - description: at surface; flux of water into the atmosphere due to conversion of - both liquid and solid phases to vapor (from underlying surface and vegetation) - grids: [gr] - regrid_method: conservative - sources: [model_var: QFLX] - table: atmos - units: kg m-2 s-1 - - evspsbl_tpt-u-hs-u: - description: at surface; flux of water into the atmosphere due to conversion of - both liquid and solid phases to vapor (from underlying surface and vegetation) - grids: [gr] - regrid_method: conservative - sources: [model_var: QFLX] - table: atmos - units: kg m-2 s-1 - - hfls_tavg-u-hxy-u: - description: includes both evaporation and sublimation - grids: [gr] - regrid_method: conservative - sources: [model_var: LHFLX] - table: atmos - units: W m-2 - - hfls_tpt-u-hs-u: - description: includes both evaporation and sublimation - grids: [gr] - regrid_method: conservative - sources: [model_var: LHFLX] - table: atmos - units: W m-2 - - hfss_tavg-u-hxy-u: - description: The surface sensible heat flux, also called turbulent heat flux, - is the exchange of heat between the surface and the air by motion of air. - grids: [gr] - regrid_method: conservative - sources: [model_var: SHFLX] - table: atmos - units: W m-2 - - hfss_tpt-u-hs-u: - description: The surface sensible heat flux, also called turbulent heat flux, - is the exchange of heat between the surface and the air by motion of air. - grids: [gr] - regrid_method: conservative - sources: [model_var: SHFLX] - table: atmos - units: W m-2 - - hur_tavg-al-hxy-u: - description: The relative humidity with respect to liquid water for T> 0 C, and - with respect to ice for T<0 C. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: RELHUM] - table: atmos - units: '%' - - hur_tavg-p19-hxy-air: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: RELHUM] - table: atmos - units: '%' - - hur_tavg-p19-hxy-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: RELHUM] - table: atmos - units: '%' - - hur_tpt-100hPa-hxy-u: - description: Relative humidity at 100 hPa - grids: [gr] - regrid_method: conservative - sources: [model_var: RELHUM100] - table: atmos - units: '%' - - hur_tpt-500hPa-hxy-air: - description: Relative humidity at 500 hPa, 6 hourly instantaneous - grids: [gr] - regrid_method: conservative - sources: [model_var: RELHUM500] - table: atmos - units: '%' - - hur_tpt-850hPa-hxy-air: - description: Relative humidity at 850 hPa - grids: [gr] - regrid_method: conservative - sources: [model_var: RELHUM850] - table: atmos - units: '%' - - hur_tpt-al-hs-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: RELHUM, model_var: RHW] - table: atmos - units: '%' - - hurs_tavg-h2m-hxy-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - regrid_method: conservative - sources: [model_var: RHREFHT] - table: atmos - units: '%' - - hurs_tmax-h2m-hxy-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - regrid_method: conservative - sources: [model_var: RHREFHTMX] - table: atmos - units: '%' - - hurs_tmin-h2m-hxy-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - regrid_method: conservative - sources: [model_var: RHREFHTMN] - table: atmos - units: '%' - - hurs_tpt-h2m-hs-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - regrid_method: conservative - sources: [model_var: RHREFHT] - table: atmos - units: '%' - - hurs_tpt-h2m-hxy-u: - description: This is the relative humidity with respect to liquid water for T> - 0 C, and with respect to ice for T<0 C. - grids: [gr] - regrid_method: conservative - sources: [model_var: RHREFHT] - table: atmos - units: '%' - - hus_tavg-al-hxy-u: - description: Specific humidity is the mass fraction of water vapor in (moist) - air. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos - units: '1' - - hus_tavg-p19-hxy-u: - description: Specific humidity is the mass fraction of water vapor in (moist) - air. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos - units: '1' - - hus_tpt-al-hs-u: - description: Specific humidity is the mass fraction of water vapor in (moist) - air. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos - units: '1' - - hus_tpt-al-hxy-u: - description: Specific Humidity - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos - units: '1' - - hus_tpt-p7h-hxy-air: - description: Extra levels - 925, 700, 600, 300, 50 - grids: [gr] - levels: {name: plev7h, units: Pa} - regrid_method: bilinear - sources: [model_var: Q] - table: atmos - units: '1' - - huss_tavg-h2m-hxy-u: - description: Near-surface (usually, 2 meter) specific humidity. - grids: [gr] - regrid_method: bilinear - sources: [model_var: QREFHT] - table: atmos - units: '1' - - huss_tpt-h2m-hs-u: - description: Near-surface (usually, 2 meter) specific humidity. - grids: [gr] - regrid_method: bilinear - sources: [model_var: QREFHT] - table: atmos - units: '1' - - huss_tpt-h2m-hxy-u: - description: This is sampled synoptically. - grids: [gr] - regrid_method: bilinear - sources: [model_var: QREFHT] - table: atmos - units: '1' - - intuaw_tavg-u-hxy-u: - description: Vertically integrated eastward moisture transport (Mass weighted - vertical integral of the product of eastward wind by total water mass per unit - mass) - grids: [gr] - regrid_method: conservative - sources: [model_var: uIVT] - table: atmos - units: kg m-1 s-1 - - intuaw_tpt-u-hxy-u: - description: Vertically integrated eastward moisture transport (Mass weighted - vertical integral of the product of eastward wind by total water mass per unit - mass) - grids: [gr] - regrid_method: conservative - sources: [model_var: uIVT] - table: atmos - units: kg m-1 s-1 - - intvaw_tavg-u-hxy-u: - description: Vertically integrated northward moisture transport (Mass_weighted_vertical - integral of the product of northward wind by total water mass per unit mass) - grids: [gr] - regrid_method: conservative - sources: [model_var: vIVT] - table: atmos - units: kg m-1 s-1 - - intvaw_tpt-u-hxy-u: - description: Vertically integrated northward moisture transport (Mass_weighted_vertical - integral of the product of northward wind by total water mass per unit mass) - grids: [gr] - regrid_method: conservative - sources: [model_var: vIVT] - table: atmos - units: kg m-1 s-1 - - loadbc_tavg-u-hxy-u: - description: The total dry mass of black carbon aerosol particles per unit area. - grids: [gr] - regrid_method: conservative - sources: [model_var: cb_BC] - table: atmos - units: kg m-2 - - loaddust_tavg-u-hxy-u: - description: The total dry mass of dust aerosol particles per unit area. - grids: [gr] - regrid_method: conservative - sources: [model_var: cb_DUST] - table: atmos - units: kg m-2 - - loadoa_tavg-u-hxy-u: - description: 'atmosphere dry organic content: This is the vertically integrated - sum of atmosphere_primary_organic_content and atmosphere_secondary_organic_content - (see next two table entries).' - grids: [gr] - regrid_method: conservative - sources: [model_var: cb_OM] - table: atmos - units: kg m-2 - - loadso4_tavg-u-hxy-u: - description: The total dry mass of sulfate aerosol particles per unit area. - grids: [gr] - regrid_method: conservative - sources: [model_var: cb_SULFATE] - table: atmos - units: kg m-2 - - loadss_tavg-u-hxy-u: - description: The total dry mass of sea salt aerosol particles per unit area. - grids: [gr] - regrid_method: conservative - sources: [model_var: cb_SALT] - table: atmos - units: kg m-2 - - mc_tavg-alh-hxy-u: - description: The net mass flux should represent the difference between the updraft - and downdraft components. This is calculated as the convective mass flux divided - by the area of the whole grid cell (not just the area of the cloud). - formula: CMFMC+CMFMCDZM - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: CMFMC, model_var: CMFMCDZM] - table: atmos - units: kg m-2 s-1 - - mc_tpt-alh-hs-u: - description: The net mass flux should represent the difference between the updraft - and downdraft components. This is calculated as the convective mass flux divided - by the area of the whole grid cell (not just the area of the updrafts). - formula: CMFMC+CMFMCDZM - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: CMFMC, model_var: CMFMCDZM] - table: atmos - units: kg m-2 s-1 - - pctisccp_tavg-u-hxy-cl: - description: time-means are weighted by the ISCCP Total Cloud Fraction - see https://www.cfmip.org/tools-and-data/cosp - formula: MEANPTOP_ISCCP/CLDTOT_ISCCP - grids: [gr] - regrid_method: conservative - sources: [model_var: MEANPTOP_ISCCP, model_var: CLDTOT_ISCCP] - table: atmos - units: Pa - - pfull_tavg-al-hxy-u: - description: The atmospheric pressure at the model layer midpoints for all times - and levels in the associated output variables - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: PMID] - table: atmos - units: Pa - - pfull_tpt-al-hxy-u: - description: Air pressure on model levels - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: PMID] - table: atmos - units: Pa - - phalf_tavg-alh-hxy-u: - description: The atmospheric pressure at the model layer interfaces for all times - and levels in the associated output variables - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: PINT] - table: atmos - units: Pa - - phalf_tpt-alh-hs-u: - description: Air pressure on model half-levels - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: PINT] - table: atmos - units: Pa - - pr_tavg-u-hxy-u: - description: at surface; includes both liquid and solid phases from all types - of clouds (both large-scale and convective) - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECT] - table: atmos - units: kg m-2 s-1 - - pr_tpt-u-hs-u: - description: at surface; includes both liquid and solid phases from all types - of clouds (both large-scale and convective) - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECT] - table: atmos - units: kg m-2 s-1 - - pr_tpt-u-hxy-u: - description: Total precipitation rate at the surface - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECT] - table: atmos - units: kg m-2 s-1 - - prc_tavg-u-hxy-u: - description: at surface; includes both liquid and solid phases. - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECC] - table: atmos - units: kg m-2 s-1 - - prc_tpt-u-hs-u: - description: at surface; includes both liquid and solid phases. - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECC] - table: atmos - units: kg m-2 s-1 - - prra_tavg-u-hxy-lnd: - description: rainfall_flux - formula: PRECT-PRECSC-PRECSL - grids: [gr] - regrid_method: conservative - sources: [model_var: PRECT, model_var: PRECSC, model_var: PRECSL] - table: atmos - units: kg m-2 s-1 - - prsn_tavg-u-hxy-u: - description: at surface; includes precipitation of all forms of water in the solid - phase - formula: PRECSC+PRECSL - grids: [gr] - regrid_method: bilinear - sources: [model_var: PRECSC, model_var: PRECSL] - table: atmos - units: kg m-2 s-1 - - prsn_tpt-u-hs-u: - description: at surface; includes precipitation of all forms of water in the solid - phase - formula: PRECSC+PRECSL - grids: [gr] - regrid_method: bilinear - sources: [model_var: PRECSC, model_var: PRECSL] - table: atmos - units: kg m-2 s-1 - - prw_tavg-u-hxy-u: - description: Vertically integrated mass of water vapour through the atmospheric - column - grids: [gr] - regrid_method: conservative - sources: [model_var: TMQ] - table: atmos - units: kg m-2 - - prw_tpt-u-hs-u: - description: Vertically integrated mass of water vapour through the atmospheric - column - grids: [gr] - regrid_method: conservative - sources: [model_var: Q] - table: atmos - units: kg m-2 - - prw_tpt-u-hxy-u: - description: Vertically integrated mass of water vapour through the atmospheric - column - grids: [gr] - regrid_method: conservative - sources: [model_var: Q] - table: atmos - units: kg m-2 - - ps_tavg-u-hxy-u: - description: surface pressure (not mean sea-level pressure), 2-D field to calculate - the 3-D pressure field from hybrid coordinates - grids: [gr] - regrid_method: bilinear - sources: [model_var: PS] - table: atmos - units: Pa - - ps_tpt-u-hs-u: - description: not, in general, the same as mean sea-level pressure - grids: [gr] - regrid_method: bilinear - sources: [model_var: PS] - table: atmos - units: Pa - - ps_tpt-u-hxy-u: - description: surface pressure, not mean sea level pressure - grids: [gr] - regrid_method: bilinear - sources: [model_var: PS] - table: atmos - units: Pa - - psl_tavg-u-hxy-u: - description: Sea Level Pressure - grids: [gr] - regrid_method: bilinear - sources: [model_var: PSL] - table: atmos - units: Pa - - psl_tpt-u-hs-u: - description: not, in general, the same as surface pressure - grids: [gr] - regrid_method: bilinear - sources: [model_var: PSL] - table: atmos - units: Pa - - psl_tpt-u-hxy-u: - description: Sea Level Pressure - grids: [gr] - regrid_method: bilinear - sources: [model_var: PSL] - table: atmos - units: Pa - - ptp_tavg-u-hxy-u: - description: 2D monthly mean thermal tropopause calculated using WMO tropopause - definition on 3d temperature - grids: [gr] - regrid_method: conservative - sources: [model_var: TROP_P] - table: atmos - units: Pa - - reffclis_tavg-al-hxy-scl: - description: This is defined as the in-cloud ratio of the third moment over the - second moment of the particle size distribution (obtained by considering only - the cloudy portion of the grid cell). - formula: 1E-6*AREI/FREQI - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AREI, model_var: FREQI] - table: atmos - units: m - - reffclws_tavg-al-hxy-scl: - description: Droplets are liquid. The effective radius is defined as the ratio - of the third moment over the second moment of the particle size distribution - and the time-mean should be calculated, weighting the individual samples by - the cloudy fraction of the grid cell. - formula: 1E-6* AREL/FREQL - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AREL, model_var: FREQL] - table: atmos - units: m - - reffclws_tpt-al-hs-scl: - description: alevel site time1 - formula: 1E-6* AREL/FREQL - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AREL, model_var: FREQL] - table: atmos - units: m - - reffclws_tpt-al-hxy-scl: - description: This is defined as the in-cloud ratio of the third moment over the - second moment of the particle size distribution (obtained by considering only - the cloudy portion of the grid cell). - formula: 1E-6* AREL/FREQL - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: AREL, model_var: FREQL] - table: atmos - units: m - - rld_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDL] - table: atmos - units: W m-2 - - rld_tpt-alh-hs-u: - description: Downwelling Longwave Radiation (includes the fluxes at the surface - and TOA) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDL] - table: atmos - units: W m-2 - - rldcs_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDLC] - table: atmos - units: W m-2 - - rldcs_tpt-alh-hs-u: - description: Downwelling clear-sky longwave radiation (includes the fluxes at - the surface and TOA) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDLC] - table: atmos - units: W m-2 - - rlds_tavg-u-hxy-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "longwave" means longwave radiation. Downwelling radiation is radiation from - above. It does not mean "net downward". When thought of as being incident on - a surface, a radiative flux is sometimes called "irradiance". In addition, it - is identical with the quantity measured by a cosine-collector light-meter and - sometimes called "vector irradiance". In accordance with common usage in geophysical - disciplines, "flux" implies per unit area, called "flux density" in physics. - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS] - table: atmos - units: W m-2 - - rlds_tpt-u-hs-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "longwave" means longwave radiation. Downwelling radiation is radiation from - above. It does not mean "net downward". When thought of as being incident on - a surface, a radiative flux is sometimes called "irradiance". In addition, it - is identical with the quantity measured by a cosine-collector light-meter and - sometimes called "vector irradiance". In accordance with common usage in geophysical - disciplines, "flux" implies per unit area, called "flux density" in physics. - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS] - table: atmos - units: W m-2 - - rlds_tpt-u-hxy-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "longwave" means longwave radiation. Downwelling radiation is radiation from - above. It does not mean "net downward". When thought of as being incident on - a surface, a radiative flux is sometimes called "irradiance". In addition, it - is identical with the quantity measured by a cosine-collector light-meter and - sometimes called "vector irradiance". In accordance with common usage in geophysical - disciplines, "flux" implies per unit area, called "flux density" in physics. - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS] - table: atmos - units: W m-2 - - rldscs_tavg-u-hxy-u: - description: Surface downwelling clear-sky longwave radiation - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDSC] - table: atmos - units: W m-2 - - rldscs_tpt-u-hs-u: - description: Surface downwelling clear-sky longwave radiation - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDSC] - table: atmos - units: W m-2 - - rldscs_tpt-u-hxy-u: - description: Surface downwelling clear-sky longwave radiation - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDSC] - table: atmos - units: W m-2 + areacella_ti-u-hxy-u: area + + bldep_tavg-u-hxy-u: PBLH + + bldep_tmax-u-hxy-u: PBLHMX + + bldep_tmin-u-hxy-u: PBLHMN + + bldep_tpt-u-hxy-u: PBLH + + cfadDbze94_tavg-h40-hxy-air: CFAD_DBZE94_CS + + cfadLidarsr532_tavg-h40-hxy-air: CFAD_SR532_CAL + + cl_tavg-al-hxy-u: 100*CLOUD + + cl_tpt-al-hs-u: 100*CLOUD + + clcalipso_tavg-220hPa-hxy-air: CLDHGH_CAL + + clcalipso_tavg-560hPa-hxy-air: CLDMED_CAL + + clcalipso_tavg-840hPa-hxy-air: CLDLOW_CAL + + clcalipsoice_tavg-h40-hxy-air: CLDTOT_CAL_ICE + + clcalipsoliq_tavg-h40-hxy-air: CLDTOT_CAL_LIQ + + cli_tavg-al-hxy-u: CLDICE + + cli_tpt-al-hs-u: CLDICE + + climodis_tavg-u-hxy-u: CLIMODIS + + clisccp_tavg-p7c-hxy-air: FISCCP1_COSP + + clivi_tavg-u-hxy-u: TGCLDIWP + + clivi_tpt-u-hs-u: TGCLDIWP + + clivi_tpt-u-hxy-u: TGCLDIWP + + clt_tavg-u-hxy-lnd: CLDTOT + + clt_tavg-u-hxy-u: 100*CLDTOT + + clt_tpt-u-hs-u: 100*CLDTOT + + clt_tpt-u-hxy-u: CLDTOT*100 + + cltcalipso_tavg-u-hxy-u: CLDTOT_CAL + + cltcalipso_tpt-u-hxy-u: CLDTOT_CAL + + cltisccp_tavg-u-hxy-u: CLDTOT_ISCCP + + cltmodis_tavg-u-hxy-u: CLTMODIS + + clw_tavg-al-hxy-u: CLDLIQ + + clw_tpt-al-hs-u: CLDLIQ + + clwmodis_tavg-u-hxy-u: CLWMODIS + + clwvi_tavg-u-hxy-u: TGCLDCWP + + clwvi_tpt-u-hs-u: TGCLDCWP + + clwvi_tpt-u-hxy-u: TGCLDCWP + + co2_tavg-al-hxy-u: CO2 + + co2_tavg-p19-hxy-air: CO2 + + co2mass_tavg-u-hm-u: TMCO2 + + evspsbl_tavg-u-hxy-lnd: QVEGT+QVEGE+QSOIL + + evspsbl_tavg-u-hxy-u: QFLX + + evspsbl_tpt-u-hs-u: QFLX + + hfls_tavg-u-hxy-u: LHFLX + + hfls_tpt-u-hs-u: LHFLX + + hfss_tavg-u-hxy-u: SHFLX + + hfss_tpt-u-hs-u: SHFLX + + hur_tavg-al-hxy-u: RELHUM + + hur_tavg-p19-hxy-air: RELHUM + + hur_tavg-p19-hxy-u: RELHUM + + hur_tpt-100hPa-hxy-u: RELHUM100 + + hur_tpt-500hPa-hxy-air: RELHUM500 + + hur_tpt-850hPa-hxy-air: RELHUM850 + + hurs_tavg-h2m-hxy-u: RHREFHT + + hurs_tmax-h2m-hxy-u: RHREFHTMX + + hurs_tmin-h2m-hxy-u: RHREFHTMN + + hurs_tpt-h2m-hs-u: RHREFHT + + hurs_tpt-h2m-hxy-u: RHREFHT + + hus_tavg-al-hxy-u: Q + + hus_tavg-p19-hxy-u: Q + + hus_tpt-al-hs-u: Q + + hus_tpt-al-hxy-u: Q + + hus_tpt-p7h-hxy-air: Q + + huss_tavg-h2m-hxy-u: QREFHT + + huss_tpt-h2m-hs-u: QREFHT + + huss_tpt-h2m-hxy-u: QREFHT + + intuaw_tavg-u-hxy-u: uIVT + + intuaw_tpt-u-hxy-u: uIVT + + intvaw_tavg-u-hxy-u: vIVT + + intvaw_tpt-u-hxy-u: vIVT + + loadbc_tavg-u-hxy-u: cb_BC + + loaddust_tavg-u-hxy-u: cb_DUST + + loadoa_tavg-u-hxy-u: cb_OM + + loadso4_tavg-u-hxy-u: cb_SULFATE + + loadss_tavg-u-hxy-u: cb_SALT + + mc_tavg-alh-hxy-u: CMFMC+CMFMCDZM + + mc_tpt-alh-hs-u: CMFMC+CMFMCDZM + + pctisccp_tavg-u-hxy-cl: MEANPTOP_ISCCP/CLDTOT_ISCCP + + pfull_tavg-al-hxy-u: PMID + + pfull_tpt-al-hxy-u: PMID + + phalf_tavg-alh-hxy-u: PINT + + phalf_tpt-alh-hs-u: PINT + + pr_tavg-u-hxy-u: PRECT + + pr_tpt-u-hs-u: PRECT + + pr_tpt-u-hxy-u: PRECT + + prc_tavg-u-hxy-u: PRECC + + prc_tpt-u-hs-u: PRECC + + prra_tavg-u-hxy-lnd: PRECT-PRECSC-PRECSL + + prsn_tavg-u-hxy-u: PRECSC+PRECSL + + prsn_tpt-u-hs-u: PRECSC+PRECSL + + prw_tavg-u-hxy-u: TMQ + + prw_tpt-u-hs-u: Q + + prw_tpt-u-hxy-u: Q + + ps_tavg-u-hxy-u: PS + + ps_tpt-u-hs-u: PS + + ps_tpt-u-hxy-u: PS + + psl_tavg-u-hxy-u: PSL + + psl_tpt-u-hs-u: PSL + + psl_tpt-u-hxy-u: PSL + + ptp_tavg-u-hxy-u: TROP_P + + reffclis_tavg-al-hxy-scl: 1E-6*AREI/FREQI + + reffclws_tavg-al-hxy-scl: 1E-6* AREL/FREQL + + reffclws_tpt-al-hs-scl: 1E-6* AREL/FREQL + + reffclws_tpt-al-hxy-scl: 1E-6* AREL/FREQL + + rld_tavg-alh-hxy-u: FDL + + rld_tpt-alh-hs-u: FDL + + rldcs_tavg-alh-hxy-u: FDLC + + rldcs_tpt-alh-hs-u: FDLC + + rlds_tavg-u-hxy-u: FLDS + + rlds_tpt-u-hs-u: FLDS + + rlds_tpt-u-hxy-u: FLDS + + rldscs_tavg-u-hxy-u: FLDSC + + rldscs_tpt-u-hs-u: FLDSC + + rldscs_tpt-u-hxy-u: FLDSC rls_tavg-u-hxy-u: - description: Net longwave surface radiation - grids: [gr] - regrid_method: conservative - sources: [model_var: FLNS] - table: atmos - units: W m-2 - - rlu_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FUL] - table: atmos - units: W m-2 - - rlu_tpt-alh-hs-u: - description: Upwelling longwave radiation (includes the fluxes at the surface - and TOA) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FULC] - table: atmos - units: W m-2 - - rlucs_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FULC] - table: atmos - units: W m-2 - - rlucs_tpt-alh-hs-u: - description: Upwelling clear-sky longwave radiation (includes the fluxes at the - surface and TOA) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FULC] - table: atmos - units: W m-2 - - rlus_tavg-u-hxy-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "longwave" means longwave radiation. Upwelling radiation is radiation from below. - It does not mean "net upward". When thought of as being incident on a surface, - a radiative flux is sometimes called "irradiance". In addition, it is identical - with the quantity measured by a cosine-collector light-meter and sometimes called - "vector irradiance". In accordance with common usage in geophysical disciplines, - "flux" implies per unit area, called "flux density" in physics. - formula: FLDS+FLNS - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS, model_var: FLNS] - table: atmos - units: W m-2 - - rlus_tpt-u-hs-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "longwave" means longwave radiation. Upwelling radiation is radiation from below. - It does not mean "net upward". When thought of as being incident on a surface, - a radiative flux is sometimes called "irradiance". In addition, it is identical - with the quantity measured by a cosine-collector light-meter and sometimes called - "vector irradiance". In accordance with common usage in geophysical disciplines, - "flux" implies per unit area, called "flux density" in physics. - formula: FLDS+FLNS - grids: [gr] - regrid_method: conservative - sources: [model_var: FLDS, model_var: FLNS] - table: atmos - units: W m-2 - - rluscs_tavg-u-hxy-u: - description: Surface Upwelling Clear-sky Longwave Radiation - formula: FLNSC+FLDSC - grids: [gr] - regrid_method: conservative - sources: [model_var: FLNSC, model_var: FLDSC] - table: atmos - units: W m-2 - - rlut_tavg-u-hxy-u: - description: at the top of the atmosphere (to be compared with satellite measurements) - formula: FSNTOA-FSNT+FLNT - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOA, model_var: FSNT, model_var: FLNT] - table: atmos - units: W m-2 - - rlut_tpt-u-hs-u: - description: at the top of the atmosphere (to be compared with satellite measurements) - formula: FSNTOA-FSNT+FLNT - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOA, model_var: FSNT, model_var: FLNT] - table: atmos - units: W m-2 - - rlut_tpt-u-hxy-u: - description: at the top of the atmosphere (to be compared with satellite measurements) - formula: FSNTOA-FSNT+FLNT - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOA, model_var: FSNT, model_var: FLNT] - table: atmos - units: W m-2 - - rlutcs_tavg-u-hxy-u: - description: Upwelling clear-sky longwave radiation at top of atmosphere - formula: FSNTOAC-FSNTC+FLNTC - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOAC, model_var: FSNTC, model_var: FLNTC] - table: atmos - units: W m-2 - - rlutcs_tpt-u-hs-u: - description: Upwelling clear-sky longwave radiation at top of atmosphere - formula: FSNTOAC-FSNTC+FLNTC - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOAC, model_var: FSNTC, model_var: FLNTC] - table: atmos - units: W m-2 - - rlutcs_tpt-u-hxy-u: - description: Upwelling clear-sky longwave radiation at top of atmosphere - formula: FSNTOAC-FSNTC+FLNTC - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOAC, model_var: FSNTC, model_var: FLNTC] - table: atmos - units: W m-2 - - rsd_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDS] - table: atmos - units: W m-2 - - rsd_tpt-alh-hs-u: - description: Downwelling shortwave radiation (includes the fluxes at the surface - and top-of-atmosphere) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDS] - table: atmos - units: W m-2 - - rsdcs_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDSC] - table: atmos - units: W m-2 - - rsdcs_tpt-alh-hs-u: - description: Downwelling clear-sky shortwave radiation (includes the fluxes at - the surface and top-of-atmosphere) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FDSC] - table: atmos - units: W m-2 + formula: FLNS + positive: up + + rlu_tavg-alh-hxy-u: FUL + + rlu_tpt-alh-hs-u: FULC + + rlucs_tavg-alh-hxy-u: FULC + + rlucs_tpt-alh-hs-u: FULC + + rlus_tavg-u-hxy-u: FLDS+FLNS + + rlus_tpt-u-hs-u: FLDS+FLNS + + rluscs_tavg-u-hxy-u: FLNSC+FLDSC + + rlut_tavg-u-hxy-u: FSNTOA-FSNT+FLNT + + rlut_tpt-u-hs-u: FSNTOA-FSNT+FLNT + + rlut_tpt-u-hxy-u: FSNTOA-FSNT+FLNT + + rlutcs_tavg-u-hxy-u: FSNTOAC-FSNTC+FLNTC + + rlutcs_tpt-u-hs-u: FSNTOAC-FSNTC+FLNTC + + rlutcs_tpt-u-hxy-u: FSNTOAC-FSNTC+FLNTC + + rsd_tavg-alh-hxy-u: FDS + + rsd_tpt-alh-hs-u: FDS + + rsdcs_tavg-alh-hxy-u: FDSC + + rsdcs_tpt-alh-hs-u: FDSC rsds_tavg-u-hxy-u: - description: Surface solar irradiance for UV calculations. - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: atmos - units: W m-2 - - rsds_tpt-u-hs-u: - description: Surface solar irradiance for UV calculations. - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: atmos - units: W m-2 - - rsds_tpt-u-hxy-u: - description: Surface solar irradiance for UV calculations. - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: atmos - units: W m-2 + formula: FSDS + positive: up + + rsds_tpt-u-hs-u: FSDS + + rsds_tpt-u-hxy-u: FSDS rsdscs_tavg-u-hxy-u: - description: Surface solar irradiance clear sky for UV calculations - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC] - table: atmos - units: W m-2 - - rsdscs_tpt-u-hs-u: - description: Surface solar irradiance clear sky for UV calculations - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC] - table: atmos - units: W m-2 - - rsdscs_tpt-u-hxy-u: - description: Surface solar irradiance clear sky for UV calculations - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC] - table: atmos - units: W m-2 - - rsdsdiff_tavg-u-hxy-u: - description: Surface downwelling solar irradiance from diffuse radiation for UV - calculations. - formula: SOLLD+SOLSD - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLLD, model_var: SOLSD] - table: atmos - units: W m-2 + formula: FSDSC + positive: up + + rsdscs_tpt-u-hs-u: FSDSC + + rsdscs_tpt-u-hxy-u: FSDSC + + rsdsdiff_tavg-u-hxy-u: SOLLD+SOLSD rsdt_tavg-u-hxy-u: - description: at the top of the atmosphere formula: FSNTOA+FSUTOA - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOA, model_var: FSUTOA] - table: atmos - units: W m-2 - - rsdt_tpt-u-hs-u: - description: at the top of the atmosphere - formula: FSNTOA+FSUTOA - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNTOA, model_var: FSUTOA] - table: atmos - units: W m-2 - - rss_tavg-u-hxy-u: - description: Net downward shortwave radiation at the surface - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNS] - table: atmos - units: W m-2 - - rsu_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FUS] - table: atmos - units: W m-2 - - rsu_tpt-alh-hs-u: - description: Upwelling shortwave radiation (includes also the fluxes at the surface - and top of atmosphere) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FUS] - table: atmos - units: W m-2 - - rsucs_tavg-alh-hxy-u: - description: Includes also the fluxes at the surface and TOA. - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FUSC] - table: atmos - units: W m-2 - - rsucs_tpt-alh-hs-u: - description: Upwelling clear-sky shortwave radiation (includes the fluxes at - the surface and TOA) - grids: [gr] - levels: {name: standard_hybrid_sigma_half, units: '1', src_axis_name: ilev} - regrid_method: conservative - sources: [model_var: FUSC] - table: atmos - units: W m-2 - - rsus_tavg-u-hxy-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "shortwave" means shortwave radiation. Upwelling radiation is radiation from - below. It does not mean "net upward". When thought of as being incident on a - surface, a radiative flux is sometimes called "irradiance". In addition, it - is identical with the quantity measured by a cosine-collector light-meter and - sometimes called "vector irradiance". In accordance with common usage in geophysical - disciplines, "flux" implies per unit area, called "flux density" in physics. - formula: FSDS-FSNS - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS, model_var: FSNS] - table: atmos - units: W m-2 - - rsus_tpt-u-hs-u: - description: The surface called "surface" means the lower boundary of the atmosphere. - "shortwave" means shortwave radiation. Upwelling radiation is radiation from - below. It does not mean "net upward". When thought of as being incident on a - surface, a radiative flux is sometimes called "irradiance". In addition, it - is identical with the quantity measured by a cosine-collector light-meter and - sometimes called "vector irradiance". In accordance with common usage in geophysical - disciplines, "flux" implies per unit area, called "flux density" in physics. - formula: FSDS-FSNS - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS, model_var: FSNS] - table: atmos - units: W m-2 - - rsuscs_tavg-u-hxy-u: - description: Surface Upwelling Clear-sky Shortwave Radiation - formula: FSDSC-FSNSC - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC, model_var: FSNSC] - table: atmos - units: W m-2 - - rsuscs_tpt-u-hs-u: - description: Surface Upwelling Clear-sky Shortwave Radiation - formula: FSDSC-FSNSC - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDSC, model_var: FSNSC] - table: atmos - units: W m-2 - - rsut_tavg-u-hxy-u: - description: at the top of the atmosphere - grids: [gr] - regrid_method: conservative - sources: [model_var: FSUTOA] - table: atmos - units: W m-2 - - rsut_tpt-u-hs-u: - description: at the top of the atmosphere - grids: [gr] - regrid_method: conservative - sources: [model_var: FSUTOA] - table: atmos - units: W m-2 - - rsut_tpt-u-hxy-u: - description: at the top of the atmosphere - grids: [gr] - regrid_method: conservative - sources: [model_var: FSUTOA] - table: atmos - units: W m-2 - - rsutcs_tavg-u-hxy-u: - description: Calculated in the absence of clouds. - formula: SOLIN-FSNTOAC - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLIN, model_var: FSNTOAC] - table: atmos - units: W m-2 - - rsutcs_tpt-u-hs-u: - description: Calculated in the absence of clouds. - formula: SOLIN-FSNTOAC - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLIN, model_var: FSNTOAC] - table: atmos - units: W m-2 - - rsutcs_tpt-u-hxy-u: - description: Calculated in the absence of clouds. - formula: SOLIN-FSNTOAC - grids: [gr] - regrid_method: conservative - sources: [model_var: SOLIN, model_var: FSNTOAC] - table: atmos - units: W m-2 - - rtmt_tavg-u-hxy-u: - description: i.e., at the top of that portion of the atmosphere where dynamics - are explicitly treated by the model. This is reported only if it differs from - the net downward radiative flux at the top of the atmosphere. - formula: FSNT-FLNT - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNT, model_var: FLNT] - table: atmos - units: W m-2 - - rtmt_tpt-u-hs-u: - description: i.e., at the top of that portion of the atmosphere where dynamics - are explicitly treated by the model. This is reported only if it differs from - the net downward radiative flux at the top of the atmosphere. - formula: FSNT-FLNT - grids: [gr] - regrid_method: conservative - sources: [model_var: FSNT, model_var: FLNT] - table: atmos - units: W m-2 - - sfcWind_tavg-h10m-hxy-u: - description: near-surface (usually, 10 meters) wind speed. - grids: [gr] - regrid_method: bilinear - sources: [model_var: U10] - table: atmos - units: m s-1 - - sfcWind_tpt-h10m-hs-u: - description: This is the mean of the speed, not the speed computed from the mean - u and v components of wind - grids: [gr] - regrid_method: bilinear - sources: [model_var: U10] - table: atmos - units: m s-1 - - sftlf_ti-u-hxy-u: - description: Percentage of horizontal area occupied by land. - grids: [gr] - regrid_method: conservative - sources: [model_var: LANDFRAC] - table: atmos - units: '%' - - ta_tavg-700hPa-hxy-air: - description: Air temperature at 700hPa - grids: [gr] - regrid_method: bilinear - sources: [model_var: T700] - table: atmos - units: K - - ta_tavg-850hPa-hxy-air: - description: Air temperature at 850hPa - grids: [gr] - regrid_method: bilinear - sources: [model_var: T850] - table: atmos - units: K - - ta_tavg-al-hxy-u: - description: Air Temperature - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - ta_tavg-p19-hxy-air: - description: Air Temperature - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - ta_tavg-p39-hy-air: - description: Air Temperature - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - ta_tpt-al-hs-u: - description: Air Temperature - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - ta_tpt-al-hxy-u: - description: Air Temperature - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - ta_tpt-p3-hxy-air: - description: Air Temperature - grids: [gr] - levels: {name: plev3, units: Pa} - regrid_method: bilinear - sources: [model_var: T] - table: atmos - units: K - - tas_tavg-h2m-hxy-u: - description: Temperature near surface. - grids: [gr] - regrid_method: bilinear - sources: [model_var: TREFHT] - table: atmos - units: K - - tas_tmax-h2m-hxy-u: - description: 'maximum near-surface (usually, 2 meter) air temperature (add cell_method - attribute "time: max")' - grids: [gr] - regrid_method: bilinear - sources: [model_var: TREFHTMX] - table: atmos - units: K - - tas_tmaxavg-h2m-hxy-u: - description: monthly mean of the daily-maximum near-surface air temperature. - grids: [gr] - regrid_method: bilinear - sources: [model_var: TREFMXAV] - table: atmos - units: K - - tas_tmin-h2m-hxy-u: - description: 'minimum near-surface (usually, 2 meter) air temperature (add cell_method - attribute "time: min")' - grids: [gr] - regrid_method: bilinear - sources: [model_var: TREFHTMN] - table: atmos - units: K - - tas_tpt-h2m-hs-u: - description: near-surface (usually, 2 meter) air temperature - grids: [gr] - regrid_method: bilinear - sources: [model_var: TREFHT] - table: atmos - units: K - - tas_tpt-h2m-hxy-u: - description: This is sampled synoptically. - grids: [gr] - regrid_method: bilinear - sources: [model_var: TREFHT] - table: atmos - units: K - - tauu_tavg-u-hxy-u: - description: Downward eastward wind stress at the surface - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUX] - table: atmos - units: Pa - - tauu_tpt-u-hs-u: - description: Downward eastward wind stress at the surface - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUX] - table: atmos - units: Pa - - tauv_tavg-u-hxy-u: - description: Downward northward wind stress at the surface - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUY] - table: atmos - units: Pa - - tauv_tpt-u-hs-u: - description: Downward northward wind stress at the surface - grids: [gr] - regrid_method: conservative - sources: [model_var: TAUY] - table: atmos - units: Pa - - tnta_tavg-al-hxy-u: - description: Tendency of Air Temperature due to Advection - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: DTCORE] - table: atmos - units: K s-1 - - tntrl_tavg-al-hxy-u: - description: longwave heating rates - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: QRL] - table: atmos - units: K s-1 - - tntrl_tavg-p39-hy-air: - description: zonal mean; hence YZT - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: conservative - sources: [model_var: QRL] - table: atmos - units: K s-1 - - tntrs_tavg-al-hxy-u: - description: shortwave heating rates - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: QRS] - table: atmos - units: K s-1 - - ts_tavg-u-hxy-u: - description: Surface temperature (skin for open ocean) - grids: [gr] - regrid_method: bilinear - sources: [model_var: TS] - table: atmos - units: K - - ts_tpt-u-hs-u: - description: Surface temperature (skin for open ocean) - grids: [gr] - regrid_method: bilinear - sources: [model_var: TS] - table: atmos - units: K - - ts_tpt-u-hxy-u: - description: Temperature of the lower boundary of the atmosphere - grids: [gr] - regrid_method: bilinear - sources: [model_var: TS] - table: atmos - units: K - - ua_tavg-al-hxy-u: - description: Zonal wind (positive in a eastward direction). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - ua_tavg-p19-hxy-air: - description: Zonal wind (positive in a eastward direction). - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - ua_tavg-p39-hy-air: - description: Zonal wind (positive in a eastward direction). - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - ua_tpt-200hPa-hxy-u: - description: Zonal wind (positive in a eastward direction) at 200 hPa, 6hourly - instantaneous - grids: [gr] - regrid_method: bilinear - sources: [model_var: U200] - table: atmos - units: m s-1 - - ua_tpt-al-hs-u: - description: Zonal wind (positive in a eastward direction). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - ua_tpt-al-hxy-u: - description: Zonal wind (positive in a eastward direction). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - ua_tpt-p3-hxy-air: - description: Zonal wind (positive in a eastward direction). - grids: [gr] - levels: {name: plev3, units: Pa} - regrid_method: bilinear - sources: [model_var: U] - table: atmos - units: m s-1 - - va_tavg-al-hxy-u: - description: Meridional wind (positive in a northward direction). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - va_tavg-p19-hxy-air: - description: Meridional wind (positive in a northward direction). - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - va_tavg-p39-hy-air: - description: Meridional wind (positive in a northward direction). - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - va_tpt-200hPa-hxy-u: - description: Meridional wind (positive in a northward direction) at 200 hPa, 6 - hourly instantaneous - grids: [gr] - regrid_method: bilinear - sources: [model_var: V200] - table: atmos - units: m s-1 - - va_tpt-al-hs-u: - description: Meridional wind (positive in a northward direction). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - va_tpt-al-hxy-u: - description: Meridional wind (positive in a northward direction). - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - va_tpt-p3-hxy-air: - description: Meridional wind (positive in a northward direction). - grids: [gr] - levels: {name: plev3, units: Pa} - regrid_method: bilinear - sources: [model_var: V] - table: atmos - units: m s-1 - - wap_tavg-500hPa-hxy-air: - description: at 500 hPa level; commonly referred to as "omega", this represents - the vertical component of velocity in pressure coordinates (positive down) - grids: [gr] - regrid_method: conservative - sources: [model_var: OMEGA500] - table: atmos - units: Pa s-1 - - wap_tavg-al-hxy-u: - description: commonly referred to as "omega", this represents the vertical component - of velocity in pressure coordinates (positive down) - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: OMEGA] - table: atmos - units: Pa s-1 - - wap_tavg-p19-hxy-air: - description: commonly referred to as "omega", this represents the vertical component - of velocity in pressure coordinates (positive down) - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: OMEGA] - table: atmos - units: Pa s-1 - - wap_tavg-p19-hxy-u: - description: commonly referred to as "omega", this represents the vertical component - of velocity in pressure coordinates (positive down) - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: OMEGA] - table: atmos - units: Pa s-1 - - wap_tpt-al-hs-u: - description: commonly referred to as "omega", this represents the vertical component - of velocity in pressure coordinates (positive down) - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: OMEGA] - table: atmos - units: Pa s-1 - - wsg_tmax-h10m-hxy-u: - description: Wind speed gust maximum at 10m above surface - grids: [gr] - regrid_method: conservative - sources: [model_var: U10WITHGUSTS] - table: atmos - units: m s-1 - - zg_tavg-1000hPa-hxy-air: - description: Geopotential height on the 1000 hPa surface - grids: [gr] - regrid_method: bilinear - sources: [model_var: Z1000] - table: atmos - units: m - - zg_tavg-500hPa-hxy-air: - description: geopotential height on the 500 hPa surface - grids: [gr] - regrid_method: bilinear - sources: [model_var: Z500] - table: atmos - units: m - - zg_tavg-al-hxy-u: - description: Geopotential is the sum of the specific gravitational potential energy - relative to the geoid and the specific centripetal potential energy. Geopotential - height is the geopotential divided by the standard acceleration due to gravity. - It is numerically similar to the altitude (or geometric height) and not to the - quantity with standard name height, which is relative to the surface. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - zg_tavg-p19-hxy-air: - description: Geopotential is the sum of the specific gravitational potential energy - relative to the geoid and the specific centripetal potential energy. Geopotential - height is the geopotential divided by the standard acceleration due to gravity. - It is numerically similar to the altitude (or geometric height) and not to the - quantity with standard name height, which is relative to the surface. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - zg_tavg-p39-hy-air: - description: Geopotential is the sum of the specific gravitational potential energy - relative to the geoid and the specific centripetal potential energy. Geopotential - height is the geopotential divided by the standard acceleration due to gravity. - It is numerically similar to the altitude (or geometric height) and not to the - quantity with standard name height, which is relative to the surface. - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - zg_tpt-500hPa-hxy-air: - description: geopotential height on the 500 hPa surface - grids: [gr] - regrid_method: bilinear - sources: [model_var: Z500] - table: atmos - units: m - - zg_tpt-700hPa-hxy-u: - description: 700 hPa geopotential height at 6 hourly instantaneous frequency - grids: [gr] - regrid_method: bilinear - sources: [model_var: Z700] - table: atmos - units: m - - zg_tpt-al-hs-u: - description: Geopotential is the sum of the specific gravitational potential energy - relative to the geoid and the specific centripetal potential energy. Geopotential - height is the geopotential divided by the standard acceleration due to gravity. - It is numerically similar to the altitude (or geometric height) and not to the - quantity with standard name height, which is relative to the surface. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - zg_tpt-al-hxy-u: - description: Geopotential height - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - zg_tpt-p3-hxy-air: - description: Geopotential is the sum of the specific gravitational potential energy - relative to the geoid and the specific centripetal potential energy. Geopotential - height is the geopotential divided by the standard acceleration due to gravity. - It is numerically similar to the altitude (or geometric height) and not to the - quantity with standard name height, which is relative to the surface. - grids: [gr] - levels: {name: plev3, units: Pa} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - zg_tpt-p7h-hxy-air: - description: Geopotential is the sum of the specific gravitational potential energy - relative to the geoid and the specific centripetal potential energy. Geopotential - height is the geopotential divided by the standard acceleration due to gravity. - It is numerically similar to the altitude (or geometric height) and not to the - quantity with standard name height, which is relative to the surface. - grids: [gr] - levels: {name: plev7h, units: Pa} - regrid_method: bilinear - sources: [model_var: Z3] - table: atmos - units: m - - ztp_tavg-u-hxy-u: - description: 2D monthly mean thermal tropopause calculated using WMO tropopause - definition on 3d temperature - grids: [gr] - regrid_method: conservative - sources: [model_var: TROP_Z] - table: atmos - units: m + positive: up + + rsdt_tpt-u-hs-u: FSNTOA+FSUTOA + + rss_tavg-u-hxy-u: FSNS + + rsu_tavg-alh-hxy-u: FUS + + rsu_tpt-alh-hs-u: FUS + + rsucs_tavg-alh-hxy-u: FUSC + + rsucs_tpt-alh-hs-u: FUSC + + rsus_tavg-u-hxy-u: FSDS-FSNS + + rsus_tpt-u-hs-u: FSDS-FSNS + + rsuscs_tavg-u-hxy-u: FSDSC-FSNSC + + rsuscs_tpt-u-hs-u: FSDSC-FSNSC + + rsut_tavg-u-hxy-u: FSUTOA + + rsut_tpt-u-hs-u: FSUTOA + + rsut_tpt-u-hxy-u: FSUTOA + + rsutcs_tavg-u-hxy-u: SOLIN-FSNTOAC + + rsutcs_tpt-u-hs-u: SOLIN-FSNTOAC + + rsutcs_tpt-u-hxy-u: SOLIN-FSNTOAC + + rtmt_tavg-u-hxy-u: FSNT-FLNT + + rtmt_tpt-u-hs-u: FSNT-FLNT + + sfcWind_tavg-h10m-hxy-u: U10 + + sfcWind_tpt-h10m-hs-u: U10 + + sftlf_ti-u-hxy-u: LANDFRAC + + ta_tavg-700hPa-hxy-air: T700 + + ta_tavg-850hPa-hxy-air: T850 + + ta_tavg-al-hxy-u: T + + ta_tavg-p19-hxy-air: T + + ta_tavg-p39-hy-air: T + + ta_tpt-al-hs-u: T + + ta_tpt-al-hxy-u: T + + ta_tpt-p3-hxy-air: T + + tas_tavg-h2m-hxy-u: TREFHT + + tas_tmax-h2m-hxy-u: TREFHTMX + + tas_tmaxavg-h2m-hxy-u: TREFMXAV + + tas_tmin-h2m-hxy-u: TREFHTMN + + tas_tpt-h2m-hs-u: TREFHT + + tas_tpt-h2m-hxy-u: TREFHT + + tauu_tavg-u-hxy-u: TAUX + + tauu_tpt-u-hs-u: TAUX + + tauv_tavg-u-hxy-u: TAUY + + tauv_tpt-u-hs-u: TAUY + + tnta_tavg-al-hxy-u: DTCORE + + tntrl_tavg-al-hxy-u: QRL + + tntrl_tavg-p39-hy-air: QRL + + tntrs_tavg-al-hxy-u: QRS + + ts_tavg-u-hxy-u: TS + + ts_tpt-u-hs-u: TS + + ts_tpt-u-hxy-u: TS + + ua_tavg-al-hxy-u: U + + ua_tavg-p19-hxy-air: U + + ua_tavg-p39-hy-air: U + + ua_tpt-200hPa-hxy-u: U200 + + ua_tpt-al-hs-u: U + + ua_tpt-al-hxy-u: U + + ua_tpt-p3-hxy-air: U + + va_tavg-al-hxy-u: V + + va_tavg-p19-hxy-air: V + + va_tavg-p39-hy-air: V + + va_tpt-200hPa-hxy-u: V200 + + va_tpt-al-hs-u: V + + va_tpt-al-hxy-u: V + + va_tpt-p3-hxy-air: V + + wap_tavg-500hPa-hxy-air: OMEGA500 + + wap_tavg-al-hxy-u: OMEGA + + wap_tavg-p19-hxy-air: OMEGA + + wap_tavg-p19-hxy-u: OMEGA + + wap_tpt-al-hs-u: OMEGA + + wsg_tmax-h10m-hxy-u: U10WITHGUSTS + + zg_tavg-1000hPa-hxy-air: Z1000 + + zg_tavg-500hPa-hxy-air: Z500 + + zg_tavg-al-hxy-u: Z3 + + zg_tavg-p19-hxy-air: Z3 + + zg_tavg-p39-hy-air: Z3 + + zg_tpt-500hPa-hxy-air: Z500 + + zg_tpt-700hPa-hxy-u: Z700 + + zg_tpt-al-hs-u: Z3 + + zg_tpt-al-hxy-u: Z3 + + zg_tpt-p3-hxy-air: Z3 + + zg_tpt-p7h-hxy-air: Z3 + + ztp_tavg-u-hxy-u: TROP_Z diff --git a/data/noresm_to_cmip7_atmosChem.yaml b/data/noresm_to_cmip7_atmosChem.yaml index 69fe195d..943d8dc3 100644 --- a/data/noresm_to_cmip7_atmosChem.yaml +++ b/data/noresm_to_cmip7_atmosChem.yaml @@ -1,149 +1,39 @@ -dataset_overrides: - institution_id: NCC - nominal_resolution: 200 km - source_id: NorESM3 +grids: [gr] variables: cfc11_tavg-u-hm-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. The chemical formula of CFC11 is CFCl3. The - IUPAC name for CFC11 is trichloro-fluoro-methane. - grids: [gr] - regrid_method: conservative - sources: [model_var: f11vmr] - table: atmosChem + formula: f11vmr units: '1.00E-12' cfc12_tavg-u-hm-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. The chemical formula of CFC12 is CF2Cl2. The - IUPAC name for CFC12 is dichloro-difluoro-methane. - grids: [gr] - regrid_method: conservative - sources: [model_var: f12vmr] - table: atmosChem + formula: f12vmr units: '1.00E-12' - ch4_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: ch4vmr] - table: atmosChem - units: mol mol-1 + ch4_tavg-al-hxy-u: ch4vmr - ch4_tavg-p19-hxy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: ch4vmr] - table: atmosChem - units: mol mol-1 + ch4_tavg-p19-hxy-air: ch4vmr - ch4_tavg-p39-hy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: conservative - sources: [model_var: ch4vmr] - table: atmosChem - units: mol mol-1 + ch4_tavg-p39-hy-air: ch4vmr ch4_tavg-u-hm-air: - description: Global Mean Mole Fraction of CH4 - grids: [gr] - regrid_method: conservative - sources: [model_var: ch4vmr] - table: atmosChem + formula: ch4vmr units: '1.00E-09' - dms_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: DMS] - table: atmosChem - units: mol mol-1 + dms_tavg-al-hxy-u: DMS - n2o_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. The chemical formula of nitrous oxide - is N2O. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: n2ovmr] - table: atmosChem - units: mol mol-1 + n2o_tavg-al-hxy-u: n2ovmr - n2o_tavg-p19-hxy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. The chemical formula of nitrous oxide - is N2O. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: n2ovmr] - table: atmosChem - units: mol mol-1 + n2o_tavg-p19-hxy-air: n2ovmr - n2o_tavg-p39-hy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. The chemical formula of nitrous oxide - is N2O. - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: conservative - sources: [model_var: n2ovmr] - table: atmosChem - units: mol mol-1 + n2o_tavg-p39-hy-air: n2ovmr n2o_tavg-u-hm-air: - description: Global mean Nitrous Oxide (N2O) - grids: [gr] - regrid_method: conservative - sources: [model_var: n2ovmr] - table: atmosChem + formula: n2ovmr units: '1.00E-09' - o3_tavg-al-hxy-u: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: standard_hybrid_sigma, src_axis_bnds: ilev, src_axis_name: lev, - units: '1'} - regrid_method: conservative - sources: [model_var: ozone] - table: atmosChem - units: mol mol-1 + o3_tavg-al-hxy-u: ozone - o3_tavg-p19-hxy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: plev19, units: Pa} - regrid_method: conservative - sources: [model_var: ozone] - table: atmosChem - units: mol mol-1 + o3_tavg-p19-hxy-air: ozone - o3_tavg-p39-hy-air: - description: Mole fraction is used in the construction mole_fraction_of_X_in_Y, - where X is a material constituent of Y. - grids: [gr] - levels: {name: plev39, units: Pa} - regrid_method: conservative - sources: [model_var: ozone] - table: atmosChem - units: mol mol-1 + o3_tavg-p39-hy-air: ozone diff --git a/data/noresm_to_cmip7_land.yaml b/data/noresm_to_cmip7_land.yaml index eea75477..1a242e54 100644 --- a/data/noresm_to_cmip7_land.yaml +++ b/data/noresm_to_cmip7_land.yaml @@ -1,1376 +1,273 @@ -dataset_overrides: - institution_id: NCC - nominal_resolution: 200 km - source_id: NorESM3 +grids: [gr] variables: - baresoilFrac_tavg-u-hxy-u: - description: Percentage of entire grid cell that is covered by bare soil. - formula: (1-FATES_AREA_PLANTS)*FATES_FRACTION*100 - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_AREA_PLANTS, model_var: FATES_FRACTION] - table: land - units: '%' - - burntFractionAll_tavg-u-hxy-u: - description: Percentage of grid cell burned due to all fires including natural - and anthropogenic fires and those associated with anthropogenic land use change - formula: (FATES_BURNFRAC *3600*24*30*100)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_BURNFRAC, model_var: FATES_FRACTION] - table: land - units: '%' - - c3PftFrac_tavg-u-hxy-u: - description: Percentage of entire grid cell that is covered by C3 PFTs (including - grass, crops, and trees). - formula: (FATES_AREA_PLANTS-sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[14], - dimname='fates_levpft'))*FATES_FRACTION*100 - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_AREA_PLANTS, model_var: FATES_CANOPYCROWNAREA_PF, - model_var: FATES_FRACTION] - table: land - units: '%' - - c4PftFrac_tavg-u-hxy-u: - description: Percentage of entire grid cell that is covered by C4 PFTs (including - grass and crops). - formula: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[14], dimname='fates_levpft')*FATES_FRACTION*100 - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CANOPYCROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - cLand_tavg-u-hxy-lnd: - description: Report missing data over ocean grid cells. For fractional land report - value averaged over the land fraction. - formula: TOTECOSYSC / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTECOSYSC] - table: land - units: kg m-2 - - cLeaf_tavg-u-hxy-lnd: - description: Carbon mass per unit area in leaves. - formula: (FATES_LEAFC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LEAFC, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cLitterCwd_tavg-u-hxy-lnd: - description: '"Content" indicates a quantity per unit area. "Wood debris" means - dead organic matter composed of coarse wood. It is distinct from fine litter. - The precise distinction between "fine" and "coarse" is model dependent.' - formula: (sumover_index(FATES_LITTER_BG_CWD_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LITTER_BG_CWD_EL, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cLitterSubSurf_tavg-u-hxy-lnd: - description: subsurface litter pool fed by root inputs. - formula: (sumover_index(FATES_LITTER_BG_FINE_EL, indexlist=[1], dimname='fates_levelem') - + sumover_index(FATES_LITTER_BG_CWD_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LITTER_BG_FINE_EL, model_var: FATES_LITTER_BG_CWD_EL, - model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cLitterSurf_tavg-u-hxy-lnd: - description: Surface or near-surface litter pool fed by leaf and above-ground - litterfall - formula: (sumover_index(FATES_LITTER_AG_FINE_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LITTER_AG_FINE_EL, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cOther_tavg-u-hxy-lnd: - description: E.g. fruits, seeds, etc. - formula: (FATES_SEED_BANK + FATES_REPROC + FATES_STOREC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_SEED_BANK, model_var: FATES_REPROC, model_var: FATES_STOREC, - model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cProduct_tavg-u-hxy-lnd: - description: Carbon mass per unit area in that has been removed from the environment - through land use change. - formula: TOT_WOODPRODC / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOT_WOODPRODC] - table: land - units: kg m-2 - - cRoot_tavg-u-hxy-lnd: - description: including fine and coarse roots. - formula: (FATES_VEGC - FATES_VEGC_ABOVEGROUND) * FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC, model_var: FATES_VEGC_ABOVEGROUND, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cSoilPools_tavg-u-hxy-lnd: - description: For models with multiple soil carbon pools, report each pool here. - If models also have vertical discretisation these should be aggregated - grids: [gr] - regrid_method: conservative - sources: [model_var: SOIL1C, model_var: SOIL2C, model_var: SOIL3C, model_var: SOIL4C] - table: land - units: kg m-2 - - cSoil_tavg-d100cm-hxy-lnd: - description: Report missing data over ocean grid cells. For fractional land report - value averaged over the land fraction. - formula: TOTSOMC_1m / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTSOMC_1m] - table: land - units: kg m-2 - - cSoil_tavg-sl-hxy-lnd: - description: for models with vertically discretised soil carbon, report total - soil carbon for each level - formula: SOILC_vr * ZSOI / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILC_vr, model_var: ZSOI] - table: land - units: kg m-2 - - cSoil_tavg-u-hxy-lnd: - description: Carbon mass in the full depth of the soil model. - formula: TOTSOMC / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTSOMC] - table: land - units: kg m-2 - - cStem_tavg-u-hxy-lnd: - description: including sapwood and hardwood. - formula: (FATES_VEGC_ABOVEGROUND - FATES_LEAFC - FATES_REPROC - FATES_STOREC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC_ABOVEGROUND, model_var: FATES_LEAFC, model_var: FATES_REPROC, - model_var: FATES_STOREC, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cVegLut_tpt-u-hxy-multi: - description: end of year values (not annual mean) - formula: (FATES_VEGC_LU)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC_LU, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cVeg_tavg-u-hxy-lnd: - description: Carbon mass per unit area in vegetation. - formula: FATES_VEGC *FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cVeg_tavg-u-hxy-ng: - description: '"Content" indicates a quantity per unit area. "Vegetation" means - any plants e.g. trees, shrubs, grass. Plants are autotrophs i.e. "producers" - of biomass using carbon obtained from carbon dioxide.' - formula: (sumover_index(FATES_VEGC_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cVeg_tavg-u-hxy-shb: - description: '"Content" indicates a quantity per unit area. "Vegetation" means - any plants e.g. trees, shrubs, grass. Plants are autotrophs i.e. "producers" - of biomass using carbon obtained from carbon dioxide.' - formula: (sumover_index(FATES_VEGC_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cVeg_tavg-u-hxy-tree: - description: '"Content" indicates a quantity per unit area. "Vegetation" means - any plants e.g. trees, shrubs, grass. Plants are autotrophs i.e. "producers" - of biomass using carbon obtained from carbon dioxide.' - formula: (sumover_index(FATES_VEGC_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_VEGC_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 - - cnc_tavg-u-hxy-u: - description: Canopy covered fraction - formula: (FATES_AREA_PLANTS * 100)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_AREA_PLANTS, model_var: FATES_FRACTION] - table: land - units: '%' - - cropFrac_tavg-u-hxy-u: - description: Percentage of entire grid cell that is covered by crop. - formula: (sumover_index(FATES_PATCHAREA_LU, indexlist=[5], dimname='fates_levlanduse'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_PATCHAREA_LU, model_var: FATES_FRACTION] - table: land - units: '%' - - depthsl_ti-u-hxy-u: - description: Total (cumulative) thickness of all soil layers. This is the sum - of individual thicknesses of all soil layers. - formula: sum(DZSOI) - grids: [gr] - regrid_method: conservative - sources: [model_var: DZSOI] - table: land - units: m - - esn_tavg-u-hxy-lnd: - description: The flux due to conversion of liquid or solid water into vapor at - the surface where there is snow on land - grids: [gr] - regrid_method: conservative - sources: [model_var: QSNOEVAP] - table: land - units: kg m-2 s-1 - - evspsblsoi_tavg-u-hxy-lnd: - description: includes sublimation. - grids: [gr] - regrid_method: conservative - sources: [model_var: QSOIL] - table: land - units: kg m-2 s-1 - - evspsblsoi_tavg-u-hxy-u: - description: Water evaporation from soil - grids: [gr] - regrid_method: conservative - sources: [model_var: QSOIL] - table: land - units: kg m-2 s-1 - - evspsblveg_tavg-u-hxy-lnd: - description: the canopy evaporation+sublimation (if present in model). - grids: [gr] - regrid_method: conservative - sources: [model_var: QVEGE] - table: land - units: kg m-2 s-1 - - evspsblveg_tavg-u-hxy-u: - description: Evaporation from canopy - grids: [gr] - regrid_method: conservative - sources: [model_var: QVEGE] - table: land - units: kg m-2 s-1 - - fBNF_tavg-u-hxy-lnd: - description: The fixation (uptake of nitrogen gas directly from the atmosphere) - of nitrogen due to biological processes. - grids: [gr] - regrid_method: conservative - sources: [model_var: NFIX_TO_SMINN] - table: land - units: kg m-2 s-1 - - fCLandToOcean_tavg-u-hxy-lnd: - description: leached carbon etc that goes into run off or river routing and finds - its way into ocean should be reported here. - formula: SOM_C_LEACHED /1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: SOM_C_LEACHED] - table: land - units: kg m-2 s-1 - - fDeforestToProduct_tavg-u-hxy-lnd: - description: When land use change results in deforestation of natural vegetation - (trees or grasslands) then natural biomass is removed. The treatment of deforested - biomass differs significantly across models, but it should be straight-forward - to compare deforested biomass across models. - formula: (FATES_LUCHANGE_WOODPROD_C_FLUX / (365 * 86400))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LUCHANGE_WOODPROD_C_FLUX, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fFireAll_tavg-u-hxy-lnd: - description: From all sources, Including natural, anthropogenic and Land-use - change. Only total fire emissions can be compared to observations. - formula: (FATES_FIRE_CLOSS)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_FIRE_CLOSS, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fFireNat_tavg-u-hxy-lnd: - description: CO2 emissions from natural fires - formula: (FATES_FIRE_CLOSS - FATES_FIRE_CLOSS_LANDUSECHANGE)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_FIRE_CLOSS, model_var: FATES_FIRE_CLOSS_LANDUSECHANGE, - model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fFire_tavg-u-hxy-lnd: - description: CO2 emissions (expressed as a carbon mass flux) from natural fires - + human ignition fires as calculated by the fire module of the DGVM, but excluding - any CO2 flux from fire included in fLuc, defined below (CO2 Flux to Atmosphere - from Land Use Change). - formula: (FATES_FIRE_CLOSS - FATES_FIRE_CLOSS_LANDUSECHANGE)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_FIRE_CLOSS, model_var: FATES_FIRE_CLOSS_LANDUSECHANGE, - model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fHarvestToProduct_tavg-u-hxy-lnd: - description: be it food or wood harvest, any carbon that is subsequently stored - is reported here - formula: (FATES_HARVEST_WOODPROD_C_FLUX / (365 * 86400))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_HARVEST_WOODPROD_C_FLUX, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fLitterSoil_tavg-u-hxy-lnd: - description: Carbon mass flux per unit area into soil from litter (dead plant - material in or above the soil). - formula: (sumover_index(FATES_LITTER_OUT_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LITTER_OUT_EL, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fLuc_tavg-u-hxy-lnd: - description: Net Carbon Mass Flux into Atmosphere due to Land Use Change - formula: LAND_USE_FLUX / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: LAND_USE_FLUX] - table: land - units: kg m-2 s-1 - - fLulccAtmLut_tavg-u-hxy-multi: - description: This annual mean flux refers to the transfer of carbon directly to - the atmosphere due to any land-use or land-cover change activities. Include - carbon transferred due to deforestation or agricultural directly into atmosphere, - and emissions form anthropogenic pools into atmosphere - grids: [gr] - regrid_method: conservative - sources: [model_var: DWT_CONV_CFLUX] - table: land - units: kg m-2 s-1 - - fNLandToOcean_tavg-u-hxy-lnd: - description: leached nitrogen etc that goes into run off or river routing and - finds its way into ocean should be reported here. - formula: (SMIN_NO3_LEACHED+ SMIN_NO3_RUNOFF) / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: SMIN_NO3_LEACHED, model_var: SMIN_NO3_RUNOFF] - table: land - units: kg m-2 s-1 - - fNProduct_tavg-u-hxy-lnd: - description: When land use change results in deforestation of natural vegetation - (trees or grasslands) then natural biomass is removed. The treatment of deforested - biomass differs significantly across models, but it should be straight-forward - to compare deforested biomass across models. - formula: DWT_WOODPRODN_GAIN + DWT_CROPPROD1N_GAIN - grids: [gr] - regrid_method: conservative - sources: [model_var: DWT_WOODPRODN_GAIN, model_var: DWT_CROPPROD1N_GAIN] - table: land - units: kg m-2 s-1 - - fNleach_tavg-u-hxy-lnd: - description: In accordance with common usage in geophysical disciplines, "flux" - implies per unit area, called "flux density" in physics. The specification of - a physical process by the phrase "due_to_" process means that the quantity named - is a single term in a sum of terms which together compose the general quantity - named by omitting the phrase. "Leaching" means the loss of water soluble chemical - species from soil. Runoff is the liquid water which drains from land. If not - specified, "runoff" refers to the sum of surface runoff and subsurface drainage. - formula: SMIN_NO3_LEACHED / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: SMIN_NO3_LEACHED] - table: land - units: kg m-2 s-1 - - fNloss_tavg-u-hxy-lnd: - description: Not all models split losses into gaseous and leaching - formula: DENIT+ F_N2O_NIT+ SMIN_NO3_LEACHED + SMIN_NO3_RUNOFF - grids: [gr] - regrid_method: conservative - sources: [model_var: DENIT, model_var: F_N2O_NIT, model_var: SMIN_NO3_LEACHED, - model_var: SMIN_NO3_RUNOFF] - table: land - units: kg m-2 s-1 - - fProductDecomp_tavg-u-hxy-lnd: - description: Flux of CO2 from product pools into the atmosphere. Examples of "forestry - and agricultural products" are paper, cardboard, furniture, timber for construction, - biofuels and food for both humans and livestock. Models that simulate land use - changes have one or more pools of carbon that represent these products in order - to conserve carbon and allow its eventual release into the atmosphere, for example, - when the products decompose in landfill sites. - formula: TOT_WOODPRODC_LOSS /1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOT_WOODPRODC_LOSS] - table: land - units: kg m-2 s-1 - - fVegFire_tavg-u-hxy-lnd: - description: Required for unambiguous separation of vegetation and soil + litter - turnover times, since total fire flux draws from both sources - formula: (FATES_FIRE_CLOSS)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_FIRE_CLOSS, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fVegLitterMortality_tavg-u-hxy-lnd: - description: needed to separate changing vegetation C turnover times resulting - from changing allocation versus changing mortality - formula: (FATES_MORTALITY_CFLUX_CANOPY+FATES_MORTALITY_CFLUX_USTORY)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_MORTALITY_CFLUX_CANOPY, model_var: FATES_MORTALITY_CFLUX_USTORY, - model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fVegLitterSenescence_tavg-u-hxy-lnd: - description: needed to separate changing vegetation C turnover times resulting - from changing allocation versus changing mortality - formula: (sumover_index(FATES_LITTER_IN_EL, indexlist=[1], dimname='fates_levelem')-FATES_MORTALITY_CFLUX_CANOPY+FATES_MORTALITY_CFLUX_USTORY)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LITTER_IN_EL, model_var: FATES_MORTALITY_CFLUX_CANOPY, - model_var: FATES_MORTALITY_CFLUX_USTORY, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fVegLitter_tavg-u-hxy-lnd: - description: In accordance with common usage in geophysical disciplines, "flux" - implies per unit area, called "flux density" in physics. "Vegetation" means - any living plants e.g. trees, shrubs, grass. "Litter" is dead plant material - in or above the soil. It is distinct from coarse wood debris. The precise distinction - between "fine" and "coarse" is model dependent. The sum of the quantities with - standard names mass_flux_of_carbon_into_litter_from_vegetation_due_to_mortality - and mass_flux_of_carbon_into_litter_from_vegetation_due_to_senescence is mass_flux_of_carbon_into_litter_from_vegetation. - formula: (sumover_index(FATES_LITTER_IN_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LITTER_IN_EL, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - fVegSoilMortality_tavg-u-hxy-lnd: - description: needed to separate changing vegetation C turnover times resulting - from changing allocation versus changing mortality - formula: (FATES_MORTALITY_CFLUX_CANOPY+FATES_MORTALITY_CFLUX_USTORY)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_MORTALITY_CFLUX_CANOPY, model_var: FATES_MORTALITY_CFLUX_USTORY, - model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - fracInLut_tsum-u-hxy-lnd: - description: Cumulative percentage transitions over the year; note that percentage - should be reported as a percentage of atmospheric grid cell - formula: (FATES_TRANSITION_MATRIX_LULU)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_TRANSITION_MATRIX_LULU, model_var: FATES_FRACTION] - table: land - units: '%' - - fracLut_tpt-u-hxy-u: - description: 'End of month values (not monthly mean); note that percentage should - be reported as percentage of land grid cell (example: frac_lnd = 0.5, frac_ocn - = 0.5, frac_crop_lnd = 0.2 (of land portion of grid cell), then frac_lut(crop) - = 0.5*0.2 = 0.1)' - grids: [gr] - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - table: land - units: '%' - fracOutLut_tsum-u-hxy-lnd: - description: Cumulative percentage transitions over the year; note that percentage - should be reported as percentage of atmospheric grid cell - formula: (FATES_TRANSITION_MATRIX_LULU)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_TRANSITION_MATRIX_LULU, model_var: FATES_FRACTION] - table: land - units: '%' - - gppLut_tavg-u-hxy-multi: - description: The rate of synthesis of biomass from inorganic precursors by autotrophs - ("producers") expressed as the mass of carbon which it contains. For example, - photosynthesis in plants or phytoplankton. The producers also respire some of - this biomass and the difference is referred to as the net primary production. - Reported on land-use tiles. - formula: (FATES_GPP_LU)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_LU, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - gppVgt_tavg-u-hxy-multi: - description: The rate of synthesis of biomass from inorganic precursors by autotrophs - ("producers") expressed as the mass of carbon which it contains. For example, - photosynthesis in plants or phytoplankton. The producers also respire some of - this biomass and the difference is referred to as the net primary production. - Reported on land-use tiles. - formula: (FATES_GPP_PF)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - gpp_tavg-u-hxy-lnd: - description: The rate of synthesis of biomass from inorganic precursors by autotrophs - ("producers") expressed as the mass of carbon which it contains. For example, - photosynthesis in plants or phytoplankton. The producers also respire some of - this biomass and the difference is referred to as the net primary production. - formula: (FATES_GPP)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - gpp_tavg-u-hxy-ng: - description: Total GPP of grass in the grid cell - formula: (sumover_index(FATES_GPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - gpp_tavg-u-hxy-shb: - description: Total GPP of shrubs in the grid cell - formula: (sumover_index(FATES_GPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - gpp_tavg-u-hxy-tree: - description: Total GPP of trees in the grid cell - formula: (sumover_index(FATES_GPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - grassFracC3_tavg-u-hxy-u: - description: Percentage of entire grid cell covered by C3 natural grass. - formula: (FATES_CROWNAREA_PF(12+13))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - grassFracC4_tavg-u-hxy-u: - description: Percentage of entire grid cell covered by C4 natural grass. - formula: (sumover_index(FATES_CROWNAREA_PF, indexlist=[14], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - grassFrac_tavg-u-hxy-u: - description: Percentage of entire grid cell that is covered by natural grass. - formula: sumover_index(FATES_CROWNAREA_PF, indexlist=[12, 13, 14], dimname='fates_levpft')*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - hfdsl_tavg-u-hxy-lnd: - description: Ground heat flux at 3hr - grids: [gr] - regrid_method: conservative - sources: [model_var: FGR] - table: land - units: W m-2 - - lai_tavg-u-hxy-lnd: - description: A ratio obtained by dividing the total upper leaf surface area of - vegetation by the (horizontal) surface area of the land on which it grows. - formula: (FATES_LAI)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LAI, model_var: FATES_FRACTION] - table: land - units: '1' - - landCoverFrac_tavg-u-hxy-u: - description: The categories may differ from model to model, depending on their PFT - definitions. This may include natural PFTs, anthropogenic PFTs, bare soil, - lakes, urban areas, etc. Sum of all should equal the fraction of the grid-cell - that is land. - grids: [gr] - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - table: land - units: '%' - - mrro_tavg-u-hxy-lnd: - description: the total runoff (including "drainage" through the base of the soil - model) leaving the land portion of the grid cell. - grids: [gr] - regrid_method: conservative - sources: [model_var: QRUNOFF] - table: land - units: kg m-2 s-1 - - mrrob_tavg-u-hxy-lnd: - description: subsurface_runoff_flux - grids: [gr] - regrid_method: conservative - sources: [model_var: QDRAI] - table: land - units: kg m-2 s-1 - - mrros_tavg-u-hxy-lnd: - description: the total surface runoff leaving the land portion of the grid cell. - grids: [gr] - regrid_method: conservative - sources: [model_var: QOVER] - table: land - units: kg m-2 s-1 - - mrsfl_tavg-sl-hxy-lnd: - description: in each soil layer, the mass of water in ice phase. Reported as - "missing" for grid cells occupied entirely by "sea" - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILICE] - table: land - units: kg m-2 - - mrsll_tavg-sl-hxy-lnd: - description: in each soil layer, the mass of water in liquid phase. Reported - as "missing" for grid cells occupied entirely by "sea" - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILLIQ] - table: land - units: kg m-2 - - mrso_tavg-u-hxy-lnd: - description: the mass per unit area (summed over all soil layers) of water in - all phases. - formula: TOTSOILLIQ+TOTSOILICE - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTSOILLIQ, model_var: TOTSOILICE] - table: land - units: kg m-2 - - mrsofc_ti-u-hxy-lnd: - description: 'reported "where land": divide the total water holding capacity of - all the soil in the grid cell by the land area in the grid cell; reported as - "missing" where the land fraction is 0.' - grids: [gr] - regrid_method: conservative - sources: [model_var: SUCSAT] - table: land - units: kg m-2 - - mrsol_tavg-d10cm-hxy-lnd: - description: the mass of water in all phases in a thin surface soil layer. - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILWATER_10CM] - table: land - units: kg m-2 - - mrsol_tavg-sl-hxy-lnd: - description: in each soil layer, the mass of water in all phases, including ice. Reported - as "missing" for grid cells occupied entirely by "sea" - formula: SOILLIQ+SOILICE - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILLIQ, model_var: SOILICE] - table: land - units: kg m-2 - - mrsol_tpt-d10cm-hxy-lnd: - description: the mass of water in all phases in a thin surface soil layer. - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILWATER_10CM] - table: land - units: kg m-2 - - mrtws_tavg-u-hxy-lnd: - description: canopy_and_surface_and_subsurface_water_amount - grids: [gr] - regrid_method: conservative - sources: [model_var: TWS] - table: land - units: kg m-2 - - nLand_tavg-u-hxy-lnd: - description: Report missing data over ocean grid cells. For fractional land report - value averaged over the land fraction. - formula: TOTECOSYSN / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTECOSYSN] - table: land - units: kg m-2 - - nMineral_tavg-u-hxy-lnd: - description: SUM of ammonium, nitrite, nitrate, etc over all soil layers - formula: SMINN / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: SMINN] - table: land - units: kg m-2 - - nSoil_tavg-u-hxy-lnd: - description: Report missing data over ocean grid cells. For fractional land report - value averaged over the land fraction. - formula: (TOTSOMN+SMINN) / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: TOTSOMN, model_var: SMINN] - table: land - units: kg m-2 - - nbp_tavg-u-hxy-lnd: - description: This is the net mass flux of carbon between land and atmosphere calculated - as photosynthesis MINUS the sum of plant and soil respiration, carbonfluxes from - fire, harvest, grazing and land use change. Positive flux is into the land. - formula: -FCO2*(12.01/44.01) - grids: [gr] - regrid_method: conservative - sources: [model_var: FCO2] - table: land - units: kg m-2 s-1 - - nep_tavg-u-hxy-lnd: - description: Net Ecosystem Exchange - formula: (FATES_NEP)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NEP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - nppLeaf_tavg-u-hxy-lnd: - description: This is the rate of carbon uptake by leaves due to NPP - formula: (FATES_LEAF_ALLOC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LEAF_ALLOC, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - nppLut_tavg-u-hxy-multi: - description: '"Production of carbon" means the production of biomass expressed - as the mass of carbon which it contains. Net primary production is the excess - of gross primary production (rate of synthesis of biomass from inorganic precursors) - by autotrophs ("producers"), for example, photosynthesis in plants or phytoplankton, - over the rate at which the autotrophs themselves respire some of this biomass. - "Productivity" means production per unit area. The phrase "expressed_as" is - used in the construction A_expressed_as_B, where B is a chemical constituent - of A. It means that the quantity indicated by the standard name is calculated - solely with respect to the B contained in A, neglecting all other chemical constituents - of A.' - formula: (FATES_NPP_LU)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NPP_LU, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - nppOther_tavg-u-hxy-lnd: - description: added for completeness with npp_root - formula: (FATES_SEED_ALLOC+FATES_STORE_ALLOC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_SEED_ALLOC, model_var: FATES_STORE_ALLOC, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - nppRoot_tavg-u-hxy-lnd: - description: This is the rate of carbon uptake by roots due to NPP - formula: (FATES_CROOT_ALLOC+FATES_FROOT_ALLOC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CROOT_ALLOC, model_var: FATES_FROOT_ALLOC, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - nppStem_tavg-u-hxy-lnd: - description: added for completeness with npp_root - formula: (FATES_STEM_ALLOC)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_STEM_ALLOC, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - nppVgt_tavg-u-hxy-multi: - description: '"Production of carbon" means the production of biomass expressed - as the mass of carbon which it contains. Net primary production is the excess - of gross primary production (rate of synthesis of biomass from inorganic precursors) - by autotrophs ("producers"), for example, photosynthesis in plants or phytoplankton, - over the rate at which the autotrophs themselves respire some of this biomass. - "Productivity" means production per unit area. The phrase "expressed_as" is - used in the construction A_expressed_as_B, where B is a chemical constituent - of A. It means that the quantity indicated by the standard name is calculated - solely with respect to the B contained in A, neglecting all other chemical constituents - of A.' - formula: (FATES_NPP_PF)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - npp_tavg-u-hxy-lnd: - description: '"Production of carbon" means the production of biomass expressed - as the mass of carbon which it contains. Net primary production is the excess - of gross primary production (rate of synthesis of biomass from inorganic precursors) - by autotrophs ("producers"), for example, photosynthesis in plants or phytoplankton, - over the rate at which the autotrophs themselves respire some of this biomass. - "Productivity" means production per unit area. The phrase "expressed_as" is - used in the construction A_expressed_as_B, where B is a chemical constituent - of A. It means that the quantity indicated by the standard name is calculated - solely with respect to the B contained in A, neglecting all other chemical constituents - of A.' - formula: (FATES_NPP)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NPP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - npp_tavg-u-hxy-ng: - description: Total NPP of grass in the grid cell - formula: (sumover_index(FATES_NPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - npp_tavg-u-hxy-shb: - description: Total NPP of shrubs in the grid cell - formula: (sumover_index(FATES_NPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - npp_tavg-u-hxy-tree: - description: Total NPP of trees in the grid cell - formula: (sumover_index(FATES_NPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - orog_tavg-u-hxy-is: - description: This is needed in case the ice sheet elevation changes in time - grids: [gr] - regrid_method: conservative - sources: [model_var: usurf] - table: land - units: m - - orog_ti-u-hxy-u: - description: height above the geoid; as defined here, "the geoid" is a surface - of constant geopotential that, if the ocean were at rest, would coincide with - mean sea level. Under this definition, the geoid changes as the mean volume - of the ocean changes (e.g., due to glacial melt, or global warming of the ocean). Reported - here is the height above the present-day geoid (0.0 over ocean). - grids: [gr] - regrid_method: conservative - sources: [model_var: PHIS] - table: land - units: m - - pastureFrac_tavg-u-hxy-u: - description: fraction of entire grid cell that is covered by anthropogenic pasture. - formula: (sumover_index(FATES_PATCHAREA_LU, indexlist=[4], dimname='fates_levlanduse'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_PATCHAREA_LU, model_var: FATES_FRACTION] - table: land - units: '%' - - prveg_tavg-u-hxy-lnd: - description: the precipitation flux that is intercepted by the vegetation canopy - (if present in model) before reaching the ground. - grids: [gr] - regrid_method: conservative - sources: [model_var: QINTR] - table: land - units: kg m-2 s-1 - - qgwr_tavg-u-hxy-lnd: - description: water_flux_from_soil_layer_to_groundwater - grids: [gr] - regrid_method: conservative - sources: [model_var: QCHARGE] - table: land - units: kg m-2 s-1 - - raLeaf_tavg-u-hxy-lnd: - description: added for completeness with Ra_root - formula: (FATES_LEAFMAINTAR + (FATES_GROWTH_RESP * FATES_LEAFC_ALLOC / FATES_NPP))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LEAFMAINTAR, model_var: FATES_GROWTH_RESP, model_var: FATES_LEAFC_ALLOC, - model_var: FATES_NPP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - raLut_tavg-u-hxy-multi: - description: Carbon mass flux per unit area into atmosphere due to autotrophic - respiration on land (respiration by producers) [see rh for heterotrophic production]. - Calculated on land-use tiles. - formula: (FATES_GPP_LU-FATES_NPP_LU)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_LU, model_var: FATES_NPP_LU, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - raRoot_tavg-u-hxy-lnd: - description: Total autotrophic respiration from all belowground plant parts. This - has benchmarking value because the sum of Rh and root respiration can be compared - to observations of total soil respiration. - formula: ((FATES_FROOTMAINTAR+FATES_CROOTMAINTAR) + (FATES_GROWTH_RESP * (FATES_FROOT_ALLOC - + FATES_CROOT_ALLOC) / FATES_NPP))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_FROOTMAINTAR, model_var: FATES_CROOTMAINTAR, { - model_var: FATES_GROWTH_RESP}, model_var: FATES_FROOT_ALLOC, model_var: FATES_CROOT_ALLOC, - model_var: FATES_NPP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - raStem_tavg-u-hxy-lnd: - description: added for completeness with Ra_root - formula: (FATES_LSTEMMAINTAR)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_LSTEMMAINTAR, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - raVgt_tavg-u-hxy-multi: - description: Carbon mass flux per unit area into atmosphere due to autotrophic - respiration on land (respiration by producers) [see rh for heterotrophic production]. - Calculated on vegetation type. - formula: (FATES_AUTORESP)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_AUTORESP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - ra_tavg-u-hxy-lnd: - description: Carbon mass flux per unit area into atmosphere due to autotrophic - respiration on land (respiration by producers) [see rh for heterotrophic production] - formula: FATES_AUTORESP*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_AUTORESP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - ra_tavg-u-hxy-ng: - description: Total RA of grass in the grid cell - formula: (sumover_index(FATES_GPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft')-sumover_index(FATES_NPP_PF, - indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - ra_tavg-u-hxy-shb: - description: Total RA of shrubs in the grid cell - formula: (sumover_index(FATES_GPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft')-sumover_index(FATES_NPP_PF, - indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - ra_tavg-u-hxy-tree: - description: Total RA of trees in the grid cell - formula: (sumover_index(FATES_GPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft')-sumover_index(FATES_NPP_PF, - indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_GPP_PF, model_var: FATES_NPP_PF, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - residualFrac_tavg-u-hxy-u: - description: Percentage of entire grid cell that is land and is covered by neither - vegetation nor bare-soil (e.g., urban, ice, lakes, etc.) - formula: 1-FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_FRACTION] - table: land - units: '%' - - rhLitter_tavg-u-hxy-lnd: - description: Needed to calculate litter bulk turnover time. Includes respiration - from CWD as well. - formula: LITTERC_HR /1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: LITTERC_HR] - table: land - units: kg m-2 s-1 - - rhSoil_tavg-u-hxy-lnd: - description: Needed to calculate soil bulk turnover time - formula: SOILC_HR /1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: SOILC_HR] - table: land - units: kg m-2 s-1 - - rhVgt_tavg-u-hxy-multi: - description: Carbon mass flux per unit area into atmosphere due to heterotrophic - respiration on land (respiration by consumers), calculated on vegetation type. - formula: (FATES_HET_RESP)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_HET_RESP, model_var: FATES_FRACTION] - table: land - units: kg m-2 s-1 - - rh_tavg-u-hxy-lnd: - description: Carbon mass flux per unit area into atmosphere due to heterotrophic - respiration on land (respiration by consumers) - formula: HR / 1000 - grids: [gr] - regrid_method: conservative - sources: [model_var: HR] - table: land - units: kg m-2 s-1 - - rsds_tavg-u-hxy-lnd: - description: Surface Downwelling Shortwave Radiation over land. Can be used for - computation of surface albedo. - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: land - units: W m-2 - - rsds_tavg-u-hxy-sn: - description: Surface Downwelling Shortwave Radiation over the portion of a land - grid cell covered by snow but not by ice. Can be used for computation of surface - albedo. - grids: [gr] - regrid_method: conservative - sources: [model_var: FSDS] - table: land - units: W m-2 - - rsus_tavg-u-hxy-lnd: - description: Surface Upwelling Shortwave Radiation over land. Can be used for - computation of surface albedo. - grids: [gr] - regrid_method: conservative - sources: [model_var: FSR] - table: land - units: W m-2 - - rsus_tavg-u-hxy-sn: - description: Surface Upwelling Shortwave Radiation over the portion of a land - grid cell covered by snow. Can be used for computation of surface albedo. - formula: SNOFSRVI+SNOFSRVD+SNOFSRNI+SNOFSRND - grids: [gr] - regrid_method: conservative - sources: [model_var: SNOFSRVI, model_var: SNOFSRVD, model_var: SNOFSRNI, - model_var: SNOFSRND] - table: land - units: W m-2 - - sftgif_tavg-u-hxy-u: - description: This is needed in case the ice sheet area changes in time - formula: sumover_index(PCT_LANDUNIT, indexlist=[4], dimname='ltype') - grids: [gr] - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - table: land - units: '%' - - sftgif_ti-u-hxy-u: - description: fraction of grid cell occupied by "permanent" ice (i.e., glaciers). - formula: sumover_index(PCT_LANDUNIT, indexlist=[4], dimname='ltype') - grids: [gr] - regrid_method: conservative - sources: [model_var: PCT_LANDUNIT] - table: land - units: '%' - - shrubFrac_tavg-u-hxy-u: - description: fraction of entire grid cell that is covered by shrub. - formula: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[7, 8, 9, 10, 11], - dimname='fates_levpft') *FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CANOPYCROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - slthick_ti-sl-hxy-lnd: - description: Thickness of Soil Layers - grids: [gr] - regrid_method: conservative - sources: [model_var: ZSOI] - table: land - units: m - - srfrad_tavg-u-hxy-u: - description: Net radiative flux at surface - formula: FSA - FIRA - grids: [gr] - regrid_method: conservative - sources: [model_var: FSA, model_var: FIRA] - table: land - units: W m-2 - - sw_tavg-u-hxy-lnd: - description: Total liquid water storage, other than soil, snow or interception - storage (i.e. lakes, river channel or depression storage). - formula: H2OSFC+ VOLR - grids: [gr] - regrid_method: conservative - sources: [model_var: H2OSFC, model_var: VOLR] - table: land - units: kg m-2 - - tasLut_tavg-h2m-hxy-multi: - description: Air temperature is the bulk temperature of the air, not the surface - (skin) temperature. - grids: [gr] - regrid_method: conservative - sources: [model_var: TSA] - table: land - units: K - - tran_tavg-u-hxy-lnd: - description: Transpiration (may include dew formation as a negative flux). - grids: [gr] - regrid_method: conservative - sources: [model_var: QVEGT] - table: land - units: kg m-2 s-1 - - tran_tavg-u-hxy-u: - description: Transpiration - grids: [gr] - regrid_method: conservative - sources: [model_var: QVEGT] - table: land - units: kg m-2 s-1 - - treeFracBdlDcd_tavg-u-hxy-u: - description: This is the percentage of the entire grid cell that is covered by - broadleaf deciduous trees. - formula: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[5, 6], dimname='fates_levpft')*FATES_FRACTION*100 - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CANOPYCROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - treeFracBdlEvg_tavg-u-hxy-u: - description: This is the percentage of the entire grid cell that is covered by - broadleaf evergreen trees. - formula: (sumover_index(FATES_CROWNAREA_PF, indexlist=[1, 4], dimname='fates_levpft'))*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - treeFracNdlDcd_tavg-u-hxy-u: - description: This is the percentage of the entire grid cell that is covered by - needleleaf deciduous trees. - formula: (sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[3], dimname='fates_levpft')*100)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CANOPYCROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - treeFracNdlEvg_tavg-u-hxy-u: - description: This is the percentage of the entire grid cell that is covered by - needleleaf evergreen trees. - formula: (sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[2], dimname='fates_levpft')*100)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CANOPYCROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - treeFrac_tavg-u-hxy-u: - description: fraction of entire grid cell that is covered by trees. - formula: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[1, 2, 3, 4, 5, 6], - dimname='fates_levpft') *FATES_FRACTION*100 - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CANOPYCROWNAREA_PF, model_var: FATES_FRACTION] - table: land - units: '%' - - tsLut_tavg-u-hxy-multi: - description: Surface temperature (i.e. temperature at which long-wave radiation - emitted) - grids: [gr] - regrid_method: conservative - sources: [model_var: TSKIN] - table: land - units: K - - tsl_tavg-sl-hxy-lnd: - description: Temperature of each soil layer. Reported as "missing" for grid cells - occupied entirely by "sea". - grids: [gr] - regrid_method: conservative - sources: [model_var: TSOI] - table: land - units: K - - tslsi_tpt-u-hxy-lsi: - description: Surface temperature of all surfaces except open ocean, sampled synoptically. - grids: [gr] - regrid_method: conservative - sources: [model_var: TSA] - table: land - units: K - - vegFrac_tavg-u-hxy-u: - description: Percentage of grid cell that is covered by vegetation.This SHOULD - be the sum of tree, grass (natural and pasture), crop and shrub fractions. - formula: (FATES_AREA_PLANTS)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_AREA_PLANTS, model_var: FATES_FRACTION] - table: land - units: '%' - - vegHeight_tavg-u-hxy-ng: - description: Vegetation height averaged over the grass fraction of a grid cell. - formula: (FATES_CA_WEIGHTED_HEIGHT)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CA_WEIGHTED_HEIGHT, model_var: FATES_FRACTION] - table: land - units: m - - vegHeight_tavg-u-hxy-veg: - description: Vegetation height averaged over all vegetation types and over the - vegetated fraction of a grid cell. - formula: (FATES_CA_WEIGHTED_HEIGHT)*FATES_FRACTION - grids: [gr] - regrid_method: conservative - sources: [model_var: FATES_CA_WEIGHTED_HEIGHT, model_var: FATES_FRACTION] - table: land - units: m - - wetlandCH4_tavg-u-hxy-lnd: - description: Net upward flux of methane (NH4) from wetlands (areas where water - covers the soil, or is present either at or near the surface of the soil all - year or for varying periods of time during the year, including during the growing - season). - formula: (CH4_SURF_DIFF_SAT+CH4_SURF_EBUL_SAT+CH4_SURF_AERE_SAT) * 0.016043 * - FINUNDATED - grids: [gr] - regrid_method: conservative - sources: [model_var: CH4_SURF_DIFF_SAT, model_var: CH4_SURF_EBUL_SAT, model_var: CH4_SURF_AERE_SAT, - model_var: FINUNDATED] - table: land - units: kg m-2 s-1 - - wetlandFrac_tavg-u-hxy-u: - description: Percentage of grid cell covered by wetland. Report only one year - if fixed percentage is used, or time series if values are determined dynamically. - grids: [gr] - regrid_method: conservative - sources: [model_var: FINUNDATED] - table: land - units: '%' - - wtd_tavg-u-hxy-lnd: - description: depth_of_soil_moisture_saturation - grids: [gr] - regrid_method: conservative - sources: [model_var: ZWT] - table: land - units: m + baresoilFrac_tavg-u-hxy-u: (1-FATES_AREA_PLANTS)*FATES_FRACTION*100 + + burntFractionAll_tavg-u-hxy-u: (FATES_BURNFRAC *3600*24*30*100)*FATES_FRACTION + + c3PftFrac_tavg-u-hxy-u: (FATES_AREA_PLANTS-sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[14], dimname='fates_levpft'))*FATES_FRACTION*100 + + c4PftFrac_tavg-u-hxy-u: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[14], dimname='fates_levpft')*FATES_FRACTION*100 + + cLand_tavg-u-hxy-lnd: TOTECOSYSC / 1000 + + cLeaf_tavg-u-hxy-lnd: (FATES_LEAFC)*FATES_FRACTION + + cLitterCwd_tavg-u-hxy-lnd: (sumover_index(FATES_LITTER_BG_CWD_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION + + cLitterSubSurf_tavg-u-hxy-lnd: (sumover_index(FATES_LITTER_BG_FINE_EL, indexlist=[1], dimname='fates_levelem') + sumover_index(FATES_LITTER_BG_CWD_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION + + cLitterSurf_tavg-u-hxy-lnd: (sumover_index(FATES_LITTER_AG_FINE_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION + + cOther_tavg-u-hxy-lnd: (FATES_SEED_BANK + FATES_REPROC + FATES_STOREC)*FATES_FRACTION + + cProduct_tavg-u-hxy-lnd: TOT_WOODPRODC / 1000 + + cRoot_tavg-u-hxy-lnd: (FATES_VEGC - FATES_VEGC_ABOVEGROUND) * FATES_FRACTION + + cSoil_tavg-d100cm-hxy-lnd: TOTSOMC_1m / 1000 + + cSoil_tavg-sl-hxy-lnd: SOILC_vr * ZSOI / 1000 + + cSoil_tavg-u-hxy-lnd: TOTSOMC / 1000 + + cStem_tavg-u-hxy-lnd: (FATES_VEGC_ABOVEGROUND - FATES_LEAFC - FATES_REPROC - FATES_STOREC)*FATES_FRACTION + + cVegLut_tpt-u-hxy-multi: (FATES_VEGC_LU)*FATES_FRACTION + + cVeg_tavg-u-hxy-lnd: FATES_VEGC *FATES_FRACTION + + cVeg_tavg-u-hxy-ng: (sumover_index(FATES_VEGC_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION + + cVeg_tavg-u-hxy-shb: (sumover_index(FATES_VEGC_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION + + cVeg_tavg-u-hxy-tree: (sumover_index(FATES_VEGC_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION + + cnc_tavg-u-hxy-u: (FATES_AREA_PLANTS * 100)*FATES_FRACTION + + cropFrac_tavg-u-hxy-u: (sumover_index(FATES_PATCHAREA_LU, indexlist=[5], dimname='fates_levlanduse'))*FATES_FRACTION + + depthsl_ti-u-hxy-u: sum(DZSOI) + + esn_tavg-u-hxy-lnd: QSNOEVAP + + evspsblsoi_tavg-u-hxy-lnd: QSOIL + + evspsblsoi_tavg-u-hxy-u: QSOIL + + evspsblveg_tavg-u-hxy-lnd: QVEGE + + evspsblveg_tavg-u-hxy-u: QVEGE + + fBNF_tavg-u-hxy-lnd: NFIX_TO_SMINN + + fCLandToOcean_tavg-u-hxy-lnd: SOM_C_LEACHED /1000 + + fDeforestToProduct_tavg-u-hxy-lnd: (FATES_LUCHANGE_WOODPROD_C_FLUX / (365 * 86400))*FATES_FRACTION + + fFireAll_tavg-u-hxy-lnd: (FATES_FIRE_CLOSS)*FATES_FRACTION + + fFireNat_tavg-u-hxy-lnd: (FATES_FIRE_CLOSS - FATES_FIRE_CLOSS_LANDUSECHANGE)*FATES_FRACTION + + fFire_tavg-u-hxy-lnd: (FATES_FIRE_CLOSS - FATES_FIRE_CLOSS_LANDUSECHANGE)*FATES_FRACTION + + fHarvestToProduct_tavg-u-hxy-lnd: (FATES_HARVEST_WOODPROD_C_FLUX / (365 * 86400))*FATES_FRACTION + + fLitterSoil_tavg-u-hxy-lnd: (sumover_index(FATES_LITTER_OUT_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION + + fLuc_tavg-u-hxy-lnd: LAND_USE_FLUX / 1000 + + fLulccAtmLut_tavg-u-hxy-multi: DWT_CONV_CFLUX + + fNLandToOcean_tavg-u-hxy-lnd: (SMIN_NO3_LEACHED+ SMIN_NO3_RUNOFF) / 1000 + + fNProduct_tavg-u-hxy-lnd: DWT_WOODPRODN_GAIN + DWT_CROPPROD1N_GAIN + + fNleach_tavg-u-hxy-lnd: SMIN_NO3_LEACHED / 1000 + + fNloss_tavg-u-hxy-lnd: DENIT+ F_N2O_NIT+ SMIN_NO3_LEACHED + SMIN_NO3_RUNOFF + + fProductDecomp_tavg-u-hxy-lnd: TOT_WOODPRODC_LOSS /1000 + + fVegFire_tavg-u-hxy-lnd: (FATES_FIRE_CLOSS)*FATES_FRACTION + + fVegLitterMortality_tavg-u-hxy-lnd: (FATES_MORTALITY_CFLUX_CANOPY+FATES_MORTALITY_CFLUX_USTORY)*FATES_FRACTION + + fVegLitterSenescence_tavg-u-hxy-lnd: (sumover_index(FATES_LITTER_IN_EL, indexlist=[1], dimname='fates_levelem')-FATES_MORTALITY_CFLUX_CANOPY+FATES_MORTALITY_CFLUX_USTORY)*FATES_FRACTION + + fVegLitter_tavg-u-hxy-lnd: (sumover_index(FATES_LITTER_IN_EL, indexlist=[1], dimname='fates_levelem'))*FATES_FRACTION + + fVegSoilMortality_tavg-u-hxy-lnd: (FATES_MORTALITY_CFLUX_CANOPY+FATES_MORTALITY_CFLUX_USTORY)*FATES_FRACTION + fracInLut_tsum-u-hxy-lnd: (FATES_TRANSITION_MATRIX_LULU)*FATES_FRACTION + + fracLut_tpt-u-hxy-u: PCT_LANDUNIT + fracOutLut_tsum-u-hxy-lnd: (FATES_TRANSITION_MATRIX_LULU)*FATES_FRACTION + + gppLut_tavg-u-hxy-multi: (FATES_GPP_LU)*FATES_FRACTION + + gppVgt_tavg-u-hxy-multi: (FATES_GPP_PF)*FATES_FRACTION + + gpp_tavg-u-hxy-lnd: (FATES_GPP)*FATES_FRACTION + + gpp_tavg-u-hxy-ng: (sumover_index(FATES_GPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION + + gpp_tavg-u-hxy-shb: (sumover_index(FATES_GPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION + + gpp_tavg-u-hxy-tree: (sumover_index(FATES_GPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION + + grassFracC3_tavg-u-hxy-u: (FATES_CROWNAREA_PF(12+13))*FATES_FRACTION + + grassFracC4_tavg-u-hxy-u: (sumover_index(FATES_CROWNAREA_PF, indexlist=[14], dimname='fates_levpft'))*FATES_FRACTION + + grassFrac_tavg-u-hxy-u: sumover_index(FATES_CROWNAREA_PF, indexlist=[12, 13, 14], dimname='fates_levpft')*FATES_FRACTION + + hfdsl_tavg-u-hxy-lnd: FGR + + lai_tavg-u-hxy-lnd: (FATES_LAI)*FATES_FRACTION + + landCoverFrac_tavg-u-hxy-u: PCT_LANDUNIT + + mrro_tavg-u-hxy-lnd: QRUNOFF + + mrrob_tavg-u-hxy-lnd: QDRAI + + mrros_tavg-u-hxy-lnd: QOVER + + mrsfl_tavg-sl-hxy-lnd: SOILICE + + mrsll_tavg-sl-hxy-lnd: SOILLIQ + + mrso_tavg-u-hxy-lnd: TOTSOILLIQ+TOTSOILICE + + mrsofc_ti-u-hxy-lnd: SUCSAT + + mrsol_tavg-d10cm-hxy-lnd: SOILWATER_10CM + + mrsol_tavg-sl-hxy-lnd: SOILLIQ+SOILICE + + mrsol_tpt-d10cm-hxy-lnd: SOILWATER_10CM + + mrtws_tavg-u-hxy-lnd: TWS + + nLand_tavg-u-hxy-lnd: TOTECOSYSN / 1000 + + nMineral_tavg-u-hxy-lnd: SMINN / 1000 + + nSoil_tavg-u-hxy-lnd: (TOTSOMN+SMINN) / 1000 + + nbp_tavg-u-hxy-lnd: -FCO2*(12.01/44.01) + + nep_tavg-u-hxy-lnd: (FATES_NEP)*FATES_FRACTION + + nppLeaf_tavg-u-hxy-lnd: (FATES_LEAF_ALLOC)*FATES_FRACTION + + nppLut_tavg-u-hxy-multi: (FATES_NPP_LU)*FATES_FRACTION + + nppOther_tavg-u-hxy-lnd: (FATES_SEED_ALLOC+FATES_STORE_ALLOC)*FATES_FRACTION + + nppRoot_tavg-u-hxy-lnd: (FATES_CROOT_ALLOC+FATES_FROOT_ALLOC)*FATES_FRACTION + + nppStem_tavg-u-hxy-lnd: (FATES_STEM_ALLOC)*FATES_FRACTION + + nppVgt_tavg-u-hxy-multi: (FATES_NPP_PF)*FATES_FRACTION + + npp_tavg-u-hxy-lnd: (FATES_NPP)*FATES_FRACTION + + npp_tavg-u-hxy-ng: (sumover_index(FATES_NPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION + + npp_tavg-u-hxy-shb: (sumover_index(FATES_NPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION + + npp_tavg-u-hxy-tree: (sumover_index(FATES_NPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION + + orog_tavg-u-hxy-is: usurf + + orog_ti-u-hxy-u: PHIS + + pastureFrac_tavg-u-hxy-u: (sumover_index(FATES_PATCHAREA_LU, indexlist=[4], dimname='fates_levlanduse'))*FATES_FRACTION + + prveg_tavg-u-hxy-lnd: QINTR + + qgwr_tavg-u-hxy-lnd: QCHARGE + + raLeaf_tavg-u-hxy-lnd: (FATES_LEAFMAINTAR + (FATES_GROWTH_RESP * FATES_LEAFC_ALLOC / FATES_NPP))*FATES_FRACTION + + raLut_tavg-u-hxy-multi: (FATES_GPP_LU-FATES_NPP_LU)*FATES_FRACTION + + raRoot_tavg-u-hxy-lnd: ((FATES_FROOTMAINTAR+FATES_CROOTMAINTAR) + (FATES_GROWTH_RESP * (FATES_FROOT_ALLOC + FATES_CROOT_ALLOC) / FATES_NPP))*FATES_FRACTION + + raStem_tavg-u-hxy-lnd: (FATES_LSTEMMAINTAR)*FATES_FRACTION + + raVgt_tavg-u-hxy-multi: (FATES_AUTORESP)*FATES_FRACTION + + ra_tavg-u-hxy-lnd: FATES_AUTORESP*FATES_FRACTION + + ra_tavg-u-hxy-ng: (sumover_index(FATES_GPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft')-sumover_index(FATES_NPP_PF, indexlist=[12, 13, 14], dimname='fates_levpft'))*FATES_FRACTION + + ra_tavg-u-hxy-shb: (sumover_index(FATES_GPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft')-sumover_index(FATES_NPP_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft'))*FATES_FRACTION + + ra_tavg-u-hxy-tree: (sumover_index(FATES_GPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft')-sumover_index(FATES_NPP_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft'))*FATES_FRACTION + + residualFrac_tavg-u-hxy-u: 1-FATES_FRACTION + + rhLitter_tavg-u-hxy-lnd: LITTERC_HR /1000 + + rhSoil_tavg-u-hxy-lnd: SOILC_HR /1000 + + rhVgt_tavg-u-hxy-multi: (FATES_HET_RESP)*FATES_FRACTION + + rh_tavg-u-hxy-lnd: HR / 1000 + + rsds_tavg-u-hxy-lnd: FSDS + + rsds_tavg-u-hxy-sn: FSDS + + rsus_tavg-u-hxy-lnd: FSR + + rsus_tavg-u-hxy-sn: SNOFSRVI+SNOFSRVD+SNOFSRNI+SNOFSRND + + sftgif_tavg-u-hxy-u: sumover_index(PCT_LANDUNIT, indexlist=[4], dimname='ltype') + + sftgif_ti-u-hxy-u: sumover_index(PCT_LANDUNIT, indexlist=[4], dimname='ltype') + + shrubFrac_tavg-u-hxy-u: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[7, 8, 9, 10, 11], dimname='fates_levpft') *FATES_FRACTION + + slthick_ti-sl-hxy-lnd: ZSOI + + srfrad_tavg-u-hxy-u: FSA - FIRA + + sw_tavg-u-hxy-lnd: H2OSFC+ VOLR + + tasLut_tavg-h2m-hxy-multi: TSA + + tran_tavg-u-hxy-lnd: QVEGT + + tran_tavg-u-hxy-u: QVEGT + + treeFracBdlDcd_tavg-u-hxy-u: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[5, 6], dimname='fates_levpft')*FATES_FRACTION*100 + + treeFracBdlEvg_tavg-u-hxy-u: (sumover_index(FATES_CROWNAREA_PF, indexlist=[1, 4], dimname='fates_levpft'))*FATES_FRACTION + + treeFracNdlDcd_tavg-u-hxy-u: (sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[3], dimname='fates_levpft')*100)*FATES_FRACTION + + treeFracNdlEvg_tavg-u-hxy-u: (sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[2], dimname='fates_levpft')*100)*FATES_FRACTION + + treeFrac_tavg-u-hxy-u: sumover_index(FATES_CANOPYCROWNAREA_PF, indexlist=[1, 2, 3, 4, 5, 6], dimname='fates_levpft') *FATES_FRACTION*100 + + tsLut_tavg-u-hxy-multi: TSKIN + + tsl_tavg-sl-hxy-lnd: TSOI + + tslsi_tpt-u-hxy-lsi: TSA + + vegFrac_tavg-u-hxy-u: (FATES_AREA_PLANTS)*FATES_FRACTION + + vegHeight_tavg-u-hxy-ng: (FATES_CA_WEIGHTED_HEIGHT)*FATES_FRACTION + + vegHeight_tavg-u-hxy-veg: (FATES_CA_WEIGHTED_HEIGHT)*FATES_FRACTION + + wetlandCH4_tavg-u-hxy-lnd: (CH4_SURF_DIFF_SAT+CH4_SURF_EBUL_SAT+CH4_SURF_AERE_SAT) * 0.016043 * FINUNDATED + + wetlandFrac_tavg-u-hxy-u: FINUNDATED + + wtd_tavg-u-hxy-lnd: ZWT diff --git a/data/noresm_to_cmip7_landIce.yaml b/data/noresm_to_cmip7_landIce.yaml index 3881e7e9..dea5d415 100644 --- a/data/noresm_to_cmip7_landIce.yaml +++ b/data/noresm_to_cmip7_landIce.yaml @@ -1,185 +1,39 @@ -dataset_overrides: - institution_id: NCC - nominal_resolution: 200 km - source_id: NorESM3 +grids: [gn] variables: - acabf_tavg-u-hxy-is: - description: 'quantity averaged over ice sheet only, to avoid contamination from - other surfaces (eg: permafrost)' - formula: acab_applied/31556926*917 - grids: [gn] - regrid_method: conservative - sources: [model_var: acab_applied] - table: landIce - units: kg m-2 s-1 - - libmassbf_tavg-u-hxy-fis: - description: quantity averaged over floating land ice - formula: bmlt_applied*floating_mask/31556926*917 - grids: [gn] - regrid_method: conservative - sources: [model_var: bmlt_applied, model_var: floating_mask] - table: landIce - units: kg m-2 s-1 - - libmassbf_tavg-u-hxy-gis: - description: quantity averaged over grounded ice sheet - formula: bmlt_applied*grounded_mask/31556926*917 - grids: [gn] - regrid_method: conservative - sources: [model_var: bmlt_applied, model_var: grounded_mask] - table: landIce - units: kg m-2 s-1 - - licalvf_tavg-u-hxy-is: - description: Loss of ice mass resulting from iceberg calving. Computed as the - rate of mass loss by the ice shelf (in kg s-1) divided by the horizontal area - of the ice sheet (m2) in the grid box. - formula: calving_rate/31556926*917 - grids: [gn] - regrid_method: conservative - sources: [model_var: calving_rate] - table: landIce - units: kg m-2 s-1 - - lifmassbf_tavg-u-hxy-is: - description: Total mass balance at the ice front (or vertical margin). It includes - both iceberg calving and melt on vertical ice front - formula: (melt_rate + calving_rate)/31556926*917 - grids: [gn] - regrid_method: conservative - sources: [model_var: melt_rate, model_var: calving_rate] - table: landIce - units: kg m-2 s-1 - - litempbot_tavg-u-hxy-fis: - description: quantity averaged over floating land ice - formula: btemp*floating_mask + 273.15 - grids: [gn] - regrid_method: conservative - sources: [model_var: btemp, model_var: floating_mask] - table: landIce - units: K - - litempbot_tavg-u-hxy-gis: - description: quantity averaged over grounded land ice - formula: btemp*grounded_mask + 273.15 - grids: [gn] - regrid_method: conservative - sources: [model_var: btemp, model_var: grounded_mask] - table: landIce - units: K - - litemptop_tavg-u-hxy-is: - description: 'quantity averaged over ice sheet only, to avoid contamination from - other surfaces (eg: permafrost)' - formula: artm + 273.15 - grids: [gn] - regrid_method: conservative - sources: [model_var: artm] - table: landIce - units: K - - lithk_tavg-u-hxy-is: - description: This is needed in case ice sheet thickness changes in time - grids: [gn] - regrid_method: conservative - sources: [model_var: thk] - table: landIce - units: m - - sftflf_tavg-u-hxy-u: - description: This is needed in case the floating ice sheet area changes in time - (NO grounded ice sheet) - grids: [gn] - regrid_method: conservative - sources: [model_var: floating_mask] - table: landIce - units: '%' - - sftgrf_tavg-u-hxy-u: - description: This is needed in case the grounded ice sheet area changes in time - (NO floating ice shelf) - grids: [gn] - regrid_method: conservative - sources: [model_var: grounded_mask] - table: landIce - units: '%' - - topg_tavg-u-hxy-gis: - description: This is needed in case bed rock elevation changes in time - grids: [gn] - regrid_method: conservative - sources: [model_var: topg] - table: landIce - units: m - - xvelbase_tavg-u-hxy-is: - description: A velocity is a vector quantity. "x" indicates a vector component - along the grid x-axis, positive with increasing x. "Land ice" means glaciers, - ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. "basal" - means the lower boundary of the land ice. - formula: sumover_index(uvel, indexlist=[11], dimname='level')/31556926 - grids: [gn] - regrid_method: conservative - sources: [model_var: uvel] - table: landIce - units: m s-1 - - xvelmean_tavg-u-hxy-is: - description: The vertical mean land ice velocity is the average from the bedrock - to the surface of the ice - formula: verticalmean(uvel, levelname='level')/31556926 - grids: [gn] - regrid_method: conservative - sources: [model_var: uvel] - table: landIce - units: m s-1 - - xvelsurf_tavg-u-hxy-is: - description: A velocity is a vector quantity. "x" indicates a vector component - along the grid x-axis, positive with increasing x. "Land ice" means glaciers, - ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. The - surface called "surface" means the lower boundary of the atmosphere. - formula: sumover_index(uvel, indexlist=[1], dimname='level')/31556926 - grids: [gn] - regrid_method: conservative - sources: [model_var: uvel] - table: landIce - units: m s-1 - - yvelbase_tavg-u-hxy-is: - description: A velocity is a vector quantity. "y" indicates a vector component - along the grid y-axis, positive with increasing y. "Land ice" means glaciers, - ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. "basal" - means the lower boundary of the land ice. - formula: sumover_index(vvel, indexlist=[11], dimname='level')/31556926 - grids: [gn] - regrid_method: conservative - sources: [model_var: vvel] - table: landIce - units: m s-1 - - yvelmean_tavg-u-hxy-is: - description: The vertical mean land ice velocity is the average from the bedrock - to the surface of the ice. - formula: verticalmean(vvel, levelname='level')/31556926 - grids: [gn] - regrid_method: conservative - sources: [model_var: vvel] - table: landIce - units: m s-1 - - yvelsurf_tavg-u-hxy-is: - description: A velocity is a vector quantity. "y" indicates a vector component - along the grid y-axis, positive with increasing y. "Land ice" means glaciers, - ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. The - surface called "surface" means the lower boundary of the atmosphere.' - formula: sumover_index(vvel, indexlist=[1], dimname='level')/31556926 - grids: [gn] - regrid_method: conservative - sources: [model_var: vvel] - table: landIce - units: m s-1 + acabf_tavg-u-hxy-is: acab_applied/31556926*917 + + libmassbf_tavg-u-hxy-fis: bmlt_applied*floating_mask/31556926*917 + + libmassbf_tavg-u-hxy-gis: bmlt_applied*grounded_mask/31556926*917 + + licalvf_tavg-u-hxy-is: calving_rate/31556926*917 + + lifmassbf_tavg-u-hxy-is: (melt_rate + calving_rate)/31556926*917 + + litempbot_tavg-u-hxy-fis: btemp*floating_mask + 273.15 + + litempbot_tavg-u-hxy-gis: btemp*grounded_mask + 273.15 + + litemptop_tavg-u-hxy-is: artm + 273.15 + + lithk_tavg-u-hxy-is: thk + + sftflf_tavg-u-hxy-u: floating_mask + + sftgrf_tavg-u-hxy-u: grounded_mask + + topg_tavg-u-hxy-gis: topg + + xvelbase_tavg-u-hxy-is: sumover_index(uvel, indexlist=[11], dimname='level')/31556926 + + xvelmean_tavg-u-hxy-is: verticalmean(uvel, levelname='level')/31556926 + + xvelsurf_tavg-u-hxy-is: sumover_index(uvel, indexlist=[1], dimname='level')/31556926 + + yvelbase_tavg-u-hxy-is: sumover_index(vvel, indexlist=[11], dimname='level')/31556926 + + yvelmean_tavg-u-hxy-is: verticalmean(vvel, levelname='level')/31556926 + + yvelsurf_tavg-u-hxy-is: sumover_index(vvel, indexlist=[1], dimname='level')/31556926 diff --git a/data/noresm_to_cmip7_seaIce.yaml b/data/noresm_to_cmip7_seaIce.yaml index f939284d..bea3837c 100644 --- a/data/noresm_to_cmip7_seaIce.yaml +++ b/data/noresm_to_cmip7_seaIce.yaml @@ -1,687 +1,533 @@ -dataset_overrides: {institution_id: NCAR, nominal_resolution: 100 km, source_id: CESM3} +grids: [gn] variables: siage_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siage_d}, {freq: mon, model_var: siage}] - table: seaIce + formula: + day: siage_d + mon: siage units: yr sialgc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sialgc_d}, {freq: mon, model_var: sialgc}] - table: seaIce + formula: + day: sialgc_d + mon: sialgc units: kg m-2 siarea_tavg-u-hm-u: - grids: [gm] - regrid_method: conservative - sources: [{alias: siconc, freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}, - model_var: tarea] - table: seaIce units: m2 - variants: [{formula: '(siconc * tarea / 100.).where(siconc.coords[''TLAT''] > - 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Area (Northern Hemisphere), - region: nh}, {formula: '(siconc * tarea / 100.).where(siconc.coords[''TLAT''] - < 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Area (Southern Hemisphere), - region: sh}] + variants: + - formula: + day: (siconc_d * tarea / 100.).where(siconc_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (siconc * tarea / 100.).where(siconc.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (siconc_d * tarea / 100.).where(siconc_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (siconc * tarea / 100.).where(siconc.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sichl_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sichl_d}, {freq: mon, model_var: sichl}] - table: seaIce + formula: + day: sichl_d + mon: sichl units: kg m-2 sicompstren_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sicompstren_d}, {freq: mon, model_var: sicompstren}] - table: seaIce - units: N m-1 + formula: + day: sicompstren_d + mon: sicompstren siconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}] - table: seaIce + formula: + day: siconc_d + mon: siconc units: '%' siconc_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}] - table: seaIce - units: '%' + formula: + day: siconc_d + mon: siconc siconca_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siconca_d}, {freq: mon, model_var: siconca}] - table: seaIce - units: '%' + formula: + day: siconca_d + mon: siconca sidconcdyn_tavg-u-hxy-sea: - grids: [gn] - long_name: Dynamic Sea Ice Concentration Change - regrid_method: conservative - sources: [{freq: day, model_var: sidconcdyn_d}, {freq: mon, model_var: sidconcdyn}] - table: seaIce - units: s-1 + formula: + day: sidconcdyn_d + mon: sidconcdyn sidconcth_tavg-u-hxy-sea: - grids: [gn] - long_name: Sea Ice Concentration Change due to Thickness Changes - regrid_method: conservative - sources: [{freq: day, model_var: sidconcth_d}, {freq: mon, model_var: sidconcth}] - table: seaIce - units: s-1 + formula: + day: sidconcth_d + mon: sidconcth sidconcth_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidconcth_d}, {freq: mon, model_var: sidconcth}] - table: seaIce + formula: + day: sidconcth_d + mon: sidconcth units: kg m-2 sidivvel_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidivvel_d}, {freq: mon, model_var: sidivvel}] - table: seaIce - units: s-1 + formula: + day: sidivvel_d + mon: sidivvel sidmassdyn_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassdyn_d}, {freq: mon, model_var: sidmassdyn}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassdyn_d + mon: sidmassdyn sidmassgrowthbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassgrowthbot_d}, {freq: mon, model_var: sidmassgrowthbot}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassgrowthbot_d + mon: sidmassgrowthbot sidmassgrowthsi_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassgrowthsi_d}, {freq: mon, model_var: sidmassgrowthsi}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassgrowthsi_d + mon: sidmassgrowthsi sidmassgrowthwat_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassgrowthwat_d}, {freq: mon, model_var: sidmassgrowthwat}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassgrowthwat_d + mon: sidmassgrowthwat sidmassmeltbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassmeltbot_d}, {freq: mon, model_var: sidmassmeltbot}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassmeltbot_d + mon: sidmassmeltbot sidmassmeltlat_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassmeltlat_d}, {freq: mon, model_var: sidmassmeltlat}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassmeltlat_d + mon: sidmassmeltlat sidmassmelttop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassmelttop_d}, {freq: mon, model_var: sidmassmelttop}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassmelttop_d + mon: sidmassmelttop sidmassth_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmassth_d}, {freq: mon, model_var: sidmassth}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sidmassth_d + mon: sidmassth sidmasstranx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstranx_d}, {freq: mon, model_var: sidmasstranx}] - table: seaIce + formula: + day: sidmasstranx_d + mon: sidmasstranx units: kg s-1 sidmasstranx_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstranx_d}, {freq: mon, model_var: sidmasstranx}] - table: seaIce - units: kg s-1 + formula: + day: sidmasstranx_d + mon: sidmasstranx sidmasstrany_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstrany_d}, {freq: mon, model_var: sidmasstrany}] - table: seaIce + formula: + day: sidmasstrany_d + mon: sidmasstrany units: kg s-1 sidmasstrany_tavg-u-hxy-u: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidmasstrany_d}, {freq: mon, model_var: sidmasstrany}] - table: seaIce - units: kg s-1 + formula: + day: sidmasstrany_d + mon: sidmasstrany sidragbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidragbot_d}, {freq: mon, model_var: sidragbot}] - table: seaIce - units: '1' + formula: + day: sidragbot_d + mon: sidragbot sidragtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sidragtop_d}, {freq: mon, model_var: sidragtop}] - table: seaIce - units: '1' + formula: + day: sidragtop_d + mon: sidragtop sieqthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sieqthick_d}, {freq: mon, model_var: sieqthick}] - table: seaIce - units: m + formula: + day: sieqthick_d + mon: sieqthick siextent_tavg-u-hm-u: - grids: [gm] - regrid_method: conservative - sources: [{alias: siconc, freq: day, model_var: siconc_d}, {freq: mon, model_var: siconc}, - model_var: tarea] - table: seaIce units: m2 - variants: [{formula: '(tarea.where(siconc > 15., 0.0)).where(siconc.coords[''TLAT''] - > 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Extent (Northern Hemisphere), - region: nh}, {formula: '(tarea.where(siconc > 15., 0.0)).where(siconc.coords[''TLAT''] - < 0).sum(dim=[''nj'', ''ni''])', long_name: Sea Ice Extent (Southern Hemisphere), - region: sh}] + variants: + - formula: + day: (tarea.where(siconc_d > 15., 0.0)).where(siconc_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (tarea.where(siconc > 15., 0.0)).where(siconc.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (tarea.where(siconc_d > 15., 0.0)).where(siconc_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (tarea.where(siconc > 15., 0.0)).where(siconc.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sifb_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sifb_d}, {freq: mon, model_var: sifb}] - table: seaIce - units: m + formula: + day: sifb_d + mon: sifb siflcondbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflcondbot_d}, {freq: mon, model_var: siflcondbot}] - table: seaIce - units: W m-2 + formula: + day: siflcondbot_d + mon: siflcondbot siflcondtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflcondtop_d}, {freq: mon, model_var: siflcondtop}] - table: seaIce - units: W m-2 + formula: + day: siflcondtop_d + mon: siflcondtop siflfwbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflfwbot_d}, {freq: mon, model_var: siflfwbot}] - table: seaIce - units: kg m-2 s-1 + formula: + day: siflfwbot_d + mon: siflfwbot siflfwdrain_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflfwdrain_d}, {freq: mon, model_var: siflfwdrain}] - table: seaIce - units: kg m-2 s-1 + formula: + day: siflfwdrain_d + mon: siflfwdrain sifllattop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sifllattop_d}, {freq: mon, model_var: sifllattop}] - table: seaIce - units: W m-2 + formula: + day: sifllattop_d + mon: sifllattop siflsensbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflsensbot_d}, {freq: mon, model_var: siflsensbot}] - table: seaIce - units: W m-2 + formula: + day: siflsensbot_d + mon: siflsensbot siflsenstop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflsenstop_d}, {freq: mon, model_var: siflsenstop}] - table: seaIce - units: W m-2 + formula: + day: siflsenstop_d + mon: siflsenstop siflswdbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflswdbot_d}, {freq: mon, model_var: siflswdbot}] - table: seaIce - units: W m-2 + formula: + day: siflswdbot_d + mon: siflswdbot siflswdtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflswdtop_d}, {freq: mon, model_var: siflswdtop}] - table: seaIce + formula: + day: siflswdtop_d + mon: siflswdtop units: W m-2 siflswutop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siflswutop_d}, {freq: mon, model_var: siflswutop}] - table: seaIce + formula: + day: siflswutop_d + mon: siflswutop units: m siforcecoriolx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcecoriolx_d}, {freq: mon, model_var: siforcecoriolx}] - table: seaIce - units: N m-2 + formula: + day: siforcecoriolx_d + mon: siforcecoriolx siforcecorioly_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcecorioly_d}, {freq: mon, model_var: siforcecorioly}] - table: seaIce - units: N m-2 + formula: + day: siforcecorioly_d + mon: siforcecorioly siforceintstrx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforceintstrx_d}, {freq: mon, model_var: siforceintstrx}] - table: seaIce - units: N m-2 + formula: + day: siforceintstrx_d + mon: siforceintstrx siforceintstry_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforceintstry_d}, {freq: mon, model_var: siforceintstry}] - table: seaIce - units: N m-2 + formula: + day: siforceintstry_d + mon: siforceintstry siforcetiltx_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcetiltx_d}, {freq: mon, model_var: siforcetiltx}] - table: seaIce - units: N m-2 + formula: + day: siforcetiltx_d + mon: siforcetiltx siforcetilty_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siforcetilty_d}, {freq: mon, model_var: siforcetilty}] - table: seaIce - units: N m-2 + formula: + day: siforcetilty_d + mon: siforcetilty sigpp_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sigpp_d}, {freq: mon, model_var: sigpp}] - table: seaIce + formula: + day: sigpp_d + mon: sigpp units: m s-1 siitdconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitdconc_d}, {freq: mon, model_var: sitdconc}] - table: seaIce + formula: + day: sitdconc_d + mon: sitdconc units: kg m-2 siitdsnconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitdsnconc_d}, {freq: mon, model_var: sitdsnconc}] - table: seaIce + formula: + day: sitdsnconc_d + mon: sitdsnconc units: kg m-2 siitdsnthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siitdsnthick_d}, {freq: mon, model_var: siitdsnthick}] - table: seaIce - units: m + formula: + day: siitdsnthick_d + mon: siitdsnthick siitdthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siitdthick_d}, {freq: mon, model_var: siitdthick}] - table: seaIce - units: m + formula: + day: siitdthick_d + mon: siitdthick simass_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simass_d}, {freq: mon, model_var: simass}] - table: seaIce - units: kg m-2 + formula: + day: simass_d + mon: simass simassacrossline_tavg-u-ht-u: - grids: [gn] - long_name: Sea Ice Mass Across Line - regrid_method: conservative - sources: [{freq: day, model_var: simassacrossline_d}, {freq: mon, model_var: simassacrossline}] - table: seaIce + formula: + day: simassacrossline_d + mon: simassacrossline units: kg m-2 simpconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpconc_d}, {freq: mon, model_var: simpconc}] - table: seaIce - units: '%' + formula: + day: simpconc_d + mon: simpconc simpeffconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpeffconc_d}, {freq: mon, model_var: simpeffconc}] - table: seaIce - units: '%' + formula: + day: simpeffconc_d + mon: simpeffconc simprefrozen_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simprefrozen_d}, {freq: mon, model_var: simprefrozen}] - table: seaIce + formula: + day: simprefrozen_d + mon: simprefrozen units: m simprefrozen_tavg-u-hxy-simp: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simprefrozen_d}, {freq: mon, model_var: simprefrozen}] - table: seaIce - units: m + formula: + day: simprefrozen_d + mon: simprefrozen simpthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpthick_d}, {freq: mon, model_var: simpthick}] - table: seaIce - units: m + formula: + day: simpthick_d + mon: simpthick simpthick_tavg-u-hxy-simp: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: simpthick_d}, {freq: mon, model_var: simpthick}] - table: seaIce - units: m + formula: + day: simpthick_d + mon: simpthick sino3_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sino3_d}, {freq: mon, model_var: sino3}] - table: seaIce + formula: + day: sino3_d + mon: sino3 units: kg m-2 sipr_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sipr_d}, {freq: mon, model_var: sipr}] - table: seaIce + formula: + day: sipr_d + mon: sipr units: kg m-2 s-1 sirdgconc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sirdgconc_d}, {freq: mon, model_var: sirdgconc}] - table: seaIce - units: '%' + formula: + day: sirdgconc_d + mon: sirdgconc sirdgthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sirdgthick_d}, {freq: mon, model_var: sirdgthick}] - table: seaIce + formula: + day: sirdgthick_d + mon: sirdgthick units: m sisali_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisali_d}, {freq: mon, model_var: sisali}] - table: seaIce + formula: + day: sisali_d + mon: sisali units: 100E-03 sisaltmass_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisaltmass_d}, {freq: mon, model_var: sisaltmass}] - table: seaIce - units: kg m-2 + formula: + day: sisaltmass_d + mon: sisaltmass sishearvel_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sishearvel_d}, {freq: mon, model_var: sishearvel}] - table: seaIce + formula: + day: sishearvel_d + mon: sishearvel units: m s-1 sisi_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisi_d}, {freq: mon, model_var: sisi}] - table: seaIce + formula: + day: sisi_d + mon: sisi units: kg m-2 s-1 sisndmassdyn_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmassdyn_d}, {freq: mon, model_var: sisndmassdyn}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sisndmassdyn_d + mon: sisndmassdyn sisndmassmelt_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmassmelt_d}, {freq: mon, model_var: sisndmassmelt}] - table: seaIce + formula: + day: sisndmassmelt_d + mon: sisndmassmelt units: kg m-2 s-1 sisndmasssi_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasssi_d}, {freq: mon, model_var: sisndmasssi}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sisndmasssi_d + mon: sisndmasssi sisndmasssnf_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasssnf_d}, {freq: mon, model_var: sisndmasssnf}] - table: seaIce + formula: + day: sisndmasssnf_d + mon: sisndmasssnf units: kg m-2 s-1 sisndmasssubl_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasssubl_d}, {freq: mon, model_var: sisndmasssubl}] - table: seaIce + formula: + day: sisndmasssubl_d + mon: sisndmasssubl units: kg m-2 s-1 sisndmasswind_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisndmasswind_d}, {freq: mon, model_var: sisndmasswind}] - table: seaIce - units: kg m-2 s-1 + formula: + day: sisndmasswind_d + mon: sisndmasswind sisnhc_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisnhc_d}, {freq: mon, model_var: sisnhc}] - table: seaIce - units: J m-2 + formula: + day: sisnhc_d + mon: sisnhc + positive: down sisnmass_tavg-u-hm-si: - grids: [gm] - regrid_method: conservative - sources: [{alias: sisnmass, freq: day, model_var: sisnmass_d}, {freq: mon, model_var: sisnmass}, - model_var: tarea] - table: seaIce - units: kg - variants: [{formula: '(sisnmass * tarea).where(sisnmass.coords[''TLAT''] > 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Snow Mass (Northern Hemisphere), region: nh}, - {formula: '(sisnmass * tarea).where(sisnmass.coords[''TLAT''] < 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Snow Mass (Southern Hemisphere), region: sh}] + variants: + - formula: + day: (sisnmass_d * tarea).where(sisnmass_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (sisnmass * tarea).where(sisnmass.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (sisnmass_d * tarea).where(sisnmass_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (sisnmass * tarea).where(sisnmass.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sisnmassacrossline_tavg-u-ht-u: - grids: [gn] - long_name: Sea Ice Mass Across Line - regrid_method: conservative - sources: [{freq: day, model_var: sisnmassacrossline_d}, {freq: mon, model_var: sisnmassacrossline}] - table: seaIce + formula: + day: sisnmassacrossline_d + mon: sisnmassacrossline units: kg m-2 s-1 sisnthick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sisnthick_d}, {freq: mon, model_var: sisnthick}] - table: seaIce + formula: + day: sisnthick_d + mon: sisnthick units: m sispeed_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sispeed_d}, {freq: mon, model_var: sispeed}] - table: seaIce - units: m s-1 + formula: + day: sispeed_d + mon: sispeed sistressave_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistressave_d}, {freq: mon, model_var: sistressave}] - table: seaIce + formula: + day: sistressave_d + mon: sistressave units: N m-2 sistressmax_tpt-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistressmax_d}, {freq: mon, model_var: sistressmax}] - table: seaIce + formula: + day: sistressmax_d + mon: sistressmax units: N m-2 sistrxdtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistrxdtop_d}, {freq: mon, model_var: sistrxdtop}] - table: seaIce - units: N m-2 + formula: + day: sistrxdtop_d + mon: sistrxdtop sistrxubot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistrxubot_d}, {freq: mon, model_var: sistrxubot}] - table: seaIce - units: N m-2 + formula: + day: sistrxubot_d + mon: sistrxubot + positive: down sistrydtop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistrydtop_d}, {freq: mon, model_var: sistrydtop}] - table: seaIce - units: N m-2 + formula: + day: sistrydtop_d + mon: sistrydtop sistryubot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sistryubot_d}, {freq: mon, model_var: sistryubot}] - table: seaIce - units: N m-2 + formula: + day: sistryubot_d + mon: sistryubot + positive: down sitempbot_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitempbot_d}, {freq: mon, model_var: sitempbot}] - table: seaIce - units: K + formula: + day: sitempbot_d + mon: sitempbot sitempsnic_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitempsnic_d}, {freq: mon, model_var: sitempsnic}] - table: seaIce - units: K + formula: + day: sitempsnic_d + mon: sitempsnic sitemptop_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitemptop_d}, {freq: mon, model_var: sitemptop}] - table: seaIce + formula: + day: sitemptop_d + mon: sitemptop units: K sithick_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sithick_d}, {freq: mon, model_var: sithick}] - table: seaIce - units: m + formula: + day: sithick_d + mon: sithick sithick_tavg-u-hxy-sir: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sithick_d}, {freq: mon, model_var: sithick}] - table: seaIce - units: m + formula: + day: sithick_d + mon: sithick sitimefrac_tavg-u-hxy-sea: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sitimefrac_d}, {freq: mon, model_var: sitimefrac}] - table: seaIce - units: '1' + formula: + day: sitimefrac_d + mon: sitimefrac siu_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siu_d}, {freq: mon, model_var: siu}] - table: seaIce - units: m s-1 + formula: + day: siu_d + mon: siu siv_tavg-u-hxy-ifs: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siv_d}, {freq: mon, model_var: siv}] - table: seaIce + formula: + day: siv_d + mon: siv units: m s-1 siv_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: siv_d}, {freq: mon, model_var: siv}] - table: seaIce - units: m s-1 + formula: + day: siv_d + mon: siv sivol_tavg-u-hm-u: - grids: [gm] - regrid_method: conservative - sources: [{alias: sivol, freq: day, model_var: sivol_d}, {freq: mon, model_var: sivol}, - model_var: tarea] - table: seaIce units: 1e3 km^3 - variants: [{formula: '(sivol * tarea).where(sivol.coords[''TLAT''] > 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Volume (Northern Hemisphere), region: nh}, - {formula: '(sivol * tarea).where(sivol.coords[''TLAT''] < 0).sum(dim=[''nj'', - ''ni''])', long_name: Sea Ice Volume (Southern Hemisphere), region: sh}] + variants: + - formula: + day: (sivol_d * tarea).where(sivol_d.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + mon: (sivol * tarea).where(sivol.coords['TLAT'] > 0).sum(dim=['nj', 'ni']) + region: nh + - formula: + day: (sivol_d * tarea).where(sivol_d.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + mon: (sivol * tarea).where(sivol.coords['TLAT'] < 0).sum(dim=['nj', 'ni']) + region: sh sivol_tavg-u-hxy-si: - grids: [gn] - regrid_method: conservative - sources: [{freq: day, model_var: sivol_d}, {freq: mon, model_var: sivol}] - table: seaIce + formula: + day: sivol_d + mon: sivol units: m3 m-3 From 64036895048bd4bafcc8bf01822a3e5bd4a5b6ec Mon Sep 17 00:00:00 2001 From: mvertens Date: Sun, 11 Oct 2026 11:10:01 +0200 Subject: [PATCH 4/8] added import of lru_cache to cmor_utils.py --- src/cmip7_prep/cmor_utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cmip7_prep/cmor_utils.py b/src/cmip7_prep/cmor_utils.py index 27b12c7d..7bf1bedb 100644 --- a/src/cmip7_prep/cmor_utils.py +++ b/src/cmip7_prep/cmor_utils.py @@ -1,6 +1,7 @@ """Utility functions for CMOR processing.""" from pathlib import Path +from functools import lru_cache import json import warnings import re From a61a5155b5d2b39d41e9d346aadfccddbec93665 Mon Sep 17 00:00:00 2001 From: mvertens Date: Sun, 11 Oct 2026 11:41:08 +0200 Subject: [PATCH 5/8] Put the CMOR logfiles under the realm, as the timeseries already are --- scripts/cmor_driver.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/cmor_driver.py b/scripts/cmor_driver.py index 01060ea7..2a7c30b8 100755 --- a/scripts/cmor_driver.py +++ b/scripts/cmor_driver.py @@ -650,7 +650,10 @@ def process_one_var( cmip7name = cmip_var.attributes["branded_variable_name"] for ds_cmor_write, write_cfg in cmor_items: try: - log_dir = outdir / "logs" + # Under the realm, as the timeseries are: a run writes one + # CMOR logfile per variable, so a shared directory mixes every + # realm's together and makes a failure hard to find. + log_dir = outdir / "logs" / realm # Global/dataset attributes assembled from the CV plus the # per-model dataset config; replaces the packaged cmor_dataset From db76f76ae2a7d804bee14052a9bea87a2edc184b Mon Sep 17 00:00:00 2001 From: mvertens Date: Sun, 11 Oct 2026 11:47:54 +0200 Subject: [PATCH 6/8] Align the overview table's numeric headers with their values --- scripts/build_validation_html.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/build_validation_html.py b/scripts/build_validation_html.py index 459fbd40..b4bb3862 100644 --- a/scripts/build_validation_html.py +++ b/scripts/build_validation_html.py @@ -282,6 +282,9 @@ def write_site_data(data: dict[str, Any], output_path: Path) -> None: th { color: var(--muted); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.03em; } tr:last-child td { border-bottom: none; } .table-wrap { overflow-x: auto; } +/* Both the cell and its header, or the value sits at one side of the column + and its label at the other, and every number reads as belonging to the + next heading along. */ .num { text-align: right; font-variant-numeric: tabular-nums; } .badge { display: inline-block; @@ -297,6 +300,9 @@ def write_site_data(data: dict[str, Any], output_path: Path) -> None: .badge.empty { color: var(--missing); background: var(--missing-bg); outline: 1px dashed var(--missing); outline-offset: -1px; } .badge.neutral { color: var(--muted); background: var(--bg); border: 1px solid var(--border); } .bar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: var(--border); min-width: 120px; } +/* The status bar claims 120px, which squeezed the last column until the + ISO timestamp wrapped onto a second line and the row lost its baseline. */ +.nowrap { white-space: nowrap; } .bar span.ok { background: var(--ok); } .bar span.error { background: var(--error); } .bar span.missing { background: var(--missing); } @@ -425,8 +431,9 @@ def write_site_data(data: dict[str, Any], output_path: Path) -> None: function renderOverviewTable() { var table = el("table"); var head = el("tr"); + var NUMERIC = { Expected: true, Produced: true, Errors: true, Missing: true }; ["Subset", "Expected", "Produced", "Errors", "Missing", "Status", "Validated"].forEach(function (label) { - head.appendChild(el("th", { text: label })); + head.appendChild(el("th", NUMERIC[label] ? { "class": "num", text: label } : { text: label })); }); table.appendChild(el("thead", {}, [head])); var body = el("tbody"); @@ -439,7 +446,7 @@ def write_site_data(data: dict[str, Any], output_path: Path) -> None: row.appendChild(el("td", { "class": "num", text: counts.variables_with_log_errors != null ? counts.variables_with_log_errors : "–" })); row.appendChild(el("td", { "class": "num", text: counts.missing_variables != null ? counts.missing_variables : "–" })); row.appendChild(el("td", {}, [progressBar(counts)])); - row.appendChild(el("td", { text: subset.generated_at || "–" })); + row.appendChild(el("td", { "class": "nowrap", text: subset.generated_at || "–" })); body.appendChild(row); }); table.appendChild(body); From 8394fc777b406b744a66145a17873c5f21683070 Mon Sep 17 00:00:00 2001 From: mvertens Date: Sun, 11 Oct 2026 18:38:11 +0200 Subject: [PATCH 7/8] separate cmor log output by realm --- scripts/validate_cmor_output.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/validate_cmor_output.py b/scripts/validate_cmor_output.py index b8ab7dcb..e4a24d8a 100644 --- a/scripts/validate_cmor_output.py +++ b/scripts/validate_cmor_output.py @@ -409,7 +409,9 @@ def collect_log_records( if not log_dir.is_dir(): logger.warning("Log directory not found: %s", log_dir) return records - for log_path in sorted(log_dir.glob("*.log")): + # Recursive: cmor_driver.py writes its logfiles under the realm, and + # older output has them all in one directory. + for log_path in sorted(log_dir.rglob("*.log")): record = parse_log_file(log_path) if record is None: continue From 6c51e87e1289c9a86c50c630ff9b74bcf8796096 Mon Sep 17 00:00:00 2001 From: mvertens Date: Sun, 11 Oct 2026 18:41:38 +0200 Subject: [PATCH 8/8] Tell pylint about gents, as the other third-party modules already are --- .pylintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pylintrc b/.pylintrc index 1d237c1e..891f7a95 100644 --- a/.pylintrc +++ b/.pylintrc @@ -17,5 +17,5 @@ disable= max-line-length=100 [TYPECHECK] -ignored-modules=xarray,xesmf,cmor,numpy,geocat.comp,yaml,jsonschema,cftime,pytest,dask +ignored-modules=xarray,xesmf,cmor,numpy,geocat.comp,yaml,jsonschema,cftime,pytest,dask,gents ignored-classes=cmor