incomplete integration of _inner and _halo1 in the xios interface
I found some issues in the current implementation of the _inner
and halo1
in our xios interface:
-
_inner
and_halo1
are missing in the moorings and the equatorial section -
_halo1
is used iniom.F90
but these pieces of code will not be applied as there is no trace of_halo1
in the xml files. It is not a big deal as we are not using it today but it could become an issue in the future.
We already duplicated lines in domain_def_nemo.xml
and in grid_def_nemo.xml to have the _inner
, i.e.
<!-- T grid -->
<domain id="grid_T" long_name="grid T"/>
<domain id="grid_T_inner" long_name="grid T inner"/>
We could duplicate by hand all the missing parts in the domain_def_nemo.xml
and grid_def_nemo.xml
files but these would create long and unreadable files.
Another solution is to automatically write the needed parts from the code, using the fortran interface of xios.
The pros of automatic writing : robust, clean and safe as we control everything from NEMO. We control that what is in iom.F90
matches what is expected from xios.
The cons of automatic writing : the grid_ref we are using in field_def_nemo-oce.xml
and that we may use in the file_def_nemo-oce.xml
won’t be visible in the xml files. They are hidden in iom.F90
and sometime no easy to find (i.e set_mooring
subroutine which defines the domain names of the moorings).
As an intermediate solution I propose to
- remove (almost) all the lines related to
_inner
in the thedomain_def_nemo.xml
andgrid_def_nemo.xml
files but nothing more - automatically duplicate, in
iom.F90
, the needed domains and grids for ‘_inner’ and ‘_halo1' with xios fortran interface.