Earth Sciences

Earth Sciences Wiki

User Tools

Site Tools



How to run a nudging experiment with EC-Earth 3.2.3

You can run experiments activating surface restoring or Newtonian Damping (3D nudging). Both features are already part of NEMO code, nevertheless with auto-ecearth there are some parameters to activate in the configuration files and some variables to take care of in the namelist. This guide is mostly thought for AUTO-ECEARTH users.

First of all, check that the nudging files you want to use are available on the platform you would like to run.

In MN4, data for surface restoring are located here: /gpfs/projects/bsc32/repository/surface_restoring.

Any new surface restoring files should be located in the above path following this structure: ocean/REFERENCE/RESOLUTION/MEMB,( where REFERENCE is the name of the ocean reanalysis you would like use and MEMB is the member). For example for oras4 surface restore data: /gpfs/projects/bsc32/repository/surface_restoring/ocean/s4/ORCA1L75/fc0. The data should be files with 12 month starting in January with this name convention: and where XXXX is the year, ( this is how nemo wants the files, see routine fldread.F90 for more details).

For 3d nudging, the location in MN4 is /gpfs/projects/bsc32/repository/nudging and the convention, if the user want to add other nudging files is: /gpfs/projects/bsc32/repository/nudging/REFERENCE/CONFIG/fcMEMB/ where REFERENCE is the name of the ocean reanalysis you would like to nudge to ( s4 / glorys2v1 ), CONFIG is the ocean model resolution ( ORCA1L75 / ORCA025L75 ) and MEMB is the member.

If you would like to prepare new reference files, their naming should follow the convention : = one file containing 3-dimensional monthly mean temperature and salinity. For a given year the previous year and the following year are linked. So be sure you have all the files before you start.

In theory the user should only specify the name of the file to be used, then auto-ecearth via templates (ecearth3.ini and nemo3.ini) will take care of creating the right link and put them in the right places. If not, then there is a bug to be fixed. No panic. We do it.

Surface Restoring

SST / SSS restoring

The following model variables can be restored:


STEPS to activate surface restoring:

1. Proj.conf settings:

  1. Ordered List Item Activate the surface restoring SURF_RESTO = TRUE
  2. Define the data restoring to be used: RESTO_DATA = s4/your_exp_ID

So far you can use oras4, by specifying s4, or a climatology of an experiment you created, by specifying the ID of the experiment.

Please note that is responsibility of the user to be sure that the surface restoring data to be used are in the right format and in the right place. In case of doubts speak with Valentina or Yohan.

2.Namelist settings

Note that, depending on the branch the user wants to use this part is already set-up. See section about available branches for available branches. The following namelist refers to the branch: r5671-bsc_ocean_DA. some difference can be found when using a different branch.

You can use nemo-only or coupled version for your nudged experiments. Depending on this option, the namelist will be standalone or coupled (obvious, but important to remember)

Here is an example to activate SST restoring in

in section nambsrc you will find:

     ln_ssr      = ${ln_ssr}   !  Sea Surface Restoring on T and/or S       (T => fill namsbc_ssr)

This is switched on from configuration file. So do not worry about it. If SURF_RESTO = TRUE in proj.conf, then the surface restoring is activated

Here there are some parameters that the user should check:

    &namsbc_ssr    !   surface boundary condition : sea surface restoring
   ! filename          ! freq  ! variable name  ! time     ! clim     ! year or   ! weights   ! rot     ! mask
   !             !                   !       !                ! interp   !          ! monthly   ! filename  ! pair    ! filename
   sn_sss      = 'sss_restore_data'  , -1.   , 'so'           , .true.   , .true.  , 'yearly'   , ''        , ''      , ''
   sn_sst      = 'sst_restore_data'  , -1.   , 'thetao'       , .true.   , .true.  , 'yearly'   , ''        , ''      , ''
   sn_msk      = 'mask_restore'      , -12.  , 'mask_ssr'     , .false.  , .true.  , 'yearly'   , ''        , ''      , ''
   cn_dir      = './'    !  root directory for the location of the runoff files  
   nn_sstr     = 1       !  add a retroaction term in the surface heat flux (=1) or not (=0)
   nn_sssr     = 2       !  add a damping term in the surface freshwater flux (=2) or to SSS only (=1) or no damping term (=0)
   nn_icer     = 0       !  perform sea surface restoring (=1) or not (=0) where there is sea-ice
   nn_msk      = 1       !  add a sub-regional masking to the surface restoring (=1) or not (=0)
                       !  sn_msk can be empty if nn_msk = 0
   rn_dqdt     = -40.    !  magnitude of the retroaction on temperature   [W/m2/K]
   rn_deds     = -166.67 !  magnitude of the damping on salinity   [kg/m2/s/psu]
   ln_sssr_bnd = .false.  ! .true. !  flag to bound erp term (associated with nn_sssr=2)
   rn_sssr_bnd = 4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day]

Reference data

Note that the name of the file contains “_yXXXX” where XXXX are the 4 digit of the year.

SST parameters to be set :


sn_sst file name = name of the file, in the format: sst_restore_data. if you use s4 or one of your exp, do not modify it. auto-ecearth will do the job. The name of the nudging file, is defined in fldread.F90, without the year suffix and the .nc

frequency : the frequency of the data, usually 1 month, i.e. -1

variable name : the variable name in the nudging file

time interpol. : the nudging is usually done once a day, so unless you have hourly data, you'll want the model to interpolate your monthly data

clim : put this to .true., if you use climatological instead of interannual data

'yearly'/'monthly' : do you have one file per year (even if there are one record per month in it), or one separate file for each and every month

weights filename : this is used only when your data is not already on the ORCA2 grid, to spatially interpolate it during the run

rotation pairing : in case you have to spatially interpolate vectors

rn_dqdt (-40 W/m2/K is the standard value based on physical considerations)

SSS parameters :

nn_sssr sn_sss : same as above rn_deds (-864 mm/day/psu is the standard value consistent with rn_dqdt = -40)

The user must create the nudging files, according to experiment needs.

The user can activate SST restoring and SSS restoring independently with nn_sstr and nn_sssr

3D Nudging

3D nudging in the ocean is done by using the tracer damping functionality of NEMO (tradmp.F90). The nudging can be don only under the mixed layer or in the entire water column. The user has to nudge both the temperature and salinity, while activating at the same time the restoring of SST and SSS is optional.

In order to activate the 3D nudging in the proj.conf OCE_NUDG must be set to true. This corresponds to the activation in the namelist of:

 &namtra_dmp    !   tracer: T & S newtonian damping
 ln_tradmp   =  .true.  !  add a damping termn (T) or not (F)
 nn_zdmp     =    2      !  vertical   shape =0    damping throughout the water column
                         !                   =1 no damping in the mixing layer (kz  criteria)
                         !                   =2 no damping in the mixed  layer (rho crieria)
 cn_resto    = '' ! Name of file containing restoration coefficient field (use dmp_tools to create this)

Th The namelist parameter nn_zdmp sets whether the damping should be applied in the whole water column or only below the mixed layer (defined either on a density or So criterion). The user should modify it the namelist according to the experiment necessity. files contains the restoration coefficient. A default one is located in: /esnas/releases/nudging/RESTO and in MN4 in:/gpfs/projects/bsc32/repository/nudging/ocean/RESTO/, in case of different needs, the user can create a new one, put it in the same location and specify the name in the namelist.

In proj.conf the use should specify the nudging files to be used: s4,p5,glorys. The nudging files are located in: /esnas/releases/nudging/ocean and in MN4 in:/gpfs/projects/bsc32/repository/nudging/ocean/ It's user's responsibility to check that the interested period is present.

Example of proj.conf session: OCE_NUDG = TRUE

# Toward which target ocean is nuged to; essential if “OCE_NUDG” is TRUE. STRING = fa9p, s4, glorys2v1 # A directory ${DATA_OCE_NUDG} must exist in /gpfs/projects/bsc32/repository/nudging/ocean/${DATA_OCE_NUDG}/${nem_grid}/${DATA_OCE_NUDG_member} containing the restoring files DATA_OCE_NUDG = s4 # A different DATA_OCE_NUDG member per EXPID member [“PERT”] or which common DATA_SURF_RESTO member for all EXPID members [“fc0” / “fc1”]. String = PERT/fc0/fc1.. DATA_OCE_NUDG_member = fc0

At this point the user must manually edit the corresponding namelist coupled or standalone, in the following session:

 &namtsd    !   data : Temperature  & Salinity
 !          !  file name                          ! frequency (hours) ! variable  ! time interp. !  clim  !'yearly'/ ! weights     ! rotation ! land/sea mask !
                                             ! (if <0  months)   !  name     ! (logical)    !  (T/F) ! 'monthly' ! filename    ! pairing  ! filename      
 sn_tem  = 'temperature', -1 ,'votemper' , .true. , .false. , 'yearly' , '' , '' , ''
 sn_sal  = 'salinity'       , -1 ,'vosaline' , .true. , .false. , 'yearly' , '' , '' , ''
 cn_dir        = './'     !  root directory for the location of the runoff files
 ln_tsd_init   = .true.   !  Initialisation of ocean T & S with T &S input data (T) or not (F)
 ln_tsd_tradmp = .true.  !  damping of ocean T & S toward T &S input data (T) or not (F)


The 3D nudging files are genrically renamed to salinity_yXXXX and temperature_yXXXX. The user must be sure that the correct links are created in the inidata folder via eceart3.ini and nemo3.ini templates.

For any information contact and

tools/ocean_nudging2.txt · Last modified: 2019/08/12 14:53 by vlapin