Skip to content

Conversation

@mo-nikosbaltas
Copy link
Collaborator

@mo-nikosbaltas mo-nikosbaltas commented Dec 30, 2025

Closes #287

PR creation checklist for the developer

  • Has <issue_number> above ☝️ been replaced with the issue number?
  • Has main been selected as the base branch?
  • Does the feature branch name follow the format <issue_number>_<short_description_of_feature>?
  • Does the text of the PR title exactly match with the text (not including the issue number) of the issue title?
  • Have appropriate reviewers been added to the PR (once it is ready for review)?
  • Has the PR been assigned to the developer(s)?
  • Have the same labels as on the issue (except for the good first issue label) been added to the PR?
  • Has the Climate Model Evaluation Workflow (CMEW) project been added to the PR?
  • Has the appropriate milestone been added to the PR?

Definition of Done for the developer

PR creation checklist for the reviewer

  • Has <issue_number> above ☝️ been replaced with the issue number?
  • Has main been selected as the base branch?
  • Does the feature branch name follow the format <issue_number>_<short_description_of_feature>?
  • Does the text of the PR title exactly match with the text (not including the issue number) of the issue title?
  • Have appropriate reviewers been added to the PR (once it is ready for review)?
  • Has the PR been assigned to the developer(s)?
  • Have the same labels as on the issue (except for the good first issue label) been added to the PR?
  • Has the Climate Model Evaluation Workflow (CMEW) project been added to the PR?
  • Has the appropriate milestone been added to the PR?

Definition of Done for the reviewer

  • Does the change in this PR address the above issue / have all acceptance criteria been met?
  • Does the change in this PR follow the requirements in the wiki: Developer Guide (including copyrights)?
  • Have new tests related to the change been added?
  • Do all the GitHub workflow checks pass?
  • Do all the tests run locally and pass? (Note: the tests are not run by the GitHub workflow, see wiki: Run the tests locally)
  • Has the API documentation (e.g. docstrings in Python modules) related to the change been updated appropriately?
  • Has the user documentation (i.e. everything in the doc directory) related to the change been updated appropriately, including the Quick Start section?
  • Do the HTML pages render correctly? (See wiki: Build the documentation locally)

@mo-nikosbaltas mo-nikosbaltas self-assigned this Dec 30, 2025
@mo-nikosbaltas mo-nikosbaltas added enhancement New feature or request recipe Anything related to ESMValTool rose Anything related to Rose labels Dec 30, 2025
@mo-nikosbaltas
Copy link
Collaborator Author

@alistairsellar could you please provide feedback on the errors encountered. These are not related to the implementation but not availability of data (I think, but not an expert on this!)

When running cylc, run_recipe_radiation_budget failed We get this error from ESMValtool.
Looking at job.out:

ERROR No input files found for Dataset: . dataset: 'HadGEM3-GC31-LL',
project: 'CMIP6', exp: 'historical', ensemble: 'r5i1p1f3' .
.
Looked for files matching
/data/users/managecmip/champ/CMIP6/CMIP/MOHC/HadGEM3-GC31-LL/historical/r5i1
p1f3/Amon/hfls/gn//hfls_Amon_HadGEM3-GC31-LL_historical_r5i1p1f3_gn.nc
/data/users/managecmip/champ/CMIP6/CMIP/NERC/HadGEM3-GC31-LL/historical/r5i1
p1f3/Amon/hfls/gn//hfls_Amon_HadGEM3-GC31-LL_historical_r5i1p1f3_gn.nc
Similar "No input files found" errors are printed for rlds, rls, rss for the reference dataset.

At the end of the file:
ERROR Could not create all tasks
ERROR Missing data for preprocessor seasonal_radiation_budget/hfls: .
dataset: HadGEM3-GC31-LL . ensemble: r5i1p1f3 .
ERROR Not all input files required to run the recipe could be found.
So ESMValTool is telling you:

It is looking in the CHAMP CMIP6 archive under /data/users/managecmip/champ/CMIP6/CMIP/...
It cannot find the HadGEM3-GC31-LL historical r5i1p1f3 files for several variables for 1993.
That is why run_recipe_radiation_budget fails.

Looking at the logs further, #287 does the correct thingy.

Reference dataset (dataset index 0) is now:
dataset: HadGEM3-GC31-LL
project: CMIP6
exp: historical
ensemble: r5i1p1f3
activity: CMIP

Evaluation dataset (dataset index 1) is:
dataset: UKESM1-0-LL
project: ESMVal
exp: amip
activity: ESMVal
ensemble: r1i1p1f1

And in the same log I could see:
ESMValTool does find EVAL data:

Found input files for Dataset: hfls, Amon, ESMVal, UKESM1-0-LL, ESMVal, amip, r1i1p1f1, gn, v20251230 Found input files for Dataset: hfss, Amon, ESMVal, UKESM1-0-LL, ESMVal, amip, r1i1p1f1, gn, v20251230 Found input files for Dataset: rlds, Amon, ESMVal, UKESM1-0-LL, ESMVal, amip, r1i1p1f1, gn, v20251230 . etc.

So:
The EVAL path (the CDDS output under ${ROOT_DATA_DIR}) is correct and being picked up.
The REF dataset is correctly wired to CMIP6 HadGEM3-GC31-LL with the variant REF_VARIANT_LABEL we configured in rose-suite.conf.

The failure is specifically: the CHAMP CMIP6 archive does not contain all the expected files for HadGEM3-GC31-LL, historical, r5i1p1f3, year 1993 for all variables.

The current rose-suite.conf has:

MODEL_ID="UKESM1-0-LL"
VARIANT_LABEL="r1i1p1f1"

REF_MODEL_ID="HadGEM3-GC31-LL"
REF_VARIANT_LABEL="r5i1p1f3"

Alistair, can you check whether the files exist for HadGEM3-GC31-LL, r5i1p1f3. If those files (hfls, rlds, rls, rss at 1993) are missing or stored under a different ensemble, then it seems that we get those errors.

To confirm that the #287 implementation is correct we can align REF_ with EVAL_ and check that it works.
In other words, in rose-suite.conf we set:
REF_MODEL_ID="UKESM1-0-LL"
REF_VARIANT_LABEL="r1i1p1f1"

But if we want to keep the REF settings as, REF_MODEL_ID="HadGEM3-GC31-LL"
REF_VARIANT_LABEL="r5i1p1f3"
Then, you need to check the availability of the data. Otherwise we need to choose a different ensemble.

@alistairsellar
Copy link
Collaborator

It is looking in the CHAMP CMIP6 archive under /data/users/managecmip/champ/CMIP6/CMIP/...

Hrmmm, it is indeed looking there. However it shouldn't be looking there, since that's our mirror of CMIP data and we now want CMEW to be feeding the locally standardised data into ESMValTool, not CMIP data. So ESMValTool should be looking in the cylc-run dir for the standardised data.

@mo-nikosbaltas mo-nikosbaltas changed the title feed model id and variant label to recipe Feed model_id and variant_label to recipe Dec 31, 2025
@mo-nikosbaltas mo-nikosbaltas marked this pull request as ready for review December 31, 2025 10:55
Copy link
Collaborator

@alistairsellar alistairsellar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mo-nikosbaltas, looks good. My requested changes relate to comments and docstrings only.

@mo-nikosbaltas
Copy link
Collaborator Author

Document workflow.rst changed a040aaf

Copy link
Collaborator

@alistairsellar alistairsellar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mo-nikosbaltas. There is some useful detail in what you've added, but the sections would have been quite inconsistent in their level of detail and the space they occupied: the updated sections would have had much more detail (and took up much more space) than the sections not impacted by this PR. For me it made the flow of the page hard to follow. I've therefore condensed your additions, for more consistency across the page.

If you accept the suggestions, then once committed please check that these still compile and render OK, as I haven't checked that.

I can see that some more detail could be useful across all of the sections, using some of the more expansive formatting that you have used here. I propose that we schedule a discussion to get a shared understanding of what we want from the documentation. In the meantime, feel free to open an issue to propose what you feel should be covered in the workflow page.

Copy link
Collaborator

@alistairsellar alistairsellar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologies, my suggestions included trailing spaces, which has broken the GitHub checks. These suggestions remove some of them - hopefully all...

"one for the reference and one for the evaluation run."
)

# Reference dataset: keep existing project/exp/grid but override
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it is keeping the existing project or exp? I think it's overwriting them?

{
"dataset": ref_model_id,
"project": "ESMVal",
"exp": "amip",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, I think we're changing this from "historical". Is it deliberate? If so, the comment should be updated.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooh, I should have picked this up in first review. Actually I think that experiment might be wrong for both runs, including the original. For this recipe (radiation budget) the choice of experiment doesn't make a difference, but it will for some recipes, so experiment should be something that the user defines as part of the model run definition. I've just opened an issue to add that: #316.

For this PR, I propose that we accept that the second run is no more wrong than the first, and that having them consistently called "amip" is as good as any choice. I.e. I propose that we keep "exp": "amip" for both.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still think the comment should reflect what's going on, but I will take note to pay more attention to the unchanged code in a review next time.

:Executes:
The ``cdds_convert`` command and the ``restructure_dirs.sh`` script
from the |Rose| app
from the |Rose| app.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was no full stop in the equivalent line of "configure_standardise", "configure_for" or "install_env_file". they should probably be consistent.

@NParsonsMO
Copy link
Collaborator

NParsonsMO commented Jan 6, 2026

@mo-nikosbaltas some of the review comments are just queries, but if I'm correct that we are overwriting the experiment (from "historical" to "amip", then the comment should reflect this (the recipe does run successfully with the change, but is the data that it assesses the same data?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request recipe Anything related to ESMValTool rose Anything related to Rose

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feed model_id and variant_label to recipe

4 participants