= Announcement of NEMO release 4.0.4 =
We are pleased to announce the minor 4.0.4 release, now available here: [[BR]]
https://forge.ipsl.jussieu.fr/nemo/browser/NEMO/releases/r4.0/r4.0.4 [[BR]]
This 4.0.4 release is based on 4.0 and also includes some new features and improvements:
'''SI3:'''
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
Others:
- reduce number of mpi communications in rheology and in the two advection schemes
'''OCE:'''
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 detail list 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
- https://forge.ipsl.jussieu.fr/nemo/changeset?sfp_email=&sfph_mail=&reponame=&new=12564%40NEMO%2Freleases%2Frelease-4.0-HEAD&old=12375%40NEMO%2Freleases%2Frelease-4.0-HEAD&sfp_email=&sfph_mail=
- https://forge.ipsl.jussieu.fr/nemo/changeset?sfp_email=&sfph_mail=&reponame=&new=13648%40NEMO%2Freleases%2Fr4.0%2Fr4.0-HEAD&old=12578%40NEMO%2Freleases%2Fr4.0%2Fr4.0-HEAD&sfp_email=&sfph_mail=
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 https://forge.ipsl.jussieu.fr/nemo/svn/NEMO/releases/r4.0/r4.0.4
'''Practical issue when updating to this release :'''
- 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:
{{{#!diff
Index: namelist_ice_ref
===================================================================
--- namelist_ice_ref (revision 12578)
+++ namelist_ice_ref (revision 13511)
@@ -45 +45,2 @@
- rn_himin = 0.1 ! minimum ice thickness (m) used in remapping
+ rn_himin = 0.1 ! minimum ice thickness (m) allowed
+ rn_himax = 99.0 ! maximum ice thickness (m) allowed
@@ -58 +59 @@
- rn_depfra = 0.125 ! fraction of ocean depth that ice must reach to initiate landfast
+ rn_lf_depfra = 0.125 ! fraction of ocean depth that ice must reach to initiate landfast
@@ -60,3 +61,3 @@
- rn_icebfr = 15. ! maximum bottom stress per unit volume [N/m3]
- rn_lfrelax = 1.e-5 ! relaxation time scale to reach static friction [s-1]
- rn_tensile = 0.05 ! isotropic tensile strength [0-0.5??]
+ rn_lf_bfr = 15. ! maximum bottom stress per unit volume [N/m3]
+ rn_lf_relax = 1.e-5 ! relaxation time scale to reach static friction [s-1]
+ rn_lf_tensile = 0.05 ! isotropic tensile strength [0-0.5??]
@@ -96 +97 @@
- nn_nevp = 120 ! number of EVP subcycles
+ nn_nevp = 100 ! number of EVP subcycles
@@ -98 +99,6 @@
- ! advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300)
+ ! advised value: 1/3 (nn_nevp=100) or 1/9 (nn_nevp=300)
+ nn_rhg_chkcvg = 0 ! check convergence of rheology
+ ! = 0 no check
+ ! = 1 check at the main time step (output xml: uice_cvg)
+ ! = 2 check at both main and rheology time steps (additional output: ice_cvg.nc)
+ ! this option 2 asks a lot of communications between cpu
@@ -111 +117,5 @@
- rn_blow_s = 0.66 ! mesure of snow blowing into the leads
+ nn_snwfra = 2 ! calculate the fraction of ice covered by snow (for zdf and albedo)
+ ! = 0 fraction = 1 (if snow) or 0 (if no snow)
+ ! = 1 fraction = 1-exp(-0.2*rhos*hsnw) [MetO formulation]
+ ! = 2 fraction = hsnw / (hsnw+0.02) [CICE formulation]
+ rn_snwblow = 0.66 ! mesure of snow blowing into the leads
@@ -119,0 +130,3 @@
+ nn_qtrice = 1 ! Solar flux transmitted thru the surface scattering layer:
+ ! = 0 Grenfell and Maykut 1977 (depends on cloudiness and is 0 when there is snow)
+ ! = 1 Lebrun 2019 (equals 0.3 anytime with different melting/dry snw conductivities)
@@ -127,0 +141,2 @@
+ !
+ ln_leadhfx = .true. ! heat in the leads is used to melt sea-ice before warming the ocean
@@ -137,0 +153,4 @@
+ rn_kappa_s = 10.0 ! nn_qtrice = 0: radiation attenuation coefficient in snow [1/m]
+ rn_kappa_smlt = 7.0 ! nn_qtrice = 1: radiation attenuation coefficient in melting snow [1/m]
+ rn_kappa_sdry = 10.0 ! radiation attenuation coefficient in dry snow [1/m]
+ ln_zdf_chkcvg = .false. ! check convergence of heat diffusion scheme (outputs: tice_cvgerr, tice_cvgstp)
@@ -177,3 +196,5 @@
- ln_pnd = .false. ! activate melt ponds or not
- ln_pnd_H12 = .false. ! activate evolutive melt ponds (from Holland et al 2012)
- ln_pnd_CST = .false. ! activate constant melt ponds
+ ln_pnd = .true. ! activate melt ponds or not
+ ln_pnd_LEV = .true. ! level ice melt ponds (from Flocco et al 2007,2010 & Holland et al 2012)
+ rn_apnd_min = 0.15 ! minimum ice fraction that contributes to melt pond. range: 0.0 -- 0.15 ??
+ rn_apnd_max = 0.85 ! maximum ice fraction that contributes to melt pond. range: 0.7 -- 0.85 ??
+ ln_pnd_CST = .false. ! constant melt ponds
@@ -182 +203,2 @@
- ln_pnd_alb = .false. ! melt ponds affect albedo or not
+ ln_pnd_lids = .true. ! frozen lids on top of the ponds (only for ln_pnd_LEV)
+ ln_pnd_alb = .true. ! effect of melt ponds on ice albedo
@@ -188 +210,3 @@
- ln_iceini_file = .false. ! netcdf file provided for initialization (T) or not (F)
+ nn_iceini_file = 0 ! 0 = Initialise sea ice based on SSTs
+ ! 1 = Initialise sea ice from single category netcdf file
+ ! 2 = Initialise sea ice from multi category restart file
@@ -208 +232,3 @@
- ! -- for ln_iceini_file = T
+ rn_hld_ini_n = 0.0 ! initial pond lid depth (m), North
+ rn_hld_ini_s = 0.0 ! " " South
+ ! -- for nn_iceini_file = 1
@@ -218,0 +245 @@
+ sn_hld = 'NOT USED' , -12 ,'hld' , .false. , .true., 'yearly' , '' , '', ''
Index: namelist_ref
===================================================================
--- namelist_ref (revision 12578)
+++ namelist_ref (revision 13511)
@@ -283 +283,2 @@
- sn_tdif = 'taudif_core' , 24 , 'taudif' , .false. , .true. , 'yearly' , 'weights_core_orca2_bilinear_noc.nc' , '' , ''
+ sn_cc = 'NOT USED' , 24. , 'CC' , .false. , .true. , 'yearly' , 'weights_core_orca2_bilinear_noc.nc' , '' , ''
+ sn_tdif = 'taudif_core' , 24. , 'taudif' , .false. , .true. , 'yearly' , 'weights_core_orca2_bilinear_noc.nc' , '' , ''
@@ -290,0 +292 @@
+ ln_scale_ice_flux = .false. ! use ice fluxes that are already "ice weighted" ( i.e. multiplied ice concentration)
@@ -418,0 +421 @@
+ ln_rnf_icb = .false. ! read in iceberg flux from a file (fill sn_i_rnf if .true.)
@@ -428,0 +432 @@
+ sn_i_rnf = 'NOT_USED' , -1. , 'sorunoff', .true. , .true. , 'yearly' , '' , '' , ''
@@ -644,0 +649 @@
+ bn_hil = 'NOT USED' , 24. , 'sihlid' , .true. , .false., 'daily' , '' , '' , ''
@@ -650,0 +656 @@
+ rn_ice_hlid = 0.0 ! -- pond lid depth --
@@ -664,2 +670,2 @@
-!! namdrg_top top friction (ln_OFF=F & ln_isfcav=T)
-!! namdrg_bot bottom friction (ln_OFF=F)
+!! namdrg_top top friction (ln_drg_OFF=F & ln_isfcav=T)
+!! namdrg_bot bottom friction (ln_drg_OFF=F)
@@ -673 +679 @@
- ln_OFF = .false. ! free-slip : Cd = 0 (F => fill namdrg_bot
+ ln_drg_OFF = .false. ! free-slip : Cd = 0 (F => fill namdrg_bot
@@ -678,0 +685 @@
+ ln_drgice_imp = .false. ! implicit ice-ocean drag
@@ -681 +688 @@
-&namdrg_top ! TOP friction (ln_OFF =F & ln_isfcav=T)
+&namdrg_top ! TOP friction (ln_drg_OFF =F & ln_isfcav=T)
@@ -692 +699 @@
-&namdrg_bot ! BOTTOM friction (ln_OFF =F)
+&namdrg_bot ! BOTTOM friction (ln_drg_OFF =F)
@@ -1049 +1056 @@
- nn_mxl = 2 ! mixing length: = 0 bounded by the distance to surface and bottom
+ nn_mxl = 3 ! mixing length: = 0 bounded by the distance to surface and bottom
@@ -1053,0 +1061,6 @@
+ nn_mxlice = 2 ! type of scaling under sea-ice
+ ! = 0 no scaling under sea-ice
+ ! = 1 scaling with constant sea-ice thickness
+ ! = 2 scaling with mean sea-ice thickness ( only with SI3 sea-ice model )
+ ! = 3 scaling with maximum sea-ice thickness
+ rn_mxlice = 10. ! max constant ice thickness value when scaling under sea-ice ( nn_mxlice=1)
@@ -1055 +1067,0 @@
- ln_drg = .false. ! top/bottom friction added as boundary condition of TKE
@@ -1066 +1078,5 @@
- rn_eice = 4 ! below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4
+ nn_eice = 1 ! attenutaion of langmuir & surface wave breaking under ice
+ ! ! = 0 no impact of ice cover on langmuir & surface wave breaking
+ ! ! = 1 weigthed by 1-TANH(10*fr_i)
+ ! ! = 2 weighted by 1-fr_i
+ ! ! = 3 weighted by 1-MIN(1,4*fr_i)
@@ -1078,0 +1095 @@
+ rn_hsri = 0.03 ! Ice-ocean roughness
@@ -1081,0 +1099,5 @@
+ nn_z0_ice = 1 ! attenutaion of surface wave breaking under ice
+ ! ! = 0 no impact of ice cover
+ ! ! = 1 roughness uses rn_hsri and is weigthed by 1-TANH(10*fr_i)
+ ! ! = 2 roughness uses rn_hsri and is weighted by 1-fr_i
+ ! ! = 3 roughness uses rn_hsri and is weighted by 1-MIN(1,4*fr_i)
Index: namelist_top_ref
===================================================================
--- namelist_top_ref (revision 12578)
+++ namelist_top_ref (revision 13511)
@@ -124,2 +124,4 @@
- ln_trdmld_trc_restart = .false. ! restart for ML diagnostics
- ln_trdmld_trc_instant = .true. ! flag to diagnose trends of instantantaneous or mean ML T/S
+ ln_trdmxl_trc_restart = .false. ! restart for ML diagnostics
+ ln_trdmxl_trc_instant = .true. ! flag to diagnose trends of instantantaneous or mean ML T/S
+ cn_trdrst_trc_in = 'restart_trd' ! suffix of pass. tracer trends restart name (input)
+ cn_trdrst_trc_out = 'restart_trd' ! suffix of pass. tracer trends restart name (output)
Index: field_def_nemo-ice.xml
===================================================================
--- field_def_nemo-ice.xml (revision 12578)
+++ field_def_nemo-ice.xml (revision 13511)
@@ -50,0 +51,2 @@
+
+
@@ -82,0 +85 @@
+
@@ -172,0 +176,3 @@
+
+
+
@@ -210,0 +217 @@
+
@@ -288,0 +296 @@
+
@@ -289,0 +298 @@
+
@@ -300,0 +310,4 @@
+
+
+
+
@@ -559,0 +573 @@
+
Index: namelist_pisces_ref
===================================================================
--- namelist_pisces_ref (revision 12578)
+++ namelist_pisces_ref (revision 13511)
@@ -199 +199 @@
- mprat2 = 0.01 ! Diatoms mortality rate
+ mpratd = 0.01 ! Diatoms mortality rate
@@ -232,2 +232,2 @@
- xpref2d = 1. ! zoo preference for phyto
- xpref2p = 1. ! zoo preference for POC
+ xpref2d = 1. ! zoo preference for Diatoms
+ xpref2n = 1. ! zoo preference for nanophyto
@@ -235,2 +235,2 @@
- xpref2m = 0.2 ! meso preference for zoo
- xpref2c = 0.3 ! zoo preference for poc
+ xpref2m = 0.2 ! zoo preference for mesozoo
+ xpref2c = 0.3 ! zoo preference for POC
Index: field_def_nemo-oce.xml
===================================================================
--- field_def_nemo-oce.xml (revision 12578)
+++ field_def_nemo-oce.xml (revision 13511)
@@ -37,0 +38,8 @@
+
+
+
+
+
+
+
+
@@ -85 +92,0 @@
-
@@ -536,0 +544,3 @@
+
+
+
@@ -592 +602 @@
-
+
}}}