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.
Changelog – NEMO


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

2021 v4.0.7 (Dec 2021) minor release

This version does not differ much from v4.0.6, except that:

  • the initial ssh for all simulations is now adjusted to the initial volume of sea ice (if any), so that the total ocean+ice volume remains unchanged across simulations (0 at init.). This applies to both levitating (ssh depletion is global) and embedded sea ice (ssh depletion is only below the ice).
  • The bug on sublimation has been corrected as well as few other bugs mainly concerning sea-ice, agrif and icebergs.
  • Addtional outputs are provided to close the mass, heat and salt budget of the ice-ocean system.
  • Namelist changes:
    • a new namelist_ref parameter (nn_vvl_interp) has been introduced to solve a long lasting issue on vertical scale factors (see ticket #1791)
    • a new namelist_top_ref parameter (ln_trcdc2dm), the counterpart of ln_dm2dc, has been introduced to implement the diurnal cycle in TOP (see ticket #2739)
    • one namelist_ice_ref default parameter has been changed because it appeared to be the least physical (nn_qtrice=1->0)

The complete list of code changes is here:

Related tickets are: #1791, #2594, #2487, #2622, #2641, #2642, #2644, #2649, #2652, #2657, #2660,#2679, #2688, #2698, #2716, #2718, #2719, #2720, #2728, #2729, #2733, #2735, #2736, #2737, #2739, #2746, #2747, #2751, #2752

2021 v4.0.6 (Mar 2021) minor release

This version is a bug free revision of v4.0.5

There is still a BUG in the routine icethd_dh.F90 (see ticket #2649). It is related to negative sublimation flux (frost flower), which can happen when nemo is coupled to an atmospheric model. This negative flux is not taken into account by the ice code. Estimation of mass loss = 0.01Sv in the IPSL model. You can follow the ticket to correct it or use a more up-to-date version of the code.

SI3: bug fixes related to tickets #2626, #2627, #2635. The major bug in revision v4.0.5 has been corrected and the ice heat budget is now compatible with the Met-Office ice-atm. coupling interface (conduction fluxes instead of solar/nonsolar fluxes). One must be aware though that the coupling with MetO interface is still an ongoing work and will evolve in the future.

ICB: bug fix related to ticket #2581. It affects the iceberg speeds and reports.

OTHERS: bug fixes related to tickets #2562, #2620, #2621

The complete list of code modification is here:

2020 v4.0.5 (Dec 2020) minor release

This version improves robustness of the code.

BE CAREFUL, there is a MAJOR BUG in the routine iceupdate.F90 (see ticket #2626). You can follow the ticket to correct it or wait for a v4.0.6 coming out shortly.


Bug fixes related to tickets #2557, #2561, #2573, #2575, #2576, #2576, #2577, #2578.

In brief, the number of snow layers is no more constrained to 1, the deficient melt ponds are now corrected and the code is more robust to face ocean supercooling. Note that from now on, the ice/snow system becomes the ice/snow/ponds system since ponds now exchange mass with the ice, snow and ocean (real fluxes).


Bug fixes related to tickets #2533, #2560, #2564, #2570, #2592.

In brief, Neumann boundary condition in gls is debugged, an issue with the reading of tidal boundary conditions in bdy is fixed, the tracer damping in orca2 is no more cumulatively applied if temporal interpolation is not used and tramle (mixed layer induced transport) is now switched off under ice-shelves (incompatibility problem)

The complete list of code modification is here:

2020 v4.0.4 (Oct 2020) minor release

This 4.0.4 release is based on 4.0.2 and includes several new features, improvements and debugs. We strongly encourage all the teams to upgrade to this version. The main changes (vs 4.0.2) are described hereafter:


New physics controlled by a namelist parameter:

  • Parameterization of frozen lids on top of melt ponds => ln_pnd_lids
  • Fraction of ice covered by snow can be dependent on snow thickness. It impacts albedo and solar flux transmitted thru the ice. There are 3 options: nn_snwfra=0 (basic 0-1, as before), nn_snwfra=1 (MetO-Jules formulation), nn_snwfra=2 (CICE formulation).
  • Solar flux transmission thru the surface scattering layer. There are 2 options: nn_qtrice=0 (transmission depends on cloudiness and is 0 where there is snow, as before), nn_qtrice=1 (from M. Lebrun thesis 2019: transmission is 0.3 everywhere but with different snow conductivities during melting and freezing)

Enhancements controlled by a namelist parameter:

  • Initialise sea ice from multi category restart file => nn_iceini_file=2
  • read the cloud cover to improve ice albedo calculation (forced simulations only for now)
  • control of convergences for rheology (EVP and aEVP) and heat diffusion (Bitz and Lipscomb 99) schemes => nn_rhg_chkcvg and ln_zdf_chkcvg
  • maximum ice thickness allowed (99m by default) => rn_himax
  • heat in the leads can be used to warm the ocean before melting sea-ice but probably not a good idea (cf Ed) => ln_leadhfx

Hard coded developments and debugs:

  • major debug of aEVP (critical)
  • penetration of solar radiation thru the ice and snow does not include the surface scattering layer anymore (3cm for snow and 10cm for ice). So, it writes as exp(-kappa*max(0,z-ssl)), with ssl=surface scattering layer.
  • debug sbccpl.F90 for IPSL and Met-Office
  • limitation of ice/snow temperatures and salinity to avoid overshooting and then to overcome a recurrent issue with the 2 advection schemes (UMx and Prather)
  • namelist param changes for best simulations. OPA: nn_mxl=3 (instead of 2), nn_mxlice=2 (instead of 0). SI3: nn_snwfra=2, nn_qtrice=1, ln_pnd=true
  • rewrite heat budget of the ice, so it includes the solar flux transmitted thru the ice and is conservative by construction. Also, activating ln_icediachk now gives an ascii file (icedrift_diagnostics.ascii) containing mass, salt and heat global conservation issues (if any). In addition, 2D drift files can be outputed.
  • debug outputs for shear and normal stresses in rheology


  • reduce number of mpi communications in rheology and in the two advection schemes


New physics controlled by a namelist parameter:

  • ice-ocean drags can now be calculated implicitly => ln_drgice_imp. For instance, it may allow ORCA2 to run with a time step of 5760s instead of 5400s...
  • turbulent mixing is modified due to the presence of sea ice (zdfgls and zdftke routines).
    • With tke, one can choose to 1) take into account sea-ice for the depth of the mixed layer (=> nn_mxlice) and 2) attenuate surface wave breaking and langmuir cells under sea ice (=> nn_eice).
    • With gls, sea ice intervenes as 1) a friction surface with a specific roughness parameter (nn_hsri) and 2) a damping for surface wave breaking (nn_z0_ice).

Hard coded developments and debugs:

  • update coupling interface for sea-ice
  • fix coastal boundary conditions in dyn_ldf_blp, see #2449
  • debug in zdfgls when there is no top/bottom friction (ticket #2435)
  • debug in zdftke for the ice shelves (ticket #2406, critical)
  • rewrite fmask so that on-point straits slip condition is determined by the namelist parameter rn_shlat as for all the other points, and is not solely free slip (ticket #2237)
  • debug hybrid s-z coordinates (ln_hpg_prj=true, ticket #2474, major)
  • fix minor bug in dynvor, see #2446
  • debug waves (tickets #2445 and #2447, both critical)
  • debug icebergs (ticket #2407, critical)
  • debug freshwater budget (ticket #2376)
  • out-of-bounds in bdydta, see #2410
  • better detection and managment of errors messages

The detailed list of all fixes can bee seen:

Because of the reorganization of the 4.0* svn branches between the 4.0.2 and the 4.0.4, the complete list of code modification is split in 2 parts

From now on, to download the NEMO reference, we recommend to use this new intermediate release, especially for the projects using coupled ocean-atmosphere configurations: svn co

Practical issue when upgrading to this release (namelists and xml) :

  • Critical changes in namelist_ref:
    • deleted variable: ln_drg
    • renamed variables: ln_OFF -> ln_drg_OFF, rn_eice -> nn_eice
  • Critical changes in namelist_ice_ref:
    • renamed variables: rn_depfra -> rn_lf_depfra, rn_icebfr -> rn_lf_bfr, rn_lfrelax -> rn_lf_relax, rn_tensile -> rn_lf_tensile
  • Critical changes in namelist_pisces_ref:
    • renamed variables: mprat2 -> mpratd, xpref2p -> xpref2n
  • Critical changes in field_def_nemo-oce.xml:
    • added variables: socegrad, socegrad2, eken_int, relvor, absvor, potvor, salt2c
  • Critical changes in field_def_nemo-ice.xml:
    • added variables: icehlid, icevlid, beta_evp, uice_cvg, dmilam, icehlid_cat, iceaepnd_cat, tice_cvgerr, tice_cvgstp
  • all changes in cfgs/SHARED/namelist_* and cfgs/SHARED/*xml files:
  • namelist_ice_ref

    45    rn_himin         =   0.1           !  minimum ice thickness (m) used in remapping 
     45   rn_himin         =   0.1           !  minimum ice thickness (m) allowed 
     46   rn_himax         =  99.0           !  maximum ice thickness (m) allowed 
    58       rn_depfra     =   0.125         !        fraction of ocean depth that ice must reach to initiate landfast 
     59      rn_lf_depfra  =   0.125         !        fraction of ocean depth that ice must reach to initiate landfast 
    60       rn_icebfr     =  15.            !        maximum bottom stress per unit volume [N/m3] 
    61       rn_lfrelax    =   1.e-5         !        relaxation time scale to reach static friction [s-1] 
    62       rn_tensile    =   0.05          !        isotropic tensile strength [0-0.5??] 
     61      rn_lf_bfr     =  15.            !        maximum bottom stress per unit volume [N/m3] 
     62      rn_lf_relax   =   1.e-5         !        relaxation time scale to reach static friction [s-1] 
     63      rn_lf_tensile =   0.05          !        isotropic tensile strength [0-0.5??] 
    96       nn_nevp       = 120             !     number of EVP subcycles 
     97      nn_nevp       = 100             !     number of EVP subcycles 
    98                                       !        advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300) 
     99                                      !        advised value: 1/3 (nn_nevp=100) or 1/9 (nn_nevp=300) 
     100   nn_rhg_chkcvg    =   0             !  check convergence of rheology 
     101                                      !     = 0  no check 
     102                                      !     = 1  check at the main time step (output xml: uice_cvg) 
     103                                      !     = 2  check at both main and rheology time steps (additional output: 
     104                                      !          this option 2 asks a lot of communications between cpu 
    111    rn_blow_s        =   0.66          !  mesure of snow blowing into the leads 
     117   nn_snwfra        =   2             !  calculate the fraction of ice covered by snow (for zdf and albedo) 
     118                                      !     = 0  fraction = 1 (if snow) or 0 (if no snow) 
     119                                      !     = 1  fraction = 1-exp(-0.2*rhos*hsnw) [MetO formulation] 
     120                                      !     = 2  fraction = hsnw / (hsnw+0.02)    [CICE formulation] 
     121   rn_snwblow       =   0.66          !  mesure of snow blowing into the leads 
     130   nn_qtrice        =   1             !  Solar flux transmitted thru the surface scattering layer: 
     131                                      !     = 0  Grenfell and Maykut 1977 (depends on cloudiness and is 0 when there is snow) 
     132                                      !     = 1  Lebrun 2019 (equals 0.3 anytime with different melting/dry snw conductivities) 
     141   ! 
     142   ln_leadhfx       = .true.          !  heat in the leads is used to melt sea-ice before warming the ocean 
     153   rn_kappa_s       =  10.0           !  nn_qtrice = 0: radiation attenuation coefficient in snow         [1/m] 
     154   rn_kappa_smlt    =   7.0           !  nn_qtrice = 1: radiation attenuation coefficient in melting snow [1/m] 
     155   rn_kappa_sdry    =  10.0           !                 radiation attenuation coefficient in dry snow     [1/m] 
     156   ln_zdf_chkcvg    = .false.         !  check convergence of heat diffusion scheme (outputs: tice_cvgerr, tice_cvgstp) 
    177    ln_pnd           = .false.         !  activate melt ponds or not 
    178      ln_pnd_H12     = .false.         !  activate evolutive melt ponds (from Holland et al 2012) 
    179      ln_pnd_CST     = .false.         !  activate constant  melt ponds 
     196   ln_pnd            = .true.         !  activate melt ponds or not 
     197      ln_pnd_LEV     = .true.         !  level ice melt ponds (from Flocco et al 2007,2010 & Holland et al 2012) 
     198         rn_apnd_min =   0.15         !     minimum ice fraction that contributes to melt pond. range: 0.0 -- 0.15 ?? 
     199         rn_apnd_max =   0.85         !     maximum ice fraction that contributes to melt pond. range: 0.7 -- 0.85 ?? 
     200      ln_pnd_CST     = .false.        !  constant  melt ponds 
    182      ln_pnd_alb     = .false.         !  melt ponds affect albedo or not 
     203      ln_pnd_lids    = .true.         !  frozen lids on top of the ponds (only for ln_pnd_LEV) 
     204      ln_pnd_alb     = .true.         !  effect of melt ponds on ice albedo 
    188    ln_iceini_file   = .false.         !  netcdf file provided for initialization (T) or not (F) 
     210   nn_iceini_file   =   0             !     0 = Initialise sea ice based on SSTs 
     211                                      !     1 = Initialise sea ice from single category netcdf file 
     212                                      !     2 = Initialise sea ice from multi category restart file 
    208    ! -- for ln_iceini_file = T 
     232   rn_hld_ini_n     =   0.0           !  initial pond lid depth      (m), North 
     233   rn_hld_ini_s     =   0.0           !        "            "             South 
     234   ! -- for nn_iceini_file = 1 
     245   sn_hld = 'NOT USED'              , -12 ,'hld'   ,  .false.  , .true., 'yearly'  , '' , '', '' 
  • namelist_ref

    283    sn_tdif     = 'taudif_core'                ,   24         , 'taudif'  ,   .false.   , .true. , 'yearly'  , '' , ''       , '' 
     283   sn_cc       = 'NOT USED'                   ,   24.        , 'CC'      ,   .false.   , .true. , 'yearly'  , '' , ''       , '' 
     284   sn_tdif     = 'taudif_core'                ,   24.        , 'taudif'  ,   .false.   , .true. , 'yearly'  , '' , ''       , '' 
     292   ln_scale_ice_flux = .false. !  use ice fluxes that are already "ice weighted" ( i.e. multiplied ice concentration) 
     421   ln_rnf_icb  = .false.   !  read in iceberg flux from a file (fill sn_i_rnf if .true.) 
     432   sn_i_rnf    = 'NOT_USED'              ,        -1.        , 'sorunoff',   .true.    , .true. , 'yearly'  , ''               , ''       , '' 
     649   bn_hil      = 'NOT USED'              ,         24.       , 'sihlid'  ,    .true.   , .false.,  'daily'  ,    ''            ,   ''     ,     '' 
     656   rn_ice_hlid = 0.0          !       --   pond lid depth                      -- 
    664 !!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T) 
    665 !!   namdrg_bot    bottom friction                                      (ln_OFF=F) 
     670!!   namdrg_top    top    friction                                      (ln_drg_OFF=F & ln_isfcav=T) 
     671!!   namdrg_bot    bottom friction                                      (ln_drg_OFF=F) 
    673    ln_OFF      = .false.   !  free-slip       : Cd = 0                  (F => fill namdrg_bot 
     679   ln_drg_OFF  = .false.   !  free-slip       : Cd = 0                  (F => fill namdrg_bot 
     685      ln_drgice_imp = .false. ! implicit ice-ocean drag 
    681 &namdrg_top    !   TOP friction                                         (ln_OFF =F & ln_isfcav=T) 
     688&namdrg_top    !   TOP friction                                         (ln_drg_OFF =F & ln_isfcav=T) 
    692 &namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F) 
     699&namdrg_bot    !   BOTTOM friction                                      (ln_drg_OFF =F) 
    1049    nn_mxl      =   2       !  mixing length: = 0 bounded by the distance to surface and bottom 
     1056   nn_mxl      =   3       !  mixing length: = 0 bounded by the distance to surface and bottom 
     1061      nn_mxlice    = 2        ! type of scaling under sea-ice 
     1062                              !    = 0 no scaling under sea-ice 
     1063                              !    = 1 scaling with constant sea-ice thickness 
     1064                              !    = 2 scaling with mean sea-ice thickness ( only with SI3 sea-ice model ) 
     1065                              !    = 3 scaling with maximum sea-ice thickness 
     1066      rn_mxlice   = 10.       ! max constant ice thickness value when scaling under sea-ice ( nn_mxlice=1) 
    1055    ln_drg      = .false.   !  top/bottom friction added as boundary condition of TKE 
    1066       rn_eice     =   4       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4 
     1078   nn_eice     =   1       !  attenutaion of langmuir & surface wave breaking under ice 
     1079   !                       !           = 0 no impact of ice cover on langmuir & surface wave breaking 
     1080   !                       !           = 1 weigthed by 1-TANH(10*fr_i) 
     1081   !                       !           = 2 weighted by 1-fr_i 
     1082   !                       !           = 3 weighted by 1-MIN(1,4*fr_i) 
     1095   rn_hsri       =  0.03   !  Ice-ocean roughness 
     1099   nn_z0_ice     =   1     !  attenutaion of surface wave breaking under ice 
     1100   !                       !           = 0 no impact of ice cover 
     1101   !                       !           = 1 roughness uses rn_hsri and is weigthed by 1-TANH(10*fr_i) 
     1102   !                       !           = 2 roughness uses rn_hsri and is weighted by 1-fr_i 
     1103   !                       !           = 3 roughness uses rn_hsri and is weighted by 1-MIN(1,4*fr_i) 
  • namelist_top_ref

    124    ln_trdmld_trc_restart = .false. !  restart for ML diagnostics 
    125    ln_trdmld_trc_instant = .true.  !  flag to diagnose trends of instantantaneous or mean ML T/S 
     124   ln_trdmxl_trc_restart = .false.   !  restart for ML diagnostics 
     125   ln_trdmxl_trc_instant = .true.    !  flag to diagnose trends of instantantaneous or mean ML T/S 
     126   cn_trdrst_trc_in  = 'restart_trd' !  suffix of pass. tracer trends restart name (input) 
     127   cn_trdrst_trc_out = 'restart_trd' !  suffix of pass. tracer trends restart name (output) 
  • field_def_nemo-ice.xml

     51          <field id="icehlid"      long_name="melt pond lid depth"                                     standard_name="sea_ice_meltpondlid_depth"                 unit="m" /> 
     52          <field id="icevlid"      long_name="melt pond lid volume"                                    standard_name="sea_ice_meltpondlid_volume"                unit="m" /> 
     85          <field id="beta_evp"     long_name="Relaxation parameter of ice rheology (beta)"             standard_name="relaxation_parameter_of_ice_rheology"      unit=""  /> 
     176          <!-- rheology convergence tests --> 
     177          <field id="uice_cvg"   long_name="sea ice velocity convergence"      standard_name="sea_ice_velocity_convergence"      unit="m/s" /> 
     217          <field id="dmilam"       long_name="sea-ice mass change through lateral melting"             standard_name="tendency_of_sea_ice_amount_due_to_lateral_melting"                       unit="kg/m2/s" /> 
     296          <field id="icehlid_cat"  long_name="Ice melt pond lid thickness per category"          unit="m"       detect_missing_value="true" /> 
     298          <field id="iceaepnd_cat" long_name="Ice melt pond effective fraction per category"     unit=""        /> 
     310          <!-- heat diffusion convergence tests --> 
     311          <field id="tice_cvgerr" long_name="sea ice temperature convergence error"      standard_name="sea_ice_temperature_convergence_err" unit="K" /> 
     312          <field id="tice_cvgstp" long_name="sea ice temperature convergence iterations" standard_name="sea_ice_temperature_convergence_stp" unit=""  /> 
     573          <field field_ref="dmilam"           name="sidmassmeltlat"   /> 
  • namelist_pisces_ref

    199    mprat2     =  0.01     ! Diatoms mortality rate 
     199   mpratd     =  0.01     ! Diatoms mortality rate 
    232    xpref2d    =  1.       ! zoo preference for phyto 
    233    xpref2p    =  1.       ! zoo preference for POC 
     232   xpref2d    =  1.       ! zoo preference for Diatoms 
     233   xpref2n    =  1.       ! zoo preference for nanophyto 
    235    xpref2m    =  0.2      ! meso preference for zoo 
    236    xpref2c    =  0.3      ! zoo preference for poc 
     235   xpref2m    =  0.2      ! zoo preference for mesozoo 
     236   xpref2c    =  0.3      ! zoo preference for POC 
  • field_def_nemo-oce.xml

     38       <!--- additions to diawri.F90 ---> 
     39        <field id="socegrad"    long_name="module of salinity gradient"              unit="psu/m"   grid_ref="grid_T_3D"/> 
     40        <field id="socegrad2"   long_name="square of module of salinity gradient"    unit="psu2/m2" grid_ref="grid_T_3D"/> 
     41        <field id="eken_int"    long_name="vertical integration of kinetic energy"   unit="m3/s2"   /> 
     42        <field id="relvor"      long_name="relative vorticity"                       unit="s-1"    grid_ref="grid_T_3D"/> 
     43        <field id="absvor"      long_name="absolute vorticity"                       unit="s-1"    grid_ref="grid_T_3D"/> 
     44        <field id="potvor"      long_name="potential vorticity"                      unit="s-1"    grid_ref="grid_T_3D"/> 
     45        <field id="salt2c"      long_name="Salt content vertically integrated"       unit="1e-3*kg/m2" /> 
    85         <field id="bn2"          long_name="squared Brunt-Vaisala frequency"                                           unit="s-1"    grid_ref="grid_T_3D" /> 
     544        <!-- EOS --> 
     545        <field id="bn2"          long_name="squared Brunt-Vaisala frequency"                unit="s-2" /> 
    592       <!-- variables available with key_float --> 
     602      <!-- variables available with ln_floats --> 

2020 v4.0.2 (Feb 2020) minor release

  • Bugfixes

2019 v4.0.1 (Oct. 2019) minor release

  • Bugfixes for 4.0 major release, especially in the new sea ice SI3 component
  • BDY: cleaning, bugfixes and major optimisations
  • Up-to-date reference manuals for the three components (ocean dynamics, sea-ice and biogeochemistry)

More details in announcement here

2019 v4.0 (Jan. 2019)

  • New sea-ice component SI3 (in place of LIMx)
    • Improvements in physics
      • Lateral melting
      • Melt ponds: constant or Holland et al. 2012 formulation (and soon topographic melt ponds)
      • Ice-atm. drags from Lupkes et al. 2012 (depending on ice concentration) or Lupkes et al. 2015 (depending on sea ice concentration and atm. stability)
      • Landfast ice (Lemieux et al. 2016)
    • Improvements in numerics
      • Advection: Ultimate-Macho scheme
      • Rheology: adaptive EVP (Kimmritz et al. 2017)
      • Coupling interface: conductivity as surface forcing instead of heat fluxes (Met-Office requirement)
    • Improvements in performance
      • All thermodynamics in 1D
      • Reduced mpp communications
    • Users & developers friendly
      • Comprehensive set of outputs (universal units and understandable names + includes cmip)
      • New architecture and namelist
      • All processes can be decoupled from each other (switch on/off)
      • Ice categories bounds can be defined by the user or set automatically
      • For open boundaries, the number of ice categories from the forcing model can be different from the number of categories in the regional simulation
      • Fully compatible with AGRIF
      • Revised documentation
  • AGRIF for embedded zooms:
    • Now compatible with new sea ice component
    • Now compatible with z* coordinate
    • Extended ghost cells area to properly handle scheme with spatial order >2
    • Added vertical refinement (beta)
    • Nesting tools for setup now up to date and working
  • Enhancements
    • Fix for tracer conservation with split explicit free surface
    • Bulk formulae : move to aerobulk package (Brodeau et al. 2016), i.e. NCAR, COARE and ECMWF bulk (remove Clio and MFS bulk)
    • Wetting and drying
    • Added tidal self attraction and loading either read from a file or from usual "scalar" approximation
    • Add a 4th order centered (CEN) and Flux Corrected Transport (FCT) tracer advection (using a 4th compact in the vertical)
    • iso-neutral mixing (iso and triad operators): add the Method of Stabilizing Correction (MSC) (more accurate calculation) + add a bilaplacian case
    • Lateral physics (LDF): scale aware setting of eddy viscosity and diffusivity
    • Vorticity: 2 new energy conserving scheme: ENT with Coriolis defined at T-point (better for Flux form) and EET a variant of EEN where e3t is used instead of e3f (solved the issue with e3f specification but is not enstrophy conserving)
  • Test Cases
    • The test cases are academic setups allowing to explore specific features. They can also be useful for schools and trainings.
    • Test cases are avaiable from | NEMO Consortium github
    • The first test cases available at release time are:
      • CANAL: east-west periodic canal of variable size with several initial states and associated geostrophic currents (zonal jets or vortex)
      • ICE_AGRIF : east-west + north-south periodic channel. The common configuration includes an AGRIF zoom (1:3) in the middle of the basin to test how an ice patch is advected through it but one can also test the advection schemes (Prather and Ultimate-Macho) by removing the key_agrif in the cpp keys.
      • ISOMIP: simple box configuration with an ice shelf with simple geometry on top. The purpose of this test case is to evaluate the impact of various schemes and new development with iceshelf cavities. The exact original setup is described here.
      • LOCK-EXCHANGE:classical fluid dynamics experiment that has been adapted by Haidvogel and Beckmann (1999) for testing advection schemes in ocean circulation models. It has been used by several authors including Burchard and Bolding (2002) and Ilıcak et al. (2012). The LOCK EXCHANGE experiment can in particular illustrate the impact of different choices of numerical schemes and/or subgrid closures on spurious interior mixing
      • OVERFLOW: illustrates the impact of different choices of numerical schemes and/or subgrid closures on spurious interior mixing close to bottom topography. It is adapted from the non-rotating overflow configuration described in Haidvogel and Beckmann (1999) and further used by Ilıcak et al. (2012)
      • VORTEX: illustrates the propagation of an anticyclonic eddy over a Beta plan and flat bottom. It is implemented here with an online refined subdomain (thanks to AGRIF library) out of which the vortex propagates. It serves as a benchmark to diagnose nesting errors as in Debreu et al. (2012), Penven et al. (2006) and Spall and Holland (1991)
      • WAD: a set of simple closed basin geometries for testing the Wetting and drying capabilities. Examples range from a closed channel with EW linear bottom slope to a parabolic EW channel with a Gaussian ridge.
  • New Reference configurations
    • AGRIF_DEMO: 2 interlocked zooms (1:4 & 1:3) in the Nordic Seas + 1 zoom (1:1) at the equator
    • SPITZ12: regional configuration around the Svalbard archipelago
  • Wave coupling
    • Coupled interface to external wave model
    • Large scale wave interaction process added in momentum and tracer equations
  • Passive tracer TOP and biogeochemical PISCES components
    • The passive tracers transport component was redesigned toward a modular structure and users can enable each module directly through logical flags in namelist_top (no more fortran macros!).
    • TOP on-line user documentation is available on NEMO Trac platform (TOP-UserQuickGuide)
    • TOP currently accounts for the following 5 modules: CFC contains inorganic carbon tracers (CFC11/CFC12/SF6), MY_TRC is a template for new modules (or external couplings), AGE deals with water age tracking, C14 as a radiocarbon passive tracer, and the companion ecosystem model PISCES.
    • A generalized infrastructure was developed to handle the prescription of either surface, coastal, or open boundaries conditions for each passive tracer.
    • A new configuration, named ORCA2_OFF_TRC, was created to provide a benchmark simulation environment to deal with inert carbon tracers dynamics by exploiting the offline coupling with NEMO.
    • PISCES model contains new developments and modifications:
      • Particulate Organic Carbon (POC) component comes with a new liability scheme, while the former Kriest parametrisation was superseded;
      • A complex iron chemistry scheme is now available, with an improved description of ligands for the marine iron cycle
      • Carbonate chemistry is based on MOCSY 2.0 routines (see Orr and Epitalon, 2015), by complying also with CMIP6 standards.
      • Ecosystem components can be optionally modelled by means of explicit nutrient quotas (PISCES-QUOTA)
  • High Performance Computing: performances improvements
    • Reduce number of MPI communications (suppression of redundant communications, gather multiple communications into one)
    • Use of MPI-3 asynchronous routines for performance (use key_mpi2 if MPI-3 not available)
    • Back to standard dynamical allocation (remove of wrk_alloc/dealloc statements)
    • XIOS software for IOs version 2.5 as default, and optionally available for restarts
  • Simplification and robustness
    • Revised structure of namelist_ref/_cfg and default reference values.
    • Lateral physics (LDF): simplification of user interface and removal of CPP keys
    • Vertical physics (ZDF) (modularity, share shear production calculation between TKE and GKS, removal of all ZDF CPP keys, removal of avmu & avmv, minimization of MPP comm.: ~15 removed)
    • Remove the split-explicit ZDF scheme for both TRA and DYN
    • Remove the acceleration of convergence
    • Generalised lbc_lnk and lbc_nfd
    • Unify mppini
    • Use non uniform jpi/jpj with dynamic allocation to avoid ghost rows/columns
    • MPI Message passing re coded
    • Configuration interface completely rewritten (DOM module mainly suppressed , and in place: file, or usr_def module)
  • Collaborative Development Environment
    • Access to information on NEMO wiki reorganised through portals for users/developers/System Team and complete refactoring of all wiki pages and their layout
    • Reorganisation of svn repository to be compliant with usual directory tree and facilitate building of NEMO executable
    • Define and install a separate repository for test cases to all easy contributions from the NEMO Users Community
    • Forums created
    • NEMO public web site has been cleaned and is now much nicer (using Wordpress rather than EzP)
    • New mailing lists have been set up
    • Improvements of reliability through automatic and regular testing of the changes made in repository

2015 v3.6 stable - CMIP6 (Jun. 2015)

Main new features

  • Coupled interface for next IPCC requirements (multi category sea-ice, calving and iceberg module)
  • Runoff improved and SBC with BGC
  • Solar flux filtering at daily frequency to force BGC component
  • Major evolution of LIM sea-ice model (including LIM3 in mono category, i.e. similar to LIM2)
  • On line coarsening of ocean I/O
  • Ocean and ice allowed to be explicitly coupled through OASIS, using StandAlone Surface module)
  • First steps of wave coupling
  • MPI optimisation
  • XIOS new IO system
  • Standard Fox Kemper parametrisation
  • Atmospheric forcing at land-ocean interface
  • Open boundaries: completion of BDY/OBC merge
  • Solved 2 time stepping issues
  • Faster split-explicit time stepping, Z-tilde ALE coordinates, implicit bottom friction
  • First version of Configuration Manager
  • Standalone OBS component and improvements in OBS & ASM

Features becoming obsolete

  • LIM2 (replaced by LIM3 monocategory)

List of associated branches

2014 v3.6

Includes all the developments of 3_5 (especially the new XIOS IO system) , and new features:

  • Open boundaries: completion of BDY/OBC merge
  • Solved 2 time stepping issues
  • Faster split-explicit time stepping, Z-tilde ALE coordinates, implicit bottom friction
  • First version of Configuration Manager
  • Major evolution of LIM sea-ice model (including towards LIM2/LIM3 merge)
  • Standalone OBS component and improvements in OBS&ASM
  • Coupled interface for next IPCC requirements (multi category sea-ice, calving and iceberg module)
  • Runoff improved and SBC with BGC
  • MPP assessment and optimisation
  • Standard Fox Kemper parametrisation
  • First steps of wave coupling
  • On line coarsening of ocean I/O
  • Solar flux filtering at daily frequency to force BGC component
  • Atmospheric forcing at land-ocean interface

2012 v3.5

Brief overview of the v3_5_alpha majors improvements and developments

The new Input/Output server XIOS is a major evolution including a versatile xml interface, the dedicated processors for I/O functionality allowing improved scalability, and a large performance improvement on massively parallel platforms.
This option is now set as the default one. The previous IOIPSL code and interface are kept as backup options at this stage.


  • Ocean/ice/biogeochemistry/atmosphere: revisit heat/salt(tracers)/mass fluxes ; new levitating & embedded sea-ice (for LIM & CICE)
  • AGRIF is now sea-ice (LIM) compatible using a new AGRIF package shared with other GCMs
  • Compilation with external biogeochemistry model
  • Improved CICE-NEMO interface
  • ICB module (Bigg et al 1997, Martin and Adcroft 2010): icebergs as lagrangian floats (~200,000!) allowing improved fresh water input especially in the Southern ocean
  • SAS: Stand Alone Surface module allowing testing of forcing set with bulk formulae, to run sea-ice models without ocean, to run ICB icebergs module alone, and to test AGRIF with sea-ice
  • Biogeochemical component NEMO-TOP: PISCES will now include the LOBSTER functionalities, becoming more general and allowing a simplification and reduction of code size
  • Open boundaries module: merging the two existing options (OBC and BDY) has made some important progress (end of the work expected for 2013)
  • Wave-NEMO interface module has been further developed with the introduction of the reading of the 2D stoke drift and wave number and the on-line computation of the 3D stoke drift current.


  • A new vertical sigma coordinate stretching function (Siddorn and Furner OM 2012r)
  • Smagorinsky eddy coefficients: Smagorinsky type diffusivity/viscosity for lateral mixing has been introduced
  • Analytical tropical cyclones taken in account using track and magnitude observations (Vincent et al. JGR 2012a,b)
  • MUSCL: an option for local up-stream advection schemes which are useful in case of rivers, straits and in proximity of open lateral boundary conditions. The possibility to switch from MUSCL to a standard up-stream scheme has been included in the MUSCL advection routine
  • NEMO-OBS: observation operators. Add a model equivalent of SST at night
  • Log layer for bottom friction is now added (sigma coordinates only)
  • Evolution of SETTE validation tool

2011 v3.4 (Feb. 2012)

This is a major release and the documentation has been updated in consequence.

Major improvements

New physics and numerics

  • New pressure gradient suitable for s-coordinate
  • Completion of Griffies iso-neutral diffusion
  • Back to a semi-implicit bottom friction
  • Add Pacanowski-Philander scheme for computation of Ekman depth
  • Add a new bulk formulae (so called MFS)
  • Introduce a drag coefficient compute by wave model
  • Add tidal potential forcing
  • Netpune effect parametrization
  • Point to point MPI communication for north fold
  • Allow sub timestepping for biogeochemistry models when using non-linear free surfac
  • Improvement in PISCES (light limitation ; quota model for iron ; use Pa in gas exchange ; fldread for all data ; calcite dissolution & calcon salinity dependence )

Configurations, diagnostics and tools

  • Suppression of POMME configuration
  • Addition of a regional configuration AMM12
  • Improvement of format for lagrangian floats
  • Online computing of transport across sections
  • Tidal harmonic analysis
  • Tools to prepare input files for observation operator
  • Timing functionality

System simplification

  • Simplification of dynamic allocation
  • End of merge TRA/TRA (no more separate 3d arrays for tracers, only 4d)
  • Suppression of obsolete hpg options
  • More flexible definition of BDY input data
  • simplification of interfaces toward biogeochemical models
  • Interface with CICE in coupled mode
  • Use of fldread to read/interpolate data for passive tracers and dynamical input data for OFFLINE configurations

2010 v3.3

  • Introduction of a modified leapfrog-Asselin filter time stepping scheme [Leclair and Madec 2009] ;
  • Additional scheme for iso-neutral mixing [Griffies et al. 1998], although it is still a ”work in progress” ;
  • Rewriting of the bottom boundary layer scheme, following Campin and Goosse [1999] ;
  • Addition of a Generic Length Scale vertical mixing scheme, following Um- lauf and Burchard [2003] ;
  • Addition of the atmospheric pressure as an external forcing on both ocean and sea-ice dynamics ;
  • Addition of a diurnal cycle on solar radiation [Bernie et al. 2007] ; river runoffs added through a non-zero depth, and having its own temperature and salinity ;
  • CORE II normal year forcing set as the default forcing of ORCA2-LIM configuration ;
  • Generalisation of the use of fldread.F90 for all input fields (ocean climatology, sea-ice damping...) ;
  • Addition of an on-line observation and model comparison (thanks to NEMOVAR project) ;
  • Optional application of an assimilation increment (thanks to NEMOVAR project) ;
  • Coupling interface adjusted for WRF atmospheric model ;
  • C-grid ice rheology now available for both LIM-2 and LIM-3[Bouillon et al. 2009] ;
  • LIM-3 ice-ocean momentum coupling applied to LIM-2 ;
  • Deep re-writting and simplification of the off-line tracer component (OFF SRC) ;
  • Merge of passive and active advection and diffusion modules ;
  • Use of the Flexible Configuration Manager (FCM) to build configurations, generate the Makefile and produce the executable ;
  • Linear-tangent and Adjoint component (TAM) added, phased with v3.0

In addition, several minor modifications in the coding have been introduced with the constant concern of improving the model performance.

2009 v3.2

This release has been mainly designed for climate models, with enhanced coupling interface and implementation of AR5 diagnostics.

New science

  • Tidal mixing parametrization (bottom intensification) + Indonesian specific tidal mixing
  • RGB light penetration and optional use of ocean color
  • VVL option has been restored, including revisit free-surface time-splitting algorithm to reach stability and satisfying result, available for all type of coordinates (z, zps, s)
  • TKE change in the surface boundary condition, especially in coupled mode (mean stress module send by the atmosphere)

New High Performance Computing

  • Way to handle outputs has been improved
  • Implementation of IOM for output with the following functionalities : allows to output at few frequencies during same simulation, e.g both monthly and daily; output vectors/scalars is also available (for a strait transport calculation or for a vertical profile associated to buoys location for instance), and make easier the way to add an output everywhere in the code
  • Suppression of rigid-lid option and no more island specific treatment
  • Cleaning of lib_mpp
  • SHMEM option has been removed
  • North fold treatment is now done once for all in a new routine lbcnfd.F90 instead of being duplicated
  • Suppression of redundant east-west communication phase (ORCA grid case)

2008 v3.1

New science

  • Open Boundaries BDY package as unstructured boundaries, and OBC package entirely cleaned and documented,
  • New TKE physics
  • New sea-ice NEMO-LIM 3.0 (key_lim3) component including: ice-thickness categories, EVP rheology on C-Grid, ice salinity variations interfaced with the new surface module

New High Performance Computing

  • New surface module in NEMO-OPA
  • Namelists entire re-organisation, improve readability and coherence
  • Improvement of IOManager now able to handle long simulations and so to manage successive input files from one year to an other
  • Improvements of AGRIF performance and users interface
  • Improved vectorial performances (~5%) of the rheology module in LIM 2.0
  • TOP reorganisation with one directory by model Fully written in Fortran 90, include all SMS models ( PISCES, LOBSTER, CFC ...) and interface for users development through the MY_TRC directory)
  • Update IOM modules for OFFLINE tracers
  • Interpolation On the Fly
  • Passive tracers used with AGRIF package

2007 v2.3

New science

  • Implement non linear free surface (variable volume)
  • Implement Kriest parametrization in NEMO-TOP
  • Implement AGRIF 2 ways nesting for passive tracers
  • Implement quickest scheme for tracers

New High Performance Computing

2005-2006 v2.0

New science

  • Add the 1D configuration option
  • KPP turbulent closure scheme implementation
  • Implement CFC tracers and p4z
  • Add new surface pressure gradient algorithms and its interface to Open Boundary Conditions module
  • First implementation of AGRIF 2 ways nesting tool
  • Implement overturning computation for main basins
  • Implement ice damping in buffer zones
  • Implement 1D on-line & off-line passive tracers
  • Implement new tracers advection scheme UBS
  • Implement computation of mean trends in the mixed layer taking into account the asselin time filter

New High Performance Computing

  • Implementation of a hierarchy of debugging levels
  • Rewriting of NEMO-TOP biogeochemistry component
  • Remove some of the bio models (p3zd,npzd, hamocc3, age, gosac)
  • Switch to IOIPSL-3-0 new input output library
  • Switch rigid lid to option rather than default
  • Re-organization of coordinate definition, scale factors are now 3d by default, include file for partial steps has been removed
  • Implement IO Manager module
  • Enables bit comparison between single and multiple processor runs
  • Implement OASIS3 and OASIS4 interfaces to buid coupled ocean-atmosphere configurations
Last modified 2 years ago Last modified on 2021-12-27T15:23:54+01:00