Name and subject of the action

Last edition: 06/04/20 10:53:10 by rblod

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

Summary

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

Description

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 Agrif Fixed Grid?.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

Implementation

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 :

&namdom
!
   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     =  'bathymetry_ORCA12_V3.3.nc'  ! 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

Using previous parts, define the main changes to be done in the NEMO literature (manuals, guide, web pages, …).

Preview

Since the preview step must be completed before the PI starts the coding, the previewer(s) answers are expected to be completed within the two weeks after the PI has sent the request to the previewer(s).
Then an iterative process should take place between PI and previewer(s) in order to find a consensus

Possible bottlenecks:

  • the methodology
  • the flowchart and list of routines to be changed
  • the new list of variables wrt coding rules
  • the summary of updates in literature

Once an agreement has been reached, preview is ended and the PI can start the development into his branch.

Tests

Once the development is done, the PI should complete the tests section below and after ask the reviewers to start their review.

This part should contain the detailed results of SETTE tests (restartability and reproducibility for each of the reference configuration) and detailed results of restartability and reproducibility when the option is activated on specified configurations used for this test

Regular checks:

  • Can this change be shown to produce expected impact (option activated)?
  • Can this change be shown to have a null impact (option not activated)?
  • Results of the required bit comparability tests been run: are there no differences when activating the development?
  • If some differences appear, is reason for the change valid/understood?
  • If some differences appear, is the impact as expected on model configurations?
  • Is this change expected to preserve all diagnostics?
  • If no, is reason for the change valid/understood?
  • Are there significant changes in run time/memory?

Review

A successful review is needed to schedule the merge of this development into the future NEMO release during next Merge Party (usually in November).

Assessments:

  • Is the proposed methodology now implemented?
  • Are the code changes in agreement with the flowchart defined at preview step?
  • Are the code changes in agreement with list of routines and variables as proposed at preview step?
    If, not, are the discrepancies acceptable?
  • Is the in-line documentation accurate and sufficient?
  • Do the code changes comply with NEMO coding standards?
  • Is the development documented with sufficient details for others to understand the impact of the change?
  • Is the project literature (manual, guide, web, …) now updated or completed following the proposed summary in preview section?

Finding:

Is the review fully successful? If not, please indicate what is still missing


Once review is successful, the development must be scheduled for merge during next Merge Party Meeting.

Last modified 2 months ago Last modified on 2020-06-04T10:53:10+02:00