New URL for NEMO forge!   http://forge.nemo-ocean.eu

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 (diff) – NEMO

Changes between Version 17 and Version 18 of Changelog


Ignore:
Timestamp:
2021-01-05T14:27:41+01:00 (3 years ago)
Author:
clem
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Changelog

    v17 v18  
    2222        tidal mixing parametrisation (bottom intensification) + Indonesian specific tidal mixing [Koch-Larrouy et al. 2007] ; 
    2323}}} 
     24 
     25== 2020 v4.0.4 (Oct 2020) minor release 
     26 
     27This 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: 
     28 
     29'''SI3:''' 
     30 
     31New physics controlled by a namelist parameter: 
     32 
     33 - Parameterization of frozen lids on top of melt ponds => ln_pnd_lids 
     34 - 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). 
     35 - 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) 
     36 
     37Enhancements controlled by a namelist parameter: 
     38 
     39 - Initialise sea ice from multi category restart file => nn_iceini_file=2 
     40 - read the cloud cover to improve ice albedo calculation (forced simulations only for now) 
     41 - control of convergences for rheology (EVP and aEVP) and heat diffusion (Bitz and Lipscomb 99) schemes => nn_rhg_chkcvg and ln_zdf_chkcvg 
     42 - maximum ice thickness allowed (99m by default) => rn_himax 
     43 - 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 
     44 
     45Hard coded developments and debugs: 
     46 
     47 - major debug of aEVP (critical)  
     48 - 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. 
     49 - debug sbccpl.F90 for IPSL and Met-Office 
     50 - 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) 
     51 - 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 
     52 - 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. 
     53 - debug outputs for shear and normal stresses in rheology 
     54 
     55Others: 
     56 
     57 - reduce number of mpi communications in rheology and in the two advection schemes 
     58 
     59'''OCE:'''  
     60 
     61New physics controlled by a namelist parameter: 
     62 
     63 - 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... 
     64 - turbulent mixing is modified due to the presence of sea ice (zdfgls and zdftke routines).  
     65  - 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).  
     66  - 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). 
     67 
     68Hard coded developments and debugs: 
     69 
     70 - update coupling interface for sea-ice 
     71 - fix coastal boundary conditions in dyn_ldf_blp, see #2449 
     72 - debug in zdfgls when there is no top/bottom friction (ticket #2435)  
     73 - debug in zdftke for the ice shelves (ticket #2406, critical) 
     74 - 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) 
     75 - debug hybrid s-z coordinates (ln_hpg_prj=true, ticket #2474, major) 
     76 - fix minor bug in dynvor, see #2446 
     77 - debug waves (tickets #2445 and #2447, both critical) 
     78 - debug icebergs (ticket #2407, critical) 
     79 - debug freshwater budget (ticket #2376) 
     80 - out-of-bounds in bdydta, see #2410 
     81 - better detection and managment of errors messages 
     82 
     83'''The detailed list of all fixes can bee seen:''' 
     84 
     85Because 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 
     86 - 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= 
     87 - 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= 
     88 
     89From now on, to download the NEMO reference, we recommend to use this new intermediate release, especially for the projects using coupled ocean-atmosphere configurations: 
     90svn co https://forge.ipsl.jussieu.fr/nemo/svn/NEMO/releases/r4.0/r4.0.4 
     91 
     92'''Practical issue when upgrading to this release (namelists and xml) :''' 
     93 
     94 - Critical changes in namelist_ref: 
     95  - deleted variable: ln_drg 
     96  - renamed variables: ln_OFF -> ln_drg_OFF, rn_eice -> nn_eice 
     97 
     98 - Critical changes in namelist_ice_ref: 
     99  - renamed variables: rn_depfra -> rn_lf_depfra, rn_icebfr -> rn_lf_bfr, rn_lfrelax -> rn_lf_relax, rn_tensile -> rn_lf_tensile 
     100 
     101- Critical changes in namelist_pisces_ref: 
     102  - renamed variables: mprat2 -> mpratd, xpref2p -> xpref2n 
     103 
     104- Critical changes in field_def_nemo-oce.xml: 
     105  - added variables: socegrad, socegrad2, eken_int, relvor, absvor, potvor, salt2c 
     106 
     107- Critical changes in field_def_nemo-ice.xml: 
     108  - added variables: icehlid, icevlid, beta_evp, uice_cvg, dmilam, icehlid_cat, iceaepnd_cat, tice_cvgerr, tice_cvgstp 
     109 
     110 - all changes in cfgs/SHARED/namelist_* and cfgs/SHARED/*xml files: 
     111 
     112{{{#!diff 
     113Index: namelist_ice_ref 
     114=================================================================== 
     115--- namelist_ice_ref    (revision 12578) 
     116+++ namelist_ice_ref    (revision 13511) 
     117@@ -45 +45,2 @@ 
     118-   rn_himin         =   0.1           !  minimum ice thickness (m) used in remapping 
     119+   rn_himin         =   0.1           !  minimum ice thickness (m) allowed 
     120+   rn_himax         =  99.0           !  maximum ice thickness (m) allowed 
     121@@ -58 +59 @@ 
     122-      rn_depfra     =   0.125         !        fraction of ocean depth that ice must reach to initiate landfast 
     123+      rn_lf_depfra  =   0.125         !        fraction of ocean depth that ice must reach to initiate landfast 
     124@@ -60,3 +61,3 @@ 
     125-      rn_icebfr     =  15.            !        maximum bottom stress per unit volume [N/m3] 
     126-      rn_lfrelax    =   1.e-5         !        relaxation time scale to reach static friction [s-1] 
     127-      rn_tensile    =   0.05          !        isotropic tensile strength [0-0.5??] 
     128+      rn_lf_bfr     =  15.            !        maximum bottom stress per unit volume [N/m3] 
     129+      rn_lf_relax   =   1.e-5         !        relaxation time scale to reach static friction [s-1] 
     130+      rn_lf_tensile =   0.05          !        isotropic tensile strength [0-0.5??] 
     131@@ -96 +97 @@ 
     132-      nn_nevp       = 120             !     number of EVP subcycles 
     133+      nn_nevp       = 100             !     number of EVP subcycles 
     134@@ -98 +99,6 @@ 
     135-                                      !        advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300) 
     136+                                      !        advised value: 1/3 (nn_nevp=100) or 1/9 (nn_nevp=300) 
     137+   nn_rhg_chkcvg    =   0             !  check convergence of rheology 
     138+                                      !     = 0  no check 
     139+                                      !     = 1  check at the main time step (output xml: uice_cvg) 
     140+                                      !     = 2  check at both main and rheology time steps (additional output: ice_cvg.nc) 
     141+                                      !          this option 2 asks a lot of communications between cpu 
     142@@ -111 +117,5 @@ 
     143-   rn_blow_s        =   0.66          !  mesure of snow blowing into the leads 
     144+   nn_snwfra        =   2             !  calculate the fraction of ice covered by snow (for zdf and albedo) 
     145+                                      !     = 0  fraction = 1 (if snow) or 0 (if no snow) 
     146+                                      !     = 1  fraction = 1-exp(-0.2*rhos*hsnw) [MetO formulation] 
     147+                                      !     = 2  fraction = hsnw / (hsnw+0.02)    [CICE formulation] 
     148+   rn_snwblow       =   0.66          !  mesure of snow blowing into the leads 
     149@@ -119,0 +130,3 @@ 
     150+   nn_qtrice        =   1             !  Solar flux transmitted thru the surface scattering layer: 
     151+                                      !     = 0  Grenfell and Maykut 1977 (depends on cloudiness and is 0 when there is snow) 
     152+                                      !     = 1  Lebrun 2019 (equals 0.3 anytime with different melting/dry snw conductivities) 
     153@@ -127,0 +141,2 @@ 
     154+   ! 
     155+   ln_leadhfx       = .true.          !  heat in the leads is used to melt sea-ice before warming the ocean 
     156@@ -137,0 +153,4 @@ 
     157+   rn_kappa_s       =  10.0           !  nn_qtrice = 0: radiation attenuation coefficient in snow         [1/m] 
     158+   rn_kappa_smlt    =   7.0           !  nn_qtrice = 1: radiation attenuation coefficient in melting snow [1/m] 
     159+   rn_kappa_sdry    =  10.0           !                 radiation attenuation coefficient in dry snow     [1/m] 
     160+   ln_zdf_chkcvg    = .false.         !  check convergence of heat diffusion scheme (outputs: tice_cvgerr, tice_cvgstp) 
     161@@ -177,3 +196,5 @@ 
     162-   ln_pnd           = .false.         !  activate melt ponds or not 
     163-     ln_pnd_H12     = .false.         !  activate evolutive melt ponds (from Holland et al 2012) 
     164-     ln_pnd_CST     = .false.         !  activate constant  melt ponds 
     165+   ln_pnd            = .true.         !  activate melt ponds or not 
     166+      ln_pnd_LEV     = .true.         !  level ice melt ponds (from Flocco et al 2007,2010 & Holland et al 2012) 
     167+         rn_apnd_min =   0.15         !     minimum ice fraction that contributes to melt pond. range: 0.0 -- 0.15 ?? 
     168+         rn_apnd_max =   0.85         !     maximum ice fraction that contributes to melt pond. range: 0.7 -- 0.85 ?? 
     169+      ln_pnd_CST     = .false.        !  constant  melt ponds 
     170@@ -182 +203,2 @@ 
     171-     ln_pnd_alb     = .false.         !  melt ponds affect albedo or not 
     172+      ln_pnd_lids    = .true.         !  frozen lids on top of the ponds (only for ln_pnd_LEV) 
     173+      ln_pnd_alb     = .true.         !  effect of melt ponds on ice albedo 
     174@@ -188 +210,3 @@ 
     175-   ln_iceini_file   = .false.         !  netcdf file provided for initialization (T) or not (F) 
     176+   nn_iceini_file   =   0             !     0 = Initialise sea ice based on SSTs 
     177+                                      !     1 = Initialise sea ice from single category netcdf file 
     178+                                      !     2 = Initialise sea ice from multi category restart file 
     179@@ -208 +232,3 @@ 
     180-   ! -- for ln_iceini_file = T 
     181+   rn_hld_ini_n     =   0.0           !  initial pond lid depth      (m), North 
     182+   rn_hld_ini_s     =   0.0           !        "            "             South 
     183+   ! -- for nn_iceini_file = 1 
     184@@ -218,0 +245 @@ 
     185+   sn_hld = 'NOT USED'              , -12 ,'hld'   ,  .false.  , .true., 'yearly'  , '' , '', '' 
     186Index: namelist_ref 
     187=================================================================== 
     188--- namelist_ref        (revision 12578) 
     189+++ namelist_ref        (revision 13511) 
     190@@ -283 +283,2 @@ 
     191-   sn_tdif     = 'taudif_core'                ,   24         , 'taudif'  ,   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
     192+   sn_cc       = 'NOT USED'                   ,   24.        , 'CC'      ,   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
     193+   sn_tdif     = 'taudif_core'                ,   24.        , 'taudif'  ,   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
     194@@ -290,0 +292 @@ 
     195+   ln_scale_ice_flux = .false. !  use ice fluxes that are already "ice weighted" ( i.e. multiplied ice concentration) 
     196@@ -418,0 +421 @@ 
     197+   ln_rnf_icb  = .false.   !  read in iceberg flux from a file (fill sn_i_rnf if .true.) 
     198@@ -428,0 +432 @@ 
     199+   sn_i_rnf    = 'NOT_USED'              ,        -1.        , 'sorunoff',   .true.    , .true. , 'yearly'  , ''               , ''       , '' 
     200@@ -644,0 +649 @@ 
     201+   bn_hil      = 'NOT USED'              ,         24.       , 'sihlid'  ,    .true.   , .false.,  'daily'  ,    ''            ,   ''     ,     '' 
     202@@ -650,0 +656 @@ 
     203+   rn_ice_hlid = 0.0          !       --   pond lid depth                      -- 
     204@@ -664,2 +670,2 @@ 
     205-!!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T) 
     206-!!   namdrg_bot    bottom friction                                      (ln_OFF=F) 
     207+!!   namdrg_top    top    friction                                      (ln_drg_OFF=F & ln_isfcav=T) 
     208+!!   namdrg_bot    bottom friction                                      (ln_drg_OFF=F) 
     209@@ -673 +679 @@ 
     210-   ln_OFF      = .false.   !  free-slip       : Cd = 0                  (F => fill namdrg_bot 
     211+   ln_drg_OFF  = .false.   !  free-slip       : Cd = 0                  (F => fill namdrg_bot 
     212@@ -678,0 +685 @@ 
     213+      ln_drgice_imp = .false. ! implicit ice-ocean drag 
     214@@ -681 +688 @@ 
     215-&namdrg_top    !   TOP friction                                         (ln_OFF =F & ln_isfcav=T) 
     216+&namdrg_top    !   TOP friction                                         (ln_drg_OFF =F & ln_isfcav=T) 
     217@@ -692 +699 @@ 
     218-&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F) 
     219+&namdrg_bot    !   BOTTOM friction                                      (ln_drg_OFF =F) 
     220@@ -1049 +1056 @@ 
     221-   nn_mxl      =   2       !  mixing length: = 0 bounded by the distance to surface and bottom 
     222+   nn_mxl      =   3       !  mixing length: = 0 bounded by the distance to surface and bottom 
     223@@ -1053,0 +1061,6 @@ 
     224+      nn_mxlice    = 2        ! type of scaling under sea-ice 
     225+                              !    = 0 no scaling under sea-ice 
     226+                              !    = 1 scaling with constant sea-ice thickness 
     227+                              !    = 2 scaling with mean sea-ice thickness ( only with SI3 sea-ice model ) 
     228+                              !    = 3 scaling with maximum sea-ice thickness 
     229+      rn_mxlice   = 10.       ! max constant ice thickness value when scaling under sea-ice ( nn_mxlice=1) 
     230@@ -1055 +1067,0 @@ 
     231-   ln_drg      = .false.   !  top/bottom friction added as boundary condition of TKE 
     232@@ -1066 +1078,5 @@ 
     233-      rn_eice     =   4       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4 
     234+   nn_eice     =   1       !  attenutaion of langmuir & surface wave breaking under ice 
     235+   !                       !           = 0 no impact of ice cover on langmuir & surface wave breaking 
     236+   !                       !           = 1 weigthed by 1-TANH(10*fr_i) 
     237+   !                       !           = 2 weighted by 1-fr_i 
     238+   !                       !           = 3 weighted by 1-MIN(1,4*fr_i) 
     239@@ -1078,0 +1095 @@ 
     240+   rn_hsri       =  0.03   !  Ice-ocean roughness 
     241@@ -1081,0 +1099,5 @@ 
     242+   nn_z0_ice     =   1     !  attenutaion of surface wave breaking under ice 
     243+   !                       !           = 0 no impact of ice cover 
     244+   !                       !           = 1 roughness uses rn_hsri and is weigthed by 1-TANH(10*fr_i) 
     245+   !                       !           = 2 roughness uses rn_hsri and is weighted by 1-fr_i 
     246+   !                       !           = 3 roughness uses rn_hsri and is weighted by 1-MIN(1,4*fr_i) 
     247Index: namelist_top_ref 
     248=================================================================== 
     249--- namelist_top_ref    (revision 12578) 
     250+++ namelist_top_ref    (revision 13511) 
     251@@ -124,2 +124,4 @@ 
     252-   ln_trdmld_trc_restart = .false. !  restart for ML diagnostics 
     253-   ln_trdmld_trc_instant = .true.  !  flag to diagnose trends of instantantaneous or mean ML T/S 
     254+   ln_trdmxl_trc_restart = .false.   !  restart for ML diagnostics 
     255+   ln_trdmxl_trc_instant = .true.    !  flag to diagnose trends of instantantaneous or mean ML T/S 
     256+   cn_trdrst_trc_in  = 'restart_trd' !  suffix of pass. tracer trends restart name (input) 
     257+   cn_trdrst_trc_out = 'restart_trd' !  suffix of pass. tracer trends restart name (output) 
     258Index: field_def_nemo-ice.xml 
     259=================================================================== 
     260--- field_def_nemo-ice.xml      (revision 12578) 
     261+++ field_def_nemo-ice.xml      (revision 13511) 
     262@@ -50,0 +51,2 @@ 
     263+          <field id="icehlid"      long_name="melt pond lid depth"                                     standard_name="sea_ice_meltpondlid_depth"                 unit="m" /> 
     264+          <field id="icevlid"      long_name="melt pond lid volume"                                    standard_name="sea_ice_meltpondlid_volume"                unit="m" /> 
     265@@ -82,0 +85 @@ 
     266+          <field id="beta_evp"     long_name="Relaxation parameter of ice rheology (beta)"             standard_name="relaxation_parameter_of_ice_rheology"      unit=""  /> 
     267@@ -172,0 +176,3 @@ 
     268+          <!-- rheology convergence tests --> 
     269+          <field id="uice_cvg"   long_name="sea ice velocity convergence"      standard_name="sea_ice_velocity_convergence"      unit="m/s" /> 
     270+ 
     271@@ -210,0 +217 @@ 
     272+          <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" /> 
     273@@ -288,0 +296 @@ 
     274+          <field id="icehlid_cat"  long_name="Ice melt pond lid thickness per category"          unit="m"       detect_missing_value="true" /> 
     275@@ -289,0 +298 @@ 
     276+          <field id="iceaepnd_cat" long_name="Ice melt pond effective fraction per category"     unit=""        /> 
     277@@ -300,0 +310,4 @@ 
     278+          <!-- heat diffusion convergence tests --> 
     279+          <field id="tice_cvgerr" long_name="sea ice temperature convergence error"      standard_name="sea_ice_temperature_convergence_err" unit="K" /> 
     280+          <field id="tice_cvgstp" long_name="sea ice temperature convergence iterations" standard_name="sea_ice_temperature_convergence_stp" unit=""  /> 
     281+ 
     282@@ -559,0 +573 @@ 
     283+          <field field_ref="dmilam"           name="sidmassmeltlat"   /> 
     284Index: namelist_pisces_ref 
     285=================================================================== 
     286--- namelist_pisces_ref (revision 12578) 
     287+++ namelist_pisces_ref (revision 13511) 
     288@@ -199 +199 @@ 
     289-   mprat2     =  0.01     ! Diatoms mortality rate 
     290+   mpratd     =  0.01     ! Diatoms mortality rate 
     291@@ -232,2 +232,2 @@ 
     292-   xpref2d    =  1.       ! zoo preference for phyto 
     293-   xpref2p    =  1.       ! zoo preference for POC 
     294+   xpref2d    =  1.       ! zoo preference for Diatoms 
     295+   xpref2n    =  1.       ! zoo preference for nanophyto 
     296@@ -235,2 +235,2 @@ 
     297-   xpref2m    =  0.2      ! meso preference for zoo 
     298-   xpref2c    =  0.3      ! zoo preference for poc 
     299+   xpref2m    =  0.2      ! zoo preference for mesozoo 
     300+   xpref2c    =  0.3      ! zoo preference for POC 
     301Index: field_def_nemo-oce.xml 
     302=================================================================== 
     303--- field_def_nemo-oce.xml      (revision 12578) 
     304+++ field_def_nemo-oce.xml      (revision 13511) 
     305@@ -37,0 +38,8 @@ 
     306+       <!--- additions to diawri.F90 ---> 
     307+        <field id="socegrad"    long_name="module of salinity gradient"              unit="psu/m"   grid_ref="grid_T_3D"/> 
     308+        <field id="socegrad2"   long_name="square of module of salinity gradient"    unit="psu2/m2" grid_ref="grid_T_3D"/> 
     309+        <field id="eken_int"    long_name="vertical integration of kinetic energy"   unit="m3/s2"   /> 
     310+        <field id="relvor"      long_name="relative vorticity"                       unit="s-1"    grid_ref="grid_T_3D"/> 
     311+        <field id="absvor"      long_name="absolute vorticity"                       unit="s-1"    grid_ref="grid_T_3D"/> 
     312+        <field id="potvor"      long_name="potential vorticity"                      unit="s-1"    grid_ref="grid_T_3D"/> 
     313+        <field id="salt2c"      long_name="Salt content vertically integrated"       unit="1e-3*kg/m2" /> 
     314@@ -85 +92,0 @@ 
     315-        <field id="bn2"          long_name="squared Brunt-Vaisala frequency"                                           unit="s-1"    grid_ref="grid_T_3D" /> 
     316@@ -536,0 +544,3 @@ 
     317+        <!-- EOS --> 
     318+        <field id="bn2"          long_name="squared Brunt-Vaisala frequency"                unit="s-2" /> 
     319+ 
     320@@ -592 +602 @@ 
     321-      <!-- variables available with key_float --> 
     322+      <!-- variables available with ln_floats --> 
     323}}} 
     324 
     325 
    24326 
    25327== 2020 v4.0.2 (Feb 2020) minor release