New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
2019WP/HPC-11_Mirek_Andrejczuk_IO_with_XIOS (diff) – NEMO

Changes between Version 3 and Version 4 of 2019WP/HPC-11_Mirek_Andrejczuk_IO_with_XIOS


Ignore:
Timestamp:
2019-12-05T16:52:05+01:00 (4 years ago)
Author:
smasson
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2019WP/HPC-11_Mirek_Andrejczuk_IO_with_XIOS

    v3 v4  
    3434== Review 
    3535 
    36 Some years ago, when we created iom.F90, the idea was to be able to use different IO libraries as transparently as possible... 
    37  
    38 This was still the case in NEMO 3.6. 
    39 In that version, you could find 3 different IO libraries: nf90, ioipsl and dimg. 
    40 the choice between theses libraries was done in iom_def.F90 (lines 30 to 37) 
    41 https://forge.ipsl.jussieu.fr/nemo/browser/NEMO/releases/release-3.6/NEMOGCM/NEMO/OPA_SRC/IOM/iom_def.F90 [[BR]] 
    42  
    43   
    44 The iom routines where therefore organized in a 2 stages modules. 
    45  
    46 - The first stage is iom.F90 that contains all public subroutines, prepare all the IO work but do the IO work. 
    47 All the idea was iom.F90 is the common interface for all IO libraries. 
    48 https://forge.ipsl.jussieu.fr/nemo/browser/NEMO/releases/release-3.4/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90 
    49  
    50  - The second stage is called by iom.F90 subroutines and consist in 3 different IO routines 
    51 https://forge.ipsl.jussieu.fr/nemo/browser/NEMO/releases/release-3.6/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90 
    52 https://forge.ipsl.jussieu.fr/nemo/browser/NEMO/releases/release-3.6/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90 
    53 https://forge.ipsl.jussieu.fr/nemo/browser/NEMO/releases/release-3.6/NEMOGCM/NEMO/OPA_SRC/IOM/iom_rstdimg.F90 
    54  
    55  
    56 The fork toward the different libraries was done in iom.F90, with case statements.  
    57 See for example iom_rstput interface in this version of iom.F90 (from line 1046)  
    58  
    59 We think that the use of xios to read/write restarts should try follow this same logic.  
    60  -> reintroduce case in iom to be able to switch from native netcdf (nf90) to xios library [[BR]] 
    61  -> Ideally, the use of xios for restarts should not be visible somewhere else, no? [[BR]] 
    62  -> once the interface is done it is directly usable for all restarts [[BR]] 
    63  
    64 We know that the reality is more complex that this simple description and developing such interface wont be so easy… 
    65 We think a good stating point is to follow what is done for nf90 restarts that are performed in 2 steps: 
    66  1) 1 time step before restart: define all the restart file using a specific context (so xios_context_initialize and xios_close_context_definition cand be done anytime)[[BR]] 
    67  2) fill the file when is it restart time step. 
    68  
    69  
    70 Sebastien and Clement 
     36review of the part related to the restarts with XIOS done here: 
     37https://forge.ipsl.jussieu.fr/nemo/ticket/2323#comment:14