Skip to content

Merge geomar branch with neat new features#1443

Open
seb-wahl wants to merge 160 commits intoreleasefrom
geomar
Open

Merge geomar branch with neat new features#1443
seb-wahl wants to merge 160 commits intoreleasefrom
geomar

Conversation

@seb-wahl
Copy link
Contributor

@seb-wahl seb-wahl commented Feb 16, 2026

This PR finally brings GEOMAR's contributions to ESM-Tools back into release. It will allow the release branch of ESM-Tools to correctly handle

  • the latest settings from FOCIOIFS-5.0 (OIFS48r1 with NEMO5, without (working) and with (WIP) nest, used in WHIRLS project)
  • the latest settings used in FOCI-MOZ (FOCI with interactive stratospheric chemistry in ECHAM6, used in SOLVe project)
  • the latest settings used in the RESCUE project (modified ECHAM6 and JSBACH (12 tiles))
  • A draft version of ICON-FESOM that compiles and runs under piControl conditions (tuning ongoing)

seb-wahl and others added 30 commits December 10, 2024 12:17
compiles and starts, but misses (as expected) information in existing
JSBACH restart files. Cold start not yet implemented
links all currently known files correctly
running not yet tested as info from Shradda is still missing
draft version of ECHAM76-LMU that start up correctly
but still fails due to land sea mask mismatch
fixed restart setup in a hacky way (see foci.yaml)
added a new runscript for FOCIOIFS
This should be the only difference between geomar_dev and release that matters
allow different streams for restart and output for ECHAM and JSBACH
with FOCI-MOPS with the 12 tile edition
merge geomar dev into geomar branch
separate echam6 namlist templates for foci and foci_lmu
before merging this branch into geomar_dev
differences where too large for an efficient direct merge
adds dask stuff, moves post run commands to computer section
Copy link
Contributor

@mandresm mandresm left a comment

Choose a reason for hiding this comment

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

First round of minor requests and questions :)

Comment on lines 739 to +869
streams:
- echam
- accw
- co2
- g3bid
- g3bim
- g3bday
- g3b1hi
- glday
- aclcim
- sp6h
- glim
- spim
- ism

restartstreams:
- echam
- accw
- co2
- g3bid
- g3bim
- g3bday
- g3b1hi
- glday
- aclcim
- sp6h
- glim
- spim
- ism

Copy link
Contributor

@mandresm mandresm Feb 19, 2026

Choose a reason for hiding this comment

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

Hi @christian-stepanek, @chrisdane, @PengyangSong and @ackerlar,

In this PR we are merging efforts from GEOMAR team into release. This is important because it will make the whole thing more maintainable for them as well as for us (and because they have put quite some work to add ICON-FESOM ;) ). Before the PR is merged we will check that no model behavior is affected (as we usually do).

However, here is a change in how things are done in ECHAM until now, and I want to get your approval and keep you in the loop. In the past the list of streams, referenced above, was used both to compute the name of the output files and the restart files. However, it might be the case that some times some streams have restarts but do not have outputs, or the other way around. What @seb-wahl did here (and in the rest of the file) was to duplicate the the list of streams into a new list restartstreams and use the second one for all the operations that affect restart files. That does NOT lead to any change in behavior as the 2 lists are identical by default. However, this allows you to add new streams from your runscript to either streams or restartstreams so you can now you could have control of output and restarts independently if you need to.

If you are okay with this change please give a thumbs up to this message, if you have concerns please reply :)

Copy link
Contributor

Choose a reason for hiding this comment

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

@chrisdane, since you work with streams quite a bit and modify them, can you answer to this?

Copy link
Contributor

@mandresm mandresm left a comment

Choose a reason for hiding this comment

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

Reviews, comments and todos after the merge party

glob_search_file = (
f"{restart_file_path}*"
f"{config['ini_restart_dir']}{restart_file}*"
f"{config['ini_restart_date'].year}"
Copy link
Contributor

Choose a reason for hiding this comment

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

@mandresm test these changes with restarting from the pool

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok, you know FESOM better than I do so just use copy instead. Optimization can be done later if necessary.

Copy link
Contributor

Choose a reason for hiding this comment

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

@seb-wahl, this reply refers to this comment of mine #1443 (comment) right?

Copy link
Contributor

Choose a reason for hiding this comment

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

I run some bit-identical manual tests for restarts for AWICM3. For some of them, restarts showed some non-bit-identical files in rstos and rstas (coupling files for awicm3) between the release branch and the geomar_prep_release, butcdo diffv` showed that the data is identical (with CDO_TOLERANCE=0). For those specific problematic tests, the rstos and rstas files were created in that run, and it is very likely that they are created differently depending on the order of the fluxes that are output, but the data is identical. In fact, for those tests fesom restart files are identical between release and geomar batch for all runs.

For all the other scenarios (branching-off from a parent experiment and starting a run with oasis3mct.lresume: True) rstos and rstas where bit-identical and the behaviour was as expected.

All runs showed differences in LAW and srf oifs restart files, but I think that's again expected due to mpi-task ordering.

Copy link
Contributor

Choose a reason for hiding this comment

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

Is there t2m or sst output for that day of simulation? If so, could you plot and show it?
for oifs it should work with ncview. for fesom with ushow

Copy link
Contributor

Choose a reason for hiding this comment

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

Here the plots of the vars you asked (I think). One is for release (rf0) and another for the geomar_prep_release branch (gf0).

/work/ab0246/a270152/gf0/outdata/oifs/atm_remapped_1d_2t_1d_2000-2001.nc_20000201-20000229
image

/work/ab0246/a270152/rf0/outdata/oifs/atm_remapped_1d_2t_1d_2000-2001.nc_20000201-20000229
image

/work/ab0246/a270152/gf0/outdata/fesom/sst.fesom.200002.01.nc
image

/work/ab0246/a270152/rf0/outdata/fesom/sst.fesom.200002.01.nc
image

diff /work/ab0246/a270152/gf0/outdata/fesom/sst.fesom.200002.01.nc /work/ab0246/a270152/rf0/outdata/fesom/sst.fesom.200002.01.nc yields identical results

Cdo diff of the grib files differ :/ any clues @JanStreffing?

$ cdo diffv /work/ab0246/a270152/gf0/outdata/oifs/atm_remapped_1d_2t_1d_2000-2001.nc_20000201-20000229 /work/ab0246/a270152
/rf0/outdata/oifs/atm_remapped_1d_2t_1d_2000-2001.nc_20000201-20000229
cdi  warning (find_time_vars): Found more than one time variable, skipped variable time_centered!
cdi  warning (cdfInqContents): Coordinates variable time_centered can't be assigned!
cdi  warning (find_time_vars): Found more than one time variable, skipped variable time_centered!
cdi  warning (cdfInqContents): Coordinates variable time_centered can't be assigned!
               Date     Time   Level Gridsize    Miss    Diff : S Z  Max_Absdiff Max_Reldiff : Parameter name
     1 : 2000-02-01 12:00:00       0    76800       0   37239 : F F       1.5804   0.0064408 : 2t
     2 : 2000-02-02 12:00:00       0    76800       0   37251 : F F       1.5486   0.0063757 : 2t
     3 : 2000-02-03 12:00:00       0    76800       0   37253 : F F       1.6022   0.0065470 : 2t
     4 : 2000-02-04 12:00:00       0    76800       0   37248 : F F       1.4216   0.0057091 : 2t
     5 : 2000-02-05 12:00:00       0    76800       0   37243 : F F       1.0744   0.0038981 : 2t
     6 : 2000-02-06 12:00:00       0    76800       0   37243 : F F       1.2413   0.0044807 : 2t
     7 : 2000-02-07 12:00:00       0    76800       0   37236 : F F       1.0529   0.0038130 : 2t
     8 : 2000-02-08 12:00:00       0    76800       0   37248 : F F       1.0907   0.0043480 : 2t

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants