Opened 7 months ago

Closed 7 months ago

#2432 closed Bug (fixed)

multiple 3rd dimensions in iom_rstput

Reported by: smasson Owned by: systeam
Priority: low Milestone:
Component: IOM Version: trunk
Severity: minor Keywords:
Cc:

Description

Context

Several tricks have been done to be able to manage different 3rd dimensions in NetCDF files created by iom_open and iom_rstput.
Adding tricks on top of existing tricks is not a good solution… and end up with bugs…
For example in ICE_AGRIF (because jpk = 2 = jpka) iom_nf90_rp0123d try to access undefined variable (ght_abl).

Analysis

Creating a NetCDF file with several dimensions that could be used as a 3rd dimension is feasible.
The problem rises when we write 3D data with iom_rstput. We should be able to know to which 3rd dimension we should attach the variable… This cannot be done with the dimension size as they can be identical in some cases (see the bug we have today in ICE_AGRIF).
To do the job, we should add an argument to iom_rstput to say which 3rd dimension we should use. This is not a very nice/light solution…

Fix

Instead of doing a more complicated code, we propose to simplify the things:
→ NetCDF file created by iom_open and iom_rstput can have only one unique 3rd dimension which can be specified through optional arguments in iom_open

This solution forces

1) to split restart files (1 for each component): this is already the case today, so their is no changes here
2) a file created by dia_wri_state (output.init and output.abort) can no more contain 3D variables from both, OCE (jpk) and ICE (numcat). We must therefore split this file in 2: output.init and output.init_ice or output.abort and output.abort_ice. This is the only change imposed by this solution.

Commit History (1)

ChangesetAuthorTimeChangeLog
12649smasson2020-04-03T09:11:57+02:00

trunk: clean and unique 3rd dimension in iom_rstput, see #2432

Change History (3)

comment:1 Changed 7 months ago by smasson

This solution was accepted by Clément, Guillaume, Christian and Pierre

comment:2 Changed 7 months ago by smasson

In 12649:

trunk: clean and unique 3rd dimension in iom_rstput, see #2432

comment:3 Changed 7 months ago by smasson

  • Resolution set to fixed
  • Status changed from new to closed

fixed in [12649]
this commit pass all sette tests and gives the exact same results as [12615]

Current code is : NEMO/trunk @ r12646  ( last change @ r12646 )

SETTE validation report generated for :

       NEMO/trunk @ r12646+ (last changed revision)

       on X64_IRENE arch file


!!---------------1st pass------------------!!

   !----restart----!
WGYRE_PISCES_ST              run.stat    restartability  passed :  12646+
WGYRE_PISCES_ST              tracer.stat restartability  passed :  12646+
WORCA2_ICE_PISCES_ST         run.stat    restartability  passed :  12646+
WORCA2_ICE_PISCES_ST         tracer.stat restartability  passed :  12646+
WORCA2_OFF_PISCES_ST         tracer.stat restartability  passed :  12646+
WAMM12_ST                    run.stat    restartability  passed :  12646+
WORCA2_SAS_ICE_ST            run.stat    restartability  passed :  12646+
WAGRIF_DEMO_ST               run.stat    restartability  passed :  12646+
WSPITZ12_ST                  run.stat    restartability  passed :  12646+
WISOMIP_ST                   run.stat    restartability  passed :  12646+
WOVERFLOW_ST                 run.stat    restartability  passed :  12646+
WLOCK_EXCHANGE_ST            run.stat    restartability  passed :  12646+
WVORTEX_ST                   run.stat    restartability  passed :  12646+
WICE_AGRIF_ST                run.stat    restartability  passed :  12646+

   !----repro----!
WGYRE_PISCES_ST              run.stat    reproducibility passed :  12646+
WGYRE_PISCES_ST              tracer.stat reproducibility passed :  12646+
WORCA2_ICE_PISCES_ST         run.stat    reproducibility passed :  12646+
WORCA2_ICE_PISCES_ST         tracer.stat reproducibility passed :  12646+
WORCA2_OFF_PISCES_ST         tracer.stat reproducibility passed :  12646+
WAMM12_ST                    run.stat    reproducibility passed :  12646+
WORCA2_SAS_ICE_ST            run.stat    reproducibility passed :  12646+
WORCA2_ICE_OBS_ST            run.stat    reproducibility passed :  12646+
WAGRIF_DEMO_ST               run.stat    reproducibility passed :  12646+
WSPITZ12_ST                  run.stat    reproducibility passed :  12646+
WISOMIP_ST                   run.stat    reproducibility passed :  12646+
WVORTEX_ST                   run.stat    reproducibility passed :  12646+
WICE_AGRIF_ST                run.stat    reproducibility passed :  12646+

   !----agrif check----!
ORCA2 AGRIF vs ORCA2 NOAGRIF run.stat    unchanged  -    passed :  12646+ 12646+

   !----result comparison check----!

check result differences between :
VALID directory : /ccc/scratch/cont005/ra0542/massons/trunk_t2432/NEMO_VALIDATION at rev 12646+
and
REFERENCE directory : /ccc/work/cont005/ra0542/massons/NEMO_ALL_VALIDATIONS/trunk/NEMO_VALIDATION at rev 12615

WGYRE_PISCES_ST       run.stat    files are identical
WGYRE_PISCES_ST       tracer.stat files are identical
WORCA2_ICE_PISCES_ST  run.stat    files are identical
WORCA2_ICE_PISCES_ST  tracer.stat files are identical
WORCA2_OFF_PISCES_ST  tracer.stat files are identical
WAMM12_ST             run.stat    files are identical
WISOMIP_ST            run.stat    files are identical
WORCA2_SAS_ICE_ST     run.stat    files are identical
WAGRIF_DEMO_ST        run.stat    files are identical
WSPITZ12_ST           run.stat    files are identical
WISOMIP_ST            run.stat    files are identical
WVORTEX_ST            run.stat    files are identical
WICE_AGRIF_ST         run.stat    files are identical
Note: See TracTickets for help on using tickets.