New URL for NEMO forge!

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.
2020WP/AGRIF-05_rblod_CMEMS – NEMO

Version 6 (modified by rblod, 4 years ago) (diff)


Name and subject of the action

Last edition: Wikinfo(changed_ts)? by Wikinfo(changed_by)?

The PI is responsible to closely follow the progress of the action, and especially to contact NEMO project manager if the delay on preview (or review) are longer than the 2 weeks expected.

  1. Summary
  2. Preview
  3. Tests
  4. Review


Action AGRIF-05_rblod_CMEMS
PI(S) Rachid Benshila
Digest Import developments from CMEMS AGRIF project
Dependencies #2222
Branch source:/NEMO/branches/2020/dev_r12973_AGRIF_CMEMS
Previewer(s) J. Chanut
Reviewer(s) Names
Ticket #2129


This corresponds to the code produced during CMEMS AGRIF project (which ends in late 2020).
Expected outcomes. They correspond to a CMEMS call to improve Agrif capabilities for global configurations. Details will be found in corresponding project reports.

  • New nesting tools base on domaincfg :

the idea there is to modify domaincfg package to use it as nesting tools. The routines will be "Agrifed", and when compiled with key_agrif, the code will read an AgrifFixedGrid?.in file and use Agrif Library to go through the grid hierarchy and interpolate the meshes. Bathymetry interpolation when an external database is provided will use the same interpolations than in the former nesting tools. When not provided, interpolating the parent bathymetry is possible. Yhe bathymetry connection is also handled recursively. Creating grid and bathymetry is the only functionality which is provided. The new nesting tools support the additional capabilities below.

  • Allow zooms with cyclic and North Fold conditions
    • make a zoom at north fold
    • make a zoom through the east-west grid separation
    • make an east-west zoom totally periodic
  • Improve parallelisation and load balancing (phase II)
  • Those three items imply to provide a new AGRIF library


For know (June the 4th), we list here what is underway, tricky and the potential issues, details will be in project reports. The first version of the branch adresses points 1,2 and 4 in the list above

  • domaincfg
    • to use it as nesting tools, it is compiled with key_agrif. To do so, a makefile is provided for know. Maketools has still to be modified to use NEMO logic.
    • it has now an Agrif-like structure (agrif_user routine and so)
    • we provide an agrifFixed.in_cmems file with 3 examples for new capabilities.
    • without Agrif, it should provide the result as before but this has to be checked
    • still cleaning and cosmetics to do
    • it should be able (with or without agrif) to work in MPI but not tested yet
    • a small python script is provided to generate namelists on a hierarchy of grids
    • new flags in the namelist :

   nn_bathy    =    1      !  compute analyticaly (=0) or read (=1) the bathymetry file
                                    !  or compute (2) from external bathymetry
                                    ! with agrif, if 1 for the child grids, interpolate from parent
   nn_interp   =    1                          ! type of interpolation (nn_bathy =2). With external source : 0 :average, 1 median, 2 bilinear
   cn_topo     =  ''  ! external topo file (nn_bathy =2)
   cn_bath     =  'Bathymetry'                 ! topo name in file  (nn_bathy =2)
   cn_lon        =  'nav_lon'                    ! lon  name in file  (nn_bathy =2)
   cn_lat         =  'nav_lat'                      ! lat  name in file  (nn_bathy =2)
   rn_scale     = 1                                 ! scale facto for input bathymetry data

&namagrif      !  AGRIF zoom                                            ("key_agrif")
ln_bry_south = .TRUE.    ! F : no south boudary antarctic)

  • weights
    • Minor changes to read the input namelist as an argument.
    • python script to loop on a hierachy of grids
  • NEMO sources
    • some changes in NST routines (mainluy agrif_user) and reorganisation of initialisation phase
      • user can provide is own mapping functionality in agrif_user
      • initialisation has to be done at the very beginning so agrif_nemo_init is called in mppini
      • agrif_declare_var_dom is renamed agrif_declare_var_ini and is used to declare value for grid and initial state
      • agrif_Init_domain (former Agrif_InitValues_cont_dom) is called at the end of dom_init.
      • interpolation of initial state is done on the fly using agrif_init. New profiles are introduced and we try to use existing procname. It has still to be checked for 3D filed which are using vertical remapping capabilities
  • new namelist parameter
    &namagrif      !  AGRIF zoom                                            ("key_agrif")
    ln_bry_south = .TRUE.    ! F : no south boudary antarctic)
  • modification to review not related to the project :
    • to pass debug phase, global ALLOCATABLE arrays of CHARACTER are of length lca (defined in parkind.F90) , corresponding in the length of the characters in AGRIF library. Happens in lib_mpp.F90, diaobs.F90,stopar.F90
    • floblk is bypass for now using key_agrif since the conv fails on GOTO instruction

Documentation updates

Error: Failed to load processor box
No macro or processor named 'box' found



Error: Failed to load processor box
No macro or processor named 'box' found



Error: Failed to load processor box
No macro or processor named 'box' found



Error: Failed to load processor box
No macro or processor named 'box' found