From 62cc765afcb143c20dfaa197a5e1fd48cd4fb49a Mon Sep 17 00:00:00 2001 From: Michael Wathen Date: Fri, 3 Jul 2026 10:39:52 +0100 Subject: [PATCH 1/4] Adding testcase yaml file gotm runs to actions --- .github/workflows/ersem.yml | 2 +- .../gotm-fabm-ersem/gotm-testcase-yaml.sh | 35 ++++++++++++++++ .../gotm-fabm-ersem/test_testcase_yamls.py | 42 +++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100755 github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh create mode 100644 github-actions/gotm-fabm-ersem/test_testcase_yamls.py diff --git a/.github/workflows/ersem.yml b/.github/workflows/ersem.yml index ffc6b29..96d8412 100644 --- a/.github/workflows/ersem.yml +++ b/.github/workflows/ersem.yml @@ -67,7 +67,7 @@ jobs: - name: Running gotm tests run: | python -m pip install pytest - pytest github-actions/gotm-fabm-ersem/test_state_variables.py github-actions/gotm-fabm-ersem/test_gotm.py + pytest github-actions/gotm-fabm-ersem/test_state_variables.py github-actions/gotm-fabm-ersem/test_gotm.py github-actions/gotm-fabm-ersem/test_testcase_yamls.py build-fabm0d-gotm-ersem-debian: runs-on: ubuntu-latest diff --git a/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh b/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh new file mode 100755 index 0000000..f2b932c --- /dev/null +++ b/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -euo pipefail + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " >&2 + exit 2 +fi + +TESTCASE_YAML="$1" +if [ ! -f "${TESTCASE_YAML}" ]; then + echo "Testcase YAML not found: ${TESTCASE_YAML}" >&2 + exit 2 +fi + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_DIR="$(cd "${SCRIPT_DIR}/../.." && pwd)" +SETUPS_DIR="${GOTM_ERSEM_SETUPS_DIR:-${REPO_DIR}/ersem-setups}" +GOTM_BIN="${GOTM_BIN:-${HOME}/local/gotm/bin/gotm}" + +if [ ! -x "${GOTM_BIN}" ]; then + echo "GOTM executable not found or not executable: ${GOTM_BIN}" >&2 + exit 2 +fi + +if [ ! -d "${SETUPS_DIR}" ]; then + echo "Cloning config repo" + git clone https://github.com/pmlmodelling/ersem-setups.git "${SETUPS_DIR}" +fi + +echo "Running GOTM with testcase YAML: ${TESTCASE_YAML}" +cp "${TESTCASE_YAML}" "${SETUPS_DIR}/L4/fabm.yaml" +cd "${SETUPS_DIR}/L4" + +"${GOTM_BIN}" --ignore_unknown_config diff --git a/github-actions/gotm-fabm-ersem/test_testcase_yamls.py b/github-actions/gotm-fabm-ersem/test_testcase_yamls.py new file mode 100644 index 0000000..cbab095 --- /dev/null +++ b/github-actions/gotm-fabm-ersem/test_testcase_yamls.py @@ -0,0 +1,42 @@ +""" +Check that GOTM runs with every testcase YAML configuration. +""" + +import subprocess +from pathlib import Path + +import pytest + + +REPO_DIR = Path(__file__).resolve().parents[2] +TESTCASE_DIR = REPO_DIR / "testcases" +RUNNER = Path(__file__).with_name("gotm-testcase-yaml.sh") + +YAML_PATTERNS = ("*.yaml", "*.yml") +TESTCASE_YAMLS = sorted( + {path for pattern in YAML_PATTERNS for path in TESTCASE_DIR.rglob(pattern)} +) + + +def yaml_id(path): + return path.relative_to(TESTCASE_DIR).as_posix() + + +@pytest.mark.parametrize("testcase_yaml", TESTCASE_YAMLS, ids=yaml_id) +def test_gotm_runs_with_testcase_yaml(testcase_yaml): + """ + Run GOTM with an ERSEM testcase YAML copied to the L4 setup. + """ + result = subprocess.run( + ["bash", str(RUNNER), str(testcase_yaml)], + cwd=REPO_DIR, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + ) + + assert result.returncode == 0, ( + f"GOTM failed for {testcase_yaml.relative_to(REPO_DIR)}\n" + f"stdout:\n{result.stdout}\n" + f"stderr:\n{result.stderr}" + ) From 2b67ea2e8da8fe030a2e7c14c511c9ac73c4392c Mon Sep 17 00:00:00 2001 From: Michael Wathen Date: Fri, 3 Jul 2026 10:51:26 +0100 Subject: [PATCH 2/4] Updating testcase yaml files to run in seperate workflow --- .github/workflows/ersem.yml | 21 +++++++++++++- .../gotm-fabm-ersem/gotm-testcase-yaml.sh | 29 +++++++++++++++++-- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ersem.yml b/.github/workflows/ersem.yml index 96d8412..ea302a7 100644 --- a/.github/workflows/ersem.yml +++ b/.github/workflows/ersem.yml @@ -67,7 +67,26 @@ jobs: - name: Running gotm tests run: | python -m pip install pytest - pytest github-actions/gotm-fabm-ersem/test_state_variables.py github-actions/gotm-fabm-ersem/test_gotm.py github-actions/gotm-fabm-ersem/test_testcase_yamls.py + pytest github-actions/gotm-fabm-ersem/test_state_variables.py github-actions/gotm-fabm-ersem/test_gotm.py + + test-gotm-testcase-yamls-debian: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Installing GOTM-FABM-ERSEM dependences + run: ./github-actions/gotm-fabm-ersem/gotm-fabm-ersem-dep-debian.sh + - name: Building and installing GOTM-FABM-ERSEM + run: | + BRANCH=${{ github.head_ref }} + ./github-actions/gotm-fabm-ersem/gotm-fabm-ersem-build.sh -b $BRANCH -f '-DCMAKE_Fortran_FLAGS="-fcheck=all"' + - name: Running GOTM testcase YAML tests + run: | + python -m pip install pytest + pytest github-actions/gotm-fabm-ersem/test_testcase_yamls.py build-fabm0d-gotm-ersem-debian: runs-on: ubuntu-latest diff --git a/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh b/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh index f2b932c..d1e7b7f 100755 --- a/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh +++ b/github-actions/gotm-fabm-ersem/gotm-testcase-yaml.sh @@ -16,7 +16,9 @@ fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_DIR="$(cd "${SCRIPT_DIR}/../.." && pwd)" SETUPS_DIR="${GOTM_ERSEM_SETUPS_DIR:-${REPO_DIR}/ersem-setups}" +L4_DIR="${SETUPS_DIR}/L4" GOTM_BIN="${GOTM_BIN:-${HOME}/local/gotm/bin/gotm}" +GOTM_TEST_STOP="${GOTM_TEST_STOP:-2007-02-01 00:00:00}" if [ ! -x "${GOTM_BIN}" ]; then echo "GOTM executable not found or not executable: ${GOTM_BIN}" >&2 @@ -28,8 +30,31 @@ if [ ! -d "${SETUPS_DIR}" ]; then git clone https://github.com/pmlmodelling/ersem-setups.git "${SETUPS_DIR}" fi +ORIGINAL_GOTM_YAML="$(mktemp "${L4_DIR}/gotm.yaml.original.XXXXXX")" +TEST_GOTM_YAML="$(mktemp "${L4_DIR}/gotm.yaml.testcase.XXXXXX")" +cp "${L4_DIR}/gotm.yaml" "${ORIGINAL_GOTM_YAML}" + +cleanup() { + cp "${ORIGINAL_GOTM_YAML}" "${L4_DIR}/gotm.yaml" + rm -f "${ORIGINAL_GOTM_YAML}" "${TEST_GOTM_YAML}" +} +trap cleanup EXIT + +awk -v stop="${GOTM_TEST_STOP}" ' + /^time:[[:space:]]*$/ { in_time = 1 } + /^[^[:space:]]/ && !/^time:[[:space:]]*$/ { in_time = 0 } + in_time && /^[[:space:]]+stop:[[:space:]]/ { + sub(/stop:.*/, "stop: " stop) + updated = 1 + } + { print } + END { if (!updated) exit 1 } +' "${L4_DIR}/gotm.yaml" > "${TEST_GOTM_YAML}" + echo "Running GOTM with testcase YAML: ${TESTCASE_YAML}" -cp "${TESTCASE_YAML}" "${SETUPS_DIR}/L4/fabm.yaml" -cd "${SETUPS_DIR}/L4" +echo "Using temporary gotm.yaml stop date: ${GOTM_TEST_STOP}" +cp "${TEST_GOTM_YAML}" "${L4_DIR}/gotm.yaml" +cp "${TESTCASE_YAML}" "${L4_DIR}/fabm.yaml" +cd "${L4_DIR}" "${GOTM_BIN}" --ignore_unknown_config From a7bd302fee4fe31c92d5007dd96bc59b7cf52eb3 Mon Sep 17 00:00:00 2001 From: Michael Wathen Date: Fri, 3 Jul 2026 14:25:57 +0100 Subject: [PATCH 3/4] Adding default values of exulim for ersem-15.06 and ersem-Blackford2024 testcase yaml files --- .../ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-denit.yaml | 4 ++++ .../ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-n2o.yaml | 4 ++++ testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml | 4 ++++ .../ersem-15.06/fabm-ersem-15.06-L4-noben-docdyn-iop.yaml | 4 ++++ .../fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml | 4 ++++ .../fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml | 4 ++++ 6 files changed, 24 insertions(+) diff --git a/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-denit.yaml b/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-denit.yaml index 5776320..d42e585 100644 --- a/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-denit.yaml +++ b/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-denit.yaml @@ -286,6 +286,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -352,6 +353,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -415,6 +417,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.045 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -475,6 +478,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.035 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) diff --git a/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-n2o.yaml b/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-n2o.yaml index 8d39a25..e6f1c0c 100644 --- a/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-n2o.yaml +++ b/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop-n2o.yaml @@ -279,6 +279,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -345,6 +346,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -408,6 +410,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.045 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -468,6 +471,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.035 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) diff --git a/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml b/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml index 652033d..f31ded0 100644 --- a/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml +++ b/testcases/ersem-15.06/fabm-ersem-15.06-L4-ben-docdyn-iop.yaml @@ -269,6 +269,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -335,6 +336,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -398,6 +400,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.045 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -458,6 +461,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.035 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) diff --git a/testcases/ersem-15.06/fabm-ersem-15.06-L4-noben-docdyn-iop.yaml b/testcases/ersem-15.06/fabm-ersem-15.06-L4-noben-docdyn-iop.yaml index 39efe57..3cade29 100644 --- a/testcases/ersem-15.06/fabm-ersem-15.06-L4-noben-docdyn-iop.yaml +++ b/testcases/ersem-15.06/fabm-ersem-15.06-L4-noben-docdyn-iop.yaml @@ -273,6 +273,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -339,6 +340,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.04 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.005 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000225 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -402,6 +404,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.045 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.006 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.00035 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -462,6 +465,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.035 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.2 # respired fraction of primary production (-) qnlc: 0.0042 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.0001 # minimum phosphorus to carbon ratio (mmol P/mg C) diff --git a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml index 4700ee6..f0e561d 100644 --- a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml +++ b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml @@ -256,6 +256,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.05 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.1 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -321,6 +322,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -383,6 +385,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -442,6 +445,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.05 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) diff --git a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml index 315bdd6..c23d845 100644 --- a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml +++ b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml @@ -259,6 +259,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.05 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.1 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -324,6 +325,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -386,6 +388,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -445,6 +448,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.05 # excreted fraction of primary production (-) + exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) From cf1385cbe4b0493cdab6a0a8013bdb86b0b23c37 Mon Sep 17 00:00:00 2001 From: Michael Wathen Date: Fri, 3 Jul 2026 14:44:57 +0100 Subject: [PATCH 4/4] Updating ersem-Blackford2024 exulim testcase param --- .../fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml | 4 ++-- .../fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml index f0e561d..7498dfd 100644 --- a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml +++ b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-ben-stdbac-stdlight.yaml @@ -322,7 +322,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) - exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -385,7 +385,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) - exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) diff --git a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml index c23d845..9affd10 100644 --- a/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml +++ b/testcases/ersem-Blackford2024/fabm-ersem-Blackford2004-L4-noben-stdbac-stdlight.yaml @@ -325,7 +325,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) - exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C) @@ -388,7 +388,7 @@ instances: q10: 2.0 # Q_10 temperature coefficient (-) srs: 0.05 # specific rest respiration at reference temperature (1/d) pu_ea: 0.2 # excreted fraction of primary production (-) - exulim: 0.95 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea + exulim: 0.8 # excreted fraction of primary production due to nutrient stress,maximum=1._rk-self%pu_ea pu_ra: 0.25 # respired fraction of primary production (-) qnlc: 0.00687 # minimum nitrogen to carbon ratio (mmol N/mg C) qplc: 0.000428 # minimum phosphorus to carbon ratio (mmol P/mg C)