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.
WorkingGroups/ConfigurationManager/2014_td – NEMO
wiki:WorkingGroups/ConfigurationManager/2014_td

Version 4 (modified by jpaul, 9 years ago) (diff)

--

Objectives

Create a configuration manager demonstrator. Evaluate the requirements of a Configuration Manager and define a development plan to realise it.

Existing tools

MERCATOR have developed SIREN, a tool that allows users to create regional configuration from an existing larger scale configuration. The regional configuration appears embedded within the parent configuration by merging the coarse bathymetry of the parent configuration with the finer resolution bathymetry of the regional configuration at the boundaries. This tool has been recently demonstrated in a regional set up of the Indonesian archipelago , INDESO, employing the ORCA12 grid.

NERC have developed generic method to provide boundary data for use by BDY code in NEMO. The original code for these tools was written in Matlab and had been written in an ad-hoc manner to service projects as and when the need arose. It is currently in the process of being formalised and ported to Python for wider distribution and to facilitate any future development.

Mercator: current status

a new set of Fortran routines was developped from scratch in order to:

  • allow user to choose method to be used for each variable (interpolation...)
  • manage tracers/ice/dynamics data (to be tested)
  • be AGRIF compliant (to be tested)
  • allow to create a band of latitude
  • allow to use odd and even refinment factor

This new SIREN is comprised of five Fortran programs that create the input files required for setting up and running a regional NEMO configuration (see below). It allows even or odd refinement from one ORCA grid to another. At present there are three interpolation methods available: cubic, linear or nearest. see documentation (coming soon) for more information.

These routines have also been successfully tested with several compilers: ifort(version 12.0.4), gfortran(version 4.7.2 20121109), and pgf95(version 13.9-0) compilers.

By the end of the year a final validation of the code will be performed and documentation on SIREN written.

What follows is a summary of each of the routines employed in SIREN. For each, a NEMO-style namelist is provided that contains information about: the coarse grid coordinate file, the fine grid coordinate and bathymetry, refinement factor and files of variables to be used.

create_coord

method: Variables are extracted from the input coordinates coarse grid file, and interpolated to create fine grid coordinates files.

Note: interpolation method could be different for each variable

how to: ./SIREN/bin/create_coord create_cood.nam

create_bathy

method: Bathymetry could be extracted from fine grid Bathymetry file, or interpolated from coarse grid Bathymetry file.

how to: ./SIREN/bin/create\_bathy create\_bathy.nam

merge_bathy

method: Coarse grid Bathymetry is interpolated on fine grid. Then fine Bathymetry and refined coarse bathymetry are merged at boundaries, using a weighting function dependant on distance from the boundary and boundary size.

how to: ./SIREN/bin/merge\_bathy merge\_bathy.nam

create_restart

method: Variables could be extracted from fine grid file, interpolated from coarse grid file or restart file. Then they are split over new decomposition.

Note:method could be different for each variable

how to: ./SIREN/bin/create_restart create_restart.nam

create_boundary

method: Variables are interpolated from coarse grid file on fine grid boundaries.

Note: method could be different for each variable

how to: ./SIREN/bin/create_boundary create_boundary.nam

SIREN limits

SIREN currently can not: -create a global configuration -handle north fold -change number of vertical levels -change z-coordinates to s-coordinates -change grid (ex: ORCA grid to regular grid)

For more information contact julien Paul (julien.paul@…)

NERC: current status

Both the Matlab and Python code currently have the capability to produce boundary data for the BDY open boundary conditions in NEMO v3.2 onwards. The code works using a NEMO-style namelist to initiate BDY configuration. Current features of the code include:

  • Automatic identification of BDY points from a user chosen or predefined mask.
  • KDTree nearest neighbour matchup between the identified BDY points and the associated locations on source grid.
  • Data are first interpolated (horizontally) from source grid to destination BDY points using: Bi-linear, Guessian or nearest neighbour interpolation. Then in the vertical: linear interpolation only at present.
  • Output in NEMO v3.2/3.3 and 3.4/3.6 forms.
  • Time stretching used to accommodate mismatch in source and destination calendars.
  • Optional smoothing along the boundary.
  • Handles rotation of vector quantities and can accommodate rotated grids (e.g. pan arctic).
  • At present is only coded to use TPXO7.2 inverse tidal model to provide tidal boundary conditions
  • Can produce generic tracer boundary conditions (e.g. for ecosystem boundary conditions).

Future code development in Python will provide users with a generic method to access remote non-native data sets such as the climate model databases from CMIP3 and CMIP5 that were used in recent IPCC reports. \newline

For more information contact james Harle (jdha@…)