Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/lmdz.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/lmdz.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/lmdz.card	(revision 5899)
@@ -0,0 +1,225 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+# Physics package to use :
+# LMDZ_Physics=AP for standard/old physics(defalut), can be used with LMDZ4_AR5 or LMDZ5/trunk sources
+LMDZ_Physics=tn
+
+# Set ConfType to choose parameters for aerosols, solar and green house gazes.
+# The parameter file PARAM/config.def_$ConfType will be used.
+# ConfType=preind/actuel/annuel
+ConfType=actuel
+
+# Set pmagic in config.def
+pmagic=0.0
+
+# Set calving interpolation method (default y)
+# Use n for DYNAMICO and new coupling weight(MR025)
+cpl_old_calving=n
+
+# Manage radiative aerosol effect and ozone
+flag_aerosol=6
+ok_ade=y
+ok_aie=y
+aerosol_couple=n
+read_climoz=1
+ok_cdnc=y
+
+# ByPass_hgardfou_teta=y : modify teta_ parameters for following CumulPeriod only
+ByPass_hgardfou_teta=n
+
+# ByPass_hgardfou_mats=y : set parameter purmats=y for following CumulPeriod only
+ByPass_hgardfou_mats=n
+
+# Specify which output file to activate and at which output_level
+# Use an integer to specify the output level or NONE if to deactivate the file
+# output_level_filename=1     : activate the corresponding file with low output level
+# output_level_filename=10    : activate the corresponding file with high output level
+# output_level_filename=NONE  : the file will not be written
+output_level_histmth = 2
+output_level_histday = NONE
+output_level_histhf  = NONE
+output_level_histmthNMC = NONE
+output_level_histdayNMC = NONE
+output_level_histhfNMC  = NONE
+output_level_histstrataer = NONE
+output_level_histdaystrataer = NONE
+output_level_histstn      = NONE
+
+# Activate COSP in config.def and set corresponding output files
+LMDZ_COSP_OK=y
+output_level_histmthCOSP = NONE
+output_level_histdayCOSP = NONE
+output_level_histhfCOSP  = NONE
+
+[InitialStateFiles]
+List=  (/ccc/store/cont003/gencmip6/lebasn/INPUT/VLR/LMDZOR6-VLR/STARTPHY/ORCA2/ELC-96x95x59-ORCA2_clim_start.nc, start.nc),\
+       (/ccc/store/cont003/gencmip6/lebasn/INPUT/VLR/LMDZOR6-VLR/STARTPHY/ORCA2/ELC-96x95x59-ORCA2_clim_startphy.nc, startphy.nc)
+
+[BoundaryFiles]
+List=   ()
+#
+# With CMIP6 aerosols version 1
+# With 3D ozone
+ListNonDel= (${R_IN}/ATM/AEROSOLS/CMIP6/v1/${RESOL_ATM_XY}/L79/aerosols1850_from_inca.nc,   aerosols.nat.nc),\
+	    (${R_IN}/ATM/AEROSOLS/CMIP6/v1/${RESOL_ATM_XY}/L79/aerosols1995_from_inca.nc,   aerosols1980.nc),\
+            (${R_IN}/ATM/OZONE/UReading/historical.v20160711.v2/interpol/${RESOL_ATM_XY}/climoz_LMDZ_1979_2008_clim.nc, climoz_LMDZ.nc),\
+	    (${R_IN}/ATM/SOLAR/CMIP6/v3.1corr/Control/solarforcing_v3.1_pdControl_ave_6bands_366days.nc, solarforcing.nc),\
+            (/ccc/store/cont003/gencmip6/lebasn/INPUT/VLR/LMDZOR6-VLR/STRATO/${RESOL_ATM_XY}/L${RESOL_ATM_Z}/taulwstrat.2D.ave.nc, taulwstrat.2D.nc),\
+            (/ccc/store/cont003/gencmip6/lebasn/INPUT/VLR/LMDZOR6-VLR/STRATO/${RESOL_ATM_XY}/L${RESOL_ATM_Z}/tauswstrat.2D.ave.nc, tauswstrat.2D.nc),\
+            (${R_IN}/ATM/SITES/cfsites_grid_CMIP6.nc, cfsites_grid.nc)
+
+[SmoothFiles]
+List=   ()
+
+[ParametersFiles]
+List=   (${SUBMIT_DIR}/PARAM/physiq.def_${LMDZ_Physics}, physiq.def),       \
+        (${SUBMIT_DIR}/PARAM/gcm.def_${RESOL_ATM_XY}_${LMDZ_Physics}, gcm.def), \
+        (${SUBMIT_DIR}/PARAM/vert.def_L${RESOL_ATM_Z},   vert.def),         \
+        (${MODIPSL}/modeles/LMDZ/DefLists/cosp_input_nl.txt, .),            \
+        (${MODIPSL}/modeles/LMDZ/DefLists/cosp_output_nl.txt, .),           \
+        (${SUBMIT_DIR}/PARAM/config.def_${ConfType},  config.def),          \
+        (${SUBMIT_DIR}/PARAM/guide.def, .),                                 \
+        (${SUBMIT_DIR}/PARAM/run.def, .),                                   \
+        (${SUBMIT_DIR}/PARAM/traceur.def, .),                               \
+        (${SUBMIT_DIR}/PARAM/iodef_template.xml, .),                            \
+        (${SUBMIT_DIR}/PARAM/iodef.xml, . ),                                \
+        (${SUBMIT_DIR}/PARAM/ping_LMDZ.xml, ping_lmdz.xml ),                \
+        (${MODIPSL}/modeles/LMDZ/DefLists/context_lmdz.xml, . ),            \
+        (${MODIPSL}/modeles/LMDZ/DefLists/field_def_lmdz.xml, . ),          \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histmth_lmdz.xml, . ),   \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histmthCOSP_lmdz.xml, .),\
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histmthNMC_lmdz.xml, . ),\
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histday_lmdz.xml, . ),   \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histdayCOSP_lmdz.xml, .),\
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histdayNMC_lmdz.xml, . ),\
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histhf_lmdz.xml, . ),    \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histhfCOSP_lmdz.xml, .), \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histhfNMC_lmdz.xml, . ), \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histstn_lmdz.xml, . ),   \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histins_lmdz.xml, . ),   \
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histstrataer_lmdz.xml, . ),\
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histdaystrataer_lmdz.xml, . ),\
+        (${MODIPSL}/modeles/LMDZ/DefLists/file_def_histLES_lmdz.xml, . )
+
+
+
+[RestartFiles]
+List=   (restart.nc, restart.nc, start.nc), \
+        (restartphy.nc, restartphy.nc,  startphy.nc)
+
+[OutputText]
+List=   (physiq.def, gcm.def, run.def, traceur.def, guide.def, config.def, vert.def, used_run.def, iodef.xml, context_lmdz.xml, field_def_lmdz.xml, file_def_*lmdz.xml, debug_notroot.01, debug.root.01, lmdz.prt, out_lmdz.x.err, out_lmdz.x.out)
+
+[OutputFiles]
+List=   (histmth.nc,       ${R_OUT_ATM_O_M}/${PREFIX}_1M_histmth.nc,       Post_1M_histmth),       \
+        (histmthCOSP.nc,   ${R_OUT_ATM_O_M}/${PREFIX}_1M_histmthCOSP.nc,   NONE),                  \
+        (histmthNMC.nc,    ${R_OUT_ATM_O_M}/${PREFIX}_1M_histmthNMC.nc,    NONE),    \
+        (histday.nc,       ${R_OUT_ATM_O_D}/${PREFIX}_1D_histday.nc,       NONE),                  \
+        (histdayCOSP.nc,   ${R_OUT_ATM_O_D}/${PREFIX}_1D_histdayCOSP.nc,   NONE),                  \
+        (histdayNMC.nc,    ${R_OUT_ATM_O_D}/${PREFIX}_1D_histdayNMC.nc,    NONE),                  \
+        (histhf.nc,        ${R_OUT_ATM_O_H}/${PREFIX}_HF_histhf.nc,        NONE),                  \
+        (histhfCOSP.nc,    ${R_OUT_ATM_O_H}/${PREFIX}_HF_histhfCOSP.nc,    NONE),                  \
+        (histhfNMC.nc,     ${R_OUT_ATM_O_H}/${PREFIX}_HF_histhfNMC.nc,     NONE),                  \
+        (histhf3h.nc,      ${R_OUT_ATM_O_H}/${PREFIX}_3H_histhf3h.nc,      NONE),                  \
+        (histhf3hm.nc,     ${R_OUT_ATM_O_H}/${PREFIX}_3H_histhf3hm.nc,     NONE)
+
+[Post_1M_histmth]
+Patches= ()
+GatherWithInternal = (lon, lat, presnivs, time_counter, time_centered, time_centered_bounds, aire)
+TimeSeriesVars2D = (bils, cldh, cldl, cldm, cldq, cldt, evap, flat, ftime_con, iwp, lwp, LWdnSFC, LWdnSFCclr, LWupSFC, LWupSFCclr, precip, prw, pluc, psol, q2m, rh2m, sens, sicf, slp, snow, soll0, soll, sols0, sols, SWdnSFC, SWupSFC, SWdnTOA, SWupTOA, SWdnSFCclr, SWupSFCclr, SWupTOAclr, t2m, ave_t2m_daily_max, ave_t2m_daily_min, taux, taux_ter, taux_sic, taux_lic, taux_oce, tauy, tauy_ter, tauy_sic, tauy_lic, tauy_oce, lat_ter, lat_sic, lat_lic, lat_oce, nettop, pbase, ptop, topl0, topl, tops0, tops, tsol, tsol_ter, tsol_lic, tsol_oce, tsol_sic , u10m, v10m, pourc_ter, pourc_oce, pourc_sic, pourc_lic, wind10m, od550aer, od550lt1aer, od550_STRAT, sconcoa, sconcbc, sconcso4, R_ecc, R_peri, R_incl, solaire, rsun1, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt, colO3_strat, colO3_trop)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (temp, theta, ovap, geop, vitu, vitv, vitw, pres, rneb, rhum, paprs, ec550aer, concoa, concbc, concso4, concss, concdust)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_histmthCOSP]
+Patches = ()
+GatherWithInternal = (lon, lat, pressure2, height, sza, time_counter, time_centered, time_centered_bounds, aire)
+TimeSeriesVars2D = (cllcalipso, clmcalipso, clhcalipso, cltcalipso, tclisccp, albisccp, ctpisccp)
+ChunckJob2D = OFF
+TimeSeriesVars3D = (clcalipso, clisccp2_c01, clisccp2_c02, clisccp2_c03, clisccp2_c04, clisccp2_c05, clisccp2_c06, clisccp2_c07, parasol_refl)
+ChunckJob3D = OFF
+Seasonal=OFF
+
+[Post_1M_histmthNMC]
+Patches = ()
+GatherWithInternal = (lon, lat, plev, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = (ta, tro3, zg, hus, hur, ua, va, wap)
+ChunckJob3D = NONE
+Seasonal=ON
+
+[Post_1D_histday]
+Patches= ()
+GatherWithInternal = (lon, lat, presnivs, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (bils, cldh, cldl, cldm, cldq, cldt, evap, flat, precip, pluc, plul, prw, psol, q2m, sens, sicf, slp, soll, sols, snow, SWdnSFC, t2m, t2m_max, t2m_min, topl, tops, tsol, u10m, v10m, wind10m, wind10max)
+ChunckJob2D = 50Y
+TimeSeriesVars3D = (lwcon, iwcon, mc, rhum, rneb, temp, theta, ovap, geop, vitu, vitv, vitw, pres, paprs)
+ChunckJob3D = OFF
+Seasonal=OFF
+
+[Post_1D_histdayCOSP]
+Patches = ()
+GatherWithInternal = (lon, lat, pressure2, height, sza, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (cllcalipso, clmcalipso, clhcalipso, cltcalipso, tclisccp, albisccp, ctpisccp)
+ChunckJob2D = OFF
+TimeSeriesVars3D = (clcalipso, clisccp2_c01, clisccp2_c02, clisccp2_c03, clisccp2_c04, clisccp2_c05, clisccp2_c06, clisccp2_c07, parasol_refl)
+ChunckJob3D = OFF
+Seasonal=OFF
+
+[Post_1D_histdayNMC]
+Patches = ()
+GatherWithInternal = (lon, lat, plev, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = (ta, zg, hus, hur, ua, va, wap)
+ChunckJob3D = 10Y
+Seasonal=OFF
+
+[Post_HF_histhf]
+Patches= ()
+GatherWithInternal = (lon, lat, presnivs, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (cldt, psol, q2m, slp, precip, pluc, plul, t2m, tsol, u10m, v10m)
+ChunckJob2D = 50Y
+TimeSeriesVars3D = (temp, theta, ovap, vitu, vitv)
+ChunckJob3D = OFF
+Seasonal=OFF
+
+[Post_HF_histhfCOSP]
+Patches = ()
+GatherWithInternal = (lon, lat, height, sza, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (cllcalipso, clmcalipso, clhcalipso, cltcalipso)
+ChunckJob2D = OFF
+TimeSeriesVars3D = (clcalipso, parasol_refl, cfad_lidarsr532_c01, cfad_lidarsr532_c02, cfad_lidarsr532_c03, cfad_lidarsr532_c04, cfad_lidarsr532_c05, cfad_lidarsr532_c06, cfad_lidarsr532_c07, cfad_lidarsr532_c08, cfad_lidarsr532_c09, cfad_lidarsr532_c10, cfad_lidarsr532_c11, cfad_lidarsr532_c12, cfad_lidarsr532_c13, cfad_lidarsr532_c14, cfad_lidarsr532_c15)
+ChunckJob3D = OFF
+Seasonal=OFF
+
+[Post_HF_histhfNMC]
+Patches = ()
+GatherWithInternal = (lon, lat, plev, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = (ta, zg, hus, hur, ua, va, wap)
+ChunckJob3D = 10Y
+Seasonal=OFF
+
+[Post_3H_histhf3hm]
+Patches= ()
+GatherWithInternal = (lon, lat, presnivs, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (flat, precip, pluc, snow, topl, topl0, SWupTOA, SWupTOAclr, SWdnTOA, SWupSFC, SWupSFCclr, SWdnSFC, SWdnSFCclr, LWupSFC, LWupSFCclr, LWdnSFC, LWdnSFCclr, bils, bils_tke, bils_diss, bils_ec, bils_kinetic, bils_enthalp, bils_latent, sens, cldt, zmax_th)
+ChunckJob2D = OFF
+TimeSeriesVars3D = ()
+ChunckJob3D = OFF
+Seasonal=OFF
+
+[Post_3H_histhf3h]
+Patches= ()
+GatherWithInternal = (lon, lat, presnivs, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (phis, tsol, t2m, q2m, ustar, u10m, v10m, psol)
+ChunckJob2D = OFF
+TimeSeriesVars3D = ()
+ChunckJob3D = OFF
+Seasonal=OFF
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/oasis.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/oasis.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/oasis.card	(revision 5899)
@@ -0,0 +1,150 @@
+[Compatibility] 
+libIGCM=1.0 
+ 	 
+[UserChoices]
+OutputMode=n
+FreqCoupling=86400
+FreqCouplingRoffCalv=86400
+Lucia=n
+
+# ByPass_addnoise_sst=y : use addnoise on sst in CPL restart for following CumulPeriod only
+ByPass_addnoise_sst= n
+ByPass_PerturbExe=AddNoise
+ByPass_FileOut=sstoc
+ByPass_PerturbVar=O_SSTSST
+ByPass_PerturbAmp=0.01
+
+[InitialStateFiles]
+List=   (${R_IN}/CPL/IPSLCM6/ORCA2.3xLMD9695/flxat.nc, flxat.nc), \
+        (${R_IN}/CPL/IPSLCM6/ORCA2.3xLMD9695/sstoc.nc, sstoc.nc)
+
+[BoundaryFiles]
+List=	()
+ListNonDel=(/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/grids_ORCA2.3xLMD9695_MOSAIX_v1.nc, grids.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/masks_ORCA2.3xLMD9695_MOSAIX_v1.nc, masks.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/areas_ORCA2.3xLMD9695_MOSAIX_v1.nc, areas.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_tORCA2.3_calving_full_MOSAIX_v1.nc, rmp_tlmd_to_torc_MOSAIC_calvin.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tORCA2.3_to_tLMD9695_OceTemp_1stOrder_MOSAIX_v1.nc, rmp_torc_to_tlmd_MOSAIC.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_tORCA2.3_HeatWaterFluxes_1stOrder_MOSAIX_v1.nc, rmp_tlmd_to_torc_MOSAIC.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_uORCA2.3_WindStress_2ndOrder_MOSAIX_v1.nc, rmp_tlmd_to_uorc_BILINEAR_Corrected.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_vORCA2.3_WindStress_2ndOrder_MOSAIX_v1.nc, rmp_tlmd_to_vorc_BILINEAR_Corrected.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_tORCA2.3_runoff_Quantity_to_Surfacic_MOSAIX_v1.nc, rmp_tlmd_to_torc_MOSAIC_rivflu.nc)
+
+[SmoothFiles]
+List=	()
+
+[ParametersFiles]
+List= (${SUBMIT_DIR}/PARAM/namcouple_${RESOL_CPL}, namcouple), \
+        (${SUBMIT_DIR}/PARAM/oasis_namcouple_body, .), \
+        (${SUBMIT_DIR}/PARAM/oasis_namcouple_header, .), \
+        (${SUBMIT_DIR}/PARAM/oasis_namcouple_epilog, .)
+
+[RestartFiles]
+List= (flxat.nc, flxat.nc, flxat.nc),\
+    (sstoc.nc, sstoc.nc, sstoc.nc)
+
+[OutputText]
+List=   (namcouple, nout.000000, lucia, oasis_balance.eps)
+
+[OutputFiles]
+List=   (SISUTESW_LMDZ_01.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SISUTESW.nc,    Post_ncks_cdo),\
+    (SIICECOV_LMDZ_02.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SIICECOV.nc,    Post_ncks_cdo),\
+    (SIICTEMW_LMDZ_03.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SIICTEMW.nc,    Post_ncks_cdo),\
+    (SIICEALW_LMDZ_04.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SIICEALW.nc,    Post_ncks_cdo),\
+    (CURRENTX_LMDZ_05.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CURRENTX.nc,    Post_ncks_cdo),\
+    (CURRENTY_LMDZ_06.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CURRENTY.nc,    Post_ncks_cdo),\
+    (CURRENTZ_LMDZ_07.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CURRENTZ.nc,    Post_ncks_cdo),\
+    (COTAUXXU_LMDZ_08.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUXXU.nc,    Post_ncks_cdo),\
+    (COTAUYYU_LMDZ_09.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUYYU.nc,    Post_ncks_cdo),\
+    (COTAUZZU_LMDZ_10.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUZZU.nc,    Post_ncks_cdo),\
+    (COTAUXXV_LMDZ_11.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUXXV.nc,    Post_ncks_cdo),\
+    (COTAUYYV_LMDZ_12.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUYYV.nc,    Post_ncks_cdo),\
+    (COTAUZZV_LMDZ_13.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUZZV.nc,    Post_ncks_cdo),\
+    (COWINDSP_LMDZ_14.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COWINDSP.nc,    Post_ncks_cdo),\
+    (COTOTRAI_LMDZ_15.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTOTRAI.nc,    Post_ncks_cdo),\
+    (COTOTSNO_LMDZ_16.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTOTSNO.nc,    Post_ncks_cdo),\
+    (COTOTEVA_LMDZ_17.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTOTEVA.nc,    Post_ncks_cdo),\
+    (COICEVAP_LMDZ_18.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COICEVAP.nc,    Post_ncks_cdo),\
+    (COQSRMIX_LMDZ_19.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COQSRMIX.nc,    Post_ncks_cdo),\
+    (COQNSMIX_LMDZ_20.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COQNSMIX.nc,    Post_ncks_cdo),\
+    (COSHFICE_LMDZ_21.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COSHFICE.nc,    Post_ncks_cdo),\
+    (CONSFICE_LMDZ_22.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CONSFICE.nc,    Post_ncks_cdo),\
+    (CODFLXDT_LMDZ_23.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CODFLXDT.nc,    Post_ncks_cdo),\
+    (COCALVIN_LMDZ_24.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COCALVIN.nc,    Post_ncks_cdo),\
+    (COLIQRUN_LMDZ_25.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COLIQRUN.nc,    Post_ncks_cdo),\
+    (O_SSTSST_oceanx_01.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_SSTSST.nc,    Post_ncks_cdo),\
+    (OIceFrc_oceanx_02.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OIceFrac.nc,    Post_ncks_cdo),\
+    (O_TepIce_oceanx_03.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_TepIce.nc,    Post_ncks_cdo),\
+    (O_AlbIce_oceanx_04.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_AlbIce.nc,    Post_ncks_cdo),\
+    (O_OCurx1_oceanx_05.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OCurx1.nc,    Post_ncks_cdo),\
+    (O_OCury1_oceanx_06.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OCury1.nc,    Post_ncks_cdo),\
+    (O_OCurz1_oceanx_07.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OCurz1.nc,    Post_ncks_cdo),\
+    (O_OTaux1_oceanx_08.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTaux1.nc,    Post_ncks_cdo),\
+    (O_OTauy1_oceanx_09.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauy1.nc,    Post_ncks_cdo),\
+    (O_OTauz1_oceanx_10.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauz1.nc,    Post_ncks_cdo),\
+    (O_OTaux2_oceanx_11.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTaux2.nc,    Post_ncks_cdo),\
+    (O_OTauy2_oceanx_12.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauy2.nc,    Post_ncks_cdo),\
+    (O_OTauz2_oceanx_13.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauz2.nc,    Post_ncks_cdo),\
+    (O_Wind10_oceanx_14.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_Wind10.nc,    Post_ncks_cdo),\
+    (OTotRain_oceanx_15.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OTotRain.nc,    Post_ncks_cdo),\
+    (OTotSnow_oceanx_16.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OTotSnow.nc,    Post_ncks_cdo),\
+    (OTotEvap_oceanx_17.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OTotEvap.nc,    Post_ncks_cdo),\
+    (OIceEvap_oceanx_18.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OIceEvap.nc,    Post_ncks_cdo),\
+    (O_QsrMix_oceanx_19.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QsrMix.nc,    Post_ncks_cdo),\
+    (O_QnsMix_oceanx_20.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QnsMix.nc,    Post_ncks_cdo),\
+    (O_QsrIce_oceanx_21.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QsrIce.nc,    Post_ncks_cdo),\
+    (O_QnsIce_oceanx_22.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QnsIce.nc,    Post_ncks_cdo),\
+    (O_dQnsdT_oceanx_23.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_dQnsdT.nc,    Post_ncks_cdo),\
+    (OCalving_oceanx_24.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OCalving.nc,    Post_ncks_cdo),\
+    (O_Runoff_oceanx_25.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_Runoff.nc,    Post_ncks_cdo)
+#    (O_Runoff_oceanx_25.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_Runoff.nc,    Post_ncks_cdo),\
+#    (TEMPO_1D_cpl_atm.nc,    ${R_OUT_CPL_O_D}/${PREFIX}_1D_cpl_atm.nc , Post_1D_cpl_atm), \
+#    (TEMPO_1D_cpl_oce.nc,    ${R_OUT_CPL_O_D}/${PREFIX}_1D_cpl_oce.nc , Post_1D_cpl_oce), \
+#    (TEMPO_1M_cpl_atm.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_1M_cpl_atm.nc , Post_1M_cpl_atm), \
+#    (TEMPO_1M_cpl_oce.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_1M_cpl_oce.nc , Post_1M_cpl_oce)
+
+[Post_ncks_cdo]
+Patches = (Patch_20140801_ncks_cdo)
+GatherWithInternal = ()
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1D_cpl_atm]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = ()
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1D_cpl_oce]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = ()
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_cpl_atm]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = (lon, lat, time)
+TimeSeriesVars2D = (COTAUXXU, COTAUYYU, COTAUZZU, COTAUXXV, COTAUYYV, COTAUZZV, COWINDSP, COTOTRAI, COTOTSNO, COTOTEVA, COICEVAP, COQSRMIX, COQNSMIX, COSHFICE, CONSFICE, CODFLXDT, COCALVIN, COLIQRUN, SISUTESW, SIICECOV, SIICTEMW, SIICEALW, CURRENTX, CURRENTY, CURRENTZ)
+ChunckJob2D = OFF
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_cpl_oce]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = (lon, lat, time)
+TimeSeriesVars2D = (O_OTaux1, O_OTauy1, O_OTauz1, O_OTaux2, O_OTauy2, O_OTauz2, O_Wind10, OTotRain, OTotSnow, OTotEvap, OIceEvap, O_QsrMix, O_QnsMix, O_QsrIce, O_QnsIce, O_dQnsdT, OCalving, OIceberg, OIcshelf, O_Runoff, O_SSTSST, OIceFrc, O_TepIce, O_AlbIce, O_OCurx1, O_OCury1, O_OCurz1)
+ChunckJob2D = OFF
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/oasis.card.bak
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/oasis.card.bak	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/oasis.card.bak	(revision 5899)
@@ -0,0 +1,154 @@
+[Compatibility] 
+libIGCM=1.0 
+ 	 
+[UserChoices]
+OutputMode=y
+FreqCoupling=86400
+FreqCouplingRoffCalv=86400
+Lucia=n
+
+# ByPass_addnoise_sst=y : use addnoise on sst in CPL restart for following CumulPeriod only
+ByPass_addnoise_sst= y
+ByPass_PerturbExe=AddNoise
+ByPass_FileOut=sstoc
+ByPass_PerturbVar=O_SSTSST
+ByPass_PerturbAmp=0.01
+
+[InitialStateFiles]
+List=   (${R_IN}/CPL/IPSLCM6/ORCA2.3xLMD9695/flxat.nc, flxat.nc), \
+        (${R_IN}/CPL/IPSLCM6/ORCA2.3xLMD9695/sstoc.nc, sstoc.nc)
+
+[BoundaryFiles]
+List=	()
+#ListNonDel= (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/grids_v3.nc, grids.nc),\
+#        (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/masks_v3.nc, masks.nc),\
+#        (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/areas_v3.nc, areas.nc),\
+#        (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/rmp_torc_to_tlmd_MOSAIC_v3.nc, rmp_torc_to_tlmd_MOSAIC.nc),\
+#        (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/rmp_tlmd_to_torc_MOSAIC_v3.nc, rmp_tlmd_to_torc_MOSAIC.nc),\
+#        (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/rmp_tlmd_to_torc_MOSAIC_calvin_v3.nc, rmp_tlmd_to_torc_MOSAIC_calvin.nc),\
+#        (${R_IN}/CPL/IPSLCM6/ORCA2.3x${RESOL_ATM}/rmp_tlmd_to_torc_MOSAIC_rivflu_v3.nc, rmp_tlmd_to_torc_MOSAIC_rivflu.nc)
+ListNonDel=(/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/grids_ORCA2.3xLMD9695_MOSAIX_v1.nc, grids.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/masks_ORCA2.3xLMD9695_MOSAIX_v1.nc, masks.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/areas_ORCA2.3xLMD9695_MOSAIX_v1.nc, areas.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_tORCA2.3_calving_full_MOSAIX_v1.nc, rmp_tlmd_to_torc_MOSAIC_calvin.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tORCA2.3_to_tLMD9695_OceTemp_1stOrder_MOSAIX_v1.nc, rmp_torc_to_tlmd_MOSAIC.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_tORCA2.3_HeatWaterFluxes_1stOrder_MOSAIX_v1.nc, rmp_tlmd_to_torc_MOSAIC.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_uORCA2.3_WindStress_2ndOrder_MOSAIX_v1.nc, rmp_tlmd_to_uorc_BILINEAR_Corrected.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_vORCA2.3_WindStress_2ndOrder_MOSAIX_v1.nc, rmp_tlmd_to_vorc_BILINEAR_Corrected.nc),\
+ (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/rmp_tLMD9695_to_tORCA2.3_runoff_Quantity_to_Surfacic_MOSAIX_v1.nc, rmp_tlmd_to_torc_MOSAIC_rivflu.nc)
+
+[SmoothFiles]
+List=	()
+
+[ParametersFiles]
+List=	(${SUBMIT_DIR}/PARAM/namcouple_${RESOL_CPL}, namcouple)
+
+[RestartFiles]
+List= (flxat.nc, flxat.nc, flxat.nc),\
+    (sstoc.nc, sstoc.nc, sstoc.nc)
+
+[OutputText]
+List=   (namcouple, nout.000000, lucia, oasis_balance.eps)
+
+[OutputFiles]
+List=   (SISUTESW_LMDZ_01.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SISUTESW.nc,    Post_ncks_cdo),\
+    (SIICECOV_LMDZ_02.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SIICECOV.nc,    Post_ncks_cdo),\
+    (SIICTEMW_LMDZ_03.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SIICTEMW.nc,    Post_ncks_cdo),\
+    (SIICEALW_LMDZ_04.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_SIICEALW.nc,    Post_ncks_cdo),\
+    (CURRENTX_LMDZ_05.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CURRENTX.nc,    Post_ncks_cdo),\
+    (CURRENTY_LMDZ_06.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CURRENTY.nc,    Post_ncks_cdo),\
+    (CURRENTZ_LMDZ_07.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CURRENTZ.nc,    Post_ncks_cdo),\
+    (COTAUXXU_LMDZ_08.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUXXU.nc,    Post_ncks_cdo),\
+    (COTAUYYU_LMDZ_09.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUYYU.nc,    Post_ncks_cdo),\
+    (COTAUZZU_LMDZ_10.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUZZU.nc,    Post_ncks_cdo),\
+    (COTAUXXV_LMDZ_11.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUXXV.nc,    Post_ncks_cdo),\
+    (COTAUYYV_LMDZ_12.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUYYV.nc,    Post_ncks_cdo),\
+    (COTAUZZV_LMDZ_13.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTAUZZV.nc,    Post_ncks_cdo),\
+    (COWINDSP_LMDZ_14.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COWINDSP.nc,    Post_ncks_cdo),\
+    (COTOTRAI_LMDZ_15.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTOTRAI.nc,    Post_ncks_cdo),\
+    (COTOTSNO_LMDZ_16.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTOTSNO.nc,    Post_ncks_cdo),\
+    (COTOTEVA_LMDZ_17.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COTOTEVA.nc,    Post_ncks_cdo),\
+    (COICEVAP_LMDZ_18.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COICEVAP.nc,    Post_ncks_cdo),\
+    (COQSRMIX_LMDZ_19.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COQSRMIX.nc,    Post_ncks_cdo),\
+    (COQNSMIX_LMDZ_20.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COQNSMIX.nc,    Post_ncks_cdo),\
+    (COSHFICE_LMDZ_21.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COSHFICE.nc,    Post_ncks_cdo),\
+    (CONSFICE_LMDZ_22.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CONSFICE.nc,    Post_ncks_cdo),\
+    (CODFLXDT_LMDZ_23.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_CODFLXDT.nc,    Post_ncks_cdo),\
+    (COCALVIN_LMDZ_24.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COCALVIN.nc,    Post_ncks_cdo),\
+    (COLIQRUN_LMDZ_25.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_COLIQRUN.nc,    Post_ncks_cdo),\
+    (O_SSTSST_oceanx_01.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_SSTSST.nc,    Post_ncks_cdo),\
+    (OIceFrc_oceanx_02.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OIceFrac.nc,    Post_ncks_cdo),\
+    (O_TepIce_oceanx_03.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_TepIce.nc,    Post_ncks_cdo),\
+    (O_AlbIce_oceanx_04.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_AlbIce.nc,    Post_ncks_cdo),\
+    (O_OCurx1_oceanx_05.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OCurx1.nc,    Post_ncks_cdo),\
+    (O_OCury1_oceanx_06.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OCury1.nc,    Post_ncks_cdo),\
+    (O_OCurz1_oceanx_07.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OCurz1.nc,    Post_ncks_cdo),\
+    (O_OTaux1_oceanx_08.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTaux1.nc,    Post_ncks_cdo),\
+    (O_OTauy1_oceanx_09.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauy1.nc,    Post_ncks_cdo),\
+    (O_OTauz1_oceanx_10.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauz1.nc,    Post_ncks_cdo),\
+    (O_OTaux2_oceanx_11.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTaux2.nc,    Post_ncks_cdo),\
+    (O_OTauy2_oceanx_12.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauy2.nc,    Post_ncks_cdo),\
+    (O_OTauz2_oceanx_13.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_OTauz2.nc,    Post_ncks_cdo),\
+    (O_Wind10_oceanx_14.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_Wind10.nc,    Post_ncks_cdo),\
+    (OTotRain_oceanx_15.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OTotRain.nc,    Post_ncks_cdo),\
+    (OTotSnow_oceanx_16.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OTotSnow.nc,    Post_ncks_cdo),\
+    (OTotEvap_oceanx_17.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OTotEvap.nc,    Post_ncks_cdo),\
+    (OIceEvap_oceanx_18.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OIceEvap.nc,    Post_ncks_cdo),\
+    (O_QsrMix_oceanx_19.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QsrMix.nc,    Post_ncks_cdo),\
+    (O_QnsMix_oceanx_20.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QnsMix.nc,    Post_ncks_cdo),\
+    (O_QsrIce_oceanx_21.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QsrIce.nc,    Post_ncks_cdo),\
+    (O_QnsIce_oceanx_22.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_QnsIce.nc,    Post_ncks_cdo),\
+    (O_dQnsdT_oceanx_23.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_dQnsdT.nc,    Post_ncks_cdo),\
+    (OCalving_oceanx_24.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_OCalving.nc,    Post_ncks_cdo),\
+    (O_Runoff_oceanx_25.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_Runoff.nc,    Post_ncks_cdo)
+#    (O_Runoff_oceanx_25.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_O_Runoff.nc,    Post_ncks_cdo),\
+#    (TEMPO_1D_cpl_atm.nc,    ${R_OUT_CPL_O_D}/${PREFIX}_1D_cpl_atm.nc , Post_1D_cpl_atm), \
+#    (TEMPO_1D_cpl_oce.nc,    ${R_OUT_CPL_O_D}/${PREFIX}_1D_cpl_oce.nc , Post_1D_cpl_oce), \
+#    (TEMPO_1M_cpl_atm.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_1M_cpl_atm.nc , Post_1M_cpl_atm), \
+#    (TEMPO_1M_cpl_oce.nc,    ${R_OUT_CPL_O_M}/${PREFIX}_1M_cpl_oce.nc , Post_1M_cpl_oce)
+
+[Post_ncks_cdo]
+Patches = (Patch_20140801_ncks_cdo)
+GatherWithInternal = ()
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1D_cpl_atm]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = ()
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1D_cpl_oce]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = ()
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_cpl_atm]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = (lon, lat, time)
+TimeSeriesVars2D = (COTAUXXU, COTAUYYU, COTAUZZU, COTAUXXV, COTAUYYV, COTAUZZV, COWINDSP, COTOTRAI, COTOTSNO, COTOTEVA, COICEVAP, COQSRMIX, COQNSMIX, COSHFICE, CONSFICE, CODFLXDT, COCALVIN, COLIQRUN, SISUTESW, SIICECOV, SIICTEMW, SIICEALW, CURRENTX, CURRENTY, CURRENTZ)
+ChunckJob2D = OFF
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_cpl_oce]
+Patches = (Patch_20091119_put_out)
+GatherWithInternal = (lon, lat, time)
+TimeSeriesVars2D = (O_OTaux1, O_OTauy1, O_OTauz1, O_OTaux2, O_OTauy2, O_OTauz2, O_Wind10, OTotRain, OTotSnow, OTotEvap, OIceEvap, O_QsrMix, O_QnsMix, O_QsrIce, O_QnsIce, O_dQnsdT, OCalving, OIceberg, OIcshelf, O_Runoff, O_SSTSST, OIceFrc, O_TepIce, O_AlbIce, O_OCurx1, O_OCury1, O_OCurz1)
+ChunckJob2D = OFF
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/opa9.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/opa9.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/opa9.card	(revision 5899)
@@ -0,0 +1,152 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+ORCA_version=${config_UserChoices_ORCA_version:-ORCA2.4}
+mesh_mask= n
+Reproducibility_after_restart= n
+OutputLevel=2
+
+[InitialStateFiles]
+List=	()
+
+[BoundaryFiles]
+List=	()
+ListNonDel= (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/ORCA2.3_ClosedSeas_domain_cfg.nc, domain_cfg.nc ), \
+          (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/runoff_core_monthly_ORCA2.nc, runoff_core_monthly.nc),\
+          (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_geothermal_heating.nc, geothermal_heating.nc),\
+	    (${R_IN}/OCE/NEMO/FORCINGS/COREII/weights_core_orca2_bilinear_noc.nc, weights_bilinear.nc), \
+            (${R_IN}/OCE/NEMO/FORCINGS/COREII/weights_core_orca2_bicubic_noc.nc , weights_bicubic.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_coordinates.nc, coordinates.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_coordinates_xios.nc, coordinates_xios.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_maskMFO.nc, maskMFO.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_resto.nc, resto.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_subbasins.nc , subbasins.nc    ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_mixing_power_bot.nc, mixing_power_bot.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_mixing_power_pyc.nc, mixing_power_pyc.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_mixing_power_cri.nc, mixing_power_cri.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_decay_scale_bot.nc, decay_scale_bot.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_decay_scale_cri.nc, decay_scale_cri.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_sali_ref_clim_monthly.nc, sali_ref_clim_monthly.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_eddy_viscosity_3D.nc, eddy_viscosity_3D.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/conservative_temperature_WOA13_decav_clim_ORCA2.nc, conservative_temperature_WOA13_decav_Reg1L75_clim.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/potT_PHC3WOA_ORCA2.nc, data_1m_potential_temperature_nomask.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/Salt_corr_PHC3WOA09_ORCA2.nc, data_1m_salinity_nomask.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/sst_PHC3WOA_ORCA2.nc, sst_data.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/sss_corr_PHC3WOA09_ORCA2.nc, sss_data.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/chlorophyll_ORCA2.nc, chlorophyll.nc)
+
+[SmoothFiles]
+List=	()
+
+[ParametersFiles]
+List=   (${MODIPSL}/modeles/NEMO/cfgs/SHARED/namelist_ref           , namelist_ref        ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/domain_def_nemo.xml    , domain_def_nemo.xml ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/axis_def_nemo.xml      , axis_def_nemo.xml   ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/grid_def_nemo.xml      , grid_def_nemo.xml  ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/field_def_nemo-oce.xml , field_def_nemo-oce.xml  ), \
+        (${SUBMIT_DIR}/../SOURCES/NEMO/file_def_nemo-oce.xml        , file_def_nemo-oce.xml ), \
+        (${SUBMIT_DIR}/../SOURCES/NEMO/context_nemo.xml             , context_nemo.xml ), \
+        (${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE}_cfg              , namelist_cfg )
+
+
+
+[RestartFiles]
+List=	(${config_UserChoices_JobName}_${NEMO_END}_restart.nc,  restart.nc, restartopa.nc)
+
+[OutputText]
+List=   (ocean.output, run.stat, namelist, output.namelist.*, context_nemo.xml, axis_def_nemo.xml, grids_def_nemo.xml, field_def_nemo.xml, domain_def_nemo.xml, out_opa.xx.out, out_opa.xx.err, debug_notroot.02, debug.root.02)
+
+
+[OutputFiles]
+List=   (${config_UserChoices_JobName}_1y_scalar.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_scalar.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_T.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_T.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_U.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_U.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_V.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_V.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_W.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_W.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_diaptr_T_2D.nc  , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_diaptr_T.nc   , NONE          ),\
+        (${config_UserChoices_JobName}_1y_diaptr_T_3D.nc  , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_diaptr_T.nc   , NONE          ),\
+        (${config_UserChoices_JobName}_1y_diaptr_W.nc  , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_diaptr_W.nc   , NONE          ),\
+        (${config_UserChoices_JobName}_1y_trdtra.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_trdtra.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1m_scalar.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_scalar.nc     , Post_1M_scalar),\
+        (${config_UserChoices_JobName}_1m_grid_T.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_T.nc     , Post_1M_grid_T),\
+        (${config_UserChoices_JobName}_1m_grid_U.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_U.nc     , Post_1M_grid_U),\
+        (${config_UserChoices_JobName}_1m_grid_V.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_V.nc     , Post_1M_grid_V),\
+        (${config_UserChoices_JobName}_1m_grid_W.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_W.nc     , Post_1M_grid_W),\
+        (${config_UserChoices_JobName}_1m_diaptr_T_2D.nc  , ${R_OUT_OCE_O_M}/${PREFIX}_1M_diaptr_T_2D.nc   , NONE),\
+        (${config_UserChoices_JobName}_1m_diaptr_T_3D.nc  , ${R_OUT_OCE_O_M}/${PREFIX}_1M_diaptr_T_3D.nc   , NONE),\
+        (${config_UserChoices_JobName}_1m_diaptr_W.nc  , ${R_OUT_OCE_O_M}/${PREFIX}_1M_diaptr_W.nc   , Post_1M_diaptr_W),\
+        (${config_UserChoices_JobName}_1m_strait_oce.nc , ${R_OUT_OCE_O_M}/${PREFIX}_1M_strait_oce.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1m_trdtra.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_trdtra.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_T.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_T.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_U.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_U.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_V.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_V.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_W.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_W.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_trdtra.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_trdtra.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_grid_T.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_grid_T.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_grid_U.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_grid_U.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_grid_W.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_grid_W.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_SBC.nc       , ${R_OUT_OCE_O_D}/${PREFIX}_1D_SBC.nc        , NONE          ),\
+        (${config_UserChoices_JobName}_1d_scalar.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_scalar.nc     , NONE          ),\
+        (mesh_mask.nc     , ${R_OUT_OCE_O}/${config_UserChoices_JobName}_mesh_mask.nc                , NONE          ),\
+        (runoffs.nc       , ${R_OUT_OCE_O}/${config_UserChoices_JobName}_runoffs.nc                  , NONE          ),\
+        (damping.coeff.nc , ${R_OUT_OCE_O_D}/${PREFIX}_damping.coeff.nc                              , NONE          ),\
+        (output.abort.nc  , ${R_OUT_OCE_D}/${PREFIX}_output.abort.nc                                 , NONE          ),\
+        (output.init.nc   , ${R_OUT_OCE_O_I}/${config_UserChoices_JobName}_${PeriodDateBegin}_output.init.nc,NONE    )
+
+# Monthly analysis
+
+[Post_1M_scalar]
+Patches = ()
+GatherWithInternal = (time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (scmastot, scvoltot, scsshtot, scsshste, scsshtst, sctemtot, scsaltot, ibgheat_tot, sbgheat_tot)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_grid_T]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (zos, tos, sos, mldr10_1, nshfls, rsntds, rsds, friver, hc300, wfo)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (e3t, thetao, so)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_grid_U]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, depthu, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (tauuo)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (e3u, uocetr_eff)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_grid_V]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, depthv, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (tauvo)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (e3v, vocetr_eff)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_grid_W]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ( )
+ChunckJob2D = NONE
+TimeSeriesVars3D = ( )
+ChunckJob3D = 100Y
+Seasonal=OFF
+
+[Post_1M_diaptr_W]
+Patches = ()
+GatherWithInternal = (nav_lat, depthw, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (msftyz_glo, msftyz_atl, msftyz_ind)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/opa9.card.bak
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/opa9.card.bak	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/opa9.card.bak	(revision 5899)
@@ -0,0 +1,152 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+ORCA_version=${config_UserChoices_ORCA_version:-ORCA2.4}
+mesh_mask= y
+Reproducibility_after_restart= n
+OutputLevel=2
+
+[InitialStateFiles]
+List=	()
+
+[BoundaryFiles]
+List=	()
+ListNonDel= (/ccc/work/cont003/gencmip6/lebasn/INPUT/VLR/IPSLCM6_9695_ORCA2.3/ORCA2.3_ClosedSeas_domain_cfg.nc, domain_cfg.nc ), \
+          (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/runoff_core_monthly_ORCA2.nc, runoff_core_monthly.nc),\
+          (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_geothermal_heating.nc, geothermal_heating.nc),\
+	    (${R_IN}/OCE/NEMO/FORCINGS/COREII/weights_core_orca2_bilinear_noc.nc, weights_bilinear.nc), \
+            (${R_IN}/OCE/NEMO/FORCINGS/COREII/weights_core_orca2_bicubic_noc.nc , weights_bicubic.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_coordinates.nc, coordinates.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_coordinates_xios.nc, coordinates_xios.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_maskMFO.nc, maskMFO.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_resto.nc, resto.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_subbasins.nc , subbasins.nc    ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_mixing_power_bot.nc, mixing_power_bot.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_mixing_power_pyc.nc, mixing_power_pyc.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_mixing_power_cri.nc, mixing_power_cri.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_decay_scale_bot.nc, decay_scale_bot.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_decay_scale_cri.nc, decay_scale_cri.nc),\
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_sali_ref_clim_monthly.nc, sali_ref_clim_monthly.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/${ORCAGRID}_eddy_viscosity_3D.nc, eddy_viscosity_3D.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/conservative_temperature_WOA13_decav_clim_ORCA2.nc, conservative_temperature_WOA13_decav_Reg1L75_clim.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/potT_PHC3WOA_ORCA2.nc, data_1m_potential_temperature_nomask.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/Salt_corr_PHC3WOA09_ORCA2.nc, data_1m_salinity_nomask.nc), \
+	    (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/sst_PHC3WOA_ORCA2.nc, sst_data.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/sss_corr_PHC3WOA09_ORCA2.nc, sss_data.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/OPA/chlorophyll_ORCA2.nc, chlorophyll.nc)
+
+[SmoothFiles]
+List=	()
+
+[ParametersFiles]
+List=   (${MODIPSL}/modeles/NEMO/cfgs/SHARED/namelist_ref           , namelist_ref        ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/domain_def_nemo.xml    , domain_def_nemo.xml ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/axis_def_nemo.xml      , axis_def_nemo.xml   ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/grid_def_nemo.xml      , grid_def_nemo.xml  ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/field_def_nemo-oce.xml , field_def_nemo-oce.xml  ), \
+        (${SUBMIT_DIR}/../SOURCES/NEMO/file_def_nemo-oce.xml        , file_def_nemo-oce.xml ), \
+        (${SUBMIT_DIR}/../SOURCES/NEMO/context_nemo.xml             , context_nemo.xml ), \
+        (${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE}_cfg              , namelist_cfg )
+
+
+
+[RestartFiles]
+List=	(${config_UserChoices_JobName}_${NEMO_END}_restart.nc,  restart.nc, restartopa.nc)
+
+[OutputText]
+List=   (ocean.output, run.stat, namelist, output.namelist.*, context_nemo.xml, axis_def_nemo.xml, grids_def_nemo.xml, field_def_nemo.xml, domain_def_nemo.xml, out_opa.xx.out, out_opa.xx.err, debug_notroot.02, debug.root.02)
+
+
+[OutputFiles]
+List=   (${config_UserChoices_JobName}_1y_scalar.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_scalar.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_T.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_T.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_U.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_U.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_V.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_V.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_grid_W.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_grid_W.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1y_diaptr_T_2D.nc  , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_diaptr_T.nc   , NONE          ),\
+        (${config_UserChoices_JobName}_1y_diaptr_T_3D.nc  , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_diaptr_T.nc   , NONE          ),\
+        (${config_UserChoices_JobName}_1y_diaptr_W.nc  , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_diaptr_W.nc   , NONE          ),\
+        (${config_UserChoices_JobName}_1y_trdtra.nc    , ${R_OUT_OCE_O_Y}/${PREFIX}_1Y_trdtra.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1m_scalar.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_scalar.nc     , Post_1M_scalar),\
+        (${config_UserChoices_JobName}_1m_grid_T.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_T.nc     , Post_1M_grid_T),\
+        (${config_UserChoices_JobName}_1m_grid_U.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_U.nc     , Post_1M_grid_U),\
+        (${config_UserChoices_JobName}_1m_grid_V.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_V.nc     , Post_1M_grid_V),\
+        (${config_UserChoices_JobName}_1m_grid_W.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_grid_W.nc     , Post_1M_grid_W),\
+        (${config_UserChoices_JobName}_1m_diaptr_T_2D.nc  , ${R_OUT_OCE_O_M}/${PREFIX}_1M_diaptr_T_2D.nc   , NONE),\
+        (${config_UserChoices_JobName}_1m_diaptr_T_3D.nc  , ${R_OUT_OCE_O_M}/${PREFIX}_1M_diaptr_T_3D.nc   , NONE),\
+        (${config_UserChoices_JobName}_1m_diaptr_W.nc  , ${R_OUT_OCE_O_M}/${PREFIX}_1M_diaptr_W.nc   , Post_1M_diaptr_W),\
+        (${config_UserChoices_JobName}_1m_strait_oce.nc , ${R_OUT_OCE_O_M}/${PREFIX}_1M_strait_oce.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1m_trdtra.nc    , ${R_OUT_OCE_O_M}/${PREFIX}_1M_trdtra.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_T.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_T.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_U.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_U.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_V.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_V.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_grid_W.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_grid_W.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_5d_trdtra.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_5D_trdtra.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_grid_T.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_grid_T.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_grid_U.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_grid_U.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_grid_W.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_grid_W.nc     , NONE          ),\
+        (${config_UserChoices_JobName}_1d_SBC.nc       , ${R_OUT_OCE_O_D}/${PREFIX}_1D_SBC.nc        , NONE          ),\
+        (${config_UserChoices_JobName}_1d_scalar.nc    , ${R_OUT_OCE_O_D}/${PREFIX}_1D_scalar.nc     , NONE          ),\
+        (mesh_mask.nc     , ${R_OUT_OCE_O}/${config_UserChoices_JobName}_mesh_mask.nc                , NONE          ),\
+        (runoffs.nc       , ${R_OUT_OCE_O}/${config_UserChoices_JobName}_runoffs.nc                  , NONE          ),\
+        (damping.coeff.nc , ${R_OUT_OCE_O_D}/${PREFIX}_damping.coeff.nc                              , NONE          ),\
+        (output.abort.nc  , ${R_OUT_OCE_D}/${PREFIX}_output.abort.nc                                 , NONE          ),\
+        (output.init.nc   , ${R_OUT_OCE_O_I}/${config_UserChoices_JobName}_${PeriodDateBegin}_output.init.nc,NONE    )
+
+# Monthly analysis
+
+[Post_1M_scalar]
+Patches = ()
+GatherWithInternal = (time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (scmastot, scvoltot, scsshtot, scsshste, scsshtst, sctemtot, scsaltot, ibgheat_tot, sbgheat_tot)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_grid_T]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (zos, tos, sos, mldr10_1, nshfls, rsntds, rsds, friver, hc300, wfo)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (e3t, thetao, so)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_grid_U]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, depthu, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (tauuo)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (e3u, uocetr_eff)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_grid_V]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, depthv, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (tauvo)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (e3v, vocetr_eff)
+ChunckJob3D = 100Y
+Seasonal=ON
+
+[Post_1M_grid_W]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ( )
+ChunckJob2D = NONE
+TimeSeriesVars3D = ( )
+ChunckJob3D = 100Y
+Seasonal=OFF
+
+[Post_1M_diaptr_W]
+Patches = ()
+GatherWithInternal = (nav_lat, depthw, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (msftyz_glo, msftyz_atl, msftyz_ind)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/orchidee.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/orchidee.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/orchidee.card	(revision 5899)
@@ -0,0 +1,85 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+# The variable DefSuffix gives the suffix of the orchidee.def file to be used.
+# By default the file orchidee.def_CWRR will be selected.
+DefSuffix=CWRR
+
+# VEGET_UPDATE_at_start=y : orchidee.driver will set VEGET_UPDATE=1Y at the first cumul period when starting a new simulation. 
+#                           After the first period, VEGET_UPDATE will be set according to the choice done below.  
+VEGET_UPDATE_at_start=n
+
+# VEGET_UPDATE=0Y : default, do not update the vegetation and woodharvest file except if starting without restart file
+# VEGET_UPDATE=1Y : update the vegetation and woodharvest file 1st of January each year
+VEGET_UPDATE=0Y
+
+# Specify output level for output files
+# Only the files sechiba_history.nc, sechiba_out_2.nc and sechiba_history_4dim.nc can be set here.
+# output_level_filename=0     : lowest level writing only variables needed for the monitoring
+# output_level_filename=12    : highest level which will output all variables
+# output_level_filename=NONE  : deactivate the file
+output_level_sechiba_history = 2
+output_level_sechiba_out_2 = NONE
+output_level_sechiba_history_4dim = NONE
+
+# Specify output frequency for each file [1y, 1mo, 1d, 10800s, 1ts]
+# Settings using WriteFrequency in config.card is not longer used
+output_freq_sechiba_history = 1mo
+output_freq_sechiba_out_2 = 1d
+output_freq_sechiba_history_4dim = 1d
+
+
+[InitialStateFiles]
+List=	(${R_IN}/SRF/soils_param.nc, . ), \
+	(${R_IN}/SRF/reftemp.nc, . ), \
+	(${R_IN}/SRF/routing.nc, . ), \
+        (${R_IN}/SRF/albedo/alb_bg_modisopt_2D_ESA_v2.nc, alb_bg.nc ), \
+        (${R_IN}/SRF/cartepente2d_15min.nc, .)
+
+[BoundaryFiles]
+List= ()
+ListNonDel= (${R_IN}/SRF/PFTMAPS/CMIP6/ESA-LUH2v2/historical/15PFT.v1/PFTmap_2000.nc, PFTmap.nc),\
+            (${R_IN}/SRF/WOODHARVEST/LUH2v2/historical/woodharvest_2000.nc,      woodharvest.nc)
+
+
+[SmoothFiles]
+List= ()
+
+[ParametersFiles]
+List=	(${SUBMIT_DIR}/PARAM/orchidee.def_${DefSuffix}, orchidee.def)   ,\
+    (${SUBMIT_DIR}/PARAM/ping_orchidee.xml, . )                       ,\
+	(${MODIPSL}/modeles/ORCHIDEE/src_xml/file_def_orchidee.xml, .)  ,\
+	(${MODIPSL}/modeles/ORCHIDEE/src_xml/context_input_orchidee.xml, .) ,\
+	(${MODIPSL}/modeles/ORCHIDEE/src_xml/context_orchidee.xml, .)   ,\
+	(${MODIPSL}/modeles/ORCHIDEE/src_xml/field_def_orchidee.xml, .)
+
+[RestartFiles]
+List=	(sechiba_rest_out.nc, sechiba_rest.nc, sechiba_rest_in.nc)
+
+[OutputText]
+List=   (orchidee.def, used_orchidee.def, iodef.xml, context_orchidee.xml, field_def_orchidee.xml, file_def_orchidee.xml, context_input_orchidee.xml, river_desc.nc)
+
+[OutputFiles]
+List=   (sechiba_history.nc,   ${R_OUT_SRF_O_M}/${PREFIX}_1M_sechiba_history.nc, Post_1M_sechiba_history), \
+        (sechiba_history_4dim.nc,${R_OUT_SRF_O_M}/${PREFIX}_1M_sechiba_history_4dim.nc, NONE), \
+        (sechiba_out_2.nc,     ${R_OUT_SRF_O_H}/${PREFIX}_HF_sechiba_out_2.nc,   NONE)
+
+[Post_1M_sechiba_history]
+Patches = ()
+GatherWithInternal = (lon, lat, time_counter, Areas, Contfrac, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (nobiofrac, alb_nir, alb_vis, evap, fluxlat, fluxsens, rain, runoff, snow, snownobio, snowf, frac_snow, subli, tair, temp_sol, drainage, mrsos, mrso, TWBR, riverflow, coastalflow, DelSoilMoist_daily, DelIntercept_daily, DelSWE_daily, delstock_routing_daily, LAImean, transpir, evapnu, lwdown, swdown, t2m, gppCrop, rhCrop)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (lai, maxvegetfrac, vegetfrac, nee, gpp, growth_resp, hetero_resp, humrel, inter, maint_resp, npp, precisol)
+ChunckJob3D = NONE
+Seasonal = ON
+
+[Post_HF_sechiba_out_2]
+Patches = ()
+GatherWithInternal = (lon, lat, time_counter, Areas, Contfrac, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ()
+ChunckJob2D = NONE
+TimeSeriesVars3D = (snowdz, snowtemp, snowrho)
+ChunckJob3D = NONE
+Seasonal = OFF
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/pisces.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/pisces.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/pisces.card	(revision 5899)
@@ -0,0 +1,107 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+age=y
+cfc11=n
+cfc12=n
+OutputLevel=2
+
+[InitialStateFiles]
+List= ()
+
+[BoundaryFiles]
+List=	()
+
+ListNonDel= (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/TDIC_GLODAPv2.1_annual_r360x180xl31.nc, data_DIC_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/TALK_GLODAPv2.1_annual_r360x180xl31.nc , data_ALK_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/O2_WOA2009_monthly_r360x180xl31.nc     , data_OXY_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/PO4_WOA2009_monthly_r360x180xl31.nc    , data_PO4_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/Si_WOA2009_monthly_r360x180xl31.nc     , data_SIL_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/NO3_WOA2009_monthly_r360x180xl31.nc    , data_NO3_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/DOC_PISCES_monthly_r360x180xl31.nc     , data_DOC_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/Fer_PISCES_monthly_r360x180xl31.nc     , data_FER_nomask.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/weights_3D_r360x180_orca2_bilinear.nc    , weights_3D_r360x180_bilin.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/Dust_inca_LOI/DUST_INCA_LOI6012-histAER_1M_2000.nc, dust.orca.nc       ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/Dust_inca_LOI/weights_LMD144142_ORCA2_bilinear.nc , weights_lmd144142_bilin.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/Ndep_input4MIPs/Ndep_input4MIPs_surfaceFluxes_CMIP_NCAR-CCMI-2-0_gn_200001-200012-clim.nc , ndeposition.orca.nc ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/Ndep_input4MIPs/weights_CMIP_NCAR-CCMI_ORCA2_bilinear.nc, weights_2d_bilin.nc), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/pmarge_etopo_${ORCAGRID}.nc                    , bathy.orca.nc      ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/river_global_news_${ORCAGRID}.nc               , river.orca.nc      ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/par_fraction_gewex_clim90s00s_${ORCAGRID}.nc   , par.orca.nc        ), \
+            (${R_IN}/OCE/NEMO/${opa9_UserChoices_ORCA_version}/PISCES/solubility1_T62-${ORCAGRID}_Mahowald.nc         , solubility.orca.nc ), \
+            (${R_IN}/OCE/NEMO/FORCINGS/GHG/CFCs_CDIAC.dat                      , CFCs_CDIAC.dat     ), \
+            (${R_IN}/OCE/NEMO/FORCINGS/GHG/CO2_OMIP6_1600_2014.txt             , atcco2.txt         )
+
+										  
+[SmoothFiles]
+List=  ()
+
+[ParametersFiles]
+List=   (${MODIPSL}/modeles/NEMO/cfgs/SHARED/namelist_top_ref            , namelist_top_ref), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/namelist_pisces_ref         , namelist_pisces_ref), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/namelist_trc_ref            , namelist_trc_ref   ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/field_def_nemo-pisces.xml   , field_def_nemo-pisces.xml  ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/field_def_nemo-innerttrc.xml, field_def_nemo-innerttrc.xml), \
+     	(${SUBMIT_DIR}/PARAM/namelist_top_${RESOL_OCE}_cfg               , namelist_top_cfg           ), \
+        (${SUBMIT_DIR}/PARAM/namelist_pisces_cfg                         , namelist_pisces_cfg        ), \
+        (${SUBMIT_DIR}/PARAM/namelist_trc_cfg                            , namelist_trc_cfg           ), \
+        (${SUBMIT_DIR}/../SOURCES/NEMO/file_def_nemo-pisces.xml          , file_def_nemo-pisces.xml   )
+
+
+[RestartFiles]
+List=	(${config_UserChoices_JobName}_${NEMO_END}_restart_trc.nc,  restart_trc.nc, restart_trc.nc)
+
+[OutputText]
+List=   (namelist_top_ref, namelist_top_cfg,  namelist_pisces_ref, namelist_pisces_cfg, tracer.stat)
+
+[OutputText]
+List=   (namelist_top_ref, namelist_top_cfg, namelist_pisces_ref, namelist_pisces_cfg, tracer.stat)
+
+
+[OutputFiles]
+List=   (${config_UserChoices_JobName}_1y_ptrc_T.nc        , ${R_OUT_MBG_O_Y}/${PREFIX}_1Y_ptrc_T.nc    , NONE ) , \
+        (${config_UserChoices_JobName}_1y_diad_T.nc        , ${R_OUT_MBG_O_Y}/${PREFIX}_1Y_diad_T.nc    , NONE ) , \
+        (${config_UserChoices_JobName}_1y_Age.nc           , ${R_OUT_MBG_O_Y}/${PREFIX}_1Y_Age.nc       , NONE ) , \
+        (${config_UserChoices_JobName}_1y_CFC11.nc         , ${R_OUT_MBG_O_Y}/${PREFIX}_1Y_CFC11.nc     , NONE ) , \
+        (${config_UserChoices_JobName}_1y_CFC12.nc         , ${R_OUT_MBG_O_Y}/${PREFIX}_1Y_CFC12.nc     , NONE ) , \
+        (${config_UserChoices_JobName}_1m_bioscalar.nc     , ${R_OUT_MBG_O_M}/${PREFIX}_1M_bioscalar.nc , Post_1M_bioscalar) , \
+        (${config_UserChoices_JobName}_1m_ptrc_T.nc        , ${R_OUT_MBG_O_M}/${PREFIX}_1M_ptrc_T.nc    , NONE   ) , \
+        (${config_UserChoices_JobName}_1m_diad_T.nc        , ${R_OUT_MBG_O_M}/${PREFIX}_1M_diad_T.nc    , NONE   ) , \
+        (${config_UserChoices_JobName}_1d_bioscalar.nc     , ${R_OUT_MBG_O_D}/${PREFIX}_1D_bioscalar.nc , NONE)
+
+[Post_1D_bioscalar]
+Patches = ()
+GatherWithInternal = (time_counter, time_instant, time_instant_bounds)
+TimeSeriesVars2D = (pno3tot, ppo4tot, psiltot, palktot, pfertot, tcflx, tcflxcum, tcexp, tintpp, tnfix, tdenit)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_bioscalar]
+Patches = ()
+GatherWithInternal = (time_counter, time_instant, time_instant_bounds)
+TimeSeriesVars2D = (pno3tot, ppo4tot, psiltot, palktot, pfertot, tcflx, tcflxcum, tcexp, tintpp, tnfix, tdenit)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=OFF
+
+[Post_1M_ptrc_T]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = ()
+ChunckJob2D = 50Y
+TimeSeriesVars3D = (Alkalini, NCHL, DCHL, DIC, Fer, NO3, O2, PO4, Si)
+ChunckJob3D = 50Y
+Seasonal=OFF
+
+[Post_1M_diad_T]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (Cflx, Dpco2, EPC100, INTPP)
+ChunckJob2D = 50Y
+TimeSeriesVars3D = (TPP)
+ChunckJob3D = 50Y
+Seasonal=OFF
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/si3.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/si3.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/si3.card	(revision 5899)
@@ -0,0 +1,44 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+Init_From_File=0
+OutputLevel=10
+
+
+[InitialStateFiles]
+List=	()
+
+[BoundaryFiles]
+List=   ()
+ListNonDel= ()
+
+
+[SmoothFiles]
+List=	()
+
+[ParametersFiles]
+List=   (${MODIPSL}/modeles/NEMO/cfgs/SHARED/namelist_ice_ref      , namelist_ice_ref ), \
+        (${MODIPSL}/modeles/NEMO/cfgs/SHARED/field_def_nemo-ice.xml, field_def_nemo-ice.xml ),\
+        (${SUBMIT_DIR}/PARAM/namelist_ice_${RESOL_OCE}_cfg, namelist_ice_cfg ), \
+        (${SUBMIT_DIR}/../SOURCES/NEMO/file_def_nemo-ice_${RESOL_OCE}.xml, file_def_nemo-ice.xml   )
+
+
+[RestartFiles]
+List=   (${config_UserChoices_JobName}_${NEMO_END}_restart_ice.nc, restart_icemod.nc, restart_ice_in.nc)
+
+[OutputText]
+List=   (namelist_ice)
+
+[OutputFiles]
+List=   (${config_UserChoices_JobName}_1m_icemod.nc     , ${R_OUT_ICE_O_M}/${PREFIX}_1M_icemod.nc    , Post_1M_icemod ),\
+        (${config_UserChoices_JobName}_1m_strait_ice.nc , ${R_OUT_ICE_O_M}/${PREFIX}_1M_strait_ice.nc, NONE           )
+
+[Post_1M_icemod]
+Patches = ()
+GatherWithInternal = (nav_lon, nav_lat, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (snthic, sithic, sivolu, snvolu, siconc, sisali, sitemp, sistem, siheco, snheco, sivelo, sishea, sfxice)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal=ON
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/stomate.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/stomate.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/stomate.card	(revision 5899)
@@ -0,0 +1,59 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+
+# Specify output level for output files
+# Only the files stomate_history.nc and stomate_ipcc_history.nc can be set here.
+# output_level_filname=0     : lowest level writing only variables needed for the monitoring
+# output_level_filname=1     : highest level which will output all variables
+# output_level_filname=NONE  : deactivate the file
+output_level_stomate_history = 0 
+output_level_stomate_ipcc_history = 0
+
+# Specify output frequency for each file [1y, 1mo, 1d]
+# Settings using WriteFrequency in config.card are not longer used
+output_freq_stomate_history = 1mo
+output_freq_stomate_ipcc_history = 1mo
+
+
+[InitialStateFiles]
+List=   ()
+
+[BoundaryFiles]
+List=   ()
+ListNonDel= ()
+
+[SmoothFiles]
+List=   ()
+
+[ParametersFiles]
+List=   ()
+
+[RestartFiles]
+List=   (stomate_rest_out.nc, stomate_rest.nc, stomate_rest_in.nc)
+
+[OutputText]
+List=   ()
+
+[OutputFiles]
+List=   (stomate_history.nc,      ${R_OUT_SBG_O_M}/${PREFIX}_1M_stomate_history.nc,      Post_1M_stomate_history),    \
+        (stomate_ipcc_history.nc, ${R_OUT_SBG_O_M}/${PREFIX}_1M_stomate_ipcc_history.nc, Post_1M_stomate_ipcc_history)
+
+[Post_1M_stomate_history]
+Patches = ()
+GatherWithInternal = (lon, lat, Areas, CONTFRAC, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (CONVFLUX,CFLUX_PROD10,CFLUX_PROD100,HARVEST_ABOVE,WOOD_HARVEST)
+ChunckJob2D = NONE
+TimeSeriesVars3D = (VEGET_COV_MAX,NPP,GPP,HET_RESP,MAINT_RESP,GROWTH_RESP,TOTAL_M,TOTAL_BM_LITTER,TOTAL_SOIL_CARB,WOOD_HARVEST_PFT)
+ChunckJob3D = NONE
+Seasonal = ON
+
+[Post_1M_stomate_ipcc_history]
+Patches = ()
+GatherWithInternal = (lon, lat, Areas, CONTFRAC, time_counter, time_centered, time_centered_bounds)
+TimeSeriesVars2D = (cProduct, lai, gpp, ra, fLuc, nbp, fVegLitter, fLitterSoil, cLeaf, cWood, cRoot, cMisc, cLitterAbove, cLitterBelow, cSoilFast, cSoilMedium, cSoilSlow, cMassVariation, treeFracPrimDec, treeFracPrimEver, c3PftFrac, c4PftFrac, rGrowth, rMaint, nppLeaf, nppWood, nppRoot, nep, fWoodharvest, cVegCrop, cLitterCrop, cSoilCrop, nppCrop, raCrop)
+ChunckJob2D = NONE
+TimeSeriesVars3D = ()
+ChunckJob3D = NONE
+Seasonal = ON
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/xios.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/xios.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/COMP/xios.card	(revision 5899)
@@ -0,0 +1,29 @@
+[Compatibility]
+libIGCM=1.0
+
+[UserChoices]
+
+[InitialStateFiles]
+List=	()
+
+[BoundaryFiles]
+List=	()
+ListNonDel= ()
+
+[SmoothFiles]
+List=	()
+
+[ParametersFiles]
+List=	()
+
+[RestartFiles]
+List=  (NONE)
+
+[OutputText]
+List=   (out_xios.x.err.*, out_xios.x.out.*, debug_notroot.03, debug.root.03)
+
+[OutputFiles]
+List=   ()
+
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/inca.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/inca.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/inca.driver	(revision 5899)
@@ -0,0 +1,459 @@
+#!/bin/ksh
+
+#D- Driver du script pour INCA
+#-----------------------------------------------------------------
+function INCA_sed_replace
+{
+    IGCM_debug_PushStack "INCA_sed_replace"
+
+    sed -e "s/${2}/${3}/" ${1} > ${1}.tmp
+    RET=$?
+    echo "INCA_sed : ${1} ${2} ${3}"
+    \mv ${1}.tmp ${1}
+
+    IGCM_debug_PopStack "INCA_sed_replace"
+    return $RET
+}
+#-----------------------------------------------------------------
+function CHM_Initialize
+{
+    IGCM_debug_PushStack "CHM_Initialize"
+
+    if [ X$ResolAtm != X ] ; then
+	# ResolAtm is set in config.card
+	RESOL_ATM_3D=${ResolAtm}
+	RESOL_ATM_Z=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $3}' )
+	RESOL_ATM_X=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $1}' )
+	RESOL_ATM_Y=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $2}' )
+
+	RESOL_CHM=${RESOL_ATM_X}${RESOL_ATM_Y}-L${RESOL_ATM_Z}
+    elif [ -f ${SUBMIT_DIR}/../.resol ] ; then
+	[ -f ${SUBMIT_DIR}/../.resol ] && eval $(grep RESOL_ATM_3D ${SUBMIT_DIR}/../.resol) || RESOL_ATM_3D=96x95x19
+	RESOL_CHM_Z=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $3}' | awk "-F-" '{print $1}')
+    else
+	IGCM_debug_Exit "ResolAtm is not set in config.card and the .resol file does not exist."
+	IGCM_debug_Verif_Exit
+    fi
+
+    echo 'resol chimie', $RESOL_CHM
+    CHEM=${ConfChem}
+    echo "INCA Tag : LMDZ-INCA" ${config_UserChoices_TagName}
+
+    ##- LMDZ physics version
+    ##  Read LMDZ_Physics option in lmdz.card, if not present take default value AP (old physics) 
+    if [ ! X${lmdz_UserChoices_LMDZ_Physics} = X ] ; then
+	LMDZ_Physics=${lmdz_UserChoices_LMDZ_Physics}
+    else
+	LMDZ_Physics=AP
+    fi
+    echo LMDZ physics version : ${LMDZ_Physics}
+
+
+
+
+    IGCM_debug_PopStack "CHM_Initialize"
+}
+
+#-----------------------------------------------------------------
+function CHM_Update
+{
+    IGCM_debug_PushStack "CHM_Update"
+
+    if [ X${inca_UserChoices_output_frequency_chem} = X ] || [ X${inca_UserChoices_output_frequency_chem} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry name inca1d_chem
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_chem} = X1d ] || [ X${inca_UserChoices_output_frequency_chem} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry name inca${inca_UserChoices_output_frequency_chem}_chem
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry output_freq ${inca_UserChoices_output_frequency_chem}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry name inca1d_chem
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry output_freq ${inca_UserChoices_output_frequency_chem}
+
+	fi
+    fi
+
+    if [ X${inca_UserChoices_output_frequency_emi} = X ] || [ X${inca_UserChoices_output_frequency_emi} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions name inca1d_emi
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_emi} = X1d ] || [ X${inca_UserChoices_output_frequency_emi} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions name inca${inca_UserChoices_output_frequency_emi}_emi
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions output_freq ${inca_UserChoices_output_frequency_emi}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions name inca1d_emi
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions output_freq ${inca_UserChoices_output_frequency_emi}
+	fi
+    fi
+
+
+    if [ X${inca_UserChoices_output_frequency_species} = X ] || [ X${inca_UserChoices_output_frequency_species} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species name inca1d_species
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_species} = X1d ] || [ X${inca_UserChoices_output_frequency_species} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species name inca${inca_UserChoices_output_frequency_species}_species
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species output_freq ${inca_UserChoices_output_frequency_species}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species name inca1d_species
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species output_freq ${inca_UserChoices_output_frequency_species}
+	fi
+    fi
+
+
+    if [ X${inca_UserChoices_output_frequency_forcage} = X ] || [ X${inca_UserChoices_output_frequency_forcage} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage name inca1d_forcage
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_forcage} = X1d ] || [ X${inca_UserChoices_output_frequency_forcage} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage name inca${inca_UserChoices_output_frequency_forcage}_forcage
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage output_freq ${inca_UserChoices_output_frequency_forcage}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage name inca1d_forcage
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage output_freq ${inca_UserChoices_output_frequency_forcage}
+	fi
+    fi
+
+
+    if [ X${inca_UserChoices_output_frequency_aero} = X ] || [ X${inca_UserChoices_output_frequency_aero} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero name inca1d_aero
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_aero} = X1d ] || [ X${inca_UserChoices_output_frequency_aero} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero name inca${inca_UserChoices_output_frequency_aero}_aero
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero output_freq ${inca_UserChoices_output_frequency_aero}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero name inca1d_aero
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero output_freq ${inca_UserChoices_output_frequency_aero}
+	fi
+    fi
+
+
+    if [ X${inca_UserChoices_output_frequency_dep} = X ] || [ X${inca_UserChoices_output_frequency_dep} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel name inca1d_dep
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_dep} = X1d ] || [ X${inca_UserChoices_output_frequency_dep} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel name inca${inca_UserChoices_output_frequency_dep}_dep
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel output_freq ${inca_UserChoices_output_frequency_dep}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel name inca1d_dep
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel output_freq ${inca_UserChoices_output_frequency_dep}
+	fi
+    fi
+
+    if [ X${inca_UserChoices_output_frequency_washrate} = X ] || [ X${inca_UserChoices_output_frequency_washrate} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout name inca1d_washrate
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_washrate} = X1d ] || [ X${inca_UserChoices_output_frequency_washrate} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout name inca${inca_UserChoices_output_frequency_washrate}_washrate
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout output_freq ${inca_UserChoices_output_frequency_washrate}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout name inca1d_washrate
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout output_freq ${inca_UserChoices_output_frequency_washrate}
+	fi
+    fi
+
+    if [ X${inca_UserChoices_output_frequency_veget} = X ] || [ X${inca_UserChoices_output_frequency_veget} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation name inca1d_veget
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_veget} = X1d ] || [ X${inca_UserChoices_output_frequency_veget} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation name inca${inca_UserChoices_output_frequency_veget}_veget
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation output_freq ${inca_UserChoices_output_frequency_veget}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation name inca1d_veget
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation output_freq ${inca_UserChoices_output_frequency_veget}
+	fi
+    fi
+
+
+    if [ X${inca_UserChoices_output_frequency_reacflux} = X ] || [ X${inca_UserChoices_output_frequency_reacflux} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux name inca1d_reacflux
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_reacflux} = X1d ] || [ X${inca_UserChoices_output_frequency_reacflux} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux name inca${inca_UserChoices_output_frequency_reacflux}_reacflux
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux output_freq ${inca_UserChoices_output_frequency_reacflux}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux name inca1d_reacflux
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux output_freq ${inca_UserChoices_output_frequency_reacflux}
+	fi
+    fi
+
+
+    if [ X${inca_UserChoices_output_frequency_phtrate} = X ] || [ X${inca_UserChoices_output_frequency_phtrate} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate name inca1d_phtrate
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_phtrate} = X1d ] || [ X${inca_UserChoices_output_frequency_phtrate} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate name inca${inca_UserChoices_output_frequency_phtrate}_phtrate
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate output_freq ${inca_UserChoices_output_frequency_phtrate}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate name inca1d_phtrate
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml phtrate output_freq ${inca_UserChoices_output_frequency_phtrate}
+	fi
+    fi
+
+    if [ X${inca_UserChoices_output_frequency_ges} = X ] || [ X${inca_UserChoices_output_frequency_ges} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges name inca1d_ges
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_ges} = X1d ] || [ X${inca_UserChoices_output_frequency_ges} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges name inca${inca_UserChoices_output_frequency_ges}_ges
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges output_freq ${inca_UserChoices_output_frequency_ges}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges name inca1d_ges
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml ges output_freq ${inca_UserChoices_output_frequency_ges}
+	fi
+    fi
+
+    if [ X${inca_UserChoices_output_frequency_invariants} = X ] || [ X${inca_UserChoices_output_frequency_invariants} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants name inca1d_invariants
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_invariants} = X1d ] || [ X${inca_UserChoices_output_frequency_invariants} = X1mo ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants name inca${inca_UserChoices_output_frequency_invariants}_invariants
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants output_freq ${inca_UserChoices_output_frequency_invariants}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants name inca1d_invariants
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants output_freq ${inca_UserChoices_output_frequency_invariants}
+	fi
+    fi
+
+    if [ X${inca_UserChoices_output_frequency_aero_chem} = X ] || [ X${inca_UserChoices_output_frequency_aero_chem} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem name inca1d_aero_chem
+	IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem output_freq 1d
+	
+    else
+	if [ X${inca_UserChoices_output_frequency_aero_chem} = X1d ] || [ X${inca_UserChoices_output_frequency_aero_chem} = X1mo ] || [ X${inca_UserChoices_output_frequency_aero_chem} = X1ts ] ; then
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem name inca${inca_UserChoices_output_frequency_aero_chem}_aero_chem
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem output_freq ${inca_UserChoices_output_frequency_aero_chem}
+	else
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem enabled TRUE
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem name inca1ts_aero_chem
+	    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero_chem output_freq ${inca_UserChoices_output_frequency_aero_chem}
+	fi
+    fi
+
+    case ${CHEM} in 
+	AER)
+
+	    if [ X${LMDZ_Physics} = X"AP" ] ; then
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
+	    else
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
+	    fi
+	;;
+	DUSS)
+
+	    if [ X${LMDZ_Physics} = X"AP" ] ; then
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
+	    else
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
+	    fi
+	;;
+	NMHC) 
+
+	    IGCM_comp_modifyDefFile nonblocker run.def config_inca chem
+	    ;;
+	NMHC_AER)
+
+	    if [ X${LMDZ_Physics} = X"AP" ] ; then
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
+	    else
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
+	    fi
+	;;
+
+	NMHC_AER_S)
+
+	    if [ X${LMDZ_Physics} = X"AP" ] ; then
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
+	    else
+		IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
+	    fi
+	;;
+	GES)
+
+	    IGCM_comp_modifyDefFile nonblocker run.def config_inca chem
+	esac
+
+
+    # inca.def : Activate reading of 10m wind in files if LMDZ_10m_winds=n in inca.card
+    if [ ! X${inca_UserChoices_LMDZ_10m_winds} = X ] ; then
+	IGCM_comp_modifyDefFile nonblocker inca.def LMDZ_10m_winds  ${inca_UserChoices_LMDZ_10m_winds}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def LMDZ_10m_winds  n
+    fi
+
+
+    if [ ! X${inca_UserChoices_wind_parameter} = X ] ; then 
+	IGCM_comp_modifyDefFile nonblocker inca.def  tref ${inca_UserChoices_wind_parameter}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def  tref DEFAULT
+    fi
+
+    if [  X${inca_UserChoices_seasalt_corr} = X ] ; then
+    IGCM_comp_modifyDefFile nonblocker inca.def  ss_corr  DEFAULT
+    else
+    IGCM_comp_modifyDefFile nonblocker inca.def  ss_corr ${inca_UserChoices_seasalt_corr}
+    fi
+
+
+
+    # inca.def : choose write frequency for inca_avgr in inca.card
+    if [ ! X${inca_UserChoices_freq_write_chem} = X ] ; then
+	IGCM_comp_modifyDefFile nonblocker inca.def freq_write_chem  ${inca_UserChoices_freq_write_chem}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def  freq_write_chem  86400
+    fi
+
+    #inca.def : choose aerosol effect with feedback variable
+    if [ ! X${inca_UserChoices_feedb} = X ] ; then
+	IGCM_comp_modifyDefFile nonblocker inca.def  feedb  ${inca_UserChoices_feedb}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def feedb  0
+    fi
+    
+    #inca.def : choose coupled model with orchidee  
+    if [ ! X${inca_UserChoices_CoupOrchInca} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker inca.def CoupOrchInca ${inca_UserChoices_CoupOrchInca}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def CoupOrchInca n
+    fi
+
+    #inca.def : choose sedimentation schema 
+    if [ ! X${inca_UserChoices_multilayer_sedim} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker inca.def multilayer_sediment ${inca_UserChoices_multilayer_sedim}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def multilayer_sediment y
+    fi
+
+    #inca.def : choose calcul interactif des diagnostiques flux chimique ou non  
+    if [ ! X${inca_UserChoices_calcul_flux} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker inca.def calcul_flux ${inca_UserChoices_calcul_flux}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def calcul_flux n
+    fi
+
+    #inca.def : choose aircraft emission 
+    if [ ! X${inca_UserChoices_flag_plane} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker inca.def flag_plane ${inca_UserChoices_flag_plane}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def flag_plane 0
+    fi
+    
+    #inca.def : choose time interpolation for sflx.nc
+    if [ ! X${inca_UserChoices_emi_interp_time} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker inca.def emi_interp_time ${inca_UserChoices_emi_interp_time}
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def emi_interp_time 1
+    fi
+
+
+
+    #inca.def : choose which xml will be use (with group or no = cmip files) 
+    if [ X${inca_UserChoices_cmip_xml} = Xy ] ; then 
+	
+	IGCM_comp_modifyDefFile nonblocker inca.def  cmip_xml  y
+    else
+	IGCM_comp_modifyDefFile nonblocker inca.def  cmip_xml  n
+    fi
+	
+
+
+    # Add include of INCA context in iodef.xml
+    # In iodef.xml add on next line after "COMPONENT CONTEXT"
+    #  <context id="inca" src="./context_inca.xml"/>
+    echo '<context id="inca" src="./context_inca.xml"/>' > add.tmp
+    cp iodef.xml iodef.xml.tmp
+    sed -e "/COMPONENT CONTEXT/r add.tmp" \
+	iodef.xml.tmp > iodef.xml
+    rm iodef.xml.tmp add.tmp
+
+
+    # Add LongName as global attribute in XIOS output files (if LongName is not empty)
+    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
+	listfile=$(ls file_def*inca.xml)
+	echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
+	for file in ${listfile}
+	do
+	    cp ${file} ${file}.tmp
+	    sed -e "/<file id/r add.tmp" \
+		${file}.tmp > ${file}
+	    rm ${file}.tmp 
+	done
+	rm add.tmp
+    fi
+
+    IGCM_debug_PopStack "CHM_Update"
+}
+
+#-----------------------------------------------------------------
+function CHM_Finalize
+{
+    IGCM_debug_PushStack "CHM_Finalize"
+
+    echo FINALIZE CHM !!!
+#
+#    IGCM_sys_Mkdir ${R_OUT_EXE}
+#    cd ${MODIPSL}
+#    tar cf src_${config_UserChoices_JobName}.tar  modeles
+#    IGCM_sys_Mv src_${config_UserChoices_JobName}.tar ${R_OUT_EXE}/.
+#    cd -
+#
+
+    IGCM_debug_PopStack "CHM_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/lmdz.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/lmdz.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/lmdz.driver	(revision 5899)
@@ -0,0 +1,600 @@
+#!/bin/ksh
+#-----------------------------------------------------------------
+function ATM_Initialize
+{
+    IGCM_debug_PushStack "ATM_Initialize"
+
+    # Read the resolution from the variables ResolAtm set in config.card UserChoices section or from .resol file
+    if [ X$ResolAtm != X ] ; then
+	# ResolAtm is set in config.card
+	RESOL_ATM_3D=${ResolAtm}
+    elif [ -f ${SUBMIT_DIR}/../.resol ] ; then
+	# ResolAtm was not set in config.card, try to read .resol file
+	eval $(grep RESOL_ATM_3D ${SUBMIT_DIR}/../.resol) || RESOL_ATM_3D=96x95x39
+    else
+	IGCM_debug_Exit "ResolAtm is not set in config.card and the .resol file does not exist."
+	IGCM_debug_Verif_Exit
+    fi
+    
+    IGCM_debug_Print 1 "The atomsopheric resolution is ${RESOL_ATM_3D} " 
+
+    RESOL_ATM_Z=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $3}' )
+    RESOL_ATM_X=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $1}' )
+    RESOL_ATM_Y=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $2}' )
+    RESOL_ATM_XY="${RESOL_ATM_X}x${RESOL_ATM_Y}"
+    RESOL_ATM=LMD${RESOL_ATM_X}${RESOL_ATM_Y}
+
+    ##- LMDZ physics version
+    ##  Read LMDZ_Physics option in lmdz.card, if not present take default value AP (old physics) 
+    if [ ! X${lmdz_UserChoices_LMDZ_Physics} = X ] ; then
+	LMDZ_Physics=${lmdz_UserChoices_LMDZ_Physics}
+    else
+	LMDZ_Physics=AP
+    fi
+    echo LMDZ physics version : ${LMDZ_Physics}
+
+    ##- Create_etat0_limit version
+    ##  Define variable CREATE only if it is set in lmdz.card section UserChoices.
+    ##  This variable is only used in lmdz.card to choose input files.
+    if [ ! X${lmdz_UserChoices_CREATE} = X ] ; then
+	IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/COMP/lmdz.card UserChoices CREATE
+	CREATE=${lmdz_UserChoices_CREATE}
+	echo create_etat0_limit version : ${CREATE}
+    fi
+
+
+    ## - LMDZ choice of config.def file
+    ##   ConfType must be set in lmdz.card
+    ConfType=${lmdz_UserChoices_ConfType}
+
+    IGCM_debug_PopStack "ATM_Initialize"
+}
+
+#-----------------------------------------------------------------
+function ATM_Update
+{
+    IGCM_debug_PushStack "ATM_Update"
+
+    ##-- GHG forcing :
+    ##   If forcing file exist in run directory, read values for the current year 
+    ##   and set in config.def. If not use the default value set in config.def
+
+    # Read value for solaire from file SOLARANDVOLCANOES.txt. If file not existing, take DEFAULT value from file. 
+    IGCM_debug_Print 1 "Note that the solaire parameter is here below changed but it is only used by LMDZ for old physics(AP and NPv3.2)"
+    IGCM_debug_Print 1 "For newer physics with iflag_rrtm=1 and ok_suntime_rrtm=y, the solar constant is instead taken from solarforcing.nc file"
+    if [ -f SOLARANDVOLCANOES.txt ] ; then
+	value=`grep Annee_${year} SOLARANDVOLCANOES.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file SOLARANDVOLCANOES.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def solaire $value
+
+    # Read value for eccentricity from file Eccentricity.txt. If file not existing, take DEFAULT value from file.
+    if [ -f Eccentricity.txt ] ; then
+	value=`grep Annee_${year} Eccentricity.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file Eccentricity.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def R_ecc $value
+
+    # Read value for obliquity from file Obliquity.txt. If file not existing, take DEFAULT value from file.
+    if [ -f Obliquity.txt ] ; then
+	value=`grep Annee_${year} Obliquity.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file Obliquity.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def R_incl $value
+
+    # Read value for perihelie from file Perihelie.txt. If file not existing, take DEFAULT value from file.
+    if [ -f Perihelie.txt ] ; then
+	value=`grep Annee_${year} Perihelie.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file Perihelie.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def R_peri $value
+
+    # Read value for co2_ppm from file CO2.txt. If file not existing, take DEFAULT value from file. 
+    # Calculate co2_ppm_per as co2_ppm*4.
+    if [ -f CO2.txt ] ; then
+       	value=`grep Annee_${year} CO2.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file CO2.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+	value4=`grep Annee_${year} CO2.txt | awk -F= '{print $2 * 4}'`
+    else
+	value=DEFAULT
+	value4=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def co2_ppm $value
+    IGCM_comp_modifyDefFile nonblocker config.def co2_ppm_per $value4
+
+
+    # Read value for CH4_ppb from file CH4.txt. If file not existing, take DEFAULT value from file. 
+    if [ -f CH4.txt ] ; then
+	value=`grep Annee_${year} CH4.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file CH4.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def CH4_ppb $value
+
+
+    # Read value for N2O_ppb from file N2O.txt. If file not existing, take DEFAULT value from file. 
+    if [ -f N2O.txt ] ; then
+	value=`grep Annee_${year} N2O.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file N2O.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def N2O_ppb $value
+
+    # Read value for CFC11_ppt from file CFC11.txt. If file not existing, take DEFAULT value from file. 
+    if [ -f CFC11.txt ] ; then
+	value=`grep Annee_${year} CFC11.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file CFC11.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def CFC11_ppt $value
+
+
+    # Read value for CFC12_ppt from file CFC12.txt. If file not existing, take DEFAULT value from file. 
+    if [ -f CFC12.txt ] ; then
+	value=`grep Annee_${year} CFC12.txt | awk -F= '{print $2}'`
+	if [ X"${value}" = X ] ; then
+	    # The grep returned empty variable, stop execution
+	    IGCM_debug_Exit "The file CFC12.txt do not contain the current year."
+	    IGCM_debug_Verif_Exit
+	fi
+    else
+	value=DEFAULT
+    fi
+    IGCM_comp_modifyDefFile nonblocker config.def CFC12_ppt $value
+
+
+    ## Coupling Time Step : Take value of FreqCoupling set in oasis.card or if it is not set, take default value 86400
+    LMDZ_t_coupl=${oasis_UserChoices_FreqCoupling:-86400}
+    IGCM_debug_Print 3 "LMDZ_t_coupl "   ${LMDZ_t_coupl}
+    IGCM_comp_modifyDefFile nonblocker config.def t_coupl   ${LMDZ_t_coupl} 
+
+
+
+    ## Activate diagnostic output files and set output_level for each file
+
+    # histmth
+    if [ X${lmdz_UserChoices_output_level_histmth} = X ] || [ X${lmdz_UserChoices_output_level_histmth} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmth_lmdz.xml histmth enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmth_lmdz.xml histmth output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmth_lmdz.xml histmth enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmth_lmdz.xml histmth output_level ${lmdz_UserChoices_output_level_histmth} 
+    fi
+
+    # histday
+    if [ X${lmdz_UserChoices_output_level_histday} = X ] || [ X${lmdz_UserChoices_output_level_histday} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histday_lmdz.xml histday enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histday_lmdz.xml histday output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histday_lmdz.xml histday enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histday_lmdz.xml histday output_level ${lmdz_UserChoices_output_level_histday} 
+    fi
+
+    # histhf
+    if [ X${lmdz_UserChoices_output_level_histhf} = X ] || [ X${lmdz_UserChoices_output_level_histhf} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhf_lmdz.xml histhf enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhf_lmdz.xml histhf output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhf_lmdz.xml histhf enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhf_lmdz.xml histhf output_level ${lmdz_UserChoices_output_level_histhf} 
+    fi
+
+    # histmthNMC
+    if [ X${lmdz_UserChoices_output_level_histmthNMC} = X ] || [ X${lmdz_UserChoices_output_level_histmthNMC} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthNMC_lmdz.xml histmthNMC enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthNMC_lmdz.xml histmthNMC output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthNMC_lmdz.xml histmthNMC enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthNMC_lmdz.xml histmthNMC output_level ${lmdz_UserChoices_output_level_histmthNMC} 
+    fi
+
+    # histdayNMC
+    if [ X${lmdz_UserChoices_output_level_histdayNMC} = X ] || [ X${lmdz_UserChoices_output_level_histdayNMC} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayNMC_lmdz.xml histdayNMC enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayNMC_lmdz.xml histdayNMC output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayNMC_lmdz.xml histdayNMC enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayNMC_lmdz.xml histdayNMC output_level ${lmdz_UserChoices_output_level_histdayNMC} 
+    fi
+
+    # histhfNMC
+    if [ X${lmdz_UserChoices_output_level_histhfNMC} = X ] || [ X${lmdz_UserChoices_output_level_histhfNMC} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfNMC_lmdz.xml histhfNMC enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfNMC_lmdz.xml histhfNMC output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfNMC_lmdz.xml histhfNMC enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfNMC_lmdz.xml histhfNMC output_level ${lmdz_UserChoices_output_level_histhfNMC} 
+    fi
+
+    # histstrataer
+    if [ X${lmdz_UserChoices_output_level_histstrataer} = X ] || [ X${lmdz_UserChoices_output_level_histstrataer} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstrataer_lmdz.xml histstrataer enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstrataer_lmdz.xml histstrataer output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstrataer_lmdz.xml histstrataer enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstrataer_lmdz.xml histstrataer output_level ${lmdz_UserChoices_output_level_histstrataer} 
+    fi
+
+    # histdaystrataer
+    if [ X${lmdz_UserChoices_output_level_histdaystrataer} = X ] || [ X${lmdz_UserChoices_output_level_histdaystrataer} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdaystrataer_lmdz.xml histdaystrataer enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdaystrataer_lmdz.xml histdaystrataer output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdaystrataer_lmdz.xml histdaystrataer enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdaystrataer_lmdz.xml histdaystrataer output_level ${lmdz_UserChoices_output_level_histstrataer}
+    fi
+
+    # histstn
+    if [ X${lmdz_UserChoices_output_level_histstn} = X ] || [ X${lmdz_UserChoices_output_level_histstn} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstn_lmdz.xml histstn enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstn_lmdz.xml histstn output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstn_lmdz.xml histstn enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histstn_lmdz.xml histstn output_level ${lmdz_UserChoices_output_level_histstn} 
+    fi
+
+
+    # histmthCOSP
+    if [ X${lmdz_UserChoices_output_level_histmthCOSP} = X ] || [ X${lmdz_UserChoices_output_level_histmthCOSP} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthCOSP_lmdz.xml histmthCOSP enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthCOSP_lmdz.xml histmthCOSP output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthCOSP_lmdz.xml histmthCOSP enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histmthCOSP_lmdz.xml histmthCOSP output_level ${lmdz_UserChoices_output_level_histmthCOSP} 
+    fi
+
+
+    # histdayCOSP
+    if [ X${lmdz_UserChoices_output_level_histdayCOSP} = X ] || [ X${lmdz_UserChoices_output_level_histdayCOSP} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayCOSP_lmdz.xml histdayCOSP enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayCOSP_lmdz.xml histdayCOSP output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayCOSP_lmdz.xml histdayCOSP enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histdayCOSP_lmdz.xml histdayCOSP output_level ${lmdz_UserChoices_output_level_histdayCOSP} 
+    fi
+
+
+    # histhfCOSP
+    if [ X${lmdz_UserChoices_output_level_histhfCOSP} = X ] || [ X${lmdz_UserChoices_output_level_histhfCOSP} = XNONE ] ; then
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfCOSP_lmdz.xml histhfCOSP enabled FALSE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfCOSP_lmdz.xml histhfCOSP output_level 0
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfCOSP_lmdz.xml histhfCOSP enabled TRUE
+	IGCM_comp_modifyXmlFile nonblocker file_def_histhfCOSP_lmdz.xml histhfCOSP output_level ${lmdz_UserChoices_output_level_histhfCOSP} 
+    fi
+
+
+    ## run.def parameters
+
+
+    ##-- Remise ou non a zero de la date initiale de LMDZ pour le fichier run.def
+    if [ ${CumulPeriod} -eq 1 ] ; then
+	IGCM_comp_modifyDefFile blocker run.def raz_date  1
+    else
+	IGCM_comp_modifyDefFile blocker run.def raz_date  0
+    fi
+
+    ##-- Calendar type for LMDZ and create_etat0_limit
+    case ${config_UserChoices_CalendarType} in
+        leap|gregorian)
+	    IGCM_comp_modifyDefFile blocker run.def calend  gregorian ;;
+        noleap)
+	    IGCM_comp_modifyDefFile blocker run.def calend  earth_365d ;;
+        360d)
+	    IGCM_comp_modifyDefFile blocker run.def calend  earth_360d ;;
+        *)
+	    IGCM_comp_modifyDefFile blocker run.def calend  earth_360d ;;
+    esac
+
+    IGCM_comp_modifyDefFile blocker run.def dayref    ${InitDay}
+    IGCM_comp_modifyDefFile blocker run.def nday      ${PeriodLengthInDays}
+
+    # Set anneeref different for gcm and ce0l
+    # Test if executable create_etat0_limit is present and lmdz.x is not present
+    if [ -f create_etat0_limit* ] || [ -f ce0l* ] && [ ! -f lmdz.x ] ; then
+	# for case ce0l : always take current year
+	IGCM_comp_modifyDefFile blocker run.def anneeref ${year}
+
+        # Temporary, set use_filtre_fft=n because we now use dyn3d for ce0l version where fft is not implemented. 
+        # In more recent versions of LMDZ, this will not be needed. 
+	IGCM_comp_modifyDefFile force   run.def use_filtre_fft n
+    else
+	# for case gcm : take first year of simulation
+	IGCM_comp_modifyDefFile blocker run.def anneeref ${InitYear}
+    fi
+
+    ## Determine from the variable ListOfComponents in config.card coupling to external models 
+    ## and set corresponding parameters in run.def
+    echo ListOfComponents now running : ${config_ListOfComponents[*]}
+
+    if [ X${config_ListOfComponents_SRF} = Xorchidee ] ; then
+	echo "Activate ORCHIDEE, set VEGET=y in run.def"
+	IGCM_comp_modifyDefFile blocker run.def VEGET y
+    else
+	echo "No ORCHIDEE, set VEGET=n in run.def"
+	IGCM_comp_modifyDefFile blocker run.def VEGET n
+    fi
+
+    if [ X${config_ListOfComponents_CPL} = Xoasis ] ; then
+	echo "Activate coupling to ocean, set type_ocean=couple in run.def"
+	IGCM_comp_modifyDefFile blocker run.def type_ocean couple
+    else
+	echo "LMDZ is running in forced mode without ocean model, set type_ocean=force in run.def"
+	IGCM_comp_modifyDefFile nonblocker run.def type_ocean force
+    fi
+
+    if [ X${config_ListOfComponents_CHM} = Xinca ] ; then
+	echo "Activate coupling to INCA, set type_trac=inca in run.def"
+	IGCM_comp_modifyDefFile blocker run.def type_trac inca
+	IGCM_comp_modifyDefFile blocker run.def iflag_phytrac 1  
+    elif [ X${config_ListOfComponents_CHM} = Xreprobus ] ; then
+	echo "Activate coupling to REPROBUS, set type_trac=repr in run.def"
+	IGCM_comp_modifyDefFile blocker run.def type_trac repr
+        IGCM_comp_modifyDefFile blocker run.def config_inca none
+	IGCM_comp_modifyDefFile blocker run.def iflag_phytrac 1  
+    elif [ X${config_UserChoices_ConfigType} = XESMCO2 ] ; then 
+	echo "ESM config, set type_trac=co2i in run.def"
+	IGCM_comp_modifyDefFile blocker run.def type_trac co2i
+        IGCM_comp_modifyDefFile blocker run.def config_inca none
+	IGCM_comp_modifyDefFile blocker run.def iflag_phytrac 1  
+    elif [ X${lmdz_UserChoices_LMDZ_strataero} = Xy ] ; then
+        echo "No coupling to chemistry model but it is a LMDZ STRATAER configuration, set type_trac=coag in run.def"
+        IGCM_comp_modifyDefFile blocker run.def type_trac coag
+        IGCM_comp_modifyDefFile blocker run.def config_inca none
+	IGCM_comp_modifyDefFile blocker run.def iflag_phytrac 1  
+    else
+	echo "No coupling to chemistry model, set type_trac=lmdz in run.def"
+	IGCM_comp_modifyDefFile blocker run.def type_trac lmdz
+        IGCM_comp_modifyDefFile blocker run.def config_inca none
+	IGCM_comp_modifyDefFile blocker run.def iflag_phytrac 0
+    fi
+
+    # run.def : Activate the new calving 
+    if [ ! X${lmdz_UserChoices_cpl_old_calving} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker run.def cpl_old_calving ${lmdz_UserChoices_cpl_old_calving}
+    else
+	IGCM_comp_modifyDefFile nonblocker run.def cpl_old_calving y
+    fi 
+
+    # physiq.def : Activate the call to phytrac 
+    if [ ! X${lmdz_UserChoices_ok_bug_cv_trac} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker physiq.def ok_bug_cv_trac  ${lmdz_UserChoices_ok_bug_cv_trac}
+    else
+	IGCM_comp_modifyDefFile nonblocker physiq.def ok_bug_cv_trac  n
+    fi 
+
+    # config.def : Activate aerosol strato 
+    if [ ! X${lmdz_UserChoices_flag_aerosol_strat} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def flag_aerosol_strat ${lmdz_UserChoices_flag_aerosol_strat}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def flag_aerosol_strat DEFAULT
+    fi 
+
+    # config.def : Activate direct radiative effect if ok_ade=y
+    if [ ! X${lmdz_UserChoices_ok_ade} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def ok_ade ${lmdz_UserChoices_ok_ade}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def ok_ade n
+    fi 
+
+    # config.def : Activate indirect radiative effect if ok_aie=y
+    if [ ! X${lmdz_UserChoices_ok_aie} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def ok_aie ${lmdz_UserChoices_ok_aie}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def ok_aie n
+    fi 
+
+    # config.def : Activate online aerosol coupled model if aerosol_couple=y
+    if [ ! X${lmdz_UserChoices_aerosol_couple} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def aerosol_couple ${lmdz_UserChoices_aerosol_couple}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def aerosol_couple n
+    fi 
+
+    # config.def : Activate online Ozone chemistry coupled model if chemistry_couple=y
+    if [ ! X${lmdz_UserChoices_chemistry_couple} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def chemistry_couple ${lmdz_UserChoices_chemistry_couple}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def chemistry_couple n
+    fi 
+
+    # config.def : Activate reading of ozone in climatology if read_climoz=2
+    if [ ! X${lmdz_UserChoices_read_climoz} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def read_climoz ${lmdz_UserChoices_read_climoz}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def read_climoz 0	
+    fi 
+
+    # config.def : Choose aerosol use in radiative effect 
+    #  type of coupled aerosol =1 (default) =2 => bc  only =3 => pom only =4 => seasalt only 
+    # =5 => dust only =6 => all aerosol    
+    if [ ! X${lmdz_UserChoices_flag_aerosol} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def flag_aerosol ${lmdz_UserChoices_flag_aerosol}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def flag_aerosol 0
+    fi 
+
+    # config.def : Activate calcul of Cloud droplet number concentration if ok_cdnc=y
+    if [ ! X${lmdz_UserChoices_ok_cdnc} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def ok_cdnc ${lmdz_UserChoices_ok_cdnc}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def ok_cdnc n	
+    fi 
+
+    # config.def : Activate COSP
+    if [ ! X${lmdz_UserChoices_LMDZ_COSP_OK} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def ok_cosp ${lmdz_UserChoices_LMDZ_COSP_OK}
+    else
+	IGCM_comp_modifyDefFile nonblocker config.def ok_cosp n	
+    fi 
+
+    # config.def : Modify parameter pmagic if it is set in lmdz.card
+    if [ ! X${lmdz_UserChoices_pmagic} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker config.def pmagic ${lmdz_UserChoices_pmagic}
+    else
+	# Take default value set in config.def
+	IGCM_comp_modifyDefFile nonblocker config.def pmagic DEFAULT
+    fi 
+
+    if [ X${config_UserChoices_ConfigType} = XESMCO2 ] ; then
+	# Set carbon cycle parameters according to parmeters in lmdz.card 
+	IGCM_comp_modifyDefFile blocker config.def level_coupling_esm 2 
+	IGCM_comp_modifyDefFile blocker config.def carbon_cycle_cpl ${lmdz_UserChoices_carbon_cycle_cpl} 
+	IGCM_comp_modifyDefFile blocker config.def carbon_cycle_tr ${lmdz_UserChoices_carbon_cycle_tr}
+	IGCM_comp_modifyDefFile blocker config.def carbon_cycle_rad ${lmdz_UserChoices_carbon_cycle_rad}
+    else
+	# Take default value set in config.def
+	IGCM_comp_modifyDefFile nonblocker config.def level_coupling_esm DEFAULT
+	IGCM_comp_modifyDefFile nonblocker config.def carbon_cycle_cpl DEFAULT 
+	IGCM_comp_modifyDefFile nonblocker config.def carbon_cycle_tr DEFAULT
+	IGCM_comp_modifyDefFile nonblocker config.def carbon_cycle_rad DEFAULT
+    fi
+
+    # config.def : Modify parameter ok_volcan if ok_volcan=y or LMDZ_strataero=y in lmdz.card
+    # Note: ok_volcan is a flag allowing a double-call with/without natural forcing (instead of with/without anthro forcing).
+    if [ ! X${lmdz_UserChoices_ok_volcan} = X ] || [ X${lmdz_UserChoices_LMDZ_strataero} = Xy ] ; then
+	IGCM_comp_modifyDefFile nonblocker config.def ok_volcan ${lmdz_UserChoices_ok_volcan}
+    else
+	# Take default value set in config.def
+	IGCM_comp_modifyDefFile nonblocker config.def ok_volcan DEFAULT
+    fi
+
+    # physiq.def : Modify parameter tau_gl if it is set in lmdz.card
+    if [ ! X${lmdz_UserChoices_tau_gl} = X ]; then 
+	IGCM_comp_modifyDefFile nonblocker physiq.def tau_gl ${lmdz_UserChoices_tau_gl}
+    else
+	# Take default value set in physiq.def
+	IGCM_comp_modifyDefFile nonblocker physiq.def tau_gl DEFAULT
+    fi
+   
+
+    # guide.def : Activate nudging if ok_guide=y set in lmdz.card
+    if [ ! X${lmdz_UserChoices_ok_guide} = X ] ; then
+	IGCM_comp_modifyDefFile nonblocker guide.def ok_guide  ${lmdz_UserChoices_ok_guide}
+    else
+	IGCM_comp_modifyDefFile nonblocker guide.def ok_guide n
+    fi
+
+
+    ## Read ByPass_hgardfou_teta option in lmdz.card --> divide teta* by 2 if [ $ByPass_hgardfou_teta = 1 ]
+    ByPass_hgardfou_teta=${lmdz_UserChoices_ByPass_hgardfou_teta}
+    if [ X"${ByPass_hgardfou_teta}" = X"y" ] ; then
+	awk '{ if ($0 ~ /^teta.*=/) {split($0,a,"=") ; print a[1]"="a[2]/2"."} else print $0}' gcm.def > gcm.def.tmp
+	IGCM_sys_Mv gcm.def.tmp gcm.def
+	echo
+	IGCM_debug_Print 1 "ByPass_hgardfou_teta : ^teta*/2 in gcm.def"
+	echo
+	cat gcm.def
+	ByPass_hgardfou_teta=n
+	IGCM_card_WriteOption ${SUBMIT_DIR}/COMP/lmdz.card UserChoices ByPass_hgardfou_teta "${ByPass_hgardfou_teta}"
+    fi
+
+    ## Read ByPass_hgardfou_mats option in lmdz.card --> purmats=y 2 if [ $ByPass_hgardfou_mats = 1 ]
+    ByPass_hgardfou_mats=${lmdz_UserChoices_ByPass_hgardfou_mats}
+    if [ X"${ByPass_hgardfou_mats}" = X"y" ] ; then
+	sed -e "s/^purmats=.*/purmats=y/" gcm.def > gcm.def.tmp
+        IGCM_sys_Mv gcm.def.tmp gcm.def
+        echo
+        IGCM_debug_Print 1 "ByPass_hgardfou_mats : purmats=y in gcm.def"
+        echo
+        cat gcm.def
+        ByPass_hgardfou_mats=n
+        IGCM_card_WriteOption ${SUBMIT_DIR}/COMP/lmdz.card UserChoices ByPass_hgardfou_mats "${ByPass_hgardfou_mats}"
+    fi
+
+    # Add include of LMDZ context in iodef.xml
+    # In iodef.xml add on the next line after "COMPONENT CONTEXT"
+    echo '<context id="LMDZ" src="./context_lmdz.xml"/>' > add.tmp
+    # Add inclusion of file context_input_lmdz.xml if this file exists
+    if [ -f context_input_lmdz.xml ] ; then
+        echo '<context id="LMDZ" src="./context_input_lmdz.xml"/>' >> add.tmp
+    fi
+    # Include xml files for output configuration if running with workflow CMIP6
+    if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] ; then
+	echo '<context id="LMDZ" src="./ping_lmdz.xml"/>' >> add.tmp
+	echo '<context id="LMDZ" src="./dr2xml_lmdz.xml"/>' >> add.tmp
+    fi
+    cp iodef.xml iodef.xml.tmp
+    sed -e "/COMPONENT CONTEXT/r add.tmp" iodef.xml.tmp > iodef.xml
+    rm iodef.xml.tmp add.tmp
+
+    #Long Name as global attribute (if LongName is not empty)
+    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
+	listfile=$(ls file_def*lmdz.xml)
+	echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
+	for file in ${listfile}
+	do
+	    cp ${file} ${file}.tmp
+	    sed -e "/<file id/r add.tmp" \
+		${file}.tmp > ${file}
+	    rm ${file}.tmp 
+	done
+	rm add.tmp
+    fi
+
+    # Compression level (if CompressionLevel is not empty)
+    if [ ! "X${config_UserChoices_CompressionLevel}" = "X" ] ; then
+    echo "NetCDF output files compression level is " ${config_UserChoices_CompressionLevel}
+    listfile=$(ls file_def*lmdz.xml)
+    for file in ${listfile} ; do
+        sed -i -e "s/\(compression_level=\"\)[^\"]*\(\"\)/\1${config_UserChoices_CompressionLevel}\2/" ${file}
+    done
+    fi
+
+            
+    IGCM_debug_PopStack "ATM_Update"
+}
+
+#-----------------------------------
+function ATM_Finalize
+{
+    IGCM_debug_PushStack "ATM_Finalize"
+
+    IGCM_debug_Print 1 "FINALIZE ATM !"
+
+    IGCM_debug_PopStack "ATM_Finalize"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/oasis.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/oasis.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/oasis.driver	(revision 5899)
@@ -0,0 +1,175 @@
+#!/bin/ksh
+#-----------------------------------
+CPL_Initialize ()
+{
+    IGCM_debug_PushStack "CPL_Initialize"
+ 
+    echo INITIALIZE CPL !!!
+
+# Local function to find parameters in LMDZ .def files
+    lmdzgrep () {
+        grep $1 $2 |grep -v "#" | awk "-F=" '{print $2}' | awk "-F " '{print $1}'
+    }
+
+    #RESOL_CPL=$( echo $RESOL | awk "-F-" '{print $1}' )
+    RESOL_CPL=${RESOL_OCE}x${RESOL_ATM}
+    IGCM_debug_Print 1 "RESOL_CPL      : ${RESOL_CPL}"
+
+    CPL_OkDay="n"
+    CPL_OkMonth="n"
+
+    for CPL_Frequency in ${config_CPL_WriteFrequency} ; do
+	case ${CPL_Frequency} in
+	    *D|*d) CPL_OkDay="y"   ;;
+	    *M)    CPL_OkMonth="y" ;;
+	esac
+    done
+
+    # Initialisation required for AddNoise done during one Period
+    Test_AddNoise_First_Only=y
+
+    IGCM_debug_PopStack "CPL_Initialize"
+
+}
+
+#-----------------------------------
+CPL_Update ()
+{
+    IGCM_debug_PushStack "CPL_Update"
+
+    ############ Update Time and Counters ##############
+    ##-- Calcul de la duree du job (en secondes)
+    (( D_JOB_SEC = 3600 * 24 * PeriodLengthInDays ))
+
+    ############ Update Other Parameters  ##############
+    ## Read Output_mode option in oasis.card --> Put "y" to have coupling variables in ouptut files
+    CPL_OutputMode="n"
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/COMP/oasis.card UserChoices OutputMode 
+    eval CPL_OutputMode=\${oasis_UserChoices_OutputMode} > /dev/null 2>&1
+    echo CPL_OutputMode = ${CPL_OutputMode}
+    CPL_OutputVar='EXPORTED'
+    if [ ${CPL_OutputMode} = y ] ; then
+	CPL_OutputVar='EXPOUT'
+    fi
+
+    FreqCoupling=${oasis_UserChoices_FreqCoupling:-86400}
+    FreqCouplingRoffCalv=${oasis_UserChoices_FreqCouplingRoffCalv:-86400}
+
+    ## Calculate lag for transfer of fields from atmosphere -> ocean.
+    ## LagAtm="1day in sec"/day_step * iphysiq/nsplit_phys
+    ## First get day_step, iphyisq and nsplit_phys from LMDZ parameter files
+    day_step=$(    lmdzgrep day_step gcm.def )
+    iphysiq=$(     lmdzgrep iphysiq gcm.def )
+    nsplit_phys=$( lmdzgrep nsplit_phys physiq.def )
+
+    IGCM_debug_Print 3 "Parametre de calcul Lag LMDZ recuperes " ${day_step} ${iphysiq} ${nsplit_phys}
+
+    [[ ${nsplit_phys} -eq 0 || "X${nsplit_phys}" = "X" ]] && nsplit_phys=1
+
+    IGCM_debug_Print 3 "Parametre de calcul Lag LMDZ mis a jour " ${day_step} ${iphysiq} ${nsplit_phys}
+                                                              
+    (( LagAtm = 86400 * iphysiq / day_step / nsplit_phys ))
+    (( LagAtmRoffCalv = $FreqCoupling + $LagAtm ))
+    (( LagOce = 86400 / OPA_NPDT_DAY ))
+
+    IGCM_debug_Print 1 "OPA_NPDT_DAY : ${OPA_NPDT_DAY}"
+    IGCM_debug_Print 1 "LagAtm        : ${LagAtm}"
+    IGCM_debug_Print 1 "LagAtmRoffCalv : ${LagAtmRoffCalv}"
+    IGCM_debug_Print 1 "LagOce        : ${LagOce}"
+
+    ## Use of Lucia ##
+    lucia_ok=""
+    if [ ${oasis_UserChoices_Lucia} = y ] ; then
+	lucia_ok="-1"
+    fi
+    
+    ############ Update Parameter Files   ##############
+    sed -e "s/<total_time>/${D_JOB_SEC}/" \
+	-e "s/<lucia_ok>/${lucia_ok}/" \
+	-e "s/<output_mode>/${CPL_OutputVar}/g" \
+	-e "s/<freq_coupling>/${FreqCoupling}/g" \
+	-e "s/<freq_coupling_roff_calv>/${FreqCouplingRoffCalv}/g" \
+	-e "s/<lag_atm>/${LagAtm}/g" \
+	-e "s/<lag_atm_roff_calv>/${LagAtmRoffCalv}/g" \
+	-e "s/<lag_oce>/${LagOce}/g" \
+	namcouple > namcouple.tmp
+    IGCM_sys_Mv namcouple.tmp namcouple
+
+    # Ensemble case
+    if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+      sed -e "s/<total_time>/${D_JOB_SEC}/" oasis_namcouple_header > oasis_namcouple_header.tmp
+      IGCM_sys_Mv oasis_namcouple_header.tmp oasis_namcouple_header
+    fi 
+    # For IPSLCM6 and use of OASIS-MCT
+    if [ ${CumulPeriod} -eq 1 ]; then
+	ncrename -v OIceFrac,OIceFrc sstoc.nc > /dev/null 2>&1
+    fi
+    # For use of XIOS
+    IGCM_comp_modifyXmlFile force iodef.xml using_oasis NONE true
+
+    if [ X"${Test_AddNoise_First_Only}" = X"y" ]; then
+
+    Test_AddNoise_First_Only=n
+
+    # AddNoise if required but only for one Period
+
+    # Read ByPass_addnoise_sst option in oasis.card --> apply addnoise for sst in CPL restart file if [ $ByPass_addnoise_sst = y ]
+    ByPass_addnoise_sst=${oasis_UserChoices_ByPass_addnoise_sst}
+    if [ X"${ByPass_addnoise_sst}" = X"y" ] ; then
+      
+      ByPass_PerturbExe=${oasis_UserChoices_ByPass_PerturbExe}
+      ByPass_FileOut=${oasis_UserChoices_ByPass_FileOut}
+      ByPass_PerturbVar=${oasis_UserChoices_ByPass_PerturbVar}
+      ByPass_PerturbAmp=${oasis_UserChoices_ByPass_PerturbAmp}
+
+      IGCM_sys_Chmod 644 ${RUN_DIR}/${ByPass_FileOut}.nc
+      IGCM_debug_Print 1 "${ByPass_PerturbExe} ${RUN_DIR}/${ByPass_FileOut}.nc ${ByPass_PerturbVar} ${ByPass_PerturbAmp}"
+
+      ${ByPass_PerturbExe} ${RUN_DIR}/${ByPass_FileOut}.nc ${ByPass_PerturbVar} ${ByPass_PerturbAmp} 
+      if [ $? -ne 0 ] ; then
+        IGCM_debug_Exit "Error with $( basename ${ByPass_PerturbExe} )"
+        IGCM_debug_Verif_Exit
+      fi
+
+      echo
+      IGCM_debug_Print 1 "ByPass_addnoise_sst : applied addnoise for sst in CPL restart file"
+      echo
+      ByPass_addnoise_sst=n
+      # necessary to reset ByPass in next Period during the same Job (PeriodNb<>1)
+      export oasis_UserChoicesByPass_addnoise_sst=n
+      IGCM_card_WriteOption ${SUBMIT_DIR}/COMP/oasis.card UserChoices ByPass_addnoise_sst "${ByPass_addnoise_sst}"
+    fi
+
+    fi
+
+    IGCM_debug_PopStack "CPL_Update"
+}
+
+#-----------------------------------
+CPL_Finalize ()
+{
+    IGCM_debug_PushStack "CPL_Finalize"
+
+    if [ "${CPL_OutputMode}" = "y" ] ; then
+
+        [[ ${CPL_OkDay}   = "y" ]] && date >TEMPO_1D_cpl_atm.nc
+        [[ ${CPL_OkMonth} = "y" ]] && date >TEMPO_1M_cpl_atm.nc
+        [[ ${CPL_OkDay}   = "y" ]] && date >TEMPO_1D_cpl_oce.nc
+        [[ ${CPL_OkMonth} = "y" ]] && date >TEMPO_1M_cpl_oce.nc
+
+    fi
+
+    ## Use of Lucia ##
+    if [ ${oasis_UserChoices_Lucia} = y ] ; then
+	echo "Use of LUCIA"
+    #   To be changed 
+    #   On Curie
+    #   /ccc/scratch/cont003/dsm/p86caub/LUCIA/lucia
+    #   On Ada
+    #   /linkhome/rech/psl/rpsl035/LUCIA/lucia
+    fi
+
+    echo FINALIZE CPL !!!
+
+    IGCM_debug_PopStack "CPL_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/opa9.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/opa9.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/opa9.driver	(revision 5899)
@@ -0,0 +1,275 @@
+#!/bin/ksh
+#-----------------------------------------------------------------
+function OCE_Initialize
+{
+    IGCM_debug_PushStack "OCE_Initialize"
+
+    JOB_NAME=${config_UserChoices_JobName}
+    RESOL_OCE=${ResolOce}
+    ORCAGRID=${opa9_UserChoices_ORCA_version%%.*}
+    IGCM_debug_Print 1 "RESOL_OCE      : ${RESOL_OCE}"
+    IGCM_debug_Print 1 "ORCAGRID         : ${ORCAGRID}"
+
+
+    # Local function to find namelists parameters
+    #supergrep () { grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%" ; }
+    supergrep () { grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%" -e "s%^ *$1 *=%%" ; }
+    ##--Variables used by OPA --
+    NAMELIST_OPA_CFG=${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE}_cfg
+    IGCM_debug_Print 1 "namelist_cfg : ${NAMELIST_OPA_CFG}"
+    if [ ! -r ${NAMELIST_OPA_CFG} ] ; then
+        IGCM_debug_Exit "${NAMELIST_OPA_CFG} not found"
+	IGCM_debug_Verif_Exit
+    fi
+    OPA_RDT=$(       supergrep rn_rdt        ${NAMELIST_OPA_CFG} )
+    OPA_NN_FSBC=$(   supergrep nn_fsbc       ${NAMELIST_OPA_CFG} )
+    #
+    # OPA_RDT=$(       supergrep rn_rdt        namelist_cfg )
+    # OPA_NN_FSBC=$(   supergrep nn_fsbc       namelist_cfg )
+    (( OPA_NPDT_DAY   =  86400 / OPA_RDT        ))
+    (( OPA_NPDT_YEAR  =  OPA_NPDT_DAY * 365     ))
+    (( OPA_RDT_SBC    =  OPA_RDT * OPA_NN_FSBC ))
+ 
+    # Period Length In Days between DateBegin and first day of calendar 0001 01 01
+    # /!\ Needed by OPA namelist to compute file names /!\
+    (( DaysSinceJC = $( IGCM_date_DaysSinceJC ${DateBegin} ) + 1 ))
+
+    IGCM_debug_Print 1 " "
+    IGCM_debug_Print 1 "OPA_RDT        ${OPA_RDT}"
+    IGCM_debug_Print 1 "OPA_NN_FSBC    ${OPA_NN_FSBC}"
+    IGCM_debug_Print 1 "OPA_RDT_SBC    ${OPA_RDT_SBC}"
+    IGCM_debug_Print 1 "OPA_NPDT_DAY   ${OPA_NPDT_DAY}"
+    IGCM_debug_Print 1 "OPA_NPDT_YEAR  ${OPA_NPDT_YEAR}"
+    IGCM_debug_Print 1 "DaysSinceJC    ${DaysSinceJC}"
+
+    ## Check that nn_fsbc is correct compare to coupling frequency
+    FreqCoupling=${oasis_UserChoices_FreqCoupling:-86400}
+    
+    ## This informations are used for diaptr, trends and diagap files
+    ## only the first frequency is used for this files
+    
+    IGCM_debug_Print 1 "FreqCoupling    ${FreqCoupling}"
+    IGCM_debug_Print 1 "OPA_NN_FSBC    ${OPA_NN_FSBC}"
+    IGCM_debug_Print 1 "OPA_RDT        ${OPA_RDT}"
+    IGCM_debug_Print 1 "OPA_RDT_SBC    ${OPA_RDT_SBC}"
+    
+    if [[ ${OPA_RDT_SBC} -gt ${FreqCoupling} ]] ; then
+	IGCM_debug_Exit "OPA_RDT_SBC=${OPA_RDT_SBC} is greater than FreqCoupling=${FreqCoupling}"
+     	IGCM_debug_Verif_Exit
+    fi
+
+    IGCM_debug_PopStack "OCE_Initialize"
+   
+}
+
+#-----------------------------------------------------------------
+function OCE_Update
+{
+    IGCM_debug_PushStack "OCE_Update"
+  
+    ##--Write Frequency for iomput
+    ## Differents frequencies are allowed for OCE files
+
+    V1D_ENABLE=".FALSE."
+    V5D_ENABLE=".FALSE."
+    V1M_ENABLE=".FALSE."
+    V1Y_ENABLE=".FALSE."
+
+    for frequency in ${config_OCE_WriteFrequency} ; do
+        case ${frequency} in
+            ( 1D|1d ) V1D_ENABLE=".TRUE." ;;
+            ( 5D|5d ) V5D_ENABLE=".TRUE." ;;
+            ( 1M|1m ) V1M_ENABLE=".TRUE." ;;
+            ( *[yY] ) V1Y_ENABLE=".TRUE." ;;
+        esac
+    done
+
+    # Period Length In Days between DateBegin and first day of calendar 0001 01 01
+    # Needed by OPA namelist to compute correct file names 
+    (( PeriodDaysSinceJC =  $( IGCM_date_DaysSinceJC ${PeriodDateBegin} ) + 1  ))
+
+    ##-- Number of time steps updated : the first, the last and the number of time steps
+    (( OPA_NIT000 = ( PeriodDaysSinceJC - DaysSinceJC ) * OPA_NPDT_DAY + 1 ))
+    (( OPA_NPDT   = PeriodLengthInDays * OPA_NPDT_DAY ))
+    (( OPA_NITEND = OPA_NIT000 + OPA_NPDT - 1))
+
+    ##-- We force one restart file at the end of the trunk
+    OPA_NSTOCK="${OPA_NITEND}"
+
+
+    ##-- Additionnal Restart Option to force reproducibility ; force kt to kt red in restart file
+    ## ${opa9_UserChoices_Reproducibility_after_restart}
+
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/COMP/opa9.card UserChoices Reproducibility_after_restart
+
+   ##-- Restart configuration
+    if ( [ "${opa9_UserChoices_Reproducibility_after_restart}" = "y" ] && [ "${config_OCE_Restart}" = "y" ] ) ; then
+      OPA_LRSTAR=.TRUE.
+      OPA_NRSTDT=2
+      #echo "OPA RESTART"
+      IGCM_debug_Print 1 'WARNING : dangerous option for NEMO opa9 pisces lim3'
+      IGCM_debug_Print 1 'Reproducibility_after_Restart forced ie kt forced to kt red in restart file : ' ${opa9_UserChoices_Reproducibility_after_restart}
+
+    elif ( [ "${CumulPeriod}" -eq 1 ] && [ "${config_OCE_Restart}" = "n" ] ) ; then
+      OPA_LRSTAR=.FALSE.
+      OPA_NRSTDT=0
+      #echo "NO OPA RESTART"
+    elif ( [ "${CumulPeriod}" -eq 1 ] && [ "${config_OCE_Restart}" = "y" ] ) ; then
+      OPA_LRSTAR=.TRUE.
+      OPA_NRSTDT=0
+      #echo "OPA RESTART"
+    else
+      OPA_LRSTAR=.TRUE.
+      OPA_NRSTDT=2
+      #echo "OPA RESTART"
+    fi
+
+    ##-- Meshmask option. Forced only once.
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/COMP/opa9.card UserChoices mesh_mask
+
+    OPA_NMSH=.FALSE.
+    if [ "${opa9_UserChoices_mesh_mask}" = "y" ]; then
+        OPA_NMSH=.TRUE.
+        IGCM_card_WriteOption ${SUBMIT_DIR}/COMP/opa9.card UserChoices mesh_mask "n"
+    fi
+
+    # nleapy configuration
+    case ${config_UserChoices_CalendarType} in
+        ( leap|gregorian) OPA_NLEAPY=1  ;;
+        ( noleap        ) OPA_NLEAPY=0  ;;
+        ( 360d          ) OPA_NLEAPY=30 ;;
+        ( *             ) OPA_NLEAPY=30 ;;
+    esac
+
+    if ( [ "${opa9_UserChoices_Reproducibility_after_restart}" = "y" ] ) ; then
+      ##-- choose the right restart file
+      NEMO_RESTART_FILE=restartopa.nc
+      [ -f restartopa_0000.nc ] && NEMO_RESTART_FILE=restartopa_0000.nc
+      ##-- Getting from restart file the last time step of the run at which we want to re-start
+      NEMO_KT_FROM_RESTART=$(ncdump -v kt ${NEMO_RESTART_FILE}|grep 'kt ='|awk '{print $3}' )
+
+      if ( [ "${CumulPeriod}" -eq 1 ] ) ; then
+        ## Force the date in the restart file to be the last day before the begining of the new run
+        dateendprevious=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} -1 )
+        IGCM_debug_Print 1 "Previous Date  ${dateendprevious}"
+        IGCM_debug_Print 1 "cmd done to modify NEMO restartfile:   ncap2 -s ndastp=${dateendprevious} ${NEMO_RESTART_FILE}  tmp.nc"
+	if [ -f restartopa_0000.nc ] ; then
+           typeset -Z4 ncpu=0
+           while [ $ncpu -lt ${OCE_PROC_MPI} ] ; do
+              ncap2 -s "ndastp=${dateendprevious}" restartopa_${ncpu}.nc  tmp.nc
+              mv tmp.nc restartopa_${ncpu}.nc
+              (( ncpu = ncpu + 1 ))
+           done
+        else
+           ncap2 -s "ndastp=${dateendprevious}" ${NEMO_RESTART_FILE}  tmp.nc
+           mv tmp.nc ${NEMO_RESTART_FILE}
+        fi
+        ##-- Getting from restart file the "new" restart date of run at which we want to re-start
+        NEMO_NDASTP_FROM_RESTART=$(ncdump -v ndastp ${NEMO_RESTART_FILE}|grep 'ndastp ='|awk '{print $3}' )
+        IGCM_debug_Print 1 "NEMO_NDASTP (from Restart) for 1st Period       : ${NEMO_NDASTP_FROM_RESTART}"
+
+      fi
+
+      (( NEMO_NIT000 = NEMO_KT_FROM_RESTART + 1 ))
+      (( NEMO_NITEND = NEMO_KT_FROM_RESTART + OPA_NITEND - OPA_NIT000 + 1 ))
+      IGCM_debug_Print 1 "NEMO_NIT000 (from Restart)        : ${NEMO_NIT000}"
+      IGCM_debug_Print 1 "NEMO_NITEND (from Restart + ... ) : ${NEMO_NITEND}"
+      ##-- We force one restart file at the end of the trunk
+      OPA_NSTOCK="${NEMO_NITEND}"
+      OPA_NIT000="${NEMO_NIT000}"
+      OPA_NITEND="${NEMO_NITEND}"
+    fi
+
+    typeset -r PRECIS=8
+    NEMO_END=$( echo $( awk "BEGIN { printf \"%0${PRECIS}d\",${OPA_NITEND} }" ) ) 
+
+    IGCM_comp_modifyNamelist blocker    namelist_cfg cn_exp       ${config_UserChoices_JobName}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg nn_it000     ${OPA_NIT000}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg nn_itend     ${OPA_NITEND}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg ln_rstart    ${OPA_LRSTAR}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg nn_stock     ${OPA_NSTOCK}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg nn_rstctl    ${OPA_NRSTDT}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg nn_date0     ${PeriodDateBegin}
+    IGCM_comp_modifyNamelist nonblocker namelist_cfg ln_meshmask   ${OPA_NMSH}
+    IGCM_comp_modifyNamelist blocker    namelist_cfg nn_leapy     ${OPA_NLEAPY}
+    
+    # Update iodef.xml
+
+    IGCM_debug_Print 1 'Informations into iodef.xml : V1D_ENABLE V5D_ENABLE V1M_ENABLE V1Y_ENABLE '
+    IGCM_debug_Print 1 ${V1D_ENABLE}  ${V5D_ENABLE} ${V1M_ENABLE} ${V1Y_ENABLE}
+
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 1d_opa enabled ${V1D_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 5d_opa enabled ${V5D_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 1m_opa enabled ${V1M_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 1y_opa enabled ${V1Y_ENABLE}
+
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 1d_opa output_level ${opa9_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 5d_opa output_level ${opa9_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 1m_opa output_level ${opa9_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-oce.xml 1y_opa output_level ${opa9_UserChoices_OutputLevel}
+
+
+    # Update reference year/month/day
+    IGCM_date_GetYearMonthDay ${DateBegin} iyear imonth iday
+    IGCM_comp_modifyXmlFile force context_nemo.xml ref_year  NONE ${iyear} 
+    IGCM_comp_modifyXmlFile force context_nemo.xml ref_month NONE ${imonth} 
+    IGCM_comp_modifyXmlFile force context_nemo.xml ref_day   NONE ${iday} 
+    
+    
+    # for MPP and switch to different number of procs for NEMO.  We need to suppres restartopa the second period, if restartopa_0000 exist
+    # same thing for restart_trc and restart_ice_in
+
+    for restartfilenemo in restartopa restart_trc restart_ice_in ; do
+      [ -f ${restartfilenemo}.nc ] && [ -f ${restartfilenemo}_0000.nc ] && IGCM_sys_Rm -f ${restartfilenemo}.nc
+    done
+
+    # Add include of nemo context in iodef.xml
+    # In iodef.xml add on next line after "COMPONENT CONTEXT"
+    #  <context id="nemo" src="./context_nemo.xml"/>
+    echo '<context id="nemo" src="./context_nemo.xml"/>' > add.tmp
+    if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] ; then
+	echo '<context id="nemo" src="./ping_nemo.xml"/>' >> add.tmp
+	echo '<context id="nemo" src="./dr2xml_opa9.xml"/>' >> add.tmp
+    fi
+    cp iodef.xml iodef.xml.tmp
+    sed -e "/COMPONENT CONTEXT/r add.tmp" \
+        iodef.xml.tmp > iodef.xml
+    rm iodef.xml.tmp add.tmp
+
+    #Long Name as global attribute (if LongName is not empty)
+    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
+	listfile=$(ls file_def_nemo*.xml)
+	echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
+	for file in ${listfile}
+	do
+	    cp ${file} ${file}.tmp
+	    sed -e "/<file id/r add.tmp" \
+		${file}.tmp > ${file}
+	    rm ${file}.tmp 
+	done 
+	rm add.tmp
+    fi
+
+    #Compression level (if CompressionLevel is not empty)
+    if [ ! "X${config_UserChoices_CompressionLevel}" = "X" ] ; then
+	echo "NetCDF output files compression level is " ${config_UserChoices_CompressionLevel}
+    	listfile=$(ls file_def_nemo*.xml)
+    	for file in ${listfile}
+    	do
+	    sed -i -e "s/\(compression_level=\"\)[^\"]*\(\"\)/\1${config_UserChoices_CompressionLevel}\2/" ${file}
+    	done
+    fi
+
+
+    IGCM_debug_PopStack "OCE_Update"
+}
+
+#-----------------------------------
+function OCE_Finalize
+{
+    IGCM_debug_PushStack "OCE_Finalize"
+
+    IGCM_debug_Print 1 FINALIZE OCE !!!
+
+    IGCM_debug_PopStack "OCE_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/orchidee.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/orchidee.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/orchidee.driver	(revision 5899)
@@ -0,0 +1,191 @@
+#!/bin/ksh
+## Driver for the component SRF corresponding to the sechiba part of ORCHIDEE
+#-----------------------------------------------------------------
+function SRF_Initialize
+{
+    IGCM_debug_PushStack "SRF_Initialize"
+
+    ##- Define variable DefSuffix set in orchidee.card
+    ##  This variable is used in orchidee.card to choose
+    ##  parameter file(orchidee.def_DefSuffix).
+    if [ ! X${orchidee_UserChoices_DefSuffix} = X ] ; then
+        DefSuffix=${orchidee_UserChoices_DefSuffix}
+    else
+        DefSuffix=CWRR
+    fi
+
+    IGCM_debug_PopStack "SRF_Initialize"
+}
+
+#-----------------------------------------------------------------
+function SRF_Update
+{
+    IGCM_debug_PushStack "SRF_Update"
+
+    ## 1. Modifications in orchidee.def parameter file
+
+    # Activate STOMATE if the compontent SBG=stomate is set in config.card
+    if [ X${config_ListOfComponents_SBG} = Xstomate ] ; then
+	# Activate stomate in orchidee.def
+        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_OK_STOMATE y
+    else
+	# Deactivate stomate in orchidee.def
+        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_OK_STOMATE n
+	# Deactivate output files for stomate
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_freq 1mo
+        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_freq 1mo
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_freq 1mo
+    fi
+
+    # Define in orchidee.def if restart file should be used
+    if ( [ ${CumulPeriod} -ne 1 ] || [ "${config_SRF_Restart}" != "n" ] ) ; then
+        IGCM_comp_modifyDefFile blocker orchidee.def SECHIBA_restart_in sechiba_rest_in.nc
+    else
+        IGCM_comp_modifyDefFile blocker orchidee.def SECHIBA_restart_in NONE
+    fi
+
+    # Set VEGET_UPDATE=1Y in orchidee.def if VEGET_UPDATE_at_start=y in orchidee.card and if it is the first cumul periond (start of new simulation)
+    if [ X${orchidee_UserChoices_VEGET_UPDATE_at_start} = Xy ] && [ ${CumulPeriod} -eq 1 ] ; then
+        IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE   1Y
+    fi
+
+    # Modify in orchidee.def VEGET_UPDATE if it is set in orchidee.card section UserChoices
+    # Note: if the variable has been set by VEGET_UPDATE_at_start, this section will not overwrite it.
+    if [ ! X${orchidee_UserChoices_VEGET_UPDATE} = X ] ; then
+        IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE   ${orchidee_UserChoices_VEGET_UPDATE}
+    else
+        IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE 0Y
+    fi
+
+    # Set LAI_MAP in orchidee.def acording to value set in orchidee.card section UserChoices
+    # If LAI_MAP is not definded in orchidee.card, set default value n
+    # Note: this option is only read by ORCHIDEE if starting without restart files
+    if [ ! X${orchidee_UserChoices_LAI_MAP} = X ] ; then
+        IGCM_comp_modifyDefFile nonblocker orchidee.def LAI_MAP   ${orchidee_UserChoices_LAI_MAP}
+    else
+        IGCM_comp_modifyDefFile nonblocker orchidee.def LAI_MAP   DEFAULT
+    fi
+
+    # Set DO_WOOD_HARVEST in orchidee.def acording to value set in orchidee.card section UserChoices
+    # If DO_WOOD_HARVEST is not definded in orchidee.card, set default value y
+    if [ ! X${orchidee_UserChoices_DO_WOOD_HARVEST} = X ] ; then
+        IGCM_comp_modifyDefFile nonblocker orchidee.def DO_WOOD_HARVEST   ${orchidee_UserChoices_DO_WOOD_HARVEST}
+    else
+        IGCM_comp_modifyDefFile nonblocker orchidee.def DO_WOOD_HARVEST   DEFAULT
+    fi
+
+    # Activate creation of river description file only for the first period
+    if [ ${CumulPeriod} -eq 1 ] ; then
+        IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_DESC y
+    else
+        IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_DESC n
+    fi
+
+    # Activate calcul of chemistry BVOC
+    if [ ! X${orchidee_UserChoices_CHEMISTRY_BVOC} = X ] ; then
+        IGCM_comp_modifyDefFile nonblocker orchidee.def CHEMISTRY_BVOC ${orchidee_UserChoices_CHEMISTRY_BVOC}
+    else
+        IGCM_comp_modifyDefFile nonblocker orchidee.def CHEMISTRY_BVOC n
+    fi
+
+    ## 2. Mangement of output and modifications of related xml files
+    # Modify file_def_orchidee.xml file using settings from orchidee.card
+    # We here suppose that for each file, in orchidee.card UserChoices section, if the parameter 
+    # output_level_filename is set, then also output_freq_filename must be set. The existance of output_freq_filename will not be checked. 
+    # If output_level_filename=NONE or if it is not set, the corresponding file will be deactivated.
+    # Settings in config.card WriteFrequency are not used any more.
+    
+    if [ X${orchidee_UserChoices_output_level_sechiba_history} = X ] || [ X${orchidee_UserChoices_output_level_sechiba_history} = XNONE ] ; then
+	# output_level_sechiba_history is not set in orchidee.card or it is set to NONE.
+	# Deactivate the file.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_freq 1mo
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 enabled      .TRUE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_level ${orchidee_UserChoices_output_level_sechiba_history}
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_freq  ${orchidee_UserChoices_output_freq_sechiba_history}
+    fi
+    
+    if [ X${orchidee_UserChoices_output_level_sechiba_out_2} = X ] || [ X${orchidee_UserChoices_output_level_sechiba_out_2} = XNONE ] ; then
+	# output_level_sechiba_out_2 is not set in orchidee.card or it is set to NONE.
+	# Deactivate the file.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_freq 1mo
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 enabled      .TRUE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_level ${orchidee_UserChoices_output_level_sechiba_out_2}
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_freq  ${orchidee_UserChoices_output_freq_sechiba_out_2}
+    fi
+    
+    if [ X${orchidee_UserChoices_output_level_sechiba_history_4dim} = X ] || [ X${orchidee_UserChoices_output_level_sechiba_history_4dim} = XNONE ] ; then
+	# output_level_sechiba_history_4dim is not set in orchidee.card or it is set to NONE.
+	# Deactivate the file.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_freq 1mo
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 enabled      .TRUE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_level ${orchidee_UserChoices_output_level_sechiba_history_4dim}
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_freq  ${orchidee_UserChoices_output_freq_sechiba_history_4dim}
+    fi
+        
+
+    # Add include of orchidee context in iodef.xml
+    # In iodef.xml add on the next line after "COMPONENT CONTEXT"
+    echo '<context id="orchidee" src="./context_orchidee.xml"/>' > add.tmp
+    # Add inclusion of file context_input_orchidee.xml if this file exists
+    if [ -f context_input_orchidee.xml ] ; then
+        echo '<context id="orchidee" src="./context_input_orchidee.xml"/>' >> add.tmp
+    fi
+    # Include xml files for output configuration if running with workflow CMIP6
+    if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] ; then
+	echo '<context id="orchidee" src="./ping_orchidee.xml"/>' >> add.tmp
+	echo '<context id="orchidee" src="./dr2xml_orchidee.xml"/>' >> add.tmp
+    fi
+    cp iodef.xml iodef.xml.tmp
+    sed -e "/COMPONENT CONTEXT/r add.tmp" iodef.xml.tmp > iodef.xml
+    rm iodef.xml.tmp add.tmp
+
+    # Add LongName as global attribute in XIOS output files (if LongName is not empty)
+    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
+	listfile=$(ls file_def*orchidee.xml)
+	echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
+	for file in ${listfile}
+	do
+	    cp ${file} ${file}.tmp
+	    sed -e "/<file id/r add.tmp" \
+		${file}.tmp > ${file}
+	    rm ${file}.tmp 
+	done 
+	rm add.tmp
+    fi
+
+    # Compression level (if CompressionLevel is not empty)
+    if [ ! "X${config_UserChoices_CompressionLevel}" = "X" ] ; then
+	echo "NetCDF output files compression level is " ${config_UserChoices_CompressionLevel}
+    	listfile=$(ls file_def*orchidee.xml)
+    	for file in ${listfile} ; do
+	    sed -i -e "s/\(compression_level=\"\)[^\"]*\(\"\)/\1${config_UserChoices_CompressionLevel}\2/" ${file}
+    	done
+    fi
+
+
+
+    IGCM_debug_PopStack "SRF_Update"
+}
+
+#-----------------------------------------------------------------
+function SRF_Finalize
+{
+    IGCM_debug_PushStack "SRF_Finalize"
+
+    IGCM_debug_PopStack "SRF_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/pisces.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/pisces.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/pisces.driver	(revision 5899)
@@ -0,0 +1,167 @@
+#!/bin/ksh
+
+#-----------------------------------
+function MBG_Initialize
+{ 
+    IGCM_debug_PushStack "MBG_Initialize"
+
+    # Local function to find parameters in LMDZ .def files
+
+lmdzgrep2 () {
+     grep -w ${1} ${2} | grep -v "#"  | sed -e 's/=//g' -e 's/://g' -e 's/_AUTO_//' -e 's/DEFAULT//' | sed -e "s/${1}//" 
+}
+
+    ##--Variables used by MBG --
+
+    # ln_rsttr  boolean term for tracer model restart (true or false)
+    # nrsttr    control of the time step (0, 1 or 2)
+    
+    IGCM_debug_PopStack "MBG_Initialize"
+}
+
+#-----------------------------------
+function MBG_Update
+{
+    IGCM_debug_PushStack "MBG_Update"
+
+    ##--Write Frequency for iomput
+    ## Differents frequencies are allowed for MBG files
+
+    VT1D_ENABLE=".FALSE."
+    VT5D_ENABLE=".FALSE."
+    VT1M_ENABLE=".FALSE."
+    VT1Y_ENABLE=".FALSE."
+
+    for frequency in ${config_MBG_WriteFrequency} ; do
+        case ${frequency} in
+            ( 1D|1d ) VT1D_ENABLE=".TRUE." ;;
+            ( 5D|5d ) VT5D_ENABLE=".TRUE." ;;
+            ( 1M|1m ) VT1M_ENABLE=".TRUE." ;;
+            ( *[yY] ) VT1Y_ENABLE=".TRUE." ;;
+        esac
+    done
+
+    ##-- Restart configuration
+    ##-- Restart configuration
+    if ( [ "${opa9_UserChoices_Reproducibility_after_restart}" = "y" ] && [ "${config_MBG_Restart}" = "y" ] ) ; then
+        TOP_LRSTTR=.TRUE.
+        TOP_NRSTTR=2
+        IGCM_debug_Print 1 'WARNING : dangerous option for NEMO pisces too'
+        IGCM_debug_Print 1 'Reproducibility_after_Restart forced : ' ${opa9_UserChoices_Reproducibility_after_restart}
+
+    elif ( [ "${CumulPeriod}" -eq 1 ] && [ "${config_MBG_Restart}" = "n" ] ) ; then
+
+        #echo "NO RESTART FOR TOP"
+        TOP_LRSTTR=.FALSE.
+        TOP_NRSTTR=0
+
+    elif ( [ "${CumulPeriod}" -eq 1 ] && [ "${config_MBG_Restart}" = "y" ] ) ; then
+
+        #echo "RESTART TOP"
+        TOP_LRSTTR=.TRUE.
+        TOP_NRSTTR=0
+
+        # If we start from IPSLCM5* restart files.
+	    for file in restart_trc*.nc ; do
+            IGCM_debug_Print 1 "cmd done to modify IPSLCM5* NEMO pisces restartfile: " ncrename -v TRBDSi,TRBGSi -v TRNDSi,TRNGSi -v TRNBSi,TRNDSi -v TRBBSi,TRBDSi ${file} > /dev/null 2>&1
+            ncrename -v TRBDSi,TRBGSi -v TRNDSi,TRNGSi -v TRNBSi,TRNDSi -v TRBBSi,TRBDSi ${file} > /dev/null 2>&1
+	    done
+
+    else
+
+        #echo "RESTART TOP"
+        TOP_LRSTTR=.TRUE.
+        TOP_NRSTTR=2
+
+    fi
+
+
+    ##-- CO2 forcing : update atcco2 value in namelist_pisces_cfg with the same one used in LMDZ
+    IGCM_debug_Print 1 "Take same CO2 as for LMDZ, in parameter file config.def."
+    # ATM_Update is done before MBG_Update and therefore config.def file contains the correct value for CO2.
+    IGCM_debug_Print 1 'Update atcco2 in namelist_pisces_cfg with same value as for LMDZ'
+    LMDZ_CO2=$( lmdzgrep2 co2_ppm config.def )
+    IGCM_debug_Print 1 "LMDZ_CO2 : ${LMDZ_CO2} "
+    IGCM_comp_modifyNamelist force  namelist_pisces_cfg atcco2 ${LMDZ_CO2}
+
+    if [ X${config_UserChoices_ConfigType} = XESMCO2 ] ; then
+        ##-- N2O forcing : update atcn2o value in namelist_pisces_cfg with the same one used in LMDZ
+        IGCM_debug_Print 1 "Take same N2O as for LMDZ, in parameter file config.def."
+        # ATM_Update is done before MBG_Update and therefore config.def file contains the correct value for N2O
+        IGCM_debug_Print 1 'Update atcn2o in namelist_pisces_cfg with same value as for LMDZ'
+        LMDZ_N2O=$( lmdzgrep2 N2O_ppb config.def )
+        IGCM_debug_Print 1 "LMDZ_N2O : ${LMDZ_N2O} "
+        IGCM_comp_modifyNamelist force  namelist_pisces_cfg atcn2o ${LMDZ_N2O}
+    fi
+
+   if [ X"${pisces_UserChoices_age}" = X"y" ] ; then
+      echo "Activate age tracer"
+      TOP_AGE=.TRUE.
+      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file38 enabled .TRUE.
+   else
+      TOP_AGE=.FALSE.
+      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file38 enabled .FALSE.
+   fi
+##
+   if [ X"${pisces_UserChoices_cfc11}" = X"y" ] ; then
+      echo "Activate CFC11  tracer"
+      TOP_CFC11=.TRUE.
+      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file39 enabled .FALSE.
+   else
+      TOP_CFC11=.FALSE.
+      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file39 enabled .FALSE.
+   fi
+##
+   if [ X"${pisces_UserChoices_cfc12}" = X"y" ] ; then
+      echo "Activate CFC12  tracer"
+      TOP_CFC12=.TRUE.
+      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file40 enabled .TRUE.
+   else
+      TOP_CFC12=.FALSE.
+      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file40 enabled .FALSE.
+   fi
+##
+   ##-- Update namelist_top_cfg and namelist_pisces_cfg
+    IGCM_comp_modifyNamelist blocker    namelist_top_cfg     ln_rsttr  ${TOP_LRSTTR}
+    IGCM_comp_modifyNamelist blocker    namelist_top_cfg     nn_rsttr  ${TOP_NRSTTR}
+    IGCM_comp_modifyNamelist blocker    namelist_top_cfg     ln_age    ${TOP_AGE}
+    IGCM_comp_modifyNamelist blocker    namelist_top_cfg     ln_cfc11  ${TOP_CFC11}
+    IGCM_comp_modifyNamelist blocker    namelist_top_cfg     ln_cfc12  ${TOP_CFC12}
+    IGCM_comp_modifyNamelist blocker    namelist_pisces_cfg  nn_pisdmp ${OPA_NPDT_YEAR}
+
+    # Update iodef.xml
+
+    IGCM_debug_Print 1 'Informations into iodef.xml : VT1D_ENABLE VT5D_ENABLE VT1M_ENABLE VT1Y_ENABLE '
+    IGCM_debug_Print 1 ${VT1D_ENABLE}  ${VT5D_ENABLE} ${VT1M_ENABLE} ${VT1Y_ENABLE}
+
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 1d_pis enabled ${VT1D_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 5d_pis enabled ${VT5D_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 1m_pis enabled ${VT1M_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 1y_pis enabled ${VT1Y_ENABLE}
+
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 1d_pis output_level ${pisces_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 5d_pis output_level ${pisces_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 1m_pis output_level ${pisces_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-pisces.xml 1y_pis output_level ${pisces_UserChoices_OutputLevel}
+
+#    if [ X${config_UserChoices_ConfigType} = XESMCO2 ] ; then
+#      # Output file with PISCES gas variables
+#      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file41 enabled .TRUE.
+#    else
+#      IGCM_comp_modifyXmlFile force file_def_nemo-pisces.xml file41 enabled .FALSE.
+#    fi
+    
+   
+    IGCM_debug_PopStack "MBG_Update"
+}
+
+#-----------------------------------
+function MBG_Finalize
+{
+    IGCM_debug_PushStack "MBG_Finalize"
+
+    echo FINALIZE MBG !!!
+
+    IGCM_debug_PopStack "MBG_Finalize"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/si3.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/si3.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/si3.driver	(revision 5899)
@@ -0,0 +1,67 @@
+#!/bin/ksh
+
+#-----------------------------------
+function ICE_Initialize
+{ 
+    IGCM_debug_PushStack "ICE_Initialize"
+
+    echo INITIALIZE ICE !!!
+
+    IGCM_debug_PopStack "ICE_Initialize"
+}
+
+#-----------------------------------
+function ICE_Update
+{
+    IGCM_debug_PushStack "ICE_Update"
+
+
+    ##--Write Frequency for iomput
+    ## Differents frequencies are allowed for ICE files
+
+    VI1D_ENABLE=".FALSE."
+    VI5D_ENABLE=".FALSE."
+    VI1M_ENABLE=".FALSE."
+    VI1Y_ENABLE=".FALSE."
+
+    for frequency in ${config_ICE_WriteFrequency} ; do
+        case ${frequency} in
+            ( 1D|1d ) VI1D_ENABLE=".TRUE." ;;
+            ( 5D|5d ) VI5D_ENABLE=".TRUE." ;;
+            ( 1M|1m ) VI1M_ENABLE=".TRUE." ;;
+            ( *[yY] ) VI1Y_ENABLE=".TRUE." ;;
+        esac
+    done
+
+    IGCM_comp_modifyNamelist blocker    namelist_ice_cfg nn_iceini_file  ${si3_UserChoices_Init_From_File}
+
+  # Update iodef.xml
+
+    IGCM_debug_Print 1 'Informations into iodef.xml : VI1D_ENABLE VI5D_ENABLE VI1M_ENABLE VI1Y_ENABLE '
+    IGCM_debug_Print 1 ${VI1D_ENABLE}  ${VI5D_ENABLE} ${VI1M_ENABLE} ${VI1Y_ENABLE}
+
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 1d_ice enabled ${VI1D_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 5d_ice enabled ${VI5D_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 1m_ice enabled ${VI1M_ENABLE}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 1y_ice enabled ${VI1Y_ENABLE}
+
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 1d_ice output_level ${si3_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 5d_ice output_level ${si3_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 1m_ice output_level ${si3_UserChoices_OutputLevel}
+    IGCM_comp_modifyXmlFile nonblocker file_def_nemo-ice.xml 1y_ice output_level ${si3_UserChoices_OutputLevel}
+
+
+    echo UPDATE ICE !!!
+
+    IGCM_debug_PopStack "ICE_Update"
+}
+
+#-----------------------------------
+function ICE_Finalize
+{
+    IGCM_debug_PushStack "ICE_Finalize"
+
+    echo FINALIZE ICE !!!
+
+    IGCM_debug_PopStack "ICE_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/stomate.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/stomate.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/stomate.driver	(revision 5899)
@@ -0,0 +1,101 @@
+#!/bin/ksh
+
+#D- Driver for ORCHIDEE stomate component (SBG)
+
+#-----------------------------------------------------------------
+function SBG_Initialize
+{
+    IGCM_debug_PushStack "SBG_Initialize"
+
+    IGCM_debug_PopStack "SBG_Initialize"
+}
+
+#-----------------------------------------------------------------
+function SBG_Update
+{
+    IGCM_debug_PushStack "SBG_Update"
+    
+    # Output management
+    # Modify file_def_orchidee.xml file using settings from stomate.card
+    # We here suppose that for each file, in stomate.card UserChoices section, if the parameter 
+    # output_level_filename is set, then also output_freq_filename must be set. The existance of output_freq_filename will not be checked. 
+    # If output_level_filename=NONE or if it is not set, the corresponding file will be deactivated.
+    
+    if [ X${stomate_UserChoices_output_level_stomate_history} = X ] || [ X${stomate_UserChoices_output_level_stomate_history} = XNONE ] ; then
+	# output_level_stomate_history is not set in stomate.card or it is set to NONE.
+	# Deactivate the file.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_freq 1mo
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 enabled      .TRUE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_level ${stomate_UserChoices_output_level_stomate_history}
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_freq  ${stomate_UserChoices_output_freq_stomate_history}
+    fi
+    
+    if [ X${stomate_UserChoices_output_level_stomate_ipcc_history} = X ] || [ X${stomate_UserChoices_output_level_stomate_ipcc_history} = XNONE ] ; then
+	# output_level_stomate_ipcc_history is not set in stomate.card or it is set to NONE.
+	# Deactivate the file.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_freq 1mo
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 enabled      .TRUE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_level ${stomate_UserChoices_output_level_stomate_ipcc_history}
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_freq  ${stomate_UserChoices_output_freq_stomate_ipcc_history}
+    fi
+
+        
+    if [ X${stomate_UserChoices_output_level_stomate_history_4dim} = X ] || [ X${stomate_UserChoices_output_level_stomate_history_4dim} = XNONE ] ; then
+	# output_level_stomate_history_4dim is not set in stomate.card or it is set to NONE.
+	# Deactivate the file.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 enabled .FALSE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_level 0
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_freq 1mo
+    else
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 enabled      .TRUE.
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_level ${stomate_UserChoices_output_level_stomate_history_4dim}
+	IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate3 output_freq  ${stomate_UserChoices_output_freq_stomate_history_4dim}
+    fi
+
+
+    # Define in orchidee.def if restart file should be used
+    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SBG_Restart}" = "n" ] ) ; then
+        echo "STOMATE : without restart"
+        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_RESTART_FILEIN NONE
+    else
+        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_RESTART_FILEIN stomate_rest_in.nc
+    fi
+
+
+    # Modify in orchidee.def NINPUT_UPDATE if it is set in stomate.card section UserChoices
+    # NINPUT_UPDATE inidcates if the nitrogen maps should be updated and at which frequency
+    if [ ! X${stomate_UserChoices_NINPUT_UPDATE} = X ] ; then
+        # Take the value from stomate.card
+        IGCM_comp_modifyDefFile nonblocker orchidee.def NINPUT_UPDATE   ${stomate_UserChoices_NINPUT_UPDATE}
+    else
+        # Set default value 0Y
+        IGCM_comp_modifyDefFile nonblocker orchidee.def NINPUT_UPDATE 0Y
+    fi
+
+    # Modify in orchidee.def STOMATE_IMPOSE_CN if it is set in stomate.card section UserChoices
+    # STOMATE_IMPOSE_CN inidcates if the nitrogen should be imposed or not. 
+    if [ ! X${stomate_UserChoices_STOMATE_IMPOSE_CN} = X ] ; then
+        # Take the value from stomate.card
+        IGCM_comp_modifyDefFile nonblocker orchidee.def STOMATE_IMPOSE_CN   ${stomate_UserChoices_STOMATE_IMPOSE_CN}
+    else
+        # Set default value n (nitrogen is not imposed)
+        IGCM_comp_modifyDefFile nonblocker orchidee.def STOMATE_IMPOSE_CN n
+    fi
+
+
+    IGCM_debug_PopStack "SBG_Update"
+}
+
+#-----------------------------------------------------------------
+function SBG_Finalize
+{
+    IGCM_debug_PushStack "SBG_Finalize"
+    
+    IGCM_debug_PopStack "SBG_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/xios.driver
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/xios.driver	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/DRIVER/xios.driver	(revision 5899)
@@ -0,0 +1,42 @@
+#!/bin/ksh
+#-----------------------------------
+function IOS_Initialize
+{ 
+    IGCM_debug_PushStack "IOS_Initialize"
+
+    echo INITIALIZE IOS !!!
+
+    IGCM_debug_PopStack "IOS_Initialize"
+}
+
+#-----------------------------------
+function IOS_Update
+{
+    IGCM_debug_PushStack "IOS_Update"
+
+    echo UPDATE IOS !!!
+# Activate server mode
+    IGCM_comp_modifyXmlFile force iodef.xml using_server NONE true
+
+# Activate 2nd server level for CMIP6 type experiments (CMIP6 workflow)
+    if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] || [ X"$( echo ${config_UserChoices_ExpType} | grep MR025 )" != "X" ] ; then
+       IGCM_comp_modifyXmlFile force iodef.xml using_server2 NONE true
+    fi
+
+    if [ -f namcouple ] ; then
+	sed -e "s/2  LMDZ oceanx/3 LMDZ oceanx ${config_Executable_IOS[1]}/" namcouple > namcouple.tmp 
+	IGCM_sys_Mv namcouple.tmp namcouple
+    fi
+
+    IGCM_debug_PopStack "IOS_Update"
+}
+
+#-----------------------------------
+function IOS_Finalize
+{
+    IGCM_debug_PushStack "IOS_Finalize"
+
+    echo FINALIZE IOS !!!
+
+    IGCM_debug_PopStack "IOS_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_ensemble_def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_ensemble_def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_ensemble_def	(revision 5899)
@@ -0,0 +1,20 @@
+#!/bin/bash
+whole_ensemble_size=$1
+ensemble_pool_size=$2
+ensemble_pool_rank=$3
+ensemble_pool_member_rank=$4
+noise_teta=$5
+
+echo noise_teta=$noise_teta > ensemble.def 
+echo seed_noise_teta=$(($ensemble_pool_size * $ensemble_pool_rank + $ensemble_pool_member_rank)) >> ensemble.def 
+echo whole_ensemble_size=$whole_ensemble_size >> ensemble.def 
+echo ensemble_pool_size=$ensemble_pool_size >> ensemble.def
+echo ensemble_pool_rank=$ensemble_pool_rank >> ensemble.def
+echo ensemble_pool_member_rank=$ensemble_pool_member_rank >> ensemble.def
+
+echo "&ensemble" > namelist_ensemble
+echo "whole_ensemble_size=$whole_ensemble_size,">> namelist_ensemble
+echo "ensemble_pool_size=$ensemble_pool_size,">> namelist_ensemble
+echo "ensemble_pool_rank=$ensemble_pool_rank,">> namelist_ensemble
+echo "ensemble_pool_member_rank=$ensemble_pool_member_rank">> namelist_ensemble
+echo "/" >> namelist_ensemble
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_iodef_xml.sh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_iodef_xml.sh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_iodef_xml.sh	(revision 5899)
@@ -0,0 +1,5 @@
+#!/bin/bash
+pool_size=$1
+oasis_codes_id=LMDZ:${pool_size}",oceanx:"${pool_size}
+cat iodef_template.xml > iodef.xml
+sed -i -e "s/@oasis_codes_id/$oasis_codes_id/g" iodef.xml
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_oasis_namecoupl.sh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_oasis_namecoupl.sh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_oasis_namecoupl.sh	(revision 5899)
@@ -0,0 +1,40 @@
+#/bin/bash
+pool_size=$1
+pool_rank=$2
+
+num_local_fields=25
+
+if (( $pool_size != 0)) 
+then
+  num_pool_fields=$(($num_local_fields * $pool_size))
+  models_list=$((2*$pool_size+1))
+  models_list=${models_list}
+  for (( c=0; c<$pool_size; c++ ))
+  do
+     models_list=${models_list}" LMDZ:"${c}
+  done  
+  for (( c=0; c<$pool_size; c++ ))
+  do
+     models_list=${models_list}" oceanx:"${c}
+  done
+  models_list=${models_list}" xios.x"
+  cp oasis_namcouple_header namcouple
+  sed -i -e "s/@nfield/$num_pool_fields/g" namcouple
+  sed -i -e "s/@models_list/$models_list/g" namcouple
+
+  for (( c=0; c<$pool_size; c++ ))
+  do
+    whole_ensemble_rank=$(($pool_size*${pool_rank}+${c}))
+    cat oasis_namcouple_body >> namcouple
+    sed -i -e "s/@member/__$c/g" namcouple
+    sed -i -e "s/@whole_member/__$c/g" namcouple
+  done
+  cat oasis_namcouple_epilog >> namcouple
+else
+  cp oasis_namcouple_header namcouple
+  sed -i -e "s/@nfield/$num_local_fields/g"  namcouple
+  sed -i -e "s/@models_list/3 LMDZ oceanx xios.x/g" namcouple
+  cat oasis_namcouple_body >> namcouple
+  sed -i -e "s/@member//g" namcouple
+  cat oasis_namcouple_epilog >> namcouple
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_oasis_restart.sh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_oasis_restart.sh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_oasis_restart.sh	(revision 5899)
@@ -0,0 +1,87 @@
+#!/bin/bash
+pool_member_rank=$1
+#pool_rank=$2
+member=$2
+FirstInitialize=$3
+set -vx
+#cd ..
+echo ${FirstInitialize}
+pwd
+#if ( ${FirstInitialize} ) ; then
+
+#     for (( i = 0 ; i < $((${pool_size})) ; i++ ))
+#     do
+# 	#  cd OASIS_RESTART
+# 	cd MEMBER_$i
+# 	whole_ensemble_size=$((${pool_size}*${pool_rank}+$i))
+#         cp ../ENSEMBLE_TEMPLATE/flxat.nc flxat__${whole_ensemble_size}.nc
+#         cp ../ENSEMBLE_TEMPLATE/sstoc.nc sstoc__${whole_ensemble_size}.nc
+#         chmod u+w flxat__${whole_ensemble_size}.nc sstoc__${whole_ensemble_size}.nc
+# 	for varname in COTAUXXU COTAUYYU COTAUZZU COTAUXXV COTAUYYV COTAUZZV COTOTRAI COTOTSNO COTOTEVA COICEVAP COQSRMIX COQNSMIX COSHFICE CONSFICE CODFLXDT COCALVIN COLIQRUN COWINDSP COTAUMOD
+# 	do
+# 	    ncrename -O -v .$varname,${varname}__${i} flxat__${whole_ensemble_size}.nc
+# #    ncrename -O -d .${varname}_nx,${varname}__${i}_nx flxat__${whole_ensemble_size}.nc
+# #	    ncrename -O -d .${varname}_ny,${varname}__${i}_ny flxat__${whole_ensemble_size}.nc
+# 	done
+# 	for varname in O_SSTSST OIceFrc O_AlbIce O_TepIce O_OCurx1 O_OCury1 O_OCurz1
+# 	do
+# 	    ncrename -O -v .$varname,${varname}__${i} sstoc__${whole_ensemble_size}.nc
+# #    ncrename -O -d .${varname}_nx,${varname}__${i}_nx sstoc__${whole_ensemble_size}.nc
+# #	    ncrename -O -d .${varname}_ny,${varname}__${i}_ny sstoc__${whole_ensemble_size}.nc
+# #    ncrename -O -v .loc02_${varname},loc02_${varname}__${i}_ny sstoc__${whole_ensemble_size}.nc
+# #	    ncrename -O -d .loc02_${varname}_nx,loc02_${varname}__${i}_nx sstoc__${whole_ensemble_size}.nc
+# #	    ncrename -O -d .loc02_${varname}_ny,loc02_${varname}__${i}_ny sstoc__${whole_ensemble_size}.nc
+# 	done
+# 	cd ..
+#     done
+    mv flxat.nc flxat__${pool_member_rank}.nc
+    mv sstoc.nc sstoc__${pool_member_rank}.nc
+     chmod u+w flxat__${pool_member_rank}.nc sstoc__${pool_member_rank}.nc 
+	for varname in COTAUXXU COTAUYYU COTAUZZU COTAUXXV COTAUYYV COTAUZZV COTOTRAI COTOTSNO COTOTEVA COICEVAP COQSRMIX COQNSMIX COSHFICE CONSFICE CODFLXDT COCALVIN COLIQRUN COWINDSP COTAUMOD
+	do
+	    ncrename -O -v .${varname},${varname}__${pool_member_rank} flxat__${pool_member_rank}.nc
+#    ncrename -O -d .${varname}__$member_nx,${varname}__${i}_nx flxat__${whole_ensemble_size}.nc
+#	    ncrename -O -d .${varname}__$member_ny,${varname}__${i}_ny flxat__${whole_ensemble_size}.nc
+	done
+	for varname in O_SSTSST OIceFrc O_AlbIce O_TepIce O_OCurx1 O_OCury1 O_OCurz1
+	do
+	    ncrename -O -v .${varname},${varname}__${pool_member_rank} sstoc__${pool_member_rank}.nc
+	done
+
+# else
+
+#    for (( i = 0 ; i < $((${pool_size})) ; i++ ))
+#    do
+	#  cd OASIS_RESTART
+#	cd MEMBER_$i
+#	whole_ensemble_size=$((${pool_size}*${pool_rank}+$i))
+#	cp ../MEMBER_$member/flxat.nc flxat__${whole_ensemble_size}.nc
+#	cp ../MEMBER_$member/sstoc.nc sstoc__${whole_ensemble_size}.nc
+#        chmod u+w flxat__${whole_ensemble_size}.nc sstoc__${whole_ensemble_size}.nc
+
+#    mv flxat.nc flxat__${pool_member_rank}.nc
+#    mv sstoc.nc sstoc__${pool_member_rank}.nc
+#         chmod u+w flxat__${pool_member_rank}.nc sstoc__${pool_member_rank}.nc
+
+
+#	for varname in COTAUXXU COTAUYYU COTAUZZU COTAUXXV COTAUYYV COTAUZZV COTOTRAI COTOTSNO COTOTEVA COICEVAP COQSRMIX COQNSMIX COSHFICE CONSFICE CODFLXDT COCALVIN COLIQRUN COWINDSP COTAUMOD
+#	do
+#	    ncrename -O -v .${varname}__${member},${varname}__${pool_member_rank} flxat__${pool_member_rank}.nc
+#    ncrename -O -d .${varname}__$member_nx,${varname}__${i}_nx flxat__${whole_ensemble_size}.nc
+#	    ncrename -O -d .${varname}__$member_ny,${varname}__${i}_ny flxat__${whole_ensemble_size}.nc
+#	done
+#	for varname in O_SSTSST OIceFrc O_AlbIce O_TepIce O_OCurx1 O_OCury1 O_OCurz1
+#	do
+#	    ncrename -O -v .${varname}__${member},${varname}__${pool_member_rank} sstoc__${pool_member_rank}.nc
+#    ncrename -O -d .${varname}__$member_nx,${varname}__${i}_nx sstoc__${whole_ensemble_size}.nc
+#	    ncrename -O -d .${varname}__$member_ny,${varname}__${i}_ny sstoc__${whole_ensemble_size}.nc
+#    ncrename -O -v .loc02_${varname}__$member,loc02_${varname}__${i}_ny sstoc__${whole_ensemble_size}.nc
+#	    ncrename -O -d .loc02_${varname}__$member_nx,loc02_${varname}__${i}_nx sstoc__${whole_ensemble_size}.nc
+#	    ncrename -O -d .loc02_${varname}__$member_ny,loc02_${varname}__${i}_ny sstoc__${whole_ensemble_size}.nc
+#	done
+#	cd ..
+#    done
+
+#fi
+cd ..
+set +vx
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_runfile.sh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_runfile.sh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/create_runfile.sh	(revision 5899)
@@ -0,0 +1,20 @@
+#!/bin/bash
+pool_size=$1
+pool_rank=$2
+
+nlmdz=47
+nopa=90
+nxios=1
+rm -f run_file
+for (( c=0; c<$pool_size; c++ ))
+do
+  whole_ensemble_rank=$((${pool_size}*${pool_rank}+$c))
+  echo "${nlmdz}-2 env OMP_NUM_THREADS=2 MEMBER=${whole_ensemble_rank} ./script_lmdz.x.ksh" >> run_file
+done  
+for (( c=0; c<$pool_size; c++ ))
+do
+  whole_ensemble_rank=$((${pool_size}*${pool_rank}+$c))
+  echo "${nopa}-1 env OMP_NUM_THREADS=2 MEMBER=${whole_ensemble_rank} ./script_opa.xx.ksh" >> run_file
+done  
+echo "${nxios}-1 env OMP_NUM_THREADS=1  ./script_xios.x.ksh" >> run_file
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_lmdz.x.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_lmdz.x.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_lmdz.x.ksh	(revision 5899)
@@ -0,0 +1,13 @@
+#!/bin/bash
+cd MEMBER_$MEMBER
+echo LMDZ MEMBER_$MEMBER > out_lmdz.x.out.${SLURM_PROCID}
+export KMP_STACKSIZE=3g
+export KMP_LIBRARY=turnaround
+export MKL_SERIAL=YES
+OMP_NUM_THREADS=2
+if [[ -z $DDT ]]
+then
+  ../lmdz.x >> out_lmdz.x.out.${SLURM_PROCID} 2>out_lmdz.x.err.${SLURM_PROCID}
+else
+ ddt-client  ../lmdz.x >> out_lmdz.x.out.${SLURM_PROCID} 2>out_lmdz.x.err.${SLURM_PROCID}
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_opa.xx.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_opa.xx.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_opa.xx.ksh	(revision 5899)
@@ -0,0 +1,9 @@
+#!/bin/bash
+cd MEMBER_$MEMBER
+echo NEMO MEMBER_$MEMBER > out_opa.xx.out.${SLURM_PROCID}
+if [[ -z $DDT ]]
+then
+  ../opa.xx >> out_opa.xx.out.${SLURM_PROCID} 2>out_opa.xx.err.${SLURM_PROCID}
+else
+  ddt-client ../opa.xx >> out_opa.xx.out.${SLURM_PROCID} 2>out_opa.xx.err.${SLURM_PROCID}
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_xios.x.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_xios.x.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ENSEMBLES/script_xios.x.ksh	(revision 5899)
@@ -0,0 +1,8 @@
+#!/bin/bash
+cd XIOS
+if [[ -z $DDT ]]
+then
+  ../xios.x >> out_xios.x.out.${SLURM_PROCID} 2>out_xios.x.err.${SLURM_PROCID}
+else
+  ddt-client ../xios.x >> out_xios.x.out.${SLURM_PROCID} 2>out_xios.x.err.${SLURM_PROCID}
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/CMIP5_gridcar_CO2_emissions_fossil_fuel_Andres_1751-2007_monthly_SC.txt
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/CMIP5_gridcar_CO2_emissions_fossil_fuel_Andres_1751-2007_monthly_SC.txt	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/CMIP5_gridcar_CO2_emissions_fossil_fuel_Andres_1751-2007_monthly_SC.txt	(revision 5899)
@@ -0,0 +1,3085 @@
+year    month  gridsum (PgC/mth)
+1751    01     0.00021
+1751    02     0.00021
+1751    03     0.00021
+1751    04     0.00021
+1751    05     0.00021
+1751    06     0.00021
+1751    07     0.00021
+1751    08     0.00021
+1751    09     0.00021
+1751    10     0.00021
+1751    11     0.00021
+1751    12     0.00021
+1752    01     0.00021
+1752    02     0.00021
+1752    03     0.00021
+1752    04     0.00021
+1752    05     0.00021
+1752    06     0.00021
+1752    07     0.00021
+1752    08     0.00021
+1752    09     0.00021
+1752    10     0.00021
+1752    11     0.00021
+1752    12     0.00021
+1753    01     0.00021
+1753    02     0.00021
+1753    03     0.00021
+1753    04     0.00021
+1753    05     0.00021
+1753    06     0.00021
+1753    07     0.00021
+1753    08     0.00021
+1753    09     0.00021
+1753    10     0.00021
+1753    11     0.00021
+1753    12     0.00021
+1754    01     0.00021
+1754    02     0.00021
+1754    03     0.00021
+1754    04     0.00021
+1754    05     0.00021
+1754    06     0.00021
+1754    07     0.00021
+1754    08     0.00021
+1754    09     0.00021
+1754    10     0.00021
+1754    11     0.00021
+1754    12     0.00021
+1755    01     0.00021
+1755    02     0.00021
+1755    03     0.00021
+1755    04     0.00021
+1755    05     0.00021
+1755    06     0.00021
+1755    07     0.00021
+1755    08     0.00021
+1755    09     0.00021
+1755    10     0.00021
+1755    11     0.00021
+1755    12     0.00021
+1756    01     0.00023
+1756    02     0.00023
+1756    03     0.00023
+1756    04     0.00023
+1756    05     0.00023
+1756    06     0.00023
+1756    07     0.00023
+1756    08     0.00023
+1756    09     0.00023
+1756    10     0.00023
+1756    11     0.00023
+1756    12     0.00023
+1757    01     0.00023
+1757    02     0.00023
+1757    03     0.00023
+1757    04     0.00023
+1757    05     0.00023
+1757    06     0.00023
+1757    07     0.00023
+1757    08     0.00023
+1757    09     0.00023
+1757    10     0.00023
+1757    11     0.00023
+1757    12     0.00023
+1758    01     0.00023
+1758    02     0.00023
+1758    03     0.00023
+1758    04     0.00023
+1758    05     0.00023
+1758    06     0.00023
+1758    07     0.00023
+1758    08     0.00023
+1758    09     0.00023
+1758    10     0.00023
+1758    11     0.00023
+1758    12     0.00023
+1759    01     0.00023
+1759    02     0.00023
+1759    03     0.00023
+1759    04     0.00023
+1759    05     0.00023
+1759    06     0.00023
+1759    07     0.00023
+1759    08     0.00023
+1759    09     0.00023
+1759    10     0.00023
+1759    11     0.00023
+1759    12     0.00023
+1760    01     0.00023
+1760    02     0.00023
+1760    03     0.00023
+1760    04     0.00023
+1760    05     0.00023
+1760    06     0.00023
+1760    07     0.00023
+1760    08     0.00023
+1760    09     0.00023
+1760    10     0.00023
+1760    11     0.00023
+1760    12     0.00023
+1761    01     0.00025
+1761    02     0.00025
+1761    03     0.00025
+1761    04     0.00025
+1761    05     0.00025
+1761    06     0.00025
+1761    07     0.00025
+1761    08     0.00025
+1761    09     0.00025
+1761    10     0.00025
+1761    11     0.00025
+1761    12     0.00025
+1762    01     0.00025
+1762    02     0.00025
+1762    03     0.00025
+1762    04     0.00025
+1762    05     0.00025
+1762    06     0.00025
+1762    07     0.00025
+1762    08     0.00025
+1762    09     0.00025
+1762    10     0.00025
+1762    11     0.00025
+1762    12     0.00025
+1763    01     0.00025
+1763    02     0.00025
+1763    03     0.00025
+1763    04     0.00025
+1763    05     0.00025
+1763    06     0.00025
+1763    07     0.00025
+1763    08     0.00025
+1763    09     0.00025
+1763    10     0.00025
+1763    11     0.00025
+1763    12     0.00025
+1764    01     0.00025
+1764    02     0.00025
+1764    03     0.00025
+1764    04     0.00025
+1764    05     0.00025
+1764    06     0.00025
+1764    07     0.00025
+1764    08     0.00025
+1764    09     0.00025
+1764    10     0.00025
+1764    11     0.00025
+1764    12     0.00025
+1765    01     0.00025
+1765    02     0.00025
+1765    03     0.00025
+1765    04     0.00025
+1765    05     0.00025
+1765    06     0.00025
+1765    07     0.00025
+1765    08     0.00025
+1765    09     0.00025
+1765    10     0.00025
+1765    11     0.00025
+1765    12     0.00025
+1766    01     0.00028
+1766    02     0.00028
+1766    03     0.00028
+1766    04     0.00028
+1766    05     0.00028
+1766    06     0.00028
+1766    07     0.00028
+1766    08     0.00028
+1766    09     0.00028
+1766    10     0.00028
+1766    11     0.00028
+1766    12     0.00028
+1767    01     0.00028
+1767    02     0.00028
+1767    03     0.00028
+1767    04     0.00028
+1767    05     0.00028
+1767    06     0.00028
+1767    07     0.00028
+1767    08     0.00028
+1767    09     0.00028
+1767    10     0.00028
+1767    11     0.00028
+1767    12     0.00028
+1768    01     0.00028
+1768    02     0.00028
+1768    03     0.00028
+1768    04     0.00028
+1768    05     0.00028
+1768    06     0.00028
+1768    07     0.00028
+1768    08     0.00028
+1768    09     0.00028
+1768    10     0.00028
+1768    11     0.00028
+1768    12     0.00028
+1769    01     0.00028
+1769    02     0.00028
+1769    03     0.00028
+1769    04     0.00028
+1769    05     0.00028
+1769    06     0.00028
+1769    07     0.00028
+1769    08     0.00028
+1769    09     0.00028
+1769    10     0.00028
+1769    11     0.00028
+1769    12     0.00028
+1770    01     0.00028
+1770    02     0.00028
+1770    03     0.00028
+1770    04     0.00028
+1770    05     0.00028
+1770    06     0.00028
+1770    07     0.00028
+1770    08     0.00028
+1770    09     0.00028
+1770    10     0.00028
+1770    11     0.00028
+1770    12     0.00028
+1771    01     0.00031
+1771    02     0.00031
+1771    03     0.00031
+1771    04     0.00031
+1771    05     0.00031
+1771    06     0.00031
+1771    07     0.00031
+1771    08     0.00031
+1771    09     0.00031
+1771    10     0.00031
+1771    11     0.00031
+1771    12     0.00031
+1772    01     0.00031
+1772    02     0.00031
+1772    03     0.00031
+1772    04     0.00031
+1772    05     0.00031
+1772    06     0.00031
+1772    07     0.00031
+1772    08     0.00031
+1772    09     0.00031
+1772    10     0.00031
+1772    11     0.00031
+1772    12     0.00031
+1773    01     0.00031
+1773    02     0.00031
+1773    03     0.00031
+1773    04     0.00031
+1773    05     0.00031
+1773    06     0.00031
+1773    07     0.00031
+1773    08     0.00031
+1773    09     0.00031
+1773    10     0.00031
+1773    11     0.00031
+1773    12     0.00031
+1774    01     0.00031
+1774    02     0.00031
+1774    03     0.00031
+1774    04     0.00031
+1774    05     0.00031
+1774    06     0.00031
+1774    07     0.00031
+1774    08     0.00031
+1774    09     0.00031
+1774    10     0.00031
+1774    11     0.00031
+1774    12     0.00031
+1775    01     0.00031
+1775    02     0.00031
+1775    03     0.00031
+1775    04     0.00031
+1775    05     0.00031
+1775    06     0.00031
+1775    07     0.00031
+1775    08     0.00031
+1775    09     0.00031
+1775    10     0.00031
+1775    11     0.00031
+1775    12     0.00031
+1776    01     0.00034
+1776    02     0.00034
+1776    03     0.00034
+1776    04     0.00034
+1776    05     0.00034
+1776    06     0.00034
+1776    07     0.00034
+1776    08     0.00034
+1776    09     0.00034
+1776    10     0.00034
+1776    11     0.00034
+1776    12     0.00034
+1777    01     0.00034
+1777    02     0.00034
+1777    03     0.00034
+1777    04     0.00034
+1777    05     0.00034
+1777    06     0.00034
+1777    07     0.00034
+1777    08     0.00034
+1777    09     0.00034
+1777    10     0.00034
+1777    11     0.00034
+1777    12     0.00034
+1778    01     0.00034
+1778    02     0.00034
+1778    03     0.00034
+1778    04     0.00034
+1778    05     0.00034
+1778    06     0.00034
+1778    07     0.00034
+1778    08     0.00034
+1778    09     0.00034
+1778    10     0.00034
+1778    11     0.00034
+1778    12     0.00034
+1779    01     0.00034
+1779    02     0.00034
+1779    03     0.00034
+1779    04     0.00034
+1779    05     0.00034
+1779    06     0.00034
+1779    07     0.00034
+1779    08     0.00034
+1779    09     0.00034
+1779    10     0.00034
+1779    11     0.00034
+1779    12     0.00034
+1780    01     0.00034
+1780    02     0.00034
+1780    03     0.00034
+1780    04     0.00034
+1780    05     0.00034
+1780    06     0.00034
+1780    07     0.00034
+1780    08     0.00034
+1780    09     0.00034
+1780    10     0.00034
+1780    11     0.00034
+1780    12     0.00034
+1781    01     0.00038
+1781    02     0.00038
+1781    03     0.00038
+1781    04     0.00038
+1781    05     0.00038
+1781    06     0.00038
+1781    07     0.00038
+1781    08     0.00038
+1781    09     0.00038
+1781    10     0.00038
+1781    11     0.00038
+1781    12     0.00038
+1782    01     0.00038
+1782    02     0.00038
+1782    03     0.00038
+1782    04     0.00038
+1782    05     0.00038
+1782    06     0.00038
+1782    07     0.00038
+1782    08     0.00038
+1782    09     0.00038
+1782    10     0.00038
+1782    11     0.00038
+1782    12     0.00038
+1783    01     0.00038
+1783    02     0.00038
+1783    03     0.00038
+1783    04     0.00038
+1783    05     0.00038
+1783    06     0.00038
+1783    07     0.00038
+1783    08     0.00038
+1783    09     0.00038
+1783    10     0.00038
+1783    11     0.00038
+1783    12     0.00038
+1784    01     0.00038
+1784    02     0.00038
+1784    03     0.00038
+1784    04     0.00038
+1784    05     0.00038
+1784    06     0.00038
+1784    07     0.00038
+1784    08     0.00038
+1784    09     0.00038
+1784    10     0.00038
+1784    11     0.00038
+1784    12     0.00038
+1785    01     0.00038
+1785    02     0.00038
+1785    03     0.00038
+1785    04     0.00038
+1785    05     0.00038
+1785    06     0.00038
+1785    07     0.00038
+1785    08     0.00038
+1785    09     0.00038
+1785    10     0.00038
+1785    11     0.00038
+1785    12     0.00038
+1786    01     0.00044
+1786    02     0.00044
+1786    03     0.00044
+1786    04     0.00044
+1786    05     0.00044
+1786    06     0.00044
+1786    07     0.00044
+1786    08     0.00044
+1786    09     0.00044
+1786    10     0.00044
+1786    11     0.00044
+1786    12     0.00044
+1787    01     0.00044
+1787    02     0.00044
+1787    03     0.00044
+1787    04     0.00044
+1787    05     0.00044
+1787    06     0.00044
+1787    07     0.00044
+1787    08     0.00044
+1787    09     0.00044
+1787    10     0.00044
+1787    11     0.00044
+1787    12     0.00044
+1788    01     0.00044
+1788    02     0.00044
+1788    03     0.00044
+1788    04     0.00044
+1788    05     0.00044
+1788    06     0.00044
+1788    07     0.00044
+1788    08     0.00044
+1788    09     0.00044
+1788    10     0.00044
+1788    11     0.00044
+1788    12     0.00044
+1789    01     0.00044
+1789    02     0.00044
+1789    03     0.00044
+1789    04     0.00044
+1789    05     0.00044
+1789    06     0.00044
+1789    07     0.00044
+1789    08     0.00044
+1789    09     0.00044
+1789    10     0.00044
+1789    11     0.00044
+1789    12     0.00044
+1790    01     0.00044
+1790    02     0.00044
+1790    03     0.00044
+1790    04     0.00044
+1790    05     0.00044
+1790    06     0.00044
+1790    07     0.00044
+1790    08     0.00044
+1790    09     0.00044
+1790    10     0.00044
+1790    11     0.00044
+1790    12     0.00044
+1791    01     0.00049
+1791    02     0.00049
+1791    03     0.00049
+1791    04     0.00049
+1791    05     0.00049
+1791    06     0.00049
+1791    07     0.00049
+1791    08     0.00049
+1791    09     0.00049
+1791    10     0.00049
+1791    11     0.00049
+1791    12     0.00049
+1792    01     0.00050
+1792    02     0.00050
+1792    03     0.00050
+1792    04     0.00050
+1792    05     0.00050
+1792    06     0.00050
+1792    07     0.00050
+1792    08     0.00050
+1792    09     0.00050
+1792    10     0.00050
+1792    11     0.00050
+1792    12     0.00050
+1793    01     0.00050
+1793    02     0.00050
+1793    03     0.00050
+1793    04     0.00050
+1793    05     0.00050
+1793    06     0.00050
+1793    07     0.00050
+1793    08     0.00050
+1793    09     0.00050
+1793    10     0.00050
+1793    11     0.00050
+1793    12     0.00050
+1794    01     0.00050
+1794    02     0.00050
+1794    03     0.00050
+1794    04     0.00050
+1794    05     0.00050
+1794    06     0.00050
+1794    07     0.00050
+1794    08     0.00050
+1794    09     0.00050
+1794    10     0.00050
+1794    11     0.00050
+1794    12     0.00050
+1795    01     0.00050
+1795    02     0.00050
+1795    03     0.00050
+1795    04     0.00050
+1795    05     0.00050
+1795    06     0.00050
+1795    07     0.00050
+1795    08     0.00050
+1795    09     0.00050
+1795    10     0.00050
+1795    11     0.00050
+1795    12     0.00050
+1796    01     0.00052
+1796    02     0.00052
+1796    03     0.00052
+1796    04     0.00052
+1796    05     0.00052
+1796    06     0.00052
+1796    07     0.00052
+1796    08     0.00052
+1796    09     0.00052
+1796    10     0.00052
+1796    11     0.00052
+1796    12     0.00052
+1797    01     0.00055
+1797    02     0.00055
+1797    03     0.00055
+1797    04     0.00055
+1797    05     0.00055
+1797    06     0.00055
+1797    07     0.00055
+1797    08     0.00055
+1797    09     0.00055
+1797    10     0.00055
+1797    11     0.00055
+1797    12     0.00055
+1798    01     0.00057
+1798    02     0.00057
+1798    03     0.00057
+1798    04     0.00057
+1798    05     0.00057
+1798    06     0.00057
+1798    07     0.00057
+1798    08     0.00057
+1798    09     0.00057
+1798    10     0.00057
+1798    11     0.00057
+1798    12     0.00057
+1799    01     0.00060
+1799    02     0.00060
+1799    03     0.00060
+1799    04     0.00060
+1799    05     0.00060
+1799    06     0.00060
+1799    07     0.00060
+1799    08     0.00060
+1799    09     0.00060
+1799    10     0.00060
+1799    11     0.00060
+1799    12     0.00060
+1800    01     0.00064
+1800    02     0.00064
+1800    03     0.00064
+1800    04     0.00064
+1800    05     0.00064
+1800    06     0.00064
+1800    07     0.00064
+1800    08     0.00064
+1800    09     0.00064
+1800    10     0.00064
+1800    11     0.00064
+1800    12     0.00064
+1801    01     0.00064
+1801    02     0.00064
+1801    03     0.00064
+1801    04     0.00064
+1801    05     0.00064
+1801    06     0.00064
+1801    07     0.00064
+1801    08     0.00064
+1801    09     0.00064
+1801    10     0.00064
+1801    11     0.00064
+1801    12     0.00064
+1802    01     0.00084
+1802    02     0.00084
+1802    03     0.00084
+1802    04     0.00084
+1802    05     0.00084
+1802    06     0.00084
+1802    07     0.00084
+1802    08     0.00084
+1802    09     0.00084
+1802    10     0.00084
+1802    11     0.00084
+1802    12     0.00084
+1803    01     0.00072
+1803    02     0.00072
+1803    03     0.00072
+1803    04     0.00072
+1803    05     0.00072
+1803    06     0.00072
+1803    07     0.00072
+1803    08     0.00072
+1803    09     0.00072
+1803    10     0.00072
+1803    11     0.00072
+1803    12     0.00072
+1804    01     0.00078
+1804    02     0.00078
+1804    03     0.00078
+1804    04     0.00078
+1804    05     0.00078
+1804    06     0.00078
+1804    07     0.00078
+1804    08     0.00078
+1804    09     0.00078
+1804    10     0.00078
+1804    11     0.00078
+1804    12     0.00078
+1805    01     0.00076
+1805    02     0.00076
+1805    03     0.00076
+1805    04     0.00076
+1805    05     0.00076
+1805    06     0.00076
+1805    07     0.00076
+1805    08     0.00076
+1805    09     0.00076
+1805    10     0.00076
+1805    11     0.00076
+1805    12     0.00076
+1806    01     0.00080
+1806    02     0.00080
+1806    03     0.00080
+1806    04     0.00080
+1806    05     0.00080
+1806    06     0.00080
+1806    07     0.00080
+1806    08     0.00080
+1806    09     0.00080
+1806    10     0.00080
+1806    11     0.00080
+1806    12     0.00080
+1807    01     0.00084
+1807    02     0.00084
+1807    03     0.00084
+1807    04     0.00084
+1807    05     0.00084
+1807    06     0.00084
+1807    07     0.00084
+1807    08     0.00084
+1807    09     0.00084
+1807    10     0.00084
+1807    11     0.00084
+1807    12     0.00084
+1808    01     0.00080
+1808    02     0.00080
+1808    03     0.00080
+1808    04     0.00080
+1808    05     0.00080
+1808    06     0.00080
+1808    07     0.00080
+1808    08     0.00080
+1808    09     0.00080
+1808    10     0.00080
+1808    11     0.00080
+1808    12     0.00080
+1809    01     0.00080
+1809    02     0.00080
+1809    03     0.00080
+1809    04     0.00080
+1809    05     0.00080
+1809    06     0.00080
+1809    07     0.00080
+1809    08     0.00080
+1809    09     0.00080
+1809    10     0.00080
+1809    11     0.00080
+1809    12     0.00080
+1810    01     0.00085
+1810    02     0.00085
+1810    03     0.00085
+1810    04     0.00085
+1810    05     0.00085
+1810    06     0.00085
+1810    07     0.00085
+1810    08     0.00085
+1810    09     0.00085
+1810    10     0.00085
+1810    11     0.00085
+1810    12     0.00085
+1811    01     0.00090
+1811    02     0.00090
+1811    03     0.00090
+1811    04     0.00090
+1811    05     0.00090
+1811    06     0.00090
+1811    07     0.00090
+1811    08     0.00090
+1811    09     0.00090
+1811    10     0.00090
+1811    11     0.00090
+1811    12     0.00090
+1812    01     0.00093
+1812    02     0.00093
+1812    03     0.00093
+1812    04     0.00093
+1812    05     0.00093
+1812    06     0.00093
+1812    07     0.00093
+1812    08     0.00093
+1812    09     0.00093
+1812    10     0.00093
+1812    11     0.00093
+1812    12     0.00093
+1813    01     0.00094
+1813    02     0.00094
+1813    03     0.00094
+1813    04     0.00094
+1813    05     0.00094
+1813    06     0.00094
+1813    07     0.00094
+1813    08     0.00094
+1813    09     0.00094
+1813    10     0.00094
+1813    11     0.00094
+1813    12     0.00094
+1814    01     0.00096
+1814    02     0.00096
+1814    03     0.00096
+1814    04     0.00096
+1814    05     0.00096
+1814    06     0.00096
+1814    07     0.00096
+1814    08     0.00096
+1814    09     0.00096
+1814    10     0.00096
+1814    11     0.00096
+1814    12     0.00096
+1815    01     0.00099
+1815    02     0.00099
+1815    03     0.00099
+1815    04     0.00099
+1815    05     0.00099
+1815    06     0.00099
+1815    07     0.00099
+1815    08     0.00099
+1815    09     0.00099
+1815    10     0.00099
+1815    11     0.00099
+1815    12     0.00099
+1816    01     0.00108
+1816    02     0.00108
+1816    03     0.00108
+1816    04     0.00108
+1816    05     0.00108
+1816    06     0.00108
+1816    07     0.00108
+1816    08     0.00108
+1816    09     0.00108
+1816    10     0.00108
+1816    11     0.00108
+1816    12     0.00108
+1817    01     0.00112
+1817    02     0.00112
+1817    03     0.00112
+1817    04     0.00112
+1817    05     0.00112
+1817    06     0.00112
+1817    07     0.00112
+1817    08     0.00112
+1817    09     0.00112
+1817    10     0.00112
+1817    11     0.00112
+1817    12     0.00112
+1818    01     0.00113
+1818    02     0.00113
+1818    03     0.00113
+1818    04     0.00113
+1818    05     0.00113
+1818    06     0.00113
+1818    07     0.00113
+1818    08     0.00113
+1818    09     0.00113
+1818    10     0.00113
+1818    11     0.00113
+1818    12     0.00113
+1819    01     0.00114
+1819    02     0.00114
+1819    03     0.00114
+1819    04     0.00114
+1819    05     0.00114
+1819    06     0.00114
+1819    07     0.00114
+1819    08     0.00114
+1819    09     0.00114
+1819    10     0.00114
+1819    11     0.00114
+1819    12     0.00114
+1820    01     0.00115
+1820    02     0.00115
+1820    03     0.00115
+1820    04     0.00115
+1820    05     0.00115
+1820    06     0.00115
+1820    07     0.00115
+1820    08     0.00115
+1820    09     0.00115
+1820    10     0.00115
+1820    11     0.00115
+1820    12     0.00115
+1821    01     0.00117
+1821    02     0.00117
+1821    03     0.00117
+1821    04     0.00117
+1821    05     0.00117
+1821    06     0.00117
+1821    07     0.00117
+1821    08     0.00117
+1821    09     0.00117
+1821    10     0.00117
+1821    11     0.00117
+1821    12     0.00117
+1822    01     0.00122
+1822    02     0.00122
+1822    03     0.00122
+1822    04     0.00122
+1822    05     0.00122
+1822    06     0.00122
+1822    07     0.00122
+1822    08     0.00122
+1822    09     0.00122
+1822    10     0.00122
+1822    11     0.00122
+1822    12     0.00122
+1823    01     0.00129
+1823    02     0.00129
+1823    03     0.00129
+1823    04     0.00129
+1823    05     0.00129
+1823    06     0.00129
+1823    07     0.00129
+1823    08     0.00129
+1823    09     0.00129
+1823    10     0.00129
+1823    11     0.00129
+1823    12     0.00129
+1824    01     0.00133
+1824    02     0.00133
+1824    03     0.00133
+1824    04     0.00133
+1824    05     0.00133
+1824    06     0.00133
+1824    07     0.00133
+1824    08     0.00133
+1824    09     0.00133
+1824    10     0.00133
+1824    11     0.00133
+1824    12     0.00133
+1825    01     0.00138
+1825    02     0.00138
+1825    03     0.00138
+1825    04     0.00138
+1825    05     0.00138
+1825    06     0.00138
+1825    07     0.00138
+1825    08     0.00138
+1825    09     0.00138
+1825    10     0.00138
+1825    11     0.00138
+1825    12     0.00138
+1826    01     0.00140
+1826    02     0.00140
+1826    03     0.00140
+1826    04     0.00140
+1826    05     0.00140
+1826    06     0.00140
+1826    07     0.00140
+1826    08     0.00140
+1826    09     0.00140
+1826    10     0.00140
+1826    11     0.00140
+1826    12     0.00140
+1827    01     0.00150
+1827    02     0.00150
+1827    03     0.00150
+1827    04     0.00150
+1827    05     0.00150
+1827    06     0.00150
+1827    07     0.00150
+1827    08     0.00150
+1827    09     0.00150
+1827    10     0.00150
+1827    11     0.00150
+1827    12     0.00150
+1828    01     0.00152
+1828    02     0.00152
+1828    03     0.00152
+1828    04     0.00152
+1828    05     0.00152
+1828    06     0.00152
+1828    07     0.00152
+1828    08     0.00152
+1828    09     0.00152
+1828    10     0.00152
+1828    11     0.00152
+1828    12     0.00152
+1829    01     0.00151
+1829    02     0.00151
+1829    03     0.00151
+1829    04     0.00151
+1829    05     0.00151
+1829    06     0.00151
+1829    07     0.00151
+1829    08     0.00151
+1829    09     0.00151
+1829    10     0.00151
+1829    11     0.00151
+1829    12     0.00151
+1830    01     0.00203
+1830    02     0.00203
+1830    03     0.00203
+1830    04     0.00203
+1830    05     0.00203
+1830    06     0.00203
+1830    07     0.00203
+1830    08     0.00203
+1830    09     0.00203
+1830    10     0.00203
+1830    11     0.00203
+1830    12     0.00203
+1831    01     0.00192
+1831    02     0.00192
+1831    03     0.00192
+1831    04     0.00192
+1831    05     0.00192
+1831    06     0.00192
+1831    07     0.00192
+1831    08     0.00192
+1831    09     0.00192
+1831    10     0.00192
+1831    11     0.00192
+1831    12     0.00192
+1832    01     0.00194
+1832    02     0.00194
+1832    03     0.00194
+1832    04     0.00194
+1832    05     0.00194
+1832    06     0.00194
+1832    07     0.00194
+1832    08     0.00194
+1832    09     0.00194
+1832    10     0.00194
+1832    11     0.00194
+1832    12     0.00194
+1833    01     0.00197
+1833    02     0.00197
+1833    03     0.00197
+1833    04     0.00197
+1833    05     0.00197
+1833    06     0.00197
+1833    07     0.00197
+1833    08     0.00197
+1833    09     0.00197
+1833    10     0.00197
+1833    11     0.00197
+1833    12     0.00197
+1834    01     0.00201
+1834    02     0.00201
+1834    03     0.00201
+1834    04     0.00201
+1834    05     0.00201
+1834    06     0.00201
+1834    07     0.00201
+1834    08     0.00201
+1834    09     0.00201
+1834    10     0.00201
+1834    11     0.00201
+1834    12     0.00201
+1835    01     0.00206
+1835    02     0.00206
+1835    03     0.00206
+1835    04     0.00206
+1835    05     0.00206
+1835    06     0.00206
+1835    07     0.00206
+1835    08     0.00206
+1835    09     0.00206
+1835    10     0.00206
+1835    11     0.00206
+1835    12     0.00206
+1836    01     0.00238
+1836    02     0.00238
+1836    03     0.00238
+1836    04     0.00238
+1836    05     0.00238
+1836    06     0.00238
+1836    07     0.00238
+1836    08     0.00238
+1836    09     0.00238
+1836    10     0.00238
+1836    11     0.00238
+1836    12     0.00238
+1837    01     0.00238
+1837    02     0.00238
+1837    03     0.00238
+1837    04     0.00238
+1837    05     0.00238
+1837    06     0.00238
+1837    07     0.00238
+1837    08     0.00238
+1837    09     0.00238
+1837    10     0.00238
+1837    11     0.00238
+1837    12     0.00238
+1838    01     0.00246
+1838    02     0.00246
+1838    03     0.00246
+1838    04     0.00246
+1838    05     0.00246
+1838    06     0.00246
+1838    07     0.00246
+1838    08     0.00246
+1838    09     0.00246
+1838    10     0.00246
+1838    11     0.00246
+1838    12     0.00246
+1839    01     0.00254
+1839    02     0.00254
+1839    03     0.00254
+1839    04     0.00254
+1839    05     0.00254
+1839    06     0.00254
+1839    07     0.00254
+1839    08     0.00254
+1839    09     0.00254
+1839    10     0.00254
+1839    11     0.00254
+1839    12     0.00254
+1840    01     0.00271
+1840    02     0.00271
+1840    03     0.00271
+1840    04     0.00271
+1840    05     0.00271
+1840    06     0.00271
+1840    07     0.00271
+1840    08     0.00271
+1840    09     0.00271
+1840    10     0.00271
+1840    11     0.00271
+1840    12     0.00271
+1841    01     0.00279
+1841    02     0.00279
+1841    03     0.00279
+1841    04     0.00279
+1841    05     0.00279
+1841    06     0.00279
+1841    07     0.00279
+1841    08     0.00279
+1841    09     0.00279
+1841    10     0.00279
+1841    11     0.00279
+1841    12     0.00279
+1842    01     0.00295
+1842    02     0.00295
+1842    03     0.00295
+1842    04     0.00295
+1842    05     0.00295
+1842    06     0.00295
+1842    07     0.00295
+1842    08     0.00295
+1842    09     0.00295
+1842    10     0.00295
+1842    11     0.00295
+1842    12     0.00295
+1843    01     0.00302
+1843    02     0.00302
+1843    03     0.00302
+1843    04     0.00302
+1843    05     0.00302
+1843    06     0.00302
+1843    07     0.00302
+1843    08     0.00302
+1843    09     0.00302
+1843    10     0.00302
+1843    11     0.00302
+1843    12     0.00302
+1844    01     0.00322
+1844    02     0.00322
+1844    03     0.00322
+1844    04     0.00322
+1844    05     0.00322
+1844    06     0.00322
+1844    07     0.00322
+1844    08     0.00322
+1844    09     0.00322
+1844    10     0.00322
+1844    11     0.00322
+1844    12     0.00322
+1845    01     0.00353
+1845    02     0.00353
+1845    03     0.00353
+1845    04     0.00353
+1845    05     0.00353
+1845    06     0.00353
+1845    07     0.00353
+1845    08     0.00353
+1845    09     0.00353
+1845    10     0.00353
+1845    11     0.00353
+1845    12     0.00353
+1846    01     0.00359
+1846    02     0.00359
+1846    03     0.00359
+1846    04     0.00359
+1846    05     0.00359
+1846    06     0.00359
+1846    07     0.00359
+1846    08     0.00359
+1846    09     0.00359
+1846    10     0.00359
+1846    11     0.00359
+1846    12     0.00359
+1847    01     0.00392
+1847    02     0.00392
+1847    03     0.00392
+1847    04     0.00392
+1847    05     0.00392
+1847    06     0.00392
+1847    07     0.00392
+1847    08     0.00392
+1847    09     0.00392
+1847    10     0.00392
+1847    11     0.00392
+1847    12     0.00392
+1848    01     0.00395
+1848    02     0.00395
+1848    03     0.00395
+1848    04     0.00395
+1848    05     0.00395
+1848    06     0.00395
+1848    07     0.00395
+1848    08     0.00395
+1848    09     0.00395
+1848    10     0.00395
+1848    11     0.00395
+1848    12     0.00395
+1849    01     0.00417
+1849    02     0.00417
+1849    03     0.00417
+1849    04     0.00417
+1849    05     0.00417
+1849    06     0.00417
+1849    07     0.00417
+1849    08     0.00417
+1849    09     0.00417
+1849    10     0.00417
+1849    11     0.00417
+1849    12     0.00417
+1850    01     0.00448
+1850    02     0.00448
+1850    03     0.00448
+1850    04     0.00448
+1850    05     0.00448
+1850    06     0.00448
+1850    07     0.00448
+1850    08     0.00448
+1850    09     0.00448
+1850    10     0.00448
+1850    11     0.00448
+1850    12     0.00448
+1851    01     0.00452
+1851    02     0.00452
+1851    03     0.00452
+1851    04     0.00452
+1851    05     0.00452
+1851    06     0.00452
+1851    07     0.00452
+1851    08     0.00452
+1851    09     0.00452
+1851    10     0.00452
+1851    11     0.00452
+1851    12     0.00452
+1852    01     0.00472
+1852    02     0.00472
+1852    03     0.00472
+1852    04     0.00472
+1852    05     0.00472
+1852    06     0.00472
+1852    07     0.00472
+1852    08     0.00472
+1852    09     0.00472
+1852    10     0.00472
+1852    11     0.00472
+1852    12     0.00472
+1853    01     0.00494
+1853    02     0.00494
+1853    03     0.00494
+1853    04     0.00494
+1853    05     0.00494
+1853    06     0.00494
+1853    07     0.00494
+1853    08     0.00494
+1853    09     0.00494
+1853    10     0.00494
+1853    11     0.00494
+1853    12     0.00494
+1854    01     0.00580
+1854    02     0.00580
+1854    03     0.00580
+1854    04     0.00580
+1854    05     0.00580
+1854    06     0.00580
+1854    07     0.00580
+1854    08     0.00580
+1854    09     0.00580
+1854    10     0.00580
+1854    11     0.00580
+1854    12     0.00580
+1855    01     0.00592
+1855    02     0.00592
+1855    03     0.00592
+1855    04     0.00592
+1855    05     0.00592
+1855    06     0.00592
+1855    07     0.00592
+1855    08     0.00592
+1855    09     0.00592
+1855    10     0.00592
+1855    11     0.00592
+1855    12     0.00592
+1856    01     0.00631
+1856    02     0.00631
+1856    03     0.00631
+1856    04     0.00631
+1856    05     0.00631
+1856    06     0.00631
+1856    07     0.00631
+1856    08     0.00631
+1856    09     0.00631
+1856    10     0.00631
+1856    11     0.00631
+1856    12     0.00631
+1857    01     0.00637
+1857    02     0.00637
+1857    03     0.00637
+1857    04     0.00637
+1857    05     0.00637
+1857    06     0.00637
+1857    07     0.00637
+1857    08     0.00637
+1857    09     0.00637
+1857    10     0.00637
+1857    11     0.00637
+1857    12     0.00637
+1858    01     0.00646
+1858    02     0.00646
+1858    03     0.00646
+1858    04     0.00646
+1858    05     0.00646
+1858    06     0.00646
+1858    07     0.00646
+1858    08     0.00646
+1858    09     0.00646
+1858    10     0.00646
+1858    11     0.00646
+1858    12     0.00646
+1859    01     0.00685
+1859    02     0.00685
+1859    03     0.00685
+1859    04     0.00685
+1859    05     0.00685
+1859    06     0.00685
+1859    07     0.00685
+1859    08     0.00685
+1859    09     0.00685
+1859    10     0.00685
+1859    11     0.00685
+1859    12     0.00685
+1860    01     0.00752
+1860    02     0.00752
+1860    03     0.00752
+1860    04     0.00752
+1860    05     0.00752
+1860    06     0.00752
+1860    07     0.00752
+1860    08     0.00752
+1860    09     0.00752
+1860    10     0.00752
+1860    11     0.00752
+1860    12     0.00752
+1861    01     0.00791
+1861    02     0.00791
+1861    03     0.00791
+1861    04     0.00791
+1861    05     0.00791
+1861    06     0.00791
+1861    07     0.00791
+1861    08     0.00791
+1861    09     0.00791
+1861    10     0.00791
+1861    11     0.00791
+1861    12     0.00791
+1862    01     0.00805
+1862    02     0.00805
+1862    03     0.00805
+1862    04     0.00805
+1862    05     0.00805
+1862    06     0.00805
+1862    07     0.00805
+1862    08     0.00805
+1862    09     0.00805
+1862    10     0.00805
+1862    11     0.00805
+1862    12     0.00805
+1863    01     0.00860
+1863    02     0.00860
+1863    03     0.00860
+1863    04     0.00860
+1863    05     0.00860
+1863    06     0.00860
+1863    07     0.00860
+1863    08     0.00860
+1863    09     0.00860
+1863    10     0.00860
+1863    11     0.00860
+1863    12     0.00860
+1864    01     0.00926
+1864    02     0.00926
+1864    03     0.00926
+1864    04     0.00926
+1864    05     0.00926
+1864    06     0.00926
+1864    07     0.00926
+1864    08     0.00926
+1864    09     0.00926
+1864    10     0.00926
+1864    11     0.00926
+1864    12     0.00926
+1865    01     0.00983
+1865    02     0.00983
+1865    03     0.00983
+1865    04     0.00983
+1865    05     0.00983
+1865    06     0.00983
+1865    07     0.00983
+1865    08     0.00983
+1865    09     0.00983
+1865    10     0.00983
+1865    11     0.00983
+1865    12     0.00983
+1866    01     0.01014
+1866    02     0.01014
+1866    03     0.01014
+1866    04     0.01014
+1866    05     0.01014
+1866    06     0.01014
+1866    07     0.01014
+1866    08     0.01014
+1866    09     0.01014
+1866    10     0.01014
+1866    11     0.01014
+1866    12     0.01014
+1867    01     0.01087
+1867    02     0.01087
+1867    03     0.01087
+1867    04     0.01087
+1867    05     0.01087
+1867    06     0.01087
+1867    07     0.01087
+1867    08     0.01087
+1867    09     0.01087
+1867    10     0.01087
+1867    11     0.01087
+1867    12     0.01087
+1868    01     0.01116
+1868    02     0.01116
+1868    03     0.01116
+1868    04     0.01116
+1868    05     0.01116
+1868    06     0.01116
+1868    07     0.01116
+1868    08     0.01116
+1868    09     0.01116
+1868    10     0.01116
+1868    11     0.01116
+1868    12     0.01116
+1869    01     0.01185
+1869    02     0.01185
+1869    03     0.01185
+1869    04     0.01185
+1869    05     0.01185
+1869    06     0.01185
+1869    07     0.01185
+1869    08     0.01185
+1869    09     0.01185
+1869    10     0.01185
+1869    11     0.01185
+1869    12     0.01185
+1870    01     0.01211
+1870    02     0.01211
+1870    03     0.01211
+1870    04     0.01211
+1870    05     0.01211
+1870    06     0.01211
+1870    07     0.01211
+1870    08     0.01211
+1870    09     0.01211
+1870    10     0.01211
+1870    11     0.01211
+1870    12     0.01211
+1871    01     0.01288
+1871    02     0.01288
+1871    03     0.01288
+1871    04     0.01288
+1871    05     0.01288
+1871    06     0.01288
+1871    07     0.01288
+1871    08     0.01288
+1871    09     0.01288
+1871    10     0.01288
+1871    11     0.01288
+1871    12     0.01288
+1872    01     0.01425
+1872    02     0.01425
+1872    03     0.01425
+1872    04     0.01425
+1872    05     0.01425
+1872    06     0.01425
+1872    07     0.01425
+1872    08     0.01425
+1872    09     0.01425
+1872    10     0.01425
+1872    11     0.01425
+1872    12     0.01425
+1873    01     0.01513
+1873    02     0.01513
+1873    03     0.01513
+1873    04     0.01513
+1873    05     0.01513
+1873    06     0.01513
+1873    07     0.01513
+1873    08     0.01513
+1873    09     0.01513
+1873    10     0.01513
+1873    11     0.01513
+1873    12     0.01513
+1874    01     0.01417
+1874    02     0.01417
+1874    03     0.01417
+1874    04     0.01417
+1874    05     0.01417
+1874    06     0.01417
+1874    07     0.01417
+1874    08     0.01417
+1874    09     0.01417
+1874    10     0.01417
+1874    11     0.01417
+1874    12     0.01417
+1875    01     0.01537
+1875    02     0.01537
+1875    03     0.01537
+1875    04     0.01537
+1875    05     0.01537
+1875    06     0.01537
+1875    07     0.01537
+1875    08     0.01537
+1875    09     0.01537
+1875    10     0.01537
+1875    11     0.01537
+1875    12     0.01537
+1876    01     0.01559
+1876    02     0.01559
+1876    03     0.01559
+1876    04     0.01559
+1876    05     0.01559
+1876    06     0.01559
+1876    07     0.01559
+1876    08     0.01559
+1876    09     0.01559
+1876    10     0.01559
+1876    11     0.01559
+1876    12     0.01559
+1877    01     0.01590
+1877    02     0.01590
+1877    03     0.01590
+1877    04     0.01590
+1877    05     0.01590
+1877    06     0.01590
+1877    07     0.01590
+1877    08     0.01590
+1877    09     0.01590
+1877    10     0.01590
+1877    11     0.01590
+1877    12     0.01590
+1878    01     0.01602
+1878    02     0.01602
+1878    03     0.01602
+1878    04     0.01602
+1878    05     0.01602
+1878    06     0.01602
+1878    07     0.01602
+1878    08     0.01602
+1878    09     0.01602
+1878    10     0.01602
+1878    11     0.01602
+1878    12     0.01602
+1879    01     0.01717
+1879    02     0.01717
+1879    03     0.01717
+1879    04     0.01717
+1879    05     0.01717
+1879    06     0.01717
+1879    07     0.01717
+1879    08     0.01717
+1879    09     0.01717
+1879    10     0.01717
+1879    11     0.01717
+1879    12     0.01717
+1880    01     0.01942
+1880    02     0.01942
+1880    03     0.01942
+1880    04     0.01942
+1880    05     0.01942
+1880    06     0.01942
+1880    07     0.01942
+1880    08     0.01942
+1880    09     0.01942
+1880    10     0.01942
+1880    11     0.01942
+1880    12     0.01942
+1881    01     0.02007
+1881    02     0.02007
+1881    03     0.02007
+1881    04     0.02007
+1881    05     0.02007
+1881    06     0.02007
+1881    07     0.02007
+1881    08     0.02007
+1881    09     0.02007
+1881    10     0.02007
+1881    11     0.02007
+1881    12     0.02007
+1882    01     0.02120
+1882    02     0.02120
+1882    03     0.02120
+1882    04     0.02120
+1882    05     0.02120
+1882    06     0.02120
+1882    07     0.02120
+1882    08     0.02120
+1882    09     0.02120
+1882    10     0.02120
+1882    11     0.02120
+1882    12     0.02120
+1883    01     0.02255
+1883    02     0.02255
+1883    03     0.02255
+1883    04     0.02255
+1883    05     0.02255
+1883    06     0.02255
+1883    07     0.02255
+1883    08     0.02255
+1883    09     0.02255
+1883    10     0.02255
+1883    11     0.02255
+1883    12     0.02255
+1884    01     0.02280
+1884    02     0.02280
+1884    03     0.02280
+1884    04     0.02280
+1884    05     0.02280
+1884    06     0.02280
+1884    07     0.02280
+1884    08     0.02280
+1884    09     0.02280
+1884    10     0.02280
+1884    11     0.02280
+1884    12     0.02280
+1885    01     0.02297
+1885    02     0.02297
+1885    03     0.02297
+1885    04     0.02297
+1885    05     0.02297
+1885    06     0.02297
+1885    07     0.02297
+1885    08     0.02297
+1885    09     0.02297
+1885    10     0.02297
+1885    11     0.02297
+1885    12     0.02297
+1886    01     0.02333
+1886    02     0.02333
+1886    03     0.02333
+1886    04     0.02333
+1886    05     0.02333
+1886    06     0.02333
+1886    07     0.02333
+1886    08     0.02333
+1886    09     0.02333
+1886    10     0.02333
+1886    11     0.02333
+1886    12     0.02333
+1887    01     0.02450
+1887    02     0.02450
+1887    03     0.02450
+1887    04     0.02450
+1887    05     0.02450
+1887    06     0.02450
+1887    07     0.02450
+1887    08     0.02450
+1887    09     0.02450
+1887    10     0.02450
+1887    11     0.02450
+1887    12     0.02450
+1888    01     0.02712
+1888    02     0.02712
+1888    03     0.02712
+1888    04     0.02712
+1888    05     0.02712
+1888    06     0.02712
+1888    07     0.02712
+1888    08     0.02712
+1888    09     0.02712
+1888    10     0.02712
+1888    11     0.02712
+1888    12     0.02712
+1889    01     0.02711
+1889    02     0.02711
+1889    03     0.02711
+1889    04     0.02711
+1889    05     0.02711
+1889    06     0.02711
+1889    07     0.02711
+1889    08     0.02711
+1889    09     0.02711
+1889    10     0.02711
+1889    11     0.02711
+1889    12     0.02711
+1890    01     0.02954
+1890    02     0.02954
+1890    03     0.02954
+1890    04     0.02954
+1890    05     0.02954
+1890    06     0.02954
+1890    07     0.02954
+1890    08     0.02954
+1890    09     0.02954
+1890    10     0.02954
+1890    11     0.02954
+1890    12     0.02954
+1891    01     0.03092
+1891    02     0.03092
+1891    03     0.03092
+1891    04     0.03092
+1891    05     0.03092
+1891    06     0.03092
+1891    07     0.03092
+1891    08     0.03092
+1891    09     0.03092
+1891    10     0.03092
+1891    11     0.03092
+1891    12     0.03092
+1892    01     0.03117
+1892    02     0.03117
+1892    03     0.03117
+1892    04     0.03117
+1892    05     0.03117
+1892    06     0.03117
+1892    07     0.03117
+1892    08     0.03117
+1892    09     0.03117
+1892    10     0.03117
+1892    11     0.03117
+1892    12     0.03117
+1893    01     0.03080
+1893    02     0.03080
+1893    03     0.03080
+1893    04     0.03080
+1893    05     0.03080
+1893    06     0.03080
+1893    07     0.03080
+1893    08     0.03080
+1893    09     0.03080
+1893    10     0.03080
+1893    11     0.03080
+1893    12     0.03080
+1894    01     0.03187
+1894    02     0.03187
+1894    03     0.03187
+1894    04     0.03187
+1894    05     0.03187
+1894    06     0.03187
+1894    07     0.03187
+1894    08     0.03187
+1894    09     0.03187
+1894    10     0.03187
+1894    11     0.03187
+1894    12     0.03187
+1895    01     0.03380
+1895    02     0.03380
+1895    03     0.03380
+1895    04     0.03380
+1895    05     0.03380
+1895    06     0.03380
+1895    07     0.03380
+1895    08     0.03380
+1895    09     0.03380
+1895    10     0.03380
+1895    11     0.03380
+1895    12     0.03380
+1896    01     0.03490
+1896    02     0.03490
+1896    03     0.03490
+1896    04     0.03490
+1896    05     0.03490
+1896    06     0.03490
+1896    07     0.03490
+1896    08     0.03490
+1896    09     0.03490
+1896    10     0.03490
+1896    11     0.03490
+1896    12     0.03490
+1897    01     0.03655
+1897    02     0.03655
+1897    03     0.03655
+1897    04     0.03655
+1897    05     0.03655
+1897    06     0.03655
+1897    07     0.03655
+1897    08     0.03655
+1897    09     0.03655
+1897    10     0.03655
+1897    11     0.03655
+1897    12     0.03655
+1898    01     0.03855
+1898    02     0.03855
+1898    03     0.03855
+1898    04     0.03855
+1898    05     0.03855
+1898    06     0.03855
+1898    07     0.03855
+1898    08     0.03855
+1898    09     0.03855
+1898    10     0.03855
+1898    11     0.03855
+1898    12     0.03855
+1899    01     0.04212
+1899    02     0.04212
+1899    03     0.04212
+1899    04     0.04212
+1899    05     0.04212
+1899    06     0.04212
+1899    07     0.04212
+1899    08     0.04212
+1899    09     0.04212
+1899    10     0.04212
+1899    11     0.04212
+1899    12     0.04212
+1900    01     0.04443
+1900    02     0.04443
+1900    03     0.04443
+1900    04     0.04443
+1900    05     0.04443
+1900    06     0.04443
+1900    07     0.04443
+1900    08     0.04443
+1900    09     0.04443
+1900    10     0.04443
+1900    11     0.04443
+1900    12     0.04443
+1901    01     0.04590
+1901    02     0.04590
+1901    03     0.04590
+1901    04     0.04590
+1901    05     0.04590
+1901    06     0.04590
+1901    07     0.04590
+1901    08     0.04590
+1901    09     0.04590
+1901    10     0.04590
+1901    11     0.04590
+1901    12     0.04590
+1902    01     0.04706
+1902    02     0.04706
+1902    03     0.04706
+1902    04     0.04706
+1902    05     0.04706
+1902    06     0.04706
+1902    07     0.04706
+1902    08     0.04706
+1902    09     0.04706
+1902    10     0.04706
+1902    11     0.04706
+1902    12     0.04706
+1903    01     0.05134
+1903    02     0.05134
+1903    03     0.05134
+1903    04     0.05134
+1903    05     0.05134
+1903    06     0.05134
+1903    07     0.05134
+1903    08     0.05134
+1903    09     0.05134
+1903    10     0.05134
+1903    11     0.05134
+1903    12     0.05134
+1904    01     0.05188
+1904    02     0.05188
+1904    03     0.05188
+1904    04     0.05188
+1904    05     0.05188
+1904    06     0.05188
+1904    07     0.05188
+1904    08     0.05188
+1904    09     0.05188
+1904    10     0.05188
+1904    11     0.05188
+1904    12     0.05188
+1905    01     0.05524
+1905    02     0.05524
+1905    03     0.05524
+1905    04     0.05524
+1905    05     0.05524
+1905    06     0.05524
+1905    07     0.05524
+1905    08     0.05524
+1905    09     0.05524
+1905    10     0.05524
+1905    11     0.05524
+1905    12     0.05524
+1906    01     0.05802
+1906    02     0.05802
+1906    03     0.05802
+1906    04     0.05802
+1906    05     0.05802
+1906    06     0.05802
+1906    07     0.05802
+1906    08     0.05802
+1906    09     0.05802
+1906    10     0.05802
+1906    11     0.05802
+1906    12     0.05802
+1907    01     0.06561
+1907    02     0.06561
+1907    03     0.06561
+1907    04     0.06561
+1907    05     0.06561
+1907    06     0.06561
+1907    07     0.06561
+1907    08     0.06561
+1907    09     0.06561
+1907    10     0.06561
+1907    11     0.06561
+1907    12     0.06561
+1908    01     0.06313
+1908    02     0.06313
+1908    03     0.06313
+1908    04     0.06313
+1908    05     0.06313
+1908    06     0.06313
+1908    07     0.06313
+1908    08     0.06313
+1908    09     0.06313
+1908    10     0.06313
+1908    11     0.06313
+1908    12     0.06313
+1909    01     0.06562
+1909    02     0.06562
+1909    03     0.06562
+1909    04     0.06562
+1909    05     0.06562
+1909    06     0.06562
+1909    07     0.06562
+1909    08     0.06562
+1909    09     0.06562
+1909    10     0.06562
+1909    11     0.06562
+1909    12     0.06562
+1910    01     0.06882
+1910    02     0.06882
+1910    03     0.06882
+1910    04     0.06882
+1910    05     0.06882
+1910    06     0.06882
+1910    07     0.06882
+1910    08     0.06882
+1910    09     0.06882
+1910    10     0.06882
+1910    11     0.06882
+1910    12     0.06882
+1911    01     0.07008
+1911    02     0.07008
+1911    03     0.07008
+1911    04     0.07008
+1911    05     0.07008
+1911    06     0.07008
+1911    07     0.07008
+1911    08     0.07008
+1911    09     0.07008
+1911    10     0.07008
+1911    11     0.07008
+1911    12     0.07008
+1912    01     0.07339
+1912    02     0.07339
+1912    03     0.07339
+1912    04     0.07339
+1912    05     0.07339
+1912    06     0.07339
+1912    07     0.07339
+1912    08     0.07339
+1912    09     0.07339
+1912    10     0.07339
+1912    11     0.07339
+1912    12     0.07339
+1913    01     0.07941
+1913    02     0.07941
+1913    03     0.07941
+1913    04     0.07941
+1913    05     0.07941
+1913    06     0.07941
+1913    07     0.07941
+1913    08     0.07941
+1913    09     0.07941
+1913    10     0.07941
+1913    11     0.07941
+1913    12     0.07941
+1914    01     0.07205
+1914    02     0.07205
+1914    03     0.07205
+1914    04     0.07205
+1914    05     0.07205
+1914    06     0.07205
+1914    07     0.07205
+1914    08     0.07205
+1914    09     0.07205
+1914    10     0.07205
+1914    11     0.07205
+1914    12     0.07205
+1915    01     0.07108
+1915    02     0.07108
+1915    03     0.07108
+1915    04     0.07108
+1915    05     0.07108
+1915    06     0.07108
+1915    07     0.07108
+1915    08     0.07108
+1915    09     0.07108
+1915    10     0.07108
+1915    11     0.07108
+1915    12     0.07108
+1916    01     0.07670
+1916    02     0.07670
+1916    03     0.07670
+1916    04     0.07670
+1916    05     0.07670
+1916    06     0.07670
+1916    07     0.07670
+1916    08     0.07670
+1916    09     0.07670
+1916    10     0.07670
+1916    11     0.07670
+1916    12     0.07670
+1917    01     0.08025
+1917    02     0.08025
+1917    03     0.08025
+1917    04     0.08025
+1917    05     0.08025
+1917    06     0.08025
+1917    07     0.08025
+1917    08     0.08025
+1917    09     0.08025
+1917    10     0.08025
+1917    11     0.08025
+1917    12     0.08025
+1918    01     0.07916
+1918    02     0.07916
+1918    03     0.07916
+1918    04     0.07916
+1918    05     0.07916
+1918    06     0.07916
+1918    07     0.07916
+1918    08     0.07916
+1918    09     0.07916
+1918    10     0.07916
+1918    11     0.07916
+1918    12     0.07916
+1919    01     0.06861
+1919    02     0.06861
+1919    03     0.06861
+1919    04     0.06861
+1919    05     0.06861
+1919    06     0.06861
+1919    07     0.06861
+1919    08     0.06861
+1919    09     0.06861
+1919    10     0.06861
+1919    11     0.06861
+1919    12     0.06861
+1920    01     0.07978
+1920    02     0.07978
+1920    03     0.07978
+1920    04     0.07978
+1920    05     0.07978
+1920    06     0.07978
+1920    07     0.07978
+1920    08     0.07978
+1920    09     0.07978
+1920    10     0.07978
+1920    11     0.07978
+1920    12     0.07978
+1921    01     0.07000
+1921    02     0.07000
+1921    03     0.07000
+1921    04     0.07000
+1921    05     0.07000
+1921    06     0.07000
+1921    07     0.07000
+1921    08     0.07000
+1921    09     0.07000
+1921    10     0.07000
+1921    11     0.07000
+1921    12     0.07000
+1922    01     0.07340
+1922    02     0.07340
+1922    03     0.07340
+1922    04     0.07340
+1922    05     0.07340
+1922    06     0.07340
+1922    07     0.07340
+1922    08     0.07340
+1922    09     0.07340
+1922    10     0.07340
+1922    11     0.07340
+1922    12     0.07340
+1923    01     0.08328
+1923    02     0.08328
+1923    03     0.08328
+1923    04     0.08328
+1923    05     0.08328
+1923    06     0.08328
+1923    07     0.08328
+1923    08     0.08328
+1923    09     0.08328
+1923    10     0.08328
+1923    11     0.08328
+1923    12     0.08328
+1924    01     0.08355
+1924    02     0.08355
+1924    03     0.08355
+1924    04     0.08355
+1924    05     0.08355
+1924    06     0.08355
+1924    07     0.08355
+1924    08     0.08355
+1924    09     0.08355
+1924    10     0.08355
+1924    11     0.08355
+1924    12     0.08355
+1925    01     0.08413
+1925    02     0.08413
+1925    03     0.08413
+1925    04     0.08413
+1925    05     0.08413
+1925    06     0.08413
+1925    07     0.08413
+1925    08     0.08413
+1925    09     0.08413
+1925    10     0.08413
+1925    11     0.08413
+1925    12     0.08413
+1926    01     0.08283
+1926    02     0.08283
+1926    03     0.08283
+1926    04     0.08283
+1926    05     0.08283
+1926    06     0.08283
+1926    07     0.08283
+1926    08     0.08283
+1926    09     0.08283
+1926    10     0.08283
+1926    11     0.08283
+1926    12     0.08283
+1927    01     0.09046
+1927    02     0.09046
+1927    03     0.09046
+1927    04     0.09046
+1927    05     0.09046
+1927    06     0.09046
+1927    07     0.09046
+1927    08     0.09046
+1927    09     0.09046
+1927    10     0.09046
+1927    11     0.09046
+1927    12     0.09046
+1928    01     0.09077
+1928    02     0.09077
+1928    03     0.09077
+1928    04     0.09077
+1928    05     0.09077
+1928    06     0.09077
+1928    07     0.09077
+1928    08     0.09077
+1928    09     0.09077
+1928    10     0.09077
+1928    11     0.09077
+1928    12     0.09077
+1929    01     0.09759
+1929    02     0.09759
+1929    03     0.09759
+1929    04     0.09759
+1929    05     0.09759
+1929    06     0.09759
+1929    07     0.09759
+1929    08     0.09759
+1929    09     0.09759
+1929    10     0.09759
+1929    11     0.09759
+1929    12     0.09759
+1930    01     0.09022
+1930    02     0.09022
+1930    03     0.09022
+1930    04     0.09022
+1930    05     0.09022
+1930    06     0.09022
+1930    07     0.09022
+1930    08     0.09022
+1930    09     0.09022
+1930    10     0.09022
+1930    11     0.09022
+1930    12     0.09022
+1931    01     0.08058
+1931    02     0.08058
+1931    03     0.08058
+1931    04     0.08058
+1931    05     0.08058
+1931    06     0.08058
+1931    07     0.08058
+1931    08     0.08058
+1931    09     0.08058
+1931    10     0.08058
+1931    11     0.08058
+1931    12     0.08058
+1932    01     0.07270
+1932    02     0.07270
+1932    03     0.07270
+1932    04     0.07270
+1932    05     0.07270
+1932    06     0.07270
+1932    07     0.07270
+1932    08     0.07270
+1932    09     0.07270
+1932    10     0.07270
+1932    11     0.07270
+1932    12     0.07270
+1933    01     0.07655
+1933    02     0.07655
+1933    03     0.07655
+1933    04     0.07655
+1933    05     0.07655
+1933    06     0.07655
+1933    07     0.07655
+1933    08     0.07655
+1933    09     0.07655
+1933    10     0.07655
+1933    11     0.07655
+1933    12     0.07655
+1934    01     0.08328
+1934    02     0.08328
+1934    03     0.08328
+1934    04     0.08328
+1934    05     0.08328
+1934    06     0.08328
+1934    07     0.08328
+1934    08     0.08328
+1934    09     0.08328
+1934    10     0.08328
+1934    11     0.08328
+1934    12     0.08328
+1935    01     0.08748
+1935    02     0.08748
+1935    03     0.08748
+1935    04     0.08748
+1935    05     0.08748
+1935    06     0.08748
+1935    07     0.08748
+1935    08     0.08748
+1935    09     0.08748
+1935    10     0.08748
+1935    11     0.08748
+1935    12     0.08748
+1936    01     0.09606
+1936    02     0.09606
+1936    03     0.09606
+1936    04     0.09606
+1936    05     0.09606
+1936    06     0.09606
+1936    07     0.09606
+1936    08     0.09606
+1936    09     0.09606
+1936    10     0.09606
+1936    11     0.09606
+1936    12     0.09606
+1937    01     0.10287
+1937    02     0.10287
+1937    03     0.10287
+1937    04     0.10287
+1937    05     0.10287
+1937    06     0.10287
+1937    07     0.10287
+1937    08     0.10287
+1937    09     0.10287
+1937    10     0.10287
+1937    11     0.10287
+1937    12     0.10287
+1938    01     0.09700
+1938    02     0.09700
+1938    03     0.09700
+1938    04     0.09700
+1938    05     0.09700
+1938    06     0.09700
+1938    07     0.09700
+1938    08     0.09700
+1938    09     0.09700
+1938    10     0.09700
+1938    11     0.09700
+1938    12     0.09700
+1939    01     0.10242
+1939    02     0.10242
+1939    03     0.10242
+1939    04     0.10242
+1939    05     0.10242
+1939    06     0.10242
+1939    07     0.10242
+1939    08     0.10242
+1939    09     0.10242
+1939    10     0.10242
+1939    11     0.10242
+1939    12     0.10242
+1940    01     0.11154
+1940    02     0.11154
+1940    03     0.11154
+1940    04     0.11154
+1940    05     0.11154
+1940    06     0.11154
+1940    07     0.11154
+1940    08     0.11154
+1940    09     0.11154
+1940    10     0.11154
+1940    11     0.11154
+1940    12     0.11154
+1941    01     0.11428
+1941    02     0.11428
+1941    03     0.11428
+1941    04     0.11428
+1941    05     0.11428
+1941    06     0.11428
+1941    07     0.11428
+1941    08     0.11428
+1941    09     0.11428
+1941    10     0.11428
+1941    11     0.11428
+1941    12     0.11428
+1942    01     0.11463
+1942    02     0.11463
+1942    03     0.11463
+1942    04     0.11463
+1942    05     0.11463
+1942    06     0.11463
+1942    07     0.11463
+1942    08     0.11463
+1942    09     0.11463
+1942    10     0.11463
+1942    11     0.11463
+1942    12     0.11463
+1943    01     0.11864
+1943    02     0.11864
+1943    03     0.11864
+1943    04     0.11864
+1943    05     0.11864
+1943    06     0.11864
+1943    07     0.11864
+1943    08     0.11864
+1943    09     0.11864
+1943    10     0.11864
+1943    11     0.11864
+1943    12     0.11864
+1944    01     0.11784
+1944    02     0.11784
+1944    03     0.11784
+1944    04     0.11784
+1944    05     0.11784
+1944    06     0.11784
+1944    07     0.11784
+1944    08     0.11784
+1944    09     0.11784
+1944    10     0.11784
+1944    11     0.11784
+1944    12     0.11784
+1945    01     0.09856
+1945    02     0.09856
+1945    03     0.09856
+1945    04     0.09856
+1945    05     0.09856
+1945    06     0.09856
+1945    07     0.09856
+1945    08     0.09856
+1945    09     0.09856
+1945    10     0.09856
+1945    11     0.09856
+1945    12     0.09856
+1946    01     0.10759
+1946    02     0.10759
+1946    03     0.10759
+1946    04     0.10759
+1946    05     0.10759
+1946    06     0.10759
+1946    07     0.10759
+1946    08     0.10759
+1946    09     0.10759
+1946    10     0.10759
+1946    11     0.10759
+1946    12     0.10759
+1947    01     0.11910
+1947    02     0.11910
+1947    03     0.11910
+1947    04     0.11910
+1947    05     0.11910
+1947    06     0.11910
+1947    07     0.11910
+1947    08     0.11910
+1947    09     0.11910
+1947    10     0.11910
+1947    11     0.11910
+1947    12     0.11910
+1948    01     0.12530
+1948    02     0.12530
+1948    03     0.12530
+1948    04     0.12530
+1948    05     0.12530
+1948    06     0.12530
+1948    07     0.12530
+1948    08     0.12530
+1948    09     0.12530
+1948    10     0.12530
+1948    11     0.12530
+1948    12     0.12530
+1949    01     0.11929
+1949    02     0.11929
+1949    03     0.11929
+1949    04     0.11929
+1949    05     0.11929
+1949    06     0.11929
+1949    07     0.11929
+1949    08     0.11929
+1949    09     0.11929
+1949    10     0.11929
+1949    11     0.11929
+1949    12     0.11929
+1950    01     0.14254
+1950    02     0.13288
+1950    03     0.13844
+1950    04     0.12547
+1950    05     0.12480
+1950    06     0.12823
+1950    07     0.12979
+1950    08     0.12872
+1950    09     0.12622
+1950    10     0.13000
+1950    11     0.13141
+1950    12     0.14217
+1951    01     0.15935
+1951    02     0.14657
+1951    03     0.14810
+1951    04     0.13441
+1951    05     0.13222
+1951    06     0.13027
+1951    07     0.13662
+1951    08     0.13652
+1951    09     0.13530
+1951    10     0.14132
+1951    11     0.14085
+1951    12     0.15794
+1952    01     0.15159
+1952    02     0.14263
+1952    03     0.14879
+1952    04     0.13765
+1952    05     0.13726
+1952    06     0.13673
+1952    07     0.14019
+1952    08     0.14205
+1952    09     0.13916
+1952    10     0.14501
+1952    11     0.14389
+1952    12     0.15748
+1953    01     0.16150
+1953    02     0.15130
+1953    03     0.15798
+1953    04     0.14264
+1953    05     0.13798
+1953    06     0.13900
+1953    07     0.14448
+1953    08     0.14201
+1953    09     0.13874
+1953    10     0.14631
+1953    11     0.14672
+1953    12     0.16165
+1954    01     0.16274
+1954    02     0.14824
+1954    03     0.15601
+1954    04     0.14747
+1954    05     0.14321
+1954    06     0.14364
+1954    07     0.14835
+1954    08     0.14551
+1954    09     0.14580
+1954    10     0.14966
+1954    11     0.15296
+1954    12     0.16570
+1955    01     0.17489
+1955    02     0.16066
+1955    03     0.17040
+1955    04     0.15916
+1955    05     0.15753
+1955    06     0.15754
+1955    07     0.16206
+1955    08     0.16271
+1955    09     0.15875
+1955    10     0.16526
+1955    11     0.16975
+1955    12     0.18225
+1956    01     0.19891
+1956    02     0.17797
+1956    03     0.18326
+1956    04     0.16506
+1956    05     0.16554
+1956    06     0.16120
+1956    07     0.16987
+1956    08     0.16807
+1956    09     0.16650
+1956    10     0.17674
+1956    11     0.18014
+1956    12     0.19515
+1957    01     0.19233
+1957    02     0.17574
+1957    03     0.18620
+1957    04     0.17130
+1957    05     0.17455
+1957    06     0.17333
+1957    07     0.17941
+1957    08     0.17922
+1957    09     0.17465
+1957    10     0.18372
+1957    11     0.18318
+1957    12     0.20018
+1958    01     0.20399
+1958    02     0.18578
+1958    03     0.19684
+1958    04     0.18037
+1958    05     0.17910
+1958    06     0.17435
+1958    07     0.17993
+1958    08     0.18173
+1958    09     0.17834
+1958    10     0.18602
+1958    11     0.18856
+1958    12     0.20723
+1959    01     0.21650
+1959    02     0.19742
+1959    03     0.20628
+1959    04     0.19101
+1959    05     0.18853
+1959    06     0.18435
+1959    07     0.19125
+1959    08     0.19295
+1959    09     0.18788
+1959    10     0.19829
+1959    11     0.19904
+1959    12     0.21414
+1960    01     0.22003
+1960    02     0.20343
+1960    03     0.21871
+1960    04     0.20098
+1960    05     0.19659
+1960    06     0.19821
+1960    07     0.20283
+1960    08     0.20263
+1960    09     0.19895
+1960    10     0.20842
+1960    11     0.21132
+1960    12     0.23226
+1961    01     0.22145
+1961    02     0.20501
+1961    03     0.21897
+1961    04     0.20044
+1961    05     0.19788
+1961    06     0.19739
+1961    07     0.20320
+1961    08     0.20298
+1961    09     0.19990
+1961    10     0.20913
+1961    11     0.20972
+1961    12     0.23262
+1962    01     0.23263
+1962    02     0.21447
+1962    03     0.23114
+1962    04     0.20856
+1962    05     0.20389
+1962    06     0.20513
+1962    07     0.20702
+1962    08     0.21062
+1962    09     0.20466
+1962    10     0.21275
+1962    11     0.21745
+1962    12     0.23897
+1963    01     0.25173
+1963    02     0.22890
+1963    03     0.23960
+1963    04     0.21975
+1963    05     0.21415
+1963    06     0.21508
+1963    07     0.21858
+1963    08     0.21936
+1963    09     0.21833
+1963    10     0.22966
+1963    11     0.22872
+1963    12     0.25001
+1964    01     0.26367
+1964    02     0.23907
+1964    03     0.24564
+1964    04     0.23033
+1964    05     0.22285
+1964    06     0.22690
+1964    07     0.23369
+1964    08     0.23105
+1964    09     0.23182
+1964    10     0.24116
+1964    11     0.24041
+1964    12     0.26380
+1965    01     0.26961
+1965    02     0.24919
+1965    03     0.26443
+1965    04     0.24103
+1965    05     0.23849
+1965    06     0.23922
+1965    07     0.24427
+1965    08     0.24589
+1965    09     0.24054
+1965    10     0.25083
+1965    11     0.25314
+1965    12     0.26931
+1966    01     0.27757
+1966    02     0.26156
+1966    03     0.27639
+1966    04     0.25299
+1966    05     0.24907
+1966    06     0.25045
+1966    07     0.25721
+1966    08     0.25819
+1966    09     0.25031
+1966    10     0.25803
+1966    11     0.26634
+1966    12     0.28588
+1967    01     0.29057
+1967    02     0.26854
+1967    03     0.28371
+1967    04     0.26214
+1967    05     0.25662
+1967    06     0.25731
+1967    07     0.26185
+1967    08     0.26429
+1967    09     0.26004
+1967    10     0.27074
+1967    11     0.27184
+1967    12     0.29417
+1968    01     0.30937
+1968    02     0.28586
+1968    03     0.29983
+1968    04     0.27441
+1968    05     0.27032
+1968    06     0.27244
+1968    07     0.27511
+1968    08     0.27604
+1968    09     0.27467
+1968    10     0.28513
+1968    11     0.28733
+1968    12     0.31106
+1969    01     0.32687
+1969    02     0.30360
+1969    03     0.31995
+1969    04     0.29428
+1969    05     0.28947
+1969    06     0.29128
+1969    07     0.29507
+1969    08     0.29676
+1969    09     0.29160
+1969    10     0.30338
+1969    11     0.30576
+1969    12     0.33040
+1970    01     0.35044
+1970    02     0.32520
+1970    03     0.34326
+1970    04     0.32017
+1970    05     0.31528
+1970    06     0.31787
+1970    07     0.32351
+1970    08     0.32331
+1970    09     0.31418
+1970    10     0.32918
+1970    11     0.33251
+1970    12     0.35981
+1971    01     0.36660
+1971    02     0.33850
+1971    03     0.35976
+1971    04     0.33200
+1971    05     0.32836
+1971    06     0.32665
+1971    07     0.33442
+1971    08     0.33709
+1971    09     0.32410
+1971    10     0.34196
+1971    11     0.34696
+1971    12     0.37605
+1972    01     0.37912
+1972    02     0.35696
+1972    03     0.37960
+1972    04     0.34507
+1972    05     0.34246
+1972    06     0.34484
+1972    07     0.35058
+1972    08     0.35603
+1972    09     0.34233
+1972    10     0.35530
+1972    11     0.35720
+1972    12     0.39016
+1973    01     0.39642
+1973    02     0.37592
+1973    03     0.40179
+1973    04     0.36549
+1973    05     0.36229
+1973    06     0.36406
+1973    07     0.36994
+1973    08     0.37289
+1973    09     0.36206
+1973    10     0.37974
+1973    11     0.38227
+1973    12     0.41065
+1974    01     0.40205
+1974    02     0.37961
+1974    03     0.39627
+1974    04     0.36430
+1974    05     0.35815
+1974    06     0.35885
+1974    07     0.36762
+1974    08     0.36800
+1974    09     0.36202
+1974    10     0.37656
+1974    11     0.38110
+1974    12     0.41320
+1975    01     0.40312
+1975    02     0.37405
+1975    03     0.39671
+1975    04     0.36505
+1975    05     0.35863
+1975    06     0.35880
+1975    07     0.36848
+1975    08     0.37240
+1975    09     0.35946
+1975    10     0.37848
+1975    11     0.38342
+1975    12     0.41149
+1976    01     0.42405
+1976    02     0.39429
+1976    03     0.41667
+1976    04     0.38470
+1976    05     0.38014
+1976    06     0.37740
+1976    07     0.38619
+1976    08     0.39273
+1976    09     0.37698
+1976    10     0.40133
+1976    11     0.40265
+1976    12     0.44093
+1977    01     0.43427
+1977    02     0.40397
+1977    03     0.42718
+1977    04     0.39226
+1977    05     0.38731
+1977    06     0.39141
+1977    07     0.39709
+1977    08     0.39983
+1977    09     0.39052
+1977    10     0.41031
+1977    11     0.41519
+1977    12     0.45146
+1978    01     0.45106
+1978    02     0.41714
+1978    03     0.44740
+1978    04     0.41410
+1978    05     0.40291
+1978    06     0.40450
+1978    07     0.41344
+1978    08     0.41321
+1978    09     0.40805
+1978    10     0.42730
+1978    11     0.42823
+1978    12     0.46653
+1979    01     0.46495
+1979    02     0.42913
+1979    03     0.45497
+1979    04     0.42205
+1979    05     0.41534
+1979    06     0.41431
+1979    07     0.42716
+1979    08     0.42901
+1979    09     0.42001
+1979    10     0.43717
+1979    11     0.43900
+1979    12     0.47400
+1980    01     0.46589
+1980    02     0.42724
+1980    03     0.45960
+1980    04     0.42578
+1980    05     0.41192
+1980    06     0.41260
+1980    07     0.41933
+1980    08     0.42124
+1980    09     0.41393
+1980    10     0.43051
+1980    11     0.43968
+1980    12     0.47852
+1981    01     0.45338
+1981    02     0.41805
+1981    03     0.44170
+1981    04     0.40981
+1981    05     0.40115
+1981    06     0.40423
+1981    07     0.41149
+1981    08     0.41173
+1981    09     0.40181
+1981    10     0.42606
+1981    11     0.42592
+1981    12     0.46301
+1982    01     0.45253
+1982    02     0.41620
+1982    03     0.44602
+1982    04     0.40994
+1982    05     0.40217
+1982    06     0.40362
+1982    07     0.40991
+1982    08     0.41227
+1982    09     0.40062
+1982    10     0.41919
+1982    11     0.42760
+1982    12     0.45191
+1983    01     0.44717
+1983    02     0.41003
+1983    03     0.44927
+1983    04     0.41086
+1983    05     0.40281
+1983    06     0.40599
+1983    07     0.41005
+1983    08     0.42237
+1983    09     0.40992
+1983    10     0.42786
+1983    11     0.43369
+1983    12     0.47775
+1984    01     0.46924
+1984    02     0.43782
+1984    03     0.46739
+1984    04     0.42628
+1984    05     0.42004
+1984    06     0.41940
+1984    07     0.42130
+1984    08     0.43029
+1984    09     0.41423
+1984    10     0.43852
+1984    11     0.44366
+1984    12     0.46897
+1985    01     0.49039
+1985    02     0.45125
+1985    03     0.47511
+1985    04     0.43721
+1985    05     0.42990
+1985    06     0.42791
+1985    07     0.43784
+1985    08     0.44033
+1985    09     0.43260
+1985    10     0.45930
+1985    11     0.45762
+1985    12     0.50171
+1986    01     0.49250
+1986    02     0.45605
+1986    03     0.48126
+1986    04     0.44691
+1986    05     0.43774
+1986    06     0.43678
+1986    07     0.45002
+1986    08     0.44552
+1986    09     0.43707
+1986    10     0.46278
+1986    11     0.46216
+1986    12     0.50839
+1987    01     0.50518
+1987    02     0.46531
+1987    03     0.49902
+1987    04     0.45700
+1987    05     0.44995
+1987    06     0.45930
+1987    07     0.46630
+1987    08     0.46879
+1987    09     0.45651
+1987    10     0.48036
+1987    11     0.47931
+1987    12     0.52508
+1988    01     0.52287
+1988    02     0.49020
+1988    03     0.52344
+1988    04     0.47681
+1988    05     0.46679
+1988    06     0.47468
+1988    07     0.47848
+1988    08     0.48788
+1988    09     0.46872
+1988    10     0.49329
+1988    11     0.50313
+1988    12     0.54784
+1989    01     0.52160
+1989    02     0.48900
+1989    03     0.52893
+1989    04     0.48100
+1989    05     0.47522
+1989    06     0.47870
+1989    07     0.48225
+1989    08     0.49235
+1989    09     0.47963
+1989    10     0.50682
+1989    11     0.51321
+1989    12     0.56321
+1990    01     0.52825
+1990    02     0.48003
+1990    03     0.52435
+1990    04     0.48222
+1990    05     0.47486
+1990    06     0.47687
+1990    07     0.48079
+1990    08     0.49310
+1990    09     0.47797
+1990    10     0.50034
+1990    11     0.50422
+1990    12     0.54897
+1991    01     0.54627
+1991    02     0.50384
+1991    03     0.54382
+1991    04     0.50221
+1991    05     0.49971
+1991    06     0.49047
+1991    07     0.49777
+1991    08     0.49794
+1991    09     0.48224
+1991    10     0.51357
+1991    11     0.51524
+1991    12     0.55837
+1992    01     0.53393
+1992    02     0.49643
+1992    03     0.52687
+1992    04     0.48699
+1992    05     0.47703
+1992    06     0.47369
+1992    07     0.48599
+1992    08     0.48282
+1992    09     0.47853
+1992    10     0.50745
+1992    11     0.51389
+1992    12     0.55485
+1993    01     0.52888
+1993    02     0.50462
+1993    03     0.54321
+1993    04     0.49169
+1993    05     0.47737
+1993    06     0.48059
+1993    07     0.49303
+1993    08     0.49487
+1993    09     0.48453
+1993    10     0.51108
+1993    11     0.52403
+1993    12     0.56392
+1994    01     0.54106
+1994    02     0.50750
+1994    03     0.53564
+1994    04     0.49246
+1994    05     0.48723
+1994    06     0.48884
+1994    07     0.49166
+1994    08     0.50242
+1994    09     0.48732
+1994    10     0.51256
+1994    11     0.51646
+1994    12     0.55960
+1995    01     0.54184
+1995    02     0.51069
+1995    03     0.54924
+1995    04     0.49775
+1995    05     0.50171
+1995    06     0.49361
+1995    07     0.50327
+1995    08     0.51184
+1995    09     0.49449
+1995    10     0.51557
+1995    11     0.53151
+1995    12     0.58021
+1996    01     0.56457
+1996    02     0.53318
+1996    03     0.56069
+1996    04     0.51202
+1996    05     0.51159
+1996    06     0.50331
+1996    07     0.51931
+1996    08     0.52037
+1996    09     0.50864
+1996    10     0.53560
+1996    11     0.54387
+1996    12     0.58743
+1997    01     0.56862
+1997    02     0.51754
+1997    03     0.55221
+1997    04     0.51650
+1997    05     0.51358
+1997    06     0.50622
+1997    07     0.52732
+1997    08     0.52530
+1997    09     0.51648
+1997    10     0.54894
+1997    11     0.54996
+1997    12     0.59650
+1998    01     0.55336
+1998    02     0.51716
+1998    03     0.55550
+1998    04     0.50978
+1998    05     0.50603
+1998    06     0.50691
+1998    07     0.51977
+1998    08     0.51804
+1998    09     0.50830
+1998    10     0.52917
+1998    11     0.53637
+1998    12     0.58201
+1999    01     0.55720
+1999    02     0.51202
+1999    03     0.55864
+1999    04     0.51028
+1999    05     0.50580
+1999    06     0.50608
+1999    07     0.51848
+1999    08     0.52092
+1999    09     0.50601
+1999    10     0.52726
+1999    11     0.53895
+1999    12     0.58005
+2000    01     0.57314
+2000    02     0.55079
+2000    03     0.57086
+2000    04     0.51994
+2000    05     0.52341
+2000    06     0.52229
+2000    07     0.52676
+2000    08     0.54093
+2000    09     0.52664
+2000    10     0.54410
+2000    11     0.55450
+2000    12     0.60297
+2001    01     0.58647
+2001    02     0.54321
+2001    03     0.58069
+2001    04     0.53177
+2001    05     0.53513
+2001    06     0.52555
+2001    07     0.53887
+2001    08     0.54453
+2001    09     0.52289
+2001    10     0.54891
+2001    11     0.55360
+2001    12     0.59173
+2002    01     0.59298
+2002    02     0.54028
+2002    03     0.57896
+2002    04     0.53894
+2002    05     0.53658
+2002    06     0.53557
+2002    07     0.55276
+2002    08     0.55043
+2002    09     0.53663
+2002    10     0.57000
+2002    11     0.57302
+2002    12     0.61363
+2003    01     0.62731
+2003    02     0.58055
+2003    03     0.60857
+2003    04     0.56092
+2003    05     0.55414
+2003    06     0.55420
+2003    07     0.56987
+2003    08     0.57205
+2003    09     0.55958
+2003    10     0.59610
+2003    11     0.60060
+2003    12     0.65321
+2004    01     0.64882
+2004    02     0.61456
+2004    03     0.64419
+2004    04     0.59265
+2004    05     0.58759
+2004    06     0.58463
+2004    07     0.59878
+2004    08     0.59835
+2004    09     0.59342
+2004    10     0.61716
+2004    11     0.62511
+2004    12     0.68284
+2005    01     0.67566
+2005    02     0.61536
+2005    03     0.66544
+2005    04     0.61158
+2005    05     0.60571
+2005    06     0.61097
+2005    07     0.61800
+2005    08     0.62523
+2005    09     0.61036
+2005    10     0.62953
+2005    11     0.64066
+2005    12     0.70520
+2006    01     0.67556
+2006    02     0.63269
+2006    03     0.68363
+2006    04     0.62148
+2006    05     0.62526
+2006    06     0.62507
+2006    07     0.64087
+2006    08     0.64627
+2006    09     0.63042
+2006    10     0.65911
+2006    11     0.66051
+2006    12     0.71582
+2007    01     0.69849
+2007    02     0.65680
+2007    03     0.69762
+2007    04     0.64523
+2007    05     0.64697
+2007    06     0.65051
+2007    07     0.65709
+2007    08     0.67078
+2007    09     0.64786
+2007    10     0.67711
+2007    11     0.68544
+2007    12     0.73625
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_actuel
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_actuel	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_actuel	(revision 5899)
@@ -0,0 +1,88 @@
+## level_coupling_esm : 0(pas d'echange de carbone), 2 (change entre LMDZ/CPL/NEMO et LMDZ/ORCHIDEE)
+level_coupling_esm=  _AUTO_: DEFAULT = 0
+## carbon_cycle_cpl: couplage des flux de carbone ATM/OCE, ATM/SRF
+carbon_cycle_cpl=_AUTO_ : DEFAULT=n
+## carbon_cycle_tr: transport atmospherique de CO2 dans LMDZ
+carbon_cycle_tr=_AUTO_ : DEFAULT=n
+## carbon_cycle_rad: utilisation de traceur CO2 dans le code radiatif
+carbon_cycle_rad=_AUTO_ : DEFAULT=n
+
+##  Cycle diurne  ou non                 
+iflag_cycle_diurne=1
+##  Soil Model  ou non               
+soil_model=y
+## Pas de temps de couplage (s).
+t_coupl=_AUTO_
+
+## Nombre  d'appels des routines de rayonnements ( par jour)                 
+nbapp_rad=16
+
+##  Facteur additif pour l'albedo
+pmagic =  _AUTO_: DEFAULT = 0.0
+
+#
+# Parametres "orbitaux/ ere geologique"
+#
+### R_ecc =      Excentricite (lue dans Eccentricity.txt)
+R_ecc = _AUTO_: DEFAULT = 0.016715
+### R_peri =     Equinoxe (lue dans Perihelie.txt)
+R_peri = _AUTO_: DEFAULT = 102.7
+### R_incl =     Inclinaison (lue dans Obliquity.txt)
+R_incl = _AUTO_: DEFAULT = 23.441
+### solaire =    Constante solaire
+#solaire = _AUTO_ : DEFAULT = 1366.0896
+solaire = _AUTO_ : DEFAULT = 1361.20 
+# solaire est modifie avec les valeurs du fichier SOLARANDVOLCANOES.txt
+### constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+#
+# Taux gaz a effet de serre
+#
+### co2_ppm =    taux CO2 en ppm, l'annÃ©e 2000 forcage CMIP6
+co2_ppm = _AUTO_: DEFAULT = 3.6912e+02
+### co2_ppm_per =    taux 4xCO2 en ppm (uniqument pour calcul des diags)
+co2_ppm_per = _AUTO_: DEFAULT = 14.7648e+02
+### CH4_ppb =    taux CH4 en ppb, l'annÃ©e 2000 forcage CMIP6
+CH4_ppb = _AUTO_ : DEFAULT = 1.7780e+03
+### N2O_ppb =    taux N2O en ppb, l'annÃ©e 2000 forcage CMIP6
+N2O_ppb = _AUTO_ : DEFAULT = 3.1576e+02
+### CFC11_ppt = taux en ppt, l'annÃ©e 2000 forcage CFC11eq_CMIP6
+CFC11_ppt = _AUTO_ : DEFAULT = 6.3990e+01
+### CFC12_ppt =  taux en ppt, l'annÃ©e 2000 forcage CFC12eq_CMIP6
+CFC12_ppt = _AUTO_ : DEFAULT = 1.0511e+03
+#
+# Parametres effets directs/indirects des "aerosols"
+#
+### ok_ade=y/n   flag Aerosol direct effect
+ok_ade=_AUTO_
+### ok_aie=y/n   flag Aerosol indirect effect
+ok_aie=_AUTO_
+### aer_type =   Aerosol variation type : actuel / preind / scenario / annuel
+aer_type=actuel
+### aerosol coupling = online (y) or offline (n)
+aerosol_couple=_AUTO_
+### Ozone chemistry coupling = online (y) or offline (n)
+chemistry_couple=_AUTO_
+###  flag_aerosol = type of coupled aerosol, if aerosol offline 
+###  0 => no aerosol, 1 => sulfate only, 2 => bc only, 3 => pom only, 4 => seasalt only, 5 => dust only, 6 => all aerosol
+flag_aerosol=_AUTO_ 
+### ok_cdnc=y/n   Cloud droplet number concentration
+ok_cdnc=_AUTO_
+# ok_alw=y flag pour activer l effet LW des poussieres
+ok_alw=y
+#
+# Parametre de lecture de l'ozone
+#
+# Allowed values are 0, 1 and 2
+# 0: do not read an ozone climatology
+# 1: read a single ozone climatology that will be used day and night
+# 2: read two ozone climatologies, the average day and night climatology and the daylight climatology
+read_climoz=_AUTO_
+# 
+# Aerosols stratospheriques utilises par defaut 
+flag_aerosol_strat=_AUTO_ : DEFAULT=2
+# Diag VolMIP to get volcanic aerosols effects instead of tropospheric ones
+ok_volcan=n
+#
+# COSP
+ok_cosp=_AUTO_
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_annuel
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_annuel	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_annuel	(revision 5899)
@@ -0,0 +1,89 @@
+# level_coupling_esm : 0(pas d'echange de carbone), 2 (change entre LMDZ/CPL/NEMO et LMDZ/ORCHIDEE)
+level_coupling_esm=  _AUTO_: DEFAULT = 0
+## carbon_cycle_cpl: couplage des flux de carbone ATM/OCE, ATM/SRF
+carbon_cycle_cpl=_AUTO_ : DEFAULT=n
+## carbon_cycle_tr: transport atmospherique de CO2 dans LMDZ
+carbon_cycle_tr=_AUTO_ : DEFAULT=n
+## carbon_cycle_rad: utilisation de traceur CO2 dans le code radiatif
+carbon_cycle_rad=_AUTO_ : DEFAULT=n
+
+##  Cycle diurne  ou non                 
+iflag_cycle_diurne=1
+##  Soil Model  ou non               
+soil_model=y
+## Pas de temps de couplage (s).
+t_coupl=_AUTO_
+
+## Nombre  d'appels des routines de rayonnements ( par jour)                 
+nbapp_rad=16
+
+##  Facteur additif pour l'albedo
+pmagic =  _AUTO_: DEFAULT = 0.0
+
+#
+# Parametres "orbitaux/ ere geologique"
+#
+### R_ecc =      Excentricite (lue dans Eccentricity.txt)
+R_ecc = _AUTO_: DEFAULT = 0.016715
+### R_peri =     Equinoxe (lue dans Perihelie.txt)
+R_peri = _AUTO_: DEFAULT = 102.7
+### R_incl =     Inclinaison (lue dans Obliquity.txt)
+R_incl = _AUTO_: DEFAULT = 23.441
+### solaire =    Constante solaire
+# solaire est modifie avec les valeurs du fichier SOLARANDVOLCANOES.txt
+# solaire parameter est utilise uniquement avec si iflag_rrtm=0 et ok_suntime_rrtm=n
+solaire = _AUTO_: DEFAULT = 0.0 
+### constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+#
+# Taux gaz a effet de serre
+#
+### co2_ppm =    taux CO2 en ppm
+co2_ppm = _AUTO_
+### co2_ppm_per =    taux 4xCO2 en ppm (uniqument pour calcul des diags)
+co2_ppm_per = _AUTO_
+### CH4_ppb =    taux CH4 en ppb
+CH4_ppb = _AUTO_
+### N2O_ppb =    taux N2O en ppb
+N2O_ppb = _AUTO_
+### CFC11_ppt =  taux CFC11 en ppt
+CFC11_ppt = _AUTO_
+### CFC12_ppt =  taux CFC12 en ppt
+CFC12_ppt = _AUTO_
+#
+# Parametres effets directs/indirects des "aerosols"
+#
+### ok_ade=y/n   flag Aerosol direct effect
+ok_ade=_AUTO_
+### ok_aie=y/n   flag Aerosol indirect effect
+ok_aie=_AUTO_
+### aer_type =   Aerosol variation type : actuel / preind / scenario / annuel
+aer_type=annuel
+### aerosol coupling = online (y) or offline (n)
+aerosol_couple=_AUTO_
+### Ozone chemistry coupling = online (y) or offline (n)
+chemistry_couple=_AUTO_
+###  flag_aerosol = type of coupled aerosol, if aerosol offline 
+###  0 => no aerosol, 1 => sulfate only, 2 => bc only, 3 => pom only, 4 => seasalt only, 5 => dust only, 6 => all aerosol
+flag_aerosol=_AUTO_ 
+### ok_cdnc=y/n   Cloud droplet number concentration
+ok_cdnc=_AUTO_
+# ok_alw=y flag pour activer l effet LW des poussieres
+ok_alw=y
+#
+#
+# Parametre de lecture de l'ozone
+#
+# Allowed values are 0, 1 and 2
+# 0: do not read an ozone climatology
+# 1: read a single ozone climatology that will be used day and night
+# 2: read two ozone climatologies, the average day and night climatology and the daylight climatology
+read_climoz=_AUTO_
+# 
+# Aerosols stratospheriques utilises par defaut 
+flag_aerosol_strat=_AUTO_ : DEFAULT=2
+# Diag VolMIP to get volcanic aerosols effects instead of tropospheric ones
+ok_volcan=n
+#
+# COSP
+ok_cosp=_AUTO_
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_preind
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_preind	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/config.def_preind	(revision 5899)
@@ -0,0 +1,90 @@
+## level_coupling_esm : 0(pas d'echange de carbone), 2 (change entre LMDZ/CPL/NEMO et LMDZ/ORCHIDEE)
+level_coupling_esm=  _AUTO_: DEFAULT = 0
+## carbon_cycle_cpl: couplage des flux de carbone ATM/OCE, ATM/SRF
+carbon_cycle_cpl=_AUTO_ : DEFAULT=n
+## carbon_cycle_tr: transport atmospherique de CO2 dans LMDZ
+carbon_cycle_tr=_AUTO_ : DEFAULT=n
+## carbon_cycle_rad: utilisation de traceur CO2 dans le code radiatif
+carbon_cycle_rad=_AUTO_ : DEFAULT=n
+
+##  Cycle diurne  ou non                 
+iflag_cycle_diurne=1
+
+## Pas de temps de couplage (s). 
+t_coupl=_AUTO_
+
+##  Soil Model  ou non               
+soil_model=y
+
+## Nombre  d'appels des routines de rayonnements ( par jour)                 
+nbapp_rad=16
+
+##  Facteur additif pour l'albedo
+pmagic =  _AUTO_: DEFAULT = 0.0
+
+#
+# Parametres "orbitaux/ ere geologique"
+#
+### R_ecc =      Excentricite (lue dans Eccentricity.txt)
+R_ecc = _AUTO_: DEFAULT = 0.016715
+### R_peri =     Equinoxe (lue dans Perihelie.txt)
+R_peri = _AUTO_: DEFAULT = 102.7
+### R_incl =     Inclinaison (lue dans Obliquity.txt)
+R_incl = _AUTO_: DEFAULT = 23.441
+### solaire =    Constante solaire (lue dans SOLARANDVOLCANOES.txt)
+solaire = _AUTO_: DEFAULT = 1361.20
+### constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+#
+# Taux gaz a effet de serre
+#
+### co2_ppm =    taux CO2 en ppm, l'annÃ©e 1850 forcage CMIP6
+co2_ppm = _AUTO_: DEFAULT  = 2.8432e+02
+### co2_ppm_per =    taux 4xCO2 en ppm (uniqument pour calcul des diags)
+co2_ppm_per = _AUTO_: DEFAULT  =11.3728e+02
+### CH4_ppb =    taux CH4 en ppb, l'annÃ©e 1850 forcage CMIP6
+CH4_ppb = _AUTO_: DEFAULT = 8.0825e+02
+### N2O_ppb =    taux N2O en ppb, l'annÃ©e 1850 forcage CMIP6
+N2O_ppb = _AUTO_: DEFAULT = 2.7302e+02
+### CFC11_ppt = taux en ppt, l'annÃ©e 1850 forcage CFC11eq_CMIP6
+CFC11_ppt = _AUTO_: DEFAULT = 1.1726e+01
+### CFC12_ppt = taux en ppt, l'annÃ©e 1850 forcage CFC12eq_CMIP6
+CFC12_ppt = _AUTO_: DEFAULT = 1.6513e+01
+#
+# Parametres effets directs/indirects des "aerosols"
+#
+### ok_ade=y/n   flag Aerosol direct effect
+ok_ade=_AUTO_
+### ok_aie=y/n   flag Aerosol indirect effect
+ok_aie=_AUTO_
+### aer_type =   Aerosol variation type : actuel / preind / scenario / annuel
+aer_type=preind
+### aerosol coupling = online (y) or offline (n)
+aerosol_couple=_AUTO_
+### Ozone chemistry coupling = online (y) or offline (n)
+chemistry_couple=_AUTO_
+###  flag_aerosol = type of coupled aerosol, if aerosol offline 
+###  0 => no aerosol, 1 => sulfate only, 2 => bc only, 3 => pom only, 4 => seasalt only, 5 => dust only, 6 => all aerosol
+flag_aerosol=_AUTO_
+### ok_cdnc=y/n   Cloud droplet number concentration
+ok_cdnc=_AUTO_
+# ok_alw=y flag pour activer l effet LW des poussieres
+ok_alw=y
+#
+# Parametre de lecture de l'ozone
+#
+# Allowed values are 0, 1 and 2
+# 0: do not read an ozone climatology
+# 1: read a single ozone climatology that will be used day and night
+# 2: read two ozone climatologies, the average day and night climatology and the daylight climatology
+read_climoz=_AUTO_
+#
+# Aerosols stratospheriques utilises par defaut 
+#
+flag_aerosol_strat=_AUTO_ : DEFAULT=2
+# Diag VolMIP to get volcanic aerosols effects instead of tropospheric ones
+ok_volcan=n
+#
+# COSP
+#
+ok_cosp=_AUTO_
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/conv_param.data_NPv5.17c
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/conv_param.data_NPv5.17c	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/conv_param.data_NPv5.17c	(revision 5899)
@@ -0,0 +1,8 @@
+-40      dpbase (altitude, in hPa, above LCL at which buoybase is computed, def = original: -40)
+150      pbcrit (altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0)
+500      ptcrit (altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=))
+0.01     sigdz (reference fractional area of precipitating downdraughts, def = original: 0.01)
+0.15     spfac (unsaturated fraction of precipitating downdraughts, def = original: 0.15)
+8000.    tau (relaxation time of cloud base mass flux, def = original: 8000)
+1        flag_wb (flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1)
+6.       wbmax (parameter used in the computation of wb, def = 6.)
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/coupling_fields.def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/coupling_fields.def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/coupling_fields.def	(revision 5899)
@@ -0,0 +1,4 @@
+3 
+atmco2            OUT   LMDZ    ALL     Atmospheric CO2 concentration                                                                                              ppm
+fCO2_nbp          IN    ORC     LMDZ    carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_including_anthropogenic_land_use_change                       kgC.m-2.s-1
+fCO2_fgco2        IN    NEMO    LMDZ    Surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon                                                           kgC.m-2.s-1
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ep_param.data_NPv5.17c
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ep_param.data_NPv5.17c	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ep_param.data_NPv5.17c	(revision 5899)
@@ -0,0 +1,3 @@
+1      flag_epKEorig (Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1)
+0.0003 elcrit (max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1)
+-55    tlcrit(temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1) 
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_AP
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_AP	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_AP	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=720 => dt=2min )      
+day_step=720
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=7200.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=7200.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=15
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv3.2
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv3.2	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv3.2	(revision 5899)
@@ -0,0 +1,1 @@
+link gcm.def_144x142_NPv5.70
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.70
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.70	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.70	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=720 => dt=2min )
+day_step=720
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=7200.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=7200.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=5
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.80b
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.80b	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.80b	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=960 => dt=1.5min )
+day_step=960
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=7200.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=7200.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=10
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.80bz0
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.80bz0	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv5.80bz0	(revision 5899)
@@ -0,0 +1,1 @@
+link gcm.def_144x142_NPv5.80b
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.10
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.10	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.10	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id: gcm.def_144x142_NPv6.0.9 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) ( day_step=960 => dt=1.5min )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.11
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.11	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.11	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id: gcm.def_144x142_NPv6.0.9 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) ( day_step=960 => dt=1.5min )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.12
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.12	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.12	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.0.12 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.13
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.13	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.13	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.0.12 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.14split
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.14split	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.14split	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.0.12 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.14ttop
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.14ttop	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.14ttop	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.0.12 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.15_S
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.15_S	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.15_S	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.0.15_S 3583 2018-02-14 14:45:14Z lfairhead $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.15_T
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.15_T	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.15_T	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.0.15_T 3583 2018-02-14 14:45:14Z lfairhead $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.7
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.7	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.7	(revision 5899)
@@ -0,0 +1,1 @@
+link gcm.def_144x142_NPv5.80b
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.8
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.8	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.8	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id: gcm.def_144x142_NPv6.0.8 3123 2017-02-13 16:08:00Z lfairhead $
+## nombre de pas par jour (multiple de iperiod) ( day_step=960 => dt=1.5min )
+day_step=960
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=10
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.9
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.9	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.0.9	(revision 5899)
@@ -0,0 +1,56 @@
+## $Id: gcm.def_144x142_NPv6.0.9 3154 2017-03-01 20:15:12Z aclsce $
+## nombre de pas par jour (multiple de iperiod) ( day_step=960 => dt=1.5min )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.1
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.1	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.1	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.1 3668 2018-03-20 14:55:33Z lfairhead $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.1.3
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.1.3	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_144x142_NPv6.1.3	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: gcm.def_144x142_NPv6.1 3668 2018-03-20 14:55:33Z lfairhead $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=672 => dt=2.15min or 15mn/7, physique toutes les 15 mn )
+day_step=672
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=3600.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=21600.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=10800.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=7
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=4
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_256x256_NPv6.1
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_256x256_NPv6.1	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_256x256_NPv6.1	(revision 5899)
@@ -0,0 +1,57 @@
+## $Id: $
+## nombre de pas par jour (multiple de iperiod) 
+## ( day_step=1344 => dt=1.075 min or 15mn/14, physique toutes les 15 mn )
+day_step=1344
+## periode pour le pas Matsuno (en pas)
+iperiod=7
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=1800.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=10800.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=5400.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno:y ou Matsuno-leapfrog:n) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique                                         
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas dynamiques, n'a de sens que si iflag_phys=1)                                       
+iphysiq=14
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
+##
+ngroup=5
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_AP
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_AP	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_AP	(revision 5899)
@@ -0,0 +1,47 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=480 => dt=3min )
+day_step=480
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=5400.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=5400.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=5400.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno ou Matsuno-leapfrog) 
+purmats=n
+## avec ou sans physique                                                 
+physic=y
+## periode de la physique (en pas)                                       
+iphysiq=10
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv3.2
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv3.2	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv3.2	(revision 5899)
@@ -0,0 +1,47 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=480 => dt=3min )      
+day_step=480
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=5400.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=5400.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=5400.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno ou Matsuno-leapfrog) 
+purmats=n
+## avec ou sans physique                                                 
+physic=y
+## periode de la physique (en pas)                                       
+iphysiq=5
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv6.1.3
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv6.1.3	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv6.1.3	(revision 5899)
@@ -0,0 +1,54 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=480 => dt=3min )      
+day_step=480
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=5400.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=5400.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=5400.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno ou Matsuno-leapfrog) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas)                                       
+iphysiq=5
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv6.1.3precliq
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv6.1.3precliq	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_NPv6.1.3precliq	(revision 5899)
@@ -0,0 +1,54 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=480 => dt=3min )      
+day_step=480
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=5400.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=5400.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=5400.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno ou Matsuno-leapfrog) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas)                                       
+iphysiq=5
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_tn
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_tn	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/gcm.def_96x95_tn	(revision 5899)
@@ -0,0 +1,54 @@
+## $Id$
+## nombre de pas par jour (multiple de iperiod) ( day_step=480 => dt=3min )      
+day_step=480
+## periode pour le pas Matsuno (en pas)
+iperiod=5
+## choix de l'operateur de dissipation (star ou  non star )
+lstardis=y
+## nombre d'iterations de l'operateur de dissipation   gradiv
+nitergdiv=1
+## nombre d'iterations de l'operateur de dissipation  nxgradrot
+nitergrot=2
+## nombre d'iterations de l'operateur de dissipation  divgrad            
+niterh=2
+## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
+tetagdiv=5400.
+## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
+tetagrot=5400.
+## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
+tetatemp=5400.
+## coefficient pour gamdissip                                            
+coefdis=0.
+## choix du shema d'integration temporelle (Matsuno ou Matsuno-leapfrog) 
+purmats=n
+## avec ou sans physique
+## 0: pas de physique (e.g. en mode Shallow Water)
+## 1: avec physique (e.g. physique phylmd)
+## 2: avec rappel newtonien dans la dynamique
+iflag_phys=1
+## avec ou sans fichiers de demarrage (start.nc, startphy.nc) ?
+## (sans fichiers de demarrage, initialisation des champs par iniacademic
+##  dans la dynamique)
+read_start=y
+## periode de la physique (en pas)                                       
+iphysiq=5
+## longitude en degres du centre du zoom                                 
+clon=0.
+## latitude en degres du centre du zoom                                  
+clat=0.
+## facteur de grossissement du zoom,selon longitude                      
+grossismx=1.0
+## facteur de grossissement du zoom ,selon latitude                      
+grossismy=1.0
+##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
+fxyhypb=y
+## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
+dzoomx=0.0
+## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
+dzoomy=0.0
+##raideur du zoom en  X
+taux=3.
+##raideur du zoom en  Y
+tauy=3.
+##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
+ysinus=y
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/guide.def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/guide.def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/guide.def	(revision 5899)
@@ -0,0 +1,16 @@
+# ok_guide=y : guidage active
+ok_guide=_AUTO_ : DEFFAULT = n
+#
+guide_u= y
+guide_v= y
+guide_T= n
+guide_P= n
+guide_Q= n
+
+ini_anal=n
+tau_min_u=0.0208333
+tau_max_u=0.125
+tau_min_v=0.0208333
+tau_max_v=0.125
+#tau_min_T=0.0208333
+#tau_max_T=10
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/inca.def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/inca.def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/inca.def	(revision 5899)
@@ -0,0 +1,36 @@
+#######################################################################
+# parametres pour INCA
+#######################################################################
+#LMDZ_10m_winds=y --> use 10m wind from LMDZ, =n --> use 10m wind from output file
+LMDZ_10m_winds=_AUTO_
+10m_winds_method=_AUTO_
+#choose if there is a feedback with the areosol effect
+feedb=_AUTO_
+#indicate if we are running with xios and/or ioipsl
+XIOS_INCA_OK=_AUTO_
+IOIPSL_INCA_OK=_AUTO_
+#weibull 10m wind parameter / def 4
+kref=_AUTO_: DEFAULT =4
+#threshold 10m wind parameter / def 0.78
+tref=_AUTO_: DEFAULT =0.78
+#seasalt_correctif / def = 1 
+ss_corr=_AUTO_: DEFAULT =1 
+#sedimentation 
+multilayer_sediment=_AUTO_
+#coupled model with orchidee
+CoupOrchInca=_AUTO_
+nbveget=15
+#use or not the deposition from orchidee
+DepOrch=n
+# uncomment two next line if we want to coupled with orchidee without transfer any flux
+#nbFlux_FromOrch=0
+#emi_FromOrch=
+#output diagnostic for chemistry flux
+calcul_flux=_AUTO_
+#
+flag_plume=0
+#choose which type of aircraft you will use (0 - 1 - 2 - 3) (no aircraft / old inca aircraft / new subsonic inca aircraft / subsonic + hypersonic inca aircraft)
+flag_plane=_AUTO_
+#choose which time interpolation you want to interpolate sflx file. ( 0 - 1 - 2) (no interpolation / point to point interpolation / Sheng & Zwiers interpolation) 
+emi_interp_time=_AUTO_
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/iodef.xml
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/iodef.xml	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/iodef.xml	(revision 5899)
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!-- =========================================================================================================== -->
+<!-- iodef.xml : Configuration file for production of output files using XIOS                                    -->
+<!--             This file contains the context XIOS.                                                            -->
+<!--             The model components context will be add automatically by the comp.driver                       -->
+<!-- =========================================================================================================== -->
+
+<simulation>
+
+  <!-- =========================================================================================================== -->
+  <!-- XIOS context                                                                                                -->
+  <!-- =========================================================================================================== -->
+  <context id="xios">
+
+    <variable_definition>
+         <variable_group id="server">
+            <variable id="using_server2" type="bool">false</variable>
+            <variable id="ratio_server2" type="int">50</variable>
+         </variable_group>
+
+        <variable_group id="buffer">
+            <variable id="optimal_buffer_size" type="string">performance</variable>
+            <variable id="buffer_size_factor" type="double">1.0</variable>
+            <variable id="min_buffer_size" type="int">10000000</variable>
+         </variable_group>
+
+        <variable_group id="parameters" >
+          <variable id="using_server" type="bool">false</variable>
+          <variable id="info_level" type="int">1</variable>
+          <variable id="print_file" type="bool">false</variable>
+          <variable id="using_oasis" type="bool">false</variable>
+          <variable id="oasis_codes_id" type="string" >LMDZ,oceanx</variable>
+        </variable_group>
+      <variable id="activate_non_distributed_transformation" type="bool">true</variable>
+      <variable id="recv_field_timeout" type="double">3000.0</variable>
+      <variable id="call_oasis_enddef" type="bool">true</variable>
+    </variable_definition>
+
+  </context>
+
+  <!-- =========================================================================================================== -->
+  <!-- COMPONENT CONTEXT : the model components context will be add automatically by the comp.driver               -->
+  
+</simulation>
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/iodef_template.xml
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/iodef_template.xml	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/iodef_template.xml	(revision 5899)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!-- =========================================================================================================== -->
+<!-- iodef.xml : Configuration file for production of output files using XIOS                                    -->
+<!--             This file contains the context XIOS.                                                            -->
+<!--             The model components context will be add automatically by the comp.driver                       -->
+<!-- =========================================================================================================== -->
+
+<simulation>
+
+  <!-- =========================================================================================================== -->
+  <!-- XIOS context                                                                                                -->
+  <!-- =========================================================================================================== -->
+  <context id="xios">
+
+    <variable_definition>
+         <variable_group id="server">
+            <variable id="using_server2" type="bool">false</variable>
+            <variable id="ratio_server2" type="int">50</variable>
+         </variable_group>
+
+        <variable_group id="buffer">
+            <variable id="optimal_buffer_size" type="string">performance</variable>
+            <variable id="buffer_size_factor" type="double">2.0</variable>
+            <variable id="min_buffer_size" type="int">10000000</variable>
+         </variable_group>
+
+        <variable_group id="parameters" >
+          <variable id="using_server" type="bool">true</variable>
+          <variable id="info_level" type="int">1</variable>
+          <variable id="print_file" type="bool">true</variable>
+          <variable id="using_oasis" type="bool">true</variable>
+          <variable id="oasis_codes_id" type="string" >@oasis_codes_id</variable>
+        </variable_group>
+      <variable id="activate_non_distributed_transformation" type="bool">true</variable>
+      <variable id="recv_field_timeout" type="double">3000.0</variable>
+      <variable id="call_oasis_enddef" type="bool">true</variable>
+    </variable_definition>
+
+  </context>
+
+  <!-- =========================================================================================================== -->
+  <!-- COMPONENT CONTEXT : the model components context will be add automatically by the comp.driver               -->
+<context id="nemo" src="./context_nemo.xml"/>
+<context id="orchidee" src="./context_orchidee.xml"/>
+<context id="orchidee" src="./context_input_orchidee.xml"/>
+<context id="LMDZ" src="./context_lmdz.xml"/>
+  
+</simulation>
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ESMCO2_ORCA1xLMD144142
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ESMCO2_ORCA1xLMD144142	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ESMCO2_ORCA1xLMD144142	(revision 5899)
@@ -0,0 +1,468 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            29
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   0 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  2  sstoc.nc  <output_mode> 
+362 332 144 143 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  2  sstoc.nc <output_mode>
+362 332 144 143 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 8 : Ocean Carbon flux  (o->a 8)
+O_CO2FLX SICO2FLX 38  <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc  tlmd  LAG=<lag_oce>
+P  30 P  3
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea fiel
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+144 143 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+144 143 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+144 143 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving north (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling_roff_calv>  2  flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_nosouth.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 25 : iceberg melting (a->o 17)
+#
+COCALVIN OIceberg  36 <freq_coupling_roff_calv>  3  icbrg.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_iceberg.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#########################################################################
+#
+# Field 26 : ice shelf melting (a->o 17)
+#
+COCALVIN OIcshelf  36 <freq_coupling_roff_calv>  3  icshf.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_iceshelf.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+##########################################################################
+#
+# Field 27 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+144 143 362 332 aone  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 29 : atmospheric CO2 concentration  (a->o 24)
+#
+COATMCO2 O_AtmCO2 37 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  30 P  3
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tLMD144X142_to_teORCA1.2_1storder.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA025xLMD256256
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA025xLMD256256	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA025xLMD256256	(revision 5899)
@@ -0,0 +1,442 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            27
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   0 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  2  sstoc.nc  <output_mode> 
+1442 1207 256 257 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  2  sstoc.nc <output_mode>
+1442 1207 256 257 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+1442 1207 256 257 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+1442 1207 256 257 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+1442 1207 256 257 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+1442 1207 256 257 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+1442 1207 256 257 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_TempIceAlb.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+256 257 1442 1207 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_WindStress.nc  dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_WindStress.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_WindStress.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+rmp_tlmd_to_vorc_WindStress.nc dst 
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+rmp_tlmd_to_vorc_WindStress.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+rmp_tlmd_to_vorc_WindStress.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_HeatWaterFluxes.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving north (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling_roff_calv>  2  flxat.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_calving_nosouth.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 25 : iceberg melting (a->o 17)
+#
+COCALVIN OIceberg  36 <freq_coupling_roff_calv>  3  icbrg.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_calving_iceberg.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#########################################################################
+#
+# Field 26 : ice shelf melting (a->o 17)
+#
+COCALVIN OIcshelf  36 <freq_coupling_roff_calv>  3  icshf.nc  <output_mode>
+256 257 1442 1207 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_calving_iceshelf.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+##########################################################################
+#
+# Field 27 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+256 257 1442 1207 olmd  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_runoff.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD144142
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD144142	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD144142	(revision 5899)
@@ -0,0 +1,442 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            27
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   0 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  2  sstoc.nc  <output_mode> 
+362 332 144 143 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  2  sstoc.nc <output_mode>
+362 332 144 143 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+144 143 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+144 143 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+144 143 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving north (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling_roff_calv>  2  flxat.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_nosouth.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 25 : iceberg melting (a->o 17)
+#
+COCALVIN OIceberg  36 <freq_coupling_roff_calv>  3  icbrg.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_iceberg.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#########################################################################
+#
+# Field 26 : ice shelf melting (a->o 17)
+#
+COCALVIN OIcshelf  36 <freq_coupling_roff_calv>  3  icshf.nc  <output_mode>
+144 143 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_iceshelf.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+##########################################################################
+#
+# Field 27 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+144 143 362 332 aone  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD256256
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD256256	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD256256	(revision 5899)
@@ -0,0 +1,442 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSLCM6-MR1
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            27
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   0 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  2  sstoc.nc  <output_mode> 
+362 332 256 257 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  2  sstoc.nc <output_mode>
+362 332 256 257 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 256 257 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 256 257 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 256 257 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 256 257 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 256 257 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+256 257 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+256 257 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+256 257 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 362 332 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+# CHECKIN: indicate computation of global, land and sea field integrals.
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving north (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling_roff_calv>  2  flxat.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_nosouth.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 25 : iceberg melting (a->o 17)
+#
+COCALVIN OIceberg  36 <freq_coupling_roff_calv>  3  icbrg.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_iceberg.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#########################################################################
+#
+# Field 26 : ice shelf melting (a->o 17)
+#
+COCALVIN OIcshelf  36 <freq_coupling_roff_calv>  3  icshf.nc  <output_mode>
+256 257 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calving_iceshelf.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+##########################################################################
+#
+# Field 27 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+256 257 362 332 aone  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD9695
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD9695	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA1xLMD9695	(revision 5899)
@@ -0,0 +1,447 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            27
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   100 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  2  sstoc.nc  <output_mode> 
+362 332 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  2  sstoc.nc <output_mode>
+362 332 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 96 95 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+362 332 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+96 96 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_ueORCA1.2_WindStress_MOSAIX_v0.nc  dst
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_ueORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 362 332 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_ueORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 362 332 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#rmp_tLMD144142_to_veORCA1.2_WindStress_MOSAIX_v0.nc dst 
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+144 143 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#rmp_tLMD144142_to_veORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 362 332 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#rmp_tLMD144142_to_veORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING  
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving north (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling_roff_calv>  2  flxat.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING 
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_calving_nosouth_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC_calving_nosouth.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 25 : iceberg melting (a->o 17)
+#
+COCALVIN OIceberg  36 <freq_coupling_roff_calv>  3  icbrg.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_calving_iceberg_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC_calving_iceberg.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#########################################################################
+#
+# Field 26 : ice shelf melting (a->o 17)
+#
+COCALVIN OIcshelf  36 <freq_coupling_roff_calv>  3  icshf.nc  <output_mode>
+96 96 362 332 tlmd    torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING BLASNEW
+AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_calving_iceshelf_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC_calving_iceshelf.nc dst
+0.5 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+##########################################################################
+#
+# Field 27 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+96 96 362 332 olmd  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+#rmp_tLMD144142_to_teORCA1.2_runoff_Quantity_to_Surfacic_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD144142
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD144142	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD144142	(revision 5899)
@@ -0,0 +1,459 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   2 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  4  sstoc.nc  <output_mode> 
+182 149 144 143 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  4  sstoc.nc <output_mode>
+182 149 144 143 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING  CHECKOUT 
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 144 143 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 144 143 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1  
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 144 143 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  3  flxat.nc   <output_mode>
+144 143 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+144 143 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+144 143 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+144 143 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+144 143 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+144 143 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  3    flxat.nc  <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  3   flxat.nc   <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  3   flxat.nc   <output_mode>
+tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  3   flxat.nc   <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  3   flxat.nc   <output_mode>
+tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 3   flxat.nc  <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  3   flxat.nc  <output_mode>
+tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 3   flxat.nc  <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  3  flxat.nc  <output_mode>
+tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  3   flxat.nc  <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  3  flxat.nc  <output_mode>
+144 143 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling>  5  flxat.nc   <output_mode>
+144 143 182 149 aone torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CONSERV BLASNEW CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695	(revision 5899)
@@ -0,0 +1,364 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   100 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  2  sstoc.nc  <output_mode> 
+182 149 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  2  sstoc.nc <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING 
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+#
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+#
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+#
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING  
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling>  3  flxat.nc   <output_mode>
+96 96 182 149 olmd torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING CONSERV BLASNEW
+#LOCTRANS MAPPING CONSERV BLASNEW
+#AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.CHECKINOUT.pb
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.CHECKINOUT.pb	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.CHECKINOUT.pb	(revision 5899)
@@ -0,0 +1,426 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   100 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  4  sstoc.nc  <output_mode> 
+182 149 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  4  sstoc.nc <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING  CHECKOUT 
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_ueORCA1.2_WindStress_MOSAIX_v0.nc  dst
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_ueORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_ueORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#rmp_tLMD144142_to_veORCA1.2_WindStress_MOSAIX_v0.nc dst 
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#rmp_tLMD144142_to_veORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#rmp_tLMD144142_to_veORCA1.2_WindStress_MOSAIX_v0.nc dst
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING  
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+#rmp_tLMD144142_to_teORCA1.2_HeatWaterFluxes_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling>  4  flxat.nc   <output_mode>
+96 96 182 149 olmd torc  LAG=<lag_atm> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+#rmp_tLMD144142_to_teORCA1.2_runoff_Quantity_to_Surfacic_MOSAIX_v0.nc dst
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.noBilTauXYZ
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.noBilTauXYZ	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.noBilTauXYZ	(revision 5899)
@@ -0,0 +1,459 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   2 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  4  sstoc.nc  <output_mode> 
+182 149 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  4  sstoc.nc <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING  CHECKOUT 
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1  
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  3  flxat.nc   <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling>  5  flxat.nc   <output_mode>
+96 96 182 149 olmd torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CONSERV BLASNEW CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.old
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.old	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.old	(revision 5899)
@@ -0,0 +1,459 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   2 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  4  sstoc.nc  <output_mode> 
+182 149 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  4  sstoc.nc <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING  CHECKOUT 
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1  
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  3  flxat.nc   <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling>  5  flxat.nc   <output_mode>
+96 96 182 149 aone torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CONSERV BLASNEW CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.pb.1
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.pb.1	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.pb.1	(revision 5899)
@@ -0,0 +1,404 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   100 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  4  sstoc.nc  <output_mode> 
+182 149 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+MAPPING
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  4  sstoc.nc <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+#rmp_teORCA1.2_to_tLMD144142_TempIceAlb_MOSAIX_v0.nc src
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  2  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  1  flxat.nc   <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+##rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+##rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+##rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+##rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+##rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+##rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  1    flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+SCRIPR
+BILINEAR LR SCALAR LATLON 10
+##MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+##rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  1   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+MAPPING
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING  
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  1  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  1   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+MAPPING 
+# CHECKIN: indicate computation of global, land and sea field integrals.
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+# INT=1
+##########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+96 96 182 149 olmd  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+LOCTRANS MAPPING CONSERV BLASNEW
+AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.pb.2
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.pb.2	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namcouple_ORCA2xLMD9695.pb.2	(revision 5899)
@@ -0,0 +1,461 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+            25
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+  2  LMDZ oceanx
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   2 <lucia_ok>
+ $END
+# 
+###############################################################################
+ $STRINGS
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST  SISUTESW 1 <freq_coupling>  4  sstoc.nc  <output_mode> 
+182 149 96 96 torc  tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc SIICECOV 44 <freq_coupling>  4  sstoc.nc <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING  CHECKOUT 
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce  SIICTEMW 34 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd   LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce  SIICEALW 17 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc  tlmd  LAG=<lag_oce>  
+P  2 P  0
+#
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1 CURRENTX 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1  
+#
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1 CURRENTY 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1 CURRENTZ 321 <freq_coupling>  4  sstoc.nc  <output_mode>
+182 149 96 96 torc    tlmd  LAG=<lag_oce>
+P  2 P  0
+LOCTRANS CHECKIN MAPPING CHECKOUT
+ AVERAGE
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU O_OTaux1 23 <freq_coupling>  3  flxat.nc   <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU O_OTauy1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU O_OTauz1 23 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    uorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV O_OTaux2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV O_OTauy2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV O_OTauz2  24 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    vorc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP O_Wind10  56 <freq_coupling>  3    flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN SCRIPR CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+BILINEAR LR SCALAR LATLON 10
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI OTotRain 26 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO  OTotSnow 28 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA  OTotEvap 25 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP OIceEvap 41 <freq_coupling>  3   flxat.nc   <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX O_QsrMix  7 <freq_coupling> 3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX O_QnsMix 6 <freq_coupling>  3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc   LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE O_QsrIce  7 <freq_coupling> 3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE O_QnsIce 6 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT O_dQnsdT  35 <freq_coupling>  3   flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm>
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN OCalving  36 <freq_coupling>  3  flxat.nc  <output_mode>
+96 96 182 149 tlmd    torc  LAG=<lag_atm> 
+P  0 P  2
+CHECKIN MAPPING CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+#COLIQRUN  O_Runoff 32 <freq_coupling>  5  flxat.nc   <output_mode>
+#96 96 182 149 aone torc  LAG=<lag_atm> 
+COLIQRUN  O_Runoff 32 <freq_coupling_roff_calv>  4  flxat.nc   <output_mode>
+96 96 182 149 olmd  torc  LAG=<lag_atm_roff_calv> 
+P  0 P  2
+CHECKIN MAPPING CONSERV BLASNEW CHECKOUT
+# CHECKIN: indicate computation of global, land and sea field integrals.
+ INT=1
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+ INT=1
+#
+#########################################################################
+# Field 26 : wind stress module (a->o 19)
+#
+##COTAUMOD  O_TauMod 466 <freq_coupling>  6   flxat.nc   <output_mode>
+##tlmd    torc  LAG=<lag_atm> 
+##P  0 P  2
+##INVERT CHECKIN MASK EXTRAP INTERP CHECKOUT
+# Reverse
+##NORSUD WSTEST
+# CHECKIN: indicate computation of global, land and sea field integrals.
+## INT=1
+# Mask value
+##888888.
+# Extrapolation method
+##NINENN 2 1 1
+# Interpolation method
+##BICUBIPS  Z   SCALAR
+# CHECKOUT: indicate computation of global, land and sea field integrals.
+## INT=1
+#
+#########################################################################
+#
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ESMCO2_ORCA1_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ESMCO2_ORCA1_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ESMCO2_ORCA1_cfg	(revision 5899)
@@ -0,0 +1,466 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/OCE  Configuration namelist : overwrite default values defined in SHARED/namelist_ref
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!!             ORCA2 - ICE - PISCES configuration                     !!
+!!======================================================================
+!!              ***  Domain & Run management namelists  ***           !!
+!!                                                                    !!
+!!   namrun       parameters of the run
+!!   namdom       space and time domain
+!!   namcfg       parameters of the configuration                       (default: user defined GYRE)
+!!   namwad       Wetting and drying                                    (default: OFF)
+!!   namtsd       data: temperature & salinity                          (default: OFF)
+!!   namcrs       coarsened grid (for outputs and/or TOP)               (ln_crs =T)
+!!   namc1d       1D configuration options                              ("key_c1d")
+!!   namc1d_dyndmp 1D newtonian damping applied on currents             ("key_c1d")
+!!   namc1d_uvd   1D data (currents)                                    ("key_c1d")
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namrun        !   parameters of the run
+!-----------------------------------------------------------------------
+   cn_exp      = _AUTOBLOCKER_    !  Experience name
+   nn_it000    = _AUTOBLOCKER_    !  First time step
+   nn_itend    = _AUTOBLOCKER_    !  Last  time step
+   nn_date0    = _AUTOBLOCKER_    !  Date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)
+   nn_leapy    = _AUTOBLOCKER_    !  Leap year calendar (1) or not (0)
+   ln_rstart   = _AUTOBLOCKER_    !  start from rest (F) or from a restart file (T)
+   nn_rstctl   = _AUTOBLOCKER_    !  Restart control => activated only if ln_rstart = T
+                           !    = 0 nn_date0 read in namelist ; nn_it000 : read in namelist
+                           !    = 1 nn_date0 read in namelist ; nn_it000 : check consistancy between namelist and restart
+                           !    = 2 nn_date0 read in restart  ; nn_it000 : check consistancy between namelist and restart
+   cn_ocerst_in  = "restartopa"   !  Suffix of ocean restart name (input)
+   cn_ocerst_indir = "."       !  directory from which to read input ocean restarts
+   cn_ocerst_out = "restart"      !  Suffix of ocean restart name (output)
+   cn_ocerst_outdir = "."      !  directory in which to write output ocean restarts
+   nn_istate   =       0   !  Output the initial state (1) or not (0)
+   nn_stock    =  _AUTOBLOCKER_   !  Frequency of creation of a restart file (modulo referenced to 1)
+   nn_write    =    5475   !  Requency of write in the output file   (modulo referenced to nn_it000)
+   ln_mskland  = .true.    !  Masks land points in NetCDF outputs
+   ln_mskutil  = .true.    !  Outputs without halos
+   ln_cfmeta   = .true.    !  output additional data to netCDF files required for compliance with the CF metadata standard
+/
+!-----------------------------------------------------------------------
+&namdom        !   time and space domain
+!-----------------------------------------------------------------------
+   rn_rdt      = 2700.     !  time step for the dynamics and tracer
+   ln_meshmask =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&namcfg        !   parameters of the configuration                      (default: use namusr_def in namelist_cfg)
+!-----------------------------------------------------------------------
+   ln_read_cfg = .true.    !  (=T) read the domain configuration file
+      cn_domcfg = "domain_cfg.nc"    ! domain configuration filename
+      !
+      ln_closea    = .true.    !  F => suppress closed seas (defined by closea_mask field) 
+      !                         !       from the bathymetry at runtime.
+/
+!-----------------------------------------------------------------------
+&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
+!-----------------------------------------------------------------------
+   !                       ! =T  read T-S fields for:
+   ln_tsd_dmp  = .false.          !  T-S restoring   (see namtra_dmp)
+
+   cn_dir = './'     !  root directory for the T-S data location
+   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_tem  = 'conservative_temperature_WOA13_decav_Reg1L75_clim', -1 ,'votemper' , .true. , .true. , 'yearly' , 'weights_3D_WOA13d1_2_eorca1_bilinear.nc'  ,   ''    ,    ''
+   sn_sal  = 'absolute_salinity_WOA13_decav_Reg1L75_clim'       , -1 ,'vosaline' , .true. , .true. , 'yearly' , 'weights_3D_WOA13d1_2_eorca1_bilinear.nc'  ,   ''
+/
+!!======================================================================
+!!            ***  Surface Boundary Condition namelists  ***          !!
+!!                                                                    !!
+!!   namsbc          surface boundary condition manager                 (default: NO selection)
+!!   namsbc_flx      flux               formulation                     (ln_flx     =T)
+!!   namsbc_blk      Bulk formulae formulation                          (ln_blk     =T)
+!!   namsbc_cpl      CouPLed            formulation                     ("key_oasis3" )
+!!   namsbc_sas      Stand-Alone Surface module                         (SAS_SRC  only)
+!!   namsbc_iif      Ice-IF: use observed ice cover                     (nn_ice = 1   )
+!!   namtra_qsr      penetrative solar radiation                        (ln_traqsr  =T)
+!!   namsbc_ssr      sea surface restoring term (for T and/or S)        (ln_ssr     =T)
+!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T)
+!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T)
+!!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr )
+!!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T)
+!!   namsbc_wave     external fields from wave model                    (ln_wave    =T)
+!!   namberg         iceberg floats                                     (ln_icebergs=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namsbc        !   Surface Boundary Condition manager                   (default: NO selection)
+!-----------------------------------------------------------------------
+   nn_fsbc     = 2         !  frequency of SBC module call
+                           !     (also = the frequency of sea-ice & iceberg model call)
+                     ! Type of air-sea fluxes 
+   ln_cpl      = .true.    !  atmosphere coupled   formulation          ( requires key_oasis3 )
+                     ! Sea-ice :
+   nn_ice      = 2         !  =2 or 3 automatically for SI3 or CICE    ("key_si3" or "key_cice")
+                     ! Misc. options of sbc : 
+   ln_traqsr   = .true.   !  Light penetration in the ocean            (T => fill namtra_qsr)
+   ln_isf      = .true.   !  ice shelf                                 (T   => fill namsbc_isf & namsbc_iscpl)
+/
+!-----------------------------------------------------------------------
+&namsbc_blk    !   namsbc_blk  generic Bulk formula                     (ln_blk =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3")
+!-----------------------------------------------------------------------
+   nn_cplmodel   =     1   !  Maximum number of models to/from which NEMO is potentially sending/receiving data
+   ln_usecplmask = .false. !  use a coupling mask file to merge data received from several models
+   !                       !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
+   nn_cats_cpl   =     5   !  Number of sea ice categories over which coupling is to be carried out (if not 1)
+   !_____________!__________________________!____________!_____________!______________________!________!
+   !             !        description       !  multiple  !    vector   !       vector         ! vector !
+   !             !                          ! categories !  reference  !     orientation      ! grids  !
+!***   send    ***
+   sn_snd_temp   =   'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_alb    =   'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'
+   sn_snd_co2    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+!***  receive  ***
+   sn_rcv_w10m   =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_taumod =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tau    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'U,V'
+   sn_rcv_dqnsdt =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qsr    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qns    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_emp    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_rnf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_cal    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_co2    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_isf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_icb    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T)
+!-----------------------------------------------------------------------
+   !                       ! type of penetration                        (default: NO selection)
+   ln_qsr_bio  = .true.       !  RGB light penetration (Red-Green-Blue)
+   !
+/
+!-----------------------------------------------------------------------
+&namsbc_ssr    !   surface boundary condition : sea surface restoring   (ln_ssr =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_rnf    !   runoffs                                              (ln_rnf =T)
+!-----------------------------------------------------------------------
+   ln_rnf_mouth = .false.   !  specific treatment at rivers mouths
+      rn_hrnf     =  15.e0    !  depth over which enhanced vertical mixing is used    (ln_rnf_mouth=T)
+      rn_avt_rnf  =   1.e-3   !  value of the additional vertical mixing coef. [m2/s] (ln_rnf_mouth=T)
+   rn_rfact    =   1.e0    !  multiplicative factor for runoff
+   ln_rnf_depth = .false.   !  read in depth information for runoff
+   ln_rnf_tem  = .false.   !  read in temperature information for runoff
+   ln_rnf_sal  = .false.   !  read in salinity information for runoff
+   ln_rnf_depth_ini = .false. ! compute depth at initialisation from runoff file
+      rn_rnf_max  = 0.05  !  max value of the runoff climatologie over global domain ( ln_rnf_depth_ini = .true )
+      rn_dep_max  = 150.      !  depth over which runoffs is spread ( ln_rnf_depth_ini = .true )
+      nn_rnf_depth_file = _AUTO_   !  create (=1) a runoff depth file or not (=0)
+
+   cn_dir = './'  !  root directory for the location of the runoff files
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnf      = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc',        -1         , 'sorunoff',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_cnf      = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc',         0         , 'socoeff' ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+   sn_s_rnf    = 'runoffs'            ,        24         , 'rosaline',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_t_rnf    = 'runoffs'            ,        24         , 'rotemper',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_dep_rnf  = 'runoffs_depths.nc'  ,         0         , 'rodepth' ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)
+!-----------------------------------------------------------------------             or set or usr_def_zgr )
+   !                 ! type of top boundary layer
+   nn_isf      = 3         !  ice shelf melting/freezing
+                           !  3 = rnf file for ISF  
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnfisf     = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc' ,   -12      ,'sornfisf',    .false.      , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmax_isf = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc' ,   -12      ,'sodepmax_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmin_isf = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc' ,   -12      ,'sodepmin_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+/
+!-----------------------------------------------------------------------
+&namsbc_wave   ! External fields from wave model                        (ln_wave=T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namberg       !   iceberg parameters                                   (default: OFF)
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!               ***  Lateral boundary condition  ***                 !!
+!!                                                                    !!
+!!   namlbc        lateral momentum boundary condition                  (default: NO selection)
+!!   namagrif      agrif nested grid   (read by child model only)       ("key_agrif")
+!!   nam_tide      Tidal forcing                                        (default: OFF)
+!!   nambdy        Unstructured open boundaries                         (default: OFF)
+!!   nambdy_dta    Unstructured open boundaries - external data         (see  nambdy)
+!!   nambdy_tide   tidal forcing at open boundaries                     (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition                  (default: NO selection)
+!-----------------------------------------------------------------------
+   rn_shlat    =    0.     !  no slip
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!                ***  Top/Bottom boundary condition  ***             !!
+!!                                                                    !!
+!!   namdrg        top/bottom drag coefficient                          (default: NO selection)
+!!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T)
+!!   namdrg_bot    bottom friction                                      (ln_OFF=F)
+!!   nambbc        bottom temperature boundary condition                (default: OFF)
+!!   nambbl        bottom boundary layer scheme                         (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdrg        !   top/bottom drag coefficient                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_non_lin  = .true.   !  non-linear  drag: Cd = Cd0 |U|
+   ln_loglayer = .false.   !  logarithmic drag: Cd = vkarmn/log(z/z0) |U|
+   !
+   ln_drgimp   = .true.    !  implicit top/bottom friction flag
+/
+!-----------------------------------------------------------------------
+&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F)
+!-----------------------------------------------------------------------
+   rn_Cd0      =  1.e-3    !  drag coefficient [-]
+   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag)
+   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases)
+   rn_z0       =  3.e-3    !  roughness [m] (ln_loglayer=T)
+   ln_boost    = .false.   !  =T regional boost of Cd0 ; =F constant
+      rn_boost =  50.         !  local boost factor  [-]
+/
+!-----------------------------------------------------------------------
+&nambbc        !   bottom temperature boundary condition                (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom
+      nn_geoflx   =    2      !  geothermal heat flux: = 2 read variable flux [mW/m2]
+
+   cn_dir = './'  !  root directory for the geothermal data location
+   !___________!____________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                    !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_qgh      ='Goutorbe_ghflux.nc',        -12.       , 'gh_flux' ,   .false.   , .true. , 'yearly'  , 'weights_Goutorbe1_2_eorca1_bilinear.nc'       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&nambbl        !   bottom boundary layer scheme                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbl   = .true.    !  Bottom Boundary Layer parameterisation flag
+      nn_bbl_ldf  =  1        !  diffusive bbl (=1)   or not (=0)
+      nn_bbl_adv  =  0        !  advective bbl (=1/2) or not (=0)
+      rn_ahtbbl   =  1000.    !  lateral mixing coefficient in the bbl  [m2/s]
+      rn_gambbl   =  10.      !  advective bbl coefficient                 [s]
+/
+!!======================================================================
+!!                        Tracer (T-S) namelists                      !!
+!!                                                                    !!
+!!   nameos        equation of state                                    (default: NO selection)
+!!   namtra_adv    advection scheme                                     (default: NO selection)
+!!   namtra_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namtra_mle    mixed layer eddy param. (Fox-Kemper param.)          (default: OFF)
+!!   namtra_eiv    eddy induced velocity param.                         (default: OFF)
+!!   namtra_dmp    T & S newtonian damping                              (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nameos        !   ocean Equation Of Seawater                           (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_teos10   = .true.         !  = Use TEOS-10
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traadv_fct = .true.     !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+/
+!-----------------------------------------------------------------------
+&namtra_ldf    !   lateral diffusion scheme for tracers                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traldf_lap   = .true.    !    laplacian operator
+   ln_traldf_iso   = .true.    !  iso-neutral (Standard operator)
+   ln_traldf_msc   = .true.    !  Method of Stabilizing Correction      (both operators)
+   !                       !  Coefficients:
+   nn_aht_ijk_t    = 20        !  space/time variation of eddy coef
+      !                             !   = 20     aht = 1/2  Ud. max(e1,e2)
+      rn_Ud        = 0.018          !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Ld        = 100.e+3        !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+/
+!-----------------------------------------------------------------------
+&namtra_mle    !   mixed layer eddy parametrisation (Fox-Kemper)        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_mle      = .true.   ! (T) use the Mixed Layer Eddy (MLE) parameterisation
+/
+!-----------------------------------------------------------------------
+&namtra_eiv    !   eddy induced velocity param.                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_ldfeiv   = .true.    ! use eddy induced velocity parameterization
+      !                        !  Coefficients:
+      nn_aei_ijk_t  = 21          ! space/time variation of the eiv coeficient
+      !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+      !                           !  time invariant coefficients:  aei0 = 1/2  Ue*Le 
+      rn_Ue        = 0.018             !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Le        = 100.e+3           !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+      !
+      ln_ldfeiv_dia =.true.   ! diagnose eiv stream function and velocities
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping                      (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tradmp   =  .false.   !  add a damping term (using resto.nc coef.)
+      nn_zdmp  =    0         !  vertical shape =0    damping throughout the water column
+/
+!!======================================================================
+!!                      ***  Dynamics namelists  ***                  !!
+!!                                                                    !!
+!!   nam_vvl       vertical coordinate options                          (default: z-star)
+!!   namdyn_adv    formulation of the momentum advection                (default: NO selection)
+!!   namdyn_vor    advection scheme                                     (default: NO selection)
+!!   namdyn_hpg    hydrostatic pressure gradient                        (default: NO selection)
+!!   namdyn_spg    surface pressure gradient                            (default: NO selection)
+!!   namdyn_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namdta_dyn    offline TOP: dynamics read in files                  (OFF_SRC only)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynadv_vec = .true.  !  vector form - 2nd centered scheme
+     nn_dynkeg     = 1        ! grad(KE) scheme: =0   C2  ;  =1   Hollingsworth correction
+/
+!-----------------------------------------------------------------------
+&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynvor_een = .true.  !  energy & enstrophy scheme
+      nn_een_e3f = 0          ! =0   e3f = mean masked e3t divided by 4
+/
+!-----------------------------------------------------------------------
+&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_hpg_sco  = .true.   !  s-coordinate (standard jacobian formulation)
+/
+!-----------------------------------------------------------------------
+&namdyn_spg    !   surface pressure gradient                            (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynspg_ts  = .true.  !  split-explicit free surface
+/
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum                        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynldf_lap =  .true.     !    laplacian operator
+   ln_dynldf_lev =  .true.     !  iso-level
+   nn_ahm_ijk_t  = -30           !  space/time variation of eddy coefficient :
+      !                             !  =-30  read in eddy_viscosity_3D.nc file
+/
+!!======================================================================
+!!                     vertical physics namelists                     !!
+!!                                                                    !!
+!!    namzdf        vertical physics manager                            (default: NO selection)
+!!    namzdf_ric    richardson number vertical mixing                   (ln_zdfric=T)
+!!    namzdf_tke    TKE vertical mixing                                 (ln_zdftke=T)
+!!    namzdf_gls    GLS vertical mixing                                 (ln_zdfgls=T)
+!!    namzdf_osm    OSM vertical diffusion                              (ln_zdfosm=T)
+!!    namzdf_iwm    tidal mixing parameterization                       (ln_zdfiwm=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namzdf        !   vertical physics manager                             (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_zdftke   = .true.       !  Turbulent Kinetic Energy closure       (T =>   fill namzdf_tke)
+   ln_zdfevd   = .true.       !  Enhanced Vertical Diffusion scheme
+      nn_evdm  =    0            !  evd apply on tracer (=0) or on tracer and momentum (=1)
+      rn_evd   =  100.           !  evd mixing coefficient [m2/s]
+   ln_zdfddm   = .true.    ! double diffusive mixing
+      rn_avts  =    1.e-4     !  maximum avs (vertical mixing on salinity)
+      rn_hsbfr =    1.6       !  heat/salt buoyancy flux ratio
+   ln_zdfiwm   = .false.       ! internal wave-induced mixing            (T =>   fill namzdf_iwm)
+   !                       !  Coefficients
+   rn_avm0     =   1.2e-4     !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst=F)
+   rn_avt0     =   1.2e-5     !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst=F)
+   nn_avb      =    0         !  profile for background avt & avm (=1) or not (=0)
+   nn_havtb    =    0         !  horizontal shape for avtb (=1) or not (=0)
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  (ln_zdftke =T)
+!-----------------------------------------------------------------------
+      nn_mxl      =   2       !  mixing length: = 0 bounded by the distance to surface and bottom
+      !                       !                 = 1 bounded by the local vertical scale factor
+      !                       !                 = 2 first vertical derivative of mixing length bounded by 1
+      !                       !                 = 3 as =2 with distinct dissipative an mixing length scale
+      nn_etau     =   0       !  penetration of tke below the mixed layer (ML) due to NIWs
+                               !        = 0 none ; = 1 add a tke source below the ML
+                               !        = 2 add a tke source just at the base of the ML
+                               !        = 3 as = 1 applied on HF part of the stress           (ln_cpl=T)
+      rn_eice     =   2       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4   
+      ln_lc      = .true.     !  Langmuir cell parameterisation (Axell 2002)
+      rn_lc      =  0.20      !  coef. associated to Langmuir cells
+/
+!-----------------------------------------------------------------------
+&namzdf_iwm    !    internal wave-driven mixing parameterization        (ln_zdfiwm =T)
+!-----------------------------------------------------------------------
+   nn_zpyc     = 2         !  pycnocline-intensified dissipation scales as N (=1) or N^2 (=2)
+   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency
+   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F)
+/
+!!======================================================================
+!!                  ***  Diagnostics namelists  ***                   !!
+!!                                                                    !!
+!!   namtrd       dynamics and/or tracer trends                         (default: OFF)
+!!   namptr       Poleward Transport Diagnostics                        (default: OFF)
+!!   namhsb       Heat and salt budgets                                 (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namflo       float parameters                                      (default: OFF)
+!!   nam_diaharm  Harmonic analysis of tidal constituents               (default: OFF)
+!!   nam_diadct   transports through some sections                      (default: OFF)
+!!   nam_diatmb   Top Middle Bottom Output                              (default: OFF)
+!!   nam_dia25h   25h Mean Output                                       (default: OFF)
+!!   namnc4       netcdf4 chunking and compression settings             ("key_netcdf4")
+!!======================================================================
+!-----------------------------------------------------------------------
+&namtrd        !   trend diagnostics                                    (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tra_trd  = .true.   ! (T) 3D tracer trend output
+/
+!
+!!======================================================================
+!!               ***  Observation & Assimilation  ***                 !!
+!!                                                                    !!
+!!   namobs       observation and model comparison                      (default: OFF)
+!!   nam_asminc   assimilation increments                               ('key_asminc')
+!!======================================================================
+!
+!!======================================================================
+!!                  ***  Miscellaneous namelists  ***                 !!
+!!                                                                    !!
+!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi")
+!!   namctl            Control prints                                   (default: OFF)
+!!   namsto            Stochastic parametrization of EOS                (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints                                       (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsto        ! Stochastic parametrization of EOS                      (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namptr        !   Poleward Transport Diagnostic                        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diaptr   = .true.   !  Poleward heat and salt transport (T) or not (F)
+   ln_subbas   = .true.   !  Atlantic/Pacific/Indian basins computation (T) or not
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA025_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA025_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA025_cfg	(revision 5899)
@@ -0,0 +1,473 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/OCE  Configuration namelist : overwrite default values defined in SHARED/namelist_ref
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!!             ORCA2 - ICE - PISCES configuration                     !!
+!!======================================================================
+!!              ***  Domain & Run management namelists  ***           !!
+!!                                                                    !!
+!!   namrun       parameters of the run
+!!   namdom       space and time domain
+!!   namcfg       parameters of the configuration                       (default: user defined GYRE)
+!!   namwad       Wetting and drying                                    (default: OFF)
+!!   namtsd       data: temperature & salinity                          (default: OFF)
+!!   namcrs       coarsened grid (for outputs and/or TOP)               (ln_crs =T)
+!!   namc1d       1D configuration options                              ("key_c1d")
+!!   namc1d_dyndmp 1D newtonian damping applied on currents             ("key_c1d")
+!!   namc1d_uvd   1D data (currents)                                    ("key_c1d")
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namrun        !   parameters of the run
+!-----------------------------------------------------------------------
+   cn_exp      = _AUTOBLOCKER_    !  Experience name
+   nn_it000    = _AUTOBLOCKER_    !  First time step
+   nn_itend    = _AUTOBLOCKER_    !  Last  time step
+   nn_date0    = _AUTOBLOCKER_    !  Date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)
+   nn_leapy    = _AUTOBLOCKER_    !  Leap year calendar (1) or not (0)
+   ln_rstart   = _AUTOBLOCKER_    !  start from rest (F) or from a restart file (T)
+   nn_rstctl   = _AUTOBLOCKER_    !  Restart control => activated only if ln_rstart = T
+                           !    = 0 nn_date0 read in namelist ; nn_it000 : read in namelist
+                           !    = 1 nn_date0 read in namelist ; nn_it000 : check consistancy between namelist and restart
+                           !    = 2 nn_date0 read in restart  ; nn_it000 : check consistancy between namelist and restart
+   cn_ocerst_in  = "restartopa"   !  Suffix of ocean restart name (input)
+   cn_ocerst_indir = "."       !  directory from which to read input ocean restarts
+   cn_ocerst_out = "restart"      !  Suffix of ocean restart name (output)
+   cn_ocerst_outdir = "."      !  directory in which to write output ocean restarts
+   nn_istate   =       0   !  Output the initial state (1) or not (0)
+   nn_stock    =  _AUTOBLOCKER_   !  Frequency of creation of a restart file (modulo referenced to 1)
+   nn_write    =    5475   !  Requency of write in the output file   (modulo referenced to nn_it000)
+   ln_mskland  = .true.    !  Masks land points in NetCDF outputs
+   ln_mskutil  = .true.    !  Outputs without halos
+   ln_cfmeta   = .true.    !  output additional data to netCDF files required for compliance with the CF metadata standard
+/
+!-----------------------------------------------------------------------
+&namdom        !   time and space domain
+!-----------------------------------------------------------------------
+   rn_rdt      =   600.     !  time step for the dynamics and tracer
+   ln_meshmask =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&namcfg        !   parameters of the configuration                      (default: use namusr_def in namelist_cfg)
+!-----------------------------------------------------------------------
+   ln_read_cfg = .true.    !  (=T) read the domain configuration file
+      cn_domcfg = "domain_cfg.nc"    ! domain configuration filename
+      !
+      ln_closea    = .true.    !  F => suppress closed seas (defined by closea_mask field) 
+      !                         !       from the bathymetry at runtime.
+/
+!-----------------------------------------------------------------------
+&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
+!-----------------------------------------------------------------------
+   !                       ! =T  read T-S fields for:
+   ln_tsd_dmp  = .false.          !  T-S restoring   (see namtra_dmp)
+
+   cn_dir = './'     !  root directory for the T-S data location
+   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_tem = 'conservative_temperature_WOA13_decav_Reg1L75_clim' , -1,  'votemper',  .false.       , .true., 'yearly'   , 'weights_3D_WOA13d1_2_eorca025_bilinear.nc', ' ' ,''  !
+   sn_sal = 'absolute_salinity_WOA13_decav_Reg1L75_clim'        , -1,  'vosaline',  .false.       , .true., 'yearly'   , 'weights_3D_WOA13d1_2_eorca025_bilinear.nc', ' ' ,''  !
+/
+!!======================================================================
+!!            ***  Surface Boundary Condition namelists  ***          !!
+!!                                                                    !!
+!!   namsbc          surface boundary condition manager                 (default: NO selection)
+!!   namsbc_flx      flux               formulation                     (ln_flx     =T)
+!!   namsbc_blk      Bulk formulae formulation                          (ln_blk     =T)
+!!   namsbc_cpl      CouPLed            formulation                     ("key_oasis3" )
+!!   namsbc_sas      Stand-Alone Surface module                         (SAS_SRC  only)
+!!   namsbc_iif      Ice-IF: use observed ice cover                     (nn_ice = 1   )
+!!   namtra_qsr      penetrative solar radiation                        (ln_traqsr  =T)
+!!   namsbc_ssr      sea surface restoring term (for T and/or S)        (ln_ssr     =T)
+!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T)
+!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T)
+!!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr )
+!!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T)
+!!   namsbc_wave     external fields from wave model                    (ln_wave    =T)
+!!   namberg         iceberg floats                                     (ln_icebergs=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namsbc        !   Surface Boundary Condition manager                   (default: NO selection)
+!-----------------------------------------------------------------------
+   nn_fsbc     = 2         !  frequency of SBC module call
+                           !     (also = the frequency of sea-ice & iceberg model call)
+                     ! Type of air-sea fluxes 
+   ln_cpl      = .true.    !  atmosphere coupled   formulation          ( requires key_oasis3 )
+                     ! Sea-ice :
+   nn_ice      = 2         !  =2 or 3 automatically for SI3 or CICE    ("key_si3" or "key_cice")
+                     ! Misc. options of sbc : 
+   ln_traqsr   = .true.   !  Light penetration in the ocean            (T => fill namtra_qsr)
+   ln_isf      = .true.   !  ice shelf                                 (T   => fill namsbc_isf & namsbc_iscpl)
+/
+!-----------------------------------------------------------------------
+&namsbc_blk    !   namsbc_blk  generic Bulk formula                     (ln_blk =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3")
+!-----------------------------------------------------------------------
+   nn_cplmodel   =     1   !  Maximum number of models to/from which NEMO is potentially sending/receiving data
+   ln_usecplmask = .false. !  use a coupling mask file to merge data received from several models
+   !                       !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
+   nn_cats_cpl   =     5   !  Number of sea ice categories over which coupling is to be carried out (if not 1)
+   !_____________!__________________________!____________!_____________!______________________!________!
+   !             !        description       !  multiple  !    vector   !       vector         ! vector !
+   !             !                          ! categories !  reference  !     orientation      ! grids  !
+!***   send    ***
+   sn_snd_temp   =   'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_alb    =   'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'
+   sn_snd_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+!***  receive  ***
+   sn_rcv_w10m   =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_taumod =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tau    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'U,V'
+   sn_rcv_dqnsdt =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qsr    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qns    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_emp    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_rnf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_cal    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_isf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_icb    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T)
+!-----------------------------------------------------------------------
+   !                       ! type of penetration                        (default: NO selection)
+   ln_qsr_rgb  = .true.       !  RGB light penetration (Red-Green-Blue)
+   !
+   cn_dir = './'  !  root directory for the location of the runoff files
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_chl      ='merged_ESACCI_BIOMER4V1R1_CHL_REG05',  -1  , 'CHLA' , .true. , .true. , 'yearly' , 'weights_reg05_2_eorca025_bilinear.nc' , '' , ''
+/
+!-----------------------------------------------------------------------
+&namsbc_ssr    !   surface boundary condition : sea surface restoring   (ln_ssr =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_rnf    !   runoffs                                              (ln_rnf =T)
+!-----------------------------------------------------------------------
+   ln_rnf_mouth = .false.   !  specific treatment at rivers mouths
+      rn_hrnf     =  15.e0    !  depth over which enhanced vertical mixing is used    (ln_rnf_mouth=T)
+      rn_avt_rnf  =   1.e-3   !  value of the additional vertical mixing coef. [m2/s] (ln_rnf_mouth=T)
+   rn_rfact    =   1.e0    !  multiplicative factor for runoff
+   ln_rnf_depth = .false.   !  read in depth information for runoff
+   ln_rnf_tem  = .false.   !  read in temperature information for runoff
+   ln_rnf_sal  = .false.   !  read in salinity information for runoff
+   ln_rnf_depth_ini = .false. ! compute depth at initialisation from runoff file
+      rn_rnf_max  = 0.027394  !  max value of the runoff climatologie over global domain ( ln_rnf_depth_ini = .true )
+      rn_dep_max  = 150.      !  depth over which runoffs is spread ( ln_rnf_depth_ini = .true )
+      nn_rnf_depth_file = _AUTO_   !  create (=1) a runoff depth file or not (=0)
+
+   cn_dir = './'  !  root directory for the location of the runoff files
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnf      = 'eORCA_R025_runoff_v1.2',        -1         , 'sorunoff',   .true.     , .true. , 'yearly'  , ''       , ''  , ''
+   sn_i_rnf    = 'eORCA_R025_runoff_v1.2',        -1         , 'Icb_flux',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_cnf      = 'eORCA_R025_runoff_v1.2',         0         , 'socoefr' ,   .false.    , .true. , 'yearly'  , ''       , ''  , ''
+   sn_s_rnf    = 'eORCA_R025_runoff_v1.2',        24         , 'rosaline',   .true.     , .true. , 'yearly'  , ''       , ''  , ''
+   sn_t_rnf    = 'eORCA_R025_runoff_v1.2',        24         , 'rotemper',   .true.     , .true. , 'yearly'  , ''       , ''  , ''
+   sn_dep_rnf  = 'eORCA_R025_runoff_v1.2',         0         , 'rodepth' ,   .false.    , .true. , 'yearly'  , ''       , ''  , ''
+/
+!-----------------------------------------------------------------------
+&namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)
+!-----------------------------------------------------------------------             or set or usr_def_zgr )
+   !                 ! type of top boundary layer
+   nn_isf      = 3         !  ice shelf melting/freezing
+                           !  3 = rnf file for ISF  
+   !_____________!_________________________!___________________!_______________!_____________!_________!___________!__________!__________!_______________!
+   !             !  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_rnfisf     = 'eORCA_R025_runoff_v1.2',          -12      ,'sornfisf'     ,   .false.   , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmax_isf = 'eORCA_R025_runoff_v1.2',          -12      ,'sodepmax_isf' ,   .false.   , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmin_isf = 'eORCA_R025_runoff_v1.2',          -12      ,'sodepmin_isf' ,   .false.   , .true.  , 'yearly'  ,  ''      ,   ''
+/
+!-----------------------------------------------------------------------
+&namsbc_wave   ! External fields from wave model                        (ln_wave=T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namberg       !   iceberg parameters                                   (default: OFF)
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!               ***  Lateral boundary condition  ***                 !!
+!!                                                                    !!
+!!   namlbc        lateral momentum boundary condition                  (default: NO selection)
+!!   namagrif      agrif nested grid   (read by child model only)       ("key_agrif")
+!!   nam_tide      Tidal forcing                                        (default: OFF)
+!!   nambdy        Unstructured open boundaries                         (default: OFF)
+!!   nambdy_dta    Unstructured open boundaries - external data         (see  nambdy)
+!!   nambdy_tide   tidal forcing at open boundaries                     (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition                  (default: NO selection)
+!-----------------------------------------------------------------------
+   rn_shlat    =    0.     !  no slip
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!                ***  Top/Bottom boundary condition  ***             !!
+!!                                                                    !!
+!!   namdrg        top/bottom drag coefficient                          (default: NO selection)
+!!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T)
+!!   namdrg_bot    bottom friction                                      (ln_OFF=F)
+!!   nambbc        bottom temperature boundary condition                (default: OFF)
+!!   nambbl        bottom boundary layer scheme                         (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdrg        !   top/bottom drag coefficient                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_non_lin  = .true.   !  non-linear  drag: Cd = Cd0 |U|
+   ln_loglayer = .false.   !  logarithmic drag: Cd = vkarmn/log(z/z0) |U|
+   !
+   ln_drgimp   = .true.    !  implicit top/bottom friction flag
+/
+!-----------------------------------------------------------------------
+&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F)
+!-----------------------------------------------------------------------
+   rn_Cd0      =  1.e-3    !  drag coefficient [-]
+   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag)
+   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases)
+   rn_z0       =  3.e-3    !  roughness [m] (ln_loglayer=T)
+   ln_boost    = .false.   !  =T regional boost of Cd0 ; =F constant
+      rn_boost =  50.         !  local boost factor  [-]
+/
+!-----------------------------------------------------------------------
+&nambbc        !   bottom temperature boundary condition                (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom
+      nn_geoflx   =    2      !  geothermal heat flux: = 2 read variable flux [mW/m2]
+
+   cn_dir = './'  !  root directory for the geothermal data location
+   !___________!____________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                    !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_qgh      ='Goutorbe_ghflux.nc',        -12.       , 'gh_flux' ,   .false.   , .true. , 'yearly'  , 'weights_Goutorbe1_2_eorca1_bilinear.nc'       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&nambbl        !   bottom boundary layer scheme                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbl   = .true.    !  Bottom Boundary Layer parameterisation flag
+      nn_bbl_ldf  =  1        !  diffusive bbl (=1)   or not (=0)
+      nn_bbl_adv  =  0        !  advective bbl (=1/2) or not (=0)
+      rn_ahtbbl   =  1000.    !  lateral mixing coefficient in the bbl  [m2/s]
+      rn_gambbl   =  10.      !  advective bbl coefficient                 [s]
+/
+!!======================================================================
+!!                        Tracer (T-S) namelists                      !!
+!!                                                                    !!
+!!   nameos        equation of state                                    (default: NO selection)
+!!   namtra_adv    advection scheme                                     (default: NO selection)
+!!   namtra_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namtra_mle    mixed layer eddy param. (Fox-Kemper param.)          (default: OFF)
+!!   namtra_eiv    eddy induced velocity param.                         (default: OFF)
+!!   namtra_dmp    T & S newtonian damping                              (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nameos        !   ocean Equation Of Seawater                           (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_teos10   = .true.         !  = Use TEOS-10
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traadv_fct = .true.     !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+/
+!-----------------------------------------------------------------------
+&namtra_ldf    !   lateral diffusion scheme for tracers                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traldf_lap   = .true.    !    laplacian operator
+   ln_traldf_iso   = .true.    !  iso-neutral (Standard operator)
+   ln_traldf_msc   = .true.    !  Method of Stabilizing Correction      (both operators)
+   !                       !  Coefficients:
+   nn_aht_ijk_t    = 20        !  space/time variation of eddy coef
+      !                             !   = 20     aht = 1/2  Ud. max(e1,e2)
+      rn_Ud        = 0.018          !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Ld        = 25.e+3        !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+/
+!-----------------------------------------------------------------------
+&namtra_mle    !   mixed layer eddy parametrisation (Fox-Kemper)        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_mle      = .true.   ! (T) use the Mixed Layer Eddy (MLE) parameterisation
+   rn_ce     = 0.3        ! magnitude of the MLE (typical value: 0.06 to 0.08)
+/
+!-----------------------------------------------------------------------
+&namtra_eiv    !   eddy induced velocity param.                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_ldfeiv   = .true.    ! use eddy induced velocity parameterization
+      !                        !  Coefficients:
+      nn_aei_ijk_t  = 21          ! space/time variation of the eiv coeficient
+      !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+      !                           !  time invariant coefficients:  aei0 = 1/2  Ue*Le 
+      rn_Ue        = 0.018             !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Le        = 25.e+3           !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+      !
+      ln_ldfeiv_dia =.true.   ! diagnose eiv stream function and velocities
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping                      (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tradmp   =  .false.   !  add a damping term (using resto.nc coef.)
+      nn_zdmp  =    0         !  vertical shape =0    damping throughout the water column
+/
+!!======================================================================
+!!                      ***  Dynamics namelists  ***                  !!
+!!                                                                    !!
+!!   nam_vvl       vertical coordinate options                          (default: z-star)
+!!   namdyn_adv    formulation of the momentum advection                (default: NO selection)
+!!   namdyn_vor    advection scheme                                     (default: NO selection)
+!!   namdyn_hpg    hydrostatic pressure gradient                        (default: NO selection)
+!!   namdyn_spg    surface pressure gradient                            (default: NO selection)
+!!   namdyn_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namdta_dyn    offline TOP: dynamics read in files                  (OFF_SRC only)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynadv_ubs   = .true.  !  vector form - 2nd centered scheme
+     nn_dynkeg     = 1        ! grad(KE) scheme: =0   C2  ;  =1   Hollingsworth correction
+/
+!-----------------------------------------------------------------------
+&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynvor_ene = .true. !  enstrophy conserving scheme
+      nn_een_e3f = 0          ! =0   e3f = mean masked e3t divided by 4
+/
+!-----------------------------------------------------------------------
+&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_hpg_sco  = .true.   !  s-coordinate (standard jacobian formulation)
+/
+!-----------------------------------------------------------------------
+&namdyn_spg    !   surface pressure gradient                            (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynspg_ts  = .true.  !  split-explicit free surface
+/
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum                        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynldf_lap =  .true.     !    laplacian operator
+   ln_dynldf_lev =  .true.     !  iso-level
+   nn_ahm_ijk_t  = -30           !  space/time variation of eddy coefficient :
+      !                             !  =-30  read in eddy_viscosity_3D.nc file
+/
+!!======================================================================
+!!                     vertical physics namelists                     !!
+!!                                                                    !!
+!!    namzdf        vertical physics manager                            (default: NO selection)
+!!    namzdf_ric    richardson number vertical mixing                   (ln_zdfric=T)
+!!    namzdf_tke    TKE vertical mixing                                 (ln_zdftke=T)
+!!    namzdf_gls    GLS vertical mixing                                 (ln_zdfgls=T)
+!!    namzdf_osm    OSM vertical diffusion                              (ln_zdfosm=T)
+!!    namzdf_iwm    tidal mixing parameterization                       (ln_zdfiwm=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namzdf        !   vertical physics manager                             (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_zdftke   = .true.       !  Turbulent Kinetic Energy closure       (T =>   fill namzdf_tke)
+   ln_zdfevd   = .true.       !  Enhanced Vertical Diffusion scheme
+      nn_evdm  =    0            !  evd apply on tracer (=0) or on tracer and momentum (=1)
+      rn_evd   =  100.           !  evd mixing coefficient [m2/s]
+   ln_zdfddm   = .true.    ! double diffusive mixing
+      rn_avts  =    1.e-4     !  maximum avs (vertical mixing on salinity)
+      rn_hsbfr =    1.6       !  heat/salt buoyancy flux ratio
+   ln_zdfiwm   = .false.       ! internal wave-induced mixing            (T =>   fill namzdf_iwm)
+   !                       !  Coefficients
+   rn_avm0     =   1.2e-4     !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst=F)
+   rn_avt0     =   1.2e-5     !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst=F)
+   nn_avb      =    0         !  profile for background avt & avm (=1) or not (=0)
+   nn_havtb    =    0         !  horizontal shape for avtb (=1) or not (=0)
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  (ln_zdftke =T)
+!-----------------------------------------------------------------------
+      nn_mxl      =   2       !  mixing length: = 0 bounded by the distance to surface and bottom
+      !                       !                 = 1 bounded by the local vertical scale factor
+      !                       !                 = 2 first vertical derivative of mixing length bounded by 1
+      !                       !                 = 3 as =2 with distinct dissipative an mixing length scale
+      nn_etau     =   0       !  penetration of tke below the mixed layer (ML) due to NIWs
+                               !        = 0 none ; = 1 add a tke source below the ML
+                               !        = 2 add a tke source just at the base of the ML
+                               !        = 3 as = 1 applied on HF part of the stress           (ln_cpl=T)
+      rn_eice     =   2       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4   
+      ln_lc      = .true.     !  Langmuir cell parameterisation (Axell 2002)
+      rn_lc      =  0.20      !  coef. associated to Langmuir cells
+/
+!-----------------------------------------------------------------------
+&namzdf_iwm    !    internal wave-driven mixing parameterization        (ln_zdfiwm =T)
+!-----------------------------------------------------------------------
+   nn_zpyc     = 2         !  pycnocline-intensified dissipation scales as N (=1) or N^2 (=2)
+   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency
+   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F)
+/
+!!======================================================================
+!!                  ***  Diagnostics namelists  ***                   !!
+!!                                                                    !!
+!!   namtrd       dynamics and/or tracer trends                         (default: OFF)
+!!   namptr       Poleward Transport Diagnostics                        (default: OFF)
+!!   namhsb       Heat and salt budgets                                 (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namflo       float parameters                                      (default: OFF)
+!!   nam_diaharm  Harmonic analysis of tidal constituents               (default: OFF)
+!!   nam_diadct   transports through some sections                      (default: OFF)
+!!   nam_diatmb   Top Middle Bottom Output                              (default: OFF)
+!!   nam_dia25h   25h Mean Output                                       (default: OFF)
+!!   namnc4       netcdf4 chunking and compression settings             ("key_netcdf4")
+!!======================================================================
+!-----------------------------------------------------------------------
+&namtrd        !   trend diagnostics                                    (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tra_trd  = .true.   ! (T) 3D tracer trend output
+/
+!
+!!======================================================================
+!!               ***  Observation & Assimilation  ***                 !!
+!!                                                                    !!
+!!   namobs       observation and model comparison                      (default: OFF)
+!!   nam_asminc   assimilation increments                               ('key_asminc')
+!!======================================================================
+!
+!!======================================================================
+!!                  ***  Miscellaneous namelists  ***                 !!
+!!                                                                    !!
+!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi")
+!!   namctl            Control prints                                   (default: OFF)
+!!   namsto            Stochastic parametrization of EOS                (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints                                       (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsto        ! Stochastic parametrization of EOS                      (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namptr        !   Poleward Transport Diagnostic                        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diaptr   = .true.   !  Poleward heat and salt transport (T) or not (F)
+   ln_subbas   = .true.   !  Atlantic/Pacific/Indian basins computation (T) or not
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA1_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA1_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA1_cfg	(revision 5899)
@@ -0,0 +1,502 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/OCE  Configuration namelist : overwrite default values defined in SHARED/namelist_ref
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!!             ORCA2 - ICE - PISCES configuration                     !!
+!!======================================================================
+!!              ***  Domain & Run management namelists  ***           !!
+!!                                                                    !!
+!!   namrun       parameters of the run
+!!   namdom       space and time domain
+!!   namcfg       parameters of the configuration                       (default: user defined GYRE)
+!!   namwad       Wetting and drying                                    (default: OFF)
+!!   namtsd       data: temperature & salinity                          (default: OFF)
+!!   namcrs       coarsened grid (for outputs and/or TOP)               (ln_crs =T)
+!!   namc1d       1D configuration options                              ("key_c1d")
+!!   namc1d_dyndmp 1D newtonian damping applied on currents             ("key_c1d")
+!!   namc1d_uvd   1D data (currents)                                    ("key_c1d")
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namrun        !   parameters of the run
+!-----------------------------------------------------------------------
+   cn_exp      = _AUTOBLOCKER_    !  Experience name
+   nn_it000    = _AUTOBLOCKER_    !  First time step
+   nn_itend    = _AUTOBLOCKER_    !  Last  time step
+   nn_date0    = _AUTOBLOCKER_    !  Date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)
+   nn_leapy    = _AUTOBLOCKER_    !  Leap year calendar (1) or not (0)
+   ln_rstart   = _AUTOBLOCKER_    !  start from rest (F) or from a restart file (T)
+   nn_rstctl   = _AUTOBLOCKER_    !  Restart control => activated only if ln_rstart = T
+                           !    = 0 nn_date0 read in namelist ; nn_it000 : read in namelist
+                           !    = 1 nn_date0 read in namelist ; nn_it000 : check consistancy between namelist and restart
+                           !    = 2 nn_date0 read in restart  ; nn_it000 : check consistancy between namelist and restart
+   cn_ocerst_in  = "restartopa"   !  Suffix of ocean restart name (input)
+   cn_ocerst_indir = "."       !  directory from which to read input ocean restarts
+   cn_ocerst_out = "restart"      !  Suffix of ocean restart name (output)
+   cn_ocerst_outdir = "."      !  directory in which to write output ocean restarts
+   nn_stock    =  _AUTOBLOCKER_   !  Frequency of creation of a restart file (modulo referenced to 1)
+   ln_mskland  = .true.    !  Masks land points in NetCDF outputs
+   ln_cfmeta   = .true.    !  output additional data to netCDF files required for compliance with the CF metadata standard
+/
+!-----------------------------------------------------------------------
+&namdom        !   time and space domain
+!-----------------------------------------------------------------------
+   rn_rdt      = 2700.     !  time step for the dynamics and tracer
+   ln_meshmask =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&namcfg        !   parameters of the configuration                      (default: use namusr_def in namelist_cfg)
+!-----------------------------------------------------------------------
+   ln_read_cfg = .true.    !  (=T) read the domain configuration file
+      cn_domcfg = "domain_cfg.nc"    ! domain configuration filename
+      !
+      ln_closea    = .true.    !  F => suppress closed seas (defined by closea_mask field) 
+      !                         !       from the bathymetry at runtime.
+/
+!-----------------------------------------------------------------------
+&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
+!-----------------------------------------------------------------------
+   !                       ! =T  read T-S fields for:
+   ln_tsd_init = .true.         !  ocean initialisation
+   ln_tsd_dmp  = .false.          !  T-S restoring   (see namtra_dmp)
+
+   cn_dir = './'     !  root directory for the T-S data location
+   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_tem  = 'conservative_temperature_WOA13_decav_Reg1L75_clim', -1 ,'votemper' , .true. , .true. , 'yearly' , 'weights_3D_WOA13d1_2_eorca1_bilinear.nc'  ,   ''    ,    ''
+   sn_sal  = 'absolute_salinity_WOA13_decav_Reg1L75_clim'       , -1 ,'vosaline' , .true. , .true. , 'yearly' , 'weights_3D_WOA13d1_2_eorca1_bilinear.nc'  ,   ''
+/
+!!======================================================================
+!!            ***  Surface Boundary Condition namelists  ***          !!
+!!                                                                    !!
+!!   namsbc          surface boundary condition manager                 (default: NO selection)
+!!   namsbc_flx      flux               formulation                     (ln_flx     =T)
+!!   namsbc_blk      Bulk formulae formulation                          (ln_blk     =T)
+!!   namsbc_cpl      CouPLed            formulation                     ("key_oasis3" )
+!!   namsbc_sas      Stand-Alone Surface module                         (SAS_SRC  only)
+!!   namsbc_iif      Ice-IF: use observed ice cover                     (nn_ice = 1   )
+!!   namtra_qsr      penetrative solar radiation                        (ln_traqsr  =T)
+!!   namsbc_ssr      sea surface restoring term (for T and/or S)        (ln_ssr     =T)
+!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T)
+!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T)
+!!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr )
+!!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T)
+!!   namsbc_wave     external fields from wave model                    (ln_wave    =T)
+!!   namberg         iceberg floats                                     (ln_icebergs=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namsbc        !   Surface Boundary Condition manager                   (default: NO selection)
+!-----------------------------------------------------------------------
+   nn_fsbc     = 2         !  frequency of SBC module call
+                           !     (also = the frequency of sea-ice & iceberg model call)
+                     ! Type of air-sea fluxes 
+   ln_cpl      = .true.    !  atmosphere coupled   formulation          ( requires key_oasis3 )
+                     ! Sea-ice :
+   nn_ice      = 2         !  =2 or 3 automatically for SI3 or CICE    ("key_si3" or "key_cice")
+                     ! Misc. options of sbc : 
+   ln_traqsr   = .true.   !  Light penetration in the ocean            (T => fill namtra_qsr)
+   ln_isf      = .true.   !  ice shelf                                 (T   => fill namsbc_isf & namsbc_iscpl)
+/
+!-----------------------------------------------------------------------
+&namsbc_blk    !   namsbc_blk  generic Bulk formula                     (ln_blk =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3")
+!-----------------------------------------------------------------------
+   nn_cplmodel   =     1   !  Maximum number of models to/from which NEMO is potentially sending/receiving data
+   ln_usecplmask = .false. !  use a coupling mask file to merge data received from several models
+   !                       !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
+   nn_cats_cpl   =     1   !  Number of sea ice categories over which coupling is to be carried out (if not 1)
+   !_____________!__________________________!____________!_____________!______________________!________!
+   !             !        description       !  multiple  !    vector   !       vector         ! vector !
+   !             !                          ! categories !  reference  !     orientation      ! grids  !
+!***   send    ***
+   sn_snd_temp   =   'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_alb    =   'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'T'
+   sn_snd_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_thick  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_crtw   =   'none'                 ,    'no'    ,     ''      ,         ''           , 'U,V'
+   sn_snd_ifrac  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_wlev   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_cond   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_thick1 =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_mpnd   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_sstfrz =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_ttilyr =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+!***  receive  ***
+   sn_rcv_w10m   =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_taumod =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tau    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'U,V'
+   sn_rcv_dqnsdt =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qsr    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qns    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_emp    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_rnf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_cal    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_isf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_icb    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_hsig   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_iceflx =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_mslp   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_phioc  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_sdrfx  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_sdrfy  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wper   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wnum   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wfreq  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_ts_ice =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tauwoc =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+   sn_rcv_tauw   =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+   sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T)
+!-----------------------------------------------------------------------
+   !                       ! type of penetration                        (default: NO selection)
+   sn_chl      ='merged_ESACCI_BIOMER4V1R1_CHL_REG05',  -1  , 'CHLA' , .true. , .true. , 'yearly' , 'weights_reg05_2_eorca1_bilinear.nc' , '' , ''
+   ln_qsr_rgb  = .false.    !  RGB (Red-Green-Blue) light penetration
+   ln_qsr_2bd  = .false.   !  2 bands              light penetration
+   ln_qsr_bio  = .true.   !  bio-model light penetration
+   nn_chldta   =    1       !  RGB : Chl data (=1) or cst value (=0)
+   !
+/
+!-----------------------------------------------------------------------
+&namsbc_ssr    !   surface boundary condition : sea surface restoring   (ln_ssr =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_rnf    !   runoffs                                              (ln_rnf =T)
+!-----------------------------------------------------------------------
+   ln_rnf_mouth = .false.   !  specific treatment at rivers mouths
+      rn_hrnf     =  15.e0    !  depth over which enhanced vertical mixing is used    (ln_rnf_mouth=T)
+      rn_avt_rnf  =   1.e-3   !  value of the additional vertical mixing coef. [m2/s] (ln_rnf_mouth=T)
+   rn_rfact    =   1.e0    !  multiplicative factor for runoff
+   ln_rnf_depth = .true.   !  read in depth information for runoff
+   ln_rnf_tem  = .false.   !  read in temperature information for runoff
+   ln_rnf_sal  = .false.   !  read in salinity information for runoff
+   ln_rnf_depth_ini = .false. ! compute depth at initialisation from runoff file
+      rn_rnf_max  = 0.05  !  max value of the runoff climatologie over global domain ( ln_rnf_depth_ini = .true )
+      rn_dep_max  = 150.      !  depth over which runoffs is spread ( ln_rnf_depth_ini = .true )
+
+   cn_dir = './'  !  root directory for the location of the runoff files
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnf      = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc',        -1         , 'sorunoff',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_cnf      = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc',         0         , 'socoeff' ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+   sn_s_rnf    = 'runoffs'            ,        24         , 'rosaline',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_t_rnf    = 'runoffs'            ,        24         , 'rotemper',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_dep_rnf  = 'runoffs_depths.nc'  ,         0         , 'rodepth' ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)
+!-----------------------------------------------------------------------             or set or usr_def_zgr )
+   !                 ! type of top boundary layer
+   nn_isf      = 3         !  ice shelf melting/freezing
+                           !  3 = rnf file for ISF  
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnfisf     = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc' ,   -12      ,'sornfisf',    .false.      , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmax_isf = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc' ,   -12      ,'sodepmax_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmin_isf = 'runoff-icb_DaiTrenberth_Depoorter_eORCA1.nc' ,   -12      ,'sodepmin_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+/
+!-----------------------------------------------------------------------
+&namsbc_wave   ! External fields from wave model                        (ln_wave=T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namberg       !   iceberg parameters                                   (default: OFF)
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!               ***  Lateral boundary condition  ***                 !!
+!!                                                                    !!
+!!   namlbc        lateral momentum boundary condition                  (default: NO selection)
+!!   namagrif      agrif nested grid   (read by child model only)       ("key_agrif")
+!!   nam_tide      Tidal forcing                                        (default: OFF)
+!!   nambdy        Unstructured open boundaries                         (default: OFF)
+!!   nambdy_dta    Unstructured open boundaries - external data         (see  nambdy)
+!!   nambdy_tide   tidal forcing at open boundaries                     (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition                  (default: NO selection)
+!-----------------------------------------------------------------------
+   rn_shlat    =    0.     !  no slip
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!                ***  Top/Bottom boundary condition  ***             !!
+!!                                                                    !!
+!!   namdrg        top/bottom drag coefficient                          (default: NO selection)
+!!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T)
+!!   namdrg_bot    bottom friction                                      (ln_OFF=F)
+!!   nambbc        bottom temperature boundary condition                (default: OFF)
+!!   nambbl        bottom boundary layer scheme                         (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdrg        !   top/bottom drag coefficient                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_non_lin  = .true.   !  non-linear  drag: Cd = Cd0 |U|
+   ln_loglayer = .false.   !  logarithmic drag: Cd = vkarmn/log(z/z0) |U|
+   !
+   ln_drgimp   = .true.    !  implicit top/bottom friction flag
+/
+!-----------------------------------------------------------------------
+&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F)
+!-----------------------------------------------------------------------
+   rn_Cd0      =  1.e-3    !  drag coefficient [-]
+   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag)
+   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases)
+   rn_z0       =  3.e-3    !  roughness [m] (ln_loglayer=T)
+   ln_boost    = .false.   !  =T regional boost of Cd0 ; =F constant
+      rn_boost =  50.         !  local boost factor  [-]
+/
+!-----------------------------------------------------------------------
+&nambbc        !   bottom temperature boundary condition                (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom
+      nn_geoflx   =    2      !  geothermal heat flux: = 2 read variable flux [mW/m2]
+
+   cn_dir = './'  !  root directory for the geothermal data location
+   !___________!____________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                    !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_qgh      ='Goutorbe_ghflux.nc',        -12.       , 'gh_flux' ,   .false.   , .true. , 'yearly'  , 'weights_Goutorbe1_2_eorca1_bilinear.nc'       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&nambbl        !   bottom boundary layer scheme                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbl   = .true.    !  Bottom Boundary Layer parameterisation flag
+      nn_bbl_ldf  =  1        !  diffusive bbl (=1)   or not (=0)
+      nn_bbl_adv  =  0        !  advective bbl (=1/2) or not (=0)
+      rn_ahtbbl   =  1000.    !  lateral mixing coefficient in the bbl  [m2/s]
+      rn_gambbl   =  10.      !  advective bbl coefficient                 [s]
+/
+!!======================================================================
+!!                        Tracer (T-S) namelists                      !!
+!!                                                                    !!
+!!   nameos        equation of state                                    (default: NO selection)
+!!   namtra_adv    advection scheme                                     (default: NO selection)
+!!   namtra_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namtra_mle    mixed layer eddy param. (Fox-Kemper param.)          (default: OFF)
+!!   namtra_eiv    eddy induced velocity param.                         (default: OFF)
+!!   namtra_dmp    T & S newtonian damping                              (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nameos        !   ocean Equation Of Seawater                           (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_teos10   = .true.         !  = Use TEOS-10
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traadv_fct = .true.     !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+/
+!-----------------------------------------------------------------------
+&namtra_ldf    !   lateral diffusion scheme for tracers                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traldf_lap   = .true.    !    laplacian operator
+   ln_traldf_iso   = .true.    !  iso-neutral (Standard operator)
+   ln_traldf_msc   = .true.    !  Method of Stabilizing Correction      (both operators)
+   !                       !  Coefficients:
+   nn_aht_ijk_t    = 20        !  space/time variation of eddy coef
+      !                             !   = 20     aht = 1/2  Ud. max(e1,e2)
+      rn_Ud        = 0.018          !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Ld        = 100.e+3        !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+/
+!-----------------------------------------------------------------------
+&namtra_mle    !   mixed layer eddy parametrisation (Fox-Kemper)        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_mle      = .true.   ! (T) use the Mixed Layer Eddy (MLE) parameterisation
+/
+!-----------------------------------------------------------------------
+&namtra_eiv    !   eddy induced velocity param.                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_ldfeiv   = .true.    ! use eddy induced velocity parameterization
+      !                        !  Coefficients:
+      nn_aei_ijk_t  = 21          ! space/time variation of the eiv coeficient
+      !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+      !                           !  time invariant coefficients:  aei0 = 1/2  Ue*Le 
+      rn_Ue        = 0.018             !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Le        = 100.e+3           !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+      !
+      ln_ldfeiv_dia =.true.   ! diagnose eiv stream function and velocities
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping                      (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tradmp   =  .false.   !  add a damping term (using resto.nc coef.)
+      nn_zdmp  =    0         !  vertical shape =0    damping throughout the water column
+/
+!!======================================================================
+!!                      ***  Dynamics namelists  ***                  !!
+!!                                                                    !!
+!!   nam_vvl       vertical coordinate options                          (default: z-star)
+!!   namdyn_adv    formulation of the momentum advection                (default: NO selection)
+!!   namdyn_vor    advection scheme                                     (default: NO selection)
+!!   namdyn_hpg    hydrostatic pressure gradient                        (default: NO selection)
+!!   namdyn_spg    surface pressure gradient                            (default: NO selection)
+!!   namdyn_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namdta_dyn    offline TOP: dynamics read in files                  (OFF_SRC only)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynadv_vec = .true.  !  vector form - 2nd centered scheme
+     nn_dynkeg     = 1        ! grad(KE) scheme: =0   C2  ;  =1   Hollingsworth correction
+/
+!-----------------------------------------------------------------------
+&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynvor_een = .true.  !  energy & enstrophy scheme
+      nn_een_e3f = 0          ! =0   e3f = mean masked e3t divided by 4
+/
+!-----------------------------------------------------------------------
+&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_hpg_sco  = .true.   !  s-coordinate (standard jacobian formulation)
+/
+!-----------------------------------------------------------------------
+&namdyn_spg    !   surface pressure gradient                            (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynspg_exp  = .false.   ! explicit free surface
+   ln_dynspg_ts   = .true.   ! split-explicit free surface
+      ln_bt_fw      = .false.     ! Forward integration of barotropic Eqs.
+      ln_bt_av      = .true.     ! Time filtering of barotropic variables
+         nn_bt_flt     = 1          ! Time filter choice  = 0 None
+         !                          !                     = 1 Boxcar over   nn_baro sub-steps
+         !                          !                     = 2 Boxcar over 2*nn_baro  "    "
+      ln_bt_auto    = .true.     ! Number of sub-step defined from:
+         rn_bt_cmax   =  0.8        ! =T : the Maximum Courant Number allowed
+         nn_baro      = 30          ! =F : the number of sub-step in rn_rdt seconds
+      rn_bt_alpha   = 0.         ! Temporal diffusion parameter (if ln_bt_av=F)
+/
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum                        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynldf_lap =  .true.     !    laplacian operator
+   ln_dynldf_lev =  .true.     !  iso-level
+   nn_ahm_ijk_t  = -30           !  space/time variation of eddy coefficient :
+      !                             !  =-30  read in eddy_viscosity_3D.nc file
+/
+!!======================================================================
+!!                     vertical physics namelists                     !!
+!!                                                                    !!
+!!    namzdf        vertical physics manager                            (default: NO selection)
+!!    namzdf_ric    richardson number vertical mixing                   (ln_zdfric=T)
+!!    namzdf_tke    TKE vertical mixing                                 (ln_zdftke=T)
+!!    namzdf_gls    GLS vertical mixing                                 (ln_zdfgls=T)
+!!    namzdf_osm    OSM vertical diffusion                              (ln_zdfosm=T)
+!!    namzdf_iwm    tidal mixing parameterization                       (ln_zdfiwm=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namzdf        !   vertical physics manager                             (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_zdftke   = .true.       !  Turbulent Kinetic Energy closure       (T =>   fill namzdf_tke)
+   ln_zdfevd   = .true.       !  Enhanced Vertical Diffusion scheme
+      nn_evdm  =    0            !  evd apply on tracer (=0) or on tracer and momentum (=1)
+      rn_evd   =  100.           !  evd mixing coefficient [m2/s]
+   ln_zdfddm   = .true.    ! double diffusive mixing
+      rn_avts  =    1.e-4     !  maximum avs (vertical mixing on salinity)
+      rn_hsbfr =    1.6       !  heat/salt buoyancy flux ratio
+   ln_zdfiwm   = .true.       ! internal wave-induced mixing            (T =>   fill namzdf_iwm)
+   !                       !  Coefficients
+   rn_avm0     =   1.2e-4     !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst=F)
+   rn_avt0     =   1.2e-5     !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst=F)
+   nn_avb      =    0         !  profile for background avt & avm (=1) or not (=0)
+   nn_havtb    =    0         !  horizontal shape for avtb (=1) or not (=0)
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  (ln_zdftke =T)
+!-----------------------------------------------------------------------
+   nn_mxl      =   2       !  mixing length: = 2 first vertical derivative of mixing length bounded by 1
+   ln_mxl0     = .true.    !  surface mixing length scale = F(wind stress) (T) or not (F)
+      nn_mxlice   = 2         ! type of scaling under sea-ice
+                              !    = 2  scaling with mean sea-ice thickness
+   nn_etau     =   0       !  penetration of tke below the mixed layer (ML) due to NIWs
+                               !        = 0 none ; = 1 add a tke source below the ML
+   ln_lc      = .true.     !  Langmuir cell parameterisation (Axell 2002)
+   rn_lc      =  0.20      !  coef. associated to Langmuir cells
+/
+!-----------------------------------------------------------------------
+&namzdf_iwm    !    internal wave-driven mixing parameterization        (ln_zdfiwm =T)
+!-----------------------------------------------------------------------
+   nn_zpyc     = 2         !  pycnocline-intensified dissipation scales as N (=1) or N^2 (=2)
+   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency
+   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F)
+/
+!!======================================================================
+!!                  ***  Diagnostics namelists  ***                   !!
+!!                                                                    !!
+!!   namtrd       dynamics and/or tracer trends                         (default: OFF)
+!!   namptr       Poleward Transport Diagnostics                        (default: OFF)
+!!   namhsb       Heat and salt budgets                                 (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namflo       float parameters                                      (default: OFF)
+!!   nam_diaharm  Harmonic analysis of tidal constituents               (default: OFF)
+!!   nam_diadct   transports through some sections                      (default: OFF)
+!!   nam_diatmb   Top Middle Bottom Output                              (default: OFF)
+!!   nam_dia25h   25h Mean Output                                       (default: OFF)
+!!   namnc4       netcdf4 chunking and compression settings             ("key_netcdf4")
+!!======================================================================
+!-----------------------------------------------------------------------
+&namtrd        !   trend diagnostics                                    (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tra_trd  = .true.   ! (T) 3D tracer trend output
+/
+!
+!!======================================================================
+!!               ***  Observation & Assimilation  ***                 !!
+!!                                                                    !!
+!!   namobs       observation and model comparison                      (default: OFF)
+!!   nam_asminc   assimilation increments                               ('key_asminc')
+!!======================================================================
+!
+!!======================================================================
+!!                  ***  Miscellaneous namelists  ***                 !!
+!!                                                                    !!
+!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi")
+!!   namctl            Control prints                                   (default: OFF)
+!!   namsto            Stochastic parametrization of EOS                (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints                                       (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsto        ! Stochastic parametrization of EOS                      (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namptr        !   Poleward Transport Diagnostic                        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diaptr   = .true.   !  Poleward heat and salt transport (T) or not (F)
+   ln_subbas   = .true.   !  Atlantic/Pacific/Indian basins computation (T) or not
+/
+!-----------------------------------------------------------------------
+&namhsb        !  Heat and salt budgets                                 (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diahsb   = .true.   !  output the heat and salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA2_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA2_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA2_cfg	(revision 5899)
@@ -0,0 +1,508 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/OCE  Configuration namelist : overwrite default values defined in SHARED/namelist_ref
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!!             ORCA2 - ICE - PISCES configuration                     !!
+!!======================================================================
+!!              ***  Domain & Run management namelists  ***           !!
+!!                                                                    !!
+!!   namrun       parameters of the run
+!!   namdom       space and time domain
+!!   namcfg       parameters of the configuration                       (default: user defined GYRE)
+!!   namwad       Wetting and drying                                    (default: OFF)
+!!   namtsd       data: temperature & salinity                          (default: OFF)
+!!   namcrs       coarsened grid (for outputs and/or TOP)               (ln_crs =T)
+!!   namc1d       1D configuration options                              ("key_c1d")
+!!   namc1d_dyndmp 1D newtonian damping applied on currents             ("key_c1d")
+!!   namc1d_uvd   1D data (currents)                                    ("key_c1d")
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namrun        !   parameters of the run
+!-----------------------------------------------------------------------
+   cn_exp      = _AUTOBLOCKER_    !  Experience name
+   nn_it000    = _AUTOBLOCKER_    !  First time step
+   nn_itend    = _AUTOBLOCKER_    !  Last  time step
+   nn_date0    = _AUTOBLOCKER_    !  Date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)
+   nn_leapy    = _AUTOBLOCKER_    !  Leap year calendar (1) or not (0)
+   ln_rstart   = _AUTOBLOCKER_    !  start from rest (F) or from a restart file (T)
+   nn_rstctl   = _AUTOBLOCKER_    !  Restart control => activated only if ln_rstart = T
+                           !    = 0 nn_date0 read in namelist ; nn_it000 : read in namelist
+                           !    = 1 nn_date0 read in namelist ; nn_it000 : check consistancy between namelist and restart
+                           !    = 2 nn_date0 read in restart  ; nn_it000 : check consistancy between namelist and restart
+   cn_ocerst_in  = "restartopa"   !  Suffix of ocean restart name (input)
+   cn_ocerst_indir = "."       !  directory from which to read input ocean restarts
+   cn_ocerst_out = "restart"      !  Suffix of ocean restart name (output)
+   cn_ocerst_outdir = "."      !  directory in which to write output ocean restarts
+   nn_istate   =       0   !  Output the initial state (1) or not (0)
+   nn_stock    =  _AUTOBLOCKER_   !  Frequency of creation of a restart file (modulo referenced to 1)
+   nn_write    =    5840   !  Requency of write in the output file   (modulo referenced to nn_it000)
+   ln_mskland  = .true.    !  Masks land points in NetCDF outputs
+!   ln_mskutil  = .true.    !  Outputs without halos
+   ln_cfmeta   = .true.    !  output additional data to netCDF files required for compliance with the CF metadata standard
+/
+!-----------------------------------------------------------------------
+&namdom        !   time and space domain
+!-----------------------------------------------------------------------
+   rn_rdt      = 4800. !5400.     !  time step for the dynamics and tracer
+   ln_meshmask =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&namcfg        !   parameters of the configuration                      (default: use namusr_def in namelist_cfg)
+!-----------------------------------------------------------------------
+   ln_read_cfg = .true.    !  (=T) read the domain configuration file
+      cn_domcfg = "domain_cfg.nc"    ! domain configuration filename
+      !
+      ln_closea    = .true.    !  F => suppress closed seas (defined by closea_mask field) 
+      !                         !       from the bathymetry at runtime.
+/
+!-----------------------------------------------------------------------
+&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
+!-----------------------------------------------------------------------
+   !                       ! =T  read T-S fields for:
+   ln_tsd_init = .true.         !  ocean initialisation
+   ln_tsd_dmp  = .false.          !  T-S restoring   (see namtra_dmp)
+
+   cn_dir = './'     !  root directory for the T-S data location
+   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_tem = 'data_1m_potential_temperature_nomask',     -1.     ,'votemper',   .true.    , .true. , 'yearly'  ,    ''    ,    ''    ,    ''
+   sn_sal = 'data_1m_salinity_nomask'             ,     -1.     ,'vosaline',   .true.    , .true. , 'yearly'  ,    ''    ,    ''    ,    ''
+/
+!!======================================================================
+!!            ***  Surface Boundary Condition namelists  ***          !!
+!!                                                                    !!
+!!   namsbc          surface boundary condition manager                 (default: NO selection)
+!!   namsbc_flx      flux               formulation                     (ln_flx     =T)
+!!   namsbc_blk      Bulk formulae formulation                          (ln_blk     =T)
+!!   namsbc_cpl      CouPLed            formulation                     ("key_oasis3" )
+!!   namsbc_sas      Stand-Alone Surface module                         (SAS_SRC  only)
+!!   namsbc_iif      Ice-IF: use observed ice cover                     (nn_ice = 1   )
+!!   namtra_qsr      penetrative solar radiation                        (ln_traqsr  =T)
+!!   namsbc_ssr      sea surface restoring term (for T and/or S)        (ln_ssr     =T)
+!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T)
+!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T)
+!!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr )
+!!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T)
+!!   namsbc_wave     external fields from wave model                    (ln_wave    =T)
+!!   namberg         iceberg floats                                     (ln_icebergs=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namsbc        !   Surface Boundary Condition manager                   (default: NO selection)
+!-----------------------------------------------------------------------
+   nn_fsbc     = 2 !4         !  frequency of SBC module call
+                           !     (also = the frequency of sea-ice & iceberg model call)
+                     ! Type of air-sea fluxes 
+   ln_cpl      = .true.    !  atmosphere coupled   formulation          ( requires key_oasis3 )
+                     ! Sea-ice :
+   nn_ice      = 2         !  =2 or 3 automatically for SI3 or CICE    ("key_si3" or "key_cice")
+                     ! Misc. options of sbc : 
+   ln_traqsr   = .true.   !  Light penetration in the ocean            (T => fill namtra_qsr)
+   ln_isf      = .false.   !  ice shelf                                 (T   => fill namsbc_isf & namsbc_iscpl)
+/
+!-----------------------------------------------------------------------
+&namsbc_blk    !   namsbc_blk  generic Bulk formula                     (ln_blk =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3")
+!-----------------------------------------------------------------------
+   nn_cplmodel   =     1   !  Maximum number of models to/from which NEMO is potentially sending/receiving data
+   ln_usecplmask = .false. !  use a coupling mask file to merge data received from several models
+   !                       !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
+   nn_cats_cpl   =     1   !  Number of sea ice categories over which coupling is to be carried out (if not 1)
+   !_____________!__________________________!____________!_____________!______________________!________!
+   !             !        description       !  multiple  !    vector   !       vector         ! vector !
+   !             !                          ! categories !  reference  !     orientation      ! grids  !
+!***   send    ***
+   sn_snd_temp   =   'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_alb    =   'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''
+!   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'
+   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'T'
+   sn_snd_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_thick  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_crtw   =   'none'                 ,    'no'    ,     ''      ,         ''           , 'U,V'
+   sn_snd_ifrac  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_wlev   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_cond   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_thick1 =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_mpnd   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_sstfrz =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_ttilyr =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+!***  receive  ***
+   sn_rcv_w10m   =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_taumod =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tau    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'U,V'
+   sn_rcv_dqnsdt =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qsr    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qns    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_emp    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_rnf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_cal    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_isf    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_icb    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_hsig   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_iceflx =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_mslp   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_phioc  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_sdrfx  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_sdrfy  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wper   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wnum   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wfreq  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_ts_ice =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tauwoc =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+   sn_rcv_tauw   =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T)
+!-----------------------------------------------------------------------
+   !                       ! type of penetration                        (default: NO selection)
+   ln_qsr_bio  = .true.   !  bio-model light penetration
+   !
+/
+!-----------------------------------------------------------------------
+&namsbc_ssr    !   surface boundary condition : sea surface restoring   (ln_ssr =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_rnf    !   runoffs                                              (ln_rnf =T)
+!-----------------------------------------------------------------------
+   ln_rnf_mouth = .false.   !  specific treatment at rivers mouths
+   rn_hrnf     =  15.e0    !  depth over which enhanced vertical mixing is used    (ln_rnf_mouth=T)
+   rn_avt_rnf  =   1.e-3   !  value of the additional vertical mixing coef. [m2/s] (ln_rnf_mouth=T)
+   rn_rfact    =   1.e0    !  multiplicative factor for runoff
+   ln_rnf_depth = .false.   !  read in depth information for runoff
+   ln_rnf_tem  = .false.   !  read in temperature information for runoff
+   ln_rnf_sal  = .false.   !  read in salinity information for runoff
+   ln_rnf_depth_ini = .false. ! compute depth at initialisation from runoff file
+   rn_rnf_max  = 0.05        !  max value of the runoff climatologie over global domain ( ln_rnf_depth_ini = .true )
+   rn_dep_max  = 150.        !  depth over which runoffs is spread ( ln_rnf_depth_ini = .true )
+!   nn_rnf_depth_file = _AUTO_   !  create (=1) a runoff depth file or not (=0)
+
+   cn_dir = './'  !  root directory for the location of the runoff files
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnf      = 'runoff_core_monthly.nc',        -1         , 'sorunoff' ,   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_cnf      = 'runoff_core_monthly.nc',         0         , 'socoeff'  ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+   sn_s_rnf    = 'runoffs'            ,        24         , 'rosaline',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_t_rnf    = 'runoffs'            ,        24         , 'rotemper',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_dep_rnf  = 'runoffs_depths.nc'  ,         0         , 'rodepth' ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)
+!-----------------------------------------------------------------------             or set or usr_def_zgr )
+   !                 ! type of top boundary layer
+   nn_isf      = 3         !  ice shelf melting/freezing
+                           !  3 = rnf file for ISF  
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnfisf     = 'runoff_core_monthly.nc' ,   -12      ,'sornfisf',    .false.      , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmax_isf = 'runoff_core_monthly.nc' ,   -12      ,'sodepmax_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmin_isf = 'runoff_core_monthly.nc' ,   -12      ,'sodepmin_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+/
+!-----------------------------------------------------------------------
+&namsbc_wave   ! External fields from wave model                        (ln_wave=T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namberg       !   iceberg parameters                                   (default: OFF)
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!               ***  Lateral boundary condition  ***                 !!
+!!                                                                    !!
+!!   namlbc        lateral momentum boundary condition                  (default: NO selection)
+!!   namagrif      agrif nested grid   (read by child model only)       ("key_agrif")
+!!   nam_tide      Tidal forcing                                        (default: OFF)
+!!   nambdy        Unstructured open boundaries                         (default: OFF)
+!!   nambdy_dta    Unstructured open boundaries - external data         (see  nambdy)
+!!   nambdy_tide   tidal forcing at open boundaries                     (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition                  (default: NO selection)
+!-----------------------------------------------------------------------
+   rn_shlat    =    2.     !  no slip
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!                ***  Top/Bottom boundary condition  ***             !!
+!!                                                                    !!
+!!   namdrg        top/bottom drag coefficient                          (default: NO selection)
+!!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T)
+!!   namdrg_bot    bottom friction                                      (ln_OFF=F)
+!!   nambbc        bottom temperature boundary condition                (default: OFF)
+!!   nambbl        bottom boundary layer scheme                         (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdrg        !   top/bottom drag coefficient                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_non_lin  = .true.   !  linear  drag: Cd = Cd0 Uc0
+   ln_loglayer = .false.   !  logarithmic drag: Cd = vkarmn/log(z/z0) |U|
+   !
+   ln_drgimp   = .true.    !  implicit top/bottom friction flag
+   ln_drgice_imp = .true.  ! implicit ice-ocean drag
+/
+!-----------------------------------------------------------------------
+&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F)
+!-----------------------------------------------------------------------
+   rn_Cd0      =  1.e-3    !  drag coefficient [-]
+   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag)
+   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases)
+   rn_z0       =  3.e-3    !  roughness [m] (ln_loglayer=T)
+   ln_boost    = .false.   !  =T regional boost of Cd0 ; =F constant
+      rn_boost =  50.         !  local boost factor  [-]
+/
+!-----------------------------------------------------------------------
+&nambbc        !   bottom temperature boundary condition                (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom
+      nn_geoflx   =    2      !  geothermal heat flux: = 2 read variable flux [mW/m2]
+
+   cn_dir = './'  !  root directory for the geothermal data location
+   !___________!____________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                    !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_qgh      ='geothermal_heating.nc'  ,       -12.        , 'heatflow',   .false.   , .true. , 'yearly'  ,   ''             ,   ''     ,   ''
+/
+!-----------------------------------------------------------------------
+&nambbl        !   bottom boundary layer scheme                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbl   = .true.    !  Bottom Boundary Layer parameterisation flag
+      nn_bbl_ldf  =  1        !  diffusive bbl (=1)   or not (=0)
+      nn_bbl_adv  =  0        !  advective bbl (=1/2) or not (=0)
+      rn_ahtbbl   =  1000.    !  lateral mixing coefficient in the bbl  [m2/s]
+      rn_gambbl   =  10.      !  advective bbl coefficient                 [s]
+/
+!!======================================================================
+!!                        Tracer (T-S) namelists                      !!
+!!                                                                    !!
+!!   nameos        equation of state                                    (default: NO selection)
+!!   namtra_adv    advection scheme                                     (default: NO selection)
+!!   namtra_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namtra_mle    mixed layer eddy param. (Fox-Kemper param.)          (default: OFF)
+!!   namtra_eiv    eddy induced velocity param.                         (default: OFF)
+!!   namtra_dmp    T & S newtonian damping                              (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nameos        !   ocean Equation Of Seawater                           (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_teos10   = .true.         !  = Use TEOS-10
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traadv_fct = .true.     !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+/
+!-----------------------------------------------------------------------
+&namtra_ldf    !   lateral diffusion scheme for tracers                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traldf_lap   = .true.    !    laplacian operator
+   ln_traldf_iso   = .true.    !  iso-neutral (Standard operator)
+   ln_traldf_msc   = .true.    !  Method of Stabilizing Correction      (both operators)
+   !                       !  Coefficients:
+   nn_aht_ijk_t    = 31        !  space/time variation of eddy coef
+      !                             !   = 20     aht = 1/2  Ud. max(e1,e2)
+      rn_Ud        = 0.018          !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Ld        = 100.e+3        !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+/
+!-----------------------------------------------------------------------
+&namtra_mle    !   mixed layer eddy parametrisation (Fox-Kemper)        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_mle      = .true.   ! (T) use the Mixed Layer Eddy (MLE) parameterisation
+/
+!-----------------------------------------------------------------------
+&namtra_eiv    !   eddy induced velocity param.                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_ldfeiv   = .true.    ! use eddy induced velocity parameterization
+      !                        !  Coefficients:
+      nn_aei_ijk_t  = 21          ! space/time variation of the eiv coeficient
+      !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+      !                           !  time invariant coefficients:  aei0 = 1/2  Ue*Le 
+      rn_Ue        = 0.018             !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Le        = 100.e+3           !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+      !
+      ln_ldfeiv_dia =.true.   ! diagnose eiv stream function and velocities
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping                      (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tradmp   =  .false.   !  add a damping term (using resto.nc coef.)
+      nn_zdmp  =    0         !  vertical shape =0    damping throughout the water column
+/
+!!======================================================================
+!!                      ***  Dynamics namelists  ***                  !!
+!!                                                                    !!
+!!   nam_vvl       vertical coordinate options                          (default: z-star)
+!!   namdyn_adv    formulation of the momentum advection                (default: NO selection)
+!!   namdyn_vor    advection scheme                                     (default: NO selection)
+!!   namdyn_hpg    hydrostatic pressure gradient                        (default: NO selection)
+!!   namdyn_spg    surface pressure gradient                            (default: NO selection)
+!!   namdyn_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namdta_dyn    offline TOP: dynamics read in files                  (OFF_SRC only)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynadv_vec = .true.  !  vector form - 2nd centered scheme
+     nn_dynkeg     = 1        ! grad(KE) scheme: =0   C2  ;  =1   Hollingsworth correction
+/
+!-----------------------------------------------------------------------
+&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynvor_een = .true.  !  energy & enstrophy scheme
+      nn_een_e3f = 0          ! =0   e3f = mean masked e3t divided by 4
+/
+!-----------------------------------------------------------------------
+&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_hpg_sco  = .true.   !  s-coordinate (standard jacobian formulation)
+/
+!-----------------------------------------------------------------------
+&namdyn_spg    !   surface pressure gradient                            (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynspg_exp  = .false.   ! explicit free surface
+   ln_dynspg_ts   = .true.   ! split-explicit free surface
+      ln_bt_fw      = .false.     ! Forward integration of barotropic Eqs.
+      ln_bt_av      = .true.     ! Time filtering of barotropic variables
+         nn_bt_flt     = 1          ! Time filter choice  = 0 None
+         !                          !                     = 1 Boxcar over   nn_baro sub-steps
+         !                          !                     = 2 Boxcar over 2*nn_baro  "    "
+      ln_bt_auto    = .true.     ! Number of sub-step defined from:
+         rn_bt_cmax   =  0.8        ! =T : the Maximum Courant Number allowed
+         nn_baro      = 30          ! =F : the number of sub-step in rn_rdt seconds
+      rn_bt_alpha   = 0.         ! Temporal diffusion parameter (if ln_bt_av=F)/
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum                        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynldf_lap =  .true.     !    laplacian operator
+   ln_dynldf_lev =  .true.     !  iso-level
+   nn_ahm_ijk_t  = -30           !  space/time variation of eddy coefficient :
+      !                             !  =-30  read in eddy_viscosity_3D.nc file
+/
+!!======================================================================
+!!                     vertical physics namelists                     !!
+!!                                                                    !!
+!!    namzdf        vertical physics manager                            (default: NO selection)
+!!    namzdf_ric    richardson number vertical mixing                   (ln_zdfric=T)
+!!    namzdf_tke    TKE vertical mixing                                 (ln_zdftke=T)
+!!    namzdf_gls    GLS vertical mixing                                 (ln_zdfgls=T)
+!!    namzdf_osm    OSM vertical diffusion                              (ln_zdfosm=T)
+!!    namzdf_iwm    tidal mixing parameterization                       (ln_zdfiwm=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namzdf        !   vertical physics manager                             (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_zad_Aimp = .true.     !  Courant number dependent scheme (Shchepetkin 2015)
+   ln_zdftke   = .true.       !  Turbulent Kinetic Energy closure       (T =>   fill namzdf_tke)
+   ln_zdfevd   = .true.       !  Enhanced Vertical Diffusion scheme
+      nn_evdm  =    0            !  evd apply on tracer (=0) or on tracer and momentum (=1)
+      rn_evd   =  100.           !  evd mixing coefficient [m2/s]
+   ln_zdfddm   = .true.    ! double diffusive mixing
+      rn_avts  =    1.e-4     !  maximum avs (vertical mixing on salinity)
+      rn_hsbfr =    1.6       !  heat/salt buoyancy flux ratio
+   ln_zdfiwm   = .true.       ! internal wave-induced mixing            (T =>   fill namzdf_iwm)
+   !                       !  Coefficients
+   rn_avm0     =   1.2e-4     !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst=F)
+   rn_avt0     =   1.2e-5     !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst=F)
+   nn_avb      =    0         !  profile for background avt & avm (=1) or not (=0)
+   nn_havtb    =    0         !  horizontal shape for avtb (=1) or not (=0)
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  (ln_zdftke =T)
+!-----------------------------------------------------------------------
+      nn_mxl      =   3       !  mixing length: = 0 bounded by the distance to surface and bottom
+      !                       !                 = 1 bounded by the local vertical scale factor
+      !                       !                 = 2 first vertical derivative of mixing length bounded by 1
+      !                       !                 = 3 as =2 with distinct dissipative an mixing length scale
+      ln_mxl0     = .true.      !  surface mixing length scale = F(wind stress) (T) or not (F)
+      nn_mxlice   = 2         ! type of scaling under sea-ice
+      nn_etau     =   1       !  penetration of tke below the mixed layer (ML) due to NIWs
+                               !        = 0 none ; = 1 add a tke source below the ML
+                               !        = 2 add a tke source just at the base of the ML
+                               !        = 3 as = 1 applied on HF part of the stress           (ln_cpl=T)
+!      rn_eice     =   2       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4   
+      ln_lc      = .true.     !  Langmuir cell parameterisation (Axell 2002)
+      rn_lc      =  0.20      !  coef. associated to Langmuir cells
+/
+!-----------------------------------------------------------------------
+&namzdf_iwm    !    internal wave-driven mixing parameterization        (ln_zdfiwm =T)
+!-----------------------------------------------------------------------
+   nn_zpyc     = 2         !  pycnocline-intensified dissipation scales as N (=1) or N^2 (=2)
+   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency
+   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F)
+/
+!!======================================================================
+!!                  ***  Diagnostics namelists  ***                   !!
+!!                                                                    !!
+!!   namtrd       dynamics and/or tracer trends                         (default: OFF)
+!!   namptr       Poleward Transport Diagnostics                        (default: OFF)
+!!   namhsb       Heat and salt budgets                                 (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namflo       float parameters                                      (default: OFF)
+!!   nam_diaharm  Harmonic analysis of tidal constituents               (default: OFF)
+!!   nam_diadct   transports through some sections                      (default: OFF)
+!!   nam_diatmb   Top Middle Bottom Output                              (default: OFF)
+!!   nam_dia25h   25h Mean Output                                       (default: OFF)
+!!   namnc4       netcdf4 chunking and compression settings             ("key_netcdf4")
+!!======================================================================
+!-----------------------------------------------------------------------
+&namtrd        !   trend diagnostics                                    (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tra_trd  = .true.   ! (T) 3D tracer trend output
+/
+!
+!!======================================================================
+!!               ***  Observation & Assimilation  ***                 !!
+!!                                                                    !!
+!!   namobs       observation and model comparison                      (default: OFF)
+!!   nam_asminc   assimilation increments                               ('key_asminc')
+!!======================================================================
+!
+!!======================================================================
+!!                  ***  Miscellaneous namelists  ***                 !!
+!!                                                                    !!
+!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi")
+!!   namctl            Control prints                                   (default: OFF)
+!!   namsto            Stochastic parametrization of EOS                (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints                                       (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsto        ! Stochastic parametrization of EOS                      (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namptr        !   Poleward Transport Diagnostic                        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diaptr   = .true.   !  Poleward heat and salt transport (T) or not (F)
+   ln_subbas   = .true.   !  Atlantic/Pacific/Indian basins computation (T) or not
+/
+!-----------------------------------------------------------------------
+&namhsb        !  Heat and salt budgets                                 (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diahsb   = .true.   !  output the heat and salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA2_cfg.old
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA2_cfg.old	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ORCA2_cfg.old	(revision 5899)
@@ -0,0 +1,511 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/OCE  Configuration namelist : overwrite default values defined in SHARED/namelist_ref
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!!             ORCA2 - ICE - PISCES configuration                     !!
+!!======================================================================
+!!              ***  Domain & Run management namelists  ***           !!
+!!                                                                    !!
+!!   namrun       parameters of the run
+!!   namdom       space and time domain
+!!   namcfg       parameters of the configuration                       (default: user defined GYRE)
+!!   namwad       Wetting and drying                                    (default: OFF)
+!!   namtsd       data: temperature & salinity                          (default: OFF)
+!!   namcrs       coarsened grid (for outputs and/or TOP)               (ln_crs =T)
+!!   namc1d       1D configuration options                              ("key_c1d")
+!!   namc1d_dyndmp 1D newtonian damping applied on currents             ("key_c1d")
+!!   namc1d_uvd   1D data (currents)                                    ("key_c1d")
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namrun        !   parameters of the run
+!-----------------------------------------------------------------------
+   cn_exp      = _AUTOBLOCKER_    !  Experience name
+   nn_it000    = _AUTOBLOCKER_    !  First time step
+   nn_itend    = _AUTOBLOCKER_    !  Last  time step
+   nn_date0    = _AUTOBLOCKER_    !  Date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)
+   nn_leapy    = _AUTOBLOCKER_    !  Leap year calendar (1) or not (0)
+   ln_rstart   = _AUTOBLOCKER_    !  start from rest (F) or from a restart file (T)
+   nn_rstctl   = _AUTOBLOCKER_    !  Restart control => activated only if ln_rstart = T
+                           !    = 0 nn_date0 read in namelist ; nn_it000 : read in namelist
+                           !    = 1 nn_date0 read in namelist ; nn_it000 : check consistancy between namelist and restart
+                           !    = 2 nn_date0 read in restart  ; nn_it000 : check consistancy between namelist and restart
+   cn_ocerst_in  = "restartopa"   !  Suffix of ocean restart name (input)
+   cn_ocerst_indir = "."       !  directory from which to read input ocean restarts
+   cn_ocerst_out = "restart"      !  Suffix of ocean restart name (output)
+   cn_ocerst_outdir = "."      !  directory in which to write output ocean restarts
+   nn_istate   =       0   !  Output the initial state (1) or not (0)
+   nn_stock    =  _AUTOBLOCKER_   !  Frequency of creation of a restart file (modulo referenced to 1)
+   nn_write    =    5840   !  Requency of write in the output file   (modulo referenced to nn_it000)
+   ln_mskland  = .true.    !  Masks land points in NetCDF outputs
+   ln_mskutil  = .true.    !  Outputs without halos
+   ln_cfmeta   = .true.    !  output additional data to netCDF files required for compliance with the CF metadata standard
+/
+!-----------------------------------------------------------------------
+&namdom        !   time and space domain
+!-----------------------------------------------------------------------
+   rn_rdt      = 5400.     !  time step for the dynamics and tracer
+   ln_meshmask =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&namcfg        !   parameters of the configuration                      (default: use namusr_def in namelist_cfg)
+!-----------------------------------------------------------------------
+   ln_read_cfg = .true.    !  (=T) read the domain configuration file
+      cn_domcfg = "domain_cfg.nc"    ! domain configuration filename
+      !
+      ln_closea    = .false.    !  F => suppress closed seas (defined by closea_mask field) 
+      !                         !       from the bathymetry at runtime.
+/
+!-----------------------------------------------------------------------
+&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
+!-----------------------------------------------------------------------
+   !                       ! =T  read T-S fields for:
+   ln_tsd_init = .true.         !  ocean initialisation
+   ln_tsd_dmp  = .false.          !  T-S restoring   (see namtra_dmp)
+
+   cn_dir = './'     !  root directory for the T-S data location
+   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_tem = 'data_1m_potential_temperature_nomask',     -1.     ,'votemper',   .true.    , .true. , 'yearly'  ,    ''    ,    ''    ,    ''
+   sn_sal = 'data_1m_salinity_nomask'             ,     -1.     ,'vosaline',   .true.    , .true. , 'yearly'  ,    ''    ,    ''    ,    ''
+/
+!!======================================================================
+!!            ***  Surface Boundary Condition namelists  ***          !!
+!!                                                                    !!
+!!   namsbc          surface boundary condition manager                 (default: NO selection)
+!!   namsbc_flx      flux               formulation                     (ln_flx     =T)
+!!   namsbc_blk      Bulk formulae formulation                          (ln_blk     =T)
+!!   namsbc_cpl      CouPLed            formulation                     ("key_oasis3" )
+!!   namsbc_sas      Stand-Alone Surface module                         (SAS_SRC  only)
+!!   namsbc_iif      Ice-IF: use observed ice cover                     (nn_ice = 1   )
+!!   namtra_qsr      penetrative solar radiation                        (ln_traqsr  =T)
+!!   namsbc_ssr      sea surface restoring term (for T and/or S)        (ln_ssr     =T)
+!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T)
+!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T)
+!!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr )
+!!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T)
+!!   namsbc_wave     external fields from wave model                    (ln_wave    =T)
+!!   namberg         iceberg floats                                     (ln_icebergs=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namsbc        !   Surface Boundary Condition manager                   (default: NO selection)
+!-----------------------------------------------------------------------
+   nn_fsbc     = 4         !  frequency of SBC module call
+                           !     (also = the frequency of sea-ice & iceberg model call)
+                     ! Type of air-sea fluxes 
+   ln_cpl      = .true.    !  atmosphere coupled   formulation          ( requires key_oasis3 )
+                     ! Sea-ice :
+   nn_ice      = 2         !  =2 or 3 automatically for SI3 or CICE    ("key_si3" or "key_cice")
+                     ! Misc. options of sbc : 
+   ln_traqsr   = .true.   !  Light penetration in the ocean            (T => fill namtra_qsr)
+   ln_isf      = .true.   !  ice shelf                                 (T   => fill namsbc_isf & namsbc_iscpl)
+/
+!-----------------------------------------------------------------------
+&namsbc_blk    !   namsbc_blk  generic Bulk formula                     (ln_blk =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3")
+!-----------------------------------------------------------------------
+   nn_cplmodel   =     1   !  Maximum number of models to/from which NEMO is potentially sending/receiving data
+   ln_usecplmask = .false. !  use a coupling mask file to merge data received from several models
+   !                       !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
+   nn_cats_cpl   =     1   !  Number of sea ice categories over which coupling is to be carried out (if not 1)
+   !_____________!__________________________!____________!_____________!______________________!________!
+   !             !        description       !  multiple  !    vector   !       vector         ! vector !
+   !             !                          ! categories !  reference  !     orientation      ! grids  !
+!***   send    ***
+   sn_snd_temp   =   'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_alb    =   'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''
+!   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'
+   sn_snd_crt    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'T'
+   sn_snd_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_thick  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_crtw   =   'none'                 ,    'no'    ,     ''      ,         ''           , 'U,V'
+   sn_snd_ifrac  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_wlev   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_cond   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_thick1 =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_mpnd   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_sstfrz =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_snd_ttilyr =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+!***  receive  ***
+   sn_rcv_w10m   =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_taumod =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tau    =   'mixed oce-ice'        ,    'no'    , 'cartesian' , 'eastward-northward' ,  'U,V'
+   sn_rcv_dqnsdt =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qsr    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_qns    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_emp    =   'conservative'         ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_rnf    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_cal    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_co2    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_isf    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_icb    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_hsig   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_iceflx =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_mslp   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_phioc  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_sdrfx  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_sdrfy  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wper   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wnum   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wfreq  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_ts_ice =   'none'                 ,    'no'    ,     ''      ,         ''           ,   ''
+   sn_rcv_tauwoc =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+   sn_rcv_tauw   =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+   sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''          ,   ''
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T)
+!-----------------------------------------------------------------------
+   !                       ! type of penetration                        (default: NO selection)
+   sn_chl      ='merged_ESACCI_BIOMER4V1R1_CHL_REG05',  -1  , 'CHLA' , .true. , .true. , 'yearly' , 'weights_reg05_2_eorca1_bilinear.nc' , '' , ''
+   ln_qsr_rgb  = .false.    !  RGB (Red-Green-Blue) light penetration
+   ln_qsr_2bd  = .false.   !  2 bands              light penetration
+   ln_qsr_bio  = .true.   !  bio-model light penetration
+   nn_chldta   =    1       !  RGB : Chl data (=1) or cst value (=0)
+   !
+/
+!-----------------------------------------------------------------------
+&namsbc_ssr    !   surface boundary condition : sea surface restoring   (ln_ssr =T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsbc_rnf    !   runoffs                                              (ln_rnf =T)
+!-----------------------------------------------------------------------
+   ln_rnf_mouth = .false.   !  specific treatment at rivers mouths
+      rn_hrnf     =  15.e0    !  depth over which enhanced vertical mixing is used    (ln_rnf_mouth=T)
+      rn_avt_rnf  =   1.e-3   !  value of the additional vertical mixing coef. [m2/s] (ln_rnf_mouth=T)
+   rn_rfact    =   1.e0    !  multiplicative factor for runoff
+   ln_rnf_depth = .true.   !  read in depth information for runoff
+   ln_rnf_tem  = .false.   !  read in temperature information for runoff
+   ln_rnf_sal  = .false.   !  read in salinity information for runoff
+   ln_rnf_depth_ini = .false. ! compute depth at initialisation from runoff file
+      rn_rnf_max  = 0.05        !  max value of the runoff climatologie over global domain ( ln_rnf_depth_ini = .true )
+      rn_dep_max  = 150.        !  depth over which runoffs is spread ( ln_rnf_depth_ini = .true )
+      nn_rnf_depth_file = _AUTO_   !  create (=1) a runoff depth file or not (=0)
+
+   cn_dir = './'  !  root directory for the location of the runoff files
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnf      = 'runoff_core_monthly.nc',        -1         , 'sorunoff' ,   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_cnf      = 'runoff_core_monthly.nc',         0         , 'socoeff'  ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+   sn_s_rnf    = 'runoffs'            ,        24         , 'rosaline',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_t_rnf    = 'runoffs'            ,        24         , 'rotemper',   .true.     , .true. , 'yearly'  , ''       , ''       , ''
+   sn_dep_rnf  = 'runoffs_depths.nc'  ,         0         , 'rodepth' ,   .false.    , .true. , 'yearly'  , ''       , ''       , ''
+/
+!-----------------------------------------------------------------------
+&namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)
+!-----------------------------------------------------------------------             or set or usr_def_zgr )
+   !                 ! type of top boundary layer
+   nn_isf      = 3         !  ice shelf melting/freezing
+                           !  3 = rnf file for ISF  
+   !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________!
+   !           !  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_rnfisf     = 'runoff_core_monthly.nc' ,   -12      ,'sornfisf',    .false.      , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmax_isf = 'runoff_core_monthly.nc' ,   -12      ,'sodepmax_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+   sn_depmin_isf = 'runoff_core_monthly.nc' ,   -12      ,'sodepmin_isf' ,   .false.  , .true.  , 'yearly'  ,  ''      ,   ''
+/
+!-----------------------------------------------------------------------
+&namsbc_wave   ! External fields from wave model                        (ln_wave=T)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namberg       !   iceberg parameters                                   (default: OFF)
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!               ***  Lateral boundary condition  ***                 !!
+!!                                                                    !!
+!!   namlbc        lateral momentum boundary condition                  (default: NO selection)
+!!   namagrif      agrif nested grid   (read by child model only)       ("key_agrif")
+!!   nam_tide      Tidal forcing                                        (default: OFF)
+!!   nambdy        Unstructured open boundaries                         (default: OFF)
+!!   nambdy_dta    Unstructured open boundaries - external data         (see  nambdy)
+!!   nambdy_tide   tidal forcing at open boundaries                     (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namlbc        !   lateral momentum boundary condition                  (default: NO selection)
+!-----------------------------------------------------------------------
+   rn_shlat    =    0.     !  no slip
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+/
+!!======================================================================
+!!                ***  Top/Bottom boundary condition  ***             !!
+!!                                                                    !!
+!!   namdrg        top/bottom drag coefficient                          (default: NO selection)
+!!   namdrg_top    top    friction                                      (ln_OFF=F & ln_isfcav=T)
+!!   namdrg_bot    bottom friction                                      (ln_OFF=F)
+!!   nambbc        bottom temperature boundary condition                (default: OFF)
+!!   nambbl        bottom boundary layer scheme                         (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdrg        !   top/bottom drag coefficient                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_lin  = .true.   !  linear  drag: Cd = Cd0 Uc0
+   ln_loglayer = .false.   !  logarithmic drag: Cd = vkarmn/log(z/z0) |U|
+   !
+   ln_drgimp   = .true.    !  implicit top/bottom friction flag
+/
+!-----------------------------------------------------------------------
+&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F)
+!-----------------------------------------------------------------------
+   rn_Cd0      =  1.e-3    !  drag coefficient [-]
+   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag)
+   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases)
+   rn_z0       =  3.e-3    !  roughness [m] (ln_loglayer=T)
+   ln_boost    = .false.   !  =T regional boost of Cd0 ; =F constant
+      rn_boost =  50.         !  local boost factor  [-]
+/
+!-----------------------------------------------------------------------
+&nambbc        !   bottom temperature boundary condition                (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom
+      nn_geoflx   =    2      !  geothermal heat flux: = 2 read variable flux [mW/m2]
+
+   cn_dir = './'  !  root directory for the geothermal data location
+   !___________!____________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !           !  file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !           !                    !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_qgh      ='geothermal_heating.nc'  ,       -12.        , 'heatflow',   .false.   , .true. , 'yearly'  ,   ''             ,   ''     ,   ''
+/
+!-----------------------------------------------------------------------
+&nambbl        !   bottom boundary layer scheme                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_trabbl   = .true.    !  Bottom Boundary Layer parameterisation flag
+      nn_bbl_ldf  =  1        !  diffusive bbl (=1)   or not (=0)
+      nn_bbl_adv  =  0        !  advective bbl (=1/2) or not (=0)
+      rn_ahtbbl   =  1000.    !  lateral mixing coefficient in the bbl  [m2/s]
+      rn_gambbl   =  10.      !  advective bbl coefficient                 [s]
+/
+!!======================================================================
+!!                        Tracer (T-S) namelists                      !!
+!!                                                                    !!
+!!   nameos        equation of state                                    (default: NO selection)
+!!   namtra_adv    advection scheme                                     (default: NO selection)
+!!   namtra_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namtra_mle    mixed layer eddy param. (Fox-Kemper param.)          (default: OFF)
+!!   namtra_eiv    eddy induced velocity param.                         (default: OFF)
+!!   namtra_dmp    T & S newtonian damping                              (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nameos        !   ocean Equation Of Seawater                           (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_teos10   = .true.         !  = Use TEOS-10
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traadv_fct = .true.     !  FCT scheme
+      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
+      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
+/
+!-----------------------------------------------------------------------
+&namtra_ldf    !   lateral diffusion scheme for tracers                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_traldf_lap   = .true.    !    laplacian operator
+   ln_traldf_iso   = .true.    !  iso-neutral (Standard operator)
+   ln_traldf_msc   = .true.    !  Method of Stabilizing Correction      (both operators)
+   !                       !  Coefficients:
+   nn_aht_ijk_t    = 20        !  space/time variation of eddy coef
+      !                             !   = 20     aht = 1/2  Ud. max(e1,e2)
+      rn_Ud        = 0.018          !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Ld        = 100.e+3        !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+/
+!-----------------------------------------------------------------------
+&namtra_mle    !   mixed layer eddy parametrisation (Fox-Kemper)        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_mle      = .true.   ! (T) use the Mixed Layer Eddy (MLE) parameterisation
+/
+!-----------------------------------------------------------------------
+&namtra_eiv    !   eddy induced velocity param.                         (default: OFF)
+!-----------------------------------------------------------------------
+   ln_ldfeiv   = .true.    ! use eddy induced velocity parameterization
+      !                        !  Coefficients:
+      nn_aei_ijk_t  = 21          ! space/time variation of the eiv coeficient
+      !                                !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation
+      !                           !  time invariant coefficients:  aei0 = 1/2  Ue*Le 
+      rn_Ue        = 0.018             !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30)
+      rn_Le        = 100.e+3           !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10)
+      !
+      ln_ldfeiv_dia =.true.   ! diagnose eiv stream function and velocities
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping                      (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tradmp   =  .false.   !  add a damping term (using resto.nc coef.)
+      nn_zdmp  =    0         !  vertical shape =0    damping throughout the water column
+/
+!!======================================================================
+!!                      ***  Dynamics namelists  ***                  !!
+!!                                                                    !!
+!!   nam_vvl       vertical coordinate options                          (default: z-star)
+!!   namdyn_adv    formulation of the momentum advection                (default: NO selection)
+!!   namdyn_vor    advection scheme                                     (default: NO selection)
+!!   namdyn_hpg    hydrostatic pressure gradient                        (default: NO selection)
+!!   namdyn_spg    surface pressure gradient                            (default: NO selection)
+!!   namdyn_ldf    lateral diffusion scheme                             (default: NO selection)
+!!   namdta_dyn    offline TOP: dynamics read in files                  (OFF_SRC only)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynadv_vec = .true.  !  vector form - 2nd centered scheme
+     nn_dynkeg     = 1        ! grad(KE) scheme: =0   C2  ;  =1   Hollingsworth correction
+/
+!-----------------------------------------------------------------------
+&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynvor_een = .true.  !  energy & enstrophy scheme
+      nn_een_e3f = 0          ! =0   e3f = mean masked e3t divided by 4
+/
+!-----------------------------------------------------------------------
+&namdyn_hpg    !   Hydrostatic pressure gradient option                 (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_hpg_sco  = .true.   !  s-coordinate (standard jacobian formulation)
+/
+!-----------------------------------------------------------------------
+&namdyn_spg    !   surface pressure gradient                            (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynspg_exp  = .false.   ! explicit free surface
+   ln_dynspg_ts   = .true.   ! split-explicit free surface
+      ln_bt_fw      = .false.     ! Forward integration of barotropic Eqs.
+      ln_bt_av      = .true.     ! Time filtering of barotropic variables
+         nn_bt_flt     = 1          ! Time filter choice  = 0 None
+         !                          !                     = 1 Boxcar over   nn_baro sub-steps
+         !                          !                     = 2 Boxcar over 2*nn_baro  "    "
+      ln_bt_auto    = .true.     ! Number of sub-step defined from:
+         rn_bt_cmax   =  0.8        ! =T : the Maximum Courant Number allowed
+         nn_baro      = 30          ! =F : the number of sub-step in rn_rdt seconds
+      rn_bt_alpha   = 0.         ! Temporal diffusion parameter (if ln_bt_av=F)/
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum                        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_dynldf_lap =  .true.     !    laplacian operator
+   ln_dynldf_lev =  .true.     !  iso-level
+   nn_ahm_ijk_t  = -30           !  space/time variation of eddy coefficient :
+      !                             !  =-30  read in eddy_viscosity_3D.nc file
+/
+!!======================================================================
+!!                     vertical physics namelists                     !!
+!!                                                                    !!
+!!    namzdf        vertical physics manager                            (default: NO selection)
+!!    namzdf_ric    richardson number vertical mixing                   (ln_zdfric=T)
+!!    namzdf_tke    TKE vertical mixing                                 (ln_zdftke=T)
+!!    namzdf_gls    GLS vertical mixing                                 (ln_zdfgls=T)
+!!    namzdf_osm    OSM vertical diffusion                              (ln_zdfosm=T)
+!!    namzdf_iwm    tidal mixing parameterization                       (ln_zdfiwm=T)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&namzdf        !   vertical physics manager                             (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_zdftke   = .true.       !  Turbulent Kinetic Energy closure       (T =>   fill namzdf_tke)
+   ln_zdfevd   = .true.       !  Enhanced Vertical Diffusion scheme
+      nn_evdm  =    0            !  evd apply on tracer (=0) or on tracer and momentum (=1)
+      rn_evd   =  100.           !  evd mixing coefficient [m2/s]
+   ln_zdfddm   = .true.    ! double diffusive mixing
+      rn_avts  =    1.e-4     !  maximum avs (vertical mixing on salinity)
+      rn_hsbfr =    1.6       !  heat/salt buoyancy flux ratio
+   ln_zdfiwm   = .true.       ! internal wave-induced mixing            (T =>   fill namzdf_iwm)
+   !                       !  Coefficients
+   rn_avm0     =   1.2e-4     !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst=F)
+   rn_avt0     =   1.2e-5     !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst=F)
+   nn_avb      =    0         !  profile for background avt & avm (=1) or not (=0)
+   nn_havtb    =    0         !  horizontal shape for avtb (=1) or not (=0)
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  (ln_zdftke =T)
+!-----------------------------------------------------------------------
+      nn_mxl      =   2       !  mixing length: = 0 bounded by the distance to surface and bottom
+      !                       !                 = 1 bounded by the local vertical scale factor
+      !                       !                 = 2 first vertical derivative of mixing length bounded by 1
+      !                       !                 = 3 as =2 with distinct dissipative an mixing length scale
+      ln_mxl0     = .true.      !  surface mixing length scale = F(wind stress) (T) or not (F)
+      nn_mxlice   = 2         ! type of scaling under sea-ice
+      nn_etau     =   0       !  penetration of tke below the mixed layer (ML) due to NIWs
+                               !        = 0 none ; = 1 add a tke source below the ML
+                               !        = 2 add a tke source just at the base of the ML
+                               !        = 3 as = 1 applied on HF part of the stress           (ln_cpl=T)
+!      rn_eice     =   2       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4   
+      ln_lc      = .true.     !  Langmuir cell parameterisation (Axell 2002)
+      rn_lc      =  0.20      !  coef. associated to Langmuir cells
+/
+!-----------------------------------------------------------------------
+&namzdf_iwm    !    internal wave-driven mixing parameterization        (ln_zdfiwm =T)
+!-----------------------------------------------------------------------
+   nn_zpyc     = 2         !  pycnocline-intensified dissipation scales as N (=1) or N^2 (=2)
+   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency
+   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F)
+/
+!!======================================================================
+!!                  ***  Diagnostics namelists  ***                   !!
+!!                                                                    !!
+!!   namtrd       dynamics and/or tracer trends                         (default: OFF)
+!!   namptr       Poleward Transport Diagnostics                        (default: OFF)
+!!   namhsb       Heat and salt budgets                                 (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namdiu       Cool skin and warm layer models                       (default: OFF)
+!!   namflo       float parameters                                      (default: OFF)
+!!   nam_diaharm  Harmonic analysis of tidal constituents               (default: OFF)
+!!   nam_diadct   transports through some sections                      (default: OFF)
+!!   nam_diatmb   Top Middle Bottom Output                              (default: OFF)
+!!   nam_dia25h   25h Mean Output                                       (default: OFF)
+!!   namnc4       netcdf4 chunking and compression settings             ("key_netcdf4")
+!!======================================================================
+!-----------------------------------------------------------------------
+&namtrd        !   trend diagnostics                                    (default: OFF)
+!-----------------------------------------------------------------------
+   ln_tra_trd  = .true.   ! (T) 3D tracer trend output
+/
+!
+!!======================================================================
+!!               ***  Observation & Assimilation  ***                 !!
+!!                                                                    !!
+!!   namobs       observation and model comparison                      (default: OFF)
+!!   nam_asminc   assimilation increments                               ('key_asminc')
+!!======================================================================
+!
+!!======================================================================
+!!                  ***  Miscellaneous namelists  ***                 !!
+!!                                                                    !!
+!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi")
+!!   namctl            Control prints                                   (default: OFF)
+!!   namsto            Stochastic parametrization of EOS                (default: OFF)
+!!======================================================================
+!
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints                                       (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namsto        ! Stochastic parametrization of EOS                      (default: OFF)
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namptr        !   Poleward Transport Diagnostic                        (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diaptr   = .true.   !  Poleward heat and salt transport (T) or not (F)
+   ln_subbas   = .true.   !  Atlantic/Pacific/Indian basins computation (T) or not
+/
+!-----------------------------------------------------------------------
+&namhsb        !  Heat and salt budgets                                 (default: OFF)
+!-----------------------------------------------------------------------
+   ln_diahsb   = .true.   !  output the heat and salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA025_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA025_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA025_cfg	(revision 5899)
@@ -0,0 +1,91 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! SI3 configuration namelist: Overwrites SHARED/namelist_ice_ref
+!!              1 - Generic parameters                 (nampar)
+!!              2 - Ice thickness discretization       (namitd)
+!!              3 - Ice dynamics                       (namdyn)
+!!              4 - Ice ridging/rafting                (namdyn_rdgrft)
+!!              5 - Ice rheology                       (namdyn_rhg)
+!!              6 - Ice advection                      (namdyn_adv)
+!!              7 - Ice surface boundary conditions    (namsbc)
+!!              8 - Ice thermodynamics                 (namthd)
+!!              9 - Ice heat diffusion                 (namthd_zdf)
+!!             10 - Ice lateral melting                (namthd_da)
+!!             11 - Ice growth in open water           (namthd_do)
+!!             12 - Ice salinity                       (namthd_sal)
+!!             13 - Ice melt ponds                     (namthd_pnd)
+!!             14 - Ice initialization                 (namini)
+!!             15 - Ice/snow albedos                   (namalb)
+!!             16 - Ice diagnostics                    (namdia)
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!------------------------------------------------------------------------------
+&nampar         !   Generic parameters
+!------------------------------------------------------------------------------
+   cn_icerst_in     = "restart_ice_in"   !  suffix of ice restart name (input)
+   rn_amax_n        =   0.997         !  maximum tolerated ice concentration NH
+   rn_amax_s        =   0.950         !  maximum tolerated ice concentration SH
+/
+!------------------------------------------------------------------------------
+&namitd         !   Ice discretization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn         !   Ice dynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rdgrft  !   Ice ridging/rafting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rhg     !   Ice rheology
+!------------------------------------------------------------------------------
+      ln_aEVP       = .false.          !     adaptive rheology (Kimmritz et al. 2016 & 2017)
+/
+!------------------------------------------------------------------------------
+&namdyn_adv     !   Ice advection
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namsbc         !   Ice surface boundary conditions
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd         !   Ice thermodynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_zdf     !   Ice heat diffusion
+!------------------------------------------------------------------------------
+   rn_cnd_s         =   0.30          !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971)
+                                      !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013)
+/
+!------------------------------------------------------------------------------
+&namthd_da      !   Ice lateral melting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_do      !   Ice growth in open water
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_sal     !   Ice salinity
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_pnd     !   Melt ponds
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namini         !   Ice initialization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namalb         !   albedo parameters
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdia         !   Diagnostics
+!------------------------------------------------------------------------------
+   ln_icediahsb     = .true.         !  output the heat, mass & salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA1_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA1_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA1_cfg	(revision 5899)
@@ -0,0 +1,166 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! SI3 configuration namelist: Overwrites SHARED/namelist_ice_ref
+!!              1 - Generic parameters                 (nampar)
+!!              2 - Ice thickness discretization       (namitd)
+!!              3 - Ice dynamics                       (namdyn)
+!!              4 - Ice ridging/rafting                (namdyn_rdgrft)
+!!              5 - Ice rheology                       (namdyn_rhg)
+!!              6 - Ice advection                      (namdyn_adv)
+!!              7 - Ice surface boundary conditions    (namsbc)
+!!              8 - Ice thermodynamics                 (namthd)
+!!              9 - Ice heat diffusion                 (namthd_zdf)
+!!             10 - Ice lateral melting                (namthd_da)
+!!             11 - Ice growth in open water           (namthd_do)
+!!             12 - Ice salinity                       (namthd_sal)
+!!             13 - Ice melt ponds                     (namthd_pnd)
+!!             14 - Ice initialization                 (namini)
+!!             15 - Ice/snow albedos                   (namalb)
+!!             16 - Ice diagnostics                    (namdia)
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!------------------------------------------------------------------------------
+&nampar         !   Generic parameters
+!------------------------------------------------------------------------------
+   cn_icerst_in     = "restart_ice_in"   !  suffix of ice restart name (input)
+   rn_amax_n        =   0.997         !  maximum tolerated ice concentration NH
+   rn_amax_s        =   0.997         !  maximum tolerated ice concentration SH
+/
+!------------------------------------------------------------------------------
+&namitd         !   Ice discretization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn         !   Ice dynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rdgrft  !   Ice ridging/rafting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rhg     !   Ice rheology
+!------------------------------------------------------------------------------
+   ln_rhg_EVP       = .true.          !  EVP rheology
+      ln_aEVP       = .false.         !     adaptive rheology (Kimmritz et al. 2016 & 2017)
+      rn_creepl     =   2.0e-9        !     creep limit [1/s]
+      rn_ecc        =   2.0           !     eccentricity of the elliptical yield curve
+      nn_nevp       =  120            !     number of EVP subcycles
+      rn_relast     =   0.333         !     ratio of elastic timescale to ice time step: Telast = dt_ice * rn_relast
+                                      !        advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300)
+   ln_rhg_chkcvg    = .false.         !  check convergence of rheology (outputs: file ice_cvg.nc & variable uice_cvg)
+/
+!------------------------------------------------------------------------------
+&namdyn_adv     !   Ice advection
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namsbc         !   Ice surface boundary conditions
+!------------------------------------------------------------------------------
+   rn_cio           =   5.0e-03       !  ice-ocean drag coefficient (-)
+   nn_snwfra        =   2             !  calculate the fraction of ice covered by snow (for zdf and albedo)
+                                      !     = 2  fraction = hsnw / (hsnw+0.02)    [CICE formulation]
+   rn_snwblow       =   0.66          !  mesure of snow blowing into the leads
+                                      !     = 1 => no snow blowing, < 1 => some snow blowing
+   nn_flxdist       =  2             !  Redistribute heat flux over ice categories
+                                      !     = 2  Redistribute a single flux over categories
+   ln_cndflx        = .false.         !  Use conduction flux as surface boundary conditions (i.e. for Jules coupling)
+      ln_cndemulate = .false.         !     emulate conduction flux (if not provided in the inputs)
+   nn_qtrice        =  1              !  Solar flux transmitted thru the surface scattering layer:
+                                      !     = 1  Lebrun 2019 (equals 0.3 anytime with different melting/dry snw conductivities)
+/
+!------------------------------------------------------------------------------
+&namthd         !   Ice thermodynamics
+!------------------------------------------------------------------------------
+   ln_icedH         = .true.          !  activate ice thickness change from growing/melting (T) or not (F)
+   ln_icedA         = .true.          !  activate lateral melting param. (T) or not (F)
+   ln_icedO         = .true.          !  activate ice growth in open-water (T) or not (F)
+   ln_icedS         = .true.          !  activate brine drainage (T) or not (F)
+   !
+   ln_leadhfx       = .false.          !  heat in the leads is used to melt sea-ice before warming the ocean
+/
+!------------------------------------------------------------------------------
+&namthd_zdf     !   Ice heat diffusion
+!------------------------------------------------------------------------------
+   rn_cnd_s         =   0.50          !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971)
+                                      !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013)
+/
+!------------------------------------------------------------------------------
+&namthd_da      !   Ice lateral melting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_do      !   Ice growth in open water
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_sal     !   Ice salinity
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_pnd     !   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
+         rn_apnd     =   0.2          !     prescribed pond fraction, at Tsu=0 degC
+         rn_hpnd     =   0.05         !     prescribed pond depth,    at Tsu=0 degC
+      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
+/
+!------------------------------------------------------------------------------
+&namini         !   Ice initialization
+!------------------------------------------------------------------------------
+   nn_iceini_file   = _AUTO_        !  netcdf file provided for initialization
+   !
+   rn_thres_sst     =   0.5           !  max temp. above Tfreeze with initial ice = (sst - tfreeze)
+   rn_hti_ini_n     =   1.0           !  initial ice thickness       (m), North
+   rn_hti_ini_s     =   1.0           !        "            "             South
+   rn_hts_ini_n     =   0.3           !  initial snow thickness      (m), North
+   rn_hts_ini_s     =   0.3           !        "            "             South
+   rn_ati_ini_n     =   0.9           !  initial ice concentration   (-), North
+   rn_ati_ini_s     =   0.9           !        "            "             South
+   rn_smi_ini_n     =   6.3           !  initial ice salinity     (g/kg), North
+   rn_smi_ini_s     =   6.3           !        "            "             South
+   rn_tmi_ini_n     = 270.            !  initial ice temperature     (K), North
+   rn_tmi_ini_s     = 270.            !        "            "             South
+   rn_tsu_ini_n     = 270.            !  initial surface temperature (K), North
+   rn_tsu_ini_s     = 270.            !        "            "             South
+   rn_tms_ini_n     = 270.            !  initial snw temperature     (K), North
+   rn_tms_ini_s     = 270.            !        "            "             South
+   rn_apd_ini_n     =   0.2           !  initial pond fraction       (-), North
+   rn_apd_ini_s     =   0.2           !        "            "             South
+   rn_hpd_ini_n     =   0.05          !  initial pond depth          (m), North
+   rn_hpd_ini_s     =   0.05          !        "            "             South
+   rn_hld_ini_n     =   0.0           !  initial pond lid depth      (m), North
+   rn_hld_ini_s     =   0.0           !        "            "             South
+   !______!______________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !      !    file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !      !                      !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_hti = 'Ice_initialization' ,         -12       ,'sithic'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_hts = 'Ice_initialization' ,         -12       ,'snthic'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_ati = 'Ice_initialization' ,         -12       ,'siconc'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_smi = 'Ice_initialization' ,         -12       ,'sisali'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tmi = 'Ice_initialization' ,         -12       ,'sitemp'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tsu = 'Ice_initialization' ,         -12       ,'sistem'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tms = 'NOT USED'           ,         -12       ,'tms'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   !      melt ponds (be careful, sn_apd is the pond concentration (not fraction), so it differs from rn_apd)
+   sn_apd = 'NOT USED'           ,         -12       ,'apd'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_hpd = 'NOT USED'           ,         -12       ,'hpd'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   cn_dir='./'
+/
+!------------------------------------------------------------------------------
+&namalb         !   albedo parameters
+!------------------------------------------------------------------------------
+   rn_alb_sdry      =   0.87          !  dry snow albedo         :  0.85 -- 0.87
+   rn_alb_smlt      =   0.82          !  melting snow albedo     :  0.72 -- 0.82
+   rn_alb_idry      =   0.65          !  dry ice albedo          :  0.54 -- 0.65
+   rn_alb_imlt      =   0.58          !  bare puddled ice albedo :  0.49 -- 0.58
+   rn_alb_dpnd      =   0.30          !  ponded ice albedo       :  0.10 -- 0.30
+/
+!------------------------------------------------------------------------------
+&namdia         !   Diagnostics
+!------------------------------------------------------------------------------
+   ln_icediahsb     = .true.         !  output the heat, mass & salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA1_cfg_NPv6.1
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA1_cfg_NPv6.1	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA1_cfg_NPv6.1	(revision 5899)
@@ -0,0 +1,91 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! SI3 configuration namelist: Overwrites SHARED/namelist_ice_ref
+!!              1 - Generic parameters                 (nampar)
+!!              2 - Ice thickness discretization       (namitd)
+!!              3 - Ice dynamics                       (namdyn)
+!!              4 - Ice ridging/rafting                (namdyn_rdgrft)
+!!              5 - Ice rheology                       (namdyn_rhg)
+!!              6 - Ice advection                      (namdyn_adv)
+!!              7 - Ice surface boundary conditions    (namsbc)
+!!              8 - Ice thermodynamics                 (namthd)
+!!              9 - Ice heat diffusion                 (namthd_zdf)
+!!             10 - Ice lateral melting                (namthd_da)
+!!             11 - Ice growth in open water           (namthd_do)
+!!             12 - Ice salinity                       (namthd_sal)
+!!             13 - Ice melt ponds                     (namthd_pnd)
+!!             14 - Ice initialization                 (namini)
+!!             15 - Ice/snow albedos                   (namalb)
+!!             16 - Ice diagnostics                    (namdia)
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!------------------------------------------------------------------------------
+&nampar         !   Generic parameters
+!------------------------------------------------------------------------------
+   cn_icerst_in     = "restart_ice_in"   !  suffix of ice restart name (input)
+   rn_amax_n        =   0.997         !  maximum tolerated ice concentration NH
+   rn_amax_s        =   0.950         !  maximum tolerated ice concentration SH
+/
+!------------------------------------------------------------------------------
+&namitd         !   Ice discretization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn         !   Ice dynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rdgrft  !   Ice ridging/rafting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rhg     !   Ice rheology
+!------------------------------------------------------------------------------
+      ln_aEVP       = .false.          !     adaptive rheology (Kimmritz et al. 2016 & 2017)
+/
+!------------------------------------------------------------------------------
+&namdyn_adv     !   Ice advection
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namsbc         !   Ice surface boundary conditions
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd         !   Ice thermodynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_zdf     !   Ice heat diffusion
+!------------------------------------------------------------------------------
+   rn_cnd_s         =   0.50          !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971)
+                                      !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013)
+/
+!------------------------------------------------------------------------------
+&namthd_da      !   Ice lateral melting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_do      !   Ice growth in open water
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_sal     !   Ice salinity
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_pnd     !   Melt ponds
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namini         !   Ice initialization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namalb         !   albedo parameters
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdia         !   Diagnostics
+!------------------------------------------------------------------------------
+   ln_icediahsb     = .true.         !  output the heat, mass & salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA2_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA2_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA2_cfg	(revision 5899)
@@ -0,0 +1,160 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! SI3 configuration namelist: Overwrites SHARED/namelist_ice_ref
+!!              1 - Generic parameters                 (nampar)
+!!              2 - Ice thickness discretization       (namitd)
+!!              3 - Ice dynamics                       (namdyn)
+!!              4 - Ice ridging/rafting                (namdyn_rdgrft)
+!!              5 - Ice rheology                       (namdyn_rhg)
+!!              6 - Ice advection                      (namdyn_adv)
+!!              7 - Ice surface boundary conditions    (namsbc)
+!!              8 - Ice thermodynamics                 (namthd)
+!!              9 - Ice heat diffusion                 (namthd_zdf)
+!!             10 - Ice lateral melting                (namthd_da)
+!!             11 - Ice growth in open water           (namthd_do)
+!!             12 - Ice salinity                       (namthd_sal)
+!!             13 - Ice melt ponds                     (namthd_pnd)
+!!             14 - Ice initialization                 (namini)
+!!             15 - Ice/snow albedos                   (namalb)
+!!             16 - Ice diagnostics                    (namdia)
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!------------------------------------------------------------------------------
+&nampar         !   Generic parameters
+!------------------------------------------------------------------------------
+   cn_icerst_in     = "restart_ice_in"   !  suffix of ice restart name (input)
+   rn_amax_n        =   0.997         !  maximum tolerated ice concentration NH
+   rn_amax_s        =   0.997         !  maximum tolerated ice concentration SH
+/
+!------------------------------------------------------------------------------
+&namitd         !   Ice discretization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn         !   Ice dynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rdgrft  !   Ice ridging/rafting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rhg     !   Ice rheology
+!------------------------------------------------------------------------------
+      ln_aEVP       = .false.         !     adaptive rheology (Kimmritz et al. 2016 & 2017)
+      nn_nevp       =  120            !     number of EVP subcycles
+/
+!------------------------------------------------------------------------------
+&namdyn_adv     !   Ice advection
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namsbc         !   Ice surface boundary conditions
+!------------------------------------------------------------------------------
+   rn_cio           =   5.0e-03       !  ice-ocean drag coefficient (-)
+   nn_snwfra        =   2             !  calculate the fraction of ice covered by snow (for zdf and albedo)
+                                      !     = 2  fraction = hsnw / (hsnw+0.02)    [CICE formulation]
+   rn_snwblow       =   0.66          !  mesure of snow blowing into the leads
+                                      !     = 1 => no snow blowing, < 1 => some snow blowing
+   nn_flxdist       =  2             !  Redistribute heat flux over ice categories
+                                      !     = 2  Redistribute a single flux over categories
+   ln_cndflx        = .false.         !  Use conduction flux as surface boundary conditions (i.e. for Jules coupling)
+      ln_cndemulate = .false.         !     emulate conduction flux (if not provided in the inputs)
+   nn_qtrice        =  1              !  Solar flux transmitted thru the surface scattering layer:
+                                      !     = 1  Lebrun 2019 (equals 0.3 anytime with different melting/dry snw conductivities)
+/
+!------------------------------------------------------------------------------
+&namthd         !   Ice thermodynamics
+!------------------------------------------------------------------------------
+   ln_icedH         = .true.          !  activate ice thickness change from growing/melting (T) or not (F)
+   ln_icedA         = .true.          !  activate lateral melting param. (T) or not (F)
+   ln_icedO         = .true.          !  activate ice growth in open-water (T) or not (F)
+   ln_icedS         = .true.          !  activate brine drainage (T) or not (F)
+   !
+   ln_leadhfx       = .false.          !  heat in the leads is used to melt sea-ice before warming the ocean
+/
+!------------------------------------------------------------------------------
+&namthd_zdf     !   Ice heat diffusion
+!------------------------------------------------------------------------------
+   rn_cnd_s         =   0.50          !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971)
+                                      !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013)
+/
+!------------------------------------------------------------------------------
+&namthd_da      !   Ice lateral melting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_do      !   Ice growth in open water
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_sal     !   Ice salinity
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_pnd     !   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
+         rn_apnd     =   0.2          !     prescribed pond fraction, at Tsu=0 degC
+         rn_hpnd     =   0.05         !     prescribed pond depth,    at Tsu=0 degC
+      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
+/
+!------------------------------------------------------------------------------
+&namini         !   Ice initialization
+!------------------------------------------------------------------------------
+   nn_iceini_file   = _AUTO_        !  netcdf file provided for initialization
+   !
+   rn_thres_sst     =   0.5           !  max temp. above Tfreeze with initial ice = (sst - tfreeze)
+   rn_hti_ini_n     =   1.0           !  initial ice thickness       (m), North
+   rn_hti_ini_s     =   1.0           !        "            "             South
+   rn_hts_ini_n     =   0.3           !  initial snow thickness      (m), North
+   rn_hts_ini_s     =   0.3           !        "            "             South
+   rn_ati_ini_n     =   0.9           !  initial ice concentration   (-), North
+   rn_ati_ini_s     =   0.9           !        "            "             South
+   rn_smi_ini_n     =   6.3           !  initial ice salinity     (g/kg), North
+   rn_smi_ini_s     =   6.3           !        "            "             South
+   rn_tmi_ini_n     = 270.            !  initial ice temperature     (K), North
+   rn_tmi_ini_s     = 270.            !        "            "             South
+   rn_tsu_ini_n     = 270.            !  initial surface temperature (K), North
+   rn_tsu_ini_s     = 270.            !        "            "             South
+   rn_tms_ini_n     = 270.            !  initial snw temperature     (K), North
+   rn_tms_ini_s     = 270.            !        "            "             South
+   rn_apd_ini_n     =   0.2           !  initial pond fraction       (-), North
+   rn_apd_ini_s     =   0.2           !        "            "             South
+   rn_hpd_ini_n     =   0.05          !  initial pond depth          (m), North
+   rn_hpd_ini_s     =   0.05          !        "            "             South
+   rn_hld_ini_n     =   0.0           !  initial pond lid depth      (m), North
+   rn_hld_ini_s     =   0.0           !        "            "             South
+   !______!______________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !      !    file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !      !                      !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_hti = 'Ice_initialization' ,         -12       ,'sithic'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_hts = 'Ice_initialization' ,         -12       ,'snthic'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_ati = 'Ice_initialization' ,         -12       ,'siconc'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_smi = 'Ice_initialization' ,         -12       ,'sisali'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tmi = 'Ice_initialization' ,         -12       ,'sitemp'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tsu = 'Ice_initialization' ,         -12       ,'sistem'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tms = 'NOT USED'           ,         -12       ,'tms'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   !      melt ponds (be careful, sn_apd is the pond concentration (not fraction), so it differs from rn_apd)
+   sn_apd = 'NOT USED'           ,         -12       ,'apd'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_hpd = 'NOT USED'           ,         -12       ,'hpd'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   cn_dir='./'
+/
+!------------------------------------------------------------------------------
+&namalb         !   albedo parameters
+!------------------------------------------------------------------------------
+   rn_alb_sdry      =   0.87          !  dry snow albedo         :  0.85 -- 0.87
+   rn_alb_smlt      =   0.82          !  melting snow albedo     :  0.72 -- 0.82
+   rn_alb_idry      =   0.65          !  dry ice albedo          :  0.54 -- 0.65
+   rn_alb_imlt      =   0.58          !  bare puddled ice albedo :  0.49 -- 0.58
+   rn_alb_dpnd      =   0.30          !  ponded ice albedo       :  0.10 -- 0.30
+/
+!------------------------------------------------------------------------------
+&namdia         !   Diagnostics
+!------------------------------------------------------------------------------
+   ln_icediahsb     = .true.         !  output the heat, mass & salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA2_cfg.old
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA2_cfg.old	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_ice_ORCA2_cfg.old	(revision 5899)
@@ -0,0 +1,166 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! SI3 configuration namelist: Overwrites SHARED/namelist_ice_ref
+!!              1 - Generic parameters                 (nampar)
+!!              2 - Ice thickness discretization       (namitd)
+!!              3 - Ice dynamics                       (namdyn)
+!!              4 - Ice ridging/rafting                (namdyn_rdgrft)
+!!              5 - Ice rheology                       (namdyn_rhg)
+!!              6 - Ice advection                      (namdyn_adv)
+!!              7 - Ice surface boundary conditions    (namsbc)
+!!              8 - Ice thermodynamics                 (namthd)
+!!              9 - Ice heat diffusion                 (namthd_zdf)
+!!             10 - Ice lateral melting                (namthd_da)
+!!             11 - Ice growth in open water           (namthd_do)
+!!             12 - Ice salinity                       (namthd_sal)
+!!             13 - Ice melt ponds                     (namthd_pnd)
+!!             14 - Ice initialization                 (namini)
+!!             15 - Ice/snow albedos                   (namalb)
+!!             16 - Ice diagnostics                    (namdia)
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!
+!------------------------------------------------------------------------------
+&nampar         !   Generic parameters
+!------------------------------------------------------------------------------
+   cn_icerst_in     = "restart_ice_in"   !  suffix of ice restart name (input)
+   rn_amax_n        =   0.997         !  maximum tolerated ice concentration NH
+   rn_amax_s        =   0.997         !  maximum tolerated ice concentration SH
+/
+!------------------------------------------------------------------------------
+&namitd         !   Ice discretization
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn         !   Ice dynamics
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rdgrft  !   Ice ridging/rafting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namdyn_rhg     !   Ice rheology
+!------------------------------------------------------------------------------
+   ln_rhg_EVP       = .true.          !  EVP rheology
+      ln_aEVP       = .false.         !     adaptive rheology (Kimmritz et al. 2016 & 2017)
+      rn_creepl     =   2.0e-9        !     creep limit [1/s]
+      rn_ecc        =   2.0           !     eccentricity of the elliptical yield curve
+      nn_nevp       =  120            !     number of EVP subcycles
+      rn_relast     =   0.333         !     ratio of elastic timescale to ice time step: Telast = dt_ice * rn_relast
+                                      !        advised value: 1/3 (rn_nevp=120) or 1/9 (rn_nevp=300)
+   ln_rhg_chkcvg    = .false.         !  check convergence of rheology (outputs: file ice_cvg.nc & variable uice_cvg)
+/
+!------------------------------------------------------------------------------
+&namdyn_adv     !   Ice advection
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namsbc         !   Ice surface boundary conditions
+!------------------------------------------------------------------------------
+   rn_cio           =   5.0e-03       !  ice-ocean drag coefficient (-)
+   nn_snwfra        =   2             !  calculate the fraction of ice covered by snow (for zdf and albedo)
+                                      !     = 2  fraction = hsnw / (hsnw+0.02)    [CICE formulation]
+   rn_snwblow       =   0.66          !  mesure of snow blowing into the leads
+                                      !     = 1 => no snow blowing, < 1 => some snow blowing
+   nn_flxdist       =  2             !  Redistribute heat flux over ice categories
+                                      !     = 2  Redistribute a single flux over categories
+   ln_cndflx        = .false.         !  Use conduction flux as surface boundary conditions (i.e. for Jules coupling)
+      ln_cndemulate = .false.         !     emulate conduction flux (if not provided in the inputs)
+   nn_qtrice        =  1              !  Solar flux transmitted thru the surface scattering layer:
+                                      !     = 1  Lebrun 2019 (equals 0.3 anytime with different melting/dry snw conductivities)
+/
+!------------------------------------------------------------------------------
+&namthd         !   Ice thermodynamics
+!------------------------------------------------------------------------------
+   ln_icedH         = .true.          !  activate ice thickness change from growing/melting (T) or not (F)
+   ln_icedA         = .true.          !  activate lateral melting param. (T) or not (F)
+   ln_icedO         = .true.          !  activate ice growth in open-water (T) or not (F)
+   ln_icedS         = .true.          !  activate brine drainage (T) or not (F)
+   !
+   ln_leadhfx       = .false.          !  heat in the leads is used to melt sea-ice before warming the ocean
+/
+!------------------------------------------------------------------------------
+&namthd_zdf     !   Ice heat diffusion
+!------------------------------------------------------------------------------
+   rn_cnd_s         =   0.50          !  thermal conductivity of the snow (0.31 W/m/K, Maykut and Untersteiner, 1971)
+                                      !     Obs: 0.1-0.5 (Lecomte et al, JAMES 2013)
+/
+!------------------------------------------------------------------------------
+&namthd_da      !   Ice lateral melting
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_do      !   Ice growth in open water
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_sal     !   Ice salinity
+!------------------------------------------------------------------------------
+/
+!------------------------------------------------------------------------------
+&namthd_pnd     !   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
+         rn_apnd     =   0.2          !     prescribed pond fraction, at Tsu=0 degC
+         rn_hpnd     =   0.05         !     prescribed pond depth,    at Tsu=0 degC
+      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
+/
+!------------------------------------------------------------------------------
+&namini         !   Ice initialization
+!------------------------------------------------------------------------------
+   nn_iceini_file   = _AUTO_        !  netcdf file provided for initialization
+   !
+   rn_thres_sst     =   0.5           !  max temp. above Tfreeze with initial ice = (sst - tfreeze)
+   rn_hti_ini_n     =   1.0           !  initial ice thickness       (m), North
+   rn_hti_ini_s     =   1.0           !        "            "             South
+   rn_hts_ini_n     =   0.3           !  initial snow thickness      (m), North
+   rn_hts_ini_s     =   0.3           !        "            "             South
+   rn_ati_ini_n     =   0.9           !  initial ice concentration   (-), North
+   rn_ati_ini_s     =   0.9           !        "            "             South
+   rn_smi_ini_n     =   6.3           !  initial ice salinity     (g/kg), North
+   rn_smi_ini_s     =   6.3           !        "            "             South
+   rn_tmi_ini_n     = 270.            !  initial ice temperature     (K), North
+   rn_tmi_ini_s     = 270.            !        "            "             South
+   rn_tsu_ini_n     = 270.            !  initial surface temperature (K), North
+   rn_tsu_ini_s     = 270.            !        "            "             South
+   rn_tms_ini_n     = 270.            !  initial snw temperature     (K), North
+   rn_tms_ini_s     = 270.            !        "            "             South
+   rn_apd_ini_n     =   0.2           !  initial pond fraction       (-), North
+   rn_apd_ini_s     =   0.2           !        "            "             South
+   rn_hpd_ini_n     =   0.05          !  initial pond depth          (m), North
+   rn_hpd_ini_s     =   0.05          !        "            "             South
+   rn_hld_ini_n     =   0.0           !  initial pond lid depth      (m), North
+   rn_hld_ini_s     =   0.0           !        "            "             South
+   !______!______________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
+   !      !    file name         ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
+   !      !                      !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
+   sn_hti = 'Ice_initialization' ,         -12       ,'sithic'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_hts = 'Ice_initialization' ,         -12       ,'snthic'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_ati = 'Ice_initialization' ,         -12       ,'siconc'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_smi = 'Ice_initialization' ,         -12       ,'sisali'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tmi = 'Ice_initialization' ,         -12       ,'sitemp'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tsu = 'Ice_initialization' ,         -12       ,'sistem'   ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_tms = 'NOT USED'           ,         -12       ,'tms'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   !      melt ponds (be careful, sn_apd is the pond concentration (not fraction), so it differs from rn_apd)
+   sn_apd = 'NOT USED'           ,         -12       ,'apd'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   sn_hpd = 'NOT USED'           ,         -12       ,'hpd'      ,  .false.    , .true. , 'yearly'  , '' , '', ''
+   cn_dir='./'
+/
+!------------------------------------------------------------------------------
+&namalb         !   albedo parameters
+!------------------------------------------------------------------------------
+   rn_alb_sdry      =   0.87          !  dry snow albedo         :  0.85 -- 0.87
+   rn_alb_smlt      =   0.82          !  melting snow albedo     :  0.72 -- 0.82
+   rn_alb_idry      =   0.65          !  dry ice albedo          :  0.54 -- 0.65
+   rn_alb_imlt      =   0.58          !  bare puddled ice albedo :  0.49 -- 0.58
+   rn_alb_dpnd      =   0.30          !  ponded ice albedo       :  0.10 -- 0.30
+/
+!------------------------------------------------------------------------------
+&namdia         !   Diagnostics
+!------------------------------------------------------------------------------
+   ln_icediahsb     = .true.         !  output the heat, mass & salt budgets (T) or not (F)
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_pisces_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_pisces_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_pisces_cfg	(revision 5899)
@@ -0,0 +1,159 @@
+!-----------------------------------------------------------------------
+&nampismod     !  Model used 
+  ln_p4z    = .true.         !  PISCES model used
+/
+!-----------------------------------------------------------------------
+&nampisext     !   air-sea exchange
+!-----------------------------------------------------------------------
+!   ln_co2int  = _AUTO_: DEFAULT=.false. ! read atm pco2 from a file (T) or constant (F)
+   atcco2     = _AUTO_: DEFAULT=278.    ! Constant value atmospheric pCO2 - ln_co2int = F
+!   clname     =  'atcco2.txt'  ! Name of atm pCO2 file - ln_co2int = T
+!   nn_offset  =  0       ! Offset model-data start year - ln_co2int = T
+!                        ! If your model year is iyy, nn_offset=(years(1)-iyy)
+!                        ! then the first atmospheric CO2 record read is at years(1)
+/
+!-----------------------------------------------------------------------
+&nampisatm     !  Atmospheric prrssure 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampisbio     !   biological parameters
+!-----------------------------------------------------------------------
+!   nrdttrc    =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&namp4zlim     !   parameters for nutrient limitations for PISCES std  - ln_p4z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp5zlim     !   parameters for nutrient limitations PISCES QUOTA    - ln_p5z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp5zquota   !   parameters for nutrient limitations PISCES quota    - ln_p5z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampisopt     !   parameters for optics
+!-----------------------------------------------------------------------
+/ 
+!-----------------------------------------------------------------------
+&namp4zprod    !   parameters for phytoplankton growth for PISCES std  - ln_p4z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp5zprod    !   parameters for phytoplankton growth for PISCES quota- ln_p5z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp4zmort    !   parameters for phytoplankton sinks for PISCES std   - ln_p4z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp5zmort    !   parameters for phytoplankton sinks for PISCES quota - ln_p5z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp4zmes     !   parameters for mesozooplankton for PISCES std       - ln_p4z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp5zmes     !   parameters for mesozooplankton
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp4zzoo     !   parameters for microzooplankton for PISCES std      - ln_p4z
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namp5zzoo     !   parameters for microzooplankton
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampisfer     !   parameters for iron chemistry
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------  
+&nampisrem     !   parameters for remineralization
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampispoc     !   parameters for organic particles
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampiscal     !   parameters for Calcite chemistry
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampissbc     !   parameters for inputs deposition
+!-----------------------------------------------------------------------
+   ln_dust     =  .true.   ! boolean for dust input from the atmosphere
+   ln_solub    =  .true.   ! boolean for variable solubility of atm. Iron
+   ln_river    =  .true.   ! boolean for river input of nutrients
+   ln_ndepo    =  .true.   ! boolean for atmospheric deposition of N
+   ln_ironsed  =  .true.   ! boolean for Fe input from sediments
+   ln_ironice  =  .true.   ! boolean for Fe input from sea ice
+   ln_hydrofe  =  .false.  ! boolean for from hydrothermal vents
+   !
+   sn_dust     = 'dust.orca.nc'    ,    -1             , 'dust'        ,  .true.      , .true. , 'yearly'  , 'weights_lmd144142_bilin.nc', ''    , ''
+   sn_solub    = 'solubility.orca' ,    -12            , 'solubility1' ,  .false.     , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdic = 'river.orca'      ,    -1             , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdoc = 'river.orca'      ,    -1             , 'riverdoc'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdin = 'river.orca'      ,    -1             , 'riverdin'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdon = 'river.orca'      ,    -1             , 'riverdon'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdip = 'river.orca'      ,    -1             , 'riverdip'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdop = 'river.orca'      ,    -1             , 'riverdop'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_riverdsi = 'river.orca'      ,    -1             , 'riverdsi'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
+   sn_ndepo    = 'ndeposition.orca',    -1             , 'ndep'        ,  .true.      , .true. , 'yearly'  , 'weights_2d_bilin.nc', ''    , ''
+   sn_ironsed  = 'bathy.orca'      ,    -12            , 'bathy'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , ''
+/
+!-----------------------------------------------------------------------
+&nampislig     !   Namelist parameters for ligands, nampislig
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampisice     !   Prescribed sea ice tracers
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&nampisdmp     !   Damping 
+!-----------------------------------------------------------------------
+  nn_pisdmp   =  _AUTO_
+/
+!-----------------------------------------------------------------------
+&nampismass    !   Mass conservation
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobphy     !   biological parameters for phytoplankton
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobnut     !   biological parameters for nutrients
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobzoo     !   biological parameters for zooplankton
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobdet     !   biological parameters for detritus
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobdom     !   biological parameters for DOM
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobsed     !   parameters from aphotic layers to sediment
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobrat     !   general coefficients
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namlobopt     !   optical parameters
+!-----------------------------------------------------------------------
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_top_ORCA1_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_top_ORCA1_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_top_ORCA1_cfg	(revision 5899)
@@ -0,0 +1,122 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/TOP1 :  Configuration namelist : used to overwrite defaults values defined in SHARED/namelist_top_ref
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!-----------------------------------------------------------------------
+&namtrc_run      !   run information
+!-----------------------------------------------------------------------
+   ln_top_euler  = .true.    !  use Euler time-stepping for TOP
+   ln_rsttr      = _AUTO_   !  AUTO - start from a restart file (T) or not (F)
+   nn_rsttr      = _AUTO_   !  AUTO - restart control = 0 initial time step is not compared to the restart file value
+                             !                  = 1 do not use the value in the restart file
+                             !                  = 2 calendar parameters read in the restart file
+   cn_trcrst_in  = "restart_trc"   !  suffix of pass. sn_tracer restart name (input)
+   cn_trcrst_out = "restart_trc"   !  suffix of pass. sn_tracer restart name (output)
+/
+!-----------------------------------------------------------------------
+&namtrc          !   tracers definition
+!-----------------------------------------------------------------------
+   jp_bgc        =  24
+!
+   ln_pisces     =  .true.
+   ln_my_trc     =  .false.
+   ln_age        =  _AUTO_
+   ln_cfc11      =  _AUTO_ 
+   ln_cfc12      =  _AUTO_
+   ln_c14        =  .false.
+
+   ln_trcdta     =  .true.  !  Initialisation from data input file (T) or not (F)
+   ln_trcdmp_clo =  .true.  !  damping term (T) or not (F) on closed seas
+!                 !           !                                          !             !
+!                 !    name   !           title of the field             !   units     ! initial data from file or not !
+!                 !           !                                          !             !
+   sn_tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mol-C/L' ,  .true.
+   sn_tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'eq/L '   ,  .true.
+   sn_tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mol-C/L' ,  .true.
+   sn_tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mol-C/L' ,  .false.
+   sn_tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mol-C/L' ,  .true.
+   sn_tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mol-C/L' ,  .false.
+   sn_tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mol-C/L' ,  .true.
+   sn_tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mol-C/L' ,  .false.
+   sn_tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mol-C/L' ,  .false.
+   sn_tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mol-C/L' ,  .true.
+   sn_tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mol-C/L' ,  .false.
+   sn_tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mol-C/L' ,  .false.
+   sn_tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mol-C/L' ,  .false.
+   sn_tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mol-C/L' ,  .true.
+   sn_tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mol-C/L' ,  .false.
+   sn_tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mol-C/L' ,  .false.
+   sn_tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mol-C/L' ,  .false.
+   sn_tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mol-C/L' ,  .false.
+   sn_tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mol-C/L' ,  .false.
+   sn_tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mol-C/L' ,  .false.
+   sn_tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mol-C/L' ,  .false.
+   sn_tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mol-C/L' ,  .false.
+   sn_tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mol-C/L' ,  .true.
+   sn_tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mol-C/L' ,  .false.
+/
+!-----------------------------------------------------------------------
+&namage          !   AGE 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_dta      !    Initialisation from data input file
+!-----------------------------------------------------------------------
+!                !  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_trcdta(1)  = 'DIC_GLODAPv2.1_annual_eORCA_R1.nc'     ,        -12        ,  'PiDIC'   ,    .false.   , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(2)  = 'Alkalini_GLODAPv2.1_annual_eORCA_R1.nc',        -12        ,  'Alkalini',    .false.   , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(3)  = 'O2_WOA2009_monthly_eORCA_R1.nc'        ,        -1         ,  'O2'      ,    .true.    , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(5)  = 'PO4_WOA2009_monthly_eORCA_R1.nc'       ,        -1         ,  'PO4'     ,    .true.    , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(7)  = 'Si_WOA2009_monthly_eORCA_R1.nc'        ,        -1         ,  'Si'      ,    .true.    , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(10) = 'DOC_PISCES_monthly_eORCA_R1.nc'        ,        -1         ,  'DOC'     ,    .true.    , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(14) = 'Fer_PISCES_monthly_eORCA_R1.nc'        ,        -1         ,  'Fer'     ,    .true.    , .true. , 'yearly'  , ''       , ''   , ''
+   sn_trcdta(23) = 'NO3_WOA2009_monthly_eORCA_R1.nc'       ,        -1         ,  'NO3'     ,    .true.    , .true. , 'yearly'  , ''       , ''   , ''
+   rn_trfac(1)   =   1.028e-06  !  multiplicative factor
+   rn_trfac(2)   =   1.028e-06  !  -      -      -     -
+   rn_trfac(3)   =  44.6e-06  !  -      -      -     -
+   rn_trfac(5)   = 122.0e-06  !  -      -      -     -
+   rn_trfac(7)   =   1.0e-06  !  -      -      -     -
+   rn_trfac(10)  =   1.0e-06  !  -      -      -     -
+   rn_trfac(14)  =   1.0e-06  !  -      -      -     -
+   rn_trfac(23)  =   7.6e-06  !  -      -      -     -
+/
+!-----------------------------------------------------------------------
+&namtrc_adv      !   advection scheme for passive tracer                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_trcadv_mus =  .true.  !  MUSCL scheme
+      ln_mus_ups =  .false.         !  use upstream scheme near river mouths
+/
+!-----------------------------------------------------------------------
+&namtrc_ldf      !   lateral diffusion scheme for passive tracer        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_trcldf_tra   = .true.      !  use active tracer setting
+   rn_fact_lap     =     15.    !     enhanced zonal eddy diffusivity
+/
+!-----------------------------------------------------------------------
+&namtrc_rad      !  treatment of negative concentrations 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_snk      !  sedimentation of particles
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_dmp      !   passive tracer newtonian damping   
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_ice      !    Representation of sea ice growth & melt effects
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_trd      !   diagnostics on tracer trends                       ('key_trdtrc')
+!----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------
+&namtrc_bc       !   data for boundary conditions
+!-----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------
+&namtrc_bdy      !   Setup of tracer boundary conditions
+!-----------------------------------------------------------------------
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_top_ORCA2_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_top_ORCA2_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_top_ORCA2_cfg	(revision 5899)
@@ -0,0 +1,116 @@
+!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!! NEMO/TOP1 :  Configuration namelist : used to overwrite defaults values defined in SHARED/namelist_top_ref
+!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+!-----------------------------------------------------------------------
+&namtrc_run      !   run information
+!-----------------------------------------------------------------------
+   ln_rsttr      = _AUTO_
+   nn_rsttr      = _AUTO_
+   ln_top_euler  = .true.
+/
+!-----------------------------------------------------------------------
+&namtrc          !   tracers definition
+!-----------------------------------------------------------------------
+   jp_bgc        =  24
+!
+   ln_pisces     =  .true.
+   ln_my_trc     =  .false.
+   ln_age        =  _AUTO_
+   ln_cfc11      =  _AUTO_ 
+   ln_cfc12      =  _AUTO_
+   ln_c14        =  .false.
+!
+   ln_trcdta     =  .true.  !  Initialisation from data input file (T) or not (F)
+!                 !           !                                          !             !
+!                 !    name   !           title of the field             !   units     ! initial data from file or not !
+!                 !           !                                          !             !
+   sn_tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mol-C/L' ,  .true.
+   sn_tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'eq/L '   ,  .true.
+   sn_tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mol-C/L' ,  .true.
+   sn_tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mol-C/L' ,  .false.
+   sn_tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mol-C/L' ,  .true.
+   sn_tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mol-C/L' ,  .false.
+   sn_tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mol-C/L' ,  .true.
+   sn_tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mol-C/L' ,  .false.
+   sn_tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mol-C/L' ,  .false.
+   sn_tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mol-C/L' ,  .true.
+   sn_tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mol-C/L' ,  .false.
+   sn_tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mol-C/L' ,  .false.
+   sn_tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mol-C/L' ,  .false.
+   sn_tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mol-C/L' ,  .true.
+   sn_tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mol-C/L' ,  .false.
+   sn_tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mol-C/L' ,  .false.
+   sn_tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mol-C/L' ,  .false.
+   sn_tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mol-C/L' ,  .false.
+   sn_tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mol-C/L' ,  .false.
+   sn_tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mol-C/L' ,  .false.
+   sn_tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mol-C/L' ,  .false.
+   sn_tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mol-C/L' ,  .false.
+   sn_tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mol-C/L' ,  .true.
+   sn_tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mol-C/L' ,  .false.
+/
+!-----------------------------------------------------------------------
+&namage          !   AGE 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_dta      !    Initialisation from data input file
+!-----------------------------------------------------------------------
+!                !  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_trcdta(1)  = 'data_DIC_nomask.nc',        -12        ,  'PiDIC'  ,    .false.   , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(2)  = 'data_ALK_nomask.nc',        -12        ,  'TALK'   ,    .false.   , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(3)  = 'data_OXY_nomask.nc',        -1         ,  'O2'     ,    .true.    , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(5)  = 'data_PO4_nomask.nc',        -1         ,  'PO4'    ,    .true.    , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(7)  = 'data_SIL_nomask.nc',        -1         ,  'Si'     ,    .true.    , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(10) = 'data_DOC_nomask.nc',        -1         ,  'DOC'    ,    .true.    , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(14) = 'data_FER_nomask.nc',        -1         ,  'Fer'    ,    .true.    , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   sn_trcdta(23) = 'data_NO3_nomask.nc',        -1         ,  'NO3'    ,    .true.    , .true. , 'yearly'  , 'weights_3D_r360x180_bilin.nc'       , ''   , ''
+   rn_trfac(1)   =   1.028e-06  !  multiplicative factor
+   rn_trfac(2)   =   1.028e-06  !  -      -      -     -
+   rn_trfac(3)   =  44.6e-06  !  -      -      -     -
+   rn_trfac(5)   = 122.0e-06  !  -      -      -     -
+   rn_trfac(7)   =   1.0e-06  !  -      -      -     -
+   rn_trfac(10)  =   1.0e-06  !  -      -      -     -
+   rn_trfac(14)  =   1.0e-06  !  -      -      -     -
+   rn_trfac(23)  =   7.6e-06  !  -      -      -     -
+/
+!-----------------------------------------------------------------------
+&namtrc_adv      !   advection scheme for passive tracer                (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_trcadv_mus =  .true.  !  MUSCL scheme
+      ln_mus_ups =  .false.         !  use upstream scheme near river mouths
+/
+!-----------------------------------------------------------------------
+&namtrc_ldf      !   lateral diffusion scheme for passive tracer        (default: NO selection)
+!-----------------------------------------------------------------------
+   ln_trcldf_tra   = .true.      !  use active tracer setting
+/
+!-----------------------------------------------------------------------
+&namtrc_rad      !  treatment of negative concentrations 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_snk      !  sedimentation of particles
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_dmp      !   passive tracer newtonian damping   
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_ice      !    Representation of sea ice growth & melt effects
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namtrc_trd      !   diagnostics on tracer trends                       ('key_trdtrc')
+!----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------
+&namtrc_bc       !   data for boundary conditions
+!-----------------------------------------------------------------------
+/
+!----------------------------------------------------------------------
+&namtrc_bdy      !   Setup of tracer boundary conditions
+!-----------------------------------------------------------------------
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_trc_cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_trc_cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/namelist_trc_cfg	(revision 5899)
@@ -0,0 +1,16 @@
+!-----------------------------------------------------------------------
+&namcfc     !   CFC 
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namc14_typ     !  C14 - type of C14 tracer, default values of C14/C and pco2
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namc14_sbc     !  C14 - surface BC
+!-----------------------------------------------------------------------
+/
+!-----------------------------------------------------------------------
+&namc14_fcg     !  files & dates
+!-----------------------------------------------------------------------
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_body
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_body	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_body	(revision 5899)
@@ -0,0 +1,295 @@
+###############################################################################
+#
+#                      OCEAN  --->>>  ATMOS
+#                      --------------------
+# Field 1 : Weighted sea surface temperature (o->a 1)
+# 
+O_SSTSST@member  SISUTESW@member 1 86400  2  sstoc@whole_member.nc  EXPORTED 
+182 149 96 96 torc  tlmd  LAG=4800
+P  2 P  0
+LOCTRANS MAPPING
+# LOCTRANS: AVERAGE to average value over coupling period
+ AVERAGE
+# Mozaic: 1) mapping filename 2) connected unit 3) dataset rank 4) Maximum
+#         number of overlapped neighbors
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 2 : Sea ice extent  (o->a 2)
+#
+OIceFrc@member SIICECOV@member 44 86400  2  sstoc@whole_member.nc EXPORTED
+182 149 96 96 torc  tlmd   LAG=4800
+P  2 P  0
+#
+LOCTRANS MAPPING 
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 3 : Weighted Sea Ice Temperature (o->a 3)
+#
+O_TepIce@member  SIICTEMW@member 34 86400  2  sstoc@whole_member.nc  EXPORTED
+182 149 96 96 torc  tlmd   LAG=4800
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+# 
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 4 : Weighted Sea ice albedo (o->a 4)
+#
+O_AlbIce@member  SIICEALW@member 17 86400  2  sstoc@whole_member.nc  EXPORTED
+182 149 96 96 torc  tlmd  LAG=4800  
+P  2 P  0
+#
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 5 : Current surface (o->a 5)
+O_OCurx1@member CURRENTX@member 321 86400  2  sstoc@whole_member.nc  EXPORTED
+182 149 96 96 torc    tlmd  LAG=4800
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+# Field 6 : Current surface (o->a 6)
+O_OCury1@member CURRENTY@member 321 86400  2  sstoc@whole_member.nc  EXPORTED
+182 149 96 96 torc    tlmd  LAG=4800
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#  
+############################################################################
+#
+# Field 7 : Current surface (o->a 7)
+O_OCurz1@member CURRENTZ@member 321 86400  2  sstoc@whole_member.nc  EXPORTED
+182 149 96 96 torc    tlmd  LAG=4800
+P  2 P  0
+LOCTRANS MAPPING
+ AVERAGE
+#
+rmp_torc_to_tlmd_MOSAIC.nc src
+#
+############################################################################
+#
+#                      ATMOSPHERE  --->>>  OCEAN
+#                      -------------------------
+############################################################################   
+#
+# Field 8 : wind stress along X axis (a->o 1)
+#
+COTAUXXU@member O_OTaux1@member 23 86400  1  flxat@whole_member.nc   EXPORTED
+96 96 182 149 tlmd    uorc  LAG=900 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+#
+###########################################################################
+#
+# Field 9 : stress along Y axis (a->o 2)
+#
+COTAUYYU@member O_OTauy1@member 23 86400  1  flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    uorc  LAG=900 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+#
+###########################################################################
+#
+# Field 10 :wind stress along Z axis (a->o 3)
+#
+COTAUZZU@member O_OTauz1@member 23 86400  1  flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    uorc  LAG=900 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
+#
+##########################################################################
+#
+# Field 11 : wind stress along X axis 2 (a->o 4)
+#
+COTAUXXV@member O_OTaux2@member  24 86400  1    flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    vorc  LAG=900 
+P  0 P  2
+MAPPING
+#
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+#
+##########################################################################
+#
+# Field 12 : wind stress along Y axis 2 (a->o 5) 
+#
+COTAUYYV@member O_OTauy2@member  24 86400  1    flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    vorc  LAG=900
+P  0 P  2
+MAPPING
+#
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+#
+##########################################################################
+#
+# Field 13 :  wind stress along Z axis 2 (a->o 6) 
+#
+COTAUZZV@member O_OTauz2@member  24 86400  1    flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    vorc  LAG=900
+P  0 P  2
+MAPPING
+#
+rmp_tlmd_to_vorc_BILINEAR_Corrected.nc dst
+#
+#########################################################################
+# Field 14 :  wind speed 10m (a->o 7) 
+#
+COWINDSP@member O_Wind10@member  56 86400  1    flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc  LAG=900
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+# 
+#########################################################################
+#
+# Field 15 : Total rain (a->o 8)
+#
+COTOTRAI@member OTotRain@member 26 86400  1   flxat@whole_member.nc   EXPORTED
+96 96 182 149 tlmd    torc  LAG=900 
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+##########################################################################
+#
+# Field 16 :  Total snow (a->o 9)
+#
+COTOTSNO@member  OTotSnow@member 28 86400  1  flxat@whole_member.nc   EXPORTED
+96 96 182 149 tlmd    torc  LAG=900 
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+#########################################################################
+#
+# Field 17 : Total evap (a->o 10)
+#
+COTOTEVA@member  OTotEvap@member 25 86400  1   flxat@whole_member.nc   EXPORTED
+96 96 182 149 tlmd    torc  LAG=900 
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+##########################################################################
+#
+# Field 18 : Evaporation Ice  (a->o 11)
+#
+COICEVAP@member OIceEvap@member 41 86400  1   flxat@whole_member.nc   EXPORTED
+96 96 182 149 tlmd    torc  LAG=900 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+##########################################################################
+#
+# Field 19 : Total solar heat flux (a->o 12)
+#
+COQSRMIX@member O_QsrMix@member  7 86400 1   flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc  LAG=900
+P  0 P  2
+MAPPING 
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+#########################################################################
+#
+# Field 20 : Total Non solar heat flux (a->o 13)
+#
+COQNSMIX@member O_QnsMix@member 6 86400  1   flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc   LAG=900
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+###########################################################################
+#
+# Field 21 : solar heat flux on ice (a->o 14)
+#
+COSHFICE@member O_QsrIce@member  7 86400 1   flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc  LAG=900
+P  0 P  2
+MAPPING  
+# Interpolation method or mozaic parameters
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+############################################################################
+#
+# Field 22 : Non solar heat flux on ice (a->o 15)
+#
+CONSFICE@member O_QnsIce@member 6 86400  1  flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc  LAG=900
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+############################################################################
+#
+# Field 23 : Non solar heat flux derivative (a->o 16)
+#
+CODFLXDT@member O_dQnsdT@member  35 86400  1   flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc  LAG=900
+P  0 P  2
+MAPPING 
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC.nc dst
+#
+#########################################################################
+#
+# Field 24 : iceberg calving (a->o 17)
+#
+COCALVIN@member OCalving@member  36 86400  1  flxat@whole_member.nc  EXPORTED
+96 96 182 149 tlmd    torc  LAG=900 
+P  0 P  2
+MAPPING
+# Interpolation method ou parametres mozaic
+rmp_tlmd_to_torc_MOSAIC_calvin.nc src
+#
+#########################################################################
+#
+# Field 25 : liquid run-off (river + direct)  (a->o 18)
+#
+COLIQRUN@member  O_Runoff@member 32 86400  3  flxat@whole_member.nc   EXPORTED
+96 96 182 149 olmd torc  LAG=900 
+P  0 P  2
+MAPPING CONSERV BLASNEW
+#LOCTRANS MAPPING CONSERV BLASNEW
+#AVERAGE
+# Interpolation method ou parametres mozaic
+# weights convert from kg/s to kg/m^2/s
+rmp_tlmd_to_torc_MOSAIC_rivflu.nc dst
+# CONSERV
+GLOBAL bfb
+# change units from m/s to kg/s
+1000.0 0
+#
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_epilog
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_epilog	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_epilog	(revision 5899)
@@ -0,0 +1,1 @@
+ $END
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_header
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_header	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/oasis_namcouple_header	(revision 5899)
@@ -0,0 +1,48 @@
+###############################################################################
+#
+#      Input file for OASIS3
+# 
+#      This version is for use with IPSL_CM4_v1 
+#
+#      The file will be edited at runtime to update it for
+#         - the initial date of the run
+#
+###############################################################################
+#  
+#      Input delimiters have to occupy position 1 to 9 !
+#      No blank lines allowed !
+#      Length of input lines <= 80 !
+#
+###############################################################################
+#
+# NFIELDS : total number of fields being exchanged.
+#
+ $NFIELDS
+#            25
+            @nfield
+ $END
+###############################################################################
+#
+# NBMODEL : number of models and their names (CHAR*6).
+#
+ $NBMODEL
+#  3 LMDZ oceanx xios.x
+  @models_list
+ $END
+###############################################################################
+# 
+# RUNTIME: total simulated time for the actual run in seconds (<I8)
+#
+ $RUNTIME
+  <total_time>
+ $END
+###############################################################################
+#
+# NLOGPRT: printing level in debug file : 
+#
+ $NLOGPRT
+   0 
+ $END
+# 
+###############################################################################
+ $STRINGS
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/orchidee.def_CWRR
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/orchidee.def_CWRR	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/orchidee.def_CWRR	(revision 5899)
@@ -0,0 +1,232 @@
+#
+#**************************************************************************
+#                    Parameter file list for ORCHIDEE
+# See all optional parameters in modipsl/modeles/ORCHIDEE/orchidee.default
+#**************************************************************************
+
+# Input and output
+#**************************************************************************
+# Restart the time from the GCM. 
+# default = n
+SECHIBA_reset_time = y
+
+# Name of restart to read for initial conditions
+# default = NONE
+SECHIBA_restart_in = _AUTOBLOCKER_
+
+# Name of restart to read for initial conditions of STOMATE
+# default = NONE
+STOMATE_RESTART_FILEIN = _AUTOBLOCKER_
+
+# Use XIOS for writing diagnostics file
+# default = y
+XIOS_ORCHIDEE_OK = y
+
+# Writefrequency in seconds in sechiba_history.nc
+# default = 0
+WRITE_STEP = 0
+
+# Print level for text output in out_orchidee_*
+# PRINTLEV = 1 : some output in initialization phase
+# PRINTLEV = 2 : more output in initialization phase and printing of new date
+# PRINTLEV = 3, 4,.. : more output also at each timestep
+PRINTLEV=1
+
+# Hydrology parameters
+#**************************************************************************
+# Activate the multi-layer diffusion scheme adapted from CWRR
+# default = y
+HYDROL_CWRR = y
+
+# Activate river routing
+# default = y
+RIVER_ROUTING = y
+
+# Activate creation of river_desc.nc file
+# RIVER_DESC will be activated only the first execution in the simulation. 
+RIVER_DESC = _AUTO_
+
+# SOILTYPE_CLASSIF :  Type of classification used for the map of soil types (default zobler)
+SOILTYPE_CLASSIF = zobler 
+SOILALB_FILE     = soils_param.nc
+SOILCLASS_FILE   = soils_param.nc
+
+# DO_RSOIL : Reduce soil evaporation with a soil resistance (default n)
+DO_RSOIL = n
+
+# To make AVAN and NVAN constant with depth (default CWRR_AKS_A0=0, CWRR_AKS_POWER=0, CWRR_NKS_A0=0, CWRR_NKS_POWER=0 )
+CWRR_AKS_A0 = 0.
+CWRR_AKS_POWER = 0.
+CWRR_NKS_A0 = 0.
+CWRR_NKS_POWER = 0.
+
+#**************************************************************************
+# Activate Stomate component
+STOMATE_OK_STOMATE = _AUTOBLOCKER_ 
+
+# Activate calculations of CO2 according to Farqhuar and Ball
+# default = y
+STOMATE_OK_CO2 = y
+
+# CDRAG_from_GCM: Use cdrag coefficient from gcm (default=y if coupled to LMDZ)
+CDRAG_from_GCM = y
+
+# Interception reservoir coefficient.
+# default = 0.1
+SECHIBA_QSINT = 0.02
+
+# Use 15 PFTs. Note that PFTmap.nc must contains 15PFTs.
+# PFT=10, 14 and 15 share the same parametrization except for VCMAX and LAI_MAX specified below.  
+NVM=15
+PFT_TO_MTC=1,2,3,4,5,6,7,8,9,10,11,12,13,10,10
+PFT_NAME__10='temperate C3           grass      '
+PFT_NAME__14='tropical  C3           grass      '
+PFT_NAME__15='boreal    C3           grass      '
+
+# STRESS_GS, STRESS_GM, STRESS_VCMAX : Stress on GS, GM and VCMAX
+# Default STRESS_GS=1, STRESS_GM=1, STRESS_VCMAX=1 for all PFTs
+STRESS_GS=1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.
+STRESS_GM=1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.
+STRESS_VCMAX=1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.
+
+# Optimized parameters for albedo (default values)
+ALB_LEAF_NIR = 0.,0.23,0.18,0.18,0.20,0.24,0.15,0.26,0.20,0.24,0.27,0.28,0.26,0.24,0.24
+ALB_LEAF_VIS = 0.,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.06,0.06,0.06,0.06,0.06,0.06
+SNOWA_AGED_NIR = 0.50,0,0,0.10,0.37,0.08,0.16,0.17,0.27,0.44,0.44,0.44,0.44,0.44,0.44
+SNOWA_DEC_NIR = 0.13,0,0,0.10,0.10,0.16,0.04,0.07,0.08,0.12,0.12,0.12,0.12,0.12,0.12
+SNOWA_AGED_VIS = 0.74,0,0,0.08,0.24,0.07,0.18,0.18,0.33,0.57,0.57,0.57,0.57,0.57,0.57
+SNOWA_DEC_VIS = 0.21,0,0,0.14,0.08,0.17,0.05,0.06,0.09,0.15,0.15,0.15,0.15,0.15,0.15
+
+# Optimized parameters for photosynthetic capacity 
+# Default values except for PFT=15
+VCMAX25__02 = 45.0
+VCMAX25__03 = 45.0
+VCMAX25__04 = 35.0
+VCMAX25__05 = 40.0
+VCMAX25__06 = 50.0
+VCMAX25__07 = 45.0
+VCMAX25__08 = 35.0
+VCMAX25__09 = 35.0
+VCMAX25__10 = 50.0
+VCMAX25__11 = 50.0
+VCMAX25__12 = 60.0
+VCMAX25__13 = 60.0
+VCMAX25__14 = 50.0
+VCMAX25__15 = 40.0
+
+# Optimized parameters for LAI
+# Default values except for PFT=15
+LAI_MAX__02 = 7.0
+LAI_MAX__03 = 5.0
+LAI_MAX__04 = 5.0
+LAI_MAX__05 = 4.0
+LAI_MAX__06 = 5.0
+LAI_MAX__07 = 3.5
+LAI_MAX__08 = 4.0
+LAI_MAX__09 = 3.0
+LAI_MAX__10 = 2.5
+LAI_MAX__11 = 2.0
+LAI_MAX__12 = 5.0
+LAI_MAX__13 = 5.0
+LAI_MAX__14 = 2.5
+LAI_MAX__15 = 2.0
+
+# Activate downregulation for CO2
+# Set DOWNREGULATION_CO2_NEW=y to activate new revised version of 
+# downregulation parametrization available in ORCHIDEE_2_0 for 
+# configurations v6.1.11 or later or in ORCHIDEE_2_2 from revision 6393 and later. 
+# When DOWNREGULATION_CO2_NEW=y, 
+# DOWNREGULATION_CO2 will be forced to false by the model.
+DOWNREGULATION_CO2_NEW=y
+DOWNREGULATION_CO2_BASELEVEL=380.
+
+# Activate harvest of wood
+DO_WOOD_HARVEST=_AUTO_ : DEFAULT=y
+
+# Growth respiration (default values except for PFT=14 and PFT=15)
+FRAC_GROWTHRESP__02 = 0.35
+FRAC_GROWTHRESP__03 = 0.35
+FRAC_GROWTHRESP__04 = 0.28
+FRAC_GROWTHRESP__05 = 0.28
+FRAC_GROWTHRESP__06 = 0.28
+FRAC_GROWTHRESP__07 = 0.35
+FRAC_GROWTHRESP__08 = 0.35
+FRAC_GROWTHRESP__09 = 0.35
+FRAC_GROWTHRESP__10 = 0.28
+FRAC_GROWTHRESP__11 = 0.28
+FRAC_GROWTHRESP__12 = 0.28
+FRAC_GROWTHRESP__13 = 0.28
+FRAC_GROWTHRESP__14 = 0.35
+FRAC_GROWTHRESP__15 = 0.35
+
+# Maintenance respiration slope C (default values except for PFT=14 and PFT=15)
+MAINT_RESP_SLOPE_C__02 = 0.12
+MAINT_RESP_SLOPE_C__03 = 0.12
+MAINT_RESP_SLOPE_C__04 = 0.16
+MAINT_RESP_SLOPE_C__05 = 0.16
+MAINT_RESP_SLOPE_C__06 = 0.16
+MAINT_RESP_SLOPE_C__07 = 0.25
+MAINT_RESP_SLOPE_C__08 = 0.25
+MAINT_RESP_SLOPE_C__09 = 0.25
+MAINT_RESP_SLOPE_C__10 = 0.16
+MAINT_RESP_SLOPE_C__11 = 0.12
+MAINT_RESP_SLOPE_C__12 = 0.16
+MAINT_RESP_SLOPE_C__13 = 0.12
+MAINT_RESP_SLOPE_C__14 = 0.12
+MAINT_RESP_SLOPE_C__15 = 0.25
+
+# Soil turnover (default CARBON_TAU=7, CARBON_TAU_IPASSOVE=300)
+CARBON_TAU_ISLOW = 7
+CARBON_TAU_IPASSIVE = 300
+
+# Take carbon from atmosphere if carbohydrate reserve too small, PFT dependent
+# Set to y for all pft except C4 grass (pft=11) and tropical C3 grass (pft=14)
+ALWAYS_INIT =  y, y, y, y, y, y, y, y, y, y, n, y, y, n, y
+
+# Do not use default fire module
+# Default FIRE_DISABLE=y
+FIRE_DISABLE = y
+
+# Parameters related to vegetation map
+#**************************************************************************
+# Update vegetation frequency
+# The maximum vegetation fractions will be update at this period
+# default = 1Y
+VEGET_UPDATE = _AUTO_
+
+# Read lai map (default n)
+LAI_MAP = _AUTO_ : DEFAULT = n
+
+# Parameters related to surface and thermal physical properties
+#************************************************************************
+# Read bare soil albedo from file with background MODIS data
+# Default ALB_BG_MODIS=y
+ALB_BG_MODIS = y
+ALB_BG_FILE  = alb_bg.nc
+
+# ROUGH_DYN : Account for a dynamic roughness height (activation of Su et al. parametrization) (default y)
+ROUGH_DYN=y
+
+# OK_FREEZE :  Activate the complet soil freezing scheme (default y)
+OK_FREEZE=y
+
+# DEPTH_MAX_T (m) :  Maximum depth of the soil thermodynamics (default 90)
+DEPTH_MAX_T=90
+
+# OK_EXPLICITSNOW :  Activate explict snow scheme (default y)
+OK_EXPLICITSNOW=y
+ 
+# READ_REFTEMP :  Initialize soil temperature using climatological temperature (default y if OK_FREEZE=y)
+READ_REFTEMP=y
+
+# Parameters related to chemistry bvoc 
+#************************************************************************
+# CHEMISTRY_OK_BVOC :  Activate chemistry
+CHEMISTRY_BVOC = _AUTO_: DEFAULT=n
+
+# CO2 FOR BVOC - WILKINSON :  CO2 inhibition effect for isoprene based on Wilkinson approach?
+CO2_FOR_BVOC_WILKINSON=n
+
+# CO2 FOR BVOC - POSSELL :  CO2 inhibition effect for isoprene based on Possell approach?
+CO2_FOR_BVOC_POSSELL=n
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/orchidee.def_Choi
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/orchidee.def_Choi	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/orchidee.def_Choi	(revision 5899)
@@ -0,0 +1,134 @@
+#
+#**************************************************************************
+#                    Parameter file list for ORCHIDEE
+#**************************************************************************
+
+# Input and output
+#**************************************************************************
+# Restart the time from the GCM. 
+# default = n
+SECHIBA_reset_time = y
+
+# Name of restart to read for initial conditions
+# default = NONE
+SECHIBA_restart_in = _AUTOBLOCKER_
+
+# Name of restart to read for initial conditions of STOMATE
+# default = NONE
+STOMATE_RESTART_FILEIN = _AUTOBLOCKER_
+
+# Use XIOS for writing diagnostics file
+# defulat = n
+XIOS_ORCHIDEE_OK = y
+
+# Writefrequency in seconds in sechiba_history.nc
+# default = 86400.0
+WRITE_STEP = 0
+
+# Hydrology parameters
+#**************************************************************************
+# Activate the multi-layer diffusion scheme adapted from CWRR
+# by default the Choisnel hydrology is used.
+# default = n
+HYDROL_CWRR = n 
+
+# Total depth of soil reservoir
+# default = 2./4. depending on HYDROL_CWRR
+HYDROL_SOIL_DEPTH = 4.
+
+# Root profile
+HYDROL_HUMCSTE = 5., .4, .4, 1., .8, .8, 1., 1., .8, 4., 1., 4., 1.
+
+# Activate river routing
+# default = n
+RIVER_ROUTING = y
+
+#**************************************************************************
+# Activate Stomate component
+# default = n
+STOMATE_OK_STOMATE = _AUTOBLOCKER_ 
+
+# Activate calculations of CO2 according to Farqhuar and Ball
+# default = n
+STOMATE_OK_CO2 = y
+
+# Use cdrag coefficient from gcm
+CDRAG_from_GCM = y
+
+# Interception reservoir coefficient.
+# default = 0.1
+SECHIBA_QSINT = 0.02
+
+# Use 15 PFTs. Note that PFTmap.nc must contains 15PFTs.
+# PFT=10, 14 and 15 share the same parametrization.  
+NVM=15
+PFT_TO_MTC=1,2,3,4,5,6,7,8,9,10,11,12,13,10,10
+PFT_NAME__10='temperate C3           grass      '
+PFT_NAME__14='tropical  C3           grass      '
+PFT_NAME__15='boreal    C3           grass      '
+
+# Set NVM and PFT_TO_MTC as follow to run with PFTmap files containing 13 pfts
+# Do this for example to run with the CMIP5 vegetation files
+#NVM=13
+#PFT_TO_MTC=1,2,3,4,5,6,7,8,9,10,11,12,13
+
+# Do not use default fire module
+FIRE_DISABLE = y
+
+# Parmeters related to vegetation map
+#**************************************************************************
+# Update vegetation frequency
+# The veget datas will be update at this period
+# default = 1Y
+VEGET_UPDATE = _AUTO_
+
+# Read lai map (default n)
+LAI_MAP = _AUTO_ : DEFAULT = n
+
+# Create river description file
+RIVER_DESC = _AUTO_
+RIVER_DESC_FILE =  river_desc.nc
+
+# Parameter related to chemistry bvoc 
+#************************************************************************
+# CHEMISTRY_OK_BVOC ([FLAG]) :  Activate chemistry    {OK_SECHIBA}
+# default =  n 
+CHEMISTRY_BVOC = _AUTO_: DEFAULT=n
+
+# CO2 FOR BVOC - WILKINSON ([FLAG]) :  CO2 inhibition effect for isoprene based on Wilkinson approach?    {CHEMISTRY_OK_BVOC }
+CO2_FOR_BVOC_WILKINSON=n
+
+# CO2 FOR BVOC - POSSELL ([FLAG]) :  CO2 inhibition effect for isoprene based on Possell approach?    {CHEMISTRY_OK_BVOC }
+CO2_FOR_BVOC_POSSELL=n
+
+
+# Parameters below were previous default values
+# The new values have not been tested with Choisnel. 
+#************************************************************************
+OK_EXPLICITSNOW=n
+DO_WOOD_HARVEST=n
+ROUGH_DYN=n
+VCMAX25=-9999., 50.0, 65.0, 45.0, 45.0, 55.0, 45.0, 45.0, 35.0, 70.0, 70.0, 70.0, 70.0, 70.0, 70.0
+STRESS_GS=0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. ,0., 0.
+STRESS_GM=0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. ,0., 0.
+SNOWA_AGED_VIS=0.5, 0., 0., 0.15, 0.14, 0.14, 0.15, 0.14, 0.22, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35
+SNOWA_AGED_NIR=0.35, 0., 0., 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18
+SNOWA_DEC_VIS= 0.45, 0., 0., 0.1, 0.06, 0.11, 0.10, 0.11, 0.18, 0.60, 0.60, 0.60, 0.60, 0.60, 0.60
+SNOWA_DEC_NIR= 0.45, 0., 0., 0.06, 0.06, 0.11, 0.06, 0.11, 0.11, 0.52 ,0.52, 0.52, 0.52, 0.52 ,0.52
+ALB_LEAF_VIS=.0, .0397, .0474, .0386, .0484, .0411, .041, .0541, .0435, .0524, .0508, .0509, .0606, .0524, .0524
+ALB_LEAF_NIR=.0, .227, .214, .193, .208, .244, .177, .218, .213, .252, .265, .272, .244, .252, .252
+FRAC_GROWTHRESP = -9999., .28, .28, .28, .28, .28, .28, .28, .28, .28, .28, .28, .28, .28, .28
+MAINT_RESP_SLOPE_C=-9999., .20, .20, .16, .16, .16, .16, .16, .16, .16, .12, .16, .12, .16, .16
+LAI_MAX=-9999., 7., 7., 5., 5., 5., 4.5, 4.5, 3.0, 2.5, 2.5, 5.,5., 2.5, 2.5
+ALWAYS_INIT=n, n, n, n, n, n, n, n, n, n, n, n, n, n, n
+ALB_BG_MODIS=n
+DOWNREGULATION_CO2=n
+DOWNREGULATION_CO2_BASELEVEL = 280.
+CARBON_TAU_ISLOW = 5.48
+CARBON_TAU_IPASSIVE = 241.
+OK_FREEZE = n
+CWRR_NKS_N0 = 0.95
+CWRR_NKS_POWER = 0.34
+CWRR_AKS_A0 = 0.00012
+CWRR_AKS_POWER = 0.53
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_AP
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_AP	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_AP	(revision 5899)
@@ -0,0 +1,95 @@
+## $Id$
+#
+##  Choix ou non  de  New oliq               
+new_oliq=y
+##  Orodr  ou  non   pour l orographie              
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+##   Si = .T. ,  lecture du fichier limit avec la bonne annee             
+ok_limitvrai=n
+##  Flag  pour la convection : 1 pour LMD, 2 pour Tiedtke, 3 KE(nvlle version JYG), 30 KE(version IPCC AR4), 4 KE vect
+iflag_con=30
+## Facteur multiplication des precip convectives dans KE
+cvl_corr=1.0
+#
+#
+
+### niveau du diagnostique de conservation d energie
+if_ebil=0
+#
+# parametres KE
+#
+### epmax = Efficacite precipitation maximale
+epmax = .999
+### ok_adj_ema = ?? pas utilise
+ok_adj_ema = n
+### iflag_clw Flag calcul eau liquide
+# - iflag_clw=0 : qcond_incld(i,l) = em_qcondc(l)
+# - iflag_clw=1 : qcond_incld(i,l) = em_qcond(l)
+# - iflag_clw=2 : eau liquide diagnostique en fonction de la Precip
+iflag_clw = 1
+# 
+# parametres nuages
+#
+### cld_lc_lsc  contenu en eau liquide des nuages large-scale (fisrtilp) 
+cld_lc_lsc = 4.16e-4
+### cld_lc_con  contenu en eau liquide des nuages convectifs (fisrtilp) 
+cld_lc_con = 4.16e-4
+### cld_tau_lsc cte de temps utilisee pour eliminer l eau large-scale (fisrtilp) 
+cld_tau_lsc = 1800.
+### cld_tau_con cte de temps utilisee pour eliminer l eau convective (fisrtilp) 
+cld_tau_con = 1800.
+### ffallv_lsc  cte utilisee dans calcul vitesse de chute cristaux de glace large-scale (fisrtilp) 
+ffallv_lsc = 0.5
+### ffallv_lsc  cte utilisee dans calcul vitesse de chute cristaux de glace convectifs (fisrtilp) 
+ffallv_con = 0.5
+### coef_eva coef evaporation precips eau/glace (fisrtilp/fisrtilp_tr?/conlmd?)
+coef_eva = 2.e-5
+### reevap_ice  reevaporation de toute la precip dans la couche du dessous pour la glace (fisrtilp) 
+reevap_ice = y
+### iflag_cldcon  flag pour calculer ratqsc=F(ratqsbas,fact_cldcon,q_seri) (physiq) 
+# - iflag_cldcon<=-1 diag. rain_Tiedtke 
+# - iflag_cldcon=1, ratqsc=ratqsbas+fact_cldcon*(q_seri(1)-q_seri(k))/q_seri(k)
+# - iflag_cldcon=1/2, ratqs=max(ratqs,ratqsc)
+# - iflag_cldcon=3,   ratqs=ratqss
+iflag_cldcon = 3
+### iflag_pdf :  flag calcul distribution sous-maille de l eau et des nuages 
+# - iflag_pdf=0, version ratqs, 
+# - iflag_pdf=1, calcul eau condensee, fraction nuageuse, eau nuageuse a partir
+# -              des PDFS de Sandrine Bony 
+iflag_pdf = 1
+### fact_cldcon  constante calcul ratqsc (voir iflag_cldcon) et proprietes nuages convectifs, clwcon0 (physiq.F) 
+fact_cldcon = 1.
+### facttemps=   facteur de relaxation de ratqs (iflag_cldcon=1/2) et rnebcon (iflag_cldcon=3)
+facttemps = 0.
+## ok_newmicro   =y appel newmicro , =n appel nuage (calcul epaisseur optique et emmissivite des nuages) 
+ok_newmicro = y
+### iflag_ratqs=0 correspond a la version IPCC AR4 
+iflag_ratqs=0
+### ratqsbas     ratqs en bas si iflag_cldcon=1 
+ratqsbas = 0.005
+### ratqshaut    ratqs en haut pour ratqss "stables"  
+ratqshaut = 0.33
+### rad_froid    rayon cristaux des nuages de glace "froids" 
+rad_froid = 35
+### rad_chau1    rayon goutelettes d eau chauds", en haut: k=4-klev 
+rad_chau1=12
+### rad_chau2    rayon goutelettes d eau chauds", en bas: k=1-3  
+rad_chau2=11
+# 
+# Coefficient et parametres sur les drags
+#
+f_cdrag_ter=1.
+f_cdrag_stable=1.
+f_cdrag_oce=0.8
+f_rugoro=0.
+### ksta_ter      coef.diffusion minimale sur terre/sic/lic 
+ksta_ter=1.e-7
+### cdmmax =     cdrag maximum pour le moment
+cdmmax = 2.5E-3
+### cdhmax =     cdrag maximum pour l energie
+cdhmax = 2.0E-3
+
+### nsplit_phys (D=1) 
+nsplit_phys=1
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv3.2
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv3.2	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv3.2	(revision 5899)
@@ -0,0 +1,131 @@
+##############################################################################
+# PARAMETRES ET CLES DE CONFIGURATION LMDZ 
+# Cette parie sera bientot extrait dans un fichier config.def
+##############################################################################
+# D: Valeur par default
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+f_cdrag_oce=0.7
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=0
+## NSW need to be 6 when iflag_rrtm=1
+NSW=2   
+#
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=6.e-4
+cld_lc_con=6.e-4
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=1800.
+cld_tau_con=1800.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=1.35
+ffallv_con=1.35
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=1e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=2
+ratqsbas=0.002
+ratqshaut=0.25
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+#
+rei_min=20.
+rei_max=61.29
+#
+t_glace_min=258.
+t_glace_max=273.13
+#
+# Flags Convection 
+#*****************
+#flag  pour la convection (D:2, 1:LMD, 2:Tiedtke, 3:KE nouvelle physique, 30:KE IPCC)
+iflag_con=3
+#niveau de sorties des diagnos sur la conservation energie
+if_ebil=0
+#efficacite de precepitation maxim (D:.993)
+epmax=0.997
+#ajustement convectif sec au debut de la convection (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#fermeture convective (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#loi de melange a l entrainement  (D:1, 0:AR4=PDF plate, 1=PDF)
+iflag_mix=1
+#poids des PDFs plate et en cloche (D: 1 0)
+qqa1=1.
+qqa2=0.
+# Facteur multiplication des precip convectives dans KE
+cvl_corr=1.0
+#
+Fmax=0.65
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=17
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=10
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+# Flags wakes
+#************
+#activation ou non des wakes (D:0, 0:AR4, 1:nouvelle physique) 
+iflag_wake=1
+alp_offset=0.
+
+nsplit_phys=1
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.70
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.70	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.70	(revision 5899)
@@ -0,0 +1,247 @@
+#
+# $Id: physiq.def_NPv5.70 3033 2016-12-01 14:43:42Z jgipsl $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+f_cdrag_oce=0.6
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=2.5
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.2
+
+sso_gkdrag=0.2
+sso_gfrcri=0.70
+sso_gkwake=0.40
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.0002
+cld_lc_con=0.0002
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.5
+ffallv_con=0.5
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=2e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=37500.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.1
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d'un zmax continu pour les thermiques
+## reactivation d'une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=233.13
+t_glace_max=273.13
+exposant_glace=1.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=2
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=1
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+wdens_ref=8.E-12
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+### Les parametres suivants viennent du config.def
+# constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+# Aerosols stratospheriques utilises par defaut
+flag_aerosol_strat=2
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.80b
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.80b	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.80b	(revision 5899)
@@ -0,0 +1,249 @@
+#
+# $Id: physiq.def_NPv5.80a 2925 2016-07-22 13:33:42Z lfairhead $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+f_cdrag_oce=0.6
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=2.5
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.2
+
+sso_gkdrag=0.2
+sso_gfrcri=0.70
+sso_gkwake=0.40
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.0002
+cld_lc_con=0.0002
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.5
+ffallv_con=0.5
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=2e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=43700.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+# Seuils oliqmax, oicemax
+oliqmax=1.5E-3
+oicemax=1.5E-3
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.1
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d'un zmax continu pour les thermiques
+## reactivation d'une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=233.13
+t_glace_max=273.13
+exposant_glace=1.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=3
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=1
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+wdens_ref=8.E-12
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+### Les parametres suivants viennent du config.def
+# constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+# Aerosols stratospheriques utilises par defaut
+flag_aerosol_strat=2
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.80bz0
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.80bz0	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv5.80bz0	(revision 5899)
@@ -0,0 +1,252 @@
+#
+# $Id: physiq.def_NPv5.80a 2925 2016-07-22 13:33:42Z lfairhead $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+f_cdrag_oce=1
+iflag_z0_oce=1
+f_z0qh_oce=1.55
+min_wind_speed=0.1
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=2.5
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.2
+
+sso_gkdrag=0.2
+sso_gfrcri=0.70
+sso_gkwake=0.40
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.0002
+cld_lc_con=0.0002
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.5
+ffallv_con=0.5
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=2e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=43700.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+# Seuils oliqmax, oicemax
+oliqmax=1.5E-3
+oicemax=1.5E-3
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.1
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d'un zmax continu pour les thermiques
+## reactivation d'une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=233.13
+t_glace_max=273.13
+exposant_glace=1.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=3
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=1
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+wdens_ref=8.E-12
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+### Les parametres suivants viennent du config.def
+# constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+# Aerosols stratospheriques utilises par defaut
+flag_aerosol_strat=2
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.10
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.10	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.10	(revision 5899)
@@ -0,0 +1,282 @@
+#
+# $Id: physiq.def_NPv6.0.10 2846 2017-04-11 14:05:05Z musat $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+
+#parameter for Z0
+f_cdrag_oce=0.9
+iflag_z0_oce=1
+f_z0qh_oce=1.55
+min_wind_speed=0.1
+
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.23
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+#
+gwd_front_ruwmax = 4.00
+sso_gfrcri=0.70
+sso_gkdrag=0.6
+sso_gkwake=1.0
+sso_gklift=0.1
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00011
+cld_lc_con=0.00011
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=1.
+ffallv_con=1.
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=4.5e-5
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=45000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+# Seuils oliqmax, oicemax
+oliqmax=1.5E-3
+oicemax=1.5E-3
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.997
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+t_top_max=275.
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.08
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d un zmax continu pour les thermiques
+## reactivation d une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+#
+flag_wk_check_trgl=y
+#
+cv_flag_feed=2
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=3
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=2
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+# nouvel epluchage de C.Rio
+iflag_mix_adiab=0
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+#wdens_ref=8.E-12
+wdens_ref_o=1.e-9
+wdens_ref_l=8.e-12
+#
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+inertie_sno=350.
+
+nbapp_cv=48
+
+# Prevent some crashes
+# Filter out bad wakes
+flag_wk_check_trgl=y
+# Check whether parcel level temperature and specific humidity
+# are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+# Correction bug for thermodynamical constants passed to rrtm
+ok_bad_ecmwf_thermo=n
+# Check for energy conservation
+fl_cor_ebil=1
+
+# save 20% CPU 
+ok_optim_yield=y
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.11
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.11	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.11	(revision 5899)
@@ -0,0 +1,489 @@
+#
+# $Id: physiq.def_NPv6.0.11 3312 2017-07-12 09:43:27Z aclsce $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1.
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1.
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1.
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=0
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=1.
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=2.5E-3
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=2.0E-3
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0.
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=0
+alphatkeoro=1.
+smallscales_tkeoro=n
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0.
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.70
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.23
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax = 3.00
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+inertie_sno=350.
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.000075
+cld_lc_con=0.000075
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.6
+ffallv_con=0.6
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=1.e-4
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=1
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2.
+iflag_t_glace=2
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=y
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+
+          # ?????
+facttemps=0.
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          #rayons effectifs pour les nuages eau liq (tailles des gouttes
+          # d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=1.5E-3
+oicemax=1.5E-3
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.9985
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+          #
+t_top_max=255.
+#
+### Convection
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40.
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.01
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=1
+wbmax=6.
+
+          # Divers tests
+ok_convstop=.False.
+tau_stop=15000.
+ok_intermittent=.False.
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+tlcrit=-40.
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150.0
+ptcrit=500.0
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=y
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=0
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=1.2e7
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0.
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1.e-9
+wdens_ref_l=8.e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y 
+
+fl_cor_ebil=1
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.12
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.12	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.12	(revision 5899)
@@ -0,0 +1,502 @@
+#
+# $Id: physiq.def_NPv6.0.12 3312 2017-07-12 09:43:27Z aclsce $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1.
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1.
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1.
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=0
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=1.
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=2.5E-3
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=2.0E-3
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0.
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=0
+alphatkeoro=1.
+smallscales_tkeoro=n
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0.
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.70
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.50
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax = 3.00
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+inertie_sno=350.
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00012
+cld_lc_con=0.00012
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.6
+ffallv_con=0.6
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=1.e-4
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=1
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2.
+iflag_t_glace=2
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=y
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+
+          # ?????
+facttemps=0.
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          #rayons effectifs pour les nuages eau liq (tailles des gouttes
+          # d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=1.5E-3
+oicemax=1.5E-3
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.9985
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+          #
+t_top_max=255.
+#
+### Convection
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40.
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.01
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=1
+wbmax=6.
+
+          # Divers tests
+ok_convstop=.False.
+tau_stop=15000.
+ok_intermittent=.False.
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+tlcrit=-40.
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150.0
+ptcrit=500.0
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=y
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=0
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=1.2e7
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0.
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1.e-9
+wdens_ref_l=8.e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y 
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.13
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.13	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.13	(revision 5899)
@@ -0,0 +1,517 @@
+#
+# $Id: physiq.def_NPv6.0.13 3046 2017-10-26 13:56:48Z fairhead $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1.
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1.
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1.
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=1
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=2.5E-3
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=2.0E-3
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0.
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=0
+alphatkeoro=1.
+smallscales_tkeoro=n
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0.
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.70
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.60
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax = 3.00
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350.
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.000106
+cld_lc_con=0.000106
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.6
+ffallv_con=0.6
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=1.e-4
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=3
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2.
+iflag_t_glace=2
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+
+          # ?????
+facttemps=0.
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          #rayons effectifs pour les nuages eau liq (tailles des gouttes
+          # d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=1.5E-3
+oicemax=1.5E-3
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.998
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+          #
+t_top_max=255.
+#
+### Convection
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40.
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.01
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=20
+wbmax=3.
+
+          # Divers tests
+ok_convstop=.False.
+tau_stop=15000.
+ok_intermittent=.False.
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+tlcrit=-40.
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150.0
+ptcrit=500.0
+
+          # Prevent some crashes
+          # Filter out bad wakes
+iflag_wk_check_trgl=2
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=0
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=1.2e7
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0.
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1.e-9
+wdens_ref_l=8.e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y 
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+####################################################################
+#  Modelisation des bosquets
+####################################################################
+ifl_pbltree=1
+Cd_frein=0.016
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.14split
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.14split	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.14split	(revision 5899)
@@ -0,0 +1,525 @@
+#
+# $Id: physiq.def_NPv6.0.12 3312 2017-07-12 09:43:27Z aclsce $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=1
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.2
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.2
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=2
+alphatkeoro=1
+smallscales_tkeoro=y
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.5
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.0002
+cld_lc_con=0.0002
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.6
+ffallv_con=0.6
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=3
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=0.5
+iflag_t_glace=3
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=10000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.7
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.9997
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.003
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=30
+wbmax=3
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.0003
+tlcrit=-55
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=10
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=1000
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.1
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.14ttop
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.14ttop	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.14ttop	(revision 5899)
@@ -0,0 +1,526 @@
+#
+# $Id: physiq.def_NPv6.0.12 3312 2017-07-12 09:43:27Z aclsce $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=1
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.0025
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.002
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=0
+alphatkeoro=1
+smallscales_tkeoro=n
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.6
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.000106
+cld_lc_con=0.000106
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.6
+ffallv_con=0.6
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=3
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2
+iflag_t_glace=2
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=20000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.7
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.998
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.01
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=20
+wbmax=3
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+tlcrit=-40
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=0
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=255
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.15_S
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.15_S	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.15_S	(revision 5899)
@@ -0,0 +1,530 @@
+#
+# $Id: physiq.def_NPv6.0.15_S 3593 2018-02-20 10:07:02Z jgipsl $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=2
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.2
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.2
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=2
+alphatkeoro=1
+smallscales_tkeoro=y
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.5
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.0004
+cld_lc_con=0.0004
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.8
+ffallv_con=0.8
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=2
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=0.5
+iflag_t_glace=3
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=10000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.3
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.003
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=50
+wbmax=2.8
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.0003
+tlcrit=-55
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+iflag_alp_wk_cond=1
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+          # To get back to bug where convective output variables
+          # were set to 0 at the start of the physics
+ok_bug_cv_trac=n
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=10
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=1000
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.15_T
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.15_T	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.15_T	(revision 5899)
@@ -0,0 +1,530 @@
+#
+# $Id: physiq.def_NPv6.0.15_T 3593 2018-02-20 10:07:02Z jgipsl $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=1
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.0025
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.002
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=0
+alphatkeoro=1
+smallscales_tkeoro=n
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.6
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.000106
+cld_lc_con=0.000106
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.6
+ffallv_con=0.6
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=3
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2
+iflag_t_glace=2
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=20000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.7
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.998
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.01
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=20
+wbmax=3
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+tlcrit=-40
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+          # To get back to bug where convective output variables
+          # were set to 0 at the start of the physics
+ok_bug_cv_trac=n
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=0
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=255
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.7
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.7	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.7	(revision 5899)
@@ -0,0 +1,256 @@
+#
+# $Id: physiq.def_NPv5.80a 2925 2016-07-22 13:33:42Z lfairhead $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+
+# parameter for z0
+f_cdrag_oce=1
+iflag_z0_oce=1
+f_z0qh_oce=1.55
+min_wind_speed=0.1
+
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.23
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+gwd_front_ruwmax=4.00
+
+sso_gkdrag=0.2
+sso_gfrcri=0.70
+sso_gkwake=0.40
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00028
+cld_lc_con=0.00028
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.5
+ffallv_con=0.5
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=2e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=37000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+# Seuils oliqmax, oicemax
+oliqmax=1.5E-3
+oicemax=1.5E-3
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.1
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d'un zmax continu pour les thermiques
+## reactivation d'une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=233.13
+t_glace_max=273.13
+exposant_glace=1.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=3
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=1
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+wdens_ref=8.E-12
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+### Les parametres suivants viennent du config.def
+# constante solaire lue dans un fichier par defaut
+ok_suntime_rrtm=y
+# Aerosols stratospheriques utilises par defaut
+flag_aerosol_strat=2
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.8
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.8	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.8	(revision 5899)
@@ -0,0 +1,264 @@
+#
+# $Id: physiq.def_NPv6.0.8 3123 2017-02-13 16:08:00Z lfairhead $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+
+#parameter for Z0
+f_cdrag_oce=1.
+iflag_z0_oce=1
+f_z0qh_oce=1.55
+min_wind_speed=0.1
+
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.23
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+#
+gwd_front_ruwmax = 4.00
+
+sso_gkdrag=0.2
+sso_gfrcri=0.70
+sso_gkwake=0.40
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00015
+cld_lc_con=0.00015
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=1.
+ffallv_con=1.
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=2e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=37000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+# Seuils oliqmax, oicemax
+oliqmax=1.5E-3
+oicemax=1.5E-3
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.997
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+###t_top_max=275.
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.1
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d'un zmax continu pour les thermiques
+## reactivation d'une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+#
+flag_wk_check_trgl=y
+#
+cv_flag_feed=2
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=3
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=1
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+#wdens_ref=8.E-12
+wdens_ref_o=8.e-12
+wdens_ref_l=8.e-12
+#
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+inertie_sno=350.
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.9
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.9	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.0.9	(revision 5899)
@@ -0,0 +1,277 @@
+#
+# $Id: physiq.def_NPv6.0.9 3154 2017-03-01 20:15:12Z aclsce $
+#
+##############################################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################################
+# D: Valeur par default
+#
+#Parametres Orographiques et cdrags
+#**********************************
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+iflag_albedo=1
+#Cdrags 
+f_cdrag_stable=1.
+f_cdrag_ter=1.
+
+#parameter for Z0
+f_cdrag_oce=1.
+iflag_z0_oce=1
+f_z0qh_oce=1.55
+min_wind_speed=0.1
+
+f_ri_cd_min=0.1
+#cdmmax
+cdmmax=2.5E-3
+#cdhmax
+cdhmax=2.0E-3
+##  Orodr  ou  non   pour l orographie
+ok_orodr=y
+##  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+#Rugoro
+f_rugoro=0.
+#
+### Random gravity waves
+#Activitate the stochastic parameterization of convective GWs (should be equal to ok_strato)
+ok_gwd_rando=y
+# Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.23
+#Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.60
+#
+gwd_front_ruwmax = 4.00
+
+sso_gfrcri=0.70
+
+sso_gkdrag=0.6
+sso_gkwake=1.0
+sso_gklift=0.1
+
+
+#
+# Rayonnement
+#*********************
+# activation du nouveau code de rayonnement RRTM
+# 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+NSW=6
+#
+# Parametres nuages
+#******************
+#seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00015
+cld_lc_con=0.00015
+#constante de temps pour eleminer eau lsc et convective (D: 3600. 3600.)
+cld_tau_lsc=900.
+cld_tau_con=900.
+#facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=1.
+ffallv_con=1.
+#coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+coef_eva=2e-4
+reevap_ice=y
+#calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1.
+facttemps=0.
+#calcul eau condensee et fraction nuageuse a partir des PDF (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+#calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+iflag_ratqs=4
+ratqsp0=37000.
+ratqsdp=20000.
+ratqsbas=0.002
+ratqshaut=0.4
+#rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+#rayons effectifs pour les nuages eau liq (tailles des gouttes d eau nuageuse, D: 13 9)
+rad_chau1=12
+rad_chau2=11
+##  Choix ou non  de  New oliq               
+new_oliq=y
+# Seuils oliqmax, oicemax
+oliqmax=1.5E-3
+oicemax=1.5E-3
+#Rayons min et max effectifs des particules des nuages
+rei_min=16.
+rei_max=61.29
+#
+# Flags Convection 
+#*****************
+#Convection scheme switch (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+#output level of energy conservation diagnostics
+if_ebil=0
+#maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.997
+#dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+#Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+#Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+#weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1.
+qqa2=0.
+#Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1.0
+#Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+#
+###t_top_max=275.
+#
+# Flags Couche limite
+#********************
+#shema de CL des thermiques (D:0, 0:ajustement sec,=>1:versions thermiques) 
+iflag_thermals=18
+#pas de temps du spliting pour les thermiques
+nsplit_thermals=1
+tau_thermals=0.
+iflag_thermals_ed=8
+fact_thermals_ed_dz=0.1
+iflag_thermals_optflux=0
+#shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=11
+#diffusion turbulente
+ksta_ter=1.e-7
+ksta=1.e-10
+#ok_kzmin : calcul Kzmin dans la CL de surface
+ok_kzmin=y
+#couplage ou non avec la convection
+iflag_coupl=5 (0:AR4 et 1:nouvelle physique)
+seuil_inversion=-0.08
+#rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+#
+## temperature dependency of qsat for iterative procedure
+## temporary flag to switch between the old (CMIP5, D=0) and new versions (=1) versions 
+iflag_fisrtilp_qsat=4 
+## Reactivation du calcul d'un zmax continu pour les thermiques
+## reactivation d'une fermeture humide des thermiques  iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=1
+#
+# Flags wakes
+#************
+#Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+#Constant value to be added to Alp (D: 0.)
+alp_offset=0.
+
+### nrlmd le 10/04/2012: Declenchement ###
+#Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+#Surface critique au LCL
+s_trig=1.2e7
+#Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+#Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+# Pour la stabilisation
+random_notrig_max=0.99
+ok_adjwk=y
+tmax_fonte_cv=278.15
+#
+flag_wk_check_trgl=y
+#
+cv_flag_feed=2
+
+### nrlmd le 10/04/2012: Fermeture ###
+#Fermeture par couche-limite (0: deterministe, 1: statistique, 2: statistique+convergence grande echelle)
+iflag_clos_bl=1
+### fin nrlmd le 10/04/2012
+
+## Modification de la plage de temperature pour la phase mixte liquide/glace des nuages
+## Controle par les t_glace_min/max, exposant_glace, iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=2.
+iflag_t_glace=2
+iflag_ice_thermo=1
+
+#
+## The source terms of the TKE prognostic equation are diagnosed from tendencies (du, dv, dT) 
+## associated with subrgrid scaleamotions and treated as an additional heat source.
+## Controled by a key, iflag_ener_conserv (D=-1):
+## 0 : no conservation, -1 : old adhoc correction for kinetic E only (used for CMIP5) 
+## 1 : conservation, 101 : conversion from kinetic to heat only, 110 conversion from potential to heat only
+iflag_ener_conserv=1
+
+#Activation of corrections for water conservation (D: n). 
+##The default is n for compatibility with earlier versions.
+##generally it should be y.
+ok_conserv_q=y 
+
+iflag_cloudth_vert=3
+
+#
+lmixmin=10.
+#pbl_lmixmin_alpha=0.05
+
+#Bergeron
+iflag_bergeron=1
+
+
+### Convection
+#altitude, in hPa, above LCL at which buoybase is computed, def = original: -40
+dpbase=-40.
+#altitude, in hPa, above LCL below which Ep=0, def = original: 150, used only if flag_epKEorig=0
+pbcrit=150.0
+#altitude, in hPa, above LCL above which Ep=Epmax, def = original: 500, used only if flag_epKEorig=0
+ptcrit=500.0
+#reference fractional area of precipitating downdraughts, def = original: 0.01
+sigdz=0.01
+#unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+#relaxation time of cloud base mass flux, def = original: 8000
+tau=8000.
+#flag for wb (= vert velocity at LFC); 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, def = 1
+flag_wb=1
+#parameter used in the computation of wb, def = 6.
+wbmax=6.
+#
+ok_convstop=.False.
+#
+tau_stop=15000.
+#
+ok_intermittent=.False.
+#shedding coefficient (used when iflag_mix_adiab=1)
+coef_peel=0.25
+#
+### Clouds
+#Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature) if 1, def=1
+flag_epKEorig=1
+#max condensed water concentration in kg/kg, def=0.0003, original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.00025
+#temperature in degre Celsius, at which Ep=Epmax, def=-55., original: -55, used only if flag_epKEorig=1
+tlcrit=-40.
+
+### Wakes
+#coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape), def: 0.33
+stark=0.33
+#lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided by wakes, def: 0.25
+alpk=0.25
+#wake density = number of wake centers per m2, def: 8.E-12
+#wdens_ref=8.E-12
+wdens_ref_o=8.e-12
+wdens_ref_l=8.e-12
+#
+#multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4.
+#
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+inertie_sno=350.
+
+# Frequency of call to convection 
+nbapp_cv=48
+
+# Prevent some crashes
+# Filter out bad wakes
+flag_wk_check_trgl=y
+# Check whether parcel level temperature and specific humidity
+# are reasonable and demand that LCL be high enough
+cv_flag_feed=2
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1	(revision 5899)
@@ -0,0 +1,531 @@
+#
+# $Id: physiq.def_NPv6.1 3964 2018-07-06 11:44:14Z acosce $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=2
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.2
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.2
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=2
+alphatkeoro=1
+smallscales_tkeoro=y
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.5
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+
+
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00065
+cld_lc_con=0.00065
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.8
+ffallv_con=0.8
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=2
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=0.5
+iflag_t_glace=3
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=10000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.3
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.003
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=50
+wbmax=2.8
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.0003
+tlcrit=-55
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+iflag_alp_wk_cond=1
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+          # To get back to bug where convective output variables
+          # were set to 0 at the start of the physics
+ok_bug_cv_trac=_AUTO_: DEFAULT = n
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=10
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=1000
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+cdnc_min=10.
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1.3
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1.3	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1.3	(revision 5899)
@@ -0,0 +1,532 @@
+#
+# $Id: physiq.def_NPv6.1 3668 2018-03-20 14:55:33Z lfairhead $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=2
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.2
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.2
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=2
+alphatkeoro=1
+smallscales_tkeoro=y
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.5
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+    # tau_gl = constante de rappel de la temperature a la surface de la glace (en nombre de jours)
+    # Utilise celon le forcage : tau_gl=2 pour Amip et tau_gl=1 pour Hadisst2
+tau_gl= _AUTO_ : DEFAULT = 5.
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00065
+cld_lc_con=0.00065
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.8
+ffallv_con=0.8
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=2
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=0.5
+iflag_t_glace=3
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=10000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.3
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.003
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=50
+wbmax=2.8
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.0003
+tlcrit=-55
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+iflag_alp_wk_cond=1
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+          # To get back to bug where convective output variables
+          # were set to 0 at the start of the physics
+ok_bug_cv_trac=n
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=10
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=1000
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+cdnc_min=10.
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1.3precliq
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1.3precliq	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_NPv6.1.3precliq	(revision 5899)
@@ -0,0 +1,545 @@
+#
+# $Id: physiq.def_NPv6.1 3668 2018-03-20 14:55:33Z lfairhead $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=2
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.2
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.2
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=2
+alphatkeoro=1
+smallscales_tkeoro=y
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.5
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+    # tau_gl = constante de rappel de la temperature a la surface de la glace (en nombre de jours)
+    # Utilise celon le forcage : tau_gl=2 pour Amip et tau_gl=1 pour Hadisst2
+tau_gl= _AUTO_ : DEFAULT = 5.
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.00065
+cld_lc_con=0.00065
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=0.8
+ffallv_con=0.8
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=2
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=0.5
+iflag_t_glace=3
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=45000
+ratqsdp=10000
+ratqsbas=0.002
+ratqshaut=0.4
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.3
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=16
+rei_max=61.29
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.999
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.003
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax, 1->wb=f(plfc) bounded, 2->wb=f(plfc) linear, D=1
+          # Si iflag_wb>=10 : wbeff_min=iflag_wb*0.1
+          # wbmax : assymptotic value 
+flag_wb=50
+wbmax=2.8
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit : max condensed water concentration in kg/kg, D=0.0003,
+          # tlcrit : temperature in degre Celsius, at which Ep=Epmax, D=-55. (original)
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.0003
+tlcrit=-55
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Precipitation ejection from adiabatic ascent
+          # cvflag_prec_eject: when TRUE ejection is activated. Default: False
+          # ejectliq : 0. =>liquid precipitation is carried up in the adiab updraughts
+          #            1. =>liquid precipitation is ejected from adiab updraughts
+          # ejectice   0. =>solid precipitation is carried up in the adiab updraughts
+          #            1. =>solid precipitation is ejected from adiab updraughts
+          # ejectliq may take only 0. and 1. values
+          # ejectice may take any value between 0. and 1.
+          #   Default : ejectliq=0., ejectice=0.
+cvflag_prec_eject=y
+ejectliq=1.
+ejectice=0.
+
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+iflag_alp_wk_cond=1
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+          # To get back to bug where convective output variables
+          # were set to 0 at the start of the physics
+ok_bug_cv_trac=n
+
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=10
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.5
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=1000
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.25
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz) pour calculer
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.07
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=1e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+cdnc_min=10.
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_tn
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_tn	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/physiq.def_tn	(revision 5899)
@@ -0,0 +1,557 @@
+#
+# $Id: physiq.def_NPv6.1 3668 2018-03-20 14:55:33Z lfairhead $
+#
+
+##############################################################
+# PARAMETRES ET CLES DE LA PHYSIQUE LMDZ
+##############################################################
+# D: Valeur par default
+#
+
+###########################################################
+# divers. Devrait aller dans config.def ?
+###########################################################
+##   Si=.T. ,  lecture du fichier limit avec la bonne annee 
+ok_limitvrai=n
+
+###########################################################
+# Parametres couche limite de surface
+###########################################################
+
+          #  ...
+f_cdrag_stable=1
+
+          # Facteur sur les coefficients de trainee terrestres
+f_cdrag_ter=1
+
+          # Vitesse minimum dans les calculs de trainee Cd ( || V || + Vmin )
+min_wind_speed=0.1
+
+          #  Modelisation des bosquets
+ifl_pbltree=1
+Cd_frein=0.016
+
+###########################################################
+# parameter des flux air-mer
+###########################################################
+
+          # Facteur sur les flux sensibles et latent
+          # Introduit pour reduire l evaporation quand on avait z0h=z0m
+          # CONSEILLE : 1
+f_cdrag_oce=1
+
+          # Flag controlant le calcul des z0
+iflag_z0_oce=1
+
+          # Rapport entre les Z0 latent et sensible
+f_z0qh_oce=1.55
+
+          # Activation des rafales : Oui 1 ou non 0
+iflag_gusts=2
+
+          # facteur pour les rafales des thermiques (bounary layer)
+f_gust_bl=0.845
+
+          # facteur pour les poches (wake)
+f_gust_wk=0.2
+
+          # facteur sur qsat pour tenir compte de la salinite
+f_qsat_oce=0.98
+
+          #cdmmax : valeur max de Cd moment. Sur ocean seulement
+cdmmax=0.2
+
+          #cdhmax : valeur max de Cd evap/sensible. Sur ocean seulement
+cdhmax=0.2
+
+####################################################################
+# Couche limite turbulente
+####################################################################
+
+          # Nouvelle version de Mellor et Yamada
+new_yamada4=y
+
+          # Choix du schema numerique pour new_yamada4=y
+          #  1 schema de MAR. Bien pour CL stables mais detruit les stratocu
+          #  5 schema de MAR modifie. Precaunise.
+yamada4_num=5
+
+          # Flag de controle de la couche limite stable
+iflag_corr_sta=4
+
+          # min sur les fonction de stabilite a la surface
+f_ri_cd_min=0.01
+
+          # max du Ric pour Kz. Decouplage plus grand pour Ric plus grand.
+yamada4_ric=0.18
+
+          # Longueur de melange minimum pour Kz
+lmixmin=0
+
+          #shema de la couche de surface (D:1, 1:LMD, 8:Mellor-Yamada) 
+iflag_pbl=12
+
+          # Seuils pour la diffusion turbulente
+ksta_ter=1e-07
+ksta=1e-10
+
+          #ok_kzmin : calcul Kzmin dans la CL de surface (D: y)
+ok_kzmin=n
+
+          # Creation de TKE par orographie sous-maille
+addtkeoro=2
+alphatkeoro=1
+smallscales_tkeoro=y
+
+
+####################################################################
+# Ondes de gravite / Orographie sous maille
+####################################################################
+
+          #  Orodr  ou  non   pour l orographie
+ok_orodr=y
+
+          #  Orolf  ou  non   pour l orographie              
+ok_orolf=y
+
+          #Rugoro : inclusion de l orographie sous maille dans le Cd de surface
+          # Obsolete avec l activation des ondes de gravite
+f_rugoro=0
+
+          # Parametres controlant l effet de l orographie sous maille
+sso_gfrcri=0.7
+sso_gkdrag=0.6
+sso_gkwake=0.4
+sso_gklift=0.1
+
+          # Random gravity waves
+          #Activitate the stochastic parameterization of convective GWs
+          # (should be equal to ok_strato)
+ok_gwd_rando=y
+
+          # Scale the momentum fluxes due to convective GWs
+gwd_rando_ruwmax=0.5
+
+          #Scale the saturated momentum flux of  convective GWs 
+gwd_rando_sat=0.6
+
+          # Important pour controler la periode de la QBO
+gwd_front_ruwmax=3
+
+
+###############################################################
+# Rayonnement
+###############################################################
+          # activation du nouveau code de rayonnement RRTM
+          # 0 : Ancien code et 1 : RRTM (D=0)
+iflag_rrtm=1
+
+          # Nombre de bandes pour le SW. Mettre 2 si iflag_rrtm=0
+NSW=6
+
+    # Albedo et inertie des calottes
+alb_vis_sno_lic=0.96
+alb_nir_sno_lic=0.68
+    # Controle de l'inertie des glaciers et banquises
+    # inertie_sno : pour la neige (y compris sur les points "ter"
+    #      quand orchidee n'est pas actif utilisÃ©)
+    # inertie_lic/sic : pour les "land ice" et "sea ice"
+inertie_sno=350
+    # iflag_sic=1 pour forcer Ã  garder l'inertie des "sea ice"
+    # a inertie_sic meme si la surface est couverte de neige
+iflag_sic=1
+inertie_lic=2000
+inertie_sic=2000
+    # tau_gl = constante de rappel de la temperature a la surface de la glace (en nombre de jours)
+tau_gl=5.
+          # ???
+iflag_albedo=1
+
+          # Frequence appel rayonnement. Nombre appels par jour
+nbapp_cv=48
+
+          # Pour pouvoir revenir a un bug purement informatique de duplication
+          # des constantes thermodynamiques entre LMDZ et RRTM
+          # n : FORTEMENT CONSEILLE
+ok_bad_ecmwf_thermo=n
+
+###############################################################
+# Parametres nuages
+###############################################################
+
+          #seuils de la precipitation des nuages strateformes (D: 2.6e-4 2.6e-4)
+cld_lc_lsc=0.000905133385273457
+cld_lc_con=0.000905133385273457
+
+          #constante de temps pour eleminer eau lsc et convective
+          # (D: 3600. 3600.)
+cld_tau_lsc=900
+cld_tau_con=900
+
+          #facteurs correctifs sur la vitesse de chute des cristaux de glace (D: 1 1)
+ffallv_lsc=1.12250807736772
+ffallv_con=1.12250807736772
+
+          # coefficient sur la reevaporation de la pluie (D: 2.e-5 n)
+          # regle a 3.e-5 sur des cas de cumulus en 1D
+coef_eva=0.0001
+
+          # flag pour la reevaporation de la pluie
+          # 0: rien
+          # 1: a l ancienne
+          # 2: prend en compte la surface nuageuse max au dessus pour calculer
+          #    le max de reevaporation, comme ecart a la saturation. CONSEILLE
+iflag_evap_prec=2
+
+          # Modification de la plage de temperature pour la phase mixte
+          # liquide/glace des nuages
+          # Controle par les t_glace_min/max, exposant_glace,
+          # iflag_t_glace (D=0)
+t_glace_min=243.15
+t_glace_max=273.15
+exposant_glace=0.5
+iflag_t_glace=3
+
+          # Activation de la thermodynamique de la glace
+iflag_ice_thermo=1
+
+          # normalement elle ne sert plus a rien dans fisrtilp
+          # sinon elle est un peu toxique:
+          # IF (zt(i) .LT. t_coup.and.reevap_ice) zrfln(i)=0. (Jean-Baptiste)
+reevap_ice=n
+
+          #Bergeron
+iflag_bergeron=2
+
+          # temperature dependency of qsat for iterative procedure
+          # temporary flag to switch between the old (CMIP5, D=0)
+          # and new versions (=1) versions 
+iflag_fisrtilp_qsat=4
+
+          #calcul des proprietes des nuages convectifs (D:1 0.375 1.e-4) 
+iflag_cldcon=6
+fact_cldcon=1
+
+          # ?????
+facttemps=0
+
+          #calcul eau condensee et fraction nuageuse a partir des PDF
+          # (D:0, 0:version avec ratqs sinon nouvelles PDFs)  
+iflag_pdf=1
+
+          #calcul epaisseur optique et emmissivite des nuages (D: y 1 0.01 0.3)
+ok_newmicro=y
+
+          # Controle des ratqs grande echelle
+iflag_ratqs=4
+ratqsp0=47054.7783916706
+ratqsdp=10434.1675478017
+ratqsbas=0.002
+ratqshaut=0.124463233117332
+
+          #rayon effectif pour les nuages de glace (D:35)
+rad_froid=35
+
+          # Rayons effectif des gouttes nuageuses
+          # ACTIF SI ok_cdnc=0 dans config.def. (D~9 a 12 microns)
+rad_chau1=12
+rad_chau2=11
+
+	  # Rayon effectif des gouttes si ok_cdnc=0
+          # Parameters in CDNC-maer link (Boucher&Lohmann 1995)
+bl95_b0=1.41039707952242
+bl95_b1=0.2
+
+          #  Choix ou non  de  New oliq               
+new_oliq=y
+
+          # Seuils oliqmax, oicemax (en g/kg).
+          # Au dela on precipite directement au sol
+oliqmax=0.0015
+oicemax=0.0015
+
+          #Rayons min et max effectifs des particules des nuages
+rei_min=20.2793
+rei_max=77.6823
+
+          # Distribution vetricale sous maille pour le schema de de nuages.
+          # 0: rien
+          # 1: Premiere version A. Jam,
+          # 2 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5
+          # 3 : J. Jouhaud, parametre cloudth_vert_alpha D=0.5/C= 1.32
+          #                           cloudth_vert_alpha_th C=2:91
+iflag_cloudth_vert=3
+cloudth_vert_alpha=0.5
+cloudth_vert_alpha_th=0.5
+
+
+######################################################################
+# Convection 
+######################################################################
+
+          #Convection scheme switch
+          # (D:2, 1:LMD, 2:Tiedtke, 3:KE New Physics, 30:KE AR4)
+iflag_con=3
+
+          #output level of energy conservation diagnostics
+if_ebil=0
+
+          #maximum efficiency of cld water->precipitation conversion (D: 0.993)
+epmax=0.99903
+
+          #dry convective adjustment at beginning of Emanuel convective scheme (D: n 0)
+ok_adj_ema=n
+iflag_clw=0
+
+          #Convective closure (D:1, 0:AR4, 2:ALE and ALP)
+iflag_clos=2
+
+          #Convective entrainment mixing law (D:1, 0:AR4=flat PDF, 1=PDF)
+iflag_mix=1
+
+          #weights of the bell shaped and flat PDF (used only if iflag_mix=1) (D: 1 0)
+qqa1=1
+qqa2=0
+
+          #Parameters of the bell shaped PDF; Fmax=center (D= 0.65), Gammas=width (D=0.05)
+cvl_corr=1
+
+          #Multiplicative factor of Emanuel convective scheme precipitation (D: 1.)
+Fmax=0.65
+
+          #altitude, in hPa, above LCL at which buoybase is computed,
+          # def = original: -40
+dpbase=-40
+
+          #reference fractional area of precipitating downdraughts,
+          # def = original: 0.01
+sigdz=0.0133171771759075
+
+          #unsaturated fraction of precipitating downdraughts, def = original: 0.15
+spfac=0.15
+
+          #relaxation time of cloud base mass flux, def = original: 8000
+tau=8000
+
+          #flag for wb (= vert velocity at LFC);
+          # 0->wb=wbmax=2.30417215550136
+          # Si iflag_wb=44.8292
+          # wbmax=2.30417215550136
+flag_wb=44.8292
+wbmax=2.30417215550136
+
+          # Divers tests
+ok_convstop=n
+tau_stop=15000
+ok_intermittent=n
+
+          # nouvel epluchage de C.Rio
+          #shedding coefficient (used when iflag_mix_adiab=1)
+iflag_mix_adiab=0
+coef_peel=0.25
+
+          #Conversion cld water->precip: Ep=f(pressure) if 0; Ep=f(temperature)
+          #if 1, def=1
+flag_epKEorig=1
+
+          # Case : flag_epKEorig=1
+          # elcrit=0.000543938455300562
+          # tlcrit=-44.1596633585107
+          # original: 0.0011, used only if flag_epKEorig=1
+elcrit=0.000543938455300562
+tlcrit=-44.1596633585107
+
+          # Case : flag_epKEorig=0
+          # pbcrit : pressure (hPa), above LCL below which Ep=0, D=150 (original)
+          # ptcrit : pressure (hPa), above LCL above which Ep=Epmax, D=500 (original)
+pbcrit=150
+ptcrit=500
+
+          # Precipitation ejection from adiabatic ascents
+          # cvflag_prec_eject: when TRUE ejection is activated. Default: False
+          # ejectliq : 0. =>liquid precipitation is carried up in the adiab updraughts
+          #            1. =>liquid precipitation is ejected from adiab updraughts
+          # ejectice   0. =>solid precipitation is carried up in the adiab updraughts
+          #            1. =>solid precipitation is ejected from adiab updraughts
+          # ejectliq may take only 0. and 1. values
+          # ejectice may take any value between 0. and 1.
+          #   Default : ejectliq=0., ejectice=0.
+cvflag_prec_eject=y
+ejectliq=1.
+ejectice=0.
+          #
+          #
+          # Prevent some crashes
+          # Filter out bad wakes
+flag_wk_check_trgl=n
+iflag_wk_check_trgl=2
+iflag_alp_wk_cond=1
+
+
+          # Check whether parcel level temperature and specific humidity
+          # are reasonable and demand that LCL be high enough
+cv_flag_feed=2
+
+          # save 20% CPU 
+ok_optim_yield=y
+
+          # Convective clouds
+iflag_cld_cv=0
+
+          # To get back to bug where convective output variables
+          # were set to 0 at the start of the physics
+ok_bug_cv_trac=n
+
+           # solving of the temperature equation for the adiabatic ascent
+           # 0 -> AJ scheme in two loops ; ice fraction given by envt. temp.
+           # 1 -> JYG scheme in one loop ; ice fraction given by envt. temp.
+           # 2 -> JYG scheme in one loop ; ice fraction given by adiab. asc. temp.
+           # 2 is costly and ill tested; experts only.
+icvflag_Tpa=1
+          
+           # taking into account the dependence of qv on qt at saturation
+qsat_depends_on_qt=n
+           #
+           #                                                        
+##########################################################
+# Fermeture convective et couplages
+##########################################################
+
+          # Appel separe des thermiques 
+iflag_pbl_split=10
+
+          #rendement sur la puissance fournie par les thermiques a la convection
+alp_bl_k=0.447851107422443
+
+          #Constant value to be added to Alp (D: 0.)
+alp_offset=0
+
+          #Convection must reach a level at which T<t_top_max to be active
+t_top_max=1000
+
+          ### nrlmd le 10/04/2012: Declenchement ###
+          #Declenchement par couche-limite (0: deterministe, 1: stochastique)
+iflag_trig_bl=1
+
+          #Surface critique au LCL
+s_trig=12000000
+
+          #Temps de decorrelation entre scenes de cumulus
+tau_trig_shallow=1200
+
+          #Temps de decorrelation entre scenes de cumulonimbus
+tau_trig_deep=1200
+
+          # Pour la stabilisation
+random_notrig_max=0.99
+
+          # Temperature a la quelle on fond les descentes glacees
+tmax_fonte_cv=278.15
+
+          #Fermeture par couche-limite (Nicolas Rochetin)
+          #(0: deterministe, 1: statistique, 2: statistique+convergence
+          # grande echelle)
+iflag_clos_bl=1
+
+          #coefficient in Wape->C_star formula: C_star=stark*sqrt(2*Wape),
+          # def: 0.33
+stark=0.33
+
+          #lifting efficiency of wakes; Alp=Alpk*Fip, Fip=power provided
+          # by wakes, def: 0.25
+alpk=0.452477098845889
+
+#
+##########################################################
+# Couche limite convective / modele du thermique
+##########################################################
+
+          # Convection seche (D:0, 0:ajustement sec,=>1:modele du thermique) 
+iflag_thermals=18
+
+          # pas de temps du spliting pour les thermiques
+          # TOURNE MAIS POSE PLUS DE PROBLEME QU ELLE N EN RESOUD
+nsplit_thermals=1
+
+          # tau_thermals pour avoir une constante de temps sur les thermiques.
+          # Non valide
+tau_thermals=0
+
+          # Flag controlant le detrainement et l entrainement
+iflag_thermals_ed=8
+
+          # On va chercher l air a z * ( 1+fact_thermals_ed_dz=0.071136860533767
+          # le detrainement (A. Jam)
+fact_thermals_ed_dz=0.071136860533767
+
+          # Une option de plus sur les thermiques.
+iflag_thermals_optflux=0
+
+          #couplage ou non avec la convection
+iflag_coupl=5
+
+          # Seuil pour desactiver les thermiques en cas de forte inversion
+          # en sommet de couche limite. Actif si iflag_thermals impair.
+seuil_inversion=-0.08
+
+          # Reactivation du calcul d un zmax continu pour les thermiques
+          # reactivation d une fermeture humide des thermiques
+          # iflag_thermals_closure=2 (D=1)
+iflag_thermals_closure=2
+
+
+##########################################################
+# Flags wakes
+##########################################################
+
+          #Wake scheme switch (D:0, 0:AR4, 1:New Physics)
+iflag_wake=1
+
+          #multiplicative factor of the damping by gravity waves, def: 4.
+coefgw=4
+
+          #wake density = number of wake centers per m2, def: 8.E-12
+          #wdens_ref=8.E-12
+wdens_ref_o=2.48172770915308e-09
+wdens_ref_l=8e-12
+
+          # Ajustement convectif prealable au calcul des poches
+ok_adjwk=y
+
+
+####################################################################
+#  Conservation 
+####################################################################
+
+          # The source terms of the TKE prognostic equation are diagnosed
+          # from tendencies (du, dv, dT) 
+          # associated with subrgrid scaleamotions and treated as an 
+          # additional heat source.
+          # Controled by a key, iflag_ener_conserv (D=-1):
+          # 0 : no conservation, -1 : old adhoc correction for kinetic E only
+          # (used for CMIP5) 
+          # 1 : conservation, 101 : conversion from kinetic to heat only,
+          # 110 conversion from potential to heat only
+iflag_ener_conserv=10
+
+          #Activation of corrections for water conservation (D: n). 
+          ##The default is n for compatibility with earlier versions.
+          ##generally it should be y.
+ok_conserv_q=y
+
+fl_cor_ebil=1
+
+####################################################################
+# Ozone
+####################################################################
+          # new treatment for ozone into the tropopause
+adjust_tropopause=y
+
+####################################################################
+#  Conservation de l'eau
+#####################################################################
+          # conservation de l eau sur les calottes
+ok_lic_cond=y
+
+cdnc_min=10.
+CLDCV=2.54700616224038
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_LMDZ.xml
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_LMDZ.xml	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_LMDZ.xml	(revision 5899)
@@ -0,0 +1,585 @@
+<!-- $Id: CMIP6_ping_atmos.xml 3353 2018-06-28 09:52:05Z fairhead $ -->
+<!-- Ping files generated by dr2xml 0.27 using Data Request 01.00.21 -->
+<!-- lrealms= ['atmos'] -->
+<!-- exact= False -->
+<!--  listof_home_vars : None
+ tierMax : 3
+ realms_per_context : {'lmdz': ['atmos', 'atmos land'], 'nemo': ['seaIce', 'ocean', 'ocean seaIce', 'ocnBgchem', 'seaIce ocean'], 'orchidee': ['land', 'landIce land', 'land landIce', 'landIce']}
+ max_priority : 3
+ max_file_size_in_floats : 20000000000.0
+ grid_choice : {'IPSL-CM6A-LR': 'LR'}
+ excluded_vars_file : None
+ sizes : {'LR': [20592, 79, 32768, 91, 30, 14, 128]}
+ ping_variables_prefix : CMIP6_
+ source_types : {'IPSL-CM6A-LR': 'AOGCM AER BGC'}
+ path_extra_tables : None
+ grid_policy : native
+ path_special_defs : None
+ mips : {'LR': set(['CORDEX', 'GMMIP', 'RFMIP', 'VolMIP', 'CMIP6', 'ScenarioMIP', 'GeoMIP', 'C4MIP', 'PDRMIP', 'CMIP', 'DECK', 'LUMIP', 'CMIP5', 'CFMIP', 'OMIP', 'DAMIP', 'CCMI', 'SolarMIP', 'VIACSAB', 'SIMIP', 'DCPP', 'ISMIP6', 'AerChemMIP', 'PMIP', 'FAFMIP', 'DynVar', 'LS3MIP', 'SPECS', 'HighResMIP'])}
+ excluded_vars : []
+ orphan_variables : {}
+--> 
+
+<context id="LMDZ">
+<field_definition>
+<!-- for variables which realm equals one of _atmos-->
+   <field id="CMIP6_H2p"           field_ref="dummy_not_provided"           /> <!-- P1 ()  : 2H in total precipitation -->
+   <field id="CMIP6_H2s"           field_ref="dummy_not_provided"           /> <!-- P1 ()  : 2H in solid precipitation -->
+   <field id="CMIP6_H2wv"          field_ref="dummy_not_provided"           /> <!-- P1 ()  : H2 in water vapor -->
+   <field id="CMIP6_O17p"          field_ref="dummy_not_provided"           /> <!-- P1 ()  : 17O in total precipitation -->
+   <field id="CMIP6_O17s"          field_ref="dummy_not_provided"           /> <!-- P1 ()  : 17O in solid precipitation -->
+   <field id="CMIP6_O17wv"         field_ref="dummy_not_provided"           /> <!-- P1 ()  : O17 in water vapor -->
+   <field id="CMIP6_O18p"          field_ref="dummy_not_provided"           /> <!-- P1 ()  : 18O in total precipitation -->
+   <field id="CMIP6_O18s"          field_ref="dummy_not_provided"           /> <!-- P1 ()  : 18O in solid precipitation -->
+   <field id="CMIP6_O18wv"         field_ref="dummy_not_provided"           /> <!-- P1 ()  : O18 in water vapor -->
+   <field id="CMIP6_aerasymbnd"    field_ref="dummy_not_provided"           /> <!-- P1 (1) band_aerosol_asymmetry_parameter : Aerosol level asymmetry parameter for each band -->
+   <field id="CMIP6_aeroptbnd"     field_ref="dummy_not_provided"           /> <!-- P1 (1) atmosphere_absorption_optical_thickness_due_to_ambient_aerosol_particles : Aerosol level extinction optical depth for each band -->
+   <field id="CMIP6_aerssabnd"     field_ref="dummy_not_provided"           /> <!-- P1 (1) single_scattering_albedo_in_air_due_to_ambient_aerosol_particles : Aerosol level single-scattering albedo for each band -->
+   <field id="CMIP6_albdiffbnd"    field_ref="dummy_not_provided"           /> <!-- P1 (1) band_diffuse_albedo : Diffuse surface albedo for each band -->
+   <field id="CMIP6_albdirbnd"     field_ref="dummy_not_provided"           /> <!-- P1 (1) band_direct_albedo : Direct surface albedo for each band -->
+   <field id="CMIP6_albisccp"      field_ref="albisccp"                     /> <!-- P1 (1) cloud_albedo : time-means are weighted by the ISCCP Total Cloud Fraction - see  http://cfmip.metoffice.com/COSP.html -->
+   <field id="CMIP6_aod550volso4"  field_ref="od550_STRAT"                  /> <!-- P1 (1e-09) aerosol_optical_depth_due_to_stratospheric_volcanic_aerosols : aerosol optical thickness at 550 nm due to stratospheric volcanic aerosols  -->
+   <field id="CMIP6_areacella"     field_ref="aire"                         /> <!-- P1 (m2) cell_area : Cell areas for any grid used to report atmospheric variables and any other variable using that grid (e.g., soil moisture content). These cell areas should be defined to enable exact calculation of global integrals (e.g., of vertical fluxes of energy at the surface and top of the atmosphere). -->
+   <field id="CMIP6_ccb"           field_ref="pbase"                        /> <!-- P1 (Pa) air_pressure_at_convective_cloud_base : Air Pressure at Convective Cloud Base -->
+   <field id="CMIP6_ccldncl"       field_ref="dummy_XY"                     /> <!-- P1 (m-3) number_concentration_of_convective_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top : Cloud Droplet Number Concentration of Convective Cloud Tops -->
+   <field id="CMIP6_cct"           field_ref="ptop"                         /> <!-- P1 (Pa) air_pressure_at_convective_cloud_top : Air Pressure at Convective Cloud Top -->
+   <field id="CMIP6_cfadDbze94"    field_ref="cfadDbze94"                   /> <!-- P1 (1) histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid : CloudSat Radar Reflectivity CFAD -->
+   <field id="CMIP6_cfadLidarsr532" field_ref="cfad_lidarsr532"             /> <!-- P1 (1) histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid : CALIPSO Scattering Ratio -->
+   <field id="CMIP6_cfc113global"  field_ref="dummy_not_provided"           /> <!-- P1 (1e-12) mole_fraction_of_cfc113_in_air : Global Mean Mole Fraction of CFC113 -->
+   <field id="CMIP6_cfc11global"   field_ref="CFC11_ppt"                    /> <!-- P1 (1e-12) mole_fraction_of_cfc11_in_air : Global Mean Mole Fraction of CFC11 -->
+   <field id="CMIP6_cfc12global"   field_ref="CFC12_ppt"                    /> <!-- P1 (1e-12) mole_fraction_of_cfc12_in_air : Global Mean Mole Fraction of CFC12 -->
+   <field id="CMIP6_ch4"           field_ref="dummy_not_provided"           /> <!-- P1 (mol mol-1) mole_fraction_of_methane_in_air : Mole Fraction of CH4 -->
+   <field id="CMIP6_ch4global"     field_ref="CH4_ppb"                      /> <!-- P1 (1e-09) mole_fraction_of_methane_in_air : Global Mean Mole Fraction of CH4 -->
+   <field id="CMIP6_ci"            field_ref="ftime_con"                    /> <!-- P1 (1) convection_time_fraction : Fraction of time that convection occurs in the grid cell. -->
+   <field id="CMIP6_cl"            field_ref="rneb"> rneb*100.      </field>   <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : Cloud Area Fraction in Atmosphere Layer -->
+   <field id="CMIP6_clc"           field_ref="rnebcon"> rnebcon*100. </field>  <!-- P1 (%) convective_cloud_area_fraction_in_atmosphere_layer : Convective Cloud Area Fraction -->
+   <field id="CMIP6_clcalipso"     field_ref="pclcalipso"                   /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : CALIPSO Cloud Area Fraction --> 
+   <field id="CMIP6_clcalipso2"    field_ref="clcalipso2"                   /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : CALIPSO Cloud Fraction Undetected by CloudSat --> 
+   <field id="CMIP6_clcalipsoice"  field_ref="clcalipsoice"                 /> <!-- P1 (%) ice_cloud_area_fraction_in_atmosphere_layer : CALIPSO Ice Cloud Fraction -->
+   <field id="CMIP6_clcalipsoliq"  field_ref="clcalipsoliq"                 /> <!-- P1 (%) liquid_cloud_area_fraction_in_atmosphere_layer : CALIPSO Liquid Cloud Fraction -->
+   <field id="CMIP6_cldicemxrat"   field_ref="cldicemxrat"                  /> <!-- P2 (1) cloud_ice_mixing_ratio : Cloud Ice Mixing Ratio -->
+   <field id="CMIP6_cldnci"        field_ref="dummy_XY"                     /> <!-- P1 (m-3) number_concentration_of_ice_crystals_in_air_at_ice_cloud_top : Ice Crystal Number Concentration of Cloud Tops -->
+   <field id="CMIP6_cldncl"        field_ref="cldncl" expr=" @cldncl / @lcc" > cldncl / lcc </field> <!-- P1 (m-3) number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top : Cloud Droplet Number Concentration of Cloud Tops -->
+   <field id="CMIP6_cldnvi"        field_ref="dummy_not_provided"           /> <!-- P1 (m-2) atmosphere_number_content_of_cloud_droplets : Column Integrated Cloud Droplet Number -->
+   <field id="CMIP6_cldwatmxrat"   field_ref="cldwatmxrat"                  /> <!-- P2 (1) cloud_liquid_water_mixing_ratio : Cloud Water Mixing Ratio -->
+   <field id="CMIP6_clhcalipso"    field_ref="pclhcalipso"                  /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : CALIPSO Percentage High Level Cloud -->
+   <field id="CMIP6_cli"           field_ref="iwcon"                        /> <!-- P1 (kg kg-1) mass_fraction_of_cloud_ice_in_air : Includes both large-scale and convective cloud. This is the mass of cloud ice in the grid cell divided by the mass of air (including the water in all phases) in the grid cell. This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clic"          field_ref="icc3dcon"                     /> <!-- P2 (1) mass_fraction_of_convective_cloud_ice_in_air : Calculated as the mass of convective cloud ice  in the grid cell divided by the mass of air (including the water in all phases) in the grid cell.  This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model. -->
+   <field id="CMIP6_climodis"      field_ref="climodis"                     /> <!-- P1 (%) ice_cloud_area_fraction : MODIS Ice Cloud Fraction -->
+   <field id="CMIP6_clis"          field_ref="icc3dstra"                    /> <!-- P2 (1) mass_fraction_of_stratiform_cloud_ice_in_air : Calculated as the mass of stratiform cloud ice  in the grid cell divided by the mass of air (including the water in all phases) in the grid cell.  This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clisccp"       field_ref="clisccp2"                     /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : ISCCP Percentage Cloud Area -->
+   <field id="CMIP6_clivi"         field_ref="iwp"                          /> <!-- P1 (kg m-2) atmosphere_cloud_ice_content : mass of ice water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clivic"        field_ref="dummy_XY"                     /> <!-- P1 (kg m-2) atmosphere_convective_cloud_ice_content : Convective Ice Water Path  -->
+   <field id="CMIP6_cllcalipso"    field_ref="pcllcalipso"                  /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : CALIPSO Percentage Low Level Cloud -->
+   <field id="CMIP6_clmcalipso"    field_ref="pclmcalipso"                  /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : CALIPSO Percentage Mid Level Cloud -->
+   <field id="CMIP6_clmisr"        field_ref="clMISR"                       /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : MISR cloud area fraction -->
+   <field id="CMIP6_cls"           field_ref="dummy_XYA"                    /> <!-- P1 (%) stratiform_cloud_area_fraction_in_atmosphere_layer : Stratiform Cloud Area Fraction -->
+   <field id="CMIP6_clt"           field_ref="cldt"> cldt*100.        </field> <!-- P1 (%) cloud_area_fraction : for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes both large-scale and convective cloud. -->
+   <field id="CMIP6_clt_land"      field_ref="cldt"> cldt*100.        </field> <!-- P1 (%) cloud_area_fraction : Total cloud fraction -->
+   <field id="CMIP6_cltc"          field_ref="dummy_XY"         /> <!-- P1 (%) convective_cloud_area_fraction : For the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes only convective cloud. -->
+   <field id="CMIP6_cltcalipso"    field_ref="pcltcalipso"                  /> <!-- P1 (%) cloud_area_fraction :  CALIPSO Total Cloud Fraction -->
+   <field id="CMIP6_cltisccp"      field_ref="tclisccp"                     /> <!-- P1 (%) cloud_area_fraction : ISCCP Total Cloud Fraction -->
+   <field id="CMIP6_cltmodis"      field_ref="cltmodis"                     /> <!-- P1 (%) cloud_area_fraction : MODIS Total Cloud  Fraction -->
+   <field id="CMIP6_clw"           field_ref="lwcon"                        /> <!-- P1 (kg kg-1) mass_fraction_of_cloud_liquid_water_in_air : Includes both large-scale and convective cloud. Calculate as the mass of cloud liquid water in the grid cell divided by the mass of air (including the water in all phases) in the grid cells. Precipitating hydrometeors are included ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clwc"          field_ref="lcc3dcon"                     /> <!-- P2 (1) mass_fraction_of_convective_cloud_liquid_water_in_air : Calculated as the mass of convective cloud liquid water in the grid cell divided by the mass of air (including the water in all phases) in the grid cell.  This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clwmodis"      field_ref="clwmodis"                     /> <!-- P1 (%) liquid_water_cloud_area_fraction : MODIS Liquid Cloud Fraction -->
+   <field id="CMIP6_clws"          field_ref="lcc3dstra"                    /> <!-- P2 (1) mass_fraction_of_stratiform_cloud_liquid_water_in_air : Calculated as the mass of stratiform cloud liquid water in the grid cell divided by the mass of air (including the water in all phases) in the grid cell.  This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clwvi"         field_ref="lwp"                          /> <!-- P1 (kg m-2) atmosphere_cloud_condensed_water_content : mass of condensed (liquid + ice) water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Includes precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model. -->
+   <field id="CMIP6_clwvic"        field_ref="dummy_XY"                     /> <!-- P1 (kg m-2) atmosphere_convective_cloud_condensed_water_content : Convective Condensed Water Path -->
+   <field id="CMIP6_co2"           field_ref="dummy_not_provided"           /> <!-- P1 (mol mol-1) mole_fraction_of_carbon_dioxide_in_air :  Mole Fraction of CO2 -->
+   <field id="CMIP6_co23D"         field_ref="dummy_not_provided"           /> <!-- P2 (kg kg-1) CO2_3D_tracer : requested for all Emissions-driven runs -->
+   <field id="CMIP6_co2mass"       field_ref="mass_sum"> co2_ppm*1e-6*44.011/28.97*mass_sum </field> <!-- P1 (kg) atmosphere_mass_of_carbon_dioxide : Total Atmospheric Mass of CO2 -->
+   <field id="CMIP6_co2s"          field_ref="dummy_not_provided"           /> <!-- P2 (1e-06) mole_fraction_of_carbon_dioxide_in_air : Atmosphere CO2 -->
+   <field id="CMIP6_columnmassflux" field_ref="dummy_XY"                    /> <!-- P2 (kg m-2 s-1) atmosphere_net_upward_convective_mass_flux : Column integrated mass flux -->
+   <field id="CMIP6_conccmcn"      field_ref="dummy_not_provided"           /> <!-- P1 (m-3) number_concentration_of_coarse_mode_ambient_aerosol_in_air : Number Concentration Coarse Mode Aerosol -->
+   <field id="CMIP6_conccn"        field_ref="dummy_not_provided"           /> <!-- P1 (m-3) number_concentration_of_ambient_aerosol_in_air : Aerosol Number Concentration -->
+   <field id="CMIP6_concdust"      field_ref="concdust"                     /> <!-- P1 (kg m-3) mass_concentration_of_dust_dry_aerosol_in_air : Concentration of Dust -->
+   <field id="CMIP6_concnmcn"      field_ref="dummy_not_provided"           /> <!-- P1 (m-3) number_concentration_of_nucleation_mode_ambient_aerosol_in_air : Number Concentration of Nucleation Mode Aerosol -->
+   <field id="CMIP6_demc"          field_ref="dummy_not_provided"                    /> <!-- P2 (1) convective_cloud_longwave_emissivity : This is the in-cloud emissivity obtained by considering only the cloudy portion of the grid cell. -->
+   <field id="CMIP6_dems"          field_ref="dummy_not_provided"                    /> <!-- P2 (1) stratiform_cloud_longwave_emissivity : This is the in-cloud emissivity obtained by considering only the cloudy portion of the grid cell. -->
+   <field id="CMIP6_diabdrag"      field_ref="dummy_XYA"                    /> <!-- P1 (m s-2) tendency_of_eastward_wind_due_to_numerical_artefacts : Tendency of Eastward Wind from Numerical Artefacts -->
+   <field id="CMIP6_dmc"           field_ref="upwd"                         /> <!-- P2 (kg m-2 s-1) atmosphere_net_upward_deep_convective_mass_flux : The net mass flux  represents the difference between the updraft and downdraft components.   This is calculated as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud). -->
+   <field id="CMIP6_dtauc"         field_ref="dummy_not_provided"           /> <!-- P2 (1) atmosphere_optical_thickness_due_to_convective_cloud : This is the in-cloud optical depth obtained by considering only the cloudy portion of the grid cell -->
+   <field id="CMIP6_dtaus"         field_ref="dummy_not_provided"           /> <!-- P2 (1) atmosphere_optical_thickness_due_to_stratiform_cloud : This is the in-cloud optical depth obtained by considering only the cloudy portion of the grid cell. -->
+   <field id="CMIP6_edt"           field_ref="kz"                           /> <!-- P1 (m2 s-1) atmosphere_heat_diffusivity : Eddy Diffusivity Coefficient for Temperature Variable -->
+   <field id="CMIP6_epfy"          field_ref="dummy_XYA"                    /> <!-- P1 (m3 s-2) northward_eliassen_palm_flux_in_air : Northward Component of the Eliassen-Palm Flux -->
+   <field id="CMIP6_epfz"          field_ref="dummy_XYA"                    /> <!-- P1 (m3 s-2) upward_eliassen_palm_flux_in_air : zonal mean; hence YZT -->
+   <field id="CMIP6_evspsbl"       field_ref="evap"                         /> <!-- P1 (kg m-2 s-1) water_evaporation_flux : Evaporation at surface; flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation) -->
+   <field id="CMIP6_evu"           field_ref="evu"                          /> <!-- P1 (m2 s-1) atmosphere_momentum_diffusivity : Eddy Viscosity Coefficients for Momentum -->
+   <field id="CMIP6_fco2antt"      field_ref="dummy_not_provided"           /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission : This is requested only for the emission-driven coupled carbon climate model runs.  Does not include natural fire sources but, includes all anthropogenic sources, including fossil fuel use, cement production, agricultural burning, and sources associated with anthropogenic land use change excluding forest regrowth. -->
+   <field id="CMIP6_fco2fos"       field_ref="dummy_not_provided"           /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion : This is the prescribed anthropogenic CO2 flux from fossil fuel use, including cement production, and flaring (but not from land-use changes, agricultural burning, forest regrowth, etc.) -->
+   <field id="CMIP6_fco2nat"       field_ref="dummy_not_provided"           /> <!-- P1 (kg m-2 s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources : This is what the atmosphere sees (on its own grid).  This field should be equivalent to the combined natural fluxes of carbon (requested in the L_mon and O_mon tables) that account for natural exchanges between the atmosphere and land or ocean reservoirs (i.e., "net ecosystem biospheric productivity", for land, and "air to sea CO2 flux", for ocean.) -->
+   <field id="CMIP6_grpllsprof"    field_ref="dummy_not_provided"           /> <!-- P2 (kg m-2 s-1) large_scale_graupel_flux : Stratiform Graupel Flux  -->
+   <field id="CMIP6_grplmxrat"     field_ref="dummy_not_provided"           /> <!-- P2 (1) mass_fraction_of_graupel_in_air : Graupel Mixing Ratio -->
+   <field id="CMIP6_h2o"           field_ref="ovap"> ovap+ocond       </field> <!-- P2 (1) mass_fraction_of_water_in_air : includes all phases of water -->
+   <field id="CMIP6_hcfc22global"  field_ref="dummy_not_provided"           /> <!-- P1 (1e-12) mole_fraction_of_hcfc22_in_air : Global Mean Mole Fraction of HCFC22 -->
+   <field id="CMIP6_hfdsl"         field_ref="bils"> bils*fract_ter   </field> <!-- P1 (W m-2) surface_downward_heat_flux_in_air : Ground heat flux -->
+   <field id="CMIP6_hfdsnb"        field_ref="dummy_not_provided"           /> <!-- P1 (W m-2)  : Downward heat flux at snow botton -->
+   <field id="CMIP6_hfls_ist"      field_ref="lat_lic"                      /> <!-- P1 (W m-2) surface_upward_latent_heat_flux : Surface Upward Latent Heat Flux -->
+   <field id="CMIP6_hfls_land"     field_ref="lat_ter"                      /> <!-- P1 (W m-2) surface_upward_latent_heat_flux : Latent heat flux -->
+   <field id="CMIP6_hfls"          field_ref="flat"> flat*(-1.)       </field>  <!-- P1 (W m-2) surface_upward_latent_heat_flux : Surface Upward Latent Heat Flux -->
+   <field id="CMIP6_hfmlt"         field_ref="dummy_not_provided"           /> <!-- P1 (W m-2) surface_snow_and_ice_melt_heat_flux : Energy of fusion -->
+   <field id="CMIP6_hfrs"          field_ref="dummy_not_provided"           /> <!-- P1 (W m-2) temperature_flux_due_to_rainfall_expressed_as_heat_flux_onto_snow_and_ice : Heat transferred to snowpack by rainfall -->
+   <field id="CMIP6_hfsbl"         field_ref="dummy_not_provided"           /> <!-- P1 (W m-2) surface_snow_and_ice_sublimation_heat_flux : Energy of sublimation -->
+   <field id="CMIP6_hfss"          field_ref="sens"> sens*(-1.)       </field> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : Surface Upward Sensible Heat Flux -->
+   <field id="CMIP6_hfss_land"     field_ref="sens_ter"                     /> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : Sensible heat flux -->
+   <field id="CMIP6_hfss_ist"      field_ref="sens_lic"                     /> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : Surface Upward Sensible Heat Flux -->
+   <field id="CMIP6_hur"           field_ref="rhum"> rhum*100.        </field> <!-- P1 (%) relative_humidity : This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C. -->
+   <field id="CMIP6_hurs"          field_ref="rh2m"             /> <!-- P1 (%) relative_humidity : This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C. -->
+   <field id="CMIP6_hursmax"       field_ref="rh2m_max" freq_op="1d" > @rh2m_max </field> <!-- P1 (%) relative_humidity : This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C. -->   
+   <field id="CMIP6_hursmin"       field_ref="rh2m_min" freq_op="1d" > @rh2m_min </field> <!-- P1 (%) relative_humidity : This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C. -->  
+   <field id="CMIP6_hursminCrop"   field_ref="dummy_not_provided"         /> <!-- P1 (%) relative_humidity : Daily Minimum Near-Surface Relative Humidity over Crop Tile -->
+   <field id="CMIP6_hus"           field_ref="ovap"             /> <!-- P1 (1.0) specific_humidity : Specific Humidity -->
+   <field id="CMIP6_huss"          field_ref="q2m"              /> <!-- P1 (1.0) specific_humidity : This is sampled synoptically. -->
+   <field id="CMIP6_iareafl"       field_ref="fract_sic"         >fract_sic*aire </field> <!-- P3 (m2) floating_ice_shelf_area : Antarctica -->
+   <field id="CMIP6_iareagr"       field_ref="fract_lic"         >fract_lic*aire </field> <!-- P3 (m2) grounded_ice_sheet_area : Greenland -->
+   <field id="CMIP6_intuadse"      field_ref="ue"               /> <!-- P1 (1.e6 J m-1 s-1) vertical_integral_eastward_wind_by_dry_static_energy : Vertically integrated Eastward dry transport (cp.T +zg).u (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit) -->
+   <field id="CMIP6_intuaw"        field_ref="uwat"             /> <!-- P1 (kg m-1 s-1) vertical_integral_eastward_wind_by_total_water : Vertically integrated Eastward moisture transport (Mass_weighted_vertical integral of the product of eastward wind by total water mass per unit mass) -->
+   <field id="CMIP6_intvadse"      field_ref="ve"               /> <!-- P1 (1.e6 J m-1 s-1) vertical_integral_northward_wind_by_dry_static_energy : Vertically integrated Northward dry transport (cp.T +zg).v (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit) -->
+   <field id="CMIP6_intvaw"        field_ref="vwat"             /> <!-- P1 (kg m-1 s-1) vertical_integral_northward_wind_by_total_water : Vertically integrated Northward moisture transport (Mass_weighted_vertical integral of the product of northward wind by total water mass per unit mass) -->
+   <field id="CMIP6_jo2"           field_ref="dummy_not_provided"        /> <!-- P1 (s-1) photolysis_rate_of_molecular_oxygen : zonal mean; hence YZT -->
+   <field id="CMIP6_jo3"           field_ref="dummy_not_provided"        /> <!-- P1 (s-1) photolysis_rate_of_ozone : zonal mean; hence YZT --> 
+   <field id="CMIP6_jpdftaureicemodis" field_ref="crimodis"              /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : MODIS Optical Thickness-Particle Size joint  distribution, ice -->
+   <field id="CMIP6_jpdftaureliqmodis" field_ref="crlmodis"              /> <!-- P1 (%) cloud_area_fraction_in_atmosphere_layer : MODIS Optical Thickness-Particle Size joint  distribution, liquid -->
+   <field id="CMIP6_latitude"      field_ref="dummy_not_provided"        /> <!-- P1 (degrees_north) latitude : Latitude -->
+   <field id="CMIP6_lim"           field_ref="dummy_not_provided"        /> <!-- P2 (kg) land_ice_mass : Greenland -->
+   <field id="CMIP6_limnsw"        field_ref="dummy_not_provided"        /> <!-- P2 (kg) land_ice_mass_not_displacing_sea_water : Greenland -->
+   <field id="CMIP6_loadbc"        field_ref="loadbc"           /> <!-- P1 (kg m-2) atmosphere_mass_content_of_black_carbon_dry_aerosol : Load of Black Carbon Aerosol -->
+   <field id="CMIP6_loaddust"      field_ref="loaddust"         /> <!-- P1 (kg m-2) atmosphere_mass_content_of_dust_dry_aerosol : Load of Dust -->
+   <field id="CMIP6_loadnh4"       field_ref="dummy_not_provided"         /> <!-- P1 (kg m-2) atmosphere_mass_content_of_ammonium_dry_aerosol : Load of NH4 -->
+   <field id="CMIP6_loadno3"       field_ref="loadno3"          /> <!-- P1 (kg m-2) atmosphere_mass_content_of_nitrate_dry_aerosol : Load of NO3 -->
+   <field id="CMIP6_loadoa"        field_ref="loadoa"           /> <!-- P1 (kg m-2) atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol : Load of Dry Aerosol Organic Matter -->
+   <field id="CMIP6_loadpoa"       field_ref="loadoa"           /> <!-- P1 (kg m-2) atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol : Load of Dry Aerosol Primary Organic Matter -->
+   <field id="CMIP6_loadso4"       field_ref="loadso4"          /> <!-- P1 (kg m-2) atmosphere_mass_content_of_sulfate_dry_aerosol : Load of SO4 -->
+   <field id="CMIP6_loadsoa"       field_ref="dummy_not_provided"         /> <!-- P1 (kg m-2) atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol : Load of Dry Aerosol Secondary Organic Matter -->
+   <field id="CMIP6_loadss"        field_ref="loadss"           /> <!-- P1 (kg m-2) atmosphere_mass_content_of_seasalt_dry_aerosol : Load of Seasalt -->
+   <field id="CMIP6_longitude"     field_ref="dummy_not_provided"         /> <!-- P1 (degrees_east) longitude : Longitude -->
+   <field id="CMIP6_lwsffluxaero"  field_ref="toplwad"         /> <!-- P2 (W m-2) longwave__flux__due_to_volcanic_aerosols_at_the_surface : downwelling longwave  flux  due to volcanic aerosols at the surface to be diagnosed through double radiation call -->
+   <field id="CMIP6_lwsrfasdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) surface_instantaneous_longwave_forcing_due_to_dust : All-sky Surface Longwave radiative flux due to Dust -->
+   <field id="CMIP6_lwsrfcsdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) surface_instantaneous_longwave_forcing_due_to_dust_in_clearsky : Clear-sky Surface Longwave radiative flux due to Dust -->
+   <field id="CMIP6_lwtoaasdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) toa_instantaneous_longwave_forcing : all sky lw-rf dust at toa -->
+   <field id="CMIP6_lwtoacsaer"    field_ref="toplwad0"         /> <!-- P1 (W m-2) toa_instantaneous_longwave_forcing : Clear-Sky LW-RF Aerosols at TOA -->
+   <field id="CMIP6_lwtoacsdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) toa_instantaneous_longwave_forcing_due_to_dust_in_clearsky : Clear-sky TOA Longwave radiative flux due to Dust -->
+   <field id="CMIP6_lwtoafluxaerocs" field_ref="toplwad0"       /> <!-- P1 (W m-2) longwave_flux_due_to_volcanic_aerosols_at_TOA_under_clear_sky : downwelling longwave flux due to volcanic aerosols at TOA under clear sky to be diagnosed through double radiation call -->
+   <field id="CMIP6_mc"            field_ref="mc"               /> <!-- P1 (kg m-2 s-1) atmosphere_net_upward_convective_mass_flux : The net mass flux should represent the difference between the updraft and downdraft components.  The flux is computed as the mass divided by the area of the grid cell. -->
+   <field id="CMIP6_mcd"           field_ref="dnwd"              > (dnwd-dnwd0) &gt; 0 ? (dnwd-dnwd0) : 0 </field> <!-- P2 (kg m-2 s-1) atmosphere_downdraft_convective_mass_flux : Calculated as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud). -->
+   <field id="CMIP6_mcu"           field_ref="upwd"             /> <!-- P1 (kg m-2 s-1) atmosphere_updraft_convective_mass_flux : Calculated as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud). -->
+   <field id="CMIP6_md"            field_ref="dummy_not_provided"        /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission : Wet diameter mode coarse insoluble --> 
+   <field id="CMIP6_mrroLi"        field_ref="mrroli"                    /> <!-- P1 (kg m-2 s-1) land_ice_runoff_flux : Land Ice Runoff Flux -->
+   <field id="CMIP6_n2o"           field_ref="dummy_not_provided"        /> <!-- P1 (mol mol-1) mole_fraction_of_nitrous_oxide_in_air : Mole Fraction of N2O -->
+   <field id="CMIP6_n2oglobal"     field_ref="N2O_ppb"                   /> <!-- P1 (1e-09) mole_fraction_of_nitrous_oxide_in_air : Global Mean Mole Fraction of N2O -->
+   <field id="CMIP6_o3"            field_ref="ozone"                     /> <!-- P1 (mol mol-1) mole_fraction_of_ozone_in_air : Mole Fraction of O3 -->
+   <field id="CMIP6_od443dust"     field_ref="dummy_not_provided"        /> <!-- P1 (1) atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles : Optical thickness at 443 nm Dust -->
+   <field id="CMIP6_od550aerso"    field_ref="od550_STRAT"               /> <!-- P1 (1) strat_aerosol_optical_depth : Stratospheric Optical depth at 550 nm (all aerosols) 2D-field (here we limit the computation of OD to the stratosphere only) -->
+   <field id="CMIP6_od550so4so"    field_ref="dummy_not_provided"        /> <!-- P1 (1)  : Stratospheric Optical depth at 550 nm (sulphate only) 2D-field (here we limit the computation of OD to the stratosphere only) --> 
+   <field id="CMIP6_od865dust"     field_ref="dummy_not_provided"        /> <!-- P1 (1) atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles : Optical thickness at 865 nm Dust -->
+   <field id="CMIP6_parasolRefl" field_ref="parasol_refl"                /> <!-- P1 (1) toa_bidirectional_reflectance : PARASOL Reflectance -->
+   <field id="CMIP6_pctisccp"      field_ref="ctpisccp"                  /> <!-- P1 (Pa) air_pressure_at_cloud_top : time-means weighted by the ISCCP Total Cloud Fraction - see  http://cfmip.metoffice.com/COSP.html -->
+   <field id="CMIP6_pfull"         field_ref="pres"                      /> <!-- P1 (Pa) air_pressure : Pressure on Model Levels -->
+   <field id="CMIP6_phalf"         field_ref="paprs"                     /> <!-- P1 (Pa) air_pressure : Pressure on Model Half-Levels -->
+   <field id="CMIP6_pr"            field_ref="precip"                    /> <!-- P1 (kg m-2 s-1) precipitation_flux : at surface; includes both liquid and solid phases from all types of clouds (both large-scale and convective) -->
+   <field id="CMIP6_prCrop"        field_ref="dummy_not_provided"        /> <!-- P1 (kg m-2 s-1) precipitation_flux : Precipitation over Crop Tile -->
+   <field id="CMIP6_prc"           field_ref="pluc"                      /> <!-- P1 (kg m-2 s-1) convective_precipitation_flux : at surface; includes both liquid and solid phases. -->
+   <field id="CMIP6_prcprof"       field_ref="pr_con_l"                  /> <!-- P2 (kg m-2 s-1) convective_rainfall_flux : Convective Rainfall Flux -->
+   <field id="CMIP6_prcsh"         field_ref="dummy_not_provided"        /> <!-- P1 (kg m-2 s-1) shallow_convective_precipitation_flux : Shallow convection precipitation flux -->
+   <field id="CMIP6_prhmax"        field_ref="prhmax" freq_op="1h" >   @prhmax   </field> <!-- P1 (kg m-2 s-1) precipitation_flux : Maximum Hourly Precipitation Rate -->
+   <field id="CMIP6_prlsns"        field_ref="pr_lsc_i"                  /> <!-- P2 (kg m-2 s-1) large_scale_snowfall_flux : large-scale precipitation of all forms of water in the solid phase. -->
+   <field id="CMIP6_prlsprof"      field_ref="pr_lsc_l"                  /> <!-- P2 (kg m-2 s-1) large_scale_rainfall_flux : Stratiform Rainfall Flux -->
+   <field id="CMIP6_prra_land"     field_ref="rain_fall"         /> <!-- P2 (kg m-2 s-1) rainfall_flux : rainfall_flux -->
+   <field id="CMIP6_prra_ifs"      field_ref="rain_fall"         /> <!-- P1 (kg m-2 s-1) rainfall_flux : computed as the total mass of liquid water falling as liquid rain  into the ice-free portion of the ocean divided by the area of the ocean portion of the grid cell. -->
+   <field id="CMIP6_prra_ist"      field_ref="rain_fall"         /> <!-- P1 (kg m-2 s-1) rainfall_flux : over Land Ice//quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_prra"          field_ref="rain_fall"                 /> <!-- P1 (kg m-2 s-1) rainfall_flux : Rainfall rate -->
+   <field id="CMIP6_prrc_land"     field_ref="rain_con"         /> <!-- P1 (kg m-2 s-1) convective_rainfall_flux : convective_rainfall_flux -->
+   <field id="CMIP6_prrc"          field_ref="rain_con"                  /> <!-- P1 (kg m-2 s-1) convective_rainfall_flux : Convective Rainfall rate -->
+   <field id="CMIP6_prrsn"         field_ref="dummy_not_provided"       /> <!-- P1 (1) mass_fraction_of_rainfall_onto_snow : mass_fraction_of_rainfall_onto_snow -->
+   <field id="CMIP6_prsn"          field_ref="snow"                     /> <!-- P1 (kg m-2 s-1) snowfall_flux : at surface; includes precipitation of all forms of water in the solid phase -->
+   <field id="CMIP6_prsn_ifs"      field_ref="snow"                     /> <!-- P1 (kg m-2 s-1) snowfall_flux : computed as the total mass per unit time of solid-phase precipitation falling into the ice-free portion of the ocean divided by the area of the ocean portion of the grid cell.   (Snowfall flux includes all types of solid-phase precipitation.) -->
+   <field id="CMIP6_prsn_ist"      field_ref="snow"                     /> <!-- P1 (kg m-2 s-1) snowfall_flux : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_prsnc_land"    field_ref="pr_con_i"        /> <!-- P2 (kg m-2 s-1) convective_snowfall_flux : convective_snowfall_flux -->
+   <field id="CMIP6_prsnc"         field_ref="pr_con_i"                 /> <!-- P2 (kg m-2 s-1) convective_snowfall_flux : Convective Snowfall rate -->
+   <field id="CMIP6_prsnsn"        field_ref="dummy_not_provided"       /> <!-- P1 (1) mass_fraction_of_snowfall_onto_snow : mass_fraction_of_snowfall_onto_snow -->
+   <field id="CMIP6_prw"           field_ref="prw"                      /> <!-- P1 (kg m-2) atmosphere_water_vapor_content : Water Vapor Path -->
+   <field id="CMIP6_ps"            field_ref="psol"                     /> <!-- P1 (Pa) surface_air_pressure : not, in general, the same as mean sea-level pressure -->
+   <field id="CMIP6_psitem"        field_ref="dummy_XYA"                /> <!-- P1 (kg s^-1) meridional_streamfunction_transformed_eulerian_mean : zonal mean; hence YZT -->
+   <field id="CMIP6_psl"           field_ref="slp"                      /> <!-- P1 (Pa) air_pressure_at_sea_level : not, in general, the same as surface pressure -->
+   <field id="CMIP6_rainmxrat"     field_ref="dummy_not_provided"       /> <!-- P2 (1) mass_fraction_of_rain_in_air : rain_mixing_ratio -->
+   <field id="CMIP6_reffcclwtop"   field_ref="dummy_not_provided"       /> <!-- P1 (m) effective_radius_of_convective_cloud_liquid_water_particle_at_liquid_water_cloud_top : Cloud-Top Effective Droplet Radius In Convective Cloud -->
+   <field id="CMIP6_reffclic"      field_ref="dummy_not_provided"       /> <!-- P2 (m) effective_radius_of_convective_cloud_ice_particle : Hydrometeor Effective Radius of Convective Cloud Ice -->
+   <field id="CMIP6_reffclis"      field_ref="ref_ice"                  /> <!-- P2 (m) effective_radius_of_stratiform_cloud_ice_particle : Hydrometeor Effective Radius of Stratiform Cloud Ice -->
+   <field id="CMIP6_reffclwc"      field_ref="dummy_not_provided"       /> <!-- P2 (m) effective_radius_of_convective_cloud_liquid_water_particle : Hydrometeor Effective Radius of Convective Cloud Liquid Water -->
+   <field id="CMIP6_reffclws"      field_ref="reffclws" expr="@reffclws / @lcc3dstra" > reffclws / lcc3dstra </field> <!-- P2 (m) effective_radius_of_stratiform_cloud_liquid_water_particle : Hydrometeor Effective Radius of Stratiform Cloud Liquid Water -->
+   <field id="CMIP6_reffgrpls"     field_ref="dummy_not_provided"       /> <!-- P2 (m) effective_radius_of_stratiform_cloud_graupel_particle : This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). -->
+   <field id="CMIP6_reffrainc"     field_ref="dummy_XYA"        /> <!-- P2 (m) effective_radius_of_convective_cloud_rain_particle : This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). -->
+   <field id="CMIP6_reffrains"     field_ref="dummy_XYA"        /> <!-- P2 (m) effective_radius_of_stratiform_cloud_rain_particle : This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). -->
+   <field id="CMIP6_reffsclwtop"   field_ref="reffclwtop" expr="@reffclwtop / @lcc" > reffclwtop / lcc </field> <!-- P1 (m) effective_radius_of_stratiform_cloud_liquid_water_particle_at_liquid_water_cloud_top : Cloud-Top Effective Droplet Radius In Stratiform Cloud -->
+   <field id="CMIP6_reffsnowc"     field_ref="dummy_XYA"        /> <!-- P2 (m) effective_radius_of_convective_cloud_snow_particle : This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). -->
+   <field id="CMIP6_reffsnows"     field_ref="dummy_XYA"        /> <!-- P2 (m) effective_radius_of_stratiform_cloud_snow_particle : This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). -->
+   <field id="CMIP6_rld"           field_ref="rld"> rld*(-1.)   </field> <!-- P1 (W m-2) downwelling_longwave_flux_in_air : Downwelling Longwave Radiation --> 
+   <field id="CMIP6_rld4co2"       field_ref="rld4co2"          /> <!-- P1 (W m-2) downwelling_longwave_flux_in_air : Downwelling Longwave Radiation 4XCO2 Atmosphere --> 
+   <field id="CMIP6_rldcs"         field_ref="rldcs"            /> <!-- P1 (W m-2) downwelling_longwave_flux_in_air_assuming_clear_sky : Downwelling Clear-Sky Longwave Radiation -->
+   <field id="CMIP6_rldcs4co2"     field_ref="rldcs4co2"        /> <!-- P1 (W m-2) downwelling_longwave_flux_in_air_assuming_clear_sky : Downwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rlds_ist"      field_ref="LWdnSFC"          /> <!-- P1 (W m-2) surface_downwelling_longwave_flux_in_air : Surface Downwelling Longwave Radiation -->
+   <field id="CMIP6_rlds"          field_ref="LWdnSFC"          /> <!-- P1 (W m-2) surface_downwelling_longwave_flux_in_air : Surface Downwelling Longwave Radiation -->
+   <field id="CMIP6_rldscs"        field_ref="LWdnSFCclr"       /> <!-- P1 (W m-2) surface_downwelling_longwave_flux_in_air : Surface Downwelling Longwave Radiation -->
+   <field id="CMIP6_rls"           field_ref="soll"             /> <!-- P1 (W m-2) surface_net_downward_longwave_flux : Net Longwave Surface Radiation -->
+   <field id="CMIP6_rls_land"      field_ref="flw_ter"             /> <!-- P1 (W m-2) surface_net_downward_longwave_flux : Net longwave radiation -->
+   <field id="CMIP6_rlu"           field_ref="rlu"              /> <!-- P1 (W m-2) upwelling_longwave_flux_in_air : Fluxes are requested at all levels -->
+   <field id="CMIP6_rlu4co2"       field_ref="rlu4co2"          /> <!-- P1 (W m-2) upwelling_longwave_flux_in_air : Upwelling Longwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rlucs"         field_ref="rlucs"            /> <!-- P1 (W m-2) upwelling_longwave_flux_in_air_assuming_clear_sky : Includes also the fluxes at the surface and TOA. -->
+   <field id="CMIP6_rlucs4co2"     field_ref="rlucs4co2"        /> <!-- P1 (W m-2) upwelling_longwave_flux_in_air_assuming_clear_sky : Upwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rlus_ist"      field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_upwelling_longwave_flux_in_air : Surface Upwelling Longwave Radiation -->
+   <field id="CMIP6_rlus"          field_ref="LWupSFC"          /> <!-- P1 (W m-2) surface_upwelling_longwave_flux_in_air : Surface Upwelling Longwave Radiation -->
+   <field id="CMIP6_rlut"          field_ref="topl"             /> <!-- P1 (W m-2) toa_outgoing_longwave_flux : TOA Outgoing Longwave Radiation -->
+   <field id="CMIP6_rlut4co2"      field_ref="rlut4co2"         /> <!-- P1 (W m-2) toa_outgoing_longwave_flux : TOA Outgoing Longwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rlutcs"        field_ref="topl0"            /> <!-- P1 (W m-2) toa_outgoing_longwave_flux_assuming_clear_sky : TOA Outgoing Clear-Sky Longwave Radiation -->
+   <field id="CMIP6_rlutcs4co2"    field_ref="rlutcs4co2"       /> <!-- P1 (W m-2) toa_outgoing_longwave_flux_assuming_clear_sky : TOA Outgoing Clear-Sky Longwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsd"           field_ref="rsd"              /> <!-- P1 (W m-2) downwelling_shortwave_flux_in_air : Fluxes are requested at all levels -->
+   <field id="CMIP6_rsd4co2"       field_ref="rsd4co2"          /> <!-- P1 (W m-2) downwelling_shortwave_flux_in_air : Downwelling Shortwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsdcs"         field_ref="rsdcs"            /> <!-- P1 (W m-2) downwelling_shortwave_flux_in_air_assuming_clear_sky : Downwelling Clear-Sky Shortwave Raiation -->
+   <field id="CMIP6_rsdcs4co2"     field_ref="rsdcs4co2"        /> <!-- P1 (W m-2) downwelling_shortwave_flux_in_air_assuming_clear_sky : Downwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsdcsbnd"      field_ref="dummy_not_provided"        />   <!-- P1 (W m-2) downwelling_shortwave_flux_in_air_assuming_clear_sky : Downwelling Clear-Sky Shortwave Radiation at each level for each band -->
+   <field id="CMIP6_rsds"          field_ref="SWdnSFC"          /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air : This is the 3-hour mean flux. -->
+   <field id="CMIP6_rsds_ist"      field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air : Surface Downwelling Shortwave Radiation -->
+   <field id="CMIP6_rsdscs"        field_ref="SWdnSFCclr"       /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air_assuming_clear_sky : Surface Downwelling Clear-Sky Shortwave Radiation -->
+   <field id="CMIP6_rsdscsbnd"     field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air_assuming_clear_sky : Surface Downwelling Clear-Sky Shortwave Radiation for each band -->
+   <field id="CMIP6_rsdscsdiff"    field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky : Surface Diffuse Downwelling Clear Sky Shortwave Radiation --> 
+   <field id="CMIP6_rsdsdiff"      field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_diffuse_downwelling_shortwave_flux_in_air : Surface Diffuse Downwelling Shortwave Radiation -->
+   <field id="CMIP6_rsdt"          field_ref="SWdnTOA"          /> <!-- P1 (W m-2) toa_incoming_shortwave_flux : TOA Incident Shortwave Radiation -->
+   <field id="CMIP6_rss_land"      field_ref="fsw_ter"             /> <!-- P1 (W m-2) surface_net_downward_shortwave_flux : Net shortwave radiation -->
+   <field id="CMIP6_rss"           field_ref="sols"             /> <!-- P1 (W m-2) surface_net_downward_shortwave_flux : Net Shortwave Surface Radiation -->
+   <field id="CMIP6_rsu"           field_ref="rsu"              /> <!-- P1 (W m-2) upwelling_shortwave_flux_in_air : Fluxes are requested at all levels -->
+   <field id="CMIP6_rsu4co2"       field_ref="rsu4co2"          /> <!-- P1 (W m-2) upwelling_shortwave_flux_in_air : Upwelling Shortwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsucs"         field_ref="rsucs"            />  <!-- P1 (W m-2) upwelling_shortwave_flux_in_air_assuming_clear_sky : Includes also the fluxes at the surface and TOA. -->
+   <field id="CMIP6_rsucs4co2"     field_ref="rsucs4co2"        /> <!-- P1 (W m-2) upwelling_shortwave_flux_in_air_assuming_clear_sky : Upwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsucsbnd"      field_ref="dummy_not_provided"        /> <!-- P1 (W m-2) upwelling_shortwave_flux_in_air_assuming_clear_sky : Upwelling Clear-Sky Shortwave Radiation at each level for each band -->
+   <field id="CMIP6_rsus_ist"      field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air : Surface Upwelling Shortwave Radiation -->
+   <field id="CMIP6_rsus"          field_ref="SWupSFC"          /> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air : Surface Upwelling Shortwave Radiation --> 
+   <field id="CMIP6_rsuscs"        field_ref="SWupSFCclr"       /> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air_assuming_clear_sky : Surface Upwelling Clear-Sky Shortwave Radiation -->
+   <field id="CMIP6_rsuscsbnd"     field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air_assuming_clear_sky : Surface Upwelling Clear-Sky Shortwave Radiation for each band -->
+   <field id="CMIP6_rsut"          field_ref="SWupTOA"          /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux : TOA Outgoing Shortwave Radiation -->
+   <field id="CMIP6_rsut4co2"      field_ref="rsut4co2"         /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux : TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsutcs"        field_ref="SWupTOAclr"       /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux_assuming_clear_sky : TOA Outgoing Clear-Sky Shortwave Radiation -->
+   <field id="CMIP6_rsutcs4co2"    field_ref="rsutcs4co2"       /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux_assuming_clear_sky : TOA Outgoing Clear-Sky Shortwave Radiation 4XCO2 Atmosphere -->
+   <field id="CMIP6_rsutcsafbnd"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) band_toa_outgoing_shortwave_flux_assuming_clean_clear_sky : TOA Outgoing Clear-Sky, Aerosol-Free Shortwave Radiation in Bands -->
+   <field id="CMIP6_rsutcsbnd"     field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux_assuming_clear_sky : TOA Outgoing Clear-Sky Shortwave Radiation for each band -->
+   <field id="CMIP6_rtmt"          field_ref="nettop"           /> <!-- P1 (W m-2) net_downward_radiative_flux_at_top_of_atmosphere_model : i.e., at the top of that portion of the atmosphere where dynamics are explicitly treated by the model. This is reported only if it differs from the net downward radiative flux at the top of the atmosphere. -->
+   <field id="CMIP6_rv"            field_ref="dummy_XY"         /> <!-- P1 (s-1) atmosphere_relative_vorticity : Relative Vorticity at 850 hPa -->
+   <field id="CMIP6_sblnosn"       field_ref="dummy_not_provided"         /> <!-- P1 (kg m-2 s-1) sublimation_amount_assuming_no_snow : sublimation_amount_assuming_no_snow -->
+   <field id="CMIP6_sci"           field_ref="ftime_th"         /> <!-- P1 (1.0) shallow_convection_time_fraction : Fraction of time that shallow convection occurs in the grid cell. -->
+   <field id="CMIP6_scldncl"       field_ref="dummy_XY"         /> <!-- P1 (m-3) number_concentration_of_stratiform_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top : Cloud Droplet Number Concentration of Stratiform Cloud Tops -->
+   <field id="CMIP6_sconcdust"     field_ref="sconcdust"        /> <!-- P1 (kg m-3) mass_concentration_of_dust_dry_aerosol_in_air : Surface Concentration of Dust -->
+   <field id="CMIP6_sconcso4"      field_ref="sconcso4"         /> <!-- P1 (kg m-3) mass_concentration_of_sulfate_dry_aerosol_in_air : Surface Concentration of SO4 -->
+   <field id="CMIP6_sconcss"       field_ref="sconcss"          /> <!-- P1 (kg m-3) mass_concentration_of_seasalt_dry_aerosol_in_air : Surface Concentration of Seasalt -->
+   <field id="CMIP6_sfcWind"       field_ref="wind10m"          />  <!-- P1 (m s-1) wind_speed : Near surface wind speed -->
+   <field id="CMIP6_sfcWindmax"    field_ref="sfcWindmax" freq_op="1d"   > @sfcWindmax </field> <!-- P1 (m s-1) wind_speed : Mean Daily Maximum Near-Surface Wind Speed --> 
+   <field id="CMIP6_sftlf"         field_ref="pourc_ter"> pourc_ter+pourc_lic </field> <!-- P1 (%) land_area_fraction : Land Area Fraction -->
+   <field id="CMIP6_siltfrac"      field_ref="dummy_not_provided"       /> <!-- P1 (1.0)  : Silt Fraction -->
+   <field id="CMIP6_smc"           field_ref="f_th"        /> <!-- P2 (kg m-2 s-1) atmosphere_net_upward_shallow_convective_mass_flux : The net mass flux represents the difference between the updraft and downdraft components.  For models with a distinct shallow convection scheme, this is calculated as convective mass flux divided by the area of the whole grid cell (not just the area of the cloud). -->
+   <field id="CMIP6_snmsl"         field_ref="dummy_not_provided"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux_into_soil_layer : surface_snow_melt_flux_into_soil_layer -->
+   <field id="CMIP6_snowmxrat"     field_ref="dummy_not_provided"         /> <!-- P2 (1.0) mass_fraction_of_snow_in_air : snow_mixing_ratio -->
+   <field id="CMIP6_snrefr"        field_ref="dummy_not_provided"         /> <!-- P1 (kg m-2 s-1) surface_snow_and_ice_refreezing_flux : surface_snow_and_ice_refreezing_flux -->
+   <field id="CMIP6_snwc"          field_ref="dummy_not_provided"         /> <!-- P1 (kg m-2) canopy_snow_amount : canopy_snow_amount -->
+   <field id="CMIP6_solbnd"        field_ref="solbnd"         />  <!-- P1 (W m-2) solar_irradiance : Top-of-Atmosphere Solar Insolation for each band -->
+   <field id="CMIP6_swsffluxaero"  field_ref="topswad"         /> <!-- P2 (W m-2) shortwave__flux_due_to_volcanic_aerosols_at__the_surface : downwelling shortwave  flux due to volcanic aerosols at  the surface to be diagnosed through double radiation call -->
+   <field id="CMIP6_swsrfasdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) tendency_of_all_sky_surface_shortwave_flux_due_to_dust_ambient_aerosol_particles : All-sky Surface Shortwave radiative flux due to Dust -->
+   <field id="CMIP6_swsrfcsdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) tendency_of_clear_sky_surface_shortwave_flux_due_to_dust_ambient_aerosol_particles : Clear-sky Surface Shortwave radiative flux due to Dust -->
+   <field id="CMIP6_swtoaasdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) toa_instantaneous_shortwave_forcing : all sky sw-rf dust at toa -->
+   <field id="CMIP6_swtoacsdust"   field_ref="dummy_not_provided"         /> <!-- P1 (W m-2) toa_instantaneous_shortwave_forcing : clear sky sw-rf dust at toa -->
+   <field id="CMIP6_swtoafluxaerocs" field_ref="topswad0"       /> <!-- P1 (W m-2) shortwave_flux_due_to_volcanic_aerosols_at_TOA_under_clear_sky : downwelling shortwave flux due to volcanic aerosols at TOA under clear sky to be diagnosed through double radiation call -->
+   <field id="CMIP6_sza"           field_ref="sza"              /> <!-- P1 (degree) solar_zenith_angle : solar zenith angle -->
+   <field id="CMIP6_t2"            field_ref="temp"> temp*temp   </field> <!-- P2 (K2) square_of_air_temperature : square_of_air_temperature -->
+   <field id="CMIP6_ta"            field_ref="temp"             /> <!-- P1 (K) air_temperature : Air Temperature -->
+   <field id="CMIP6_tas_ist"       field_ref="t2m_lic"          /> <!-- P1 (K) air_temperature : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_tas"           field_ref="t2m"              /> <!-- P1 (K) air_temperature : This is sampled synoptically. -->
+   <field id="CMIP6_tasmax"        field_ref="tasmax" freq_op="1d"> @tasmax </field> <!-- P1 (K) air_temperature : monthly mean of the daily-maximum near-surface air temperature. -->  
+   <field id="CMIP6_tasmaxCrop"    field_ref="dummy_not_provided"         /> <!-- P1 (K) air_temperature : Daily Maximum Near-Surface Air Temperature over Crop Tile -->
+   <field id="CMIP6_tasmin"        field_ref="tasmin" freq_op="1d"> @tasmin  </field> <!-- P1 (K) air_temperature : Daily Minimum Near-Surface Air Temperature -->  
+   <field id="CMIP6_tasminCrop"    field_ref="dummy_not_provided"         /> <!-- P1 (K) air_temperature : Daily Minimum Near-Surface Air Temperature over Crop Tile -->
+   <field id="CMIP6_tau_stress"    field_ref="taux"              >  sqrt( taux^2 + tauy^2)        </field> <!-- P1 (N m-2) surface_downward_stress : Momentum flux --> 
+   <field id="CMIP6_tauu"          field_ref="taux"             /> <!-- P1 (Pa) surface_downward_eastward_stress : Surface Downward Eastward Wind Stress -->
+   <field id="CMIP6_tauupbl"       field_ref="dummy_XY"         /> <!-- P1 (Pa) surface_downward_eastward_stress_due_to_planetary_boundary_layer : surface -->
+   <field id="CMIP6_tauv"          field_ref="tauy"             /> <!-- P1 (Pa) surface_downward_northward_stress : Surface Downward Northward Wind Stress --> 
+   <field id="CMIP6_tauvpbl"       field_ref="dummy_XY"         /> <!-- P1 (Pa) surface_downward_northward_stress_due_to_planetary_boundary_layer : surface -->
+   <field id="CMIP6_tdps"          field_ref="pvap"> 273.16 + (273.16 - 35.86)/(17.269/log(pvap/611.14)-1.)      </field> <!-- P1 (K) dew_point_temperature : 2m dewpoint temperature -->
+   <field id="CMIP6_tendacabf"     field_ref="dummy_not_provided"         /> <!-- P3 (kg s-1) tendency_of_land_ice_mass_due_to_surface_mass_balance : Greenland -->
+   <field id="CMIP6_tendlibmassbf" field_ref="dummy_not_provided"         /> <!-- P3 (kg s-1) tendency_of_land_ice_mass_due_to_basal_mass_balance : Antarctica -->
+   <field id="CMIP6_tendlicalvf"   field_ref="dummy_not_provided"         /> <!-- P3 (kg s-1) tendency_of_land_ice_mass_due_to_calving : Antarctica -->
+   <field id="CMIP6_tnhus"         field_ref="tnhus"            /> <!-- P1 (s-1) tendency_of_specific_humidity : Tendency of Specific Humidity -->
+   <field id="CMIP6_tnhusa"        field_ref="dqdyn"            /> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_advection : Tendency of Specific Humidity due to Advection -->
+   <field id="CMIP6_tnhusc"        field_ref="tnhusc"           /> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_convection : Tendencies from cumulus convection scheme. -->
+   <field id="CMIP6_tnhusd"        field_ref="dqvdf"            /> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_diffusion : This includes any horizontal or vertical numerical moisture diffusion not associated with the parametrized moist physics or the resolved dynamics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be excluded, as should any diffusion which is included in the terms from the resolved dynamics.   This term is required to check the closure of the moisture budget. -->
+   <field id="CMIP6_tnhusmp"       field_ref="dqphy"            /> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_model_physics : This includes sources and sinks from parametrized moist physics (e.g. convection, boundary layer, stratiform condensation/evaporation, etc.) and excludes sources and sinks from resolved dynamics or from horizontal or vertical numerical diffusion not associated with model physicsl.  For example any diffusive mixing by the boundary layer scheme would be included. -->
+   <field id="CMIP6_tnhuspbl"      field_ref="dqvdf"             > dqvdf+dqthe </field> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_boundary_layer_mixing : alevel site time1 -->
+   <field id="CMIP6_tnhusscp"      field_ref="dqlscst"          /> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_stratiform_clouds_and_precipitation : Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation -->
+   <field id="CMIP6_tnhusscpbl"    field_ref="tnhusscpbl"       /> <!-- P1 (s-1) tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing : To be specified only in  models which do not separate budget terms for stratiform cloud, precipitation and boundary layer schemes.  Includes all bounday layer terms including and diffusive terms. -->
+   <field id="CMIP6_tnt"           field_ref="tnt"              /> <!-- P1 (K s-1) tendency_of_air_temperature : Tendency of Air Temperature -->
+   <field id="CMIP6_tnta"          field_ref="dtdyn"            /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_advection : Tendency of Air Temperature due to Advection -->
+   <field id="CMIP6_tntc"          field_ref="tntc"             /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_convection : zonal mean; hence YZT -->
+   <field id="CMIP6_tntd"          field_ref="dtajs"             > dtajs+dtoro+dtlif+dthin </field> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_numerical_diffusion : Tendency of Air Temperature due to Numerical Diffusion -->
+   <field id="CMIP6_tntmp"         field_ref="dtphy"            /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_model_physics : This includes sources and sinks from parametrized physics (e.g. radiation, convection, boundary layer, stratiform condensation/evaporation, etc.). It excludes sources and sinks from resolved dynamics and numerical diffusion not associated with parametrized physics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be included, while numerical diffusion applied in addition to physics or resolved dynamics should be excluded.  This term is required to check the closure of the heat budget. -->
+   <field id="CMIP6_tntnogw"       field_ref="dummy_XYA"        /> <!-- P2 (K s-1) temperature_tendency_due_to_dissipation_nonorographic_gravity_wave_drag : zonal mean; hence YZT -->
+   <field id="CMIP6_tntogw"        field_ref="dtoro"            /> <!-- P2 (K s-1) temperature_tendency_due_to_dissipation_orographic_gravity_wave_drag : zonal mean; hence YZT -->
+   <field id="CMIP6_tntpbl"        field_ref="dtvdf"             > dtvdf + dtthe </field> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_boundary_layer_mixing : alevel site time1 -->
+   <field id="CMIP6_tntr"          field_ref="tntr"             /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_radiative_heating : Tendency of Air Temperature due to Radiative Heating -->
+   <field id="CMIP6_tntrlcs"       field_ref="dtlw0"            /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky : zonal mean; hence YZT -->
+   <field id="CMIP6_tntrscs"       field_ref="dtsw0"            /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky : zonal mean; hence YZT -->
+   <field id="CMIP6_tntscp"        field_ref="dtlschr"          /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_stratiform_clouds_and_precipitation : alevel site time1 -->
+   <field id="CMIP6_tntscpbl"      field_ref="tntscpbl"         /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing : To be specified only in  models which do not separate cloud, precipitation and boundary layer terms.  Includes all boundary layer terms including diffusive ones. -->
+   <field id="CMIP6_tr"            field_ref="tsol"             /> <!-- P1 (K) surface_temperature : Surface Radiative Temperature -->
+   <field id="CMIP6_ts"            field_ref="tsol"             /> <!-- P1 (K) surface_temperature : Surface temperature (skin for open ocean) -->
+   <field id="CMIP6_ts_ist"        field_ref="tsol_lic"         /> <!-- P1 (K) surface_temperature : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_tsns"          field_ref="dummy_not_provided"         /> <!-- P1 (K) surface_temperature : Snow Surface Temperature -->
+   <field id="CMIP6_twap"          field_ref="vitw">vitw*temp </field> <!-- P2 (K Pa s-1) product_of_omega_and_air_temperature : air_temperature_times_omega -->
+   <field id="CMIP6_u2"            field_ref="vitu"              > vitu*vitu</field> <!-- P2 (m2 s-2) square_of_eastward_wind : square_of_eastward_wind -->
+   <field id="CMIP6_ua"            field_ref="vitu"             /> <!-- P1 (m s-1) eastward_wind : Eastward Wind -->
+   <field id="CMIP6_uas"           field_ref="u10m"             /> <!-- P1 (m s-1) eastward_wind : Eastward Near-Surface Wind -->
+   <field id="CMIP6_uqint"         field_ref="uq"               /> <!-- P1 (m2 s-1) integral_of_product_of_eastward_wind_and_specific_humidity_wrt_height : Eastward integrated moisture transport -->
+   <field id="CMIP6_ut"            field_ref="vitu"              > vitu*temp </field> <!-- P2 (K m s-1) product_of_eastward_wind_and_air_temperature : air_temperature_times_eastward_wind -->
+   <field id="CMIP6_utendepfd"     field_ref="dummy_XYA"        /> <!-- P1 (m s-2) tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence : Called "acceldivf" in CCMI table; we suggest new name. zonal mean; hence YZT -->
+   <field id="CMIP6_utendnogw"     field_ref="du_gwd_rando"> du_gwd_rando + du_gwd_front </field> <!-- P1 (m s-2) tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag : zonal mean; hence YZT -->
+   <field id="CMIP6_utendogw"      field_ref="duoro"        /> <!-- P1 (m s-2) tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag : u-tendency orographic gravity wave drag -->
+   <field id="CMIP6_utendvtem"     field_ref="dummy_XYA"        /> <!-- P1 (m s-1 d-1) u-tendency_by_wstar_advection : zonal mean; hence YZT -->
+   <field id="CMIP6_utendwtem"     field_ref="dummy_XYA"        /> <!-- P1 (m s-1 d-1) u-tendency_by_vstar_advection : zonal mean; hence YZT -->
+   <field id="CMIP6_uv"            field_ref="vitu"> vitu*vitv  </field> <!-- P2 (m2 s-2) product_of_eastward_wind_and_northward_wind : eastward_wind_times_northward_wind -->
+   <field id="CMIP6_uwap"          field_ref="vitu"> vitu*vitw  </field> <!-- P2 (Pa m s-2) product_of_eastward_wind_and_omega : eastward_wind_times_omega -->
+   <field id="CMIP6_v2"            field_ref="vitv"> vitv*vitv  </field> <!-- P2 (m2 s-2) square_of_northward_wind : square_of_northwardwind -->
+   <field id="CMIP6_va"            field_ref="vitv"             /> <!-- P1 (m s-1) northward_wind : Northward Wind -->
+   <field id="CMIP6_vas"           field_ref="v10m"             /> <!-- P1 (m s-1) northward_wind : Northward Near-Surface Wind -->
+   <field id="CMIP6_vortmean"      field_ref="dummy_XY"         /> <!-- P1 (s-1) atmosphere_relative_vorticity : Mean vorticity over 850-600 hPa layer -->
+   <field id="CMIP6_vqint"         field_ref="vq"               /> <!-- P1 (m2 s-1) integral_of_product_of_northward_wind_and_specific_humidity_wrt_height : Northward integrated moisture transport -->
+   <field id="CMIP6_vt"            field_ref="vitv"> vitv*temp  </field> <!-- P2 (K m s-1) product_of_northward_wind_and_air_temperature : air_temperature_times_northward_wind -->
+   <field id="CMIP6_vtem"          field_ref="dummy_XYA"        /> <!-- P1 (m s-1) northward_transformed_eulerian_mean_air_velocity : Transformed Eulerian Mean northward wind --> 
+   <field id="CMIP6_vtendnogw"     field_ref="dv_gwd_rando">dv_gwd_rando + dv_gwd_front </field> <!-- P2 (m s-2) tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag : v-tendency nonorographic gravity wave drag -->
+   <field id="CMIP6_vtendogw"      field_ref="dvoro"        /> <!-- P2 (m s-2) tendency_of_northward_wind_due_to_orographic_gravity_wave_drag : v-tendency orographic gravity wave drag -->
+   <field id="CMIP6_vwap"          field_ref="vitv"> vitv*vitw  </field> <!-- P2 (Pa m s-2) product_of_northward_wind_and_omega : northward_wind_times_omega -->
+   <field id="CMIP6_wap"           field_ref="vitw"             /> <!-- P1 (Pa s-1) lagrangian_tendency_of_air_pressure : commonly referred to as "omega", this represents the vertical component of velocity in pressure coordinates (positive down) -->
+   <field id="CMIP6_wap2"          field_ref="vitw"> vitw*vitw  </field> <!-- P2 (Pa2 s-2) square_of_lagrangian_tendency_of_air_pressure : square_of_omega -->
+   <field id="CMIP6_wbptemp"       field_ref="dummy_XYA"        /> <!-- P1 (K) wet_bulb_potential_temperature : plev_7 -->
+   <field id="CMIP6_wtem"          field_ref="dummy_XYA"        /> <!-- P1 (m s-1)  : Transformed Eulerian Mean upward wind -->
+   <field id="CMIP6_xgwdparam"     field_ref="east_gwstress"    /> <!-- P2 (Pa) atmosphere_eastward_stress_due_to_gravity_wave_drag : x_gravity_wave_drag_param --> 
+   <field id="CMIP6_ygwdparam"     field_ref="west_gwstress"    /> <!-- P2 (Pa) atmosphere_northward_stress_due_to_gravity_wave_drag : y_gravity_wave_drag_param -->
+   <field id="CMIP6_zfull"         field_ref="zfull"            /> <!-- P2 (m) height_above_reference_ellipsoid : This is actual height above mean sea level, not geopotential height -->
+   <field id="CMIP6_zg"            field_ref="geoph"            /> <!-- P1 (m) geopotential_height : Geopotential height on the 1000 hPa surface -->
+   <field id="CMIP6_zhalf"         field_ref="zhalf"            /> <!-- P2 (m) height_above_reference_ellipsoid : This is actual height above mean sea level, not geopotential height.  This is actual height above mean sea level, not geopotential height.  Includes both the top of the model atmosphere and surface levels. -->
+   <field id="CMIP6_zmla"          field_ref="s_pblh"           /> <!-- P1 (m) atmosphere_boundary_layer_thickness : Height of Boundary Layer -->
+   <field id="CMIP6_zmlwaero"      field_ref="cool_volc"        /> <!-- P1 (K s-1) longwave_heating_rate_due_to_volcanic_aerosols : longwave heating rate due to volcanic aerosols to be diagnosed through double radiation call, zonal average values required -->
+   <field id="CMIP6_zmswaero"      field_ref="heat_volc"        /> <!-- P1 (K s-1) shortwave_heating_rate_due_to_volcanic_aerosols : shortwave heating rate due to volcanic aerosols to be diagnosed through double radiation call, zonal average values required -->
+   <field id="CMIP6_zmtnt"         field_ref="dtphy"            /> <!-- P1 (K s-1) tendency_of_air_temperature_due_to_diabatic_processes : Zonal Mean Diabatic Heating Rates -->
+   <field id="CMIP6_ap" field_ref="Ahyb" /><!-- Ap hybrid coordinate array for level interfaces -->
+   <field id="CMIP6_ap_bnds" field_ref="Ahyb_bounds" /><!-- Ap hybrid coordinate bounds -->
+   <field id="CMIP6_b" field_ref="Bhyb" /><!-- Bp hybrid coordinate array for level interfaces -->
+   <field id="CMIP6_b_bnds" field_ref="Bhyb_bounds" /><!-- Bp hybrid coordinate bounds -->
+   <field id="CMIP6_ahp" field_ref="Ahyb_mid" /><!-- Aps hybrid coordinate array for mid-levels -->
+   <field id="CMIP6_ahp_bnds" field_ref="Ahyb_mid_bounds" /><!-- Aps hybrid coordinate bounds -->
+   <field id="CMIP6_bh" field_ref="Bhyb_mid" /><!-- Bps hybrid coordinate array for mid-levels -->
+   <field id="CMIP6_bh_bnds" field_ref="Bhyb_mid_bounds" /><!-- Bps hybrid coordinate bounds -->
+
+
+
+<!-- for variables which realm equals one of _aerosol-->
+   <field id="CMIP6_abs550aer"     field_ref="abs550aer"         /> <!-- P1 (1.0) atmosphere_absorption_optical_thickness_due_to_ambient_aerosol : Ambient Aerosol Absorption Optical Thickness at 550 nm -->
+   <field id="CMIP6_airmass"       field_ref="mass"        /> <!-- P1 (kg m-2) atmosphere_mass_of_air_per_unit_area : Vertically integrated mass content of air in layer -->
+   <field id="CMIP6_aoanh"         field_ref="dummy_XYA"        /> <!-- P1 (yr) tracer_lifetime : Fixed surface layer mixing ratio over 30o-50oN (0 ppbv), uniform fixed source (at all levels) everywhere else (source is unspecified but must be constant in space and time and documented). Note that the source could be 1yr/yr, so the tracer concentration provides mean age in years. For method using linearly increasing tracer include a method attribute: "linearly increasing tracer"For method using uniform source (1yr/yr) include a method attribute: "uniform source" -->
+   <field id="CMIP6_bldep"         field_ref="dummy_XY"         /> <!-- P3 (m) atmosphere_boundary_layer_thickness : Boundary layer depth -->
+   <field id="CMIP6_bry"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_inorganic_bromine_in_air : Total family (the sum of all appropriate species in the model) ; list the species in the netCDF header, e.g. Bry = Br + BrO + HOBr + HBr + BrONO2 + BrCl Definition: Total inorganic bromine (e.g., HBr and inorganic bromine oxides and radicals (e.g., BrO, atomic bromine (Br), bromine nitrate (BrONO2)) resulting from degradation of bromine-containing organic source gases (halons, methyl bromide, VSLS), and natural inorganic bromine sources (e.g., volcanoes, sea salt, and other aerosols) add comment attribute with detailed description about how the model calculates these fields -->
+   <field id="CMIP6_bs550aer"      field_ref="dummy_XYA"        /> <!-- P1 (m-1 sr-1) volume_lidar_backwards_scattering_coefficient_in_air_due_to_ambient_aerosol_particles : Aerosol  Backscatter at 550nm and 180 degrees, computed from extinction and lidar ratio -->
+   <field id="CMIP6_c2h2"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_ethyne_in_air : C2H2 volume mixing ratio -->
+   <field id="CMIP6_c2h6"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_ethane_in_air : C2H6 volume mixing ratio -->
+   <field id="CMIP6_c3h6"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_propene_in_air : C3H6  volume mixing ratio -->
+   <field id="CMIP6_c3h8"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_propane_in_air : C3H8  volume mixing ratio -->
+   <field id="CMIP6_ccn"           field_ref="dummy_XY"         /> <!-- P1 (m-3) number_concentration_of_cloud_condensation_nuclei_at_stp_in_air : proposed name: number_concentration_of_ambient_aerosol_in_air_at_liquid_water_cloud_top -->
+   <field id="CMIP6_cdnc"          field_ref="scdnc" expr="@scdnc / @lcc3d " > scdnc / lcc3d        </field><!-- P1 (m-3) number_concentration_of_cloud_liquid_water_particles_in_air : Cloud Droplet Number Concentration in liquid water clouds. -->
+   <field id="CMIP6_ch3coch3"      field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_acetone_in_air : CH3COCH3  volume mixing ratio -->
+   <field id="CMIP6_cheaqpso4"     field_ref="dummy_XYA"        /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_aqueous_phase_net_chemical_production : proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_aqueous_phase_net_chemical_production -->
+   <field id="CMIP6_chegpso4"      field_ref="dummy_XYA"        /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_gaseous_phase_net_chemical_production : proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_gas_phase_net_chemical_production -->
+   <field id="CMIP6_chepasoa"      field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production : anthropogenic part of chepsoa -->
+   <field id="CMIP6_chepsoa"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production : If model lumps SOA emissions with POA, then the sum of POA and SOA emissions is reported as OA emissions. ""mass"" refers to the mass of primary organic matter, not mass of organic carbon alone. -->
+   <field id="CMIP6_cly"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_inorganic_chlorine_in_air : Total family (the sum of all appropriate species in the model) ; list the species in the netCDF header, e.g. Cly = HCl + ClONO2 + HOCl + ClO + Cl + 2*Cl2O2 +2Cl2 + OClO + BrCl Definition: Total inorganic stratospheric chlorine (e.g., HCl, ClO) resulting from degradation of chlorine-containing source gases (CFCs, HCFCs, VSLS), and natural inorganic chlorine sources (e.g., sea salt and other aerosols) add comment attribute with detailed description about how the model calculates these fields -->
+   <field id="CMIP6_co"            field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_carbon_monoxide_in_air : CO volume mixing ratio -->
+   <field id="CMIP6_cod"           field_ref="dummy_XY"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_cloud : Cloud Optical Depth -->
+   <field id="CMIP6_depdust"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_total_deposition : Balkanski - LSCE -->
+   <field id="CMIP6_dms"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_dimethyl_sulfide_in_air : DMS volume mixing ratio -->
+   <field id="CMIP6_drybc"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_dry_deposition : Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition. -->
+   <field id="CMIP6_drydust"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_dry_deposition : Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition. -->
+   <field id="CMIP6_drynh3"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_ammonia_due_to_dry_deposition : dry deposition includes gravitational settling, impact scavenging, and turbulent deposition -->
+   <field id="CMIP6_drynh4"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_dry_deposition : dry deposition includes gravitational settling, impact scavenging, and turbulent deposition -->
+   <field id="CMIP6_drynoy"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_dry_deposition : NOy is the sum of all simulated oxidized nitrogen species out of NO, NO2, HNO3, HNO4, NO3aerosol, NO3(radical), N2O5, PAN, other organic nitrates. Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition. -->
+   <field id="CMIP6_dryo3"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_ozone_due_to_dry_deposition : dry deposition includes gravitational settling, impact scavenging, and turbulent deposition. -->
+   <field id="CMIP6_dryoa"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_dry_deposition : Tendency of atmosphere mass content of organic dry aerosol due to dry deposition: This is the sum of dry deposition of POA and dry deposition of SOA (see next two entries). 'Mass' refers to the mass of organic matter, not mass of organic carbon alone.  We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Was called dry_pom in old ACCMIP Excel table. Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition. -->
+   <field id="CMIP6_dryso2"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition : dry deposition includes gravitational settling, impact scavenging, and turbulent deposition -->
+   <field id="CMIP6_dryso4"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_dry_deposition : dry deposition includes gravitational settling, impact scavenging, and turbulent deposition -->
+   <field id="CMIP6_dryss"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_particles_due_to_dry_deposition : Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition. -->
+   <field id="CMIP6_ec550aer"      field_ref="ec550aer"        /> <!-- P1 (m-1) volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles : Aerosol Extinction at 550nm -->
+   <field id="CMIP6_emiaco"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission : anthrophogenic  emission of CO -->
+   <field id="CMIP6_emianox"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission : Store flux as Nitrogen. Anthropogenic fraction. NOx=NO+NO2, Includes agricultural waste burning but no other biomass burning. Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emiaoa"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission : anthropogenic part of emioa -->
+   <field id="CMIP6_emibc"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emibvoc"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_biogenic_nmvoc_expressed_as_carbon_due_to_emission : Integrate 3D emission field vertically to 2d field._If_ fixed molecular weight of NMVOC is not available in model, please provide in units of kilomole m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add a comment to your file. -->
+   <field id="CMIP6_emico"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emidms"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emidust"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emiisop"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_isoprene_due_to_emission : Integrate 3D emission field vertically to 2d field -->
+   <field id="CMIP6_emilnox"       field_ref="dummy_XYA"        /> <!-- P1 (mol s-1) tendency_of_atmosphere_moles_of_nox_expressed_as_nitrogen : Integrate the NOx production for lightning over model layer. proposed name: tendency_of_atmosphere_mass_content_of_nox_from_lightning -->
+   <field id="CMIP6_eminh3"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_ammonia_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_eminox"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission : NOx=NO+NO2. Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emioa"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission : This is the sum of total emission of POA and total production of SOA (emipoa+chepsoa). ""Mass"" refers to the mass of organic matter, not mass of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available.  Integrate 3D chemical production and emission field vertically to 2d field. -->
+   <field id="CMIP6_emiso2"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emiso4"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_emission : Direct primary emission does not include secondary sulfate production. Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emiss"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_particles_due_to_emission : Integrate 3D emission field vertically to 2d field. -->
+   <field id="CMIP6_emivoc"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_nmvoc_due_to_emission : Integrate 3D emission field vertically to 2d field. _If_ fixed molecular weight of NMVOC is not available in model, please provide in units of kilomole m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add a comment to your file. -->
+   <field id="CMIP6_hcho"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_formaldehyde_in_air : Formaldehyde volume mixing ratio -->
+   <field id="CMIP6_hcl"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_hydrogen_chloride_in_air : HCl volume mixing ratio -->
+   <field id="CMIP6_hno3"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_nitric_acid_in_air : HNO3 volume mixing ratio -->
+   <field id="CMIP6_ho2"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_hydroperoxyl_radical_in_air : HO2 volume mixing ratio -->
+   <field id="CMIP6_isop"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_isoprene_in_air : Isoprene volume mixing ratio -->
+   <field id="CMIP6_jno2"          field_ref="dummy_XYA"        /> <!-- P1 (s-1) photolysis_rate_of_nitrogen_dioxide : photolysis rate of NO2 -->
+   <field id="CMIP6_lossch4"       field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_atmosphere_mole_concentration_of_methane_due_to_chemical_destruction : monthly averaged atmospheric loss -->
+   <field id="CMIP6_lossco"        field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_atmosphere_of_mole_concentration_of_carbon_monoxide_due_to_chemical_destruction : monthly averaged atmospheric loss -->
+   <field id="CMIP6_lossn2o"       field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_atmosphere_of_mole_concentration_of_nitrous_oxide_due_to_chemical_destruction : monthly averaged atmospheric loss -->
+   <field id="CMIP6_lwp"           field_ref="cldq"         /> <!-- P1 (kg m-2) atmosphere_mass_content_of_cloud_liquid_water : liquid water path -->
+   <field id="CMIP6_maxpblz"       field_ref="dummy_XY"         /> <!-- P1 (m) atmosphere_boundary_layer_thickness : maximum boundary layer height during the day (add cell_methods attribute: "time: maximum") -->
+   <field id="CMIP6_meanage"       field_ref="dummy_XYA"        /> <!-- P1 (yr) age_of_stratospheric_air : The mean age of air is defined as the mean time that a stratospheric air mass has been out of contact with the well-mixed troposphere. -->
+   <field id="CMIP6_minpblz"       field_ref="dummy_XY"         /> <!-- P1 (m) atmosphere_boundary_layer_thickness : minimum boundary layer height during the day (add cell_methods attribute: "time: minimum") -->
+   <field id="CMIP6_mmraerh2o"     field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_water_in_ambient_aerosol_particles_in_air : Aerosol water mass mixing ratio -->
+   <field id="CMIP6_mmrbc"         field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_elemental_carbon_dry_aerosol_particles_in_air : Elemental carbon mass mixing ratio -->
+   <field id="CMIP6_mmrdust"       field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_dust_dry_aerosol_particles_in_air : Dust aerosol mass mixing ratio -->
+   <field id="CMIP6_mmrnh4"        field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_ammonium_dry_aerosol_particles_in_air : NH4 mass mixing ratio -->
+   <field id="CMIP6_mmrno3"        field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_nitrate_dry_aerosol_particles_in_air : NO3 aerosol mass mixing ratio -->
+   <field id="CMIP6_mmroa"         field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_particulate_organic_matter_dry_aerosol_particles_in_air : We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. -->
+   <field id="CMIP6_mmrpm1"        field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_pm1_dry_aerosol_particles_in_air : E.g. mass_fraction_of_pm1_aerosol_at_50_percent_relative_humidity_in_air. proposed name:  mass_fraction_of_pm1_dry_aerosol_in_air -->
+   <field id="CMIP6_mmrpm10"       field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_pm10_ambient_aerosol_particles_in_air : E.g. mass_fraction_of_pm10_aerosol_at_50_percent_relative_humidity_in_air, proposed name: mass_fraction_of_pm10_dry_aerosol_in_air -->
+   <field id="CMIP6_mmrpm2p5"      field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_pm2p5_dry_aerosol_particles_in_air : E.g. mass_fraction_of_pm2p5_aerosol_at_50_percent_relative_humidity_in_air, proposed_name: mass_fraction_of_pm2p5_dry_aerosol_in_air -->
+   <field id="CMIP6_mmrso4"        field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_sulfate_dry_aerosol_particles_in_air : Aerosol sulfate mass mixing ratio -->
+   <field id="CMIP6_mmrsoa"        field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_secondary_particulate_organic_matter_dry_aerosol_particles_in_air : Secondary organic aerosol mass mixing ratio -->
+   <field id="CMIP6_mmrss"         field_ref="dummy_XYA"        /> <!-- P1 (kg kg-1) mass_fraction_of_seasalt_dry_aerosol_particles_in_air : Sea Salt mass mixing ratio -->
+   <field id="CMIP6_nh50"          field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_artificial_tracer_with_fixed_lifetime_in_air : Fixed surface layer mixing ratio over 30o-50oN (100ppbv), uniform fixed 50-day exponential decay. -->
+   <field id="CMIP6_no"            field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_nitrogen_monoxide_in_air : NO volume mixing ratio -->
+   <field id="CMIP6_no2"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_nitrogen_dioxide_in_air : NO2 volume mixing ratio -->
+   <field id="CMIP6_noy"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_noy_expressed_as_nitrogen_in_air : Total family (the sum of all appropriate species in the model); list the species in the netCDF header, e.g. NOy = N + NO + NO2 + NO3 + HNO3 + 2N2O5 + HNO4 + ClONO2 + BrONO2 Definition: Total reactive nitrogen; usually includes atomic nitrogen (N), nitric oxide (NO), NO2, nitrogen trioxide (NO3), dinitrogen radical (N2O5), nitric acid (HNO3), peroxynitric acid (HNO4), BrONO2, ClONO2 add comment attribute with detailed description about how the model calculates these fields -->
+   <field id="CMIP6_o3loss"        field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_destruction : ONLY provide the sum of the following reactions: (i) O(1D)+H2O; (ii) O3+HO2; (iii) O3+OH; (iv) O3+alkenes (isoprene, ethene,...) -->
+   <field id="CMIP6_o3prod"        field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_production : ONLY provide the sum of all the HO2/RO2 + NO reactions (as k*[HO2]*[NO]) -->
+   <field id="CMIP6_o3ste"         field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_ozone_in_air : Ozone tracer intended to map out strat-trop exchange (STE) of ozone. -->
+   <field id="CMIP6_od440aer"      field_ref="od443aer"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_ambient_aerosol_particles : AOD from the ambient aerosols (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute "wavelength: 440 nm" -->
+   <field id="CMIP6_od550aer"      field_ref="od550aer"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_ambient_aerosol_particles : AOD from the ambient aerosols (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute "wavelength: 550 nm" -->
+   <field id="CMIP6_od550aerh2o"   field_ref="od550aer"   >  od550aer-dryod550aer   </field> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_water_in_ambient_aerosol : proposed name: atmosphere_optical_thickness_due_to_water_ambient_aerosol -->
+   <field id="CMIP6_od550bb"       field_ref="dummy_XY"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol : total organic aerosol AOD due to biomass burning (excluding so4, nitrate BB components) -->
+   <field id="CMIP6_od550bc"       field_ref="od550_ASBCM"  >  od550_ASBCM + od550_AIBCM   </field> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_black_carbon_ambient_aerosol : black carbon aod at 550nm -->
+   <field id="CMIP6_od550csaer"    field_ref="dummy_XY"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_ambient_aerosol_particles : AOD from the ambient aerosols in clear skies if od550aer is for all-sky (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute "wavelength: 550 nm" -->
+   <field id="CMIP6_od550dust"     field_ref="od550_CIDUSTM"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_dust_ambient_aerosol : Dust Optical Depth at 550nm -->
+   <field id="CMIP6_od550lt1aer"   field_ref="od550lt1aer"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_pm1_ambient_aerosol : od550 due to particles with wet diameter less than 1 um  (ambient here means wetted). When models do not include explicit size information, it can be assumed that all anthropogenic aerosols and natural secondary aerosols have diameter less than 1 um. -->
+   <field id="CMIP6_od550no3"      field_ref="od550_ASNO3M" >  od550_ASNO3M + od550_CSNO3M + od550_CINO3M   </field> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_nitrate_ambient_aerosol : proposed name: atmosphere_optical_thickness_due_to_nitrate_ambient_aerosol -->
+   <field id="CMIP6_od550oa"       field_ref="od550_ASPOMM"   >   od550_ASPOMM + od550_AIPOMM </field>   <!-- P1 (1.0) atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol : Total Organic Aerosol Optical Depth at 550nm -->
+   <field id="CMIP6_od550so4"      field_ref="od550_ASSO4M"   >   od550_ASSO4M+od550_CSSO4M  </field>  <!-- P1 (1.0) atmosphere_optical_thickness_due_to_sulfate_ambient_aerosol : proposed name: atmosphere_optical_thickness_due_to_sulfate_ambient_aerosol -->
+   <field id="CMIP6_od550soa"      field_ref="dummy_XY"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol : total organic aerosol AOD due to secondary aerosol formation -->
+   <field id="CMIP6_od550ss"       field_ref="od550_ASSSM" >  od550_ASSSM+od550_CSSSM+od550_SSSSM    </field> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_seasalt_ambient_aerosol : Sea Salt Aersol Optical Depth at 550nm -->
+   <field id="CMIP6_od870aer"      field_ref="od865aer"         /> <!-- P1 (1.0) atmosphere_optical_thickness_due_to_ambient_aerosol_particles : AOD from the ambient aerosols (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute "wavelength: 870 nm" -->
+   <field id="CMIP6_oh"            field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_hydroxyl_radical_in_air : OH volume mixing ratio -->
+   <field id="CMIP6_pan"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_peroxyacetyl_nitrate_in_air : PAN volume mixing ratio -->
+   <field id="CMIP6_photo1d"       field_ref="dummy_XYA"        /> <!-- P1 (s-1) photolysis_rate_of_ozone_to_1D_oxygen_atom : proposed name: photolysis_rate_of_ozone_to_O1D -->
+   <field id="CMIP6_pod0"          field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) pending_CF_name : Accumulated stomatal ozone flux over the threshold of 0 mol m-2 s-1; Computation: Time Integral of (hourly above canopy ozone concentration * stomatal conductance * Rc/(Rb+Rc) ) -->
+   <field id="CMIP6_ptp"           field_ref="p_tropopause"         /> <!-- P1 (Pa) tropopause_air_pressure : 2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature -->
+   <field id="CMIP6_reffclwtop"    field_ref="reffclwtop"         /> <!-- P1 (m) effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top : Droplets are liquid only.  This is the effective radius as seen from space over liquid cloudy portion of grid cell. This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere.TOA) each time sample when computing monthly mean. Reported values are weighted by total liquid cloud top fraction of  (as seen from -->
+   <field id="CMIP6_rlutaf"        field_ref="dummy_XY"         /> <!-- P1 (W m-2) toa_outgoing_longwave_flux : Flux corresponding to rlut resulting from aerosol-free call to radiation, following Ghan (ACP, 2013) -->
+   <field id="CMIP6_rlutcsaf"      field_ref="dummy_XY"         /> <!-- P1 (W m-2) toa_outgoing_longwave_flux_assuming_clear_sky : Flux corresponding to rlutcs resulting from aerosol-free call to radiation, following Ghan (ACP, 2013) -->
+   <field id="CMIP6_rsutaf"        field_ref="dummy_XY"         /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux : Flux corresponding to rsut resulting from aerosol-free call to radiation, following Ghan (ACP, 2013) -->
+   <field id="CMIP6_rsutcsaf"      field_ref="dummy_XY"         /> <!-- P1 (W m-2) toa_outgoing_shortwave_flux_assuming_clear_sky : Flux corresponding to rsutcs resulting from aerosol-free call to radiation, following Ghan (ACP, 2013) -->
+   <field id="CMIP6_sedustCI"      field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_sedimentation : Balkanski - LSCE -->
+   <field id="CMIP6_sfno2"         field_ref="dummy_XY"         /> <!-- P1 (mol mol-1) mole_fraction_of_nitrogen_dioxide_in_air : NO2 volume mixing ratio in lowest model layer -->
+   <field id="CMIP6_sfo3"          field_ref="dummy_XY"         /> <!-- P1 (mol mol-1) mole_fraction_of_ozone_in_air : O3 volume mixing ratio in lowest model layer -->
+   <field id="CMIP6_sfo3max"       field_ref="dummy_XY"         /> <!-- P1 (mol mol-1) mole_fraction_of_ozone_in_air : Daily maximum O3 volume mixing ratio in lowest model layer -->
+   <field id="CMIP6_sfpm25"        field_ref="dummy_XY"         /> <!-- P1 (kg kg-1) mass_fraction_of_pm2p5_ambient_aerosol_particles_in_air : PM2.5 mass mixing ratio in lowest model layer -->
+   <field id="CMIP6_so2"           field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_sulfur_dioxide_in_air : SO2 volume mixing ratio -->
+   <field id="CMIP6_tatp"          field_ref="t_tropopause"         /> <!-- P1 (K) tropopause_air_temperature : 2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature -->
+   <field id="CMIP6_tntrl"         field_ref="dummy_XYA"        /> <!-- P3 (K s-1) tendency_of_air_temperature_due_to_longwave_heating : Tendency of air temperature due to longwave radiative heating -->
+   <field id="CMIP6_tntrs"         field_ref="dummy_XYA"        /> <!-- P3 (K s-1) tendency_of_air_temperature_due_to_shortwave_heating : Tendency of air temperature due to shortwave radiative heating -->
+   <field id="CMIP6_toz"           field_ref="dummy_XY"         /> <!-- P1 (m) equivalent_thickness_at_stp_of_atmosphere_ozone_content : Total ozone column calculated at 0 degrees C and 1 bar, such that 1m = 1e5 DU. -->
+   <field id="CMIP6_tropoz"        field_ref="dummy_XY"         /> <!-- P1 (m) equivalent_thickness_at_stp_of_atmosphere_ozone_content : Tropospheric ozone column, should be consistent with definition of tropopause used to calculate the pressure of the tropopause (ptp). Calculated at 0 degrees C and 1 bar, such that 1m = 1e5 DU. -->
+   <field id="CMIP6_ttop"          field_ref="dummy_XY"         /> <!-- P1 (K) air_temperature_at_cloud_top : air temperature at cloud top -->
+   <field id="CMIP6_wa"            field_ref="dummy_XYA"        /> <!-- P1 (m s-1) upward_air_velocity : Upward Air Velocity -->
+   <field id="CMIP6_wetbc"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_wet_deposition : wet deposition rate of black carbon aerosol mass -->
+   <field id="CMIP6_wetdust"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_wet_deposition : wet deposition rate of dust -->
+   <field id="CMIP6_wetnh3"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_ammonia_due_to_wet_deposition : wet deposition rate of nh3 -->
+   <field id="CMIP6_wetnh4"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_wet_deposition : wet deposition rate of nh4 -->
+   <field id="CMIP6_wetnoy"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_wet_deposition : NOy is the sum of all simulated oxidized nitrogen species, out of NO, NO2, HNO3, HNO4, NO3aerosol, NO3(radical), N2O5, PAN, other organic nitrates. -->
+   <field id="CMIP6_wetoa"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_wet_deposition : tendency of atmosphere mass content of organic matter dry aerosols due to wet deposition: This is the sum of wet deposition of POA and wet deposition of SOA (see next two entries). Mass here refers to the mass of organic matter, not mass of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Was called wet_pom in old ACCMIP Excel spreadsheet. -->
+   <field id="CMIP6_wetso2"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_wet_deposition : wet deposition rate of so2 -->
+   <field id="CMIP6_wetso4"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_wet_deposition : proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_wet_deposition -->
+   <field id="CMIP6_wetss"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_particles_due_to_wet_deposition : wet deposition rate of seasalt -->
+   <field id="CMIP6_ztp"           field_ref="z_tropopause"         /> <!-- P1 (m) tropopause_altitude : 2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature -->
+
+
+<!-- for variables which realm equals one of _atmosChem-->
+   <field id="CMIP6_flashrate"     field_ref="dummy_XY"         /> <!-- P1 (km-2 s-1) lightning_flash_rate : proposed name: lightning_flash_rate (units to be interpreted as "counts km-2 s-1) -->
+   <field id="CMIP6_oxloss"        field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom_due_to_chemical_destruction : total chemical loss rate for o+o1d+o3 -->
+   <field id="CMIP6_oxprod"        field_ref="dummy_XYA"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom_due_to_chemical_production_and_photolysis : total production rate of o+o1d+o3 including o2 photolysis and all o3 producing reactions -->
+   <field id="CMIP6_vmrox"         field_ref="dummy_XYA"        /> <!-- P1 (mol mol-1) mole_fraction_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom : Mole Fraction of Ox -->
+
+
+<!-- for variables which realm equals one of _landIce-->
+   <field id="CMIP6_acabf"         field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) land_ice_surface_specific_mass_balance_flux : quantity averaged over ice sheet only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_acabfIs"       field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) land_ice_surface_specific_mass_balance_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_agesno"        field_ref="dummy_XY"         /> <!-- P1 (day) age_of_surface_snow : When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.  Reported as "missing in regions free of snow on land. -->
+   <field id="CMIP6_hfdsn"         field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_downward_heat_flux_in_snow : the net downward heat flux from the atmosphere into the snow that lies on land divided by the land area in the grid cell; reported as missing for snow-free land regions or where the land fraction is 0. -->
+   <field id="CMIP6_hfgeoubed"     field_ref="dummy_XY"         /> <!-- P3 (W m-2) upward_geothermal_heat_flux_at_ground_level_in_land_ice : Geothermal Heat flux beneath land ice -->
+   <field id="CMIP6_hfgeoubed_ist" field_ref="dummy_XY"         /> <!-- P3 (W m-2) upward_geothermal_heat_flux_at_ground_level_in_land_ice : Geothermal Heat flux beneath land ice -->
+   <field id="CMIP6_hflsIs"        field_ref="lat_lic" > -1.0 * lat_lic </field> <!-- P1 (W m-2) surface_upward_latent_heat_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_hfssIs"        field_ref="sens_lic" > -1.0 * sens_lic </field> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_icem"          field_ref="dummy_XY"         /> <!-- P3 (kg m-2 s-1) land_ice_surface_melt_flux : Surface ice melt flux -->
+   <field id="CMIP6_icemIs"        field_ref="dummy_XY"         /> <!-- P3 (kg m-2 s-1) land_ice_surface_melt_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_libmassbffl"   field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) land_ice_basal_specific_mass_balance_flux : quantity averaged over floating ice shelf -->
+   <field id="CMIP6_libmassbfgr"   field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) land_ice_basal_specific_mass_balance_flux : quantity averaged over grounded ice sheet -->
+   <field id="CMIP6_licalvf"       field_ref="dummy_XY"         /> <!-- P3 (kg m-2 s-1) land_ice_specific_mass_flux_due_to_calving : Land ice calving flux -->
+   <field id="CMIP6_lifmassbf"     field_ref="dummy_XY"         /> <!-- P3 (kg m-2 s-1) land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting : Land ice vertical front mass balance flux -->
+   <field id="CMIP6_litempbotfl"   field_ref="dummy_XY"         /> <!-- P2 (K) land_ice_basal_temperature : quantity averaged over floating land ice -->
+   <field id="CMIP6_litempbotgr"   field_ref="dummy_XY"         /> <!-- P2 (K) land_ice_basal_temperature : quantity averaged over grounded land ice -->
+   <field id="CMIP6_litemptop"     field_ref="dummy_XY"         /> <!-- P2 (K) temperature_at_top_of_ice_sheet_model : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_litemptopIs"   field_ref="dummy_XY"         /> <!-- P2 (K) temperature_at_top_of_ice_sheet_model : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_lithk_ist"     field_ref="dummy_XY"         /> <!-- P2 (m) land_ice_thickness : This is needed in case ice sheet thickness changes in time -->
+   <field id="CMIP6_lwsnl"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2) liquid_water_content_of_snow_layer : where land over land: this is computed as the total mass of liquid water contained interstitially within the snow layer of the land portion of a grid cell divided by the area of the land portion of the cell. -->
+   <field id="CMIP6_modelCellAreai" field_ref="dummy_XY"         /> <!-- P1 (m2) cell_area : When interpolated to a regular grid, it should be interpolated (not summed) with a conservative scheme to preserve total area -->
+   <field id="CMIP6_mrfso"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2) soil_frozen_water_content : the mass (summed over all all layers) of frozen water. -->
+   <field id="CMIP6_mrroIs"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) runoff_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_orogIs"        field_ref="phis" > phis / 9.81  </field>  <!-- P1 (m) surface_altitude : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_pflw"          field_ref="dummy_XY"         /> <!-- P1 (kg m-2) liquid_water_content_of_permafrost_layer : "where land over land", i.e., this is the total mass of liquid water contained within the permafrost layer within the land portion of a grid cell divided by the area of the land portion of the cell. -->
+   <field id="CMIP6_prraIs"        field_ref="rain_fall" /> <!-- P1 (kg m-2 s-1) rainfall_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_prsnIs"        field_ref="snow"         /> <!-- P1 (kg m-2 s-1) snowfall_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_rldsIs"        field_ref="LWdnSFC"     /> <!-- P1 (W m-2) surface_downwelling_longwave_flux_in_air : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_rlusIs"        field_ref="LWdnSFC" > pourc_lic &gt; 0 ? (LWdnSFC - flw_lic) : $missing_value </field>  <!-- P1 (W m-2) surface_upwelling_longwave_flux_in_air : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_rsdsIs"        field_ref="SWdnSFC"   /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_rsusIs"        field_ref="SWdnSFC" > pourc_lic &gt; 0 ? (SWdnSFC - fsw_lic) : $missing_value </field>  <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_sbl"           field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_and_ice_sublimation_flux : The snow and ice sublimation flux is the loss of snow and ice mass from the surface resulting from their conversion to water vapor that enters the atmosphere. -->
+   <field id="CMIP6_sbl_land"      field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_and_ice_sublimation_flux : surface_snow_and_ice_sublimation_flux -->
+   <field id="CMIP6_sbl_ist"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_and_ice_sublimation_flux : Surface Snow and Ice Sublimation Flux -->
+   <field id="CMIP6_sblIs"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_and_ice_sublimation_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_sftflf"        field_ref="dummy_XY"       /> <!-- P2 (%) floating_ice_shelf_area_fraction : This is needed to distinguish between grounded glaciated ice (grounded = ice sheet and glacier) and ice shelves (floating over sea water), since land_ice is by definition ice sheet, glacier and ice shelves -->
+   <field id="CMIP6_sftgrf"        field_ref="pourc_lic"         /> <!-- P1 (%) grounded_ice_sheet_area_fraction : This is needed in case the grounded ice sheet area changes in time (NO floating ice shelf) -->
+   <field id="CMIP6_snc"           field_ref="fsnow" > fsnow * 100.  </field> <!-- P1 (%) surface_snow_area_fraction : Fraction of each grid cell that is occupied by snow that rests on land portion of cell. -->
+   <field id="CMIP6_snc_ist"       field_ref="dummy_XY"         /> <!-- P1 (%) surface_snow_area_fraction : quantity averaged over ice sheet  only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_sncIs"         field_ref="dummy_XY"         /> <!-- P1 (%) surface_snow_area_fraction : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_snd"           field_ref="dummy_XY"         /> <!-- P1 (m) surface_snow_thickness : where land over land, this is computed as the mean thickness of snow in the land portion of the grid cell (averaging over the entire land portion, including the snow-free fraction).  Reported as missing where the land fraction is 0. -->
+   <field id="CMIP6_snicefreez"    field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) surface_snow_and_ice_refreezing_flux : Surface snow and ice refreeze flux -->
+   <field id="CMIP6_snicefreezIs"  field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) surface_snow_and_ice_refreezing_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_snicem"        field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) surface_snow_and_ice_melt_flux : Surface snow and ice melt flux -->
+   <field id="CMIP6_snicemIs"      field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) surface_snow_and_ice_melt_flux : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_snm_ist"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : Surface Snow Melt -->
+   <field id="CMIP6_snm_land"      field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : Computed as the total surface melt water on the land portion of the grid cell divided by the land area in the grid cell; report as 0.0 for snow-free land regions; report as missing where the land fraction is 0. -->
+   <field id="CMIP6_snmIs"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : Loss of snow mass resulting from surface melting. Computed as the surface melt water from snow on the ice sheet portion of the grid cell divided by the ice_sheet area in the grid cell; report as 0.0 for snow-free land_ice regions; report as missing where the land fraction is 0. -->
+   <field id="CMIP6_sootsn"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2) soot_content_of_surface_snow : the entire land portion of the grid cell is considered, with snow soot content set to 0.0 in regions free of snow. -->
+   <field id="CMIP6_strbasemag"    field_ref="dummy_XY"         /> <!-- P3 (Pa) magnitude_of_basal_drag_at_land_ice_base : Land Ice Basal Drag -->
+   <field id="CMIP6_tasIs"         field_ref="dummy_XY"         /> <!-- P1 (K) air_temperature : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_topg"          field_ref="dummy_XY"         /> <!-- P2 (m) bedrock_altitude : Bedrock Altitude -->
+   <field id="CMIP6_topg_ist"      field_ref="dummy_XY"         /> <!-- P2 (m) bedrock_altitude : This is needed in case bed rock elevation changes in time -->
+   <field id="CMIP6_tpf"           field_ref="dummy_XY"         /> <!-- P1 (m) permafrost_layer_thickness : where land over land: This is the mean thickness of the permafrost layer in the land portion of the grid cell.  Reported as missing in permafrost-free regions. -->
+   <field id="CMIP6_tsIs"          field_ref="tsol_lic" > pourc_lic &gt; 0 ? tsol_lic : $missing_value </field>  <!-- P1 (K) surface_temperature : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_tsn_land"      field_ref="dummy_XY"         /> <!-- P1 (K) temperature_in_surface_snow : This temperature is averaged over all the snow in the grid cell that rests on land or land ice.  When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.   Reported as "missing in regions free of snow on land. -->
+   <field id="CMIP6_tsnIs"         field_ref="dummy_XY"         /> <!-- P1 (K) temperature_in_surface_snow : quantity averaged over ice_sheet (meaning grounded ice sheet and floating ice shelf) only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_xvelbase"      field_ref="dummy_XY"         /> <!-- P2 (m s-1) land_ice_basal_x_velocity : X-component of land ice basal velocity -->
+   <field id="CMIP6_xvelmean"      field_ref="dummy_XY"         /> <!-- P3 (m s-1) land_ice_vertical_mean_x_velocity : X-component of land ice vertical mean velocity -->
+   <field id="CMIP6_xvelsurf"      field_ref="dummy_XY"         /> <!-- P2 (m s-1) land_ice_surface_x_velocity : X-component of land ice surface velocity -->
+   <field id="CMIP6_yvelbase"      field_ref="dummy_XY"         /> <!-- P2 (m s-1) land_ice_basal_y_velocity : Y-component of land ice basal velocity -->
+   <field id="CMIP6_yvelmean"      field_ref="dummy_XY"         /> <!-- P3 (m s-1) land_ice_vertical_mean_y_velocity : Y-component of land ice vertical mean velocity -->
+   <field id="CMIP6_yvelsurf"      field_ref="dummy_XY"         /> <!-- P2 (m s-1) land_ice_surface_y_velocity : Y-component of land ice surface velocity -->
+   <field id="CMIP6_zvelbase"      field_ref="dummy_XY"         /> <!-- P3 (m s-1) land_ice_basal_upward_velocity : Upward-component of land ice basal velocity -->
+   <field id="CMIP6_zvelsurf"      field_ref="dummy_XY"         /> <!-- P3 (m s-1) land_ice_surface_upward_velocity : Upward component of land ice surface velocity -->
+</field_definition>
+</context>
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_nemo.xml
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_nemo.xml	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_nemo.xml	(revision 5899)
@@ -0,0 +1,519 @@
+<!-- Ping files generated by dr2xml 1.13 using Data Request 01.00.27 -->
+<!-- lrealms= ['ocean'] -->
+<!-- exact= False -->
+<!--  listof_home_vars : None
+ tierMax : 3
+ realms_per_context : {'lmdz': ['atmos', 'atmos land'], 'nemo': ['seaIce', 'ocean', 'ocean seaIce', 'ocnBgchem', 'seaIce ocean'], 'orchidee': ['land', 'landIce land', 'land landIce', 'landIce']}
+ max_priority : 3
+ max_file_size_in_floats : 20000000000.0
+ grid_choice : {'IPSL-CM6A-LR': 'LR'}
+ excluded_vars_file : None
+ sizes : {'LR': [20592, 79, 32768, 91, 30, 14, 128]}
+ ping_variables_prefix : CMIP6_
+ source_types : {'IPSL-CM6A-LR': 'AOGCM AER BGC'}
+ path_extra_tables : None
+ grid_policy : native
+ path_special_defs : None
+ mips : {'LR': set(['CORDEX', 'GMMIP', 'RFMIP', 'VolMIP', 'CMIP6', 'ScenarioMIP', 'GeoMIP', 'C4MIP', 'PDRMIP', 'CMIP', 'DECK', 'LUMIP', 'CMIP5', 'CFMIP', 'OMIP', 'DAMIP', 'CCMI', 'SolarMIP', 'VIACSAB', 'SIMIP', 'DCPP', 'ISMIP6', 'AerChemMIP', 'PMIP', 'FAFMIP', 'DynVar', 'LS3MIP', 'SPECS', 'HighResMIP'])}
+excluded_vars : []
+ orphan_variables : {}
+ --> 
+<context id="nemo">
+<field_definition>
+<field_group freq_op="_reset_" freq_offset="_reset_">
+<!-- for variables which realm equals one of _ocean-->
+   <field id="CMIP6_agessc"        field_ref="Age_E3T" expr="@Age_E3T / @e3t" > Age_E3T / e3t </field>  <!-- P1 (yr) sea_water_age_since_surface_contact : Time elapsed since water was last in surface layer of the ocean. -->
+   <field id="CMIP6_areacello"     field_ref="areacello"        /> <!-- P1 (m2) cell_area : Cell areas for any grid used to report ocean variables and variables which are requested as used on the model ocean grid (e.g. hfsso, which is a downward heat flux from the atmosphere interpolated onto the ocean grid). These cell areas should be defined to enable exact calculation of global integrals (e.g., of vertical fluxes of energy at the surface and top of the atmosphere). -->
+   <field id="CMIP6_basin"         field_ref="basins"           /> <!-- P1 (1) region : A variable with the standard name of region contains strings which indicate geographical regions. These strings must be chosen from the standard region list. -->
+   <field id="CMIP6_bigthetao"     field_ref="toce" expr="@toce_e3t / @e3t" > toce_e3t / e3t </field> <!-- P1 (degC) sea_water_conservative_temperature : Diagnostic should be contributed only for models using conservative temperature as prognostic field. --> 
+   <field id="CMIP6_bigthetaoga"   field_ref="sctemtot"         /> <!-- P1 (degC) sea_water_conservative_temperature : Diagnostic should be contributed only for models using conservative temperature as prognostic field. -->
+   <field id="CMIP6_cfc11"         field_ref="CFC11_E3T" expr="@CFC11_E3T / @e3t" > CFC11_E3T / e3t </field>  <!-- P1 (mol m-3) mole_concentration_of_cfc11_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The chemical formula of CFC11 is CFCl3. The IUPAC name fof CFC11 is trichloro-fluoro-methane. -->
+   <field id="CMIP6_cfc12"         field_ref="CFC12_E3T" expr="@CFC12_E3T / @e3t" > CFC12_E3T / e3t </field>  <!-- P1 (mol m-3) mole_concentration_of_cfc12_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The chemical formula for CFC12 is CF2Cl2. The IUPAC name for CFC12 is dichloro-difluoro-methane. -->
+   <field id="CMIP6_deptho"        field_ref="tpt_dep"          /> <!-- P1 (m) sea_floor_depth_below_geoid : Ocean bathymetry.   Reported here is the sea floor depth for present day relative to z=0 geoid. Reported as missing for land grid cells. -->  
+   <field id="CMIP6_difmxybo"  field_ref="dummy_XYO"        /> <!-- P2 (m4 s-1) ocean_momentum_xy_biharmonic_diffusivity : Lateral biharmonic viscosity applied to the momentum equations. -->
+   <field id="CMIP6_difmxybo2d"    field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_momentum_xy_biharmonic_diffusivity : Lateral biharmonic viscosity applied to the momentum equations. -->
+   <field id="CMIP6_difmxylo"  field_ref="dummy_XYO"        /> <!-- P2 (m2 s-1) ocean_momentum_xy_laplacian_diffusivity : Lateral Laplacian viscosity applied to the momentum equations. -->
+   <field id="CMIP6_difmxylo2d"    field_ref="dummy_XYO"        /> <!-- P3 (m2 s-1) ocean_momentum_xy_laplacian_diffusivity : Lateral Laplacian viscosity applied to the momentum equations. -->
+   <field id="CMIP6_diftrbbo"      field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_tracer_bolus_biharmonic_diffusivity : unset -->
+   <field id="CMIP6_diftrbbo2d"    field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_tracer_bolus_biharmonic_diffusivity : unset -->
+   <field id="CMIP6_diftrblo"      field_ref="dummy_XYO"        /> <!-- P1 (m2 s-1) ocean_tracer_bolus_laplacian_diffusivity : Ocean tracer diffusivity associated with parameterized eddy-induced advective transport. Sometimes this diffusivity is called the 'thickness' diffusivity. For CMIP5, this diagnostic was called 'ocean tracer bolus laplacian diffusivity'.  The CMIP6 name is physically more relevant. -->
+   <field id="CMIP6_diftrblo2d"    field_ref="aht2d_eiv"        /> <!-- P3 (m2 s-1) ocean_tracer_bolus_laplacian_diffusivity : Ocean tracer diffusivity associated with parameterized eddy-induced advective transport. Sometimes this diffusivity is called the 'thickness' diffusivity. For CMIP5, this diagnostic was called 'ocean tracer bolus laplacian diffusivity'.  The CMIP6 name is physically more relevant. -->
+   <field id="CMIP6_diftrebo"      field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_tracer_epineutral_biharmonic_diffusivity : unset -->
+   <field id="CMIP6_diftrebo2d"    field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_tracer_epineutral_biharmonic_diffusivity : unset -->
+   <field id="CMIP6_diftrelo"      field_ref="dummy_XYO"        /> <!-- P1 (m2 s-1) ocean_tracer_epineutral_laplacian_diffusivity : Ocean tracer diffusivity associated with parameterized eddy-induced diffusive transport oriented along neutral or isopycnal directions. Sometimes this diffusivity is called the neutral diffusivity or isopycnal diffusivity or Redi diffusivity. -->
+   <field id="CMIP6_diftrelo2d"    field_ref="aht2d_eiv"        /> <!-- P3 (m2 s-1) ocean_tracer_epineutral_laplacian_diffusivity : Ocean tracer diffusivity associated with parameterized eddy-induced diffusive transport oriented along neutral or isopycnal directions. Sometimes this diffusivity is called the neutral diffusivity or isopycnal diffusivity or Redi diffusivity. -->
+   <field id="CMIP6_diftrxybo"     field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_tracer_xy_biharmonic_diffusivity : unset -->
+   <field id="CMIP6_diftrxybo2d"   field_ref="dummy_XYO"        /> <!-- P3 (m4 s-1) ocean_tracer_xy_biharmonic_diffusivity : unset -->
+   <field id="CMIP6_diftrxylo"     field_ref="dummy_XYO"        /> <!-- P3 (m2 s-1) ocean_tracer_xy_laplacian_diffusivity : unset -->
+   <field id="CMIP6_diftrxylo2d"   field_ref="aht2d"            /> <!-- P3 (m2 s-1) ocean_tracer_xy_laplacian_diffusivity : unset -->
+   <field id="CMIP6_difvho"        field_ref="avt_e3w"  expr="@avt_e3w / @e3w" > avt_e3w / e3w </field> <!-- P1 (m2 s-1) ocean_vertical_heat_diffusivity : Vertical/dianeutral diffusivity applied to prognostic temperature field. -->
+   <field id="NEMO_difvho_noevd"   field_ref="avt_e3w"  expr="(@avt_e3w - @avt_evd_e3w) / @e3w" > ( avt_e3w - avt_evd_e3w) / e3w </field> <!-- P3 (m2 s-1) ocean vertical heat diffusivity without evd contribution ****  NEMO-RD : extra variable not required by CMIP6 -->
+   <field id="CMIP6_difvmbo"       field_ref="dummy_XY0"             /> <!-- P1 (m2 s-1) ocean_vertical_momentum_diffusivity_due_to_background : unset **** NEMO-RD not relevant for IPSLCM6 because we use zdftmx_new (background included in av_tide) -->
+   <field id="CMIP6_difvmfdo"      field_ref="dummy_XYO"        /> <!-- P1 (m2 s-1) ocean_vertical_momentum_diffusivity_due_to_form_drag : unset **** NEMO-RD not relevant for IPSL CM6--> 
+   <field id="CMIP6_difvmo"        field_ref="avm_e3w"  expr="@avm_e3w / @e3w" > avm_e3w / e3w </field> <!-- P1 (m2 s-1) ocean_vertical_momentum_diffusivity : unset -->
+   <field id="CMIP6_difvmto"       field_ref="av_wave_e3w"  expr="@av_wave_e3w / @e3w" > av_wave_e3w / e3w </field> <!-- P1 (m2 s-1) ocean_vertical_momentum_diffusivity_due_to_tides : unset --> 
+   <field id="CMIP6_difvso"        field_ref="avs_e3w"  expr="@avs_e3w / @e3w" > avs_e3w / e3w </field> <!-- P1 (m2 s-1) ocean_vertical_salt_diffusivity : Vertical/dianeutral diffusivity applied to prognostic salinity field. -->
+   <field id="NEMO_difvso_noevd"   field_ref="avs_e3w"  expr="(@avs_e3w - @avt_evd_e3w) / @e3w" > ( avs_e3w - avt_evd_e3w)  / e3w </field>  <!-- P3 (m2 s-1) ocean vertical heat diffusivity without evd contribution ****  NEMO-RD : extra variable not required by CMIP6 -->
+   <field id="CMIP6_difvtrbo"      field_ref="dummy_XYO"             /> <!-- P1 (m2 s-1) ocean_vertical_tracer_diffusivity_due_to_background : unset *** NEMO-RD : not relevant for IPSLCM6 -->
+   <field id="CMIP6_difvtrto"      field_ref="av_wave_e3w" expr="@av_wave_e3w / @e3w" > av_wave_e3w / e3w </field> <!-- P1 (m2 s-1) ocean_vertical_tracer_diffusivity_due_to_tides : unset -->
+   <field id="CMIP6_dispkevfo"     field_ref="dispkevfo"   /> <!-- P1 (W m-2) ocean_kinetic_energy_dissipation_per_unit_area_due_to_vertical_friction. *** NEMO-RD : provides 2D (vertical integral) while not requested by CMIP6 (Griffies et al. 2016) while CMIP5 requested 3D field -->
+   <field id="CMIP6_dispkexyfo"    field_ref="dummy_XY0"        /> <!-- P3 (W m-2) ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction : Depth integrated impacts on kinetic energy arising from lateral frictional dissipation associated with Laplacian and/or biharmonic viscosity. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements. -->
+   <field id="CMIP6_dispkexyfo2d"  field_ref="dispkexyfo"        /> <!-- P3 (W m-2) ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction : Depth integrated impacts on kinetic energy arising from lateral frictional dissipation associated with Laplacian and/or biharmonic viscosity. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements. -->
+   <field id="CMIP6_evs"           field_ref="evap_ao_cea"    /> <!-- P1 (kg m-2 s-1) water_evaporation_flux : computed as the total mass of water vapor evaporating from the ice-free portion of the ocean  divided by the area of the ocean portion of the grid cell.  -->
+   <field id="CMIP6_fgcfc11"       field_ref="qtr_CFC11"         /> <!-- P2 (mol sec-1 m-2) surface_downward_mole_flux_of_cfc11 : gas exchange flux of CFC11 -->
+   <field id="CMIP6_fgcfc12"       field_ref="qtr_CFC12"         /> <!-- P1 (mol sec-1 m-2) surface_downward_mole_flux_of_cfc12 : gas exchange flux of CFC12 -->
+   <field id="CMIP6_fgsf6"         field_ref="qtr_SF6"           /> <!-- P1 (mol sec-1 m-2) fgsf6 : gas exchange flux of SF6 -->
+   <field id="CMIP6_ficeberg"      field_ref="dummy_XYO"         /> <!-- P1 (kg m-2 s-1) water_flux_into_sea_water_from_icebergs : computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell. *** NEMO-RD : does not do (output of vertical profile to be coded) -->
+   <field id="CMIP6_ficeberg2d"    field_ref="iceberg_cea"         /> <!-- P1 (kg m-2 s-1) water_flux_into_sea_water_from_icebergs : computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell. **** NEMO-RD : TODO some work needed for forced mode to read iceberg contribution independently from river runoffs --> 
+   <field id="CMIP6_flandice"      field_ref="iceshelf_cea"        /> <!-- P1 (kg m-2 s-1) water_flux_into_sea_water_from_land_ice : Computed as the water flux into the ocean due to land ice (runoff water from surface and base of land ice or melt from base of ice shelf or vertical ice front) into the ocean divided by the area ocean portion of the grid cell --> 
+   <field id="CMIP6_friver"        field_ref="runoffs"> this - iceberg_cea </field><!-- P1 (kg m-2 s-1) water_flux_into_sea_water_from_rivers : computed as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell.  -->
+   <field id="CMIP6_fsitherm"      field_ref="fmmflx"            /> <!-- P1 (kg m-2 s-1) water_flux_into_sea_water_due_to_sea_ice_thermodynamics : computed as the sea ice thermodynamic water flux into the ocean divided by the area of the ocean portion of the grid cell. **** Duplication with SIMIP (siflfwbot + sndmassmelt)  but mail to Dirk Notz and Martin Jukes suggest to keep as it is. NEMO-RD : a more appropriate definition is : total freswhater flux into ocean due to sea ice and associated snow cover. -->
+   <field id="CMIP6_hcont300"      field_ref="hc300"            /> <!-- P1 (m K) hcont300 : Used in PMIP2 -->
+   <field id="CMIP6_hfbasin"       field_ref="sopht_vt_3bsn"> this * 1e15 </field> <!-- P1 (W) northward_ocean_heat_transport : Contains contributions from all physical processes affecting the northward heat transport, including resolved advection, parameterized advection, lateral diffusion, etc. Diagnosed here as a function of latitude and basin.   Use Celsius for temperature scale. --> 
+   <field id="CMIP6_hfbasinpadv"   field_ref="dummy_basin_zonal_mean"/> <!-- P1 (W) hfbasinpadv : Contributions to heat transport from parameterized eddy-induced advective transport due to any subgrid advective process. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.  --> 
+   <field id="CMIP6_hfbasinpmadv"  field_ref="sophteiv_3bsn"> this * 1e15 </field> <!-- P1 (W) hfbasinpmadv : Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale. NEMO-RD: same as previous line in our case: only GM  --> 
+   <field id="CMIP6_hfbasinpmdiff" field_ref="dummy_basin_zonal_mean"/> <!-- P1 (W) hfbasinpmdiff : Contributions to heat transport from parameterized mesoscale eddy-induced diffusive transport (i.e., neutral diffusion). Diagnosed here as a function of latitude and basin. **** NEMO-RD: not relevant for IPSLCM6 -->
+   <field id="CMIP6_hfbasinpsmadv" field_ref="dummy_basin_zonal_mean"/> <!-- P1 (W) hfbasinpsmadv : Contributions to heat transport from parameterized SUB!!mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale. **** NEMO-RD: not relevant for IPSLCM6-->
+   <field id="CMIP6_hfcorr"        field_ref="qrp"         /> <!-- P0 (W m-2) heat_flux_correction : Heat Flux Correction **** NEMO-RD: not relevant for IPSLCM6 -->
+   <field id="CMIP6_hfds"          field_ref="qt"     > qt - qrp </field><!-- P1 (W m-2) surface_downward_heat_flux_in_sea_water : This is the net flux of heat entering the liquid water column through its upper surface (excluding any "flux adjustment") . -->
+   <field id="CMIP6_hfevapds"      field_ref="hflx_evap_cea"    /> <!-- P1 (W m-2) temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water : This is defined as "where ice_free_sea over sea" -->
+   <field id="CMIP6_hfgeou"        field_ref="hfgeou"         /> <!-- P1 (W m-2) upward_geothermal_heat_flux_at_sea_floor : Upward Geothermal Heat Flux at Sea Floor -->
+   <field id="CMIP6_hfibthermds"   field_ref="dummy_XYO"        /> <!-- P1 (W m-2) heat_flux_into_sea_water_due_to_iceberg_thermodynamics : Heat Flux into Sea Water due to Iceberg Thermodynamics **** NEMO-RD not relevant for IPSL CM6--> 
+   <field id="CMIP6_hfibthermds2d" field_ref="hflx_icb_cea"     /> <!-- P1 (W m-2) heat_flux_into_sea_water_due_to_iceberg_thermodynamics : Heat Flux into Sea Water due to Iceberg Thermodynamics -->
+   <field id="CMIP6_hflso"         field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_downward_latent_heat_flux : This is defined as with the cell methods string: where ice_free_sea over sea **** NEMO-RD: does not provide -->
+   <field id="CMIP6_hfrainds"      field_ref="hflx_rain_cea"    /> <!-- P1 (W m-2) temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water : This is defined as "where ice_free_sea over sea"; i.e., the total flux (considered here) entering the ice-free portion of the grid cell divided by the area of the ocean portion of the grid cell.  All such heat fluxes are computed based on Celsius scale.-->
+   <field id="CMIP6_hfrunoffds"    field_ref="dummy_XYO"        /> <!-- P2 (W m-2) temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water : Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water **** NEMO-RD: the 3D version is not relevant for IPSLCM6. -->
+   <field id="CMIP6_hfrunoffds2d"  field_ref="hflx_rnf_cea"     /> <!-- P2 (W m-2) temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water : Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water -->
+   <field id="CMIP6_hfsifrazil"    field_ref="dummy_XYO"        /> <!-- P1 (W m-2) heat_flux_into_sea_water_due_to_freezing_of_frazil_ice : Heat Flux into Sea Water due to Frazil Ice Formation **** NEMO-RD : not relevant for IPSLCM6 -->
+   <field id="CMIP6_hfsifrazil2d"  field_ref="dummy_XYO"        /> <!-- P1 (W m-2) heat_flux_into_sea_water_due_to_freezing_of_frazil_ice : Heat Flux into Sea Water due to Frazil Ice Formation **** NEMO-RD : not relevant for IPSLCM6 -->  
+   <field id="CMIP6_hfsnthermds"   field_ref="dummy_XYO"        /> <!-- P2 (W m-2) heat_flux_into_sea_water_due_to_snow_thermodynamics : Heat Flux into Sea Water due to Snow Thermodynamics **** NEMO-RD: the 3D version is not relevant for IPSLCM6-->
+   <field id="CMIP6_hfsnthermds2d" field_ref="hflx_snow_ao_cea" /> <!-- P2 (W m-2) heat_flux_into_sea_water_due_to_snow_thermodynamics : Heat Flux into Sea Water due to Snow Thermodynamics -->  
+   <field id="CMIP6_hfsso"         field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_downward_sensible_heat_flux : This is defined as "where ice_free_sea over sea" **** NEMO-RD: does not do --> 
+   <field id="CMIP6_hfx"           field_ref="uadv_heattr"> this + udiff_heattr </field><!-- P1 (W) ocean_heat_x_transport : Contains all contributions to "x-ward" heat transport from resolved and parameterized processes.  Use Celsius for temperature scale.  -->
+   <field id="CMIP6_hfy"           field_ref="vadv_heattr"> this + vdiff_heattr </field><!-- P1 (W) ocean_heat_y_transport : Contains all contributions to "y-ward" heat transport from resolved and parameterized processes. Use Celsius for temperature scale.  -->
+   <field id="CMIP6_htovgyre"      field_ref="sophtove_3bsn"> sopht_vt_3bsn * 1e15 - this * 1e15  </field> <!-- P1 (W) northward_ocean_heat_transport_due_to_gyre : From all advective mass transport processes, resolved and parameterized. -->
+   <field id="CMIP6_htovovrt"      field_ref="sophtove_3bsn"> this * 1e15  </field> <!-- P1 (W) northward_ocean_heat_transport_due_to_overturning : From all advective mass transport processes, resolved and parameterized. -->
+   <field id="CMIP6_masscello"     field_ref="masscello"        /> <!-- P1 (kg m-2) sea_water_mass_per_unit_area : Tracer grid-cell mass per unit area used for computing tracer budgets. For Boussinesq models with static ocean grid cell thickness, masscello = rhozero*thickcello, where thickcello is static cell thickness and rhozero is constant Boussinesq reference density. More generally, masscello is time dependent and reported as part of Omon.  -->
+   <field id="CMIP6_masso"         field_ref="scmastot"          /> <!-- P1 (kg) sea_water_mass : Total mass of liquid seawater. For Boussinesq models, report this diagnostic as Boussinesq reference density times total volume. -->
+   <field id="CMIP6_mfo"           field_ref="transport_masse_transect"         /> <!-- P1 (kg s-1) sea_water_transport_across_line : Sea Water Transport -->
+   <field id="CMIP6_mlotst"        field_ref="mldr10_3"         /> <!-- P2 (m) ocean_mixed_layer_thickness_defined_by_sigma_t : Sigma T is potential density referenced to ocean surface. -->
+   <field id="CMIP6_mlotstmax"     field_ref="mldr10_3max"      /> <!-- P1 (m) ocean_mixed_layer_thickness_defined_by_sigma_t : Sigma T is potential density referenced to ocean surface. -->
+   <field id="CMIP6_mlotstmin"     field_ref="mldr10_3min"      /> <!-- P1 (m) ocean_mixed_layer_thickness_defined_by_sigma_t : Sigma T is potential density referenced to ocean surface. -->
+   <field id="CMIP6_mlotstsq"      field_ref="mldr10_3" > this * this </field> <!-- P1 (m2) square_of_ocean_mixed_layer_thickness_defined_by_sigma_t : Square of Ocean Mixed Layer Thickness Defined by Sigma T -->
+   <field id="CMIP6_msftbarot"     field_ref="uoce_e3u_vsum_e2u_cumul" > this * $rau0 </field> <!-- P1 (kg s-1) ocean_barotropic_mass_streamfunction : Streamfunction or its approximation for free surface models. See OMDP document for details. -->
+   <field id="CMIP6_msftmrho"      field_ref="dummy_basin_merid_section_density"/> <!-- P1 (kg s-1) ocean_meridional_overturning_mass_streamfunction : Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized. **** NEMO-RD does not do: no interpolation from y to meridional -->
+   <field id="CMIP6_msftmrhompa"   field_ref="dummy_basin_merid_section_density"/> <!-- P1 (kg s-1) msftmrhompa : CMIP5 called this "due to Bolus Advection".  Name change respects the more general physics of the mesoscale parameterizations. **** NEMO-RD does not do: no interpolation from y to meridional--> 
+   <field id="CMIP6_msftmz"       field_ref="dummy_basin_merid_section"        /> <!-- P1 (kg s-1) ocean_meridional_overturning_mass_streamfunction : Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized. **** NEMO-RD does not do: no interpolation from y to meridional -->
+   <field id="CMIP6_msftmzmpa"     field_ref="dummy_basin_merid_section"        /> <!-- P1 (kg s-1) msftmzmpa : CMIP5 called this "due to Bolus Advection".  Name change respects the more general physics of the mesoscale parameterizations. **** NEMO-RD does not do: no interpolation from y to meridional--> 
+   <field id="CMIP6_msftmzsmpa"    field_ref="dummy_basin_merid_section"        /> <!-- P1 (kg s-1) msftmzsmpa : Report only if there is a submesoscale eddy parameterization. **** NEMO-RD: not relevant for IPSL CM6-->
+   <field id="CMIP6_msftyrho"      field_ref="dummy_basin_merid_section_density"/> <!-- P1 (kg s-1) ocean_y_overturning_mass_streamfunction : Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized. **** NEMO-RD: msf on density space not coded online. Ongoing work to code offline. BUt a priori, not distributed here. --> 
+   <field id="CMIP6_msftyrhompa"   field_ref="dummy_basin_merid_section_density"/> <!-- P1 (kg s-1) msftyrhompa : CMIP5 called this "due to Bolus Advection".  Name change respects the more general physics of the mesoscale parameterizations. **** NEMO-RD: msf on density space not coded online. Ongoing work to code offline. BUt a priori, not distributed here.-->
+   <field id="CMIP6_msftyz"        field_ref="zomsf_3bsn" > this * 1e6 * $rau0 </field> <!-- P1 (kg s-1) ocean_y_overturning_mass_streamfunction : Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized. --> 
+   <field id="CMIP6_msftyzmpa"     field_ref="dummy_basin_merid_section"        /> <!-- P1 (kg s-1) msftyzmpa : CMIP5 called this "due to Bolus Advection".  Name change respects the more general physics of the mesoscale parameterizations. **** NEMO-RD: Does not code --> 
+   <field id="CMIP6_msftyzsmpa"    field_ref="dummy_basin_merid_section"         /> <!-- P1 (kg s-1) msftyzsmpa : Report only if there is a submesoscale eddy parameterization. **** NEMO-RD: not relevant for IPSL CM6-->
+   <field id="CMIP6_obvfsq"        field_ref="bn2_e3t" expr="@bn2_e3t / @e3t" > bn2_e3t / e3t </field> <!-- P1 (s-2) obvfsq : Square of Brunt Vaisala Frequency in Sea Water -->
+   <field id="CMIP6_ocontempdiff"  field_ref="ttrd_zdfp_e3t" > this * $cpocean * $rau0 </field> <!-- P1 (W m-2) ocontempdiff : Tendency of heat content for a grid cell from parameterized dianeutral mixing. Reported only for models that use conservative temperature as prognostic field. -->
+   <field id="CMIP6_ocontempmint"  field_ref="dummy_XY"         /> <!-- P3 (degC kg m-2) ocontempmint : Full column sum of density*cell thickness*conservative temperature. If the model is Boussinesq, then use Boussinesq reference density for the density factor. NEMO-RD: exactly same as tomint hence we leave dummy_XY here -->
+   <field id="CMIP6_ocontemppadvect" field_ref="ttrd_eivad_e3t" > this * $cpocean * $rau0 </field> <!-- P1 (W m-2) ocontemppadvect : Tendency of heat content for a grid cell from parameterized eddy advection (any form of eddy advection). Reported only for models that use conservative temperature as prognostic field. -->
+   <field id="CMIP6_ocontemppmdiff" field_ref="ttrd_iso_e3t" > this * $cpocean * $rau0 </field>  <!-- P1 (W m-2) ocontemppmdiff : Tendency of heat content for a grid cell from parameterized mesoscale eddy diffusion. Reported only for models that use conservative temperature as prognostic field. -->
+   <field id="CMIP6_ocontemppsmadvect" field_ref="dummy_XYO"    /> <!-- P1 (W m-2) ocontemppsmadvect : Tendency of heat content for a grid cell from parameterized submesoscale eddy advection. Reported only for models that use conservative temperature as prognostic field. **** NEMO-RD not relevant for IPSL CM6-->
+   <field id="CMIP6_ocontemprmadvect" field_ref="ttrd_totad_e3t" > this * $cpocean * $rau0  </field> <!-- P1 (W m-2) ocontemprmadvect : Tendency of Sea Water Conservative Temperature Expressed as Heat Content due to Residual Mean Advection  -->
+   <field id="CMIP6_ocontemptend"  field_ref="ttrd_tot_e3t" > this * $cpocean * $rau0 </field> <!-- P1 (W m-2) ocontemptend : Tendency of heat content for a grid cell from all processes. Reported only for models that use conservative temperature as prognostic field.  -->
+   <field id="CMIP6_omldamax"      field_ref="mldkz5"           /> <!-- P1 (m) ocean_mixed_layer_thickness_defined_by_mixing_scheme : unset -->
+   <field id="CMIP6_opottempdiff"  field_ref="dummy_XYO"        /> <!-- P1 (W m-2) opottempdiff : Tendency of heat content for a grid cell from parameterized dianeutral mixing. Reported only for models that use potential temperature as prognostic field. **** NEMO-RD not relevant for IPSL CM6-->
+   <field id="CMIP6_opottempmint"  field_ref="dummy_XY"         /> <!-- P1 (degC kg m-2) opottempmint : __unset__ **** NEMO-RD : not relevant for IPSLCM6 -->
+   <field id="CMIP6_opottemppadvect" field_ref="dummy_XYO"      /> <!-- P1 (W m-2) opottemppadvect : Tendency of heat content for a grid cell from parameterized eddy advection (any form of eddy advection). Reported only for models that use potential temperature as prognostic field. **** NEMO-RD : not relevant for IPSLCM6 -->
+   <field id="CMIP6_opottemppmdiff" field_ref="dummy_XYO"       /> <!-- P1 (W m-2) opottemppmdiff : Tendency of heat content for a grid cell from parameterized mesoscale eddy diffusion. Reported only for models that use potential temperature as prognostic field. **** NEMO-RD not relevant for IPSL CM6 -->
+   <field id="CMIP6_opottemppsmadvect" field_ref="dummy_XYO"    /> <!-- P1 (W m-2) opottemppsmadvect : Tendency of heat content for a grid cell from parameterized submesoscale eddy advection. Reported only for models that use potential temperature as prognostic field. **** NEMO-RD not relevant for IPSL CM6 -->
+   <field id="CMIP6_opottemprmadvect" field_ref="dummy_XYO"     /> <!-- P1 (W m-2) opottemprmadvect : Tendency of Sea Eater Potential Temperature Expressed as Heat Content due to Residual Mean Advection **** NEMO-RD not relevant for IPSL CM6 -->
+   <field id="CMIP6_opottemptend"  field_ref="dummy_XYO"        /> <!-- P1 (W m-2) opottemptend : Tendency of heat content for a grid cell from all processes. Reported only for models that use potential temperature as prognostic field. **** NEMO-RD not relevant for IPSL CM6-->
+   <field id="CMIP6_osaltdiff"     field_ref="strd_zdfp_e3t"    > this * $rau0 </field> <!-- P1 (kg m-2 s-1) osaltdiff : Tendency of salt content for a grid cell from parameterized dianeutral mixing.-->
+   <field id="CMIP6_osaltpadvect"  field_ref="strd_eivad_e3t"  > this * $rau0 </field> <!-- P1 (kg m-2 s-1) osaltpadvect : Tendency of salt content for a grid cell from parameterized eddy advection (any form of eddy advection). -->
+   <field id="CMIP6_osaltpmdiff"   field_ref="strd_iso_e3t"  > this * $rau0 </field> <!-- P1 (kg m-2 s-1) osaltpmdiff : Tendency of salt content for a grid cell from parameterized mesoscale eddy diffusion. -->
+   <field id="CMIP6_osaltpsmadvect" field_ref="dummy_XYO"       /> <!-- P1 (kg m-2 s-1) osaltpsmadvect : Tendency of salt content for a grid cell from parameterized submesoscale eddy advection. **** NEMO-RD: not relevant for IPSL CM6--> 
+   <field id="CMIP6_osaltrmadvect" field_ref="strd_totad_e3t"  > this * $rau0  </field> <!-- P1 (kg m-2 s-1) osaltrmadvect : Tendency of Sea Water Salinity Expressed as Salt Content due to Residual Mean Advection -->
+   <field id="CMIP6_osalttend"     field_ref="strd_tot_e3t"  > this * $rau0 </field> <!-- P1 (kg m-2 s-1) osalttend : Tendency of salt content for a grid cell from all processes. -->
+   <field id="CMIP6_pabigthetao"   field_ref="dummy_XYO"        /> <!-- P1 (degC) pabigthetao : Sea Water Added Conservative Temperature **** NEMO-RD: ?? variable undefined in Griffies >> waiting for next DR -->
+   <field id="CMIP6_pathetao"      field_ref="dummy_XYO"        /> <!-- P1 (degC) pathetao : __unset__ **** NEMO-RD: ?? variable undefined in Griffies >> waiting for next DR -->
+   <field id="CMIP6_pbo"           field_ref="botpres"> this * 1e4     </field> <!-- P1 (Pa) sea_water_pressure_at_sea_floor : Sea Water Pressure at Sea floor  --> 
+   <field id="CMIP6_prbigthetao"   field_ref="dummy_XYO"        /> <!-- P1 (degC) prbigthetao : Sea Water Redistributed Conservative Temperature **** NEMO-RD: ?? variable undefined in Griffies >> waiting for next DR -->
+   <field id="CMIP6_prthetao"      field_ref="dummy_XYO"        /> <!-- P1 (degC) prthetao : __unset__ **** NEMO-RD: ?? variable undefined in Griffies >> waiting for next DR -->
+   <field id="CMIP6_prw18O"        field_ref="dummy_XYO"        /> <!-- P1 (kg m-2) mass_content_of_water_vapor_containing_18O_in_atmosphere_layer : Ratio of abundance of oxygen-18 (18O) atoms to oxgen-16 (16O) atoms in sea water -->
+   <field id="CMIP6_pso"           field_ref="dummy_XY"         /> <!-- P1 (Pa) sea_water_pressure_at_sea_water_surface : Sea Water Pressure at Sea Water Surface **** NEMO-RD: not relevant for IPSLCM6 -->
+   <field id="CMIP6_rlntds"        field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_net_downward_longwave_flux : This is defined as "where ice_free_sea over sea" **** NEMO-RD: does not do -->
+   <field id="CMIP6_rsdo"          field_ref="qsr3d_e3t_SBC" expr="@qsr3d_e3t_SBC / @e3t_SBC" > qsr3d_e3t_SBC / e3t_SBC </field>  <!-- P1 (W m-2) downwelling_shortwave_flux_in_sea_water : Downwelling Shortwave Radiation in Sea Water -->
+   <field id="CMIP6_rsdoabsorb"    field_ref="dummy_XYO"        /> <!-- P2 (W m-2) net_rate_of_absorption_of_shortwave_energy_in_ocean_layer : Net Rate of Absorption of Shortwave Energy in Ocean Layer **** NEMO-RD: does not do : easy to compute offline -->
+   <field id="CMIP6_rsntds"        field_ref="qsr"              /> <!-- P1 (W m-2) net_downward_shortwave_flux_at_sea_water_surface : This is the flux into the surface of liquid sea water only. This excludes shortwave flux absorbed by sea ice, but includes any light that passes through the ice and is absorbed by the ocean. -->
+  <field id="CMIP6_sf6"            field_ref="SF6_E3T"   expr="@SF6_E3T / @e3t" > SF6_E3T / e3t </field>  <!-- P1 (mol m-3) mole_concentration_of_sulfur_hexafluoride_in_sea_water : Moles Per Unit Mass of SF6 in sea water **** NEMO-RD: does not do -->
+   <field id="CMIP6_sfdsi"         field_ref="saltflx" > this * $convSpsu </field> <!-- P1 (kg m-2 s-1) downward_sea_ice_basal_salt_flux : This field is physical, and it arises since sea ice has a nonzero salt content, so it exchanges salt with the liquid ocean upon melting and freezing. -->
+   <field id="CMIP6_sfriver"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) salt_flux_into_sea_water_from_rivers : This field is physical, and it arises when rivers carry a nonzero salt content.  Often this is zero, with rivers assumed to be fresh. NEMO-RD : not relevant for IPSLCM6 -->
+   <field id="CMIP6_sftof"         field_ref="iceconc_pct" > 100 - this </field> <!-- P1 (%) sea_area_fraction : This is the area fraction at the ocean surface. **** NEMO-RD: variable already provided in ping_seaIce under name siconc - we decide to keep it here as well -->
+   <field id="CMIP6_sltbasin"      field_ref="sopst_vs_3bsn"> this * 1e6 * $convSpsu   </field> <!-- P1 (kg s-1) northward_ocean_salt_transport : function of latitude, basin **** NEMO-RD: requested is as a function of latitude. In principle, we do not want to translate y into latitude. to be written in meta data -->
+   <field id="CMIP6_sltnortha"     field_ref="sopst_atl"> this * 1e6 * $convSpsu </field> <!-- P1 (kg s-1) northward_ocean_salt_transport : unset -->
+   <field id="CMIP6_sltovgyre"     field_ref="sopstove_3bsn"> sopst_vs_3bsn*1e6*$convSpsu   - this*1e6*$convSpsu   </field> <!-- P1 (kg s-1) northward_ocean_salt_transport_due_to_gyre : From all advective mass transport processes, resolved and parameterized. **** NEMO-RD: requested is as a function of latitude. In principle, we do not want to translate y into. latitude. to be written in meta data --> 
+   <field id="CMIP6_sltovovrt"     field_ref="sopstove_3bsn"> this * 1e6 * $convSpsu  </field> <!-- P1 (kg s-1) northward_ocean_salt_transport_due_to_overturning : From all advective mass transport processes, resolved and parameterized. **** NEMO-RD: requested is as a function of latitude. In principle, we do not want to translate y into latitude. to be writtent in meta data --> 
+   <field id="CMIP6_so"            field_ref="soce_e3t" expr="@soce_e3t / @e3t * $convSpsu"  > soce_e3t / e3t * $convSpsu  </field> <!-- P1 (0.001) sea_water_salinity : Sea Water Salinity -->
+   <field id="CMIP6_sob"           field_ref="sbs_e3tb" expr="@sbs_e3tb / @e3tb * $convSpsu" > sbs_e3tb / e3tb * $convSpsu </field>  <!-- P1 (0.001) sob : Model prognostic salinity at bottom-most model grid cell -->
+   <field id="CMIP6_soga"          field_ref="scsaltot"  > this * $convSpsu </field> <!-- P1 (0.001) sea_water_salinity : Global Mean Sea Water Salinity -->
+   <field id="CMIP6_somint"        field_ref="somint" > this * $convSpsu </field>  <!-- P1 (1e-3 kg m-2) somint : Full column sum of density*cell thickness*prognostic salinity. If the model is Boussinesq, then use Boussinesq reference density for the density factor. -->
+   <field id="CMIP6_sos"           field_ref="sss"  > this * $convSpsu </field> <!-- P1 (0.001) sea_surface_salinity : Sea Surface Salinity -->
+   <field id="CMIP6_sosga"         field_ref="scssstot" > this * $convSpsu </field>  <!-- P1 (0.001) sea_surface_salinity : Global Average Sea Surface Salinity -->
+   <field id="CMIP6_sossq"         field_ref="sss2" > this * $convSpsu * $convSpsu  </field> <!-- P3 (1e-06) sossq : Square of Sea Surface Salinity --> 
+   <field id="CMIP6_sw18O"         field_ref="dummy_XYA"        /> <!-- P1 (1) isotope_ratio_of_17O_to_16O_in_sea_water_excluding_solutes_and_solids : Ratio of abundance of oxygen-17 (17O) atoms to oxgen-16 (16O) atoms in sea water -->
+   <field id="CMIP6_sw2H"          field_ref="dummy_XYO"        /> <!-- P1 (1)  : Ratio of abundance of hydrogen-2 (2H) atoms to hydrogen-1 (1H) atoms in sea water -->
+   <field id="CMIP6_t20d"      field_ref="20d"         /> <!-- P1 (m) depth_of_isosurface_of_sea_water_potential_temperature : unset -->
+   <field id="CMIP6_tauucorr"      field_ref="dummy_FAFMIP"         /> <!-- P1 (N m-2) surface_downward_x_stress_correction : This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.  *** NEMO-RD : TODO for FAFMIP experiments ??? -->
+   <field id="CMIP6_tauuo"         field_ref="utau"             /> <!-- P1 (N m-2) surface_downward_x_stress : This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc. -->
+   <field id="CMIP6_tauvcorr"      field_ref="dummy_FAFMIP"         /> <!-- P1 (N m-2) surface_downward_y_stress_correction : This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.*** NEMO-RD : TODO for FAFMIP experiments ???-->
+   <field id="CMIP6_tauvo"         field_ref="vtau"             /> <!-- P1 (N m-2) surface_downward_y_stress : This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc. -->
+   <field id="CMIP6_thetao"        field_ref="toce_pot"  expr="@toce_pot_e3t / @e3t" > toce_pot_e3t / e3t </field>  <!-- P1 (degC) sea_water_potential_temperature : Diagnostic should be contributed even for models using conservative temperature as prognostic field. -->
+   <field id="CMIP6_thetaoga"      field_ref="sctemtotpot"      /> <!-- P1 (degC) sea_water_potential_temperature : Diagnostic should be contributed even for models using conservative temperature as prognostic field -->
+   <field id="CMIP6_thetaot"       field_ref="toce_pot_vmean"   /> <!-- P1 (degC) sea_water_potential_temperature : Vertical average of the sea water potential temperature through the whole ocean depth -->
+   <field id="CMIP6_thetaot2000"   field_ref="toce_pot_vmean2000"         /> <!-- P1 (degC) sea_water_potential_temperature : Upper 2000m, 2D field -->
+   <field id="CMIP6_thetaot300"    field_ref="toce_pot_vmean300"         /> <!-- P1 (degC) sea_water_potential_temperature : Upper 300m, 2D field -->
+   <field id="CMIP6_thetaot700"    field_ref="toce_pot_vmean700"         /> <!-- P1 (degC) sea_water_potential_temperature : Upper 700m, 2D field -->
+   <field id="CMIP6_thkcello"  field_ref="e3t"        /> <!-- P1 (m) cell_thickness : Ocean Model Cell Thickness -->
+   <field id="CMIP6_tnkebto"   field_ref="dummy_XYO"        /> <!-- P2 (W m-2) tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport : Depth integrated impacts on kinetic energy arising from parameterized eddy-induced advection. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements. -->
+   <field id="CMIP6_tnkebto2d"     field_ref="eketrd_eiv"        /> <!-- P3 (W m-2) tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport : Depth integrated impacts on kinetic energy arising from parameterized eddy-induced advection. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements.  -->
+   <field id="CMIP6_tnpeo"         field_ref="tnpeo"        /> <!-- P1 (W m-2) tendency_of_ocean_potential_energy_content : Rate that work is done against vertical stratification, as measured by the vertical heat and salt diffusivity. Report here as depth integrated two-dimensional field. -->
+   <field id="CMIP6_tnpeot"        field_ref="dummy_XYO"        /> <!-- P1 (W m-2) tendency_of_ocean_potential_energy_content_due_to_tides : unset -->
+   <field id="CMIP6_tnpeotb"       field_ref="dummy_XYO"        /> <!-- P1 (W m-2) tendency_of_ocean_potential_energy_content_due_to_background : unset -->
+   <field id="CMIP6_tob"           field_ref="toce_potb_e3tb" expr="@toce_potb_e3tb / @e3tb" > toce_potb_e3tb / e3tb </field> <!-- P1 (degC) sea_water_potential_temperature_at_sea_floor : Potential temperature at the ocean bottom-most grid cell.  -->
+   <field id="NEMO_tomint"        field_ref="tosmint"           /> <!-- P2 (1e-3 kg m-2) tomint : Full column sum of density*cell thickness*prognostic temperature. If the model is Boussinesq, then use Boussinesq reference density for the density factor. *** NEMO-RD assumes this is potential temperature + provides with units Â°C kg m-2-->
+   <field id="CMIP6_tos"           field_ref="sst_pot"              /> <!-- P1 (degC) sea_surface_temperature : temperature of liquid ocean.  Note that the correct standard_name for this variable is "sea_surface_temperature", not "surface_temperature", but this was discovered too late to correct.  To maintain consistency across CMIP5 models, the wrong standard_name will continue to be used. **** NEMO-RD: TODO : JM: is this really requested in K? This does not agree with the .xls document. To be clarified. In NEMO, sst given in Celsius -->
+   <field id="CMIP6_tosga"         field_ref="scssttot"           /> <!-- P1 (degC) sea_surface_temperature : This may differ from "surface temperature" in regions of sea ice.This may differ from "surface temperature" in regions of sea ice.For models using conservative temperature as prognostic field, they should report the SST as surface potent -->
+   <field id="CMIP6_tossq"         field_ref="sst_pot2"             /> <!-- P1 (degC2) square_of_sea_surface_temperature : square of temperature of liquid ocean, averaged over the day.  -->  
+   <field id="CMIP6_ugrid"         field_ref="dummy_XY"         /> <!-- P1 () longitude : Provide for models with unstructured grids only -->
+   <field id="CMIP6_umo"           field_ref="uocetr_eff" > this * $rau0 </field> <!-- P1 (kg s-1) ocean_mass_x_transport : X-ward mass transport from resolved and parameterized advective transport. -->
+   <field id="CMIP6_uo"            field_ref="uoce_e3u" expr="@uoce_e3u / @e3u" > uoce_e3u / e3u </field> <!-- P1 (m s-1) sea_water_x_velocity : Prognostic x-ward velocity component resolved by the model. -->
+   <field id="CMIP6_vmo"           field_ref="vocetr_eff"  > this * $rau0 </field> <!-- P1 (kg s-1) ocean_mass_y_transport : Y-ward mass transport from resolved and parameterized advective transport. -->
+   <field id="CMIP6_vo"            field_ref="voce_e3v" expr="@voce_e3v / @e3v" > voce_e3v / e3v </field> <!-- P1 (m s-1) sea_water_y_velocity : Prognostic x-ward velocity component resolved by the model. -->
+   <field id="CMIP6_volcello"      field_ref="dummy_XYO"        /> <!-- P1 (m3) ocean_volume : grid-cell volume ca. 2000. **** NEMO-RD does not do: not requested by OMIP and ambiguous definition -->
+   <field id="CMIP6_volo"          field_ref="scvoltot"           /> <!-- P1 (m3) sea_water_volume : Total volume of liquid seawater. -->
+   <field id="CMIP6_vsf"           field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) virtual_salt_flux_into_sea_water : It is set to zero in models which receive a real water flux. -->
+   <field id="CMIP6_vsfcorr"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) virtual_salt_flux_correction : It is set to zero in models which receive a real water flux. -->
+   <field id="CMIP6_vsfevap"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) virtual_salt_flux_into_sea_water_due_to_evaporation : zero for models using real water fluxes. -->
+   <field id="CMIP6_vsfpr"         field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) virtual_salt_flux_into_sea_water_due_to_rainfall : zero for models using real water fluxes. -->
+   <field id="CMIP6_vsfriver"      field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) virtual_salt_flux_into_sea_water_from_rivers : zero for models using real water fluxes. -->
+   <field id="CMIP6_vsfsit"        field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) virtual_salt_flux_into_sea_water_due_to_sea_ice_thermodynamics : This variable measures the virtual salt flux into sea water due to the melting of sea ice. It is set to zero in models which receive a real water flux. -->
+   <field id="CMIP6_wfcorr"        field_ref="erp"         /> <!-- P1 (kg m-2 s-1) water_flux_correction : Positive flux implies correction adds water to ocean. -->
+   <field id="CMIP6_wfo"           field_ref="empmr" /> <!-- P1 (kg m-2 s-1) water_flux_into_sea_water : computed as the water  flux into the ocean divided by the area of the ocean portion of the grid cell.  This is the sum of the next two variables in this table.  -->
+   <field id="CMIP6_wfonocorr"     field_ref="empmr"  > empmr - erp </field><!-- P1 (kg m-2 s-1) water_flux_into_sea_water_without_flux_correction : computed as the water  flux (without flux correction) into the ocean divided by the area of the ocean portion of the grid cell. *** NEMO-RD : TODO in field_ocean, empmr is defined as water flux out of sea ice and sea water. Is sea ice really taken into here? If no, correct description in field. If yes, this input is wrong here. -->
+   <field id="CMIP6_wmo"           field_ref="wocetr_eff" > this * $rau0 </field> <!-- P1 (kg s-1) upward_ocean_mass_transport : Upward mass transport from resolved and parameterized advective transport. -->
+   <field id="CMIP6_wo"            field_ref="woce" expr="@woce_e3w / @e3w"  > woce_e3w / e3w </field> <!-- P1 (m s-1) upward_sea_water_velocity : Sea Water Vertical Velocity -->
+   <field id="CMIP6_zfullo"    field_ref="dummy_XYO"        /> <!-- P1 (m) depth_below_geoid : Depth below geoid -->
+   <field id="CMIP6_zhalfo"    field_ref="dummy_XYO"        /> <!-- P1 (m) depth_below_geoid : Depth below geoid -->
+   <field id="CMIP6_zos"           field_ref="sshdyn"             /> <!-- P1 (m) sea_surface_height_above_geoid : This is the dynamic sea level, so should have zero global area mean. It should not include inverse barometer depressions from sea ice. -->
+   <field id="CMIP6_zossq"         field_ref="sshdyn2"         /> <!-- P1 (m2) square_of_sea_surface_height_above_geoid : Surface ocean geoid defines z=0. -->
+   <field id="CMIP6_zostoga"       field_ref="scsshtst" />       <!-- P1 (m) global_average_thermosteric_sea_level_change : There is no CMIP6 request for zosga nor zossga. -->
+
+ <!-- for variables which realm equals one of _seaIce-->
+   <field id="CMIP6_siage"         field_ref="iceage"            /> <!-- P1 (s) age_of_sea_ice : Age of sea ice -->
+   <field id="CMIP6_siareaacrossline" field_ref="transport_siarea_transect"        /> <!-- P2 (m2 s-1) siareaacrossline : net (sum of transport in all directions) sea ice area transport through the following four passages, positive into the Arctic Ocean 1. Fram Strait = (11.5W,81.3N to (10.5E,79.6N) 2. Canadian Archipelego = (128.2W,70.6N) to (59.3W,82.1N) 3. Barents opening = (16.8E,76.5N) to (19.2E,70.2N) 4. Bering Strait = (171W,66.2N) to (166W,65N) -->
+   <field id="CMIP6_siarean"       field_ref="NH_sc_icearea" />     <!-- P2 (1e6 km2) sea_ice_area : total area of sea ice in the Northern hemisphere -->
+   <field id="CMIP6_siareas"       field_ref="SH_sc_icearea" />     <!-- P2 (1e6 km2) sea_ice_area : total area of sea ice in the Southern hemisphere -->
+   <field id="CMIP6_sicompstren"   field_ref="icestr"      /> <!-- P2 (N m-1) compressive_strength_of_sea_ice : Computed strength of the ice pack, defined as the energy (J m-2) dissipated per unit area removed from the ice pack under compression, and assumed proportional to the change in potential energy caused by ridging. For Hibler-type models, this is P (= P*hexp(-C(1-A))) -->
+   <field id="CMIP6_siconc"        field_ref="iceconc_pct"           /> <!-- P1 (%) sea_ice_area_fraction : Area fraction of grid cell covered by sea ice -->
+   <field id="CMIP6_siconca"       field_ref="dummy_XY"         /> <!-- P1 (%) sea_ice_area_fraction : Area fraction of grid cell covered by sea ice -->
+   <field id="CMIP6_sidconcdyn"    field_ref="afxdyn"       /> <!-- P2 (s-1) tendency_of_sea_ice_area_fraction_due_to_dynamics : Total change in sea-ice area fraction through dynamics-related processes (advection, divergence...) -->
+   <field id="CMIP6_sidconcth"     field_ref="afxthd"        /> <!-- P2 (s-1) tendency_of_sea_ice_area_fraction_due_to_thermodynamics : Total change in sea-ice area fraction through thermodynamic processes -->
+   <field id="CMIP6_sidivvel"      field_ref="idive"         /> <!-- P2 (s-1) divergence_of_sea_ice_velocity : Divergence of sea-ice velocity field (first shear strain invariant) -->
+   <field id="CMIP6_sidmassdyn"    field_ref="dmidyn"       /> <!-- P2 (kg m-2 s-1) sidmassdyn : Total change in sea-ice mass through dynamics-related processes (advection,...) divided by grid-cell area -->
+   <field id="CMIP6_sidmassevapsubl" field_ref="dmisub"  /> <!-- P1 (kg m-2 s-1) water_evaporation_flux : The rate of change of sea-ice mass change through evaporation and sublimation divided by grid-cell area -->
+   <field id="CMIP6_sidmassgrowthbot" field_ref="dmibog" /> <!-- P2 (kg m-2 s-1) tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation : The rate of change of sea ice mass due to vertical growth of existing sea ice at its base divided by grid-cell area. -->
+   <field id="CMIP6_sidmassgrowthwat" field_ref="dmiopw" /> <!-- P2 (kg m-2 s-1) sidmassgrowthwat : The rate of change of sea ice mass due to sea ice formation in supercooled water (often through frazil formation) divided by grid-cell area. Together, sidmassgrowthwat and sidmassgrowthbot should give total ice growth -->
+   <field id="CMIP6_sidmasslat"    field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) sidmasslat : The rate of change of sea ice mass through lateral melting divided by grid-cell area (report 0 if not explicitly calculated thermodynamically) -->
+   <field id="CMIP6_sidmassmeltbot" field_ref="dmibom"   /> <!-- P1 (kg m-2 s-1) tendency_of_sea_ice_amount_due_to_basal_melting : The rate of change of sea ice mass through melting at the ice bottom divided by grid-cell area -->
+   <field id="CMIP6_sidmassmelttop" field_ref="dmisum"   /> <!-- P1 (kg m-2 s-1) tendency_of_sea_ice_amount_due_to_surface_melting : The rate of change of sea ice mass through melting at the ice surface divided by grid-cell area -->
+   <field id="CMIP6_sidmasssi"     field_ref="dmisni"        /> <!-- P2 (kg m-2 s-1) tendency_of_sea_ice_amount_due_to_snow_conversion : The rate of change of sea ice mass due to transformation of snow to sea ice divided by grid-cell area -->
+   <field id="CMIP6_sidmassth"     field_ref="dmithd"        /> <!-- P2 (kg m-2 s-1) sidmassth : Total change in sea-ice mass from thermodynamic processes divided by grid-cell area -->
+   <field id="CMIP6_sidmasstranx"  field_ref="xmtrptot"     /> <!-- P2 (kg s-1) sea_ice_x_transport : Includes transport of both sea ice and snow by advection -->
+   <field id="CMIP6_sidmasstrany"  field_ref="ymtrptot"     /> <!-- P2 (kg s-1) sea_ice_y_transport : Includes transport of both sea ice and snow by advection -->
+   <field id="CMIP6_sidragbot"     field_ref="dummy_XY"         /> <!-- P3 (1.0) sidragbot : Oceanic drag coefficient that is used to calculate the oceanic momentum drag on sea ice -->
+   <field id="CMIP6_sidragtop"     field_ref="dummy_XY"         /> <!-- P3 (1.0) surface_drag_coefficient_for_momentum_in_air : Atmospheric drag coefficient that is used to calculate the atmospheric momentum drag on sea ice -->
+   <field id="CMIP6_siextentn"     field_ref="NH_sc_iceextt"  />   <!-- P2 (1e6 km2) sea_ice_extent : Total area of all Northern-Hemisphere grid cells that are covered by at least 15 % areal fraction of sea ice -->
+   <field id="CMIP6_siextents"     field_ref="SH_sc_iceextt"  />     <!-- P2 (1e6 km2) sea_ice_extent : Total area of all Southern-Hemisphere grid cells that are covered by at least 15 % areal fraction of sea ice -->
+   <field id="CMIP6_sifb"          field_ref="icefb"             /> <!-- P2 (m) sea_ice_freeboard : Mean height of sea-ice surface (=snow-ice interface when snow covered) above sea level -->
+   <field id="CMIP6_siflcondbot"   field_ref="hfxconbo"      /> <!-- P2 (W m-2) siflcondbot : the net heat conduction flux at the ice base -->
+   <field id="CMIP6_siflcondtop"   field_ref="hfxconsu"      /> <!-- P2 (W m-2) siflcondtop : the net heat conduction flux at the ice surface -->
+   <field id="CMIP6_siflfwbot"     field_ref="wfxtot"        /> <!-- P2 (kg m-2 s-1) siflfwbot : Total flux of fresh water from water into sea ice divided by grid-cell area; This flux is negative during ice growth (liquid water mass decreases, hence upward flux of freshwater), positive during ice melt (liquid water mass increases, hence downward flux of freshwater) -->
+   <field id="CMIP6_siflfwdrain"   field_ref="wfxsum"           /> <!-- P2 (kg m-2 s-1) siflfwdrain : Total flux of fresh water from sea-ice surface into underlying ocean. This combines both surface melt water that drains directly into the ocean and the drainage of surface melt pond. By definition, this flux is always positive. -->
+   <field id="CMIP6_sifllatstop"   field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_upward_latent_heat_flux : the net latent heat flux over sea ice -->
+   <field id="CMIP6_sifllwdtop"    field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_downwelling_longwave_flux_in_air : the downwelling longwave flux over sea ice (always positive) -->
+   <field id="CMIP6_sifllwutop"    field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_upwelling_longwave_flux_in_air : the upwelling longwave flux over sea ice (always negative) -->
+   <field id="NEMO_siflsaltbot"   field_ref="sfx_mv"      /> <!-- P2 (kg m-2 s-1) siflsaltbot : Total flux of salt from water into sea ice divided by grid-cell area; salt flux is upward (negative) during ice growth when salt is embedded into the ice and downward (positive) during melt when salt from sea ice is again released to the ocean -->
+   <field id="CMIP6_siflsenstop"   field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : the net sensible heat flux over sea ice -->
+   <field id="CMIP6_siflsensupbot" field_ref="hfxsenso"    /> <!-- P2 (W m-2) siflsensupbot : the net sensible heat flux under sea ice from the ocean -->
+   <field id="CMIP6_siflswdbot"    field_ref="dummy_XY"         /> <!-- P2 (W m-2) siflswdbot : The downwelling shortwave flux underneath sea ice (always positive) -->
+   <field id="CMIP6_siflswdtop"    field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air : The downwelling shortwave flux over sea ice (always positive by sign convention) -->
+   <field id="CMIP6_siflswutop"    field_ref="dummy_XY"         /> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air : The upwelling shortwave flux over sea ice (always negative) -->
+   <field id="CMIP6_siforcecoriolx" field_ref="corstrx"   /> <!-- P3 (N m-2) siforcecoriolx : X-component of force on sea ice caused by coriolis force -->
+   <field id="CMIP6_siforcecorioly" field_ref="corstry"   /> <!-- P3 (N m-2) siforcecorioly : Y-component of force on sea ice caused by coriolis force -->
+   <field id="CMIP6_siforceintstrx" field_ref="intstrx"   /> <!-- P3 (N m-2) siforceintstrx : X-component of force on sea ice caused by internal stress (divergence of sigma) -->
+   <field id="CMIP6_siforceintstry" field_ref="intstry"   /> <!-- P3 (N m-2) siforceintstry : Y-component of force on sea ice caused by internal stress (divergence of sigma) -->
+   <field id="CMIP6_siforcetiltx"  field_ref="dssh_dx"     /> <!-- P3 (N m-2) siforcetiltx : X-component of force on sea ice caused by sea-surface tilt -->
+   <field id="CMIP6_siforcetilty"  field_ref="dssh_dy"     /> <!-- P3 (N m-2) siforcetilty : Y-component of force on sea ice caused by sea-surface tilt -->
+   <field id="CMIP6_sihc"          field_ref="icehcneg"             /> <!-- P2 (J m-2) integral_of_sea_ice_temperature_wrt_depth_expressed_as_heat_content : Heat content of all ice in grid cell divided by total grid-cell area. Water at 0 Celsius is assumed to have a heat content of 0 J.  Does not include heat content of snow, but does include heat content of brine. Heat content is always negative, since both the sensible and the latent heat content of ice are less than that of water -->
+   <field id="CMIP6_siitdconc"     field_ref="iceconc_cat_pct_mv"        /> <!-- P3 (%) siitdconc : Area fraction of grid cell covered by each ice-thickness category (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of the categories as third coordinate axis) -->
+   <field id="CMIP6_siitdsnconc"   field_ref="dummy_XY"         /> <!-- P3 (%) siitdsnconc : Area fraction of grid cell covered by snow in each ice-thickness category (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of the categories as third coordinate axis) -->
+   <field id="CMIP6_siitdsnthick"  field_ref="snowthic_cat_mv"     /> <!-- P3 (m) siitdsnthick : Actual thickness of snow in each  category (NOT volume divided by grid area),  (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of categories as third coordinate axis) -->
+   <field id="CMIP6_siitdthick"    field_ref="icethic_cat_mv"       /> <!-- P3 (m) siitdthick : Actual (floe) thickness of sea ice in each  category (NOT volume divided by grid area),  (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of categories as third coordinate axis) -->
+   <field id="CMIP6_simass"        field_ref="icemass"           /> <!-- P1 (kg m-2) sea_ice_amount : Total mass of sea ice divided by grid-cell area -->
+   <field id="CMIP6_simassacrossline" field_ref="transport_simasse_transect"        /> <!-- P1 (kg s-1) sea_ice_transport_across_line : net (sum of transport in all directions) sea ice area transport through the following four passages, positive into the Arctic Ocean 1. Fram Strait = (11.5W,81.3N to (10.5E,79.6N) 2. Canadian Archipelego = (128.2W,70.6N) to (59.3W,82.1N) 3. Barents opening = (16.8E,76.5N) to (19.2E,70.2N) 4. Bering Strait = (171W,66.2N) to (166W,65N) -->
+   <field id="CMIP6_simpconc"      field_ref="dummy_XY"         /> <!-- P3 (%) area_fraction : Fraction of sea ice, by area, which is covered by melt ponds, giving equal weight to every square metre of sea ice . -->
+   <field id="CMIP6_simpmass"      field_ref="dummy_XY"         /> <!-- P3 (kg m-2) simpmass : Meltpond mass per area of sea ice. -->
+   <field id="CMIP6_simprefrozen"  field_ref="dummy_XY"         /> <!-- P3 (m) simprefrozen : Volume of refrozen ice on melt ponds divided by meltpond covered area -->
+   <field id="CMIP6_sipr"          field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) rainfall_flux : mass of liquid precipitation falling onto sea ice divided by grid-cell area -->
+   <field id="CMIP6_sirdgconc"     field_ref="dummy_XY"         /> <!-- P3 (1.0) sirdgconc : Fraction of sea ice, by area, which is covered by sea ice ridges, giving equal weight to every square metre of sea ice . -->
+   <field id="CMIP6_sirdgthick"    field_ref="dummy_XY"         /> <!-- P3 (m) sirdgthick : Sea Ice Ridge Height (representing mean height over the ridged area) -->
+   <field id="CMIP6_sisali"        field_ref="icesal"           /> <!-- P1 (0.001) sea_ice_salinity : Mean sea-ice salinity of all sea ice in grid cell -->
+   <field id="CMIP6_sisaltmass"    field_ref="icesmass"       /> <!-- P3 (kg m-2) sisaltmass : Total mass of all salt in sea ice divided by grid-cell area -->
+   <field id="CMIP6_sishevel"      field_ref="ishear"         /> <!-- P2 (s-1) sishevel : Maximum shear of sea-ice velocity field (second shear strain invariant) -->
+   <field id="CMIP6_sisnconc"      field_ref="dummy_XY"         /> <!-- P1 (%) surface_snow_area_fraction : Fraction of sea ice, by area, which is covered by snow, giving equal weight to every square metre of sea ice . Exclude snow that lies on land or land ice. -->
+   <field id="CMIP6_sisnhc"        field_ref="isnhcneg"           /> <!-- P2 (J m-2) thermal_energy_content_of_surface_snow : Heat-content of all snow in grid cell divided by total grid-cell area. Snow-water equivalent at 0 Celsius is assumed to have a heat content of 0 J.  Does not include heat content of sea ice. -->
+   <field id="CMIP6_sisnmass"      field_ref="snomass"         /> <!-- P1 (kg m-2) liquid_water_content_of_surface_snow : Total mass of snow on sea ice divided by grid-cell area -->
+   <field id="CMIP6_sisnthick"     field_ref="snothic"        /> <!-- P1 (m) surface_snow_thickness : Actual thickness of snow (snow volume divided by snow-covered area) -->
+   <field id="CMIP6_sispeed"       field_ref="icevel_mv"          /> <!-- P1 (m s-1) sea_ice_speed : Speed of ice (i.e. mean absolute velocity) to account for back-and-forth movement of the ice -->
+   <field id="CMIP6_sistremax"     field_ref="sheastr"        /> <!-- P3 (N m-1) sistremax : Maximum shear stress in sea ice (second stress invariant) -->
+   <field id="CMIP6_sistresave"    field_ref="normstr"       /> <!-- P3 (N m-1) sistresave : Average normal stress in sea ice (first stress invariant) -->
+   <field id="CMIP6_sistrxdtop"    field_ref="utau_ice"       /> <!-- P2 (N m-2) surface_downward_x_stress : X-component of atmospheric stress on sea ice -->
+   <field id="CMIP6_sistrxubot"    field_ref="utau_oi"       /> <!-- P2 (N m-2) sistrxubot : X-component of ocean stress on sea ice -->
+   <field id="CMIP6_sistrydtop"    field_ref="vtau_ice"       /> <!-- P2 (N m-2) surface_downward_y_stress : Y-component of atmospheric stress on sea ice -->
+   <field id="CMIP6_sistryubot"    field_ref="vtau_oi"       /> <!-- P2 (N m-2) downward_y_stress_at_sea_ice_base : Y-component of ocean stress on sea ice -->
+   <field id="CMIP6_sitempbot"     field_ref="icebotK"        /> <!-- P2 (K) sitempbot : Report temperature at interface, NOT temperature within lowermost model layer -->
+   <field id="CMIP6_sitempsnic"    field_ref="icesntK"       /> <!-- P1 (K) sea_ice_surface_temperature : Report surface temperature of ice where snow thickness is zero -->
+   <field id="CMIP6_sitemptop"     field_ref="icestK"        /> <!-- P1 (K) sea_ice_surface_temperature : Report surface temperature of snow where snow covers the sea ice. -->
+   <field id="CMIP6_sithick"       field_ref="icethic"          /> <!-- P1 (m) sea_ice_thickness : Actual (floe) thickness of sea ice (NOT volume divided by grid area as was done in CMIP5) -->
+   <field id="CMIP6_sitimefrac"    field_ref="icepres"       /> <!-- P1 (1.0) sitimefrac : Fraction of time steps of the averaging period during which sea ice is present (siconc >0 ) in a grid cell -->
+   <field id="CMIP6_siu"           field_ref="uice_mv"              /> <!-- P1 (m s-1) sea_ice_x_velocity : The x-velocity of ice on native model grid -->
+   <field id="CMIP6_siv"           field_ref="vice_mv"              /> <!-- P1 (m s-1) sea_ice_y_velocity : The y-velocity of ice on native model grid -->
+   <field id="CMIP6_sivol"         field_ref="icevolu"            /> <!-- P1 (m) sea_ice_thickness : Total volume of sea ice divided by grid-cell area (this used to be called ice thickness in CMIP5) -->
+   <field id="CMIP6_sivoln"        field_ref="NH_sc_icevolu"  />     <!-- P2 (1e3 km3) sea_ice_volume : total volume of sea ice in the Northern hemisphere -->
+   <field id="CMIP6_sivols"        field_ref="SH_sc_icevolu"  />     <!-- P2 (1e3 km3) sea_ice_volume : total volume of sea ice in the Southern hemisphere -->
+   <field id="CMIP6_sndmassdyn"    field_ref="dmsdyn"       /> <!-- P2 (kg m-2 s-1) sndmassdyn : the rate of change of snow mass through advection with sea ice divided by grid-cell area -->
+   <field id="CMIP6_sndmassmelt"   field_ref="dmsmel"      /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : the rate of change of snow mass through melt divided by grid-cell area -->
+   <field id="CMIP6_sndmasssi"     field_ref="dmsssi"        /> <!-- P2 (kg m-2 s-1) sndmasssi : the rate of change of snow mass due to transformation of snow to sea ice divided by grid-cell area -->
+   <field id="CMIP6_sndmasssnf"    field_ref="dmsspr"       /> <!-- P1 (kg m-2 s-1) snowfall_flux : mass of solid precipitation falling onto sea ice divided by grid-cell area -->
+   <field id="CMIP6_sndmasssubl"   field_ref="dmssub"      /> <!-- P2 (kg m-2 s-1) sndmasssubl : the rate of change of snow mass through sublimation and evaporation divided by grid-cell area -->
+   <field id="CMIP6_sndmasswindrif" field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) sndmasswindrif : the rate of change of snow mass through wind drift of snow (from sea-ice into the sea) divided by grid-cell area -->
+   <field id="CMIP6_snmassacrossline" field_ref="transport_snmasse_transect"        /> <!-- P2 (kg s-1) snmassacrossline : net (sum of transport in all directions) snow mass transport through the following four passages, positive into the Arctic Ocean 1. Fram Strait = (11.5W,81.3N to (10.5E,79.6N) 2. Canadian Archipelego = (128.2W,70.6N) to (59.3W,82.1N) 3. Barents opening = (16.8E,76.5N) to (19.2E,70.2N) 4. Bering Strait = (171W,66.2N) to (166W,65N) -->
+
+<!-- for variables which realm equals one of _ocnBgchem-->
+   <field id="CMIP6_arag"          field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water : sum of particulate aragonite components (e.g. Phytoplankton, Detrital, etc.) -->
+   <field id="CMIP6_aragos"        field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water : sum of particulate aragonite components (e.g. Phytoplankton, Detrital, etc.) -->
+   <field id="CMIP6_bacc"          field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water : sum of bacterial carbon component concentrations -->
+   <field id="CMIP6_baccos"        field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water : sum of bacterial carbon component concentrations -->
+   <field id="CMIP6_bddtalk"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes : Net of biological terms in time rate of change of alkalinity -->
+   <field id="CMIP6_bddtdic"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_biological_processes : Net of biological terms in time rate of change of dissolved inorganic carbon -->
+   <field id="CMIP6_bddtdife"      field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_inorganic_iron_in_sea_water_due_to_biological_processes : Net of biological terms in time rate of change of dissolved inorganic iron -->
+   <field id="CMIP6_bddtdin"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_inorganic_nitrogen_in_sea_water_due_to_biological_processes : Net of biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4) -->
+   <field id="CMIP6_bddtdip"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water_due_to_biological_processes : Net of biological terms in time rate of change of dissolved phosphorus -->
+   <field id="CMIP6_bddtdisi"      field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_inorganic_silicon_in_sea_water_due_to_biological_processes : Net of biological terms in time rate of change of dissolved inorganic silicon -->
+   <field id="CMIP6_bfe"           field_ref="BFe_E3T"     expr="@BFe_E3T / @e3t * 1e-3 + @SFe_E3T / @e3t * 1e-3" > BFe_E3T / e3t * 1e-3 + SFe_E3T / e3t * 1e-3  </field>  <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water : sum of particulate organic iron component concentrations -->
+   <field id="CMIP6_bfeos"         field_ref="BFeSFC_E3T"  expr="@BFeSFC_E3T / @E3TSFC * 1e-3 + @SFeSFC_E3T / @E3TSFC * 1e-3" > BFeSFC_E3T / E3TSFC * 1e-3 + SFeSFC_E3T / E3TSFC * 1e-3  </field> <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water : sum of particulate organic iron component concentrations -->
+   <field id="CMIP6_bsi"           field_ref="GSi_E3T"     expr="@GSi_E3T / @e3t * 1e-3"  >   GSi_E3T / e3t * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water : sum of particulate silica component concentrations -->
+   <field id="CMIP6_bsios"         field_ref="GSiSFC_E3T"  expr="@GSiSFC_E3T / @E3TSFC * 1e-3"  >  GSiSFC_E3T / E3TSFC * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_silicon_in_sea_water : sum of particulate silica component concentrations -->
+   <field id="CMIP6_calc"          field_ref="CaCO3_E3T"   expr="@CaCO3_E3T / @e3t * 1e-3" >  CaCO3_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_calcite_expressed_as_carbon_in_sea_water : sum of particulate calcite component concentrations (e.g. Phytoplankton, Detrital, etc.) -->
+   <field id="CMIP6_calcos"        field_ref="CaCO3SFC_E3T"   expr="@CaCO3SFC_E3T / @E3TSFC * 1e-3"  >  CaCO3SFC_E3T / E3TSFC * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_calcite_expressed_as_carbon_in_sea_water : sum of particulate calcite component concentrations (e.g. Phytoplankton, Detrital, etc.) -->
+   <field id="CMIP6_chl"           field_ref="NCHL_E3T"    expr="@NCHL_E3T / @e3t * 1e-3 + @DCHL_E3T / @e3t * 1e-3" > NCHL_E3T / e3t * 1e-3 + DCHL_E3T / e3t * 1e-3 </field> <!-- P1 (kg m-3) mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water : sum of chlorophyll from all phytoplankton group concentrations.  In most models this is equal to chldiat+chlmisc, that is the sum of "Diatom Chlorophyll Mass Concentration" plus "Other Phytoplankton Chlorophyll Mass Concentration" -->
+   <field id="CMIP6_chlcalc"       field_ref="dummy_XYO"        /> <!-- P2 (kg m-3) mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water : chlorophyll concentration from the calcite-producing phytoplankton component alone -->
+   <field id="CMIP6_chlcalcos"     field_ref="dummy_XY"         /> <!-- P2 (kg m-3) mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water : chlorophyll concentration from the calcite-producing phytoplankton component alone -->
+   <field id="CMIP6_chldiat"       field_ref="DCHL_E3T"  expr="@DCHL_E3T / @e3t * 1e-3" > DCHL_E3T / e3t * 1e-3  </field> <!-- P2 (kg m-3) mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water : chlorophyll from diatom phytoplankton component concentration alone -->
+   <field id="CMIP6_chldiatos"     field_ref="DCHLSFC_E3T" expr="@DCHLSFC_E3T / @E3TSFC * 1e-3" >  DCHLSFC_E3T / E3TSFC * 1e-3 </field> <!-- P2 (kg m-3) mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water : chlorophyll from diatom phytoplankton component concentration alone -->
+   <field id="CMIP6_chldiaz"       field_ref="dummy_XYO"        /> <!-- P2 (kg m-3) mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water : chlorophyll concentration from the diazotrophic phytoplankton component alone -->
+   <field id="CMIP6_chldiazos"     field_ref="dummy_XY"         /> <!-- P2 (kg m-3) mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water : chlorophyll concentration from the diazotrophic phytoplankton component alone -->
+   <field id="CMIP6_chlmisc"       field_ref="NCHL_E3T"  expr="@NCHL_E3T / @e3t * 1e-3" > NCHL_E3T / e3t * 1e-3 </field>  <!-- P2 (kg m-3) mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water : chlorophyll from additional phytoplankton component concentrations alone -->
+   <field id="CMIP6_chlmiscos"     field_ref="NCHLSFC_E3T" expr="@NCHLSFC_E3T / @E3TSFC * 1e-3" > NCHLSFC_E3T / E3TSFC * 1e-3 </field>  <!-- P2 (kg m-3) mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water : chlorophyll from additional phytoplankton component concentrations alone -->
+   <field id="CMIP6_chlos"         field_ref="NCHLSFC_E3T"  expr="@NCHLSFC_E3T / @E3TSFC * 1e-3 + @DCHLSFC_E3T / @E3TSFC * 1e-3" > NCHLSFC_E3T / E3TSFC * 1e-3 + DCHLSFC_E3T / E3TSFC * 1e-3 </field>  <!-- P1 (kg m-3) mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water : sum of chlorophyll from all phytoplankton group concentrations.  In most models this is equal to chldiat+chlmisc, that is the sum of "Diatom Chlorophyll Mass Concentration" plus "Other Phytoplankton Chlorophyll Mass Concentration" -->
+   <field id="CMIP6_chlpico"       field_ref="dummy_XYO"        /> <!-- P2 (kg m-3) mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water : chlorophyll concentration from the picophytoplankton (<2 um) component alone -->
+   <field id="CMIP6_chlpicoos"     field_ref="dummy_XY"         /> <!-- P2 (kg m-3) mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water : chlorophyll concentration from the picophytoplankton (<2 um) component alone -->
+   <field id="CMIP6_co3"           field_ref="CO3"        /> <!-- P1 (mol m-3) mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with a charge of minus two. -->
+   <field id="CMIP6_co3abio"       field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". In ocean biogeochemistry models, an "abiotic analogue" is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. -->
+   <field id="CMIP6_co3abioos"     field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". In ocean biogeochemistry models, an "abiotic analogue" is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. -->
+   <field id="CMIP6_co3nat"        field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". In ocean biogeochemistry models, a "natural analogue" is used to simulate the effect on a modelled variable of imposing preindustrial atmospheric carbon dioxide concentrations, even when the model as a whole may be subjected to varying forcings. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. -->
+   <field id="CMIP6_co3natos"      field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". In ocean biogeochemistry models, a "natural analogue" is used to simulate the effect on a modelled variable of imposing preindustrial atmospheric carbon dioxide concentrations, even when the model as a whole may be subjected to varying forcings. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. -->
+   <field id="CMIP6_co3os"         field_ref="CO3SFC"         /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with a charge of minus two. -->
+   <field id="CMIP6_co3satarag"    field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. Aragonite is a mineral that is a polymorph of calcium carbonate. The chemical formula of aragonite is CaCO3. At a given salinity, the thermodynamic equilibrium is that between dissolved carbonate ion and solid aragonite. Standard names also exist for calcite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_co3sataragos"  field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. Aragonite is a mineral that is a polymorph of calcium carbonate. The chemical formula of aragonite is CaCO3. At a given salinity, the thermodynamic equilibrium is that between dissolved carbonate ion and solid aragonite. Standard names also exist for calcite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_co3satcalc"    field_ref="CO3sat"        /> <!-- P1 (mol m-3) mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. At a given salinity, the thermodynamic equilibrium is that between dissolved carbonate ion and solid calcite. Standard names also exist for aragonite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_co3satcalcos"  field_ref="CO3satSFC"         /> <!-- P2 (mol m-3) mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula of the carbonate anion is CO3 with an electrical charge of minus two. Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. At a given salinity, the thermodynamic equilibrium is that between dissolved carbonate ion and solid calcite. Standard names also exist for aragonite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_darag"         field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_dissolution : Rate of change of Aragonite carbon mole concentration  due to dissolution -->
+   <field id="CMIP6_dcalc"         field_ref="DCAL"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_dissolution : Rate of change of Calcite carbon mole concentration  due to dissolution -->
+   <field id="CMIP6_detoc"         field_ref="POC_E3T"  expr="@POC_E3T / @e3t * 1e-3 + @GOC_E3T / @e3t * 1e-3" >  POC_E3T / e3t * 1e-3 + GOC_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water : sum of detrital organic carbon component concentrations -->
+   <field id="CMIP6_detocos"       field_ref="POCSFC_E3T"  expr="@POCSFC_E3T / @E3TSFC * 1e-3 + @GOCSFC_E3T / @E3TSFC * 1e-3" >  POCSFC_E3T / E3TSFC * 1e-3 + GOCSFC_E3T / E3TSFC * 1e-3 </field>  <!-- P2 (mol m-3) mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water : sum of detrital organic carbon component concentrations -->
+   <field id="CMIP6_dfe"           field_ref="Fer_E3T"  expr="@Fer_E3T / @e3t * 1e-3" >  Fer_E3T / e3t * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_dissolved_iron_in_sea_water : dissolved iron in sea water is meant to include both Fe2+ and Fe3+ ions (but not, e.g., particulate detrital iron) -->
+   <field id="CMIP6_dfeos"         field_ref="FerSFC_E3T" expr="@FerSFC_E3T / @E3TSFC * 1e-3" >  FerSFC_E3T / E3TSFC * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_dissolved_iron_in_sea_water : dissolved iron in sea water is meant to include both Fe2+ and Fe3+ ions (but not, e.g., particulate detrital iron) -->
+   <field id="CMIP6_dissi13c"      field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_13C_in_sea_water : Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissi13cos"    field_ref="dummy_XY"         /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_13C_in_sea_water : Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissi14c"      field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_dissolved_inorganic_14C_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". "Dissolved inorganic carbon" describes a family of chemical species in solution, including carbon dioxide, carbonic acid and the carbonate and bicarbonate anions. "Dissolved inorganic carbon" is the term used in standard names for all species belonging to the family that are represented within a given model. The list of individual species that are included in a quantity having a group chemical standard name can vary between models. Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute. "C" means the element carbon and "14C" is the radioactive isotope "carbon-14", having six protons and eight neutrons and used in radiocarbon dating. -->
+   <field id="CMIP6_dissi14cabio"  field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_14C_in_sea_water : Abiotic Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissi14cabioos" field_ref="dummy_XY"         /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_14C_in_sea_water : Abiotic Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissic"        field_ref="DIC_E3T"  expr="@DIC_E3T / @e3t * 1e-3" > DIC_E3T / e3t * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_carbon_in_sea_water : Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissicabio"    field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water : Abiotic Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissicabioos"  field_ref="dummy_XY"         /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water : Abiotic Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissicnat"     field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water : Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2 -->
+   <field id="CMIP6_dissicnatos"   field_ref="dummy_XY"         /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water : Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2 -->
+   <field id="CMIP6_dissicos"      field_ref="DICSFC_E3T"  expr="@DICSFC_E3T / @E3TSFC * 1e-3" >  DICSFC_E3T / E3TSFC * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_carbon_in_sea_water : Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration -->
+   <field id="CMIP6_dissoc"        field_ref="DOC_E3T"     expr="@DOC_E3T / @e3t * 1e-3" >  DOC_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_dissolved_organic_carbon_in_sea_water : Sum of dissolved carbon component concentrations explicitly represented (i.e. not ~40 uM refractory unless explicit) -->
+   <field id="CMIP6_dissocos"        field_ref="DOCSFC_E3T"     expr="@DOCSFC_E3T / @E3TSFC * 1e-3" >  DOCSFC_E3T / E3TSFC * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_dissolved_organic_carbon_in_sea_water : Sum of dissolved carbon component concentrations explicitly represented (i.e. not ~40 uM refractory unless explicit) -->
+   <field id="CMIP6_dmso"          field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_dimethyl_sulfide_in_sea_water : Mole concentration of dimethyl sulphide in water -->
+   <field id="CMIP6_dmsos"         field_ref="dummy_XY"         /> <!-- P3 (mol m-3) mole_concentration_of_dimethyl_sulfide_in_sea_water : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The chemical formula for dimethyl sulfide is (CH3)2S.  Dimethyl sulfide is sometimes referred to as DMS. -->
+   <field id="CMIP6_dpco2"         field_ref="Dpco2"  > this * 0.101325  </field> <!-- P1 (Pa) surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air : The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium.  The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume.  The surface called "surface" means the lower boundary of the atmosphere.  The chemical formula for carbon dioxide is CO2. -->
+   <field id="CMIP6_dpco2abio"     field_ref="dummy_XY"         /> <!-- P3 (Pa) surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air : The surface called "surface" means the lower boundary of the atmosphere. The chemical formula for carbon dioxide is CO2. In ocean biogeochemistry models, an "abiotic analogue" is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume. The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium. The partial pressure difference between sea water and air is positive when the partial pressure of the dissolved gas in sea water is greater than the partial pressure in air. -->
+   <field id="CMIP6_dpco2nat"      field_ref="dummy_XY"         /> <!-- P3 (Pa) surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air : The surface called "surface" means the lower boundary of the atmosphere. The chemical formula for carbon dioxide is CO2. In ocean biogeochemistry models, a "natural analogue" is used to simulate the effect on a modelled variable of imposing preindustrial atmospheric carbon dioxide concentrations, even when the model as a whole may be subjected to varying forcings. The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume. The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium. The partial pressure difference between sea water and air is positive when the partial pressure of the dissolved gas in sea water is greater than the partial pressure in air. -->
+   <field id="CMIP6_dpo2"          field_ref="Dpo2"   > this * 0.101325 </field> <!-- P3 (Pa) surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air : The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium.  The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume.  The surface called "surface" means the lower boundary of the atmosphere. -->
+   <field id="CMIP6_eparag100"     field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water : The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. Aragonite is a mineral that is a polymorph of calcium carbonate. The chemical formula of aragonite is CaCO3. Standard names also exist for calcite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_epc100"        field_ref="EPC100"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water : The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_epcalc100"     field_ref="EPCAL100"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water : The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. Standard names also exist for aragonite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_epfe100"       field_ref="EPFE100"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_iron_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_epn100"        field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_epp100"        field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_epsi100"       field_ref="EPSI100"         /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_silicon_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_exparag"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water : Downward flux of Aragonite -->
+   <field id="CMIP6_expc"          field_ref="EXPC"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water : Downward flux of particulate organic carbon -->
+   <field id="CMIP6_expcalc"       field_ref="EXPCAL"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water : Downward flux of Calcite -->
+   <field id="CMIP6_expfe"         field_ref="EXPFE"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_iron_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_expn"          field_ref="dummy_XYO"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_expp"          field_ref="dummy_XYO"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_expsi"         field_ref="EXPSI"        /> <!-- P1 (mol m-2 s-1) sinking_mole_flux_of_particulate_silicon_in_sea_water : In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics.   'Sinking' is the gravitational settling of particulate matter suspended in a liquid. A sinking flux is positive downwards and is calculated relative to the movement of the surrounding fluid. -->
+   <field id="CMIP6_fbddtalk"      field_ref="INTdtAlk"         /> <!-- P3 (mol m-2 s-1) integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes : vertical integral of net biological terms in time rate of change of alkalinity -->
+   <field id="CMIP6_fbddtdic"      field_ref="INTdtDIC"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes : vertical integral of net biological terms in time rate of change of dissolved inorganic carbon -->
+   <field id="CMIP6_fbddtdife"     field_ref="INTdtFer"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes : vertical integral of net biological terms in time rate of change of dissolved inorganic iron -->
+   <field id="CMIP6_fbddtdin"      field_ref="INTdtDIN"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes : vertical integral of net biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4) -->
+   <field id="CMIP6_fbddtdip"      field_ref="INTdtDIP"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes : vertical integral of net biological terms in time rate of change of phosphorus -->
+   <field id="CMIP6_fbddtdisi"     field_ref="INTdtSil"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes : vertical integral of net biological terms in time rate of change of dissolved inorganic silicon -->
+   <field id="CMIP6_fddtalk"       field_ref="dummy_XYO"        /> <!-- P2 (mol m-2 s-1) integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent : vertical integral of net time rate of change of total alkalinity -->
+   <field id="CMIP6_fddtdic"       field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon : "Content" indicates a quantity per unit area.  "tendency_of_X" means derivative of X with respect to time. "Dissolved inorganic carbon" describes a family of chemical species in solution, including carbon dioxide, carbonic acid and the carbonate and bicarbonate anions. "Dissolved inorganic carbon" isthe term used in standard names for all species belonging to the family that are represented within a given model. The list of individual species that are included in a quantity having a group chemical standard name can vary between models.  Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute. -->
+   <field id="CMIP6_fddtdife"      field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_iron : vertical integral of net time rate of change of dissolved inorganic iron -->
+   <field id="CMIP6_fddtdin"       field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen : Net time rate of change of nitrogen nutrients (e.g. NO3+NH4) -->
+   <field id="CMIP6_fddtdip"       field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus : vertical integral of net  time rate of change of phosphate -->
+   <field id="CMIP6_fddtdisi"      field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon : vertical integral of net time rate of change of dissolved inorganic silicon -->
+   <field id="CMIP6_fediss"        field_ref="dummy_XYO"        /> <!-- P3 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_dissolution_from_inorganic_particles : Dissolution, remineralization and desorption of iron back to the dissolved phase -->
+   <field id="CMIP6_fescav"        field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_scavenging_by_inorganic_particles : Dissolved Fe removed through nonbiogenic scavenging onto particles -->
+   <field id="CMIP6_fg13co2"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_downward_mass_flux_of_13C_dioxide_abiotic_analogue_expressed_as_13C : Gas exchange flux of abiotic 13CO2 (positive into ocean) -->
+   <field id="CMIP6_fg14co2"       field_ref="dummy_XY"         /> <!-- P2 (kg m-2 s-1) surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon : The surface called "surface" means the lower boundary of the atmosphere. "Downward" indicates a vector component which is positive when directed downward (negative upward). In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics. In ocean biogeochemistry models, an "abiotic analogue" is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. "C" means the element carbon and "14C" is the radioactive isotope "carbon-14", having six protons and eight neutrons and used in radiocarbon dating. -->
+   <field id="CMIP6_fg14co2abio"   field_ref="dummy_XYO"        /> <!-- P1 (kg m-2 s-1) surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon : Gas exchange flux of abiotic 14CO2 (positive into ocean) -->
+   <field id="CMIP6_fgco2"         field_ref="Cflx" > this * 12 * 1e-3 </field>  <!-- P1 (kg m-2 s-1) surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon : Gas exchange flux of CO2 (positive into ocean) -->
+   <field id="CMIP6_fgco2abio"     field_ref="dummy_XYO"        /> <!-- P1 (kg m-2 s-1) surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon : Gas exchange flux of abiotic CO2 (positive into ocean) -->
+   <field id="CMIP6_fgco2nat"      field_ref="dummy_XYO"        /> <!-- P1 (kg m-2 s-1) surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon : Gas exchange flux of natural CO2 (positive into ocean) -->
+   <field id="CMIP6_fgdms"         field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) surface_upward_mole_flux_of_dimethyl_sulfide : Gas exchange flux of DMS (positive into atmosphere) -->
+   <field id="CMIP6_fgo2"          field_ref="Oflx"         /> <!-- P1 (mol m-2 s-1) surface_downward_mole_flux_of_molecular_oxygen : Gas exchange flux of O2 (positive into ocean) -->
+   <field id="CMIP6_frfe"          field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_iron_due_to_sedimentation : "Content" indicates a quantity per unit area.  The specification of a physical process by the phrase due_to_process means that the quantity named is a  single term in a sum of terms which together compose the general quantity  named by omitting the phrase.  "tendency_of_X" means derivative of X with respect to time. -->
+   <field id="CMIP6_fric"          field_ref="SedCal"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation : Inorganic Carbon loss to sediments -->
+   <field id="CMIP6_frn"           field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation : "Content" indicates a quantity per unit area.  The specification of a physical process by the phrase due_to_process means that the quantity named is asingle term in a sum of terms which together compose the general quantity  named by omitting the phrase. 'Denitrification' is the conversion of nitrate into gasesous compounds such as nitric oxide, nitrous oxide and molecular nitrogen which are then emitted to the atmosphere.  'Sedimentation' is the sinking of particulate matter to the floor of a body of water. "tendency_of_X" means derivative of X with respect to time. -->
+   <field id="CMIP6_froc"          field_ref="SedC"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation : Organic Carbon loss to sediments -->
+   <field id="CMIP6_fsfe"          field_ref="IronSupply"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution : Iron supply through deposition flux onto sea surface, runoff, coasts, sediments, etc -->
+   <field id="CMIP6_fsn"           field_ref="NitrSupply"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff : "Content" indicates a quantity per unit area.  The specification of a physical process by the phrase due_to_process means that the quantity named is asingle term in a sum of terms which together compose the general quantity  named by omitting the phrase. Deposition of nitrogen into the ocean is the sum of dry and wet depositionof nitrogen species onto the ocean surface from the atmosphere.  'Nitrogen fixation' means the production of ammonia from nitrogen gas. Organisms that fix nitrogen are termed 'diazotrophs'. Diazotrophic phytoplankton can fix atmospheric nitrogen, thus increasing the content of nitrogen in the ocean. Runoff is the liquid water which drains from land. If not specified, "runoff" refers to the sum of surface runoff and subsurface drainage."tendency_of_X" means derivative of X with respect to time. -->
+   <field id="CMIP6_graz"          field_ref="GRAZ1" > this + GRAZ2 </field>  <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton : "tendency_of_X" means derivative of X with respect to time. Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. Phytoplankton are autotrophic prokaryotic or eukaryotic algae that live near the water surface where there is sufficient light to support photosynthesis. "Grazing of phytoplankton" means the grazing of phytoplankton by zooplankton. -->
+   <field id="CMIP6_icfriver"      field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution : Inorganic Carbon supply to ocean through runoff (separate from gas exchange) -->
+   <field id="CMIP6_intdic"        field_ref="INTDIC"         /> <!-- P1 (kg m-2) ocean_mass_content_of_dissolved_inorganic_carbon : Vertically integrated DIC -->
+   <field id="CMIP6_intdoc"        field_ref="dummy_XY"         /> <!-- P1 (kg m-2) ocean_mass_content_of_dissolved_organic_carbon : Vertically integrated DOC (explicit pools only) -->
+   <field id="CMIP6_intparag"      field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production : Vertically integrated aragonite production -->
+   <field id="CMIP6_intpbfe"       field_ref="INTPBFE"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_iron_due_to_biological_production : Vertically integrated biogenic iron production -->
+   <field id="CMIP6_intpbn"        field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production : Vertically integrated biogenic nitrogen production -->
+   <field id="CMIP6_intpbp"        field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production : Vertically integrated biogenic phosphorus production -->
+   <field id="CMIP6_intpbsi"       field_ref="INTPBSI"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_silicon_due_to_biological_production : Vertically integrated biogenic silica production -->
+   <field id="CMIP6_intpcalcite"   field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production : Vertically integrated calcite production -->
+   <field id="CMIP6_intpn2"        field_ref="INTNFIX"         /> <!-- P1 (mol m-2 s-1) tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation : Vertically integrated nitrogen fixation -->
+   <field id="CMIP6_intpoc"        field_ref="dummy_XY"         /> <!-- P2 (kg m-2) ocean_mass_content_of_particulate_organic_matter_expressed_as_carbon : Vertically integrated POC -->
+   <field id="CMIP6_intpp"         field_ref="INTPP"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_phytoplankton : Vertically integrated total primary (organic carbon) production by phytoplankton.  This should equal the sum of intpdiat+intpphymisc, but those individual components may be unavailable in some models. -->
+   <field id="CMIP6_intppcalc"     field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_calcareous_phytoplankton : "Production of carbon" means the production of biomass expressed as the mass of carbon which it contains. Net primary production is the excess of gross primary production (rate of synthesis of biomass from inorganic precursors) by autotrophs ("producers"), for example, photosynthesis in plants or phytoplankton, over the rate at which the autotrophs themselves respire some of this biomass. "Productivity" means production per unit area. Phytoplankton are autotrophic prokaryotic or eukaryotic algae that live near the water surface where there is sufficient light to support photosynthesis. "Calcareous phytoplankton" are phytoplankton that produce calcite. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. Standard names also exist for aragonite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_intppdiat"     field_ref="INTPPPHY2"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diatoms : Vertically integrated primary (organic carbon) production by the diatom phytoplankton component alone -->
+   <field id="CMIP6_intppdiaz"     field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diazotrophs : "Production of carbon" means the production of biomass expressed as the mass of carbon which it contains. Net primary production is the excess of gross primary production (rate of synthesis of biomass from inorganic precursors) by autotrophs ("producers"), for example, photosynthesis in plants or phytoplankton, over the rate at which the autotrophs themselves respire some of this biomass. "Productivity" means production per unit area. In ocean modelling, diazotrophs are phytoplankton of the phylum cyanobacteria distinct from other phytoplankton groups in their ability to fix nitrogen gas in addition to nitrate and ammonium. Phytoplankton are autotrophic prokaryotic or eukaryotic algae that live near the water surface where there is sufficient light to support photosynthesis. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. -->
+   <field id="CMIP6_intppmisc"     field_ref="INTPPPHY"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_miscellaneous_phytoplankton : Vertically integrated total primary (organic carbon) production by other phytoplankton components alone -->
+   <field id="CMIP6_intppnitrate"  field_ref="INTPNEW"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_due_to_nitrate_utilization : Vertically integrated primary (organic carbon) production by phytoplankton based on nitrate uptake alone -->
+   <field id="CMIP6_intpppico"     field_ref="dummy_XY"         /> <!-- P1 (mol m-2 s-1) net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_picophytoplankton : "Production of carbon" means the production of biomass expressed as the mass of carbon which it contains. Net primary production is the excess of gross primary production (rate of synthesis of biomass from inorganic precursors) by autotrophs ("producers"), for example, photosynthesis in plants or phytoplankton, over the rate at which the autotrophs themselves respire some of this biomass. "Productivity" means production per unit area. Picophytoplankton are phytoplankton of less than 2 micrometers in size. Phytoplankton are autotrophic prokaryotic or eukaryotic algae that live near the water surface where there is sufficient light to support photosynthesis. The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. -->
+   <field id="CMIP6_limfecalc"     field_ref="dummy_XY"         /> <!-- P1 (1) iron_growth_limitation_of_calcareous_phytoplankton : "Calcareous phytoplankton" are phytoplankton that produce calcite. Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Iron growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of iron) to the theoretical growth rate if there were no such limit on iron availability. -->
+   <field id="CMIP6_limfediat"     field_ref="LDFeSFC"         /> <!-- P1 (1) iron_growth_limitation_of_diatoms : Diatoms are phytoplankton with an external skeleton made of silica. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Iron growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of iron) to the theoretical growth rate if there were no such limit on iron availability. -->
+   <field id="CMIP6_limfediaz"     field_ref="dummy_XY"         /> <!-- P1 (1) iron_growth_limitation_of_diazotrophs : In ocean modelling, diazotrophs are phytoplankton of the phylum cyanobacteria distinct from other phytoplankton groups in their ability to fix nitrogen gas in addition to nitrate and ammonium. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Iron growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of iron) to the theoretical growth rate if there were no such limit on iron availability. -->
+   <field id="CMIP6_limfemisc"     field_ref="LNFeSFC"         /> <!-- P1 (1) iron_growth_limitation_of_miscellaneous_phytoplankton : Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Miscellaneous phytoplankton" are all those phytoplankton that are not diatoms, diazotrophs, calcareous phytoplankton, picophytoplankton or other separately named components of the phytoplankton population. "Iron growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of iron) to the theoretical growth rate if there were no such limit on iron availability. -->
+   <field id="CMIP6_limfepico"     field_ref="dummy_XY"         /> <!-- P1 (1) iron_growth_limitation_of_picophytoplankton : Picophytoplankton are phytoplankton of less than 2 micrometers in size. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Iron growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of iron) to the theoretical growth rate if there were no such limit on iron availability. -->
+   <field id="CMIP6_limirrcalc"    field_ref="dummy_XY"         /> <!-- P1 (1) growth_limitation_of_calcareous_phytoplankton_due_to_solar_irradiance : "Calcareous phytoplankton" are phytoplankton that produce calcite.  Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. "Irradiance" means the power per unit area (called radiative flux in other standard names), the area being normal to the direction of flow of the radiant energy. Solar irradiance is essential to the photosynthesis reaction and its presence promotes the growth of phytoplankton populations. "Growth limitation due to solar irradiance" means the ratio of the growth rate of a species population in the environment (where the amount of sunlight reaching a location may be limited) to the theoretical growth rate if there were no such limit on solar irradiance. -->
+   <field id="CMIP6_limirrdiat"    field_ref="LDlightSFC"         /> <!-- P1 (1) growth_limitation_of_diatoms_due_to_solar_irradiance : Diatoms are phytoplankton with an external skeleton made of silica. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. "Irradiance" means the power per unit area (called radiative flux in other standard names), the area being normal to the direction of flow of the radiant energy. Solar irradiance is essential to the photosynthesis reaction and its presence promotes the growth of phytoplankton populations. "Growth limitation due to solar irradiance" means the ratio of the growth rate of a species population in the environment (where the amount of sunlight reaching a location may be limited) to the theoretical growth rate if there were no such limit on solar irradiance. -->
+   <field id="CMIP6_limirrdiaz"    field_ref="dummy_XY"         /> <!-- P1 (1) growth_limitation_of_diazotrophs_due_to_solar_irradiance : In ocean modelling, diazotrophs are phytoplankton of the phylum cyanobacteria distinct from other phytoplankton groups in their ability to fix nitrogen gas in addition to nitrate and ammonium. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. "Irradiance" means the power per unit area (called radiative flux in other standard names), the area being normal to the direction of flow of the radiant energy. Solar irradiance is essential to the photosynthesis reaction and its presence promotes the growth of phytoplankton populations. "Growth limitation due to solar irradiance" means the ratio of the growth rate of a species population in the environment (where the amount of sunlight reaching a location may be limited) to the theoretical growth rate if there were no such limit on solar irradiance. -->
+   <field id="CMIP6_limirrmisc"    field_ref="LNlightSFC"         /> <!-- P1 (1) growth_limitation_of_miscellaneous_phytoplankton_due_to_solar_irradiance : Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Miscellaneous phytoplankton" are all those phytoplankton that are not diatoms, diazotrophs, calcareous phytoplankton, picophytoplankton or other separately named components of the phytoplankton population. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. "Irradiance" means the power per unit area (called radiative flux in other standard names), the area being normal to the direction of flow of the radiant energy. Solar irradiance is essential to the photosynthesis reaction and its presence promotes the growth of phytoplankton populations. "Growth limitation due to solar irradiance" means the ratio of the growth rate of a species population in the environment (where the amount of sunlight reaching a location may be limited) to the theoretical growth rate if there were no such limit on solar irradiance. -->
+   <field id="CMIP6_limirrpico"    field_ref="dummy_XY"         /> <!-- P1 (1) growth_limitation_of_picophytoplankton_due_to_solar_irradiance : Picophytoplankton are phytoplankton of less than 2 micrometers in size. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. "Irradiance" means the power per unit area (called radiative flux in other standard names), the area being normal to the direction of flow of the radiant energy. Solar irradiance is essential to the photosynthesis reaction and its presence promotes the growth of phytoplankton populations. "Growth limitation due to solar irradiance" means the ratio of the growth rate of a species population in the environment (where the amount of sunlight reaching a location may be limited) to the theoretical growth rate if there were no such limit on solar irradiance. -->
+   <field id="CMIP6_limncalc"      field_ref="dummy_XY"         /> <!-- P1 (1) nitrogen_growth_limitation_of_calcareous_phytoplankton : "Calcareous phytoplankton" are phytoplankton that produce calcite. Calcite is a mineral that is a polymorph of calcium carbonate. The chemical formula of calcite is CaCO3. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Nitrogen growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of nitrogen) to the theoretical growth rate if there were no such limit on nitrogen availability. -->
+   <field id="CMIP6_limndiat"      field_ref="LDnutSFC"         /> <!-- P1 (1) nitrogen_growth_limitation_of_diatoms : Diatoms are phytoplankton with an external skeleton made of silica. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Nitrogen growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of nitrogen) to the theoretical growth rate if there were no such limit on nitrogen availability. -->
+   <field id="CMIP6_limndiaz"      field_ref="dummy_XY"         /> <!-- P1 (1) nitrogen_growth_limitation_of_diazotrophs : In ocean modelling, diazotrophs are phytoplankton of the phylum cyanobacteria distinct from other phytoplankton groups in their ability to fix nitrogen gas in addition to nitrate and ammonium. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Nitrogen growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of nitrogen) to the theoretical growth rate if there were no such limit on nitrogen availability. -->
+   <field id="CMIP6_limnmisc"      field_ref="LNnutSFC"         /> <!-- P1 (1) nitrogen_growth_limitation_of_miscellaneous_phytoplankton : Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Miscellaneous phytoplankton" are all those phytoplankton that are not diatoms, diazotrophs, calcareous phytoplankton, picophytoplankton or other separately named components of the phytoplankton population. "Nitrogen growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of nitrogen) to the theoretical growth rate if there were no such limit on nitrogen availability. -->
+   <field id="CMIP6_limnpico"      field_ref="dummy_XY"         /> <!-- P1 (1) nitrogen_growth_limitation_of_picophytoplankton : Picophytoplankton are phytoplankton of less than 2 micrometers in size. Phytoplankton are algae that grow where there is sufficient light to support photosynthesis. "Nitrogen growth limitation" means the ratio of the growth rate of a species population in the environment (where there is a finite availability of nitrogen) to the theoretical growth rate if there were no such limit on nitrogen availability. -->
+   <field id="CMIP6_nh4"           field_ref="NH4_E3T"    expr="@NH4_E3T / @e3t * 1e-3" > NH4_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_ammonium_in_sea_water : Mole concentration means moles (amount of substance) per unit volume and is used in the construction mole_concentration_of_X_in_Y, where X is a material constituent of Y. -->
+   <field id="CMIP6_nh4os"         field_ref="NH4SFC_E3T" expr="@NH4SFC_E3T / @E3TSFC * 1e-3" > NH4SFC_E3T / E3TSFC * 1e-3 </field>  <!-- P2 (mol m-3) mole_concentration_of_ammonium_in_sea_water : Mole concentration means moles (amount of substance) per unit volume and is used in the construction mole_concentration_of_X_in_Y, where X is a material constituent of Y. -->
+   <field id="CMIP6_no3"           field_ref="NO3_E3T"    expr="@NO3_E3T / @e3t * 1e-3" > NO3_E3T / @e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_nitrate_in_sea_water : Mole concentration means moles (amount of substance) per unit volume and is used in the construction mole_concentration_of_X_in_Y, where X is a material constituent of Y. -->
+   <field id="CMIP6_no3os"         field_ref="NO3SFC_E3T" expr="@NO3SFC_E3T / @E3TSFC * 1e-3" > NO3SFC_E3T / E3TSFC * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_nitrate_in_sea_water : Mole concentration means moles (amount of substance) per unit volume and is used in the construction mole_concentration_of_X_in_Y, where X is a material constituent of Y. -->
+   <field id="CMIP6_o2"            field_ref="O2_E3T"     expr="@O2_E3T / @e3t * 1e-3"  > O2_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_dissolved_molecular_oxygen_in_sea_water : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. -->
+   <field id="CMIP6_o2min"         field_ref="O2MIN"            />  <!-- P1 (mol m-3) mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile : 'Mole concentration' means number of moles per unit volume, also called "molarity", and is used in the construction mole_concentration_of_X_in_Y, where X is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The concentration of any chemical species, whether particulate or dissolved, may vary with depth in the ocean.  A depth profile may go through one or more local minima in concentration. The mole_concentration_of_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile is the mole concentration of oxygen at the local minimum in the concentration profile that occurs closest to the sea surface. -->
+   <field id="CMIP6_o2os"          field_ref="O2SFC_E3T"  expr="@O2SFC_E3T / @E3TSFC * 1e-3" >  O2SFC_E3T / E3TSFC * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_dissolved_molecular_oxygen_in_sea_water : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. -->
+   <field id="CMIP6_o2sat"         field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation : "Mole concentration at saturation" means the mole concentration in a saturated solution. Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". -->
+   <field id="CMIP6_o2satos"       field_ref="dummy_XY"         /> <!-- P1 (mol m-3) mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation : "Mole concentration at saturation" means the mole concentration in a saturated solution. Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". -->
+   <field id="CMIP6_ocfriver"      field_ref="dummy_XY"         /> <!-- P3 (mol m-2 s-1) tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution : Organic Carbon supply to ocean through runoff (separate from gas exchange) -->
+   <field id="CMIP6_parag"         field_ref="dummy_XYO"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_biological_production : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The specification of a physical process by the phrase due_to_process means that the quantity named is a  single term in a sum of terms which together compose the general quantity  named by omitting the phrase.  "tendency_of_X" means derivative of X with respect to time.  Aragonite is a mineral that is a polymorph of calcium carbonate. The chemical formula of aragonite is CaCO3. Standard names also exist for calcite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_pbfe"          field_ref="PFeN" > this + PFeD </field>  <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The specification of a physical process by the phrase due_to_process means that the quantity named is a  single term in a sum of terms which together compose the general quantity  named by omitting the phrase.  "tendency_of_X" means derivative of X with respect to time. -->
+   <field id="CMIP6_pbsi"          field_ref="PBSi"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The specification of a physical process by the phrase due_to_process means that the quantity named is a  single term in a sum of terms which together compose the general quantity  named by omitting the phrase.  "tendency_of_X" means derivative of X with respect to time. -->
+   <field id="CMIP6_pcalc"         field_ref="PCAL"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_biological_production : 'Mole concentration' means number of moles per unit volume, also called"molarity", and is used in the construction mole_concentration_of_X_in_Y, whereX is a material constituent of Y.  A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The specification of a physical process by the phrase due_to_process means that the quantity named is a  single term in a sum of terms which together compose the general quantity  named by omitting the phrase.  "tendency_of_X" means derivative of X with respect to time.  Calcite is a mineral that is a polymorph of calcium carbonate. Thechemical formula of calcite is CaCO3. Standard names also exist for aragonite, another polymorph of calcium carbonate. -->
+   <field id="CMIP6_ph"            field_ref="PH"        /> <!-- P1 (1) sea_water_ph_reported_on_total_scale : negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1. -->
+   <field id="CMIP6_phabio"        field_ref="dummy_XYO"        /> <!-- P1 (1) sea_water_ph_abiotic_analogue_reported_on_total_scale : negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1 (abiotic component).. -->
+   <field id="CMIP6_phabioos"      field_ref="dummy_XY"         /> <!-- P2 (1) sea_water_ph_abiotic_analogue_reported_on_total_scale : negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1. -->
+   <field id="CMIP6_phnat"         field_ref="dummy_XYO"        /> <!-- P1 (1) sea_water_ph_natural_analogue_reported_on_total_scale : negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1 (natural component). -->
+   <field id="CMIP6_phnatos"       field_ref="dummy_XY"         /> <!-- P2 (1) sea_water_ph_natural_analogue_reported_on_total_scale : negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1. -->
+   <field id="CMIP6_phos"          field_ref="PHSFC"         /> <!-- P1 (1) sea_water_ph_reported_on_total_scale : negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1. -->
+   <field id="CMIP6_phyc"          field_ref="PHY_E3T"  expr="@PHY_E3T / @e3t * 1e-3 + @PHY2_E3T / @e3t * 1e-3" > PHY_E3T / e3t * 1e-3 + PHY2_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water : sum of phytoplankton carbon component concentrations.  In most (all?) cases this is the sum of phycdiat and phycmisc (i.e., "Diatom Carbon Concentration" and "Non-Diatom Phytoplankton Carbon Concentration" -->
+   <field id="CMIP6_phycalc"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water : carbon concentration from calcareous (calcite-producing) phytoplankton component alone -->
+   <field id="CMIP6_phycalcos"     field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water : carbon concentration from calcareous (calcite-producing) phytoplankton component alone -->
+   <field id="CMIP6_phycos"        field_ref="PHYSFC_E3T" expr="@PHYSFC_E3T / @E3TSFC * 1e-3 + @PHY2SFC_E3T / @E3TSFC * 1e-3" > PHYSFC_E3T / E3TSFC * 1e-3 + PHY2SFC_E3T / E3TSFC * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water : sum of phytoplankton carbon component concentrations.  In most (all?) cases this is the sum of phycdiat and phycmisc (i.e., "Diatom Carbon Concentration" and "Non-Diatom Phytoplankton Carbon Concentration" -->
+   <field id="CMIP6_phydiat"       field_ref="PHY2_E3T"   expr="@PHY2_E3T / @e3t * 1e-3" > PHY2_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water : carbon from the diatom phytoplankton component concentration alone -->
+   <field id="CMIP6_phydiatos"     field_ref="PHY2SFC_E3T"   expr="@PHY2SFC_E3T / @E3TSFC * 1e-3" > PHY2SFC_E3T / E3TSFC * 1e-3 </field>  <!-- P2 (mol m-3) mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water : carbon from the diatom phytoplankton component concentration alone -->
+   <field id="CMIP6_phydiaz"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water : carbon concentration from the diazotrophic phytoplankton component alone -->
+   <field id="CMIP6_phydiazos"     field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water : carbon concentration from the diazotrophic phytoplankton component alone -->
+   <field id="CMIP6_phyfe"         field_ref="NFe_E3T"  expr="@NFe_E3T / @e3t * 1e-3 + @DFe_E3T / @e3t * 1e-3" > NFe_E3T / e3t * 1e-3 + DFe_E3T / e3t * 1e-3 </field>  <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water : sum of phytoplankton iron component concentrations -->
+   <field id="CMIP6_phyfeos"       field_ref="NFeSFC_E3T" expr="@NFeSFC_E3T / @E3TSFC * 1e-3 + @DFeSFC_E3T / @E3TSFC * 1e-3"  > NFeSFC_E3T / E3TSFC * 1e-3 + DFeSFC_E3T / E3TSFC * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water : sum of phytoplankton iron component concentrations -->
+   <field id="CMIP6_phymisc"       field_ref="PHY_E3T"   expr="@PHY_E3T / @e3t * 1e-3" > PHY_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water : carbon concentration from additional phytoplankton component alone -->
+   <field id="CMIP6_phymiscos"     field_ref="PHYSFC_E3T"   expr="@PHYSFC_E3T / @E3TSFC * 1e-3" > PHYSFC_E3T / E3TSFC * 1e-3 </field>  <!-- P2 (mol m-3) mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water : carbon concentration from additional phytoplankton component alone -->
+   <field id="CMIP6_phyn"          field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water : sum of phytoplankton nitrogen component concentrations -->
+   <field id="CMIP6_phynos"        field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water : sum of phytoplankton nitrogen component concentrations -->
+   <field id="CMIP6_phyp"          field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water : sum of phytoplankton phosphorus components -->
+   <field id="CMIP6_phypico"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water : carbon concentration from the picophytoplankton (<2 um) component alone -->
+   <field id="CMIP6_phypicoos"     field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water : carbon concentration from the picophytoplankton (<2 um) component alone -->
+   <field id="CMIP6_phypos"        field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water : sum of phytoplankton phosphorus components -->
+   <field id="CMIP6_physi"         field_ref="DSi_E3T"  expr="@DSi_E3T / @e3t * 1e-3" >  DSi_E3T / e3t * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water : sum of phytoplankton silica component concentrations -->
+   <field id="CMIP6_physios"       field_ref="DSiSFC_E3T" expr="@DSiSFC_E3T / @E3TSFC * 1e-3" >  DSiSFC_E3T / E3TSFC * 1e-3 </field>   <!-- P2 (mol m-3) mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water : sum of phytoplankton silica component concentrations -->
+   <field id="CMIP6_pnitrate"      field_ref="TPNEW"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_nitrate_utilization : Primary (organic carbon) production by phytoplankton due to nitrate uptake alone -->
+   <field id="CMIP6_po4"           field_ref="PO4_E3T" expr="@PO4_E3T / @e3t * 1e-3" >  PO4_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". "Dissolved inorganic phosphorus" means the sum of all inorganic phosphorus in solution (including phosphate, hydrogen phosphate, dihydrogen phosphate, and phosphoric acid). -->
+   <field id="CMIP6_po4os"         field_ref="PO4SFC_E3T" expr="@PO4SFC_E3T / @E3TSFC * 1e-3" >  PO4SFC_E3T / E3TSFC * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". "Dissolved inorganic phosphorus" means the sum of all inorganic phosphorus in solution (including phosphate, hydrogen phosphate, dihydrogen phosphate, and phosphoric acid). -->
+   <field id="CMIP6_pon"           field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water : sum of particulate organic nitrogen component concentrations -->
+   <field id="CMIP6_ponos"         field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water : sum of particulate organic nitrogen component concentrations -->
+   <field id="CMIP6_pop"           field_ref="dummy_XYO"        /> <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water : sum of particulate organic phosphorus component concentrations -->
+   <field id="CMIP6_popos"         field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water : sum of particulate organic phosphorus component concentrations -->
+   <field id="CMIP6_pp"            field_ref="TPP"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production : total primary (organic carbon) production by phytoplankton -->
+   <field id="CMIP6_ppcalc"        field_ref="dummy_XYO"        /> <!-- P3 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton : Primary (organic carbon) production by calcareous phytoplankton components alone -->
+   <field id="CMIP6_ppdiat"        field_ref="PPPHY2"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms : Primary (organic carbon) production by diatom phytoplankton components alone -->
+   <field id="CMIP6_ppdiaz"        field_ref="dummy_XYO"        /> <!-- P3 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs : Primary (organic carbon) production by the diazotrophic phytoplankton component alone -->
+   <field id="CMIP6_ppmisc"        field_ref="PPPHY"        /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton : Primary (organic carbon) production by other phytoplankton components alone -->
+   <field id="CMIP6_ppos"          field_ref="TPPSFC"         /> <!-- P1 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production : total primary (organic carbon) production by phytoplankton -->
+   <field id="CMIP6_pppico"        field_ref="dummy_XYO"        /> <!-- P3 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton : Primary (organic carbon) production by the picophytoplankton (<2 um) component alone -->
+   <field id="CMIP6_remoc"         field_ref="REMIN"        /> <!-- P2 (mol m-3 s-1) tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_remineralization : "tendency_of_X" means derivative of X with respect to time. Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". The phrase "expressed_as" is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The specification of a physical process by the phrase "due_to_" process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. Remineralization is the degradation of organic matter into inorganic forms of carbon, nitrogen, phosphorus and other micronutrients, which consumes oxygen and releases energy. -->
+   <field id="CMIP6_si"            field_ref="Si_E3T"  expr="@Si_E3T / @e3t * 1e-3" >  Si_E3T / e3t * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_silicon_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". "Dissolved inorganic silicon" means the sum of all inorganic silicon in solution (including silicic acid and its first dissociated anion SiO(OH)3-). -->
+   <field id="CMIP6_sios"          field_ref="SiSFC_E3T" expr="@SiSFC_E3T / @E3TSFC * 1e-3" >  SiSFC_E3T / E3TSFC * 1e-3 </field> <!-- P1 (mol m-3) mole_concentration_of_dissolved_inorganic_silicon_in_sea_water : Mole concentration means number of moles per unit volume, also called "molarity", and is used in the construction "mole_concentration_of_X_in_Y", where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as "nitrogen" or a phrase such as "nox_expressed_as_nitrogen". "Dissolved inorganic silicon" means the sum of all inorganic silicon in solution (including silicic acid and its first dissociated anion SiO(OH)3-). -->
+   <field id="CMIP6_spco2"         field_ref="pCO2sea"   >  this * 0.101325  </field> <!-- P1 (Pa) surface_partial_pressure_of_carbon_dioxide_in_sea_water : The surface called "surface" means the lower boundary of the atmosphere. The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium. The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume. The chemical formula for carbon dioxide is CO2. -->
+   <field id="CMIP6_spco2abio"     field_ref="dummy_XY"         /> <!-- P1 (Pa) surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air : The surface called "surface" means the lower boundary of the atmosphere. The chemical formula for carbon dioxide is CO2. In ocean biogeochemistry models, an "abiotic analogue" is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume. The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium. The partial pressure difference between sea water and air is positive when the partial pressure of the dissolved gas in sea water is greater than the partial pressure in air. -->
+   <field id="CMIP6_spco2nat"      field_ref="dummy_XY"         /> <!-- P1 (Pa) surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air : The surface called "surface" means the lower boundary of the atmosphere. The chemical formula for carbon dioxide is CO2. In ocean biogeochemistry models, a "natural analogue" is used to simulate the effect on a modelled variable of imposing preindustrial atmospheric carbon dioxide concentrations, even when the model as a whole may be subjected to varying forcings. The partial pressure of a gaseous constituent of air is the pressure which it alone would exert with unchanged temperature and number of moles per unit volume. The partial pressure of a dissolved gas in sea water is the partial pressure in air with which it would be in equilibrium. The partial pressure difference between sea water and air is positive when the partial pressure of the dissolved gas in sea water is greater than the partial pressure in air. -->
+   <field id="CMIP6_talk"          field_ref="Alkalini_E3T" expr="@Alkalini_E3T / @e3t * 1e-3" > Alkalini_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) sea_water_alkalinity_expressed_as_mole_equivalent : total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) -->
+   <field id="CMIP6_talknat"       field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent : total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) at preindustrial atmospheric xCO2 -->
+   <field id="CMIP6_talknatos"     field_ref="dummy_XY"         /> <!-- P1 (mol m-3) sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent : total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) at preindustrial atmospheric xCO2 -->
+   <field id="CMIP6_talkos"          field_ref="AlkaliniSFC_E3T" expr="@AlkaliniSFC_E3T / @E3TSFC * 1e-3" > AlkaliniSFC_E3T / E3TSFC * 1e-3 </field> <!-- P1 (mol m-3) sea_water_alkalinity_expressed_as_mole_equivalent : total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) -->
+   <field id="CMIP6_zmeso"         field_ref="ZOO2_E3T" expr="@ZOO2_E3T / @e3t * 1e-3" > ZOO2_E3T / e3t * 1e-3 </field>  <!-- P1 (mol m-3) mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water : carbon  concentration from mesozooplankton (20-200 um) component alone -->
+   <field id="CMIP6_zmesoos"       field_ref="ZOO2SFC_E3T" expr="@ZOO2SFC_E3T / @E3TSFC * 1e-3" > ZOO2SFC_E3T / E3TSFC * 1e-3 </field>   <!-- P2 (mol m-3) mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water : carbon  concentration from mesozooplankton (20-200 um) component alone -->
+   <field id="CMIP6_zmicro"        field_ref="ZOO_E3T" expr="@ZOO_E3T / @e3t * 1e-3" > ZOO_E3T / e3t * 1e-3 </field>   <!-- P1 (mol m-3) mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water : carbon  concentration from the microzooplankton (<20 um) component alone -->
+   <field id="CMIP6_zmicroos"      field_ref="ZOOSFC_E3T" expr="@ZOOSFC_E3T / @E3TSFC * 1e-3" > ZOOSFC_E3T / E3TSFC * 1e-3 </field> <!-- P2 (mol m-3) mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water : carbon  concentration from the microzooplankton (<20 um) component alone -->
+   <field id="CMIP6_zmisc"         field_ref="dummy_XYO"        /> <!-- P1 (mol m-3) mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water : carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets. -->
+   <field id="CMIP6_zmiscos"       field_ref="dummy_XY"         /> <!-- P2 (mol m-3) mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water : carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets. -->
+   <field id="CMIP6_zo2min"        field_ref="ZO2MIN"         /> <!-- P1 (m) depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water : Depth of vertical minimum concentration of dissolved oxygen gas (if two, then the shallower) -->
+   <field id="CMIP6_zooc"          field_ref="ZOO_E3T" expr="@ZOO_E3T / @e3t * 1e-3 + @ZOO2_E3T / @e3t * 1e-3" > ZOO_E3T / e3t * 1e-3 + ZOO2_E3T / e3t * 1e-3   </field>  <!-- P1 (mol m-3) mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water : sum of zooplankton carbon component concentrations -->
+   <field id="CMIP6_zoocos"        field_ref="ZOOSFC_E3T" expr="@ZOOSFC_E3T / @E3TSFC * 1e-3 + @ZOO2SFC_E3T / @E3TSFC * 1e-3" > ZOOSFC_E3T / E3TSFC * 1e-3 + ZOO2SFC_E3T / E3TSFC * 1e-3   </field>  <!-- P2 (mol m-3) mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water : sum of zooplankton carbon component concentrations -->
+   <field id="CMIP6_zsatarag"      field_ref="dummy_XY"         /> <!-- P1 (m) minimum_depth_of_aragonite_undersaturation_in_sea_water : Depth of aragonite saturation horizon (0 if < surface, "missing"  if > bottom, if two, then the shallower) -->
+   <field id="CMIP6_zsatcalc"      field_ref="dummy_XY"         /> <!-- P1 (m) minimum_depth_of_calcite_undersaturation_in_sea_water : Depth of calcite saturation horizon (0 if < surface, "missing" if > bottom, if two, then the shallower) -->
+
+</field_group>
+</field_definition>
+</context>
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_orchidee.xml
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_orchidee.xml	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/ping_orchidee.xml	(revision 5899)
@@ -0,0 +1,339 @@
+<!-- ==================================================================================================================== -->
+<!-- CMIP6_ping_land.xml                                                                                                  -->
+<!-- This file is not used while running the model. It is only here for preparing output for CMIP6 simulations.           -->
+<!-- This file contains all output variables in the data request for CMIP6 concerning ORCHIDEE.                           -->
+<!-- field id should not be changed. It is used by the tool dr2xml to produce specific file_def.xml files for CMIP6.      -->
+<!-- field_ref corresponds to field id in field_def_orchidee.xml.                                                         -->
+<!-- field_ref="dummy" means that the corresponding output variable in ORCHIDEE has not yet been identified or coded.     -->
+<!--                                                                                                                      -->
+<!-- $HeadURL: svn://forge.ipsl.jussieu.fr/orchidee/tags/ORCHIDEE_2_0/ORCHIDEE/src_xml/CMIP6_ping_land.xml $              -->
+<!-- $Date: 2018-11-27 12:15:46 +0100 (Tue, 27 Nov 2018) $                                                               -->
+<!-- $Revision: 5625 $                                                                                                    -->
+<!-- ==================================================================================================================== -->
+
+<!-- Ping files generated by dr2xml 1.16 using Data Request 01.00.28 -->
+<!-- Note that comments are not updated since ping files were generated by dr2xml 0.27 using Data Request 01.00.21 -->
+<!-- lrealms= ['land'] -->
+<!-- exact= False -->
+<!--  listof_home_vars : None
+ tierMax : 3
+ realms_per_context : {'lmdz': ['atmos', 'atmos land'], 'nemo': ['seaIce', 'ocean', 'ocean seaIce', 'ocnBgchem', 'seaIce ocean'], 'orchidee': ['land', 'landIce land', 'land landIce', 'landIce']}
+ max_priority : 3
+ max_file_size_in_floats : 20000000000.0
+ grid_choice : {'IPSL-CM6A-LR': 'LR'}
+ excluded_vars_file : None
+ sizes : {'LR': [20592, 79, 32768, 91, 30, 14, 128]}
+ ping_variables_prefix : CMIP6_
+ source_types : {'IPSL-CM6A-LR': 'AOGCM AER BGC'}
+ path_extra_tables : None
+ grid_policy : native
+ path_special_defs : None
+ mips : {'LR': set(['CDRMIP', 'CORDEX', 'GMMIP', 'RFMIP', 'VolMIP', 'CMIP6', 'ScenarioMIP', 'GeoMIP', 'C4MIP', 'PDRMIP', 'CMIP', 'DECK', 'LUMIP', 'CMIP5', 'CFMIP', 'OMIP', 'DAMIP', 'CCMI', 'SolarMIP', 'VIACSAB', 'SIMIP', 'DCPP', 'ISMIP6', 'AerChemMIP', 'PMIP', 'FAFMIP', 'DynVar', 'LS3MIP', 'SPECS', 'HighResMIP'])}
+ excluded_vars : []
+ orphan_variables : {}
+--> 
+
+<context id="orchidee">
+<field_definition>
+<!-- for variables which realm equals one of _land-->
+   <field id="CMIP6_agesno"        field_ref="snowage_glob"         /> <!-- P1 (day) age_of_surface_snow : age_of_surface_snow -->
+   <field id="CMIP6_agesno"        field_ref="snowage_glob"         /> <!-- P1 (day) age_of_surface_snow : When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.  Reported as "missing in regions free of snow on land. -->
+   <field id="CMIP6_albc"          field_ref="vegalb_glob"         /> <!-- P1 (1) canopy_albedo : Canopy Albedo -->
+   <field id="CMIP6_albsn"         field_ref="albedo_snow"         /> <!-- P1 (1) snow_and_ice_albedo : Snow Albedo -->
+   <field id="CMIP6_areacella"     field_ref="areas"         /> <!-- P1 (m2) cell_area : Cell areas for any grid used to report atmospheric variables and any other variable using that grid (e.g., soil moisture content). These cell areas should be defined to enable exact calculation of global integrals (e.g., of vertical fluxes of energy at the surface and top of the atmosphere). -->
+   <field id="CMIP6_areacellg"     field_ref="dummy_XY_not_provided"         /> <!-- P1 (m2) cell_area : Cell areas any grid used to report ice sheet variables. These cell areas should be defined to enable exact calculation of area integrals (e.g., of vertical fluxes of energy at the surface and top of the atmosphere) -->
+   <field id="CMIP6_areacellr"     field_ref="dummy_XY_not_provided"         /> <!-- P1 (m2) cell_area : Cell areas for any grid used to report river model variables (may be the same as for atmospheric variables). These cell areas should be defined to enable exact calculation of area integrals (e.g., of vertical fluxes of energy at the surface and top of the atmosphere). -->
+   <field id="CMIP6_ares"          field_ref="raero"         /> <!-- P1 (s m-1) aerodynamic_resistance : aerodynamic_resistance -->
+   <field id="CMIP6_baresoilFrac"  field_ref="baresoilFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by bare soil. Warning: we do not include the bare soil fraction from the vegetated pft's. Note: Multiplied in sechiba by contfrac because we need entire grid-cell -->
+   <field id="CMIP6_burntFractionAll" field_ref="dummy_XY_not_provided"         /> <!-- P1 (%) area_fraction : Percentage of grid cell burned due to all fires including natural and anthropogenic fires and those associated with anthropogenic land use change -->
+   <field id="CMIP6_c13Land"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) total_land_c13 : Mass of 13C in all terrestrial carbon pools -->
+   <field id="CMIP6_c13Litter"     field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) litter_c13_content : Mass of 13C in Litter Pool -->
+   <field id="CMIP6_c13Soil"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) soil_c13_content : Mass of 13C in Soil Pool -->
+   <field id="CMIP6_c13Veg"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) vegetation_c13_content : Mass of 13C in Vegetation -->
+   <field id="CMIP6_c14Land"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) total_land_c14 : Mass of 14C in all terrestrial carbon pools -->
+   <field id="CMIP6_c14Litter"     field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) litter_c14_content : Mass of 14C in Litter Pool -->
+   <field id="CMIP6_c14Soil"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) soil_c14_content : Mass of 14C in Soil Pool -->
+   <field id="CMIP6_c14Veg"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) vegetation_c14_content : only requested for DECK HIST -->
+   <field id="CMIP6_c3PftFrac"     field_ref="c3PftFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by C3 PFTs (including grass, crops, and trees). -->
+   <field id="CMIP6_c4PftFrac"     field_ref="c4PftFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by C4 PFTs (including grass and crops). -->
+   <field id="CMIP6_cCwd"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) wood_debris_carbon_content : Carbon Mass in Coarse Woody Debris -->
+   <field id="CMIP6_cLand"         field_ref="cLand"         /> <!-- P1 (kg m-2) total_land_carbon : Total Carbon in All Terrestrial Carbon Pools -->
+   <field id="CMIP6_cLeaf"         field_ref="cLeaf"         /> <!-- P1 (kg m-2) leaf_carbon_content : Carbon Mass in Leaves -->
+   <field id="CMIP6_cLitter"       field_ref="cLitter"         /> <!-- P1 (kg m-2) litter_carbon_content : Carbon Mass in Litter Pool -->
+   <field id="CMIP6_cLitterAbove"  field_ref="cLitterAbove"         /> <!-- P1 (kg m-2) surface_litter_carbon_content : Carbon Mass in Above-Ground Litter -->
+   <field id="CMIP6_cLitterBelow"  field_ref="cLitterBelow"         /> <!-- P1 (kg m-2) subsurface_litter_carbon_content : Carbon Mass in Below-Ground Litter -->
+   <field id="CMIP6_cLitterCwd"    field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) litter_wood_debris_carbon_content : Carbon Mass in Coarse Woody Debris -->
+   <field id="CMIP6_cLitterGrass"  field_ref="cLitterGrass"         /> <!-- P2 (kg m-2) litter_carbon_content : Carbon mass in litter on grass tiles -->
+   <field id="CMIP6_cLitterLut"    field_ref="clitterlut" /> <!-- P1 (kg m-2) litter_carbon_content : carbon  in above and belowground litter pools on land use tiles -->
+   <field id="CMIP6_cLitterShrub"  field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) litter_carbon_content : Carbon mass in litter on shrub tiles -->
+   <field id="CMIP6_cLitterSubSurf" field_ref="cLitterBelow"         /> <!-- P2 (kg m-2) subsurface_litter_carbon_content : Carbon Mass in Below-Ground Litter Warning: Duplicate of CMIP6_cLitterBelow -->
+   <field id="CMIP6_cLitterSurf"   field_ref="cLitterAbove"         /> <!-- P2 (kg m-2) surface_litter_carbon_content : Carbon Mass in Above-Ground Litter Warning: Duplicate of CMIP6_cLitterAbove -->
+   <field id="CMIP6_cLitterTree"   field_ref="cLitterTree"         /> <!-- P2 (kg m-2) litter_carbon_content : Carbon mass in litter on tree tiles -->
+   <field id="CMIP6_cMisc"         field_ref="cMisc"         /> <!-- P2 (kg m-2) miscellaneous_living_matter_carbon_content : Carbon Mass in Other Living Compartments on Land -->
+   <field id="CMIP6_cOther"        field_ref="cOther"         /> <!-- P2 (kg m-2) other_vegegtation_components_carbon_content : Carbon Mass in Vegetation Components other than Leaves, Stems and Roots -->
+   <field id="CMIP6_cProduct"      field_ref="cProduct"         /> <!-- P1 (kg m-2) carbon_content_of_products_of_anthropogenic_land_use_change : Carbon Mass in Products of Land Use Change -->
+   <field id="CMIP6_cProductLut"   field_ref="cproductlut" /> <!-- P1 (kg m-2) carbon_content_in_wood_and_agricultural_products : wood and agricultural product pool carbon associated with land use tiles; examples of products include paper, cardboard, timber for construction, and crop harvest for food or fuel. -->
+   <field id="CMIP6_cRoot"         field_ref="cRoot"         /> <!-- P1 (kg m-2) root_carbon_content : including fine and coarse roots. -->
+   <field id="CMIP6_cSoil"         field_ref="cSoil"         /> <!-- P1 (kg m-2) soil_carbon_content : Carbon Mass in Soil Pool -->
+   <field id="CMIP6_cSoilAbove1m"  field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) soil_carbon_content : Carbon mass in soil pool above 1m depth -->
+   <field id="CMIP6_cSoilFast"     field_ref="cSoilFast"         /> <!-- P1 (kg m-2) fast_soil_pool_carbon_content : fast is meant as lifetime of less than 10 years for  reference climate conditions (20 C, no water limitations). -->
+   <field id="CMIP6_cSoilGrass"    field_ref="cSoilGrass"         /> <!-- P2 (kg m-2) soil_carbon_content : Carbon mass in soil on grass tiles -->
+   <field id="CMIP6_cSoilLevels"   field_ref="dummy_XYSo_not_provided"       /> <!-- P2 (kg m-2) soil_carbon_content : Carbon mass in each model soil level (summed over all soil carbon pools in that level) -->
+   <field id="CMIP6_cSoilLut"      field_ref="csoillut" /> <!-- P1 (kg m-2) soil_carbon_content : carbon  in soil pool on land use tiles -->
+   <field id="CMIP6_cSoilMedium"   field_ref="cSoilMedium"         /> <!-- P1 (kg m-2) medium_soil_pool_carbon_content : medium is meant as lifetime of more than than 10 years and less than 100 years for  reference climate conditions (20 C, no water limitations) -->
+   <field id="CMIP6_cSoilPools"    field_ref="cSoilPools"/> <!-- P2 (kg m-2) soil_carbon_content_by_pool : Carbon mass in each model soil pool (summed over vertical levels) -->
+   <field id="CMIP6_cSoilShrub"    field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) soil_carbon_content : Carbon mass in soil on shrub tiles -->
+   <field id="CMIP6_cSoilSlow"     field_ref="cSoilSlow"         /> <!-- P1 (kg m-2) slow_soil_pool_carbon_content : fast is meant as lifetime of more than 100 years for  reference climate conditions (20 C, no water limitations) -->
+   <field id="CMIP6_cSoilTree"     field_ref="cSoilTree"         /> <!-- P2 (kg m-2) soil_carbon_content : Carbon mass in soil on tree tiles -->
+   <field id="CMIP6_cStem"         field_ref="cStem"         /> <!-- P2 (kg m-2) stem_carbon_content : Carbon Mass in Stem -->
+   <field id="CMIP6_cTotFireLut"   field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (kg m-2 s-1)  : Total carbon loss from natural and managed fire on land use tile, including deforestation fires -->
+   <field id="CMIP6_cVeg"          field_ref="cVeg"         /> <!-- P1 (kg m-2) vegetation_carbon_content : Carbon Mass in Vegetation -->
+   <field id="CMIP6_cVegGrass"     field_ref="cVegGrass"         /> <!-- P2 (kg m-2) vegetation_carbon_content : Carbon mass in vegetation on grass tiles -->
+   <field id="CMIP6_cVegLut"       field_ref="cveglut" /> <!-- P1 (kg m-2) vegetation_carbon_content : carbon in vegetation on land use tiles -->
+   <field id="CMIP6_cVegShrub"     field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) vegetation_carbon_content : Carbon mass in vegetation on shrub tiles -->
+   <field id="CMIP6_cVegTree"      field_ref="cVegTree"         /> <!-- P2 (kg m-2) vegetation_carbon_content : Carbon mass in vegetation on tree tiles -->
+   <field id="CMIP6_cWood"         field_ref="cWood"         /> <!-- P2 (kg m-2) wood_carbon_content : Carbon Mass in Wood -->
+   <field id="CMIP6_clayfrac"      field_ref="clayfraction"       /> <!-- P1 (1) volume_fraction_of_clay_in_soil : Clay Fraction -->
+   <field id="CMIP6_cnc"           field_ref="cnc"         /> <!-- P1 (%) vegetation_area_fraction : Canopy covered fraction Warning: fraction over total land -->
+   <field id="CMIP6_cropFrac"      field_ref="cropFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by crop. Warning: Note: Multiplied in sechiba by contfrac because we need entire grid-cell -->
+   <field id="CMIP6_cropFracC3"    field_ref="cropFracC3"         /> <!-- P1 (%) area_fraction : Percentage Cover by C3 Crops -->
+   <field id="CMIP6_cropFracC4"    field_ref="cropFracC4"         /> <!-- P1 (%) area_fraction : Percentage Cover by C4 Crops -->
+   <field id="CMIP6_cw"            field_ref="qsintveg_tot"         /> <!-- P1 (kg m-2) canopy_water_amount : canopy_water_amount -->
+   <field id="CMIP6_dcw"           field_ref="delintercept"         /> <!-- P1 (kg m-2) change_over_time_in_canopy_water_amount : change_over_time_in_canopy_water_amount -->
+   <field id="CMIP6_dgw"           field_ref="delslowr"         /> <!-- P1 (kg m-2) change_over_time_in_groundwater : change_over_time_in_groundwater Warning: It can be either undef or delslowr. We take the second option for the moment. -->
+   <field id="CMIP6_dmlt"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (m) depth_of_subsurface_melting : depth_of_subsurface_melting -->
+   <field id="CMIP6_drivw"         field_ref="delriv"         /> <!-- P1 (kg m-2) change_over_time_in_river_water_amount : change_over_time_in_river_water_amount Warning: we sum the stream and fast reservoir of the routing scheme. -->
+   <field id="CMIP6_dslw"          field_ref="delsoilmoist"         /> <!-- P1 (kg m-2) change_over_time_in_water_content_of_soil_layer : change_over_time_in_water_content_of_soil_layer -->
+   <field id="CMIP6_dsn"           field_ref="delswe"         /> <!-- P1 (kg m-2) change_over_time_in_surface_snow_and_ice_amount : change_over_time_in_surface_snow_and_ice_amount -->
+   <field id="CMIP6_dsw"           field_ref="delsurfwater"         /> <!-- P1 (kg m-2) change_over_time_in_surface_water_amount : change_over_time_in_surface_water_amount Warning: includes the fast reservoire -->
+   <field id="CMIP6_dtes"          field_ref="dtes"         /> <!-- P1 (J m-2) change_over_time_in_thermal_energy_content_of_surface : Change in surface heat storage -->
+   <field id="CMIP6_dtesn"         field_ref="del_snowheattot"         /> <!-- P1 (J m-2) change_over_time_in_thermal_energy_content_of_surface_snow_and_ice : Change in snow/ice cold content Warning: Computed only for the layered scheme on vegetated and bare soil area -->
+   <field id="CMIP6_ec"            field_ref="evspsblveg"         /> <!-- P1 (kg m-2 s-1) liquid_water_evaporation_flux_from_canopy : liquid_water_evaporation_flux_from_canopy -->
+   <field id="CMIP6_eow"           field_ref="vevapflo"         /> <!-- P1 (kg m-2 s-1) liquid_water_evaporation_flux_from_open_water : liquid_water_evaporation_flux_from_open_water -->
+   <field id="CMIP6_es"            field_ref="vevapnu"         /> <!-- P1 (kg m-2 s-1) liquid_water_evaporation_flux_from_soil : liquid_water_evaporation_flux_from_soil -->
+   <field id="CMIP6_esn"           field_ref="vevapsno"         /> <!-- P1 (kg m-2 s-1) liquid_water_evaporation_flux_from_surface_snow : liquid_water_evaporation_flux_from_surface_snow -->
+   <field id="CMIP6_evspsbl"       field_ref="vevapp"         /> <!-- P1 (kg m-2 s-1) surface_evapotranspiration : surface_evapotranspiration -->
+   <field id="CMIP6_evspsblpot"    field_ref="evapot"         /> <!-- P1 (kg m-2 s-1) water_potential_evaporation_flux : Potential Evapotranspiration -->
+   <field id="CMIP6_evspsblsoi"    field_ref="evspsblsoi"         /> <!-- P1 (kg m-2 s-1) water_evaporation_flux_from_soil : includes sublimation. -->
+   <field id="CMIP6_evspsblveg"    field_ref="evspsblveg"         /> <!-- P1 (kg m-2 s-1) water_evaporation_flux_from_canopy : the canopy evaporation+sublimation (if present in model). Warning: No sublimation here for Orchidee -->
+   <field id="CMIP6_fAnthDisturb"  field_ref="fAnthDisturb"         /> <!-- P1 (kg m-2 s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_anthrogpogenic_emission : carbon mass flux into atmosphere due to any human activity -->
+   <field id="CMIP6_fBNF"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) biological_nitrogen_fixation : biological nitrogen fixation -->
+   <field id="CMIP6_fCLandToOcean" field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) carbon_mass_flux_into_ocean_from_rivers : Lateral transfer of carbon out of gridcell that eventually goes into ocean -->
+   <field id="CMIP6_fDeforestToAtmos" field_ref="fLuc"         /> <!-- P2 (kg m-2 s-1) surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change : Deforested biomass that goes into atmosphere as a result of anthropogenic land use change Warning : duplicate of variable fLuc -->
+   <field id="CMIP6_fDeforestToProduct" field_ref="fDeforestToProduct"         /> <!-- P1 (kg m-2 s-1) deforested_biomass_into_product_pool_due_to_anthorpogenic_land_use_change : Deforested biomass that goes into product pool as a result of anthropogenic land use change -->
+   <field id="CMIP6_fFire"         field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires_excluding_anthropogenic_land_use_change : CO2 emissions (expressed as a carbon mass flux) from natural fires + human ignition fires as calculated by the fire module of the DGVM, but excluding any CO2 flux from fire included in fLuc, defined below (CO2 Flux to Atmosphere from Land Use Change). -->
+   <field id="CMIP6_fFireAll"      field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) fire_CO2_emissions_from_all_sources : Carbon Mass Flux into Atmosphere due to CO2 emissions from Fire resulting from all sources including natural, anthropogenic and land use change. -->
+   <field id="CMIP6_fFireNat"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) fire_CO2_emissions_from_wildfire : Carbon Mass Flux into Atmosphere due to CO2 Emission from natural Fire -->
+   <field id="CMIP6_fGrazing"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_grazing : Carbon Mass Flux into Atmosphere due to Grazing on Land -->
+   <field id="CMIP6_fHarvest"      field_ref="fHarvest"         /> <!-- P1 (kg m-2 s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting : Carbon Mass Flux into Atmosphere due to Crop Harvesting -->
+   <field id="CMIP6_fHarvestToAtmos" field_ref="fHarvest"         /> <!-- P2 (kg m-2 s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting : Harvested biomass that goes straight into atmosphere Warning : Duplicate variable fHarvest -->
+   <field id="CMIP6_fHarvestToProduct" field_ref="fHarvestToProduct"         /> <!-- P1 (kg m-2 s-1) harvested_biomass_into_product_pool : Harvested biomass that goes into product pool -->
+   <field id="CMIP6_fLitterFire"   field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) fire_CO2_emissions_from_litter_carbon : Carbon Mass Flux from Litter, CWD or any non-living pool into Atmosphere due to CO2 Emission from all Fire -->
+   <field id="CMIP6_fLitterSoil"   field_ref="fLitterSoil"         /> <!-- P1 (kg m-2 s-1) carbon_mass_flux_into_soil_from_litter : Total Carbon Mass Flux from Litter to Soil -->
+   <field id="CMIP6_fLuc"          field_ref="fLuc"         /> <!-- P1 (kg m-2 s-1) surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change : Net Carbon Mass Flux into Atmosphere due to Land Use Change -->
+   <field id="CMIP6_fLulccAtmLut"  field_ref="flulccatmlut" /> <!-- P1 (kg s-1) surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_direct_to_atmosphere_due_to_anthropogenic_land_use_land_cover_change : carbon transferred directly to atmosphere due to any land-use or land-cover change activities including deforestation or agricultural fire -->
+   <field id="CMIP6_fLulccProductLut" field_ref="flulccproductlut" /> <!-- P1 (kg m-2 s-1) carbon_mass_flux_into_wood_and_agricultural_product_pools_due_to_anthropogenic_land_use_or_land_cover_change : carbon harvested due to land-use or land-cover change process that enters anthropogenic product pools on tile -->
+   <field id="CMIP6_fLulccResidueLut" field_ref="flulccresiduelut" /> <!-- P1 (kg m-2 s-1) carbon_mass_flux_into_soil_and_litter_due_to_anthropogenic_land_use_or_land_cover_change : carbon transferred to soil or litter pools due to land-use or land-cover change processes on tile -->
+   <field id="CMIP6_fN2O"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) land_net_n2o_flux : Total land N2O flux -->
+   <field id="CMIP6_fNAnthDisturb" field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) nitrogen_flux_into_atmos_due_to_direct_human_disturbance : nitrogen mass flux out of land due to any human activity -->
+   <field id="CMIP6_fNLandToOcean" field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) nitrogen_mass_flux_into_ocean_from_rivers : Lateral transfer of nitrogen out of gridcell that eventually goes into ocean -->
+   <field id="CMIP6_fNLitterSoil"  field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) nitrogen_mass_flux_into_soil_from_litter : Total Nitrogen Mass Flux from Litter to Soil -->
+   <field id="CMIP6_fNOx"          field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) land_net_nox_flux : Total land NOx flux -->
+   <field id="CMIP6_fNProduct"     field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) nitrogen_mass_flux_to_product_pool_due_to_anthorpogenic_activity : Deforested or harvested biomass as a result of anthropogenic land use or change -->
+   <field id="CMIP6_fNVegLitter"   field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) litter_nitrogen_flux : Total Nitrogen Mass Flux from Vegetation to Litter -->
+   <field id="CMIP6_fNVegSoil"     field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) nitrogen_mass_flux_into_soil_from_vegetation_excluding_litter : Total Nitrogen Mass Flux from Vegetation Directly to Soil -->
+   <field id="CMIP6_fNdep"         field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) deposition_of_nitrogen_onto_land : Dry and Wet Deposition of Reactive Nitrogen onto Land -->
+   <field id="CMIP6_fNfert"        field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) fertiliser_of_nitrogen_onto_land : total N added for cropland fertilisation (artificial and manure) -->
+   <field id="CMIP6_fNgas"         field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) land_nitrogen_lost_to_atmosphere : Total Nitrogen lost to the atmosphere (sum of NHx, NOx, N2O, N2) -->
+   <field id="CMIP6_fNgasFire"     field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) land_nitrogen_lost_to_atmosphere_due_to_fire : Total N lost to the atmosphere (including NHx, NOx, N2O, N2) from fire. -->
+   <field id="CMIP6_fNgasNonFire"  field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) land_nitrogen_lost_to_atmosphere_not_due_to_fire : Total N lost to the atmosphere (including NHx, NOx, N2O, N2) from all processes except fire. -->
+   <field id="CMIP6_fNleach"       field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) land_nitrogen_lost_to_leaching : Total N loss to leaching or runoff (sum of ammonium, nitrite and nitrate) -->
+   <field id="CMIP6_fNloss"        field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) land_nitrogen_lost : Total N lost (including NHx, NOx, N2O, N2 and leaching) -->
+   <field id="CMIP6_fNnetmin"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) net_nitrogen_mineralisation : Net nitrogen release from soil and litter as the outcome of nitrogen immobilisation and gross mineralisation -->
+   <field id="CMIP6_fNup"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) plant_nitrogen_uptake : total plant nitrogen uptake (sum of ammonium and nitrate), irrespective of the source of nitrogen -->
+   <field id="CMIP6_fProductDecomp" field_ref="fProductDecomp"         /> <!-- P1 (kg m-2 s-1) Carbon_flux_out_of_storage_product_pools_into_atmos : decomposition out of product pools to CO2 in atmos Warning Duplicated variable with fDeforestToProduct -->
+   <field id="CMIP6_fProductDecompLut" field_ref="flulccatmlut" /> <!-- P1 (kg s-1) tendency_of_atmospheric_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_wood_and_agricultural_product_pool : flux from wood and agricultural product pools on land use tile into atmosphere -->
+   <field id="CMIP6_fVegFire"      field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) fire_CO2_emissions_from_vegetation_carbon : Carbon Mass Flux from Vegetation into Atmosphere due to CO2 Emission from all Fire -->
+   <field id="CMIP6_fVegLitter"    field_ref="fVegLitter"         /> <!-- P1 (kg m-2 s-1) litter_carbon_flux : Total Carbon Mass Flux from Vegetation to Litter -->
+   <field id="CMIP6_fVegLitterMortality" field_ref="dummy_XY_not_provided"   /> <!-- P2 (kg m-2 s-1) mortality_litter_carbon_flux : Total Carbon Mass Flux from Vegetation to Litter as a Result of Mortality -->
+   <field id="CMIP6_fVegLitterSenescence" field_ref="dummy_XY_not_provided"  /> <!-- P2 (kg m-2 s-1) senescence_litter_carbon_flux : Total Carbon Mass Flux from Vegetation to Litter as a Result of Leaf, Branch, and Root Senescence -->
+   <field id="CMIP6_fVegSoil"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) carbon_mass_flux_into_soil_from_vegetation_excluding_litter : In some models part of carbon (e.g., root exudate) can go directly into the soil pool without entering litter. -->
+   <field id="CMIP6_fVegSoilMortality" field_ref="dummy_XY_not_provided"     /> <!-- P2 (kg m-2 s-1) mortality_vegtosoil_carbon_flux : Total Carbon Mass Flux from Vegetation to Soil as a result of mortality -->
+   <field id="CMIP6_fVegSoilSenescence" field_ref="dummy_XY_not_provided"    /> <!-- P2 (kg m-2 s-1) senescence_vegtosoil_carbon_flux : Total Carbon Mass Flux from Vegetation to Soil as a result of leaf, branch, and root senescence -->
+   <field id="CMIP6_fahLut"        field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (W m-2) surface_upward_heat_flux_due_to_anthropogenic_energy_consumption : Anthropogenic heat flux generated from non-renewable human primary energy consumption, including energy use by vehicles, commercial and residential buildings, industry, and power plants.  Primary energy refers to energy in natural resources, fossil and nonfossil, before conversion into other forms, such as electricity. -->
+   <field id="CMIP6_fldcapacity"   field_ref="fldcapacity"       /> <!-- P1 (%) volume_fraction_of_condensed_water_in_soil_at_field_capacity : Field Capacity -->
+   <field id="CMIP6_fracInLut"     field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (%) area_fraction : annual gross fraction that was transferred into this tile from other land use tiles -->
+   <field id="CMIP6_fracLut"       field_ref="fraclut" /> <!-- P1 (%) area_fraction : fraction of grid cell for each land use tile -->
+   <field id="CMIP6_fracOutLut"    field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (%) area_fraction : annual gross fraction of land use tile  that was transferred into other land use tiles -->
+   <field id="CMIP6_gpp"           field_ref="gpp_ipcc2"         /> <!-- P1 (kg m-2 s-1) gross_primary_productivity_of_biomass_expressed_as_carbon : only requested for DECK HIST, 1980-present -->
+   <field id="CMIP6_gppGrass"      field_ref="gppgrass"         /> <!-- P2 (kg m-2 s-1) gross_primary_productivity_of_biomass_expressed_as_carbon : gross primary production on grass tiles -->
+   <field id="CMIP6_gppLut"        field_ref="gpplut" /> <!-- P1 (kg m-2 s-1) gross_primary_productivity_of_biomass_expressed_as_carbon : gross primary productivity on land use tile -->
+   <field id="CMIP6_gppShrub"      field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) gross_primary_productivity_of_biomass_expressed_as_carbon : gross primary production on Shrub tiles -->
+   <field id="CMIP6_gppTree"       field_ref="gpptree"         /> <!-- P2 (kg m-2 s-1) gross_primary_productivity_of_biomass_expressed_as_carbon : gross primary production on tree tiles -->
+   <field id="CMIP6_gppc13"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) gross_primary_productivity_of_c13 : Mass Flux of 13C out of Atmosphere due to Gross Primary Production on Land -->
+   <field id="CMIP6_gppc14"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) gross_primary_productivity_of_c14 : Mass Flux of 14C out of Atmosphere due to Gross Primary Production on Land -->
+   <field id="CMIP6_grassFrac"     field_ref="grassFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell that is covered by natural grass. -->
+   <field id="CMIP6_grassFracC3"   field_ref="grassFracC3"         /> <!-- P1 (%) area_fraction : C3 grass Area Percentage -->
+   <field id="CMIP6_grassFracC4"   field_ref="grassFracC4"         /> <!-- P1 (%) area_fraction : C4 grass Area Percentage -->
+   <field id="CMIP6_hfdsn"         field_ref="snowflxtot"         /> <!-- P1 (W m-2) surface_downward_heat_flux_in_snow : the net downward heat flux from the atmosphere into the snow that lies on land divided by the land area in the grid cell; reported as missing for snow-free land regions or where the land fraction is 0. -->
+   <field id="CMIP6_hfls"          field_ref="fluxlat"           /> <!-- P1 (W m-2) surface_upward_latent_heat_flux : The surface called "surface" means the lower boundary of the atmosphere. "Upward" indicates a vector component which is positive when directed upward (negative downward). The surface latent heat flux is the exchange of heat between the surface and the air on account of evaporation (including sublimation). In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics. -->
+   <field id="CMIP6_hflsLut"       field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (W m-2) surface_upward_latent_heat_flux : latent heat flux on land use tile -->
+   <field id="CMIP6_hfss"          field_ref="fluxsens"          /> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : The surface called "surface" means the lower boundary of the atmosphere. "Upward" indicates a vector component which is positive when directed upward (negative downward). The surface sensible heat flux, also called "turbulent" heat flux, is the exchange of heat between the surface and the air by motion of air. In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics. Unless indicated in the cell_methods attribute, a quantity is assumed to apply to the whole area of each horizontal grid box. Previously, the qualifier where_type was used to specify that the quantity applies only to the part of the grid box of the named type.  Names containing the where_type qualifier are deprecated and newly created data should use the cell_methods attribute to indicate the horizontal area to which the quantity applies. -->
+   <field id="CMIP6_hfssLut"       field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (W m-2) surface_upward_sensible_heat_flux : sensible heat flux on land use tile -->
+   <field id="CMIP6_hussLut"       field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (1) specific_humidity : near-surface specific humidity on land use tile -->
+   <field id="CMIP6_irrLut"        field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (kg s-1) surface_downward_water_flux_due_to_irrigation : Irrigation flux including any irrigation for crops, trees, pasture, or urban lawns -->
+   <field id="CMIP6_ksat"          field_ref="ksat"       /> <!-- P1 (1e-6 m s-1)  : Saturated Hydraulic Conductivity -->
+   <field id="CMIP6_lai"           field_ref="lai_ipcc"         /> <!-- P1 (1) leaf_area_index : a ratio obtained by dividing the total upper leaf surface area of vegetation by the (horizontal) surface area of the land on which it grows. Warning: here we take the average over the entire land fraction; not sure it's ok with the DataRequest comment "a ratio obtained by dividing the total upper leaf surface area of vegetation by the (horizontal) surface area of the land on which it grows." PC+JG : lai_ipcc and laimean are related to the same land fraction(note veget_max in stomate_lpj is not the same veget_max in sechiba!). We see other differencies between these output variables coming mainly from pft3 and some from 6,8,9,12. -->
+   <field id="CMIP6_laiLut"        field_ref="lailut" /> <!-- P1 (1)  : Leaf Area Index on Land Use Tile -->
+   <field id="CMIP6_landCoverFrac" field_ref="landCoverFrac" /> <!-- P1 (%) area_fraction : The categories may differ from model to model, depending on their  PFT definitions.   This may include natural PFTs, anthropogenic PFTs, bare soil, lakes, urban areas, etc.   Sum of all should equal the fraction of the grid-cell that is land. Warning: Note: here not multiplying by contfrac according to DR -->
+   <field id="CMIP6_lwsnl"         field_ref="snowliqtot"         /> <!-- P1 (kg m-2) liquid_water_content_of_snow_layer : where land over land: this is computed as the total mass of liquid water contained interstitially within the snow layer of the land portion of a grid cell divided by the area of the land portion of the cell. Warning: Computed only for the layered scheme on vegetated and bare soil area. -->
+   <field id="CMIP6_mrfso"         field_ref="humtot_frozen"         /> <!-- P1 (kg m-2) soil_frozen_water_content : the mass (summed over all all layers) of frozen water. Warning: To be calculated. -->
+   <field id="CMIP6_mrfsofr"       field_ref="profil_froz_hydro"       /> <!-- P1 (1) mass_fraction_of_frozen_water_in_soil_moisture : mass_fraction_of_frozen_water_in_soil_layer -->
+   <field id="CMIP6_mrlqso"        field_ref="profil_liquid_hydro"       /> <!-- P1 (1) mass_fraction_of_unfrozen_water_in_soil_moisture : mass_fraction_of_unfrozen_water_in_soil_layer -->
+   <field id="CMIP6_mrlso"         field_ref="humtot_liquid"         /> <!-- P1 (kg m-2) soil_liquid_water_content : Soil Liquid Water Content -->
+   <field id="CMIP6_mrro"          field_ref="mrro"         /> <!-- P1 (kg m-2 s-1) runoff_flux : the total runoff (including "drainage" through the base of the soil model) leaving the land portion of the grid cell divided by the land area in the grid cell, averaged over the 3-hour interval. -->
+   <field id="CMIP6_mrroLi"        field_ref="dummy_XY_not_provided"  /> <!-- P1 (kg m-2 s-1) land_ice_runoff_flux : Runoff flux over land ice is the difference between any available liquid water in the snowpack less any refreezing. Computed as the sum of rainfall and melt of snow or ice less any refreezing or water retained in the snowpack -->
+   <field id="CMIP6_mrroLut"       field_ref="mrro_lut" /> <!-- P1 (kg m-2 s-1) runoff_flux : Total runoff from land use tile -->
+   <field id="CMIP6_mrrob"         field_ref="drainage"         /> <!-- P1 (kg m-2 s-1) subsurface_runoff_flux : subsurface_runoff_flux -->
+   <field id="CMIP6_mrros"         field_ref="runoff"         /> <!-- P1 (kg m-2 s-1) surface_runoff_flux : surface_runoff_flux -->
+   <field id="CMIP6_mrsfl"         field_ref="soilmoist_frozen"       /> <!-- P1 (kg m-2) frozen_moisture_content_of_soil_layer : Frozen water content of soil layer -->
+   <field id="CMIP6_mrsll"         field_ref="soilmoist_liquid"       /> <!-- P1 (kg m-2) liquid_moisture_content_of_soil_layer : Liquid water content of soil layer -->
+   <field id="CMIP6_mrso"          field_ref="humtot"         /> <!-- P1 (kg m-2) soil_moisture_content : the mass per unit area  (summed over all soil layers) of water in all phases. -->
+   <field id="CMIP6_mrsoLut"       field_ref="humtot_lut" /> <!-- P1 (kg m-2) soil_moisture_content : Total soil moisture -->
+   <field id="CMIP6_mrsofc"        field_ref="tmcfc"         /> <!-- P1 (kg m-2) soil_moisture_content_at_field_capacity : reported "where land": divide the total water holding capacity of all the soil in the grid cell by the land area in the grid cell;  reported as "missing" where the land fraction is 0. -->
+   <field id="CMIP6_mrsol"         field_ref="soilmoist"       /> <!-- P1 (kg m-2) moisture_content_of_soil_layer : Total water content of soil layer -->
+   <field id="CMIP6_mrsos"         field_ref="humtot_top"         /> <!-- P1 (kg m-2) moisture_content_of_soil_layer : the mass of water in all phases in a thin surface soil layer. -->
+   <field id="CMIP6_mrsosLut"      field_ref="humtot_top_lut" /> <!-- P1 (kg m-2) moisture_content_of_soil_layer : Moisture in Upper Portion of Soil Column of land use tile -->
+   <field id="CMIP6_mrsow"         field_ref="dummy_not_provided"         /> <!-- P1 (1) volume_fraction_of_condensed_water_in_soil_at_field_capacity : relative_soil_moisture_content_above_field_capacity Warning: weird mention to field capacity in the description, overlooked. AD: 3 differents definintions, we do not know what to do -->
+   <field id="CMIP6_mrtws"         field_ref="tws"         /> <!-- P1 (kg m-2) total_water_storage : canopy_and_surface_and_subsurface_water_amount -->
+   <field id="CMIP6_nLand"         field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) total_land_nitrogen : Total nitrogen in all terrestrial nitrogen pools -->
+   <field id="CMIP6_nLeaf"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) leaf_nitrogen_content : Nitrogen Mass in Leaves -->
+   <field id="CMIP6_nLitter"       field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) litter_nitrogen_content : Nitrogen Mass in Litter Pool -->
+   <field id="CMIP6_nLitterCwd"    field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) litter_wood_debris_nitrogen_content : Nitrogen Mass in Coarse Woody Debris -->
+   <field id="CMIP6_nLitterSubSurf" field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) subsurface_litter_nitrogen_content : Nitrogen Mass in below ground litter (non CWD) -->
+   <field id="CMIP6_nLitterSurf"   field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) surface_litter_nitrogen_content : Nitrogen Mass in above ground litter (non CWD) -->
+   <field id="CMIP6_nMineral"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) mineral_soil_nitrogen_content : Mineral nitrogen in the soil -->
+   <field id="CMIP6_nMineralNH4"   field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) mineral_nh4_soil_nitrogen_content : Mineral ammonium in the soil -->
+   <field id="CMIP6_nMineralNO3"   field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) mineral_no3_soil_nitrogen_content : Mineral nitrate in the soil -->
+   <field id="CMIP6_nOther"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) other_vegegtation_components_nitrogen_content : Nitrogen mass in vegetation components other than leaves, stem and root -->
+   <field id="CMIP6_nProduct"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) nitrogen_content_of_products_of_anthropogenic_land_use_change : Nitrogen Mass in Products of Land Use Change -->
+   <field id="CMIP6_nRoot"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) root_nitrogen_content : Nitrogen Mass in Roots -->
+   <field id="CMIP6_nSoil"         field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) soil_nitrogen_content : Nitrogen Mass in Soil Pool -->
+   <field id="CMIP6_nStem"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2) stem_nitrogen_content : Nitrogen Mass in Stem -->
+   <field id="CMIP6_nVeg"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) vegetation_nitrogen_content : Nitrogen Mass in Vegetation -->
+   <field id="CMIP6_nbp"           field_ref="nbp"         /> <!-- P1 (kg m-2 s-1) surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes : This is the net mass flux of carbon between land and atmosphere calculated as photosynthesis MINUS the sum of  plant and soil respiration, carbonfluxes  from fire, harvest, grazing  and land use change. Positive flux  is into the land. -->
+   <field id="CMIP6_necbLut"       field_ref="necbLut" /> <!-- P1 (kg m-2 s-1) surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes : net rate of C accumulation (or loss) on land use tile -->
+   <field id="CMIP6_nep"           field_ref="nep"         /> <!-- P1 (kg m-2 s-1) surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change : Net Ecosystem Exchange -->
+   <field id="CMIP6_netAtmosLandC13Flux" field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) net_atmos_to_land_C13_flux : Net Mass Flux of 13C between atmosphere and land (positive into land) as a result of all processes. -->
+   <field id="CMIP6_netAtmosLandC14Flux" field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) net_atmos_to_land_C14_flux : Net Mass Flux of 14C between atmosphere and land (positive into land) as a result of all processes. -->
+   <field id="CMIP6_netAtmosLandCO2Flux" field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2 s-1) surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes : Net flux of CO2 between atmosphere and land (positive into land) as a result of all processes. Warning: Could be done in Orchidee but not considered as a priority  -->
+   <field id="CMIP6_npp"           field_ref="npp_ipcc"         /> <!-- P1 (kg m-2 s-1) net_primary_productivity_of_biomass_expressed_as_carbon : Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land -->
+   <field id="CMIP6_nppGrass"      field_ref="nppGrass"         /> <!-- P2 (kg m-2 s-1) net_primary_productivity_of_biomass_expressed_as_carbon : net primary production on grass tiles -->
+   <field id="CMIP6_nppLeaf"       field_ref="nppLeaf"         /> <!-- P1 (kg m-2 s-1) net_primary_productivity_of_carbon_accumulated_in_leaves : This is the rate of carbon uptake by leaves due to NPP -->
+   <field id="CMIP6_nppLut"        field_ref="npplut" /> <!-- P1 (kg m-2 s-1) net_primary_productivity_of_biomass_expressed_as_carbon : net primary productivity on land use tile -->
+   <field id="CMIP6_nppOther"      field_ref="nppOther"         /> <!-- P2 (kg m-2 s-1) net_primary_production_allocated_to_other : net primary production allcoated to other pools (not leaves stem or roots) -->
+   <field id="CMIP6_nppRoot"       field_ref="nppRoot"         /> <!-- P1 (kg m-2 s-1) net_primary_productivity_of_carbon_accumulated_in_roots : This is the rate of carbon uptake by roots due to NPP -->
+   <field id="CMIP6_nppShrub"      field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) net_primary_productivity_of_biomass_expressed_as_carbon : net primary production on Shrub tiles -->
+   <field id="CMIP6_nppStem"       field_ref="nppStem"         /> <!-- P2 (kg m-2 s-1) net_primary_production_allocated_to_stem : net primary production allcoated to stem -->
+   <field id="CMIP6_nppTree"       field_ref="nppTree"         /> <!-- P2 (kg m-2 s-1) net_primary_productivity_of_biomass_expressed_as_carbon : net primary production on tree tiles -->
+   <field id="CMIP6_nppWood"       field_ref="nppWood"         /> <!-- P1 (kg m-2 s-1) net_primary_productivity_of_carbon_accumulated_in_wood : This is the rate of carbon uptake by wood due to NPP -->
+   <field id="CMIP6_nudgincsm"     field_ref="nudgincsm"         /> <!-- P1 (kg m-2) nudging_increment_in_water_content_of_soil_layer : nudging_increment_in_water_content_of_soil_layer -->
+   <field id="CMIP6_nudgincswe"    field_ref="nudgincswe"         /> <!-- P1 (kg m-2) nudging_increment_in_surface_snow_and_ice_amount : nudging_increment_in_surface_snow_and_ice_amount -->
+   <field id="CMIP6_nwdFracLut"    field_ref="nwdFraclut" /> <!-- P1 (%)  : fraction of land use tile tile that is non-woody vegetation ( e.g. herbaceous crops) -->
+   <field id="CMIP6_orog"          field_ref="dummy_XY"         /> <!-- P1 (m) surface_altitude : Surface Altitude -->
+   <field id="CMIP6_orog_ist"      field_ref="dummy_XY"         /> <!-- P1 (m) surface_altitude : This is needed in case the ice sheet elevation changes in time -->
+   <field id="CMIP6_pastureFrac"   field_ref="dummy_XY_not_provided"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by anthropogenic pasture. -->
+   <field id="CMIP6_pastureFracC3" field_ref="dummy_XY_not_provided"         /> <!-- P2 (%) area_fraction : C3 Pasture Area Percentage -->
+   <field id="CMIP6_pastureFracC4" field_ref="dummy_XY_not_provided"         /> <!-- P2 (%) area_fraction : C4 Pasture Area Percentage -->
+   <field id="CMIP6_pflw"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) liquid_water_content_of_permafrost_layer : "where land over land", i.e., this is the total mass of liquid water contained within the permafrost layer within the land portion of a grid cell divided by the area of the land portion of the cell. -->
+   <field id="CMIP6_prra"          field_ref="precip_rain"      /> <!-- P1 (kg m-2 s-1) rainfall_flux : over Land Ice//quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_prsn"          field_ref="precip_snow"      /> <!-- P1 (kg m-2 s-1) snowfall_flux : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_prveg"         field_ref="prveg"         /> <!-- P1 (kg m-2 s-1) precipitation_flux_onto_canopy : the precipitation flux that is intercepted by the vegetation canopy (if present in model) before reaching the ground. -->
+   <field id="CMIP6_qgwr"          field_ref="drainage"         /> <!-- P1 (kg m-2 s-1) water_flux_from_soil_layer_to_groundwater : water_flux_from_soil_layer_to_groundwater Warning: It can be either undef or drainage. We take the second option for the moment. -->
+   <field id="CMIP6_rGrowth"       field_ref="rGrowth_ipcc"         /> <!-- P1 (kg m-2 s-1) surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_growth : Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land Warning: Variable coming from stomate, can only be provided for daily or monthly output with Orchidee. -->
+   <field id="CMIP6_rMaint"        field_ref="rMaint_ipcc"         /> <!-- P1 (kg m-2 s-1) surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_maintenance : Carbon Mass Flux into Atmosphere due to Maintenance Autotrophic Respiration on Land Warning: Variable coming from stomate, can only be provided for daily or monthly output with Orchidee. -->
+   <field id="CMIP6_ra"            field_ref="ra"         /> <!-- P1 (kg m-2 s-1) plant_respiration_carbon_flux : only requested for DECK HIST, 1980-present Warning: Variable coming from stomate, can only be provided for daily or monthly output with Orchidee. -->
+   <field id="CMIP6_raGrass"       field_ref="raGrass"         /> <!-- P2 (kg m-2 s-1) plant_respiration_carbon_flux : autotrophic respiration on grass tiles -->
+   <field id="CMIP6_raLeaf"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) autotrophic_respiration_from_leaves : Total respiration from leaves -->
+   <field id="CMIP6_raLut"         field_ref="ralut" /> <!-- P1 (kg m-2 s-1) plant_respiration_carbon_flux : plant respiration on land use tile -->
+   <field id="CMIP6_raOther"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) autotrophic_respiration : Total respiration from other pools (not leaves stem or roots) -->
+   <field id="CMIP6_raRoot"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) autotrophic_respiration_from_roots : Total Respiration from Roots -->
+   <field id="CMIP6_raShrub"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) plant_respiration_carbon_flux : autotrophic respiration on Shrub tiles -->
+   <field id="CMIP6_raStem"        field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) autotrophic_respiration_from_stem : Total Respiration from Stem -->
+   <field id="CMIP6_raTree"        field_ref="raTree"         /> <!-- P2 (kg m-2 s-1) plant_respiration_carbon_flux : autotrophic respiration on tree tiles -->
+   <field id="CMIP6_rac13"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) plant_respiration_c13_flux : Mass Flux of 13C into Atmosphere due to Autotrophic (Plant) Respiration on Land -->
+   <field id="CMIP6_rac14"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) plant_respiration_c14_flux : Mass Flux of 14C into Atmosphere due to Autotrophic (Plant) Respiration on Land -->
+   <field id="CMIP6_residualFrac"  field_ref="residualFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is land and is covered by "non-vegetation" and "non-bare-soil" (e.g., urban, ice, lakes, etc.) -->
+   <field id="CMIP6_rh"            field_ref="rh_ipcc2"         /> <!-- P1 (kg m-2 s-1) heterotrophic_respiration_carbon_flux : Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land Warning:  Issue with duplicated variables resp_hetero from sechiba and stomate but they are calculated differently. We here need the sechiba variable for 3h freq output. -->
+   <field id="CMIP6_rhGrass"       field_ref="rhGrass"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_carbon_flux : heterotrophic respiration on grass tiles -->
+   <field id="CMIP6_rhLitter"      field_ref="rhLitter"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_carbon_flux_from_litter : Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration from Litter on Land -->
+   <field id="CMIP6_rhLut"         field_ref="rhlut" /> <!-- P1 (kg m-2 s-1) heterotrophic_respiration_carbon_flux : soil heterotrophic respiration on land use tile -->
+   <field id="CMIP6_rhShrub"       field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_carbon_flux : heterotrophic respiration on Shrub tiles -->
+   <field id="CMIP6_rhSoil"        field_ref="rhSoil"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_carbon_flux_from_soil : Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration from Soil on Land -->
+   <field id="CMIP6_rhTree"        field_ref="rhTree"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_carbon_flux : heterotrophic respiration on tree tiles -->
+   <field id="CMIP6_rhc13"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_c13_flux : Mass Flux of 13C into Atmosphere due to Heterotrophic Respiration on Land -->
+   <field id="CMIP6_rhc14"         field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) heterotrophic_respiration_c14_flux : Mass Flux of 14C into Atmosphere due to Heterotrophic Respiration on Land -->
+   <field id="CMIP6_rivi"          field_ref="dummy_XY_not_provided"         /> <!-- P1 (m3 s-1) water_flux_from_upstream : water_flux_to_downstream -->
+   <field id="CMIP6_rivo"          field_ref="hydrographs"         /> <!-- P1 (m3 s-1) water_flux_to_downstream : water_flux_from_upstream -->
+   <field id="CMIP6_rlds"          field_ref="lwdown"           /> <!-- P1 (W m-2) surface_downwelling_longwave_flux_in_air : The surface called "surface" means the lower boundary of the atmosphere. "longwave" means longwave radiation. Downwelling radiation is radiation from above. It does not mean "net downward". When thought of as being incident on a surface, a radiative flux is sometimes called "irradiance". In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called "vector irradiance". In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics. -->
+   <field id="CMIP6_rlus"          field_ref="lwdown"    >   lwdown - lwnet </field> <!-- P1 (W m-2) surface_upwelling_longwave_flux_in_air : The surface called "surface" means the lower boundary of the atmosphere. "longwave" means longwave radiation. Upwelling radiation is radiation from below. It does not mean "net upward". When thought of as being incident on a surface, a radiative flux is sometimes called "irradiance". In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called "vector irradiance". In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics. -->
+   <field id="CMIP6_rlusLut"       field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (W m-2) surface_upwelling_longwave_flux_in_air : Surface Upwelling Longwave on Land Use Tile -->
+   <field id="CMIP6_rootd"         field_ref="zmaxh"         /> <!-- P1 (m) root_depth : report the maximum soil depth reachable by plant roots (if defined in model), i.e., the maximum soil depth from which they can extract moisture; report as "missing" where the land fraction is 0. -->
+   <field id="CMIP6_rootdsl"       field_ref="dummy_XYSo"       /> <!-- P1 (kg m-2) root_mass_content_of_carbon : Root Distribution -->
+   <field id="CMIP6_rsds"          field_ref="swdown"         /> <!-- P1 (W m-2) surface_downwelling_shortwave_flux_in_air : surface solar irradiance for UV calculations -->
+   <field id="CMIP6_rsus"          field_ref="swdown"   >   swdown - swnet </field> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air : The surface called "surface" means the lower boundary of the atmosphere. "shortwave" means shortwave radiation. Upwelling radiation is radiation from below. It does not mean "net upward". When thought of as being incident on a surface, a radiative flux is sometimes called "irradiance". In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called "vector irradiance". In accordance with common usage in geophysical disciplines, "flux" implies per unit area, called "flux density" in physics. -->
+   <field id="CMIP6_rsusLut"       field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (W m-2) surface_upwelling_shortwave_flux_in_air : Surface Upwelling Shortwave  on Land Use Tile -->
+   <field id="CMIP6_rzwc"          field_ref="humtot"         /> <!-- P1 (kg m-2) water_content_of_root_zone : water_content_of_root_zone -->
+   <field id="CMIP6_sandfrac"      field_ref="sandfraction"       /> <!-- P1 (1)  : Sand Fraction -->
+   <field id="CMIP6_sftgif"        field_ref="dummy_XY_not_provided"         /> <!-- P1 (%) land_ice_area_fraction : Fraction of Grid Cell Covered with Glacier -->
+   <field id="CMIP6_shrubFrac"     field_ref="dummy_XY_not_provided"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by shrub. -->
+   <field id="CMIP6_slthick"       field_ref="dlh"       /> <!-- P1 (m)  : Thickness of Soil Layers -->
+   <field id="CMIP6_snc"           field_ref="frac_snow"         /> <!-- P1 (%) surface_snow_area_fraction : Fraction of each grid cell that is occupied by snow that rests on land portion of cell. -->
+   <field id="CMIP6_snc_ist"       field_ref="dummy_ist"         /> <!-- P1 (%) surface_snow_area_fraction : quantity averaged over ice sheet  only, to avoid contamination from other surfaces (eg: permafrost) -->
+   <field id="CMIP6_snd"           field_ref="snowdepth"         /> <!-- P1 (m) surface_snow_thickness : where land over land, this is computed as the mean thickness of snow in the land portion of the grid cell (averaging over the entire land portion, including the snow-free fraction).  Reported as missing where the land fraction is 0. Warning: Computed and weigthed only for the layered scheme on vegetated and bare soil area. -->
+   <field id="CMIP6_snm_land"      field_ref="snowmelt"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : Computed as the total surface melt water on the land portion of the grid cell divided by the land area in the grid cell; report as 0.0 for snow-free land regions; report as missing where the land fraction is 0. -->
+   <field id="CMIP6_snm_land"      field_ref="snowmelt"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : surface_snow_and_ice_melt_flux -->
+   <field id="CMIP6_snm_ist"       field_ref="dummy_XY"         /> <!-- P1 (kg m-2 s-1) surface_snow_melt_flux : Surface Snow Melt -->
+   <field id="CMIP6_snw"           field_ref="snow"         /> <!-- P1 (kg m-2) surface_snow_amount : Computed as the mass of surface snow on the land portion of the grid cell divided by the land area in the grid cell; reported as missing where the land fraction is 0; excluded is snow on vegetation canopy or on sea ice. -->
+   <field id="CMIP6_sootsn"        field_ref="dummy_XY_not_provided"         /> <!-- P1 (kg m-2) soot_content_of_surface_snow : the entire land portion of the grid cell is considered, with snow soot content set to 0.0 in regions free of snow. -->
+   <field id="CMIP6_sw"            field_ref="surfwater"         /> <!-- P1 (kg m-2) surface_water_amount_assuming_no_snow : surface_water_amount_assuming_no_snow Warning: includes the fast reservoire -->
+   <field id="CMIP6_sweLut"        field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (m)  : snow water equivalent on land use tile -->
+   <field id="CMIP6_tSoilPools"    field_ref="tSoilPools"/> <!-- P2 (s-1) soil_carbon_turnover_rate_by_pool : turnover rate of each model soil carbon pool -->
+   <field id="CMIP6_tas"           field_ref="dummy_XY"         /> <!-- P1 (K) air_temperature : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_tasLut"        field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (K) air_temperature : near-surface air temperature (2m above displacement height, i.e. t_ref) on land use tile -->
+   <field id="CMIP6_tcs"           field_ref="dummy_XY_not_provided"         /> <!-- P1 (K) canopy_temperature : Vegetation Canopy Temperature -->
+   <field id="CMIP6_tgs"           field_ref="dummy_XY_not_provided"         /> <!-- P1 (K) surface_temperature : Temperature of bare soil -->
+   <field id="CMIP6_tpf"           field_ref="dummy_XY_not_provided"         /> <!-- P1 (m) permafrost_layer_thickness : where land over land: This is the mean thickness of the permafrost layer in the land portion of the grid cell.  Reported as missing in permafrost-free regions. Warning: not yet computed but maybe doable following MICT -->
+   <field id="CMIP6_tran"          field_ref="tran"         /> <!-- P1 (kg m-2 s-1) transpiration_flux : Transpiration -->
+   <field id="CMIP6_treeFrac"      field_ref="treeFrac"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by trees. -->
+   <field id="CMIP6_treeFracBdlDcd" field_ref="treeFracBdlDcd"         /> <!-- P1 (%) area_fraction : Broadleaf deciduous tree fraction -->
+   <field id="CMIP6_treeFracBdlEvg" field_ref="treeFracBdlEvg"         /> <!-- P1 (%) area_fraction : Broadleaf evergreen tree fraction -->
+   <field id="CMIP6_treeFracNdlDcd" field_ref="treeFracNdlDcd"         /> <!-- P1 (%) area_fraction : Needleleaf deciduous tree fraction -->
+   <field id="CMIP6_treeFracNdlEvg" field_ref="treeFracNdlEvg"         /> <!-- P1 (%) area_fraction : Needleleaf evergreen tree fraction -->
+   <field id="CMIP6_treeFracPrimDec" field_ref="treeFracPrimDec"         /> <!-- P1 (%) area_fraction : This is the fraction of the entire grid cell  that is covered by "total primary deciduous trees." -->
+   <field id="CMIP6_treeFracPrimEver" field_ref="treeFracPrimEver"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by primary evergreen trees. -->
+   <field id="CMIP6_treeFracSecDec" field_ref="dummy_XY_not_provided"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by secondary deciduous trees. -->
+   <field id="CMIP6_treeFracSecEver" field_ref="dummy_XY_not_provided"         /> <!-- P1 (%) area_fraction : fraction of entire grid cell  that is covered by secondary evergreen trees. -->
+   <field id="CMIP6_ts"            field_ref="dummy_XY"         /> <!-- P1 (K) surface_temperature : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_tsl"           field_ref="ptn"       /> <!-- P1 (K) soil_temperature : Temperature of single near-surface soil layer.  Reported as "missing" for grid cells occupied entirely by "sea". -->
+   <field id="CMIP6_tslsi"         field_ref="temp_sol_new"         /> <!-- P1 (K) surface_temperature : Surface temperature of all surfaces except open ocean. -->
+   <field id="CMIP6_tslsiLut"      field_ref="dummy_XY_landUse_not_provided" /> <!-- P1 (K) surface_temperature : Surface Temperature on Landuse Tile -->
+   <field id="CMIP6_tsn_land"      field_ref="dummy_XY"         /> <!-- P1 (K) temperature_in_surface_snow : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_tsn_ist"       field_ref="dummy_XY"         /> <!-- P1 (K) temperature_in_surface_snow : quantity averaged over ice sheet (grounded ice sheet and floating ice shelf) only. Needed to analyse the impact of downscaling methods -->
+   <field id="CMIP6_tsn_land"      field_ref="dummy_XY_not_provided"         /> <!-- P1 (K) temperature_in_surface_snow : This temperature is averaged over all the snow in the grid cell that rests on land or land ice.  When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.   Reported as "missing in regions free of snow on land. Warning: Doable but painful with the two different snow schemes. -->
+   <field id="CMIP6_vegFrac"       field_ref="vegFrac"         /> <!-- P1 (%) area_fraction : Total vegetated fraction -->
+   <field id="CMIP6_vegHeight_land" field_ref="dummy_XY_not_provided"         /> <!-- P2 (m) canopy_height : Vegetation height averaged over all vegetation types and over the vegetated fraction of a grid cell. -->
+   <field id="CMIP6_vegHeight_veg" field_ref="dummy_XY_not_provided"         /> <!-- P1 (m) canopy_height : Vegetation height averaged over all vegetation types and over the vegetated fraction of a grid cell. -->
+   <field id="CMIP6_vegHeightCrop" field_ref="dummy_XY_not_provided"         /> <!-- P2 (m) canopy_height : Vegetation height averaged over the crop fraction of a grid cell. -->
+   <field id="CMIP6_vegHeightGrass" field_ref="dummy_XY_not_provided"         /> <!-- P2 (m) canopy_height : Vegetation height averaged over the grass fraction of a grid cell. -->
+   <field id="CMIP6_vegHeightPasture" field_ref="dummy_XY_not_provided"         /> <!-- P2 (m) canopy_height : Vegetation height averaged over the pasture fraction of a grid cell. -->
+   <field id="CMIP6_vegHeightShrub" field_ref="dummy_XY_not_provided"         /> <!-- P2 (m) canopy_height : Vegetation height averaged over the shrub fraction of a grid cell. -->
+   <field id="CMIP6_vegHeightTree" field_ref="dummy_XY_not_provided"         /> <!-- P2 (m) canopy_height : Vegetation height averaged over the tree fraction of a grid cell. -->
+   <field id="CMIP6_wetlandCH4"    field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) wetland_methane_emissions : Grid averaged methane emissions from wetlands -->
+   <field id="CMIP6_wetlandCH4cons" field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) wetland_methane_consumption : Grid averaged methane consuption (methanotrophy) from wetlands -->
+   <field id="CMIP6_wetlandCH4prod" field_ref="dummy_XY_not_provided"         /> <!-- P2 (kg m-2 s-1) wetland_methane_production : Grid averaged methane production (methanogenesis) from wetlands -->
+   <field id="CMIP6_wetlandFrac"   field_ref="dummy_XY_not_provided"         /> <!-- P2 (%) wetland_fraction : Fraction of a grid cell covered by wetland. -->
+   <field id="CMIP6_wilt"          field_ref="wilt"       /> <!-- P1 (%) volume_fraction_of_condensed_water_in_soil_at_wilting_point : Wilting Point -->
+   <field id="CMIP6_wtd"           field_ref="dummy_XY_not_provided"         /> <!-- P1 (m) depth_of_soil_moisture_saturation : depth_of_soil_moisture_saturation -->
+</field_definition>
+</context>
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/run.def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/run.def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/run.def	(revision 5899)
@@ -0,0 +1,62 @@
+# $Id$
+#
+INCLUDEDEF=physiq.def
+INCLUDEDEF=gcm.def
+INCLUDEDEF=vert.def
+INCLUDEDEF=orchidee.def
+INCLUDEDEF=config.def
+INCLUDEDEF=reprobus.def
+INCLUDEDEF=guide.def
+INCLUDEDEF=inca.def
+INCLUDEDEF=ensemble.def
+## Type de calendrier utilise
+## valeur possible: earth_360d (defaut), earth_365d, earth_366d
+calend= _AUTOBLOCKER_
+## Jour de l etat initial ( = 350  si 20 Decembre ,par expl. ,comme ici )
+dayref= _AUTOBLOCKER_
+##  Annee de l etat  initial (   avec  4  chiffres   )
+anneeref= _AUTOBLOCKER_
+## Nombre de jours d integration
+nday= _AUTOBLOCKER_
+## Remise a zero de la date initiale
+raz_date= _AUTOBLOCKER_
+## periode de sortie des variables de controle (en pas)
+iconser=240
+## periode d ecriture du fichier histoire (en jour)
+iecri=1
+## flag de sortie dynzon
+ok_dynzon=n
+ok_dyn_ave=n
+## activation du calcul d equilibrage de charge
+adjust= n
+## activation du filtre fft
+use_filtre_fft=y
+## niveau d impression de controle
+prt_level=0
+###
+### Informations sur la configuration utilisee
+###
+### type_ocean = force / slab  /couple
+### type_ocean is modified automatically by the lmdz.driver 
+type_ocean=_AUTOBLOCKER_
+### version_ocean = nemo / opa8
+version_ocean=nemo
+### activation passage courants surface ocean-glace
+cpl_current=y
+### VEGET= y si ORCHIDEE, =n si bucket
+### VEGET is modified automatically by the lmdz.driver 
+VEGET=_AUTOBLOCKER_
+### Choice of tracers type_trac=lmdz/inca/repr
+### type_trac is set automatically by the lmdz.driver
+type_trac=_AUTOBLOCKER_
+### config_inca=aero/chem needed only if type_trac=inca
+config_inca=_AUTOBLOCKER_ 
+### To activate XIOS ouputs only, set n to use IOIPSL
+ok_all_xml= y
+### Only read by ce0l : Do not set land points on Antartic
+no_ter_antartique=y
+### Do not call phytrac to speed things up
+iflag_phytrac=_AUTOBLOCKER_: DEFAULT = 0
+### cpl_old_calving : use n for DYNAMICO and new coupling weight(MR025)
+cpl_old_calving = _AUTO_
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def	(revision 5899)
@@ -0,0 +1,5 @@
+4
+14 14 H2Ov
+10 10 H2Ol
+10 10 H2Oi
+00 00 Aga
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def_ESMCO2
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def_ESMCO2	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def_ESMCO2	(revision 5899)
@@ -0,0 +1,5 @@
+4
+14 14 H2Ov
+10 10 H2Ol
+10 10 H2Oi
+10 10 CO2
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def_h2o_NP
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def_h2o_NP	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/traceur.def_h2o_NP	(revision 5899)
@@ -0,0 +1,4 @@
+3
+14 14 H2Ov
+10 10 H2Ol
+10 10 H2Oi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L39
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L39	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L39	(revision 5899)
@@ -0,0 +1,9 @@
+## Avec ou sans strato
+ok_strato=y 
+## Activation ou non de la parametrisation de Hines pour la strato
+ok_hines=y
+#  Couche eponge dans les couches de pression plus faible que 100 fois la pression de la derniere couche
+iflag_top_bound=2
+#  Coefficient pour la couche eponge (valeur derniere couche)
+tau_top_bound=5.e-5
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L59
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L59	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L59	(revision 5899)
@@ -0,0 +1,10 @@
+vert_sampling=strato_custom
+vert_dzmin=0.017
+vert_dzlow=1.2
+vert_z0low=8.4
+vert_dzmid=9.
+vert_z0mid=60.
+vert_h_mid=20.
+vert_dzhig=10.
+vert_z0hig=75.
+vert_h_hig=20.
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L79
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L79	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/vert.def_L79	(revision 5899)
@@ -0,0 +1,41 @@
+#
+# $Id: vert_L79.def 2446 2016-02-16 12:32:59Z fairhead $
+#
+#### Verticale discretisation
+## Modified verticale discretisation for stratospheric versions.
+## The new version can be controled by following parameters
+## Al the parameters are given in km assuming a given scalehigh
+vert_sampling=strato_custom
+## scale hight
+vert_scale=7.
+## width of first layer
+vert_dzmin=0.017
+## dz in the low atmosphere
+vert_dzlow=1.
+## height at which resolution recches dzlow
+vert_z0low=8.7
+## dz in the mid atmsophere
+vert_dzmid=2.
+## height at which resolution recches dzmid
+vert_z0mid=70.
+## width of the transition
+vert_h_mid=20.
+## dz in the high atmsophere
+vert_dzhig=11.
+## height at which resolution recches dz
+vert_z0hig=75.
+## width of the transition
+vert_h_hig=20.
+## vert_prof_dissip used to choose the vertical profile
+## of horizontal dissipation (values are 0 and 1)
+vert_prof_dissip = 1
+dissip_zref = 50
+##  Avec ou sans strato
+ok_strato=y
+##  Activation ou non de la parametrisation de Hines pour la strato
+ok_hines=n
+#  Couche eponge dans les couches de pression plus faible que 100 fois la pression de la derniere couche
+iflag_top_bound=2
+#  Coefficient pour la couche eponge (valeur derniere couche)
+tau_top_bound=5.e-4
+#
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/xmlio_server.def
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/xmlio_server.def	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/PARAM/xmlio_server.def	(revision 5899)
@@ -0,0 +1,18 @@
+! xmlio_server namelist
+!
+! using_server: .TRUE.(.FALSE.) to use(bypass) the io_server. AUTO : this variable is updated by the opa9.driver
+! using_oasis : .TRUE.(.FALSE.) if nemo is coupled through OASIS
+! client_id   : used only for OASIS, NEMO      id in the namecouple
+! server_id   : used only for OASIS, io_server id in the namecouple
+!
+&coupling_param
+  using_server = .FALSE.
+  using_oasis  = .TRUE.
+  client_id    = 'oceanx'
+  server_id    = 'ionemo'
+/
+
+! global_mpi_buffer_size: size in Mo of the MPI buffer used by the io_server
+&mpi_param
+  global_mpi_buffer_size = 512
+/
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_lmdz.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_lmdz.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_lmdz.cfg	(revision 5899)
@@ -0,0 +1,73 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.2 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by # character.
+#   - Separator between fields is | character.
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset.
+#     They must be enclosed by parenthesis if more than one variable is used.
+#   - files patterns,files additionnal,operations,title,units must be enclosed with character ". 
+#     Use "" if empty.
+#   - Fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=AECDFF
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+ bils_global    | "bils"                       | "" | "bils[d=1]"               | "Surf. total heat flux (GLOBAL)"         | "W/m^2"     | "aire[d=1]"   
+ nettop_global  | "tops topl"                  | "" | "(tops[d=1]-topl[d=2])"   | "TOA. total heat flux (GLOBAL)"          | "W/m^2"     | "aire[d=1]"
+ nettop0_global | "tops0 topl0"                | "" | "(tops0[d=1]-topl0[d=2])" | "TOA. total heat flux ClearSky (GLOBAL)" | "W/m^2"     | "aire[d=1]"
+ t2m_global_prio     | "t2m"                        | "" | "(t2m[d=1]-273.15)"       | "Temperature at 2 meters (GLOBAL)"       | "degrees C" | "aire[d=1]"
+ t2m_land       | "t2m pourc_ter pourc_lic"    | "" | "(t2m[d=1]-273.15)"       | "Temperature at 2 meters (LAND)"         | "degrees C" | "aire[d=1]*((pourc_ter[d=2]+pourc_lic[d=3])/100.)"
+ tsol_global    | "tsol"                       | "" | "(tsol[d=1]-273.15)"      | "Surface Temperature (GLOBAL)"           | "degrees C" | "aire[d=1]"
+ tsol_land      | "tsol pourc_ter pourc_lic"   | "" | "(tsol[d=1]-273.15)"      | "Surface Temperature (LAND)"             | "degrees C" | "aire[d=1]*((pourc_ter[d=2]+pourc_lic[d=3])/100.)"
+ precip_global  | "precip"                     | "" | "precip[d=1]*86400"       | "Precipitation Totale liq+sol (GLOBAL)"  | "mm/d"      | "aire[d=1]"
+ precip_land    | "precip pourc_ter pourc_lic" | "" | "precip[d=1]*86400"       | "Precipitation Totale liq+sol (LAND)"    | "mm/d"      | "aire[d=1]*((pourc_ter[d=2]+pourc_lic[d=3])/100.)"
+ evap_global    | "evap"                       | "" | "evap[d=1]"               | "Evaporation (GLOBAL)"                   | "kg/(s*m2)" | "aire[d=1]"
+ evap_land      | "evap pourc_ter pourc_lic"   | "" | "evap[d=1]"               | "Evaporation (LAND)"                     | "kg/(s*m2)" | "aire[d=1]*((pourc_ter[d=2]+pourc_lic[d=3])/100.)"
+ flat_global    | "flat"                       | "" | "flat[d=1]"               | "Surf. latent heat flux (GLOBAL)"         | "W/m^2"     | "aire[d=1]"
+ prw_global     | "prw"                        | "" | "prw[d=1]"                | "Precipitable water (GLOBAL)"            | "kg/m^2"    | "aire[d=1]"
+ ener_global    | "nettop precip snow sols soll sens" | "" | "nettop[d=1,x=@ave,y=@ave]+(precip[d=2,x=@ave,y=@ave]-snow[d=3,x=@ave,y=@ave])*2.5008E+6+snow[d=3,x=@ave,y=@ave]*2.8345E+6-sols[d=4,x=@ave,y=@ave]-soll[d=5,x=@ave,y=@ave]-sens[d=6,x=@ave,y=@ave]" | "Destruction d energie par l atmosphere" | "W/m^2" | "1" |
+ bils_corrected_global  | "bils precip snow flat" | "" | "bils[d=1,x=@ave,y=@ave]-flat[d=4,x=@ave,y=@ave]-(precip[d=2,x=@ave,y=@ave]-snow[d=3,x=@ave,y=@ave])*2.5008E+6-snow[d=3,x=@ave,y=@ave]*2.8345E+6" | "Corrected energy budget at surface" | "W/m^2" | "1" |
+ vitu_qbo               | "vitu"                  | "" | "vitu[y=-5:5@ave,x=-180:180@ave,z=5000,d=1]"                | "vitu at 5000 Pa for QBO +5deg/-5deg"            | "m/s"    | "1"
+ od550aer_tropo_forcing | "od550aer"              | "" | "od550aer[d=1]"           | "Total aerosol optical depth at 550nm"   | "-"         | "aire[d=1]"   
+ od550aer_strat_forcing | "od550_STRAT"           | "" | "od550_STRAT[d=1]"        | "Aerosol optical depth at 550nm"         | "-"         | "aire[d=1]"   
+ od550lt1aer_forcing    | "od550lt1aer"           | "" | "od550lt1aer[d=1]"        | "Fine mode optical depth"                | "-"         | "aire[d=1]"   
+ tro3_strato_forcing_DU | "colO3_strat"           | "" | "colO3_strat[x=@ave,y=@ave,d=1]"     | "colonne ozone strato" | "DU" | ""
+ tro3_tropo_forcing_DU  | "colO3_trop"            | "" | "colO3_trop[x=@ave,y=@ave,d=1]"      | "colonne ozone trop"   | "DU" | ""
+ solaire_forcing        | "solaire"               | "" | "solaire[d=1]"   | "Constante solaire"      | "W/m^2" | "1"
+ rsun1_forcing          | "rsun1"                 | "" | "rsun1[d=1]"     | "Fraction bande 1"       | "-"     | "1"
+ co2_ppm_forcing        | "co2_ppm"               | "" | "co2_ppm[d=1]"   | "Concentration du CO2"   | "ppm"   | "1"
+ CH4_ppb_forcing        | "CH4_ppb"               | "" | "CH4_ppb[d=1]"   | "Concentration du CH4"   | "ppb"   | "1"
+ N2O_ppb_forcing        | "N2O_ppb"               | "" | "N2O_ppb[d=1]"   | "Concentration du N2O"   | "ppb"   | "1"
+ CFC11_ppt_forcing      | "CFC11_ppt"             | "" | "CFC11_ppt[d=1]" | "Concentration du CFC11" | "ppt"   | "1"
+ CFC12_ppt_forcing      | "CFC12_ppt"             | "" | "CFC12_ppt[d=1]" | "Concentration du CFC12" | "ppt"   | "1"
+## R_ecc_forcing      | "R_ecc"                  | "" | "R_ecc[d=1]"   | "Excentricite"      | "-"     | "1"
+## R_peri_forcing     | "R_peri"                 | "" | "R_peri[d=1]"  | "Equinoxe"          | "-"     | "1"
+## R_incl_forcing     | "R_incl"                 | "" | "R_incl[d=1]"  | "Inclinaison"       | "deg"   | "1"
+#-----------------------------------------------------------------------------------------------------------------
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA1.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA1.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA1.cfg	(revision 5899)
@@ -0,0 +1,97 @@
+1#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by '#' character
+#   - Separator between fields is '|' character
+#   - Operations must use the ferret syntax
+#   - Each variable must be referenced to its dataset ie var[d=x]
+#   - files patterns, operations,title,units must be enclosed with character '"'
+#   - fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=6D80FF
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+ sosstsst_global_prio | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"                                         | "Sea Surface Temperature (GLOBAL)" | "degC"  | "mask[k=1,d=2]*area[d=2]"
+ sosaline_global  | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"                                         | "Sea Surface Salinity (GLOBAL)"    | "PSU"   | "mask[k=1,d=2]*area[d=2]"
+ sossheig_global  | "zos"      | eORCA1.2_grid.nc | "(zos[d=1])"                                         | "Sea Surface Heigh (GLOBAL)"       | "m"     | "mask[k=1,d=2]*area[d=2]"
+ sohefldo_global  | "nshfls rsntds" | eORCA1.2_grid.nc | "(nshfls[d=1]+rsntds[d=2])"                     | "Net Downward Heat Flux (GLOBAL)"  | "W/m^2" | "mask[k=1,d=3]*area[d=3]"
+ somxl010_north   | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1])" | "Mixed layer depth (NORTH)"      | "m"     | "(if lat[d=2] gt 0 then mask[k=1,d=2]*area[d=2])"
+ somxl010_south   | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1])" | "Mixed layer depth (SOUTH)"      | "m"     | "(if lat[d=2] lt 0 then mask[k=1,d=2]*area[d=2])"
+ somxl010_SubpolarNorthAtl   | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1,i=262:300,j=260:281])"       | "Mixed layer depth (Subpolar North Atlantic, annual Max)" | "m"     | "mask[k=1,d=2,i=262:300,j=260:281]*area[d=2,i=262:300,j=260:281]" | "@SMX:12" 
+ somxl010_Labrador   | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1,i=228:248,j=265:288])"               | "Mixed layer depth (Labrador Sea, Annual Max)"            | "m"     | "mask[k=1,d=2,i=228:248,j=265:288]*area[d=2,i=228:248,j=265:288]" | "@SMX:12" 
+ somxl010_Barents    | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1,i=272:295,j=313:330])"               | "Mixed layer depth (Barents Sea, Annual Max)"             | "m"     | "mask[k=1,d=2,i=272:295,j=313:330]*area[d=2,i=272:295,j=313:330]" | "@SMX:12" 
+ somxl010_Irminger   | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1,i=248:268,j=272:285])"               | "Mixed layer depth (Irminger Sea, Annual Max)"            | "m"     | "mask[k=1,d=2,i=248:268,j=272:285]*area[d=2,i=248:268,j=272:285]" | "@SMX:12" 
+ somxl010_NordicSeas | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1,i=262:300,j=284:313])"               | "Mixed layer depth (Nordic Seas, Annual Max)"             | "m"     | "mask[k=1,d=2,i=262:300,j=284:313]*area[d=2,i=262:300,j=284:313]" | "@SMX:12" 
+ somxl010_Rockall    | "mldr10_1" | eORCA1.2_grid.nc | "(mldr10_1[d=1,i=262:300,j=284:313])"               | "Mixed layer depth (Rockall, Annual Max)"                 | "m"     | "mask[k=1,d=2,i=262:300,j=284:313]*area[d=2,i=262:300,j=284:313]" | "@SMX:12"
+ friver_global    | "friver"   | eORCA1.2_grid.nc | "(friver[d=1])"                                      | "River input" | "kg/s"  | "mask[k=1,d=2]*area[d=2]"
+ friver_int       | "friver"   | eORCA1.2_grid.nc | "(friver[d=1]*mask[k=1,d=2]*area[d=2]*1E-9)"                                                                                        | "River input"             | "Sv"  | "2"
+ friver_coastal   | "friver"   | eORCA1.2_grid.nc | "(if missing(maskdraw[k=1,d=2],0.1) ne missing(maskdraw[i=@sbx,j=@sbx,k=1,d=2],0.1) then mask[d=2,k=1]*area[d=2]*friver[d=1]*1E-9)" | "Coastal river input"     | "Sv"  | "2"
+ friver_noncoastal| "friver"   | eORCA1.2_grid.nc | "(if missing(maskdraw[k=1,d=2],0.1) eq missing(maskdraw[i=@sbx,j=@sbx,k=1,d=2],0.1) then mask[d=2,k=1]*area[d=2]*friver[d=1]*1E-9)" | "Non coastal river input" | "Sv"  | "2"
+ friver_background| "friver"   | eORCA1.2_grid.nc | "(mask[k=1,d=2]*area[d=2]*friver[d=1,i=140,j=190]*1E-9)"                                                                            | "Runoff correction (conservation)" | "Sv"  | "2"
+ sosstsst_70N_90N | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (70N-90N)" | "degC"  | "(if lat[d=2] ge  70                     then mask[k=1,d=2]*area[d=2])"
+ sosstsst_50N_70N | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (50N-70N)" | "degC"  | "(if lat[d=2] ge  50 and lat[d=2] le  70 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_30N_50N | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (30N-50N)" | "degC"  | "(if lat[d=2] ge  30 and lat[d=2] le  50 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_10N_30N | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (10N-30N)" | "degC"  | "(if lat[d=2] ge  10 and lat[d=2] le  30 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_10S_10N | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (10S-10N)" | "degC"  | "(if lat[d=2] ge -10 and lat[d=2] le  10 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_30S_10S | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (30S-10S)" | "degC"  | "(if lat[d=2] ge -30 and lat[d=2] le -10 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_50S_30S | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (50S-30S)" | "degC"  | "(if lat[d=2] ge -50 and lat[d=2] le -30 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_70S_50S | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (70S-50S)" | "degC"  | "(if                     lat[d=2] le -50 then mask[k=1,d=2]*area[d=2])"
+ sosstsst_50S_50N_prio | "tos"      | eORCA1.2_grid.nc | "(tos[d=1])"   | "Sea Surface Temperature (50S-50N)" | "degC"  | "(if lat[d=2] ge -50 and lat[d=2] le  50 then mask[k=1,d=2]*area[d=2])"
+ sosaline_70N_90N | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (70N-90N)"    | "PSU"   | "(if lat[d=2] ge  70                     then mask[k=1,d=2]*area[d=2])"
+ sosaline_50N_70N | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (50N-70N)"    | "PSU"   | "(if lat[d=2] ge  50 and lat[d=2] le  70 then mask[k=1,d=2]*area[d=2])"
+ sosaline_30N_50N | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (30N-50N)"    | "PSU"   | "(if lat[d=2] ge  30 and lat[d=2] le  50 then mask[k=1,d=2]*area[d=2])"
+ sosaline_10N_30N | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (10N-30N)"    | "PSU"   | "(if lat[d=2] ge  10 and lat[d=2] le  30 then mask[k=1,d=2]*area[d=2])"
+ sosaline_10S_10N | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (10S-10N)"    | "PSU"   | "(if lat[d=2] ge -10 and lat[d=2] le  10 then mask[k=1,d=2]*area[d=2])"
+ sosaline_30S_10S | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (30S-10S)"    | "PSU"   | "(if lat[d=2] ge -30 and lat[d=2] le -10 then mask[k=1,d=2]*area[d=2])"
+ sosaline_50S_30S | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (50S-30S)"    | "PSU"   | "(if lat[d=2] ge -50 and lat[d=2] le -30 then mask[k=1,d=2]*area[d=2])"
+ sosaline_70S_50S | "sos"      | eORCA1.2_grid.nc | "(sos[d=1])"   | "Sea Surface Salinity (70S-50S)"    | "PSU"   | "(if                     lat[d=2] le -50 then mask[k=1,d=2]*area[d=2])"
+ hc300_global     | "hc300"    | eORCA1.2_grid.nc | "(hc300[d=1])" | "Heat content 0-300m (GLOBAL)"      | "J/m2"  | "mask[k=1,d=2]*area[d=2]"
+ wfo_global       | "wfo"      | eORCA1.2_grid.nc | "(wfo[d=1])"   | "Water flux (GLOBAL)"               | "kg/m2/s"  | "mask[k=1,d=2]*area[d=2]"
+ nadw_ocean_prio  | "msftyz_atl" |       ""         | "(msftyz_atl[z=500:6000@max,J=212:266@max,d=1])"       | "North Atlantic Deep Water"        | "Sv"    | "1"
+ npdw_ocean       | "msftyz_ind" |       ""         | "(msftyz_ind[z=500:6000@max,J=212:266@max,d=1])"       | "North Pacific Deep Water"         | "Sv"    | "1"
+ aabw_ocean       | "msftyz_glo" |       ""         | "(msftyz_glo[z=2000:6000@max,J=115:274@max,d=1])"      | "Antarctic Bottom Water"           | "Sv"    | "1"
+ deacon_ocean     | "msftyz_glo" |       ""         | "(msftyz_glo[z=2000:6000@max,J=31:140@max,d=1])"       | "Deacon Cell"                      | "Sv"    | "1"
+ thetao_0100m     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=24])" | "Sea Water Temperature @100m"  | "degC" |  "mask[k=24,d=2]*area[d=2]" 
+ thetao_0200m     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=31])" | "Sea Water Temperature @200m"  | "degC" |  "mask[k=31,d=2]*area[d=2]" 
+ thetao_0500m     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=40])" | "Sea Water Temperature @500m"  | "degC" |  "mask[k=40,d=2]*area[d=2]" 
+ thetao_1000m_prio     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=47])" | "Sea Water Temperature @1000m" | "degC" |  "mask[k=47,d=2]*area[d=2]" 
+ thetao_2000m     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=54])" | "Sea Water temperature @2000m" | "degC" |  "mask[k=54,d=2]*area[d=2]" 
+ thetao_3000m     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=60])" | "Sea Water Temperature @3000m" | "degC" |  "mask[k=60,d=2]*area[d=2]" 
+ thetao_4000m     | "thetao"   | eORCA1.2_grid.nc | "(thetao[d=1,k=66])" | "Sea Water Temperature @4000m" | "degC" |  "mask[k=66,d=2]*area[d=2]"
+ so_0100m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=24])"     | "Sea Water Salinity @100m"     | "PSU"  |  "mask[k=24,d=2]*area[d=2]" 
+ so_0200m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=31])"     | "Sea Water Salinity @200m"     | "PSU"  |  "mask[k=31,d=2]*area[d=2]" 
+ so_0500m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=40])"     | "Sea Water Salinity @500m"     | "PSU"  |  "mask[k=40,d=2]*area[d=2]" 
+ so_1000m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=47])"     | "Sea Water Salinity @1000m"    | "PSU"  |  "mask[k=47,d=2]*area[d=2]" 
+ so_2000m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=54])"     | "Sea Water Salinity @2000m"    | "PSU"  |  "mask[k=54,d=2]*area[d=2]" 
+ so_3000m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=60])"     | "Sea Water Salinity @3000m"    | "PSU"  |  "mask[k=60,d=2]*area[d=2]" 
+ so_4000m         | "so"       | eORCA1.2_grid.nc | "(so[d=1,k=66])"     | "Sea Water Salinity @4000m"    | "PSU"  |  "mask[k=66,d=2]*area[d=2]"
+ hc_ocean         | "scvoltot sctemtot" |       ""   | "(scvoltot[d=1]*sctemtot[d=2]*1026.*3991.86795711963/5.1011127E+14)"     | "ocean heat content"                 | "J/m2"    | "1"
+ hc_ice           | "ibgheat_tot"       |       ""   | "ibgheat_tot[d=1]*1.e20/5.1011127E+14"                                   | "ocean sea ice heat content"         | "J/m2"    | "1"
+ hc_snow          | "sbgheat_tot"       |       ""   | "sbgheat_tot[d=1]*1.e20/5.1011127E+14"                                   | "ocean snow on sea ice heat content" | "J/m2"    | "1"
+#-----------------------------------------------------------------------------------------------------------------
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA2.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA2.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA2.cfg	(revision 5899)
@@ -0,0 +1,86 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by '#' character
+#   - Separator between fields is '|' character
+#   - Operations must use the ferret syntax
+#   - Each variable must be referenced to its dataset ie var[D=x]
+#   - files patterns, operations,title,units must be enclosed with character '"'
+#   - fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=6D80FF
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+ sosstsst_global_prio | "tos"      | ORCA2.3_grid.nc | "(tos[d=1])"                                       | "Sea Surface Temperature (GLOBAL)" | "degC"    | "mask[K=1,D=2]*area[D=2]"
+ sosstsst_global     | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])"                                       | "Sea Surface Temperature (Global)" | "degC"    | "mask[K=1,D=2]*area[D=2]"
+ sosaline_global     | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])"                                       | "Sea Surface Salinity (Global)"    | "PSU"     | "mask[K=1,D=2]*area[D=2]"
+ sossheig_global     | "zos"       | ORCA2.3_grid.nc | "(zos[D=1])"                                       | "Sea Surface Heigh (Global)"       | "m"       | "mask[K=1,D=2]*area[D=2]"
+ friver_global       | "friver"    | ORCA2.3_grid.nc | "(friver[D=1])"                                    | "River input (Global)"             | "kg/m2/s" | "mask[K=1,D=2]*area[D=2]"
+ friver_int          | "friver"    | ORCA2.3_grid.nc | "(friver[d=1]*mask[k=1,d=2]*area[d=2]*1E-9)"                                                                                    | "River input"             | "Sv"  | "2"
+ friver_coastal      | "friver"    | ORCA2.3_grid.nc | "(if missing(maskdraw[k=1,d=2],0.1) ne missing(maskdraw[i=@sbx,j=@sbx,k=1,d=2],0.1) then mask[k=1]*area[d=2]*friver[d=1]*1E-9)" | "Coastal river input"     | "Sv"  | "2"
+ friver_noncoastal   | "friver"    | ORCA2.3_grid.nc | "(if missing(maskdraw[k=1,d=2],0.1) eq missing(maskdraw[i=@sbx,j=@sbx,k=1,d=2],0.1) then mask[k=1]*area[d=2]*friver[d=1]*1E-9)" | "Non coastal river input" | "Sv"  | "2"
+ hc300_global        | "hc300"     | ORCA2.3_grid.nc | "(hc300[D=1])"                                     | "Heat content 300 m (Global)"      | "W"       | "mask[K=1,D=2]*area[D=2]"
+ sohefldo_global     | "sohefldo"  | ORCA2.3_grid.nc | "(nshfls[D=1]+rsntds[D=1])"                        | "Net Downward Heat Flux (Global)"  | "W/m^2"   | "mask[K=1,D=2]*area[D=2]"
+ wfo_global       | "wfo"      | ORCA2.3_grid.nc | "(wfo[D=1])"   | "Water flux (GLOBAL)"               | "kg/m2/s"  | "mask[K=1,D=2]*area[D=2]"
+ nadw_ocean_prio          | "msftyz_atl"     |       ""        | "(msftyz_atl[Z=500:6000@MAX,J=90:120@MAX,D=1])"      | "North Atlantic Deep Water"        | "Sv"      | "1"
+ npdw_ocean          | "msftyz_ind"     |       ""        | "(msftyz_ind[Z=500:6000@MAX,J=90:120@MAX,D=1])"      | "North Pacific Deep Water"         | "Sv"      | "1"
+ aabw_ocean          | "msftyz_glo"     |       ""        | "(msftyz_glo[Z=2000:6000@MAX,J=37:118@MAX,D=1])"     | "Antarctic Bottom Water"           | "Sv"      | "1"
+ deacon_ocean        | "msftyz_glo"     |       ""        | "(msftyz_glo[Z=2000:6000@MAX,J=2:50@MAX,D=1])"       | "Deacon Cell"                      | "Sv"      | "1"
+ somxl010_north      | "mldr10_1"  | ORCA2.3_grid.nc | "(mldr10_1[D=1])" | "Mixed layer depth (North)"    | "m"     | "(IF lat[D=2] GT 0 THEN mask[K=1,D=2]*area[D=2])"
+ somxl010_south      | "mldr10_1"  | ORCA2.3_grid.nc | "(mldr10_1[D=1])" | "Mixed layer depth (South)"    | "m"     | "(IF lat[D=2] LT 0 THEN mask[K=1,D=2]*area[D=2])"
+ temp_500m_global    | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=20])"                               | "Temperature at 500m (Global)"     | "degC"    | "mask[K=20,D=2]*area[D=2]"
+ thetao_1000m_prio   | "thetao"    | ORCA2.3_grid.nc | "(thetao[d=1,k=22])"                               | "Sea Water Temperature @1000m"     | "degC"    |  "mask[k=22,d=2]*area[d=2]" 
+ temp_1000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=22])"                               | "Temperature at 1000m (Global)"    | "degC"    | "mask[K=22,D=2]*area[D=2]"
+ temp_2000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=24:25@AVE])"                        | "Temperature at 2000m (Global)"    | "degC"    | "mask[K=25,D=2]*area[D=2]"
+ temp_3000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=26:27@AVE])"                        | "Temperature at 2000m (Global)"    | "degC"    | "mask[K=27,D=2]*area[D=2]"
+ temp_4000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=28:29@AVE])"                        | "Temperature at 4000m (Global)"    | "degC"    | "mask[K=29,D=2]*area[D=2]"
+ temp_5000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=30])"                               | "Temperature at 5000m (Global)"    | "degC"    | "mask[K=30,D=2]*area[D=2]"
+ salini_500m_global  | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=20])"                                   | "Salinity at 500m (Global)"        | "PSU"     | "mask[K=20,D=2]*area[D=2]"
+ salini_1000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=23])"                                   | "Salinity at 1000m (Global)"       | "PSU"     | "mask[K=23,D=2]*area[D=2]"
+ salini_2000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=24:25@AVE])"                            | "Salinity at 2000m (Global)"       | "PSU"     | "mask[K=25,D=2]*area[D=2]"
+ salini_3000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=26:27@AVE])"                            | "Salinity at 2000m (Global)"       | "PSU"     | "mask[K=27,D=2]*area[D=2]"
+ salini_4000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=28:29@AVE])"                            | "Salinity at 4000m (Global)"       | "PSU"     | "mask[K=29,D=2]*area[D=2]"
+ salini_5000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=30])"                                   | "Salinity at 5000m (Global)"       | "PSU"     | "mask[K=30,D=2]*area[D=2]"
+ sosstsst_70N_90N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (70N-90N)" | "degC"  | "(IF lat[D=2] GE  70                     THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_50N_70N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (50N-70N)" | "degC"  | "(IF lat[D=2] GE  50 AND lat[D=2] LE  70 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_30N_50N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (30N-50N)" | "degC"  | "(IF lat[D=2] GE  30 AND lat[D=2] LE  50 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_10N_30N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (10N-30N)" | "degC"  | "(IF lat[D=2] GE  10 AND lat[D=2] LE  30 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_50S_50N_prio | "tos"      | ORCA2.3_grid.nc | "(tos[D=1])"   | "Sea Surface Temperature (50S-50N)" | "degC"  | "(if lat[D=2] ge -50 and lat[D=2] le  50 then mask[K=1,D=2]*area[D=2])"
+ sosstsst_10S_10N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (10S-10N)" | "degC"  | "(IF lat[D=2] GE -10 AND lat[D=2] LE  10 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_30S_10S    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (30S-10S)" | "degC"  | "(IF lat[D=2] GE -30 AND lat[D=2] LE -10 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_50S_30S    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (50S-30S)" | "degC"  | "(IF lat[D=2] GE -50 AND lat[D=2] LE -30 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_70S_50S    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (70S-50S)" | "degC"  | "(IF                     lat[D=2] LE -50 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_70N_90N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (70N-90N)"    | "PSU"   | "(IF lat[D=2] GE  70                     THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_50N_70N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (50N-70N)"    | "PSU"   | "(IF lat[D=2] GE  50 AND lat[D=2] LE  70 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_30N_50N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (30N-50N)"    | "PSU"   | "(IF lat[D=2] GE  30 AND lat[D=2] LE  50 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_10N_30N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (10N-30N)"    | "PSU"   | "(IF lat[D=2] GE  10 AND lat[D=2] LE  30 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_10S_10N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (10S-10N)"    | "PSU"   | "(IF lat[D=2] GE -10 AND lat[D=2] LE  10 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_30S_10S    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (30S-10S)"    | "PSU"   | "(IF lat[D=2] GE -30 AND lat[D=2] LE -10 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_50S_30S    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (50S-30S)"    | "PSU"   | "(IF lat[D=2] GE -50 AND lat[D=2] LE -30 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_70S_50S    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (70S-50S)"    | "PSU"   | "(IF                     lat[D=2] LE -50 THEN mask[K=1,D=2]*area[D=2])"
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA2.cfg_ORIG
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA2.cfg_ORIG	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_opa9_ORCA2.cfg_ORIG	(revision 5899)
@@ -0,0 +1,83 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by '#' character
+#   - Separator between fields is '|' character
+#   - Operations must use the ferret syntax
+#   - Each variable must be referenced to its dataset ie var[D=x]
+#   - files patterns, operations,title,units must be enclosed with character '"'
+#   - fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=6D80FF
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+ sosstsst_global     | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])"                                       | "Sea Surface Temperature (Global)" | "degC"    | "mask[K=1,D=2]*area[D=2]"
+ sosaline_global     | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])"                                       | "Sea Surface Salinity (Global)"    | "PSU"     | "mask[K=1,D=2]*area[D=2]"
+ sossheig_global     | "zos"       | ORCA2.3_grid.nc | "(zos[D=1])"                                       | "Sea Surface Heigh (Global)"       | "m"       | "mask[K=1,D=2]*area[D=2]"
+ wfo_global          | "wfo"       | ORCA2.3_grid.nc | "(wfo[D=1])"                                       | "Total Water flux (Global, upward)"| "kg/m2/s" | "mask[K=1,D=2]*area[D=2]"
+ friver_global       | "friver"    | ORCA2.3_grid.nc | "(friver[D=1])"                                    | "River input (Global)"             | "kg/m2/s" | "mask[K=1,D=2]*area[D=2]"
+ friver_int          | "friver"    | ORCA2.3_grid.nc | "(friver[d=1]*mask[k=1,d=2]*area[d=2]*1E-9)"                                                                                    | "River input"             | "Sv"  | "2"
+ friver_coastal      | "friver"    | ORCA2.3_grid.nc | "(if missing(maskdraw[k=1,d=2],0.1) ne missing(maskdraw[i=@sbx,j=@sbx,k=1,d=2],0.1) then mask[k=1]*area[d=2]*friver[d=1]*1E-9)" | "Coastal river input"     | "Sv"  | "2"
+ friver_noncoastal   | "friver"    | ORCA2.3_grid.nc | "(if missing(maskdraw[k=1,d=2],0.1) eq missing(maskdraw[i=@sbx,j=@sbx,k=1,d=2],0.1) then mask[k=1]*area[d=2]*friver[d=1]*1E-9)" | "Non coastal river input" | "Sv"  | "2"
+ hc300_global        | "hc300"     | ORCA2.3_grid.nc | "(hc300[D=1])"                                     | "Heat content 300 m (Global)"      | "W"       | "mask[K=1,D=2]*area[D=2]"
+ sohefldo_global     | "sohefldo"  | ORCA2.3_grid.nc | "(nshfls[D=1]+rsntds[D=1])"                        | "Net Downward Heat Flux (Global)"  | "W/m^2"   | "mask[K=1,D=2]*area[D=2]"
+ nadw_ocean          | "msftyz_atl"     |       ""        | "(msftyz_atl[Z=500:6000@MAX,J=90:120@MAX,L=2,D=1])"      | "North Atlantic Deep Water"        | "Sv"      | "1"
+ npdw_ocean          | "msftyz_ind"     |       ""        | "(msftyz_ind[Z=500:6000@MAX,J=90:120@MAX,L=3,D=1])"      | "North Pacific Deep Water"         | "Sv"      | "1"
+ aabw_ocean          | "msftyz_glo"     |       ""        | "(msftyz_glo[Z=2000:6000@MAX,J=37:118@MAX,L=1,D=1])"     | "Antarctic Bottom Water"           | "Sv"      | "1"
+ deacon_ocean        | "msftyz_glo"     |       ""        | "(msftyz_glo[Z=2000:6000@MAX,J=2:50@MAX,L=1,D=1])"       | "Deacon Cell"                      | "Sv"      | "1"
+ somxl010_north      | "mldr10_1"  | ORCA2.3_grid.nc | "(mldr10_1[D=1])" | "Mixed layer depth (North)"    | "m"     | "(IF lat[D=2] GT 0 THEN mask[K=1,D=2]*area[D=2])"
+ somxl010_south      | "mldr10_1"  | ORCA2.3_grid.nc | "(mldr10_1[D=1])" | "Mixed layer depth (South)"    | "m"     | "(IF lat[D=2] LT 0 THEN mask[K=1,D=2]*area[D=2])"
+ temp_500m_global    | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=20])"                               | "Temperature at 500m (Global)"     | "degC"    | "mask[K=20,D=2]*area[D=2]"
+ temp_1000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=22])"                               | "Temperature at 1000m (Global)"    | "degC"    | "mask[K=22,D=2]*area[D=2]"
+ temp_2000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=24:25@AVE])"                        | "Temperature at 2000m (Global)"    | "degC"    | "mask[K=25,D=2]*area[D=2]"
+ temp_3000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=26:27@AVE])"                        | "Temperature at 2000m (Global)"    | "degC"    | "mask[K=27,D=2]*area[D=2]"
+ temp_4000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=28:29@AVE])"                        | "Temperature at 4000m (Global)"    | "degC"    | "mask[K=29,D=2]*area[D=2]"
+ temp_5000m_global   | "thetao"    | ORCA2.3_grid.nc | "(thetao[D=1,K=30])"                               | "Temperature at 5000m (Global)"    | "degC"    | "mask[K=30,D=2]*area[D=2]"
+ salini_500m_global  | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=20])"                                   | "Salinity at 500m (Global)"        | "PSU"     | "mask[K=20,D=2]*area[D=2]"
+ salini_1000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=23])"                                   | "Salinity at 1000m (Global)"       | "PSU"     | "mask[K=23,D=2]*area[D=2]"
+ salini_2000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=24:25@AVE])"                            | "Salinity at 2000m (Global)"       | "PSU"     | "mask[K=25,D=2]*area[D=2]"
+ salini_3000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=26:27@AVE])"                            | "Salinity at 2000m (Global)"       | "PSU"     | "mask[K=27,D=2]*area[D=2]"
+ salini_4000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=28:29@AVE])"                            | "Salinity at 4000m (Global)"       | "PSU"     | "mask[K=29,D=2]*area[D=2]"
+ salini_5000m_global | "so"        | ORCA2.3_grid.nc | "(so[D=1,K=30])"                                   | "Salinity at 5000m (Global)"       | "PSU"     | "mask[K=30,D=2]*area[D=2]"
+ sosstsst_70N_90N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (70N-90N)" | "degC"  | "(IF lat[D=2] GE  70                     THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_50N_70N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (50N-70N)" | "degC"  | "(IF lat[D=2] GE  50 AND lat[D=2] LE  70 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_30N_50N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (30N-50N)" | "degC"  | "(IF lat[D=2] GE  30 AND lat[D=2] LE  50 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_10N_30N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (10N-30N)" | "degC"  | "(IF lat[D=2] GE  10 AND lat[D=2] LE  30 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_10S_10N    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (10S-10N)" | "degC"  | "(IF lat[D=2] GE -10 AND lat[D=2] LE  10 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_30S_10S    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (30S-10S)" | "degC"  | "(IF lat[D=2] GE -30 AND lat[D=2] LE -10 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_50S_30S    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (50S-30S)" | "degC"  | "(IF lat[D=2] GE -50 AND lat[D=2] LE -30 THEN mask[K=1,D=2]*area[D=2])"
+ sosstsst_70S_50S    | "tos"       | ORCA2.3_grid.nc | "(tos[D=1])" | "Sea Surface Temperature (70S-50S)" | "degC"  | "(IF                     lat[D=2] LE -50 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_70N_90N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (70N-90N)"    | "PSU"   | "(IF lat[D=2] GE  70                     THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_50N_70N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (50N-70N)"    | "PSU"   | "(IF lat[D=2] GE  50 AND lat[D=2] LE  70 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_30N_50N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (30N-50N)"    | "PSU"   | "(IF lat[D=2] GE  30 AND lat[D=2] LE  50 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_10N_30N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (10N-30N)"    | "PSU"   | "(IF lat[D=2] GE  10 AND lat[D=2] LE  30 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_10S_10N    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (10S-10N)"    | "PSU"   | "(IF lat[D=2] GE -10 AND lat[D=2] LE  10 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_30S_10S    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (30S-10S)"    | "PSU"   | "(IF lat[D=2] GE -30 AND lat[D=2] LE -10 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_50S_30S    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (50S-30S)"    | "PSU"   | "(IF lat[D=2] GE -50 AND lat[D=2] LE -30 THEN mask[K=1,D=2]*area[D=2])"
+ sosaline_70S_50S    | "sos"       | ORCA2.3_grid.nc | "(sos[D=1])" | "Sea Surface Salinity (70S-50S)"    | "PSU"   | "(IF                     lat[D=2] LE -50 THEN mask[K=1,D=2]*area[D=2])"
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_orchidee.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_orchidee.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_orchidee.cfg	(revision 5899)
@@ -0,0 +1,66 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.2 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by # character.
+#   - Separator between fields is | character.
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset.
+#     They must be enclosed by parenthesis if more than one variable is used.
+#   - files patterns,files additionnal,operations,title,units must be enclosed with character ". 
+#     Use "" if empty.
+#   - Fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=E7FFAB
+smooth=12
+#------------------------------------------------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#------------------------------------------------------------------------------------------------------------------------------------------------------
+delta_water_stock | "nobiofrac DelSoilMoist_daily DelIntercept_daily DelSWE_daily delstock_routing_daily" |  "" | "((1-nobiofrac[d=1,l=2:100000])*DelSoilMoist_daily[d=2,l=2:100000] + DelIntercept_daily[d=3,l=2:100000] + DelSWE_daily[d=4,l=2:100000] + delstock_routing_daily[d=5,l=2:100000])" | "Change in total water stock (LANDS) " | "kg/day/m2 of land" | "Areas[d=2]*Contfrac[d=2]"
+water_budget_closure | "nobiofrac DelSoilMoist_daily DelIntercept_daily DelSWE_daily delstock_routing_daily rain snowf evap riverflow coastalflow" | "" | "(((1-nobiofrac[d=1,l=2:100000])*DelSoilMoist_daily[d=2,l=2:100000] + DelIntercept_daily[d=3,l=2:100000] + DelSWE_daily[d=4,l=2:100000] +  delstock_routing_daily[d=5,l=2:100000])*Areas[d=1]*Contfrac[d=1] -  ((rain[d=6,l=2:100000] + snowf[d=7,l=2:100000] - evap[d=8,l=2:100000])*Areas[d=1]*Contfrac[d=1]  - (riverflow[d=9,l=2:100000] + coastalflow[d=10,l=2:100000])*1000*86400 ))/(4*3.14*6370000*6370000*0.26)" | "Water budget closure (LANDS) " | "kg/day/m2 of land" | "2"
+twbr_lands       | "TWBR"             |  "" | "twbr[d=1,l=2:100000]*86400"       | "Hydrol water buget residu (LANDS)" | "kg/m^2/d" | "Areas[d=1]*Contfrac[d=1]"
+temp_sol_lands   | "temp_sol"         |  "" | "temp_sol[d=1]"                    | "TSOL (LANDS)"                      | "C"        | "Areas[d=1]*Contfrac[d=1]"
+fluxsens_lands   | "fluxsens"         |  "" | "fluxsens[d=1]"                    | "Sensible Flux (LANDS)"             | "W/m^2"    | "Areas[d=1]*Contfrac[d=1]"
+evap_lands       | "evap"             |  "" | "evap[d=1]"                        | "Evaporation (LANDS)"               | "mm/d"     | "Areas[d=1]*Contfrac[d=1]"
+evapnu_lands     | "evapnu"           |  "" | "evapnu[d=1]"                      | "Soil evaporation (LANDS)"          | "mm/d"     | "Areas[d=1]*Contfrac[d=1]"
+transpir_lands   | "transpir"         |  "" | "transpir[d=1,k=@sum]"             | "Transpiration (sum over all PFT, LANDS)" | "mm/d" | "Areas[d=1]*Contfrac[d=1]"
+subli_lands      | "subli"            |  "" | "subli[d=1]"                       | "Sublimation (LANDS)"               | "mm/d"     | "Areas[d=1]*Contfrac[d=1]"
+snow_swe_lands   | "frac_snow snow"   |  "" | "snow[d=2]"                        | "Snow Mass (LANDS)"                 | "kg/m^2"   | "Areas[d=2]*Contfrac[d=2]"
+snownobio_lands  | "snownobio"        |  "" | "snownobio[d=1]"                   | "Snow Other Surfaces (LANDS)"       | "kg/m^2"   | "Areas[d=1]*Contfrac[d=1]"
+snowf_lands      | "snowf"            |  "" | "snowf[d=1]"                       | "Snowfall (LANDS)"                  | "mm/d"     | "Areas[d=1]*Contfrac[d=1]"
+precip_lands     | "rain snowf"       |  "" | "rain[d=1] + snowf[d=2]"           | "Total precipitaion (LANDS)"        | "mm/d"     | "Areas[d=1]*Contfrac[d=1]"
+runoff_lands     | "runoff"           |  "" | "runoff[d=1]"                      | "Surface runoff  (LANDS)"           | "kg/m^2"   | "Areas[d=1]*Contfrac[d=1]"
+drainage_lands   | "drainage"         |  "" | "drainage[d=1]"                    | "Drainage  (LANDS)"                 | "kg/m^2"   | "Areas[d=1]*Contfrac[d=1]"
+humidity_lands   | "mrso"             |  "" | "mrso[d=1]"                        | "Total Soil Moisture  (LANDS)"      | "kg/m^2"   | "Areas[d=1]*Contfrac[d=1]"
+surface_humidity_lands | "mrsos"      |  "" | "mrsos[d=1]"                       | "Top 10cm soil moisture  (LANDS)"   | "kg/m^2"   | "Areas[d=1]*Contfrac[d=1]"
+albedo_lands     | "alb_vis alb_nir"  |  "" | "((alb_vis[d=1]+alb_nir[d=2])*0.5)"| "Mean Albedo (LANDS)"               | "1"        | "Areas[d=1]*Contfrac[d=1]"
+lai_lands        | "LAImean"          |  "" | "LAImean[d=1]"                     | "LAI (mean excluding PFT=1) (LANDS)"| "1"        | "Areas[d=1]*Contfrac[d=1]"
+nee_lands        | "nee maxvegetfrac" |  "" | "(nee[d=1]*365*86400*maxvegetfrac[d=2]*Areas[d=1]*Contfrac[d=1]/1e15)"   | "Net Ecosystem Exchange" | "PgC/yr" | "2"
+maxvegetagri_forcing | "maxvegetfrac" |  "" | "maxvegetfrac[d=1,K=12:13@sum]"    | "veget_max fraction of agriculture [sum of pft=12,13] "| "1"  | "Areas[d=1]*Contfrac[d=1]"
+maxvegetbare_forcing | "maxvegetfrac" |  "" | "maxvegetfrac[d=1,K=1]"            | "veget_max fraction on bare soil [pft=1] "             | "1"  | "Areas[d=1]*Contfrac[d=1]"
+vegetn_lands     | "vegetfrac"        |  "" | "vegetfrac[d=1,K=2:9@sum]"         | "veget trees[sum of pft=2:9] (LANDS)"                  | "1"  | "Areas[d=1]*Contfrac[d=1]"
+vegetg_lands     | "vegetfrac"        |  "" | "vegetfrac[d=1,K=10:11@sum]+vegetfrac[d=1,K=14:15@sum]"       | "veget natural grasses[sum of pft=10,11,14,15] (LANDS)"      | "1"  | "Areas[d=1]*Contfrac[d=1]"
+vegeta_lands     | "vegetfrac"        |  "" | "vegetfrac[d=1,K=12:13@sum]"       | "veget agriculture [sum of pft=12,13] (LANDS)"         | "1"  | "Areas[d=1]*Contfrac[d=1]"
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_pisces_ORCA1.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_pisces_ORCA1.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_pisces_ORCA1.cfg	(revision 5899)
@@ -0,0 +1,51 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2011/09/12 12:17:53 $
+# $Name: ATLAS_672_1_1 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by # character.
+#   - Separator between fields is | character.
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset.
+#     They must be enclosed by parenthesis if more than one variable is used.
+#   - files patterns,files additionnal,operations,title,units must be enclosed with character ". 
+#     Use "" if empty.
+#   - Fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=D0F8E0
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal  | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+ no3_global     | "pno3tot"  |       ""   | "pno3tot[d=1]"  | "global mean nitrogen concentration"                  | "umolN"    | "1"
+ po4_global     | "ppo4tot"  |       ""   | "ppo4tot[d=1]"  | "global mean phosphorus concentration"                | "umolP"    | "1"
+ sil_global     | "psiltot"  |       ""   | "psiltot[d=1]"  | "global mean silicate concentration"                  | "umolC"    | "1"
+ fer_global     | "pfertot"  |       ""   | "pfertot[d=1]"  | "global mean iron concentration"                      | "nmolFe"   | "1"
+ alk_global     | "palktot"  |       ""   | "palktot[d=1]"  | "global mean alkalinity concentration"                | "umolC"    | "1"
+ cflx_global    | "tcflx"    |       ""   | "tcflx[d=1]"    | "total flux of Carbon out of the ocean"               | "PgC/yr"   | "1"
+ epc_global     | "tcexp"    |       ""   | "tcexp[d=1]"    | "total flux of Carbon export at 100m"                 | "PgC/yr"   | "1"
+ tintpp_global  | "tintpp"   |       ""   | "tintpp[d=1]"   | "global total integrated primary production"          | "PgC/yr"   | "1"
+ tdenit_global  | "tdenit"   |       ""   | "tdenit[d=1]"   | "Total denitrification"                               | "TgN/yr"   | "1"
+ tnfix_global   | "tnfix"    |       ""   | "tnfix[d=1]"    | "global total nitrogen fixation"                      | "TgN/yr"   | "1"
+#-----------------------------------------------------------------------------------------------------------------
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_pisces_ORCA2.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_pisces_ORCA2.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_pisces_ORCA2.cfg	(revision 5899)
@@ -0,0 +1,49 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2011/09/12 12:17:53 $
+# $Name: ATLAS_672_1_1 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by # character.
+#   - Separator between fields is | character.
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset.
+#     They must be enclosed by parenthesis if more than one variable is used.
+#   - files patterns,files additionnal,operations,title,units must be enclosed with character ". 
+#     Use "" if empty.
+#   - Fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=D0F8E0
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal  | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+ no3_global  | "NO3"      | "ORCA2.3_grid.nc"  | "(NO3[d=1,k=1])"               | "Nitrate Concentration at surface"      | "mmol/m3"    | "mask[d=2,k=1]*area[d=2]"
+ dic_global  | "DIC"      | "ORCA2.3_grid.nc"  | "(DIC[d=1,k=1])"               | "DIC Concentration at surface"          | "mmol/m3"    | "mask[d=2,k=1]*area[d=2]"
+ alk_global  | "Alkalini" | "ORCA2.3_grid.nc"  | "(Alkalini[d=1,k=1])"          | "Alkalinity Concentration  at surface"  | "mmol/m3"    | "mask[d=2,k=1]*area[d=2]"
+ o2_global   | "O2"       | "ORCA2.3_grid.nc"  | "(O2[d=1,k=1])"                | "Oxygen Concentration at surface"       | "mmol/m3"    | "mask[d=2,k=1]*area[d=2]"
+ si_global   | "Si"       | "ORCA2.3_grid.nc"  | "(Si[d=1,k=1])"                | "Silicate Concentration at surface"     | "mmol/m3"    | "mask[d=2,k=1]*area[d=2]"
+ po4_global  | "PO4"      | "ORCA2.3_grid.nc"  | "(PO4[d=1,k=1])"               | "Phosphorus Concentration  at surface"  | "mmol/m3"    | "mask[d=2,k=1]*area[d=2]"
+ cflx_global | "Cflx"     | "ORCA2.3_grid.nc"  | "(Cflx[d=1]*3600*24*365*12)"   | "Ocean carbon flux (GLOBAL)"            | "gC/m2/yr"   | "mask[k=1,d=2]*area[d=2]"
+ epc_global  | "EPC100"   | "ORCA2.3_grid.nc"  | "(EPC100[d=1]*3600*24*365*12)" | "Carbon export at 100m (GLOBAL)"        | "gC/m2/yr"   | "mask[k=1,d=2]*area[d=2]"
+#-----------------------------------------------------------------------------------------------------------------
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_si3_ORCA1.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_si3_ORCA1.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_si3_ORCA1.cfg	(revision 5899)
@@ -0,0 +1,67 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by '#' character
+#   - Separator between fields is '|' character
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset
+#   - files patterns, operations,title,units must be enclosed with character '"'
+#   - fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=D4E3E6
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+# Commented until siconc is fixes in icemod.nc
+# siconc_north    | "siconc"  | eORCA1.1_grid.nc | "(siconc[d=1])"   | "Ice Fraction (NORTH)"            | "-"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+# siconc_south    | "siconc"  | eORCA1.1_grid.nc | "(siconc[d=1])"   | "Ice Fraction (SOUTH)"            | "-"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+# icesurf_north   | "siconc"  | eORCA1.1_grid.nc | "(if lat[d=2] ge 0 then siconc[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Surface (NORTH)"   | "m2"    | "2"
+# icesurf_south   | "siconc"  | eORCA1.1_grid.nc | "(if lat[d=2] le 0 then siconc[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Surface (SOUTH)"   | "m2"    | "2"
+# Temporary fix
+ siconc_north    | "sivolu sithic"  | eORCA1.2_grid.nc | "(sivolu[d=1]/sithic[d=2])"   | "Ice Fraction (NORTH)"            | "-"     | "if lat[d=3] ge 0 then mask[k=1,d=3]*area[d=3]" 
+ siconc_south    | "sivolu sithic"  | eORCA1.2_grid.nc | "(sivolu[d=1]/sithic[d=2])"   | "Ice Fraction (SOUTH)"            | "-"     | "if lat[d=3] le 0 then mask[k=1,d=3]*area[d=3]"
+ snowvol_north   | "snvolu"  | eORCA1.2_grid.nc | "(if lat[d=2] ge 0 then snvolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Snow Volume (NORTH)"   | "m3"    | "2"
+ snowvol_south   | "snvolu"  | eORCA1.2_grid.nc | "(if lat[d=2] le 0 then snvolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Snow Volume  (SOUTH)"    | "m3"    | "2"
+ icevol_north    | "sivolu"  | eORCA1.2_grid.nc | "(if lat[d=2] ge 0 then sivolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Volume (NORTH)"   | "m3"    | "2"
+ icevol_north_MAR    | "sivolu"  | eORCA1.2_grid.nc  | "(if lat[d=2] ge 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"MAR\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (NORTH) (March)"   | "m3" | "2" | "@FNR"
+ icevol_north_SEP_prio    | "sivolu"  | eORCA1.2_grid.nc  | "(if lat[d=2] ge 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"SEP\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (NORTH) (September)"   | "m3" | "2" | "@FNR"
+ icevol_south    | "sivolu"  | eORCA1.2_grid.nc | "(if lat[d=2] le 0 then sivolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Volume (SOUTH)"   | "m3"    | "2"  
+ icevol_south_MAR    | "sivolu"  | eORCA1.2_grid.nc  | "(if lat[d=2] le 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"MAR\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (SOUTH) (March)"   | "m3" | "2" | "@FNR"
+ icevol_south_SEP    | "sivolu"  | eORCA1.2_grid.nc  | "(if lat[d=2] le 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"SEP\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (SOUTH) (September)"   | "m3" | "2" | "@FNR"
+ iicethic_north  | "sithic"  | eORCA1.2_grid.nc | "(sithic[d=1])"   | "Ice thickness (NORTH)"           | "m"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ iicethic_south  | "sithic"  | eORCA1.2_grid.nc | "(sithic[d=1])"   | "Ice thickness (SOUTH)"           | "m"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+ isnowthi_north  | "snvolu"  | eORCA1.2_grid.nc | "(snvolu[d=1])"   | "Snow thickness (NORTH)"          | "m"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ isnowthi_south  | "snvolu"  | eORCA1.2_grid.nc | "(snvolu[d=1])"   | "Snow thickness (SOUTH)"          | "m"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+# Following fields should be weighted by siconc
+ sisali_north    | "sisali"  | eORCA1.2_grid.nc | "(sisali[d=1])"   | "Ice Salinity (NORTH)"            | "PSS"   | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ sisali_south    | "sisali"  | eORCA1.2_grid.nc | "(sisali[d=1])"   | "Ice Salinity (NORTH)"            | "PSS"   | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+ sitemp_north    | "sitemp"  | eORCA1.2_grid.nc | "(sitemp[d=1])"   | "Ice Temperature (NORTH)"         | "C"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ sitemp_south    | "sitemp"  | eORCA1.2_grid.nc | "(sitemp[d=1])"   | "Ice Temperature (SOUTH)"         | "C"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+ sistem_north    | "sistem"  | eORCA1.2_grid.nc | "(sistem[d=1])"   | "Ice Surface Temperature (NORTH)" | "C"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ sistem_south    | "sistem"  | eORCA1.2_grid.nc | "(sistem[d=1])"   | "Ice Surface Temperature (SOUTH)" | "C"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+#-----------------------------------------------------------------------------------------------------------------
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_si3_ORCA2.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_si3_ORCA2.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_si3_ORCA2.cfg	(revision 5899)
@@ -0,0 +1,67 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.1 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by '#' character
+#   - Separator between fields is '|' character
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset
+#   - files patterns, operations,title,units must be enclosed with character '"'
+#   - fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=D4E3E6
+smooth=12
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+# Commented until siconc is fixes in icemod.nc
+# siconc_north    | "siconc"  | eORCA1.1_grid.nc | "(siconc[d=1])"   | "Ice Fraction (NORTH)"            | "-"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+# siconc_south    | "siconc"  | eORCA1.1_grid.nc | "(siconc[d=1])"   | "Ice Fraction (SOUTH)"            | "-"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+# icesurf_north   | "siconc"  | eORCA1.1_grid.nc | "(if lat[d=2] ge 0 then siconc[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Surface (NORTH)"   | "m2"    | "2"
+# icesurf_south   | "siconc"  | eORCA1.1_grid.nc | "(if lat[d=2] le 0 then siconc[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Surface (SOUTH)"   | "m2"    | "2"
+# Temporary fix
+ siconc_north    | "sivolu sithic"  | ORCA2.3_grid.nc | "(sivolu[d=1]/sithic[d=2])"   | "Ice Fraction (NORTH)"            | "-"     | "if lat[d=3] ge 0 then mask[k=1,d=3]*area[d=3]" 
+ siconc_south    | "sivolu sithic"  | ORCA2.3_grid.nc | "(sivolu[d=1]/sithic[d=2])"   | "Ice Fraction (SOUTH)"            | "-"     | "if lat[d=3] le 0 then mask[k=1,d=3]*area[d=3]"
+ snowvol_north   | "snvolu"  | ORCA2.3_grid.nc | "(if lat[d=2] ge 0 then snvolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Snow Volume (NORTH)"   | "m3"    | "2"
+ snowvol_south   | "snvolu"  | ORCA2.3_grid.nc | "(if lat[d=2] le 0 then snvolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Snow Volume  (SOUTH)"    | "m3"    | "2"
+ icevol_north    | "sivolu"  | ORCA2.3_grid.nc | "(if lat[d=2] ge 0 then sivolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Volume (NORTH)"   | "m3"    | "2"
+ icevol_north_MAR    | "sivolu"  | ORCA2.3_grid.nc  | "(if lat[d=2] ge 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"MAR\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (NORTH) (March)"   | "m3" | "2" | "@FNR"
+ icevol_north_SEP_prio    | "sivolu"  | ORCA2.3_grid.nc  | "(if lat[d=2] ge 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"SEP\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (NORTH) (September)"   | "m3" | "2" | "@FNR"
+ icevol_south    | "sivolu"  | ORCA2.3_grid.nc | "(if lat[d=2] le 0 then sivolu[d=1]*mask[k=1,d=2]*area[d=2])"   | "Ice Volume (SOUTH)"   | "m3"    | "2"  
+ icevol_south_MAR    | "sivolu"  | ORCA2.3_grid.nc  | "(if lat[d=2] le 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"MAR\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (SOUTH) (March)"   | "m3" | "2" | "@FNR"
+ icevol_south_SEP    | "sivolu"  | ORCA2.3_grid.nc  | "(if lat[d=2] le 0 and STRINDEX(TAX_DATESTRING(t[gt=sivolu[d=1]], sivolu[i=1,j=1,k=1,d=1], \"month\"), \"SEP\") then sivolu[d=1]*area[d=2]*mask[k=1,d=2])" | "Ice volume (SOUTH) (September)"   | "m3" | "2" | "@FNR"
+ iicethic_north  | "sithic"  | ORCA2.3_grid.nc | "(sithic[d=1])"   | "Ice thickness (NORTH)"           | "m"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ iicethic_south  | "sithic"  | ORCA2.3_grid.nc | "(sithic[d=1])"   | "Ice thickness (SOUTH)"           | "m"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+ isnowthi_north  | "snvolu"  | ORCA2.3_grid.nc | "(snvolu[d=1])"   | "Snow thickness (NORTH)"          | "m"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ isnowthi_south  | "snvolu"  | ORCA2.3_grid.nc | "(snvolu[d=1])"   | "Snow thickness (SOUTH)"          | "m"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+# Following fields should be weighted by siconc
+ sisali_north    | "sisali"  | ORCA2.3_grid.nc | "(sisali[d=1])"   | "Ice Salinity (NORTH)"            | "PSS"   | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ sisali_south    | "sisali"  | ORCA2.3_grid.nc | "(sisali[d=1])"   | "Ice Salinity (NORTH)"            | "PSS"   | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+ sitemp_north    | "sitemp"  | ORCA2.3_grid.nc | "(sitemp[d=1])"   | "Ice Temperature (NORTH)"         | "C"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ sitemp_south    | "sitemp"  | ORCA2.3_grid.nc | "(sitemp[d=1])"   | "Ice Temperature (SOUTH)"         | "C"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+ sistem_north    | "sistem"  | ORCA2.3_grid.nc | "(sistem[d=1])"   | "Ice Surface Temperature (NORTH)" | "C"     | "if lat[d=2] ge 0 then mask[k=1,d=2]*area[d=2]"
+ sistem_south    | "sistem"  | ORCA2.3_grid.nc | "(sistem[d=1])"   | "Ice Surface Temperature (SOUTH)" | "C"     | "if lat[d=2] le 0 then mask[k=1,d=2]*area[d=2]"
+#-----------------------------------------------------------------------------------------------------------------
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_stomate.cfg
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_stomate.cfg	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/POST/monitoring01_stomate.cfg	(revision 5899)
@@ -0,0 +1,85 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann@cea.fr
+# $Date: 2009/05/14 15:09:35 $
+# $Name: ATLAS_608_1_5 $
+# $Revision: 1.1.1.2 $
+# History:
+# Modification:
+#**************************************************************
+
+##################################################################################################################
+#-----------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#-----------------------------------------------------------------------------------------------------------------
+#
+#   field = name of the field to monitore 
+#   files patterns = pattern of the files used to monitore the field (must be discriminant) 
+#   files additionnal = additionnal files accessible by $FER_DATA
+#   operations = operations to calculate the field 
+#   title = variable title
+#   units = variable units
+#   calcul of area = expression to use for the weight average
+#
+# Notes:
+#   - Comment lines begin by # character.
+#   - Separator between fields is | character.
+#   - Operations must use the ferret syntax, if several files are used precise with the syntax d=x to refer to the x dataset.
+#     They must be enclosed by parenthesis if more than one variable is used.
+#   - files patterns,files additionnal,operations,title,units must be enclosed with character ". 
+#     Use "" if empty.
+#   - Fields will be presented through an html page with thumbnails global, north, south, land, ocean.
+#     Use a field name with one of these pattern to display it under the corresponding thumbnail.
+#
+##################################################################################################################
+
+color=EEE8AA
+smooth=12
+#------------------------------------------------------------------------------------------------------------------------------------------------------
+#  field | files patterns | files additionnal | operations | title | units | calcul of area
+#------------------------------------------------------------------------------------------------------------------------------------------------------
+woodharvest_fromforcing| "WOOD_HARVEST_PFT VEGET_COV_MAX"| "" | "(WOOD_HARVEST_PFT[d=1]*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]*365/1e15)"| "Wood harvest read from file and prepared to be used"      | "PgC/yr"    | "2"
+fwoodharvest_lands     | "fWoodharvest"                  | "" | "fWoodharvest[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15"              | "CO2 Flux from wood harvesting, positive from atm to land" | "PgC/yr"    | "2"
+fLuc_fHarvest_lands    | "CONVFLUX CFLUX_PROD10 CFLUX_PROD100 HARVEST_ABOVE"  | "" | "((CONVFLUX[d=1]+CFLUX_PROD10[d=2]+CFLUX_PROD100[d=3]+HARVEST_ABOVE[d=4])*AREAS[d=1]*CONTFRAC[d=1]*365/1e15)" | "CO2 flux from Land Use Change and Crop Harvesting" | "PgC/yr" | "2"
+fHarvest_lands         | "HARVEST_ABOVE"                 | "" | "((HARVEST_ABOVE[d=1])*AREAS[d=1]*CONTFRAC[d=1]*365/1e15)"                    | "CO2 flux from Land Use Change and Crop Harvesting"        | "PgC/yr" | "2"
+nbp_lands              | "nbp"                           | "" | "(nbp[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365/1e12)"                          | "Net Biospheric Production"                                | "PgC/yr" | "2"
+cSoil_lands            | "TOTAL_SOIL_CARB VEGET_COV_MAX" | "" | "(TOTAL_SOIL_CARB[d=1]*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"     | "Carbon Soil in Pool"                                      | "PgC"    | "2"
+cVeg_lands             | "TOTAL_M VEGET_COV_MAX"         | "" | "(TOTAL_M[d=1]*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"             | "Carbon in vegetation"                                     | "PgC"    | "2"
+npp_lands              | "NPP VEGET_COV_MAX"             | "" | "(NPP[d=1]*365*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"             | "Net Primary Production"                                   | "PgC/yr" | "2"
+rh_lands               | "HET_RESP VEGET_COV_MAX"        | "" | "(HET_RESP[d=1]*365*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"        | "Heterotrophic Respiration"                                | "PgC/yr" | "2"
+CONVFLUX_lands         | "CONVFLUX"                      | "" | "(CONVFLUX[d=1]*365*AREAS[d=1]*CONTFRAC[d=1]/1e15)"                   | "Annual release right after deforestation (LANDS)"            | "PgC/yr" | "2"
+CFLUX_PROD10_lands     | "CFLUX_PROD10"                  | "" | "(CFLUX_PROD10[d=1]*365*AREAS[d=1]*CONTFRAC[d=1]/1e15)"               | "Annual release from all 10 year wood product pools (LANDS)"  | "PgC/yr" | "2"
+CFLUX_PROD100_lands    | "CFLUX_PROD100"                 | "" | "(CFLUX_PROD100[d=1]*365*AREAS[d=1]*CONTFRAC[d=1]/1e15)"              | "Annual release from all 100 year wood product pools (LANDS)" | "PgC/yr" | "2"
+BIOMASS_lands          | "TOTAL_M VEGET_COV_MAX"         | "" | "(TOTAL_M[d=1]*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"             | "Total Biomass (LANDS)"                               | "PgC"    | "2"
+LITTER_lands           | "TOTAL_BM_LITTER VEGET_COV_MAX" | "" | "(TOTAL_BM_LITTER[d=1]*365*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)" | "Biomass to Litter flux (LANDS)"                      | "PgC/yr" | "2"
+GPP_lands              | "GPP VEGET_COV_MAX"             | "" | "(GPP[d=1]*365*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"             | "Gross Primary Produc (LANDS)"                        | "PgC/yr" | "2"
+MAINT_RESP_lands       | "MAINT_RESP VEGET_COV_MAX"      | "" | "(MAINT_RESP[d=1]*365*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"      | "Maintenance Resp. (LANDS)"                           | "PgC/yr" | "2"
+GROWTH_RESP_lands      | "GROWTH_RESP VEGET_COV_MAX"     | "" | "(GROWTH_RESP[d=1]*365*VEGET_COV_MAX[d=2]*AREAS[d=1]*CONTFRAC[d=1]/1e15)"     | "Growth Resp. (LANDS)"                                | "PgC/yr" | "2"
+lai_lands              | "lai"                           | "" | "lai[d=1]" 	                                                              | "Leaf Area Fraction"   	                	      | "1"   	 | "Areas[d=1]*CONTFRAC[d=1]"
+treeFracPrimDec_lands  | "treeFracPrimDec"               | "" | "treeFracPrimDec[d=1]"                                                        | "Total Primary Deciduous Tree Cover Fraction"         | "%"   	 | "Areas[d=1]*CONTFRAC[d=1]"
+treeFracPrimEver_lands | "treeFracPrimEver"              | "" | "treeFracPrimEver[d=1]"                                                       | "Total Primary Evergreen Tree Cover Fraction"         | "%" 	 | "Areas[d=1]*CONTFRAC[d=1]"
+c3PftFrac_lands        | "c3PftFrac" 	                 | "" | "c3PftFrac[d=1]" 	                                                      | "Total C3 PFT Cover Fraction" 	 	              | "%" 	 | "Areas[d=1]*CONTFRAC[d=1]"
+c4PftFrac_lands        | "c4PftFrac" 	                 | "" | "c4PftFrac[d=1]" 	                                                      | "Total C4 PFT Cover Fraction" 		              | "%" 	 | "Areas[d=1]*CONTFRAC[d=1]"
+cProduct_lands         | "cProduct"           | "" | "(cProduct[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)" 	            | "Carbon in Products of Land Use Change" 	               | "PgC"    | "2"
+fLuc_lands             | "fLuc"               | "" | "(fLuc[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "CO2 Flux to Atmosphere from Land Use Change"            | "PgC/yr" | "2"
+ra_lands               | "ra"                 | "" | "(ra[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 		    | "Autotrophic Respiration"			               | "PgC/yr" | "2"
+fVegLitter_lands       | "fVegLitter"         | "" | "(fVegLitter[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "Total Carbon Flux from Vegetation to Litter"            | "PgC/yr" | "2"
+fLitterSoil_lands      | "fLitterSoil"        | "" | "(fLitterSoil[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)"      | "Total Carbon Flux from Litter to Soil" 	               | "PgC/yr" | "2"
+cLeaf_lands            | "cLeaf"              | "" | "(cLeaf[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)"                      | "Carbon in Leaves"                                       | "PgC"    | "2"
+cWood_lands            | "cWood"              | "" | "(cWood[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)" 	                    | "Carbon in Wood" 			                       | "PgC"    | "2"
+cRoot_lands            | "cRoot"              | "" | "(cRoot[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)" 	                    | "Carbon in Roots" 			               | "PgC"    | "2"
+cMisc_lands            | "cMisc"              | "" | "(cMisc[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)" 	                    | "Carbon in Other Living Compartments" 	               | "PgC"    | "2"
+cLitterAbove_lands     | "cLitterAbove"       | "" | "(cLitterAbove[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)"               | "Carbon in Above-Ground Litter" 	                       | "PgC"    | "2"
+cLitterBelow_lands     | "cLitterBelow"       | "" | "(cLitterBelow[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)"               | "Carbon in Below-Ground Litter" 	                       | "PgC"    | "2"
+cSoilFast_lands        | "cSoilFast"          | "" | "(cSoilFast[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)"                  | "Carbon in Fast Soil Pool" 		               | "PgC"    | "2"
+cSoilMedium_lands      | "cSoilMedium"        | "" | "(cSoilMedium[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)"                | "Carbon in Medium Soil Pool" 		               | "PgC"    | "2"
+cSoilSlow_lands        | "cSoilSlow"          | "" | "(cSoilSlow[d=1]*AREAS[d=1]*CONTFRAC[d=1]*1000/1e15)"                  | "Carbon in Slow Soil Pool" 	    	               | "PgC"    | "2"
+nppLeaf_lands          | "nppLeaf" 	      | "" | "(nppLeaf[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "CO2 Flux from Atmosphere due to NPP Allocation to Leaf" | "PgC/yr" | "2"
+nppWood_lands          | "nppWood" 	      | "" | "(nppWood[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "CO2 Flux from Atmosphere due to NPP Allocation to Wood" | "PgC/yr" | "2"
+nppRoot_lands          | "nppRoot" 	      | "" | "(nppRoot[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "CO2 Flux from Atmosphere due to NPP Allocation to Root" | "PgC/yr" | "2"
+nep_lands              | "nep" 		      | "" | "(nep[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	            | "Net Carbon Mass Flux out of Atmophere due to Net Ecosystem Productivity." | "PgC/yr" | "2"
+cMassVariation_lands   | "cMassVariation"     | "" | "(cMassVariation[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)"   | "Carbon Mass Variation"	                               | "PgC/yr" | "2"
+cBal_lands             | "cMassVariation nbp" | "" | "((cMassVariation[d=1,L=2:100000]-nbp[d=2,L=2:100000])*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" | "Total Carbon Balance"    | "PgC/yr" | "2"
+rGrowth_lands          | "rGrowth" 	      | "" | "(rGrowth[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "Growth Autotrophic Respiration" 		               | "PgC/yr" | "2"
+rMaint_lands           | "rMaint" 	      | "" | "(rMaint[d=1]*AREAS[d=1]*CONTFRAC[d=1]*86400*365*1000/1e15)" 	    | "Maintenance Autotrophic Respiration" 	               | "PgC/yr" | "2"
+#------------------------------------------------------------------------------------------------------------------------------------------------------
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/config.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/config.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/config.card	(revision 5899)
@@ -0,0 +1,230 @@
+#
+# This is config.card file for IPSLCM6 configuration
+#
+#========================================================================
+#D-- Compatibility -
+[Compatibility]
+libIGCM=1.0
+#D-- UserChoices -
+[UserChoices]
+#===========================
+JobName=CM65-ENSEMBLES.01
+#----- Short Name of Experiment
+ExperimentName=pdControl
+#----- DEVT TEST PROD
+SpaceName=DEVT
+LongName="IPSLCM6.5.0-LR"
+ModelName=IPSL-CM6A-LR
+TagName=IPSLCM6
+#D- Choice of experiment in EXPERIMENTS directory
+ExpType=IPSLCM/pdControl_TEST
+#============================
+#-- leap, noleap, 360d
+CalendarType=noleap
+#-- Experiment dates : Beginning and ending
+#-- "YYYY-MM-DD"
+DateBegin=1850-01-01
+DateEnd=1850-12-31
+#============================
+ORCA_version=ORCA2.4
+#============================
+#-- 1Y, 1M, 5D, 1D Period Length of one trunk of simulation
+PeriodLength=1Y
+#============================
+#-- Compression level for netcdf output files
+CompressionLevel=2
+#============================
+#-- Source following file with module settings, only if it exists
+EnvFile=${SUBMIT_DIR}/../ARCH/arch.env
+#============================
+#-- ResolAtm indicates the atmospheric resolution
+#   This variable is used in the executable name 
+ResolAtm=96x95x59
+ResolOce=ORCA2
+#============================
+# OptMode indicates the optimization mode choosen during compilation
+# This variable is used in the executable name
+OptMode=prod
+
+DataProject=gencmip6
+#========================================================================
+#D-- Restarts -
+[Restarts]
+#D- by default: config.card describes no restart for all components 
+#D-             ie start from Levitus or limit files
+#D- If you want to restart all components from the same simulation,
+#D-      put OveRule flag to 'y' and set the next 3 parameters
+OverRule=n
+#D- Last day of the experience used as restart for all components
+RestartDate=1849-12-31
+#D- Define restart simulation name for all components
+RestartJobName=CM61-pre-pi-01
+#D- Path Server Group Login
+RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+
+#========================================================================
+#D-- ATM -
+[ATM]
+# If config_Restarts_OverRule == 'n' next 4 params are read
+Restart= y
+# Last day of the experience used as restart for this component if Restart=y
+RestartDate=1899-12-31
+#D- Define restart simulation name for this component
+#RestartJobName=CM62W-VLRORCA1-pd-cldc-noca-rq
+RestartJobName=CM65-ENSEMBLES.02
+#D- Path Server Group Login
+#RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+#RestartPath=/ccc/store/cont003/gencmip6/p25khod//IGCM_OUT/IPSLCM6/PROD/pdControl
+RestartPath=/ccc/scratch/cont003/gencmip6/p86caub/IGCM_OUT/IPSLCM6/TEST/piControl
+#========================================================================
+#D-- OCE -
+[OCE]
+WriteFrequency="1M"
+# If config_Restarts_OverRule == 'n' next 4 params are read
+Restart= n
+#-- Last day of the experience used as restart for this component if Restart=y
+RestartDate=2179-12-31
+#D- Define restart simulation name for this component
+RestartJobName=CM65-LR.OR2.pdCtl.cldnoca
+#D- Path Server Group Login
+#RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+RestartPath=/ccc/store/cont003/gencmip6/lebasn/IGCM_OUT/IPSLCM6/DEVT/pdControl
+#========================================================================
+#D-- ICE -
+[ICE]
+WriteFrequency="1M"
+# If config_Restarts_OverRule == 'n' next 4 params are read
+Restart= n
+##-- Last day of the experience used as restart for this component if Restart=y
+RestartDate=2179-12-31
+#D- Define restart simulation name for this component
+RestartJobName=CM65-LR.OR2.pdCtl.cldnoca
+#D- Path Server Group Login
+#RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+RestartPath=/ccc/store/cont003/gencmip6/lebasn/IGCM_OUT/IPSLCM6/DEVT/pdControl
+#========================================================================
+#D-- MBG -
+[MBG]
+WriteFrequency=""
+Restart= n
+##-- Last day of the experience used as restart for this component if Restart=y
+RestartDate=2179-12-31
+#D- Define restart simulation name for this component
+RestartJobName=CM65-LR.OR2.pdCtl.cldnoca
+#D- Path Server Group Login
+#RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+RestartPath=/ccc/store/cont003/gencmip6/lebasn/IGCM_OUT/IPSLCM6/DEVT/pdControl
+#========================================================================
+#D-- SRF -
+[SRF]
+# If config_Restarts_OverRule == 'n' next 4 params are read
+Restart=n
+# Last day of the experience used as restart for this component if Restart=y
+RestartDate=1879-12-31
+#D- Define restart simulation name for this component
+#RestartJobName=CM62W-VLRORCA1-pd-cldc-noca-rq
+RestartJobName=VLR.pdCtl.oldW.tn.oldcalv
+#D- Path Server Group Login
+#RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+#RestartPath=/ccc/store/cont003/gencmip6/p25khod/IGCM_OUT/IPSLCM6/PROD/pdControl
+RestartPath=/ccc/store/cont003/gencmip6/lebasn/IGCM_OUT/IPSLCM6/DEVT/pdControl
+#========================================================================
+#D-- SBG - STOMATE
+[SBG]
+# If config_Restarts_OverRule == 'n' next 4 params are read
+Restart=n 
+# Last day of the experience used as restart for this component if Restart=y
+RestartDate=1879-12-31
+#D- Define restart simulation name for this component
+#RestartJobName=CM62W-VLRORCA1-pd-cldc-noca-rq
+RestartJobName=VLR.pdCtl.oldW.tn.oldcalv
+#D- Path Server Group Login
+#RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+#RestartPath=/ccc/store/cont003/gencmip6/p25khod/IGCM_OUT/IPSLCM6/PROD/pdControl
+RestartPath=/ccc/store/cont003/gencmip6/lebasn/IGCM_OUT/IPSLCM6/DEVT/pdControl
+#========================================================================
+#D-- CPL -
+[CPL]
+# If config_Restarts_OverRule == 'n' next 4 params are read
+ Restart= y
+# # Last day of the experience used as restart for this component if Restart=y
+ RestartDate=1899-12-31
+# #D- Define restart simulation name for this component
+# #RestartJobName=CM62W-VLRORCA1-pd-cldc-noca-rq
+ RestartJobName=CM65-ENSEMBLES.02
+# #D- Path Server Group Login
+# #RestartPath=${R_IN}/RESTART/IPSLCM6/PROD/piControl-spinup
+# #RestartPath=/ccc/store/cont003/gencmip6/p25khod//IGCM_OUT/IPSLCM6/PROD/pdControl
+ RestartPath=/ccc/scratch/cont003/gencmip6/p86caub/IGCM_OUT/IPSLCM6/TEST/piControl
+#
+#========================================================================
+#D-- IOS -
+[IOS]
+# If config_Restarts_OverRule == 'n' next 4 params are read
+Restart= n
+##-- Last day of the experience used as restart for this component if Restart=y
+RestartDate=
+# Define restart simulation name for this component
+RestartJobName=
+RestartPath=
+
+#========================================================================
+#D-- ListOfComponents -
+[ListOfComponents]
+#D- For each component, Name of component, Tag of component
+ATM= (lmdz, LMDZ-IPSLCM6.0.15-r3415)
+SRF= (orchidee, tag-ORCHIDEE_2_0-5627)
+SBG= (stomate, tag-ORCHIDEE_2_0-5627)
+OCE= (opa9, NEMO_v4.0.3-r)
+ICE= (si3,  NEMO_v4.0.3-r)
+MBG= (pisces, NEMO_v4.0.3-r)
+CPL= (oasis, oasis3-mct-r4775)
+IOS= (xios, xios-2.5-r1862)
+
+#========================================================================
+#D-- Executable -
+[Executable]
+#D- For each component, Real name of executable, Name of executable for oasis
+ATM= (gcm_${ResolAtm}_${OptMode}.e, lmdz.x, 47MPI, 16OMP)
+SRF= ("" ,"" )
+SBG= ("" ,"" )
+OCE= (opa_${OptMode}.exe, opa.xx, 90MPI)
+ICE= ("" ,"" )
+MBG= ("" ,"" )
+CPL= ("", "" )
+IOS= (xios_server_${OptMode}.exe, xios.x, 1MPI)
+
+#========================================================================
+#D-- Post -
+[Post]
+ParserXIOS=FALSE
+#D- Do we rebuild parallel output, this flag determines
+#D- frequency of rebuild submission (use NONE for DRYRUN=3)
+RebuildFrequency=NONE
+#D- Do we pack restart and debug txt files, this flag determines
+#D- frequency of pack submission (use NONE for DRYRUN=3)
+PackFrequency=2Y
+#D- To have only the last period in RESTART/*.tar : save 90% of volume.
+#D- TRUE to be effective (nothing by default)
+LightRestartPack=FALSE
+#D- If you want to produce time series, this flag determines
+#D- frequency of post-processing submission (NONE if you dont want)
+TimeSeriesFrequency=NONE
+#D- If you want to produce seasonal average, this flag determines
+#D- the period of this average (NONE if you dont want)
+SeasonalFrequency=NONE
+#D- If you want to produce compute PCMDI metrics from seasonal average
+#D- Set FALSE to deactivate the metrics computation.
+MetricsPCMDI=FALSE
+#D- Offset for seasonal average first start dates ; same unit as SeasonalFrequency
+#D- Usefull if you do not want to consider the first X simulations years
+SeasonalFrequencyOffset=0
+# For dynzon errors (time non monotonic)
+#IgnoreNonMonotonic=TRUE
+#========================================================================
+#========================================================================
+#D-- Ensembles -
+[Ensemble]
+EnsembleXIOS=TRUE
+PoolNumber=2
+PoolSize=8
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ensemble.txt
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ensemble.txt	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/ensemble.txt	(revision 5899)
@@ -0,0 +1,80 @@
+MEMBER_0:0:0
+MEMBER_1:1:0
+MEMBER_2:1:0
+MEMBER_3:1:0
+MEMBER_4:0:0
+MEMBER_5:0:0
+MEMBER_6:4:0
+MEMBER_7:3:0
+MEMBER_8:7:0
+MEMBER_9:8:0
+MEMBER_10:9:0
+MEMBER_11:0:0
+MEMBER_12:0:0
+MEMBER_13:0:0
+MEMBER_14:0:0
+MEMBER_15:0:0
+MEMBER_16:0:0
+MEMBER_17:0:0
+MEMBER_18:0:0
+MEMBER_19:0:0
+MEMBER_20:0:0
+MEMBER_21:0:0
+MEMBER_22:0:0
+MEMBER_23:0:0
+MEMBER_24:0:0
+MEMBER_25:0:0
+MEMBER_26:0:0
+MEMBER_27:0:0
+MEMBER_28:0:0
+MEMBER_29:0:0
+MEMBER_30:0:0
+MEMBER_31:0:0
+MEMBER_32:0:0
+MEMBER_33:0:0
+MEMBER_34:0:0
+MEMBER_35:0:0
+MEMBER_36:0:0
+MEMBER_37:0:0
+MEMBER_38:0:0
+MEMBER_39:0:0
+MEMBER_40:0:0
+MEMBER_41:0:0
+MEMBER_42:0:0
+MEMBER_43:0:0
+MEMBER_44:0:0
+MEMBER_45:0:0
+MEMBER_46:0:0
+MEMBER_47:0:0
+MEMBER_48:0:0
+MEMBER_49:0:0
+MEMBER_50:0:0
+MEMBER_51:0:0
+MEMBER_52:0:0
+MEMBER_53:0:0
+MEMBER_54:0:0
+MEMBER_55:0:0
+MEMBER_56:0:0
+MEMBER_57:0:0
+MEMBER_58:0:0
+MEMBER_59:0:0
+MEMBER_60:0:0
+MEMBER_61:0:0
+MEMBER_62:0:0
+MEMBER_63:0:0
+MEMBER_64:0:0
+MEMBER_65:0:0
+MEMBER_66:0:0
+MEMBER_67:0:0
+MEMBER_68:0:0
+MEMBER_69:0:0
+MEMBER_70:0:0
+MEMBER_71:0:0
+MEMBER_72:0:0
+MEMBER_73:0:0
+MEMBER_74:0:0
+MEMBER_75:0:0
+MEMBER_76:0:0
+MEMBER_77:0:0
+MEMBER_78:0:0
+MEMBER_79:0:0
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/run.card.init
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/run.card.init	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/config/IPSLCM6/CM65-ENSEMBLES.01/run.card.init	(revision 5899)
@@ -0,0 +1,35 @@
+# $Revision:: 1052                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-09-11 16:23:32 +0200 (Thu, 11 Sep 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+
+#========================================================================
+[Configuration]
+#Compute date of loop
+PeriodDateBegin=
+PeriodDateEnd=
+CumulPeriod=
+# State of Job "Start", "Running", "OnQueue", "Completed"
+PeriodState="Start"
+
+SubmitPath=
+simuid=
+#========================================================================
+[PostProcessing]
+
+#RebuildRunning=y/n
+#RebuildToComplete=number of dir to rebuild
+#RebuildDateID=PeriodDateEnd correspondant au dernier flag de RebuildFrequency=true
+
+TimeSeriesRunning=n
+TimeSeriesCompleted=
+
+#========================================================================
+[Log]
+# Executables Size
+LastExeSize=()
+
+#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+# CumulPeriod | PeriodDateBegin |   PeriodDateEnd |        RunDateBegin |          RunDateEnd |     RealCpuTime |     UserCpuTime |      SysCpuTime | ExeDate
+#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_RunChecker
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_RunChecker	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_RunChecker	(revision 5899)
@@ -0,0 +1,281 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sonia Labetoulle
+# Contact: sonia.labetoulle__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2012)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene-amd export BRIDGE_MSUB_PROJECT=::default_project:: 
+
+#======================================================================#
+# Display a report on how a simulation is faring.
+
+
+#======================================================================#
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=checking
+typeset -i Verbosity=0
+
+CurrentUsr=$( whoami )
+
+if ( [ $# -eq 0 ] ) ; then
+  $0 -h
+  exit
+fi
+
+# Arguments
+# =========
+# Default argument values
+#Â -----------------------
+TargetUsr=${CurrentUsr}
+HostName=$( hostname | sed -e "s/[0-9].*//" )
+
+fg_color=true
+fg_search=false
+fg_quiet=false
+fg_running=false
+fg_path=false
+NbHisto=20
+
+# Get arguments from command line
+# -------------------------------
+while getopts :hj:p:qsu:r Opt ; do
+  case $Opt in
+    h)
+      echo "usage: $0 [-u user] [-q] [-j n] [-s] job_name [job_name2 ...]"
+      echo "       $0 [-u user] [-q] [-j n] -p config.card_path"
+      echo "       $0 [-u user] [-q] [-j n] -r [job_name job_name2 ...]"
+      echo ""
+      echo "options :"
+      echo "  -h : print this help and exit"
+      echo "  -u : owner of the job"
+      echo "  -q : quiet"
+      echo "  -j : print n post-processing jobs (default is 20)"
+      echo "  -s : search for a new job in \$WORKDIR and fill in "
+      echo "       the catalog before printing information"
+      echo "  -p : give the directory (absolute path) containing "
+      echo "       the config.card instead of the job name."
+      echo "  -r : check all running simulations."
+      exit 0 ;;
+    j)
+      NbHisto=${OPTARG}
+      ;;
+    p)
+      fg_path=true
+      ConfigPath=${OPTARG}
+      ;;
+    q)
+      fg_quiet=true
+      ;;
+    s)
+      fg_search=true
+      ;;
+    u)
+      TargetUsr=${OPTARG}
+      ;;
+    r)
+      fg_running=true
+      ;;
+    :)
+      echo "$0: -"${OPTARG}" option: missing value"
+      exit 1
+      ;;
+    \?)
+      echo "$0: -"${OPTARG}" option: not supported"
+      exit 1
+      ;;
+  esac
+done
+shift $(($OPTIND-1))
+
+# If no config.card path is given, and we're not looking for running simulations, 
+# at least one JobName must be given.
+if ( ( ! ${fg_path} ) && ( ! ${fg_running} ) && [ $# -lt 1 ] ) ; then
+  $0 -h
+  exit
+fi
+
+if ( ( ${fg_path} ) && ( ${fg_search} ) ) ; then
+  echo "You cannot use -s and -p at the same time"
+  exit
+fi
+
+if ( ( ${fg_path} ) && ( ${fg_running} ) ) ; then
+  echo "You cannot use -r and -p at the same time"
+  exit
+fi
+
+
+# Load libIGCM library
+# ====================
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+DEBUG_debug=false
+DEBUG_sys=false
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_check/libIGCM_check.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+
+if ( ${fg_running} ) ; then
+  # Look for running simu
+  IGCM_sys_ListJobInQueue ${TargetUsr} JobNameList
+fi
+
+if [ $# -ge 1 ] ; then
+  set -A JobNameList ${JobNameList[*]} ${*}
+elif ( ${fg_path} ) ; then
+  set -A JobNameList "Unknown"
+fi
+
+if [ ${#JobNameList[*]} -lt 1 ] ; then
+  echo "No running simulation found."
+  exit 0
+fi
+
+
+if ( ${fg_quiet} ) ; then
+  NbHisto=1
+fi
+
+# Define the catalog in which the known simulations are stored
+# ============================================================
+SimuCatalog="${HOME}/.simucatalog.dat"
+if [ ! -s ${SimuCatalog} ] ; then
+  touch ${SimuCatalog}
+fi
+
+
+for JobName in ${JobNameList[*]} ; do
+
+  # Find SUBMIT_DIR in catalog
+  # ==========================
+  IGCM_check_SearchCatalog
+  Status=$?
+
+  if [ $Status -eq 0 ] ; then
+
+    IGCM_sys_Cd $SUBMIT_DIR
+
+
+    # Extract usefull information from run.card and config.card
+    # =========================================================
+
+    RunFile="${SUBMIT_DIR}/run.card"
+    ConfFile="${SUBMIT_DIR}/config.card"
+
+    IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
+    IGCM_check_CommonDef
+
+
+    if [ -s ${RunFile} ] ; then
+      IGCM_card_DefineVariableFromOption ${RunFile} Configuration PeriodState
+      PeriodState=${run_Configuration_PeriodState}
+    else
+      PeriodState="Waiting"
+    fi
+
+    JobID="."
+    if ( [ X${PeriodState} == XRunning ] || [ X${PeriodState} == XOnQueue ] ) ; then
+      IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+
+      if [ "${JobID}" == "." ] || [ "${JobID}" == "" ] ; then
+        PeriodState="Fatal"
+        JobID="."
+      fi
+    fi
+
+    DateBegin=${config_UserChoices_DateBegin}
+    DateEnd=${config_UserChoices_DateEnd}
+    TagName=${config_UserChoices_TagName}
+    ExperimentName=${config_UserChoices_ExperimentName}
+    SpaceName=${config_UserChoices_SpaceName}
+
+
+    if ( [ ! X${PeriodState} == XWaiting ] && [ ! X${PeriodState} == XCompleted ] ) ; then
+      IGCM_card_DefineVariableFromOption ${RunFile} Configuration PeriodDateBegin
+      IGCM_card_DefineVariableFromOption ${RunFile} Configuration PeriodDateEnd
+      IGCM_card_DefineVariableFromOption ${RunFile} Configuration CumulPeriod
+      PeriodDateBegin=${run_Configuration_PeriodDateBegin}
+      PeriodDateEnd=${run_Configuration_PeriodDateEnd}
+      CumulPeriod=${run_Configuration_CumulPeriod}
+    else
+      PeriodDateBegin="."
+      PeriodDateEnd="."
+      CumulPeriod="."
+    fi
+
+    DATA_DIR=${R_SAVE}
+    POST_DIR=${R_BUFR}/Out
+    CWORK_DIR=${R_FIGR}
+
+    if [ ${TargetUsr} != ${CurrentUsr} ] ; then
+      DATA_DIR=$( IGCM_check_ChangeUsr ${DATA_DIR} )
+      POST_DIR=$( IGCM_check_ChangeUsr ${POST_DIR} )
+      CWORK_DIR=$( IGCM_check_ChangeUsr ${CWORK_DIR} )
+      REBUILD_DIR=$( IGCM_check_ChangeUsr ${REBUILD_DIR} )
+    fi
+
+    if [ $PeriodState != "Waiting" ] ; then
+      # Check pending REBUILDS
+      # ======================
+      IGCM_check_CheckPendingRebuild
+
+      # Check last REBUILD and PACK* jobs
+      # =================================
+      IGCM_check_CheckRebPackJobs
+
+      # Check last MONITORING jobs
+      # ==========================
+      IGCM_check_CheckMonitoring
+
+      # Check last ATLAS jobs
+      # =====================
+      IGCM_check_CheckAtlas
+
+      # Time of last write on run.card
+      # ==============================
+      IGCM_sys_GetDate_FichWork ${SUBMIT_DIR}/run.card LastWrite "SplitFields" "${DateFormat}"
+
+    else
+
+      NbRebuild="."
+      FirstRebuild="."
+      LastRebuild="."
+
+      NbLines=0
+
+    fi
+
+
+    # Print results
+    # =============
+    IGCM_check_PrintHeader
+    ind=0
+    while [ $ind -lt $NbLines ] ; do
+      IGCM_check_PrintJob
+      (( ind = ind + 1 ))
+    done
+    IGCM_check_PrintFooter
+
+  fi
+
+done
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_SE_Checker
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_SE_Checker	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_SE_Checker	(revision 5899)
@@ -0,0 +1,284 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene-amd export BRIDGE_MSUB_PROJECT=::default_project:: 
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=checking
+
+#D- Low level debug : to perform lib test checks, stack construction and IO functions instrumentation
+DEBUG_debug=false
+
+#D- Messaging : all activities and call stacks will be sent to ipsl servers
+BigBrother=false
+
+# Check that everything went well during seasonal average production
+# Display a short report
+# Launch what's missing when a simulation has been completed PeriodState=Completed
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+# Current directory
+CURRENT_DIR=$( pwd )
+
+# Directory with comp.cards
+CARD_DIR=${CARD_DIR:=${CURRENT_DIR}}
+
+# Directory for script output
+POST_DIR=${POST_DIR:=${CARD_DIR}/OutScript}
+
+if [ ! -d ${CARD_DIR} ]; then
+  echo "No ${CARD_DIR}, we stop here"
+  exit
+fi
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+echo "Hi I'm here to help you check and complete the seasonal average production"
+echo -e "\033[1;31mDo you want me to run in dryrun mode just telling what I would submit? Answer no in this case\033[m"
+echo -e "\033[1;31mOr do you want me to submit job for real? Answer yes in this case.\033[m"
+echo -n " Run for real (y/n) :"
+read ActionAnswer
+
+case ${ActionAnswer} in
+oui|OUI|o|y|yes|YES)
+  echo "OK. I will submit jobs"
+  action=true
+  ;;
+non|NON|n|no|NO)
+  echo "OK. I won't submit any jobs"
+  action=false
+  ;;
+*)
+  echo "I did not recognize your answer. I will stop here."
+  echo "Please answer: oui|OUI|o|y|yes|YES"
+  echo "Or answer: non|NON|n|no|NO"
+  exit
+  ;;
+esac
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+#==================================
+# Read ListOfComponents section:
+IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents
+
+#==================================
+# Read SeasonalFrequency:
+IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post SeasonalFrequency
+
+#===================================
+# Read DateBegin from config.card
+DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
+
+#===================================
+# Read end date from run.card or config.card
+if [ -f ${CARD_DIR}/run.card ] ; then
+   # Read updated run.card :
+   IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodDateBegin
+   IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodState
+
+  if [ X${run_Configuration_PeriodState} != X"Completed" ] ; then
+    # Calculate DateEnd by read PeriodDateBegin from run.card and remove one day  
+    DateEnd=$( IGCM_date_AddDaysToGregorianDate $( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateBegin} ) -1 )
+  else
+    # Simulation is finished, read DateEnd from config.card
+    DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+  fi
+else
+  # No run.card available, read DateEnd from config.card
+  DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+fi
+
+#===================================
+# Calculate offset
+if ( [ X${config_Post_SeasonalFrequencyOffset} = X${NULL_STR} ] || [ X${config_Post_SeasonalFrequencyOffset} = XNONE ] || [ X${config_Post_SeasonalFrequencyOffset} = X ] ) ; then
+  PeriodOffset=0
+else
+  PeriodOffset=${config_Post_SeasonalFrequencyOffset}
+fi
+
+IGCM_debug_Print 1 "DateBegin for SE_Checker : "${DateBegin}
+IGCM_debug_Print 1 "DateEnd   for SE_Checker : "${DateEnd}
+IGCM_debug_Print 1 "Offset    for SE_Checker : "${PeriodOffset}
+echo
+#
+[ X${config_Post_SeasonalFrequency} = X"NONE" ] && exit
+
+freq=$( echo ${config_Post_SeasonalFrequency} |  sed -e "s/[yY]//" )
+
+an_deb=$( IGCM_date_YearDigit $(( DateBegin / 10000 + PeriodOffset )) )
+an_fin=$( IGCM_date_YearDigit $(( an_deb + freq - 1 )) )
+an_fin_all=$( IGCM_date_YearDigit $(( DateEnd / 10000 )) )
+
+#
+while [ ${an_fin} -le ${an_fin_all} ] ; do
+
+  countTotal=0
+  countGood=0
+  countBad=0
+
+  IGCM_debug_Print 1 " DateBegin/End for SE :  ${an_deb}_${an_fin} "
+
+  for comp in ${config_ListOfComponents[*]} ; do
+    localcountBad=0
+    # Debug Print
+    IGCM_debug_Print 1 ${comp}
+    # Define component
+    IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+
+    # Read libIGCM compatibility version in ${compname}.card
+    card=${CARD_DIR}/COMP/${compname}.card
+
+    # Read and Build Output File stuff
+    #IGCM_debug_Print 1 "DefineArrayFromOption  : ${compname}_OutputFiles ${card}"
+    IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+    ListFilesName=${compname}_OutputFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+    #
+    if [ X${FileName0} != X${NULL_STR} ] ; then
+      #
+      # INITIALISATION
+      #
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+      typeset i=2
+      #
+      until [ $i -gt $NbFiles ]; do
+        #
+        eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        #
+        if [ X${flag_post} != XNONE ] ; then
+          #
+          # Check if seasonal is required for this file
+          #
+          IGCM_card_DefineArrayFromSection ${card} ${flag_post}
+          #
+          # Seasonal case : If option Seasonal is not found (old cards) put SEASONAL ON by default
+          #
+          # variable option allready typeset above
+          for option in $( eval echo \${${compname}_${flag_post}[*]} ) ; do
+            if [ ${option} = Seasonal ] ; then
+              FoundSeasonal=true
+              IGCM_card_DefineVariableFromOption ${card} ${flag_post} Seasonal
+            fi
+          done
+          #
+          if [ ! X${FoundSeasonal} = Xtrue ] ; then
+            eval ${compname}_${flag_post}_Seasonal=ON
+          fi
+          #
+          if [ ! X$( eval echo \${${compname}_${flag_post}_Seasonal} ) = XON ] ; then
+            (( i=i+3 ))
+            continue
+          fi
+          #
+          # CREATE LIST
+          #
+          FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' )
+          #
+          DIRECTORY=${R_SAVE}/${comp}/Analyse/SE
+          #
+          TestedFile=${config_UserChoices_JobName}_SE_${an_deb}_${an_fin}_${FILE}.nc
+          #
+          (( countTotal = countTotal + 1 ))
+          IGCM_sys_TestFileArchive ${DIRECTORY}/${TestedFile} >/dev/null 2>&1
+          if [ ! $? = 0 ] ; then
+            eval set +A LISTE_FILE_${comp}_${an_deb} \$\{LISTE_FILE_${comp}_${an_deb}[*]} ${TestedFile}
+            (( countBad = countBad + 1 ))
+            (( localcountBad = localcountBad + 1 ))
+          else
+            (( countGood = countGood + 1 ))
+          fi
+        fi
+        (( i=i+3 )) # to explore file list
+      done            # until [ $i -eq $NbFiles ]
+    fi                  # [ X${FileName0} != X${NULL_STR} ]
+
+    [ $localcountBad = 0 ] || IGCM_debug_Print 1 "$localcountBad file(s) missing for ${comp} : " $( eval echo \${LISTE_FILE_${comp}_${an_deb}[*]} )
+  done
+
+  # create_se submit if files don't exist
+  if [ $countGood != $countTotal ] ; then
+      if [ ${action} = true ] ; then
+
+	  IGCM_debug_Print 2 -e "\033[1;31mSubmit create_se \033[m for period ${an_deb}-${an_fin}"
+	  
+	  listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,DateBegin,PeriodDateEnd,RebuildFrequency,RESOL_ATM,RESOL_SRF,RESOL_SBG,RESOL_OCE,RESOL_ICE,RESOL_MBG"
+	  export DEBUG_debug=${DEBUG_debug}
+	  export BigBrother=${BigBrother}
+	  export libIGCM=${libIGCM}
+	  export SUBMIT_DIR=${CARD_DIR}
+	  export POST_DIR=${POST_DIR}
+	  export DateBegin=${an_deb}
+	  export PeriodDateEnd=${an_fin}1231
+	  export RebuildFrequency=${RebuildFrequency}
+	  export RESOL_ATM=${RESOL_ATM}
+	  export RESOL_SRF=${RESOL_SRF}
+	  export RESOL_SBG=${RESOL_SBG}
+	  export RESOL_OCE=${RESOL_OCE}
+	  export RESOL_ICE=${RESOL_ICE}
+	  export RESOL_MBG=${RESOL_MBG}
+	  export listVarEnv=${listVarEnv}
+	  export Script_Post_Output=create_se.${PeriodDateEnd}
+	  
+	  IGCM_sys_MkdirWork ${POST_DIR}
+	  IGCM_debug_Verif_Exit
+	  IGCM_sys_QsubPost create_se
+	  echo
+      else
+	  # only dry run
+	  IGCM_debug_Print 2 -e "\033[1;31mI should NOW Submit create_se \033[m for period ${an_deb}-${an_fin}"
+	  echo
+      fi
+  else                
+      IGCM_debug_Print 2 -e "\033[1;32mFiles are OK for period ${an_deb}-${an_fin}.\033[m Nothing needs to be done for this period."
+      echo
+  fi
+
+  (( an_deb = an_deb + freq ))
+  (( an_fin = an_fin + freq ))
+
+done # while
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_SaveSourceModifications
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_SaveSourceModifications	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_SaveSourceModifications	(revision 5899)
@@ -0,0 +1,168 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r SaveSource   # Nom du job
+#-Q- curie #MSUB -o SaveSource.out_%I
+#-Q- curie #MSUB -e SaveSource.out_%I
+#-Q- curie #MSUB -n 1            # Reservation du processus
+#-Q- curie #MSUB -T 7200         # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r SaveSource   # Job name
+#-Q- irene #MSUB -o SaveSource.out_%I
+#-Q- irene #MSUB -e SaveSource.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node::
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r SaveSource      # Job name
+#-Q- irene-amd #MSUB -o SaveSource.out_%I
+#-Q- irene-amd #MSUB -e SaveSource.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada # #  ADA       IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = SaveSource
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $SUBMIT_DIR ; $libIGCM ; $StandAlone ; $MASTER
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N SaveSource
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o SaveSource.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N SaveSource
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision::                                          $ Revision of last commit
+# $Author::                                            $ Author of last commit
+# $Date::                                              $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+MODIPSL=::modipsl::
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+
+ExeOutDateMax=${ExeOutDateMax:=$1}
+R_OUT_EXE=${R_OUT_EXE:=$2}
+PREFIX=${PREFIX:=$3}
+SUBMIT_DIR=${SUBMIT_DIR:=$4}
+
+cd ${MODIPSL};
+${MODIPSL}/util/script_diff_model ${SUBMIT_DIR} > ${RUN_DIR_PATH}/out_script_diff_model 2>&1
+echo "script_diff_model return" $? >> ${RUN_DIR_PATH}/out_script_diff_model 2>&1
+cd ${RUN_DIR_PATH}
+
+ERR_script_diff_model=$( cat out_script_diff_model | grep "script_diff_model return [0-9]*" | sed -e "s&script_diff_model return *\([0-9]*\)&\1&" )
+
+if [ ! X${ERR_script_diff_model} = X0 ] ; then
+    echo 'Error in script_diff_model :' ${ERR_script_diff_model}
+    exit ${ERR_script_diff_model}
+fi
+
+MODIPSL_SAVE_NAME=$( cat out_script_diff_model | grep "SAVE directory in" | sed -e "s&SAVE directory in  &&" )
+MODIPSL_SAVE=${MODIPSL}/tmp/${MODIPSL_SAVE_NAME}
+if ( [ X${MODIPSL_SAVE_NAME} = X ] || [ ! -d ${MODIPSL_SAVE} ] ) ; then
+    echo 'Error in SaveSourceModifications: no MODIPSL_SAVE_NAME avaible. We STOP'
+    exit 1
+fi
+
+MaxModifiedDate=$( tail -1 ${MODIPSL_SAVE}/Last_log )
+
+cd ${MODIPSL}/tmp
+IGCM_sys_Tar ${RUN_DIR_PATH}/${MODIPSL_SAVE_NAME}.tar ${MODIPSL_SAVE_NAME}
+cd -
+if ( ! ${DEBUG_debug} ) ; then
+    IGCM_sys_Rm -rf ${MODIPSL_SAVE}
+fi
+
+if [ ${MaxModifiedDate} -lt ${ExeOutDateMax} ] ; then
+    IGCM_sys_Put_Out ${MODIPSL_SAVE_NAME}.tar ${R_OUT_EXE}/${PREFIX}_${MODIPSL_SAVE_NAME}_certified.tar
+else
+    IGCM_sys_Put_Out ${MODIPSL_SAVE_NAME}.tar ${R_OUT_EXE}/${PREFIX}_${MODIPSL_SAVE_NAME}_NOTcertified.tar
+fi
+if ( ! ${DEBUG_debug} ) ; then
+    IGCM_sys_Rm ${MODIPSL_SAVE_NAME}.tar
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+if ( ! ${DEBUG_debug} ) ; then
+    IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_TimeSeries_Checker
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_TimeSeries_Checker	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_TimeSeries_Checker	(revision 5899)
@@ -0,0 +1,511 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene-amd export BRIDGE_MSUB_PROJECT=::default_project:: 
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=checking
+
+#D- Low level debug : to perform lib test checks, stack construction and IO functions instrumentation
+DEBUG_debug=false
+
+#D- Messaging : all activities and call stacks will be sent to ipsl servers
+BigBrother=false
+
+# Check that everything went well during time series production
+# Display a short report
+# Launch what's missing
+# For use during a run (not on the end : PeriodState=Completed), it will complete
+# all TS to last PeriodDateEnd value, give by run.card->Configuration->(PeriodDateBegin - 1).
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+# rÃ©pertoire courrant
+CURRENT_DIR=$( pwd )
+
+# Emplacement des cartes
+CARD_DIR=${CARD_DIR:=${CURRENT_DIR}}
+
+# rÃ©pertoire de stockage des sorties des create_ts
+POST_DIR=${POST_DIR:=${CARD_DIR}/OutScript}
+
+if [ ! -d ${CARD_DIR} ]; then
+  echo "No ${CARD_DIR}, we stop here"
+  exit
+fi
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+echo "Hi I'm here to help you complete the time series production you planned according to your *.card."
+echo "This action can potentially submit numbers of jobs (up to 50)"
+echo "This action can potentially remove unnecessary files but I will ALWAYS ask permission to do so"
+echo -e "\033[1;31mDo you want me to run in dryrun mode just telling what I would submit?\033[m"
+echo -e "\033[1;31mOr do you want me to submit job for real? Answer yes in this case.\033[m"
+echo -n " Run for real (y/n) :"
+read ActionAnswer
+
+case ${ActionAnswer} in
+oui|OUI|o|y|yes|YES)
+  echo "OK. I will submit jobs but ask permissions before removing files"
+  action=true
+  ;;
+non|NON|n|no|NO)
+  echo "OK. I won't submit jobs and only print out files I could remove"
+  action=false
+  ;;
+*)
+  echo "I did not recognize your answer. I will stop here."
+  echo "Please respond: oui|OUI|o|y|yes|YES"
+  echo "Or please respond: non|NON|n|no|NO"
+  exit
+  ;;
+esac
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+#==================================
+# Read ListOfComponents section:
+IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents
+
+if [ -f ${CARD_DIR}/run.card ] ; then
+  IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodState
+  IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodDateBegin
+  IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card PostProcessing TimeSeriesCompleted
+  IGCM_debug_Print 1 "DefineVariableFromOption  : run_Configuration"
+  IGCM_debug_PrintVariables 3 run_Configuration_PeriodState
+  IGCM_debug_Print 1 "DefineVariableFromOption  : run_PostProcessing"
+  IGCM_debug_PrintVariables 3 run_PostProcessing_TimeSeriesCompleted
+  if [ X${run_Configuration_PeriodState} != X"Completed" ] ; then
+    DateEnd=$( IGCM_date_AddDaysToGregorianDate $( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateBegin} ) -1 )
+  else
+    DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+  fi
+  CompletedFlag=${run_PostProcessing_TimeSeriesCompleted}
+else
+  DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+  CompletedFlag=""
+fi
+SavedCompletedFlag=${CompletedFlag}
+DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
+
+IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin
+IGCM_date_GetYearMonth ${DateEnd}   YearEnd   MonthEnd
+
+echo
+IGCM_debug_Print 1 "DateBegin for TimeSeries_Checker : "${DateBegin}
+IGCM_debug_Print 1 "DateEnd   for TimeSeries_Checker : "${DateEnd}
+IGCM_debug_Print 1 "CompletedFlag = "${CompletedFlag}
+echo
+
+for comp in ${config_ListOfComponents[*]} ; do
+  # Debug Print
+  IGCM_debug_Print 1 ${comp}
+  # Define component
+  IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
+  eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+  eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+  # Read libIGCM compatibility version in ${compname}.card
+  card=${CARD_DIR}/COMP/${compname}.card
+
+  # Read and Build Output File stuff
+  #IGCM_debug_Print 1 "DefineArrayFromOption  : ${compname}_OutputFiles ${card}"
+  IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+  ListFilesName=${compname}_OutputFiles_List
+  eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+  #
+  if [ X${FileName0} != X${NULL_STR} ] ; then
+    #
+    #IGCM_debug_Print 1 "Component      : ${compname}"
+    #
+    # INITIALISATION
+    #
+    eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+    i=2
+    #
+    until [ $i -ge $NbFiles ]; do
+      #
+      eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
+      #
+      if [ X${flag_post} != XNONE ] ; then
+        #
+        # First of all
+        #
+        IGCM_card_DefineArrayFromSection ${card} ${flag_post}
+        #
+        IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars
+        IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches
+        if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then
+          # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob.
+          unset ListDimension
+          ListDimension[0]=2D
+          ListDimension[1]=3D
+          TimeSeries=false
+          TimeSeries2D=false
+          TimeSeries3D=false
+          chunck=false
+          iLoop=${#ListDimension[*]}
+          j=0
+          until [ $j -ge ${iLoop} ]; do
+            Dimension=${ListDimension[${j}]}
+            IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension}
+            IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension}
+            #
+            # Time series WITHOUT chunk
+            #
+            if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
+              if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then
+                IGCM_debug_Print 2 "${Dimension} time series activated for ${flag_post}"
+                eval TimeSeries${Dimension}=true
+                chunck=false
+              fi
+            fi
+            #
+            # Time series WITH chunk
+            #
+            if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
+              chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} )
+              if [ ! ${chunck_size} = NONE ] &&  [ ! ${chunck_size} = OFF ] ; then
+                IGCM_debug_Print 2 "${Dimension} time series activated with ${chunck_size} chunck for ${flag_post}"
+                eval TimeSeriesChunck${Dimension}=true
+                chunck=true
+              fi
+            fi
+            (( j=j+1 ))
+            #
+            # If TimeSeriesVars list is empty or OFF we skip
+            #
+            if ( [ $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] || \
+              [ ${chunck_size} = OFF ] ) ; then
+              #IGCM_debug_Print 2 "Empty TS : ${compname}_Post_${FILE}_TimeSeriesVars${Dimension}"
+              #(( i=i+3 ))
+              continue
+            fi
+            #
+            #  ICI ON TESTE QUE LES FICHIERS TS SONT LA!
+            #
+            FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' )
+            IGCM_card_DefineArrayFromOption ${card}    Post_${FILE} TimeSeriesVars${Dimension}
+            IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension}
+            #
+            FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' )
+            case ${FlagDir} in
+            *Y)  TS_Dir=TS_YE  ;;
+            *M)  TS_Dir=TS_MO  ;;
+            *D)  TS_Dir=TS_DA  ;;
+            3H|HF)  TS_Dir=TS_HF  ;;
+            INS) TS_Dir=TS_INS ;;
+            esac
+            #
+            # We need LIST of variables not allready produced (useful for standalone mode)
+            #
+            DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
+            IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin
+
+            # Si on n'a pas de chunck, dans ce cas chunck_size=la durÃ©e de la simulation en annÃ©es
+            YearsChunckLength=$( echo ${chunck_size} | sed -e "s/[yY]//" )
+            [ ${chunck} = false ] && YearsChunckLength=$(( YearEnd - YearBegin + 1 ))
+
+            NbYearsChunckLoop=$(( ( YearEnd - YearBegin + 1 ) / YearsChunckLength ))
+            Reste=$(( ( YearEnd - YearBegin + 1 ) % YearsChunckLength ))
+
+            if [ ${Reste} -ne 0 ] ; then
+              NbYearsChunckLoop=$(( NbYearsChunckLoop + 1 ))
+            fi
+
+            if [ ${NbYearsChunckLoop} -eq 1 ] ; then
+              PeriodDateEnd=${DateEnd}
+            else
+              Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} ${YearsChunckLength}Y )
+              PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${Length}-1 )
+            fi
+            #
+            DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir}
+            YearsChunckLoop=1
+            ChunckDebut=${DateBegin}
+            ChunckFin=${PeriodDateEnd}
+            while [ ${YearsChunckLoop} -le ${NbYearsChunckLoop} ] ; do
+              countTotal=0
+              countGood=0
+              countBad=0
+              unset RemoveList
+              unset PotentialCompletedFlag
+              for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do
+                TestedFile=${config_UserChoices_JobName}_${ChunckDebut}_${ChunckFin}_${FlagDir}_${var}.nc
+                #
+                DEBUG_sys=false IGCM_sys_TestDirArchive ${DIRECTORY}
+                if [ $? = 0 ] ; then
+                  Candidat=$( find ${DIRECTORY} -name "${config_UserChoices_JobName}_${ChunckDebut}_*_${FlagDir}_${var}.nc" )
+                else
+                  Candidat=""
+                fi
+                #
+                BestCandidat=${ChunckDebut}
+                #
+                FoundCandidat=false
+                if [ ! "X${Candidat}" = "X" ] ; then
+                  for candid in ${Candidat} ; do
+                    #IGCM_debug_Print 1 -e "\033[1;32m[CompletedFlag CANDIDAT MATCH FOUND]\033[m $( basename ${candid} )"
+                    CandidatEnd=$( echo ${candid}   | awk -F${config_UserChoices_JobName} '{print $3}' | awk -F_ '{print $3}' )
+                    if [ ${CandidatEnd} -gt ${ChunckFin} ] ; then
+                      #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress"
+                      set +A RemoveList ${RemoveList[*]} ${candid}
+                    elif [ ${CandidatEnd} -lt ${ChunckFin} ] ; then
+                      #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress or used as a CompletedFlag baseline"
+                      # We keep the best candidat and remove the others
+                      if [ ${BestCandidat} -lt ${CandidatEnd} ] ; then
+                        if [ ${FoundCandidat} = true ] ; then
+                          set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc
+                        else
+                          FoundCandidat=true
+                        fi
+                        BestCandidat=${CandidatEnd}
+                      else
+                        set +A RemoveList ${RemoveList[*]} ${candid}
+                      fi
+                    fi
+                  done
+                else
+                  # No CompletedFlag candidat found
+                  CandidatCompletedFlag=""
+                fi
+                #
+                if [ ! -f ${DIRECTORY}/${TestedFile} ] ; then
+                  (( countBad = countBad + 1 ))
+                  [ ${countBad} = 1 ] && IGCM_debug_Print 3 "Missing time series from ${FILE} in ${DIRECTORY} :"
+                  IGCM_debug_Print 3 ${TestedFile}
+                  # Then we keep a track of the Best Candidat
+                  if [ ${FoundCandidat} = true ] ; then
+                    if [ ${chunck} = true ] ; then
+                      set +A PotentialCompletedFlag ${PotentialCompletedFlag[*]} ${BestCandidat}
+                    else
+                      eval set +A PotentialCompletedFlag${Dimension} \${PotentialCompletedFlag${Dimension}[*]} \${BestCandidat}
+                    fi
+                  fi
+                else
+                  (( countGood = countGood + 1 ))
+                  # Then we do not need the best candidat if any
+                  [ ${FoundCandidat} = true ] && set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc
+                fi
+                (( countTotal = countTotal + 1 ))
+              done
+
+              SuccessRate=$(( countGood * 100 / countTotal ))
+              if [ ${SuccessRate} -ne 100 ] ; then
+                IGCM_debug_Print 2 -e "\033[1;31m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}"
+              else
+                IGCM_debug_Print 2 -e "\033[1;32m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}"
+              fi
+              echo
+
+              # Remove what's in the RemoveList
+              if [ ${RemoveList} ] ; then
+                IGCM_debug_Print 2 "File(s) that will be removed ${RemoveList[*]}"
+                if [ ${action} = true ] ; then
+                  echo -e "\033[1;32mDo you want to remove them?\033[m"
+                  echo -n " Your answer (y/n) : "
+                  read RemoveAnswer
+                  case ${RemoveAnswer} in
+                  oui|OUI|o|y|yes|YES)
+                    echo "OK. I will erase them"
+                    IGCM_sys_Rm -f ${RemoveList[*]}
+                    ;;
+                  non|NON|n|no|NO)
+                    echo "OK. I won't erase them"
+                    ;;
+                  *)
+                    echo "I did not recognize your answer."
+                    echo "Please respond: oui|OUI|o|y|yes|YES"
+                    echo "Or please respond: non|NON|n|no|NO"
+                    exit
+                    ;;
+                  esac
+                fi
+              fi
+              #[ ${FoundCandidat} = true ] && IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag[*]}"
+              #
+              # TO REWRITE BEGIN
+              #
+              if ( [ ${chunck} = true ] && [ ${SuccessRate} -ne 100 ] ) ; then
+                NbCandidats=${#PotentialCompletedFlag[@]}
+                countCandid=1
+                if [ ${NbCandidats} -eq 0 ] ; then
+                  ChunckCompletedFlag=""
+                  IGCM_debug_Print 2 -e "\033[1;31mNO CompletedFlag\033[m"
+                elif [ ${NbCandidats} -eq 1 ] ; then
+                  ChunckCompletedFlag=${PotentialCompletedFlag[0]}
+                  IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m"
+                elif [ ${NbCandidats} -gt 1 ] ; then
+                  k=1
+                  until [ $k -ge ${NbCandidats} ]; do
+                    ((k_m1=k-1))
+                    if [ ${PotentialCompletedFlag[${k_m1}]} = ${PotentialCompletedFlag[${k}]} ] ; then
+                      ((countCandid=countCandid+1))
+                    fi
+                    ((k=k+1))
+                  done
+                  if [ ${NbCandidats} -eq ${countCandid} ] ; then
+                    ChunckCompletedFlag=${PotentialCompletedFlag[0]}
+                    IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m"
+                  else
+                    ChunckCompletedFlag=${PotentialCompletedFlag[0]}
+                    IGCM_debug_Print 2 -e "\033[1;31mToo Many Potential CompletedFlag\033[m Let start with first CompletedPeriod"
+                    IGCM_debug_Print 2 -e "\033[1;31mYou will have to redo TimeSeries_Checker\033[m for other period."
+                  fi
+                fi
+                #
+                # TO REWRITE END
+                #
+                if [ ${action} = true ] ; then
+                  IGCM_debug_Print 2 -e "\033[1;31mSubmit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}"
+                  listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,DateBegin,PeriodDateEnd,CompletedFlag,TsTask,CompToRead,FlagToRead"
+                  export DEBUG_debug=${DEBUG_debug}
+                  export BigBrother=${BigBrother}
+                  export libIGCM=${libIGCM}
+                  export SUBMIT_DIR=${CARD_DIR}
+                  export POST_DIR=${POST_DIR}
+                  export DateBegin=${ChunckDebut}
+                  export PeriodDateEnd=${ChunckFin}
+                  export CompletedFlag=${ChunckCompletedFlag}
+                  export TsTask=Chunck${Dimension}
+                  export CompToRead=${comp}
+                  export FlagToRead=${i}
+                  export NameToRead=${flag_post}
+                  export listVarEnv=${listVarEnv}
+                  export Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead}
+                  IGCM_sys_MkdirWork ${POST_DIR}
+                  IGCM_debug_Verif_Exit
+                  IGCM_sys_QsubPost create_ts
+                  echo
+                else
+                  IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}"
+                fi
+              fi
+
+              if ( [ ${chunck} = false ] && [ ${SuccessRate} -ne 100 ] ) ; then
+                eval Launch${Dimension}=true
+              fi
+
+              # Date update
+              ChunckDebut=$( IGCM_date_AddDaysToGregorianDate ${ChunckFin} 1 )
+
+              (( YearsChunckLoop = YearsChunckLoop + 1 ))
+
+              if [ ${YearsChunckLoop} -eq ${NbYearsChunckLoop} ] ; then
+                ChunckFin=${DateEnd}
+              else
+                Length=$( IGCM_date_DaysInCurrentPeriod ${ChunckDebut} ${YearsChunckLength}Y )
+                ChunckFin=$( IGCM_date_AddDaysToGregorianDate ${ChunckDebut} ${Length}-1 )
+              fi
+            done
+          done
+        else
+          ListDimension[0]=""
+          TimeSeries=true
+          TimeSeries2D=false
+          TimeSeries3D=false
+          TimeSeriesChunck2D=false
+          TimeSeriesChunck3D=false
+        fi
+      fi
+      (( i=i+3 ))
+    done
+  fi
+done # comp loop
+
+echo
+
+DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
+IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin
+CompletedFlag=${SavedCompletedFlag}
+
+unset CompToRead
+unset FlagToRead
+
+if [ X${Launch2D} = Xtrue ] ; then
+  if [ ${action} = true ] ; then
+    #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag2D[*]}"
+    IGCM_debug_Print 2 -e "\033[1;31mSubmit 2D\033[m without chunck period ${DateBegin}-${DateEnd}"
+    listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,DateBegin,PeriodDateEnd,CompletedFlag,TsTask"
+    export DEBUG_debug=${DEBUG_debug}
+    export BigBrother=${BigBrother}
+    export libIGCM=${libIGCM}
+    export SUBMIT_DIR=${CARD_DIR}
+    export POST_DIR=${POST_DIR}
+    export DateBegin=${DateBegin}
+    export PeriodDateEnd=${DateEnd}
+    export CompletedFlag=${CompletedFlag}
+    export TsTask=2D
+    export listVarEnv=${listVarEnv}
+    export Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}
+    IGCM_sys_MkdirWork ${POST_DIR}
+    IGCM_debug_Verif_Exit
+    IGCM_sys_QsubPost create_ts
+    echo
+  else
+    IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 2D without chunck\033[m period ${DateBegin}-${DateEnd}"
+  fi
+fi
+
+if [ X${Launch3D} = Xtrue ] ; then
+  if [ ${action} = true ] ; then
+    #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag3D[*]}"
+    IGCM_debug_Print 2 -e "\033[1;31mSubmit 3D\033[m without chunck period ${DateBegin}-${DateEnd}"
+    listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,DateBegin,PeriodDateEnd,CompletedFlag,TsTask"
+    export DEBUG_debug=${DEBUG_debug}
+    export BigBrother=${BigBrother}
+    export libIGCM=${libIGCM}
+    export SUBMIT_DIR=${CARD_DIR}
+    export POST_DIR=${POST_DIR}
+    export DateBegin=${DateBegin}
+    export PeriodDateEnd=${DateEnd}
+    export CompletedFlag=${CompletedFlag}
+    export TsTask=3D
+    export listVarEnv=${listVarEnv}
+    export Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}
+    IGCM_sys_MkdirWork ${POST_DIR}
+    IGCM_debug_Verif_Exit
+    IGCM_sys_QsubPost create_ts
+    echo
+  else
+    IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 3D without chunck\033[m  period ${DateBegin}-${DateEnd}"
+  fi
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_additionnal
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_additionnal	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_additionnal	(revision 5899)
@@ -0,0 +1,204 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r ATL_ADD        # Nom du job
+#-Q- curie #MSUB -o ATL_ADD.out_%I
+#-Q- curie #MSUB -e ATL_ADD.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 7200          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r ATL_ADD      # Job name
+#-Q- irene #MSUB -o ATL_ADD.out_%I
+#-Q- irene #MSUB -e ATL_ADD.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd #########################
+#-Q- irene-amd ## IRENE-ROME TGCC/CEA ##
+#-Q- irene-amd #########################
+#-Q- irene-amd #MSUB -r ATL_ADD      # Job name
+#-Q- irene-amd #MSUB -o ATL_ADD.out_%I
+#-Q- irene-amd #MSUB -e ATL_ADD.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = ATL_ADD
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $R_SAVE ; $config_UserChoices_JobName ; $config_UserChoices_TagName ; $YEARS ; $MASTER ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N ATL_ADD
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o ATL_ADD.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N ATL_ADD
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+#########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+#######################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_ATLAS=ATLAS/SE_${YEARS}
+R_OUT_OCE=${R_SAVE}/OCE
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}/ATLAS_ADD_${YEARS}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+
+# --------------------------------------------
+# Insert your commands between III...III lines
+# and precise produced directories to save
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/SE/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc ${RUN_DIR}/SE_grid_T.nc
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/SE/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_U.nc ${RUN_DIR}/SE_grid_U.nc
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/SE/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_V.nc ${RUN_DIR}/SE_grid_V.nc
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/SE/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_W.nc ${RUN_DIR}/SE_grid_W.nc
+
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/ADD -p landscape=true,angle=-90,nup=1x1 ${FER_ATLAS}/atlas_p_ORCA2_add_*.cfg ${config_UserChoices_JobName}
+
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+# Put ferret journal files together
+for file in $( ls ${R_ATLAS}/ADD/*/*jnl ) ; do
+    echo -e "\n\n################################" ;
+    echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/ADD/allferretscript.txt
+
+# Clear some files
+find . \( -name "*.stdout" -o -name "*.jnl" \) -print -exec rm -f {} \;
+
+# Save files
+IGCM_sys_Put_Dir ATLAS ${R_FIGR}
+IGCM_sys_Rm -Rf ATLAS
+IGCM_sys_Rm -f SE_grid_?.nc
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS}
+  [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS}
+fi
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_LMDZ
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_LMDZ	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_LMDZ	(revision 5899)
@@ -0,0 +1,208 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r ATL_LMDZ       # Nom du job
+#-Q- curie #MSUB -o ATL_LMDZ.out_%I
+#-Q- curie #MSUB -e ATL_LMDZ.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 7200          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r ATL_LMDZ      # Job name
+#-Q- irene #MSUB -o ATL_LMDZ.out_%I
+#-Q- irene #MSUB -e ATL_LMDZ.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node::
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ###########################
+#-Q- irene-amd ## IRENE-ROME   TGCC/CEA ##
+#-Q- irene-amd ###########################
+#-Q- irene-amd #MSUB -r ATL_LMDZ      # Job name
+#-Q- irene-amd #MSUB -o ATL_LMDZ.out_%I
+#-Q- irene-amd #MSUB -e ATL_LMDZ.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = ATL_LMDZ
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N ATL_LMDZ
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o ATL_LMDZ.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N ATL_LMDZ
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+######################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+######################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_ATLAS=ATLAS/SE_${YEARS}
+R_OUT_ATM=${R_SAVE}/ATM
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}/ATLAS_LMDZ_${YEARS}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+
+# --------------------------------------------
+# Insert your commands between III...III lines
+# and precise produced directories to save
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+IGCM_sys_Get ${R_OUT_ATM}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc ${RUN_DIR}
+
+# Only LMDZ4 output have Alt variables
+DetectLev=$( ncdump -h ${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc | grep "Alt(Alt)" | wc -l )
+[ ${DetectLev} = 1 ] && LMDZ=LMDZ4 || LMDZ=LMDZ3.3
+
+# Which atlas configuration source are we using?
+ls ${CARD_DIR}/POST/atlas_p_${LMDZ}_diag1_*.cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/ATM -l ${PATH_ATLAS}/atlas_p_${LMDZ}_diag1_*.cfg ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc
+
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+# Put ferret journal files together
+for file in $( ls ${R_ATLAS}/ATM/*/*jnl ) ; do
+    echo -e "\n\n################################" ;
+    echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/ATM/allferretscript.txt
+
+# Clear some files
+find . \( -name "*.stdout" -o -name "*.jnl" \) -print -exec rm -f {} \;
+
+# Save files
+IGCM_sys_Put_Dir ATLAS ${R_FIGR}
+IGCM_sys_Rm -Rf ATLAS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS}
+  [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS}
+fi
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_ORCA_LIM
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_ORCA_LIM	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_ORCA_LIM	(revision 5899)
@@ -0,0 +1,268 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r ATL_OPA        # Nom du job
+#-Q- curie #MSUB -o ATL_OPA.out_%I
+#-Q- curie #MSUB -e ATL_OPA.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 7200          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r ATL_OPA      # Job name
+#-Q- irene #MSUB -o ATL_OPA.out_%I
+#-Q- irene #MSUB -e ATL_OPA.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r ATL_OPA      # Job name
+#-Q- irene-amd #MSUB -o ATL_OPA.out_%I
+#-Q- irene-amd #MSUB -e ATL_OPA.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 2:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = ATL_OPA
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N ATL_OPA
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o ATL_OPA.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N ATL_OPA
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_ATLAS=ATLAS/SE_${YEARS}
+R_OUT_OCE=${R_SAVE}/OCE
+R_OUT_ICE=${R_SAVE}/ICE
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}/ATLAS_ORCALIM_${YEARS}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+
+# --------------------------------------------
+# Insert your commands between III...III lines
+# and precise produced directories to save
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc  ${RUN_DIR}
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_U.nc  ${RUN_DIR}
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_V.nc  ${RUN_DIR}
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_W.nc  ${RUN_DIR}
+IGCM_sys_Get ${R_OUT_ICE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_icemod.nc  ${RUN_DIR}
+
+
+# Which atlas configuration source are we using?
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}_diag1_[abc].cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/OCE_T -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}_diag1_[abc].cfg     ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+
+
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}_diag0_U.cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/OCE_U -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}_diag0_U.cfg         ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_U.nc
+
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}_diag0_V.cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/OCE_V -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}_diag0_V.cfg         ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_V.nc
+
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}_diag0_W.cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+#IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/OCE_W -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}_diag0_W.cfg         ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_W.nc
+
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}_diag0_[defg].cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/OCE   -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}_diag0_[defg].cfg     ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}LIM_diag0_[abc].cfg 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/ICE   -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}LIM_diag0_[abc].cfg  ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_icemod.nc
+
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+# Put ferret journal files together
+for file in $( ls ${R_ATLAS}/OCE_T/*/*jnl ) ; do
+  echo -e "\n\n################################" ;
+  echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/OCE_T/allferretscript.txt
+
+for file in $( ls ${R_ATLAS}/OCE_U/*/*jnl ) ; do
+  echo -e "\n\n################################" ;
+  echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/OCE_U/allferretscript.txt
+
+for file in $( ls ${R_ATLAS}/OCE_V/*/*jnl ) ; do
+  echo -e "\n\n################################" ;
+  echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/OCE_V/allferretscript.txt
+
+for file in $( ls ${R_ATLAS}/OCE/*/*jnl ) ; do
+  echo -e "\n\n################################" ;
+  echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/OCE/allferretscript.txt
+
+for file in $( ls ${R_ATLAS}/ICE/*/*jnl ) ; do
+  echo -e "\n\n################################" ;
+  echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/ICE/allferretscript.txt
+
+# WHILE WAITING FOR A MORE GENERIC SOLUTION
+if ( [ ${config_UserChoices_TagName} = "IPSLCM5" ] || [ ${config_UserChoices_TagName} = "IPSLCM5A" ] || [ ${config_UserChoices_TagName} = "IPSLCM5A-MR" ] || [ ${config_UserChoices_TagName} = "ORCA2_LIM2" ] || [ ${config_UserChoices_TagName} = "ORCA2_LIM2_PISCES" ] ) ; then
+  IGCM_sys_Get ${R_OUT_OCE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_diaptr.nc  ${RUN_DIR} ;
+  atlas -o ${RUN_DIR}/${R_ATLAS}/ZNL   -d -l ${FER_ATLAS}/atlas_l_${RESOL_OCE}_znl.cfg         ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_diaptr.nc ;
+  for file in $( ls ${R_ATLAS}/ZNL/*/*jnl ) ; do
+    echo -e "\n\n################################" ;
+    echo -e "$file\n" ; cat $file ;
+  done > ${R_ATLAS}/ZNL/allferretscript.txt
+fi
+
+# Clear some files
+find . \( -name "*.stdout" -o -name "*.jnl" \) -print -exec rm -f {} \;
+
+# Save files
+IGCM_sys_Put_Dir ATLAS ${R_FIGR}
+IGCM_sys_Rm -Rf ATLAS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_[TUVW].nc
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_icemod.nc
+# WHILE WAITING FOR A MORE GENERIC SOLUTION
+if ( [ ${config_UserChoices_TagName} = "IPSLCM5" ] || [ ${config_UserChoices_TagName} = "IPSLCM5A" ] || [ ${config_UserChoices_TagName} = "IPSLCM5A-MR" ] || [ ${config_UserChoices_TagName} = "ORCA2_LIM2" ] || [ ${config_UserChoices_TagName} = "ORCA2_LIM2_PISCES" ] ) ; then
+  IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_diaptr.nc ;
+fi
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS}
+  [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS}
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_ORCHIDEE
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_ORCHIDEE	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_ORCHIDEE	(revision 5899)
@@ -0,0 +1,206 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r ATL_ORCH       # Nom du job
+#-Q- curie #MSUB -o ATL_ORCH.out_%I
+#-Q- curie #MSUB -e ATL_ORCH.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 7200          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r ATL_ORCH      # Job name
+#-Q- irene #MSUB -o ATL_ORCH.out_%I
+#-Q- irene #MSUB -e ATL_ORCH.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r ATL_ORCH      # Job name
+#-Q- irene-amd #MSUB -o ATL_ORCH.out_%I
+#-Q- irene-amd #MSUB -e ATL_ORCH.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = ATL_ORCH
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N ATL_ORCH
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o ATL_ORCH.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N ATL_ORCH
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_ATLAS=ATLAS/SE_${YEARS}
+R_OUT_SRF=${R_SAVE}/SRF
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}/ATLAS_ORCHIDEE_${YEARS}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+
+# --------------------------------------------
+# Insert your commands between III...III lines
+# and precise produced directories to save
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+IGCM_sys_Get ${R_OUT_SRF}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc ${RUN_DIR}
+
+ls ${CARD_DIR}/POST/ | egrep "atlas_p_(ORCHIDEE|SECHIBA).*\.cfg" 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/SRF -l ${PATH_ATLAS}/atlas_p_ORCHIDEE_diag1_*.cfg \
+                                       ${PATH_ATLAS}/atlas_p_SECHIBA_diag1_*.cfg \
+                                       ${PATH_ATLAS}/atlas_p_ORCHIDEE_diag2_a.cfg  ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc
+
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+# Put ferret journal files together
+for file in $( ls ${R_ATLAS}/SRF/*/*jnl ) ; do
+    echo -e "\n\n################################" ;
+    echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/SRF/allferretscript.txt
+
+# Clear some files
+find . \( -name "*.stdout" -o -name "*.jnl" \) -print -exec rm -f {} \;
+
+# Save files
+IGCM_sys_Put_Dir ATLAS ${R_FIGR}
+IGCM_sys_Rm -Rf ATLAS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS}
+  [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS}
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_PISCES
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_PISCES	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_atlas_PISCES	(revision 5899)
@@ -0,0 +1,218 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r ATL_PIS        # Nom du job
+#-Q- curie #MSUB -o ATL_PIS.out_%I
+#-Q- curie #MSUB -e ATL_PIS.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 7200          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r ATL_PIS      # Job name
+#-Q- irene #MSUB -o ATL_PIS.out_%I
+#-Q- irene #MSUB -e ATL_PIS.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r ATL_PIS      # Job name
+#-Q- irene-amd #MSUB -o ATL_PIS.out_%I
+#-Q- irene-amd #MSUB -e ATL_PIS.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = ATL_PIS
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N ATL_PIS
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o ATL_PIS.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N ATL_PIS
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Christian Ethe
+# Contact: Christian.Ethe__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_ATLAS=ATLAS/SE_${YEARS}
+R_OUT_MBG=${R_SAVE}/MBG
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}/ATLAS_PISCES_${YEARS}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+
+# --------------------------------------------
+# Insert your commands between III...III lines
+# and precise produced directories to save
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+IGCM_sys_Get ${R_OUT_MBG}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_ptrc_T.nc  ${RUN_DIR}
+IGCM_sys_Get ${R_OUT_MBG}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_diad_T.nc  ${RUN_DIR}
+
+
+ls ${CARD_DIR}/POST/atlas_p_${RESOL_OCE}PISCES_diag0_a.cfg 2>/dev/null 1>&2
+
+ls ${CARD_DIR}/POST/ | egrep "atlas_p_${RESOL_OCE}PISCES_(diag1|diag0_a).*\.cfg" 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/MBG_T -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}PISCES_diag1_*.cfg ${PATH_ATLAS}/atlas_p_${RESOL_OCE}PISCES_diag0_a.cfg  ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_ptrc_T.nc
+
+ls ${CARD_DIR}/POST/ | egrep "atlas_p_${RESOL_OCE}PISCES_(diag2_a|diag0_b).*\.cfg" 2>/dev/null 1>&2
+[ ${?} -ne 0 ] && PATH_ATLAS=${FER_ATLAS} || PATH_ATLAS=${CARD_DIR}/POST
+IGCM_sys_atlas -o ${RUN_DIR}/${R_ATLAS}/MBG_F -l ${PATH_ATLAS}/atlas_p_${RESOL_OCE}PISCES_diag2_a.cfg ${PATH_ATLAS}/atlas_p_${RESOL_OCE}PISCES_diag0_b.cfg  ${RUN_DIR}/${config_UserChoices_JobName}_SE_${YEARS}_1M_diad_T.nc
+
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+# Put ferret journal files together
+for file in $( ls ${R_ATLAS}/MBG_T/*/*jnl ) ; do
+    echo -e "\n\n################################" ;
+    echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/MBG_T/allferretscript.txt
+
+for file in $( ls ${R_ATLAS}/MBG_F/*/*jnl ) ; do
+    echo -e "\n\n################################" ;
+    echo -e "$file\n" ; cat $file ;
+done  > ${R_ATLAS}/MBG_F/allferretscript.txt
+# Clear some files
+find . \( -name "*.stdout" -o -name "*.jnl" \) -print -exec rm -f {} \;
+
+# Save files
+IGCM_sys_Put_Dir ATLAS ${R_FIGR}
+
+IGCM_sys_Rm -Rf ATLAS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_ptrc_T.nc
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_diad_T.nc
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS}
+  [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS}
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_PeriodLength
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_PeriodLength	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_PeriodLength	(revision 5899)
@@ -0,0 +1,248 @@
+#!/bin/ksh
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project::
+#-Q- irene export BRIDGE_MSUB_PROJECT=::default_project::
+#-Q- irene-amd export BRIDGE_MSUB_PROJECT=::default_project::
+
+#set -eu
+#set -vx
+
+libIGCM=::modipsl::/libIGCM
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+#D--------------------------------------------------------------------==
+#D-                   -1. User modification place
+#D--------------------------------------------------------------------==
+
+#D- Increased verbosity (1, 2, 3)
+Verbosity=3
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default=true
+DEBUG_debug=false
+
+#D--------------------------------------------------------------------==
+
+echo "clean PeriodLenght script :"
+echo "Script used to clean a PeriodLength from the IGCM_OUT directory !"
+echo "This script will erase files !!! Be careful and read all informations !"
+echo "----"
+echo "It must be called in Experience directory (so-called SUBMIT_DIR)."
+echo "----"
+
+#D--------------------------------------------------------------------==
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+SUBMIT_DIR=$( pwd )
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
+
+#==================================
+# Define default value to keep compatibility with previous card: means before changes due to TGCC
+if [ X${PackDefault} = Xtrue ] ; then
+  [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency}
+else
+  config_Post_PackFrequency=NONE
+fi
+
+#==================================
+# Is the pack active
+if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then
+  Pack=true
+fi
+
+IGCM_sys_TestDirArchive ${R_SAVE}
+[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive"
+
+if [ ! -f ${SUBMIT_DIR}/run.card ]; then
+  echo "You seem NOT to have a run.card in this directory !!"
+  echo "This script will fail because it doesn't know what to do without run.card available."
+  exit 1
+else
+  #===================================#
+  #        Read updated run.card      #
+  #===================================#
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod
+
+  # 
+  if [ X${run_Configuration_CumulPeriod} = X ] ; then
+    echo -e "\033[1;32mCumulPeriod is empty so we want to erase run.card to start properly. Do you want that?"
+    echo -n -e " Your answer (y/n) : \033[m"
+    read reponse
+    case ${reponse} in
+
+    oui|OUI|o|y|yes|YES)
+      echo "OK. Now you can submit the Job : ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}."
+      IGCM_sys_Rm ${SUBMIT_DIR}/run.card
+      ;;
+    non|NON|n|no|NO)
+      echo "Nothing to do !"
+      ;;
+    esac
+    exit 0
+  fi
+
+  PeriodDateEnd=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateEnd} )
+  echo "Search files with ${PeriodDateEnd} in ${R_SAVE}"
+  set +A ListFiles -- $( IGCM_sys_RshArchive "find ${R_SAVE} -name \"*${PeriodDateEnd}*\" " )
+  CountListFiles=${#ListFiles[@]}
+
+  if [ X${Pack} = Xtrue ] ; then
+    echo "Search files with ${PeriodDateEnd} in ${R_BUFR}"
+    set +A ListFilesBuf -- $( IGCM_sys_RshMaster "find ${R_BUFR} -name \"*${PeriodDateEnd}*\" " )
+    CountListFilesBuf=${#ListFilesBuf[@]}
+  else
+    CountListFilesBuf=0
+  fi
+
+  # If exist, erase REBUILD DIR
+  PeriodDateBegin=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateBegin} )
+  CountRebuildDir=0
+  if [ X${config_Post_RebuildFrequency} != X ] ; then
+    set +A RebuildDir -- $( find ${REBUILD_DIR} -type d -name "*${PeriodDateBegin}*" )
+    CountRebuildDir=${#RebuildDir[@]}
+  fi
+
+  IGCM_debug_Print 1 "Number of files to be erased : ${CountListFiles}."
+  if ( [ ${CountListFiles} -gt 0 ] || [ ${CountListFilesBuf} -gt 0 ] ) ; then
+    for file in ${ListFiles[@]} ; do
+      IGCM_debug_Print 2 -e "\033[1;31m ${file}\033[m"
+    done
+    if [ X${Pack} = Xtrue ] ; then
+      for file in ${ListFilesBuf[@]} ; do
+        IGCM_debug_Print 2 -e "\033[1;31m ${file}\033[m"
+      done
+    fi
+    echo -e "\033[1;32mDo you REALLY want to erase all those files ?"
+    echo -n -e " Your answer (y/n) : \033[m"
+    read reponse
+    case ${reponse} in
+
+      oui|OUI|o|y|yes|YES)
+        echo "OK. It will be erased."
+        IGCM_sys_RshArchive "find ${R_SAVE} -name \"*${PeriodDateEnd}*\" -exec rm -f '{}' \;"
+        if [ X${Pack} = Xtrue ] ; then
+          IGCM_sys_RshMaster  "find ${R_BUFR} -name \"*${PeriodDateEnd}*\" -exec rm -f '{}' \;"
+        fi
+        echo "done."
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing to do !"
+        ;;
+    esac
+  fi
+
+  if [ ${CountRebuildDir} -gt 0 ] ; then
+    IGCM_debug_Print 1 "Number of REBUILD Dirs to be erased : ${CountRebuildDir}."
+    for Dir in ${RebuildDir[@]} ; do
+      IGCM_debug_Print 2 -e "\033[1;31m ${Dir}\033[m"
+    done
+
+    echo -e "\033[1;32mDo you REALLY want to erase all those Directories ?"
+    echo -n -e " Your answer (y/n) : \033[m"
+    read reponse
+    case ${reponse} in
+
+      oui|OUI|o|y|yes|YES)
+        echo "OK. It will be erased."
+        find ${REBUILD_DIR} -type d -name "*${PeriodDateBegin}*" -exec rm -Rf '{}' \;
+        echo "done."
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing to do !"
+        ;;
+    esac
+  fi
+
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState
+  if ( [ ${run_Configuration_PeriodState} != "Running" ] && [ ${run_Configuration_PeriodState} != "OnQueue" ] && [ ${run_Configuration_PeriodState} != "Continue" ] ) ; then
+
+    echo -e "\033[1;32mNOW do you want to continue the simulation (Set PeriodState=OnQueue into run.card) ?"
+    echo -n -e " Your answer (y/n) : \033[m"
+    read reponse
+    case ${reponse} in
+
+      oui|OUI|o|y|yes|YES)
+        echo "OK. Now you can submit the Job : ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}."
+        IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "OnQueue"
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing to do !"
+        ;;
+    esac
+  else
+    echo "You can submit the Job : ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}."
+  fi
+
+  if [ X${run_Configuration_CumulPeriod} = X1 ] ; then
+    echo -e "\033[1;32mCumulPeriod=1 so we want to erase run.card to start properly. Do you want that too?"
+    echo -n -e " Your answer (y/n) : \033[m"
+    read reponse
+    case ${reponse} in
+
+      oui|OUI|o|y|yes|YES)
+        echo "OK. Now you can submit the Job : ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}."
+        IGCM_sys_Rm ${SUBMIT_DIR}/run.card
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing to do !"
+        ;;
+    esac
+  else
+    # if not first period
+    Script_Output_Prefix=${config_UserChoices_Script_Output_Prefix:='Script_Output'}
+    Script_Output_Job=${Script_Output_Prefix}_${config_UserChoices_JobName}
+    Script_Output=${Script_Output_Prefix}_${config_UserChoices_JobName}.$( printf "%06d" ${run_Configuration_CumulPeriod} )
+
+    echo -e "\033[1;32mDo you want to change the number in Script_Output? (${Script_Output} into Job) ?"
+    echo -n -e " Your answer (y/n) : \033[m"
+    read reponse
+    case ${reponse} in
+
+      oui|OUI|o|y|yes|YES)
+        cp ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}_SAVED_$$
+        sed -e"s/${Script_Output_Job}.[0-9][0-9][0-9][0-9][0-9][0-9]/${Script_Output}/"  ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}_SAVED_$$  >${SUBMIT_DIR}/Job_${config_UserChoices_JobName}
+        echo "Job : Job_${config_UserChoices_JobName} modified."
+        echo "Old job saved here : Job_${config_UserChoices_JobName}_SAVED_$$"
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing done in Job_${config_UserChoices_JobName} !"
+        ;;
+    esac
+
+  fi
+fi
+exit 0
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_latestPackperiod
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_latestPackperiod	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_latestPackperiod	(revision 5899)
@@ -0,0 +1,303 @@
+#!/bin/ksh
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene-amd export BRIDGE_MSUB_PROJECT=::default_project:: 
+
+#set -eu
+#set -vx
+
+libIGCM=::modipsl::/libIGCM
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+#D--------------------------------------------------------------------==
+#D-                   -1. User modification place
+#D--------------------------------------------------------------------==
+
+#D- Increased verbosity (1, 2, 3)
+Verbosity=3
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default=true
+DEBUG_debug=false
+
+#D--------------------------------------------------------------------==
+
+echo "clean latest PackPeriod script :"
+echo "Script used to clean a Pack Period from the IGCM_OUT directory !"
+echo "This script will erase files !!! Be careful and read all informations !"
+echo "----"
+echo "It must be called in Experience directory (so-called SUBMIT_DIR)."
+echo "----"
+
+#D--------------------------------------------------------------------==
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+SUBMIT_DIR=$( pwd )
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
+
+#==================================
+# Define default value to keep compatibility with previous card: means before changes due to TGCC
+if [ X${PackDefault} = Xtrue ] ; then
+  [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency}
+else
+  config_Post_PackFrequency=NONE
+fi
+
+#==================================
+# Is the pack active
+if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && \
+     [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then
+  Pack=true
+fi
+
+IGCM_sys_TestDirArchive ${R_SAVE}
+[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive"
+
+if [ ! -f ${SUBMIT_DIR}/run.card ]; then
+    echo "You seem NOT to have a run.card in this directory !!"
+    echo "This script will fail because it doesn't know what to do without run.card available."
+    exit 1
+fi
+
+#===================================#
+#        Read updated run.card      #
+#===================================#
+IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState
+IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin
+IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd
+IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod
+if [ X${run_Configuration_CumulPeriod} == X ] ; then
+  ${run_Configuration_CumulPeriod} = 0
+fi
+
+PreviousPeriodDateBegin=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateBegin} )
+PreviousPeriodDateEnd=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateEnd} )
+
+IGCM_date_GetYearMonth ${PreviousPeriodDateEnd} PreviousPeriodYear PreviousPeriodMonth
+
+if [ $# == 1 ] ; then
+  if [ ${#1} != 4 ] ; then
+    echo "You must give a year (SSAA) as argument."
+    exit 1
+  fi
+  ReferenceYear=$1
+else
+  ReferenceYear=${PreviousPeriodYear}
+fi
+RemovedPeriods=0
+
+# Colors
+Red="\033[1;31m"
+Green="\033[1;32m"
+NoColor="\033[0m"
+
+while [ ${PreviousPeriodYear} -ge ${ReferenceYear} ] ; do
+
+  PeriodDateEnd=${PreviousPeriodDateEnd}
+  PeriodDateBegin=${PreviousPeriodDateBegin}
+  PeriodYear=${PreviousPeriodYear}
+  PeriodMonth=${PreviousPeriodMonth}
+
+  echo "Search files with ${PeriodDateEnd} in ${R_SAVE}"
+  unset ListFiles
+  set +A ListFiles -- $( IGCM_sys_RshArchive "find ${R_SAVE} -name \"*${PeriodDateEnd}*\" " )
+  CountListFiles=${#ListFiles[@]}
+
+  if [ X${Pack} = Xtrue ] ; then
+    echo "Search files with ${PeriodDateEnd} in ${R_BUFR}"
+    unset ListFilesBuf
+    set +A ListFilesBuf -- $( IGCM_sys_RshMaster "find ${R_BUFR} -name \"*${PeriodDateEnd}*\" " )
+    CountListFilesBuf=${#ListFilesBuf[@]}
+  else
+    CountListFilesBuf=0
+  fi
+
+  # If exist, erase REBUILD DIR
+  CountRebuildDir=0
+  if [ X${config_Post_RebuildFrequency} != X ] ; then
+    echo "Search directories with ${PeriodDateBegin} in REBUILD_DIR"
+    unset RebuildDir
+    set +A RebuildDir -- $( find ${REBUILD_DIR} -type d -name  "*${PeriodDateBegin}*" )
+    CountRebuildDir=${#RebuildDir[@]}
+  fi
+
+
+  if ( [ ${CountListFiles} -gt 0 ] || [ ${CountListFilesBuf} -gt 0 ] ) ; then
+    IGCM_debug_Print 1 "Number of files to be erased from ${R_SAVE} : ${CountListFiles}."
+    for file in ${ListFiles[@]} ; do
+      IGCM_debug_Print 2 -e "${Red} ${file}${NoColor}"
+    done
+    if [ X${Pack} = Xtrue ] ; then
+      IGCM_debug_Print 1 "Number of files to be erased from ${R_BUFR} : ${CountListFilesBuf}."
+      for file in ${ListFilesBuf[@]} ; do
+        IGCM_debug_Print 2 -e "${Red} ${file}${NoColor}"
+      done
+    fi
+
+    echo -e "${Green}Do you REALLY want to erase all those files ?"
+    echo -n -e " Your answer (y/n) : ${NoColor}"
+
+    read reponse
+    case ${reponse} in
+      oui|OUI|o|y|yes|YES)
+        echo "OK. It will be erased."
+        IGCM_sys_RshArchive "find ${R_SAVE} -name \"*${PeriodDateEnd}*\" -exec rm -f '{}' \;"
+        if [ X${Pack} = Xtrue ] ; then
+          IGCM_sys_RshMaster  "find ${R_BUFR} -name \"*${PeriodDateEnd}*\" -exec rm -f '{}' \;"
+        fi
+        echo "done."
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing to do !"
+        ;;
+    esac
+  fi
+
+  if [ ${CountRebuildDir} -gt 0 ] ; then
+    IGCM_debug_Print 1 "Number of REBUILD Dirs to be erased : ${CountRebuildDir}."
+    for Dir in ${RebuildDir[@]} ; do
+      IGCM_debug_Print 2 -e "${Red} ${Dir}${NoColor}"
+    done
+
+    echo -e "${Green}Do you REALLY want to erase all those Directories ?"
+    echo -n -e " Your answer (y/n) : ${NoColor}"
+
+    read reponse
+    case ${reponse} in
+
+      oui|OUI|o|y|yes|YES)
+        echo "OK. It will be erased."        
+        find ${REBUILD_DIR} -type d -name "*${PeriodDateBegin}*" -exec rm -Rf '{}' \;
+        echo "done."
+        ;;
+      non|NON|n|no|NO)
+        echo "Nothing to do !"
+        ;;
+    esac
+  fi
+
+  (( RemovedPeriods = ${RemovedPeriods} + 1 ))
+
+  # Get previous period begin and end dates
+  PreviousPeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateBegin} -1 )
+  Length=$( IGCM_date_DaysInPreviousPeriod ${PreviousPeriodDateEnd} ${config_UserChoices_PeriodLength} )
+  echo "PreviousPeriodDateEnd, Length : $Length $PreviousPeriodDateEnd"
+  PreviousPeriodDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PreviousPeriodDateEnd} -$(( Length - 1 )) )
+  echo "PreviousPeriodDateBegin PreviousPeriodDateEnd :" $PreviousPeriodDateBegin $PreviousPeriodDateEnd
+  IGCM_date_GetYearMonth ${PreviousPeriodDateEnd} PreviousPeriodYear PreviousPeriodMonth
+
+done
+
+if [ ${RemovedPeriods} == 0 ] ; then
+  echo "Nothing done, exit"
+  exit 0
+fi
+
+IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState
+if ( [ ${run_Configuration_PeriodState} != "Running" ] && \
+     [ ${run_Configuration_PeriodState} != "Continue" ] ) ; then
+
+  (( NewCumulPeriod = ${run_Configuration_CumulPeriod} - ${RemovedPeriods} + 1 ))
+
+  if [ ${NewCumulPeriod} -le 1 ] ; then
+    RemoveRunCard=true
+  else
+    RemoveRunCard=false
+  fi
+
+  Suffix=$( printf '%06i' ${NewCumulPeriod} )
+
+  printf "${Green}Your run.card and Job_${config_UserChoices_JobName} will now be updated\n"
+  printf " - PeriodState = OnQueue ;\n"
+  printf " - PeriodDateBegin, PeriodDateEnd and CumulPeriod ;\n"
+  printf "   %-10s       %-10s          %6i\n" \
+         $( IGCM_date_HumanDigit ${PeriodDateBegin} ) \
+         $( IGCM_date_HumanDigit ${PeriodDateEnd} ) \
+         ${NewCumulPeriod}
+  printf " - ScriptOutput = %s" \
+         "Script_Output_${config_UserChoices_JobName}.${Suffix}"
+  printf " Are you OK ? (y/n) ${NoColor}"
+
+  read reponse
+  case ${reponse} in
+    oui|OUI|o|y|yes|YES)
+      if ( ${RemoveRunCard} ) ; then
+        echo "CumulPeriod=1 so we erase run.card to start properly."
+        IGCM_sys_Rm ${SUBMIT_DIR}/run.card
+      else
+        # Update run.card
+        cp ${SUBMIT_DIR}/run.card ${SUBMIT_DIR}/run.card.old
+        IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "OnQueue"
+        IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod ${NewCumulPeriod}
+        IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin \
+                              $( IGCM_date_HumanDigit ${PeriodDateBegin} )
+        IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd \
+                              $( IGCM_date_HumanDigit ${PeriodDateEnd} )
+        # Update job
+        cp Job_${config_UserChoices_JobName} Job_${config_UserChoices_JobName}.old
+        sed -e "s/\(#.*Script_Output_${config_UserChoices_JobName}\.\)\([0-9]*\)\(.*\)/\1${Suffix}\3/" \
+            Job_${config_UserChoices_JobName} > Job_${config_UserChoices_JobName}.tmp
+        mv Job_${config_UserChoices_JobName}.tmp Job_${config_UserChoices_JobName}
+      fi
+      echo "OK. Now you can submit the Job : ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}."
+      ;;
+    non|NON|n|no|NO)
+      echo "Nothing to do !"
+      ;;
+  esac
+
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted
+  if [ ! X${run_PostProcessing_TimeSeriesCompleted} = X ] ; then
+
+    printf "${Green}TimeSeriesCompleted in run.card : ${run_PostProcessing_TimeSeriesCompleted}. Do we need to initialize it? (y/n) ${NoColor}"
+    
+    read reponse
+    case ${reponse} in
+    oui|OUI|o|y|yes|YES)
+      #Update run.card 
+      cp ${SUBMIT_DIR}/run.card ${SUBMIT_DIR}/run.card.old
+      IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted ""
+      ;;
+    *)
+      echo "Nothing to do !"
+      ;;
+    esac
+  fi
+
+else
+  echo "You can submit the Job : ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}."
+fi
+
+exit 0
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_month
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_month	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_month	(revision 5899)
@@ -0,0 +1,9 @@
+#!/bin/ksh
+#---------------------------------------------------------------------
+#- Cleaning directories
+#---------------------------------------------------------------------
+  
+echo ""
+echo "This script has been renamed. Now please use clean_PeriodLength.job in libIGCM directory."
+echo "See documentation https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocGmonitor#Unknownerror"
+echo ""
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_year
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_year	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_clean_year	(revision 5899)
@@ -0,0 +1,9 @@
+#!/bin/ksh
+#---------------------------------------------------------------------
+#- Cleaning directories
+#---------------------------------------------------------------------
+
+echo ""
+echo "This script has been renamed. Now please use clean_latestPackperiod.job in libIGCM directory."
+echo "See documentation https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocGmonitor#Unknownerror"
+echo ""
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_multi_se
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_multi_se	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_multi_se	(revision 5899)
@@ -0,0 +1,514 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r MULTISE        # Nom du job
+#-Q- curie #MSUB -o MULTISE.out_%I
+#-Q- curie #MSUB -e MULTISE.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 36000          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r MULTISE      # Job name
+#-Q- irene #MSUB -o MULTISE.out_%I
+#-Q- irene #MSUB -e MULTISE.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 7200         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r MULTISE     # Job name
+#-Q- irene-amd #MSUB -o MULTISE.out_%I
+#-Q- irene-amd #MSUB -e MULTISE.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = MULTISE
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $POST_DIR ; $Script_Post_Output ; $MASTER ; $DateBegin ; $PeriodDateEnd ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N MULTISE
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o MULTISE.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N MULTISE
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD ###PBS -q h12       # Queue for 12 hours at ciclad only
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Marie-Alice Foujols
+# Contact: Marie-Alice.Foujols__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project:: 
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#D- Flag to determine atlas job's output directory
+#D- Default : value from libIGCM_post.ksh if any
+POST_DIR=${POST_DIR:=${PBS_O_WORKDIR:=$(pwd)}}
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- TEMPORARY Flag to determine atmospheric resolution
+#D- Default : value from atmospheric driver if any
+RESOL_ATM=${RESOL_ATM:=ALL}
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SRF=ALL
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SBG=ALL
+
+#D- TEMPORARY Flag to determine ocean resolution
+#D- Default : value from ocean driver if any
+RESOL_OCE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine ice resolution
+#D- Default : value from ice driver if any
+RESOL_ICE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine marine biogeochemistry resolution
+#D- Default : value from ice driver if any
+RESOL_MBG=${RESOL_OCE:=ORCA2}
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+  CARD_DIR=${SUBMIT_DIR}
+else
+  CARD_DIR=${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Read ListOfComponents section:
+IGCM_card_DefineArrayFromSection   ${CARD_DIR}/config.card ListOfComponents
+
+#==================================
+# Read SeasonalFrequency:
+IGCM_card_DefineArrayFromSection   ${CARD_DIR}/config.card Post
+
+#
+# If option MultiSeasonalFrequency is not found (optionnal) put MultiSeasonalFrequency=50Y
+#
+FoundMultiSeasonal=false
+for option in ${config_Post[*]} ; do
+  if [ ${option} = MultiSeasonalFrequency ] ; then
+    FoundMultiSeasonal=true
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post MultiSeasonalFrequency
+  fi
+done
+if [ ! X${FoundMultiSeasonal} = Xtrue ] ; then
+  config_Post_MultiSeasonalFrequency=50Y
+fi
+#
+IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post SeasonalFrequency
+#
+# Determine period for seasonnal average. Default : value from AA_job if any
+#
+DateBegin=${DateBegin:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )}
+#
+PeriodDateEnd=${PeriodDateEnd:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )}
+#
+IGCM_debug_Print 1 "DefineVariableFromOption : Post "
+IGCM_debug_PrintVariables 3 config_Post_SeasonalFrequency
+IGCM_debug_PrintVariables 3 config_Post_MultiSeasonalFrequency
+echo
+
+#
+freq=$( echo ${config_Post_SeasonalFrequency} |  sed -e "s/[yY]//" )
+#
+multifreq=$( echo ${config_Post_MultiSeasonalFrequency} |  sed -e "s/[yY]//" )
+#
+DIR_OUT=SE_${multifreq}Y
+#
+an_multi_fin=$(( $( IGCM_date_ConvertGregorianDateToJulian ${PeriodDateEnd} ) / 1000 ))
+an_multi_deb=$( IGCM_date_YearDigit $(( an_multi_fin - multifreq + 1 )) )
+an_multi_fin=$( IGCM_date_YearDigit ${an_multi_fin} )
+#
+# For each component selected determine which files need post-processing
+#
+for comp in ${config_ListOfComponents[*]} ; do
+  #
+  IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
+  eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+  #
+  card=${CARD_DIR}/COMP/${compname}.card
+  IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+  #
+  ListFilesName=${compname}_OutputFiles_List
+  eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+  #
+  if [ X${FileName0} != X${NULL_STR} ] ; then
+    #
+    # INITIALISATION
+    #
+    eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+    typeset i=2
+    #
+    until [ $i -gt $NbFiles ]; do
+      #
+      eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
+      #
+      if [ X${flag_post} != XNONE ] ; then
+        #
+        # Check if seasonal is required for this file
+        #
+        IGCM_card_DefineArrayFromSection ${card} ${flag_post}
+        #
+        # Seasonal case : If option Seasonal is not found (old cards) put SEASONAL ON by default
+        #
+        # variable option allready typeset above
+        for option in $( eval echo \${${compname}_${flag_post}[*]} ) ; do
+          if [ ${option} = Seasonal ] ; then
+            FoundSeasonal=true
+            IGCM_card_DefineVariableFromOption ${card} ${flag_post} Seasonal
+          fi
+        done
+        #
+        if [ ! X${FoundSeasonal} = Xtrue ] ; then
+          eval ${compname}_${flag_post}_Seasonal=ON
+        fi
+        #
+        if [ ! X$( eval echo \${${compname}_${flag_post}_Seasonal} ) = XON ] ; then
+          (( i=i+3 ))
+          continue
+        fi
+        #
+        # CREATE LIST
+        #
+        FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' )
+        #
+        DIRECTORY=${R_SAVE}/${comp}/Analyse/SE
+        #
+        MULTI_DIRECTORY=${R_SAVE}/${comp}/Analyse/${DIR_OUT}
+        #
+        TestedFile=${config_UserChoices_JobName}_SE_${an_multi_deb}_${an_multi_fin}_${FILE}.nc
+        #
+        IGCM_sys_TestFileArchive ${MULTI_DIRECTORY}/${TestedFile}
+        if [ ! $? = 0 ] ; then
+          eval set +A LISTE_FILE_${comp} \$\{LISTE_FILE_${comp}[*]} ${FILE}
+        fi
+      fi
+      (( i=i+3 ))
+    done # until [ $i -eq $NbFiles ]
+  fi
+done         # for comp
+
+for comp in ${config_ListOfComponents[*]} ; do
+  #
+  eval R_OUT_${comp}=${R_SAVE}/${comp}
+  #
+  i=0
+  for file in $( eval echo \${LISTE_FILE_${comp}[*]} ); do
+    #
+    RESULT_MULTI_SE=${config_UserChoices_JobName}_SE_${an_multi_deb}_${an_multi_fin}_${file}.nc
+    # Do not redo an existing SE
+    IGCM_sys_TestFileArchive ${R_SAVE}/${comp}/Analyse/${DIR_OUT}/${RESULT_MULTI_SE}
+    if [ $? = 0 ] ; then
+      continue
+    fi
+    #
+    eval file_path=\${R_OUT_${comp}}/Analyse/SE/
+    #
+    (( an = an_multi_deb ))
+    # Initialize array
+    unset liste_file_se
+    unset liste_file_se_tmp
+    while [ ${an} -le ${an_multi_fin} ] ; do
+      #
+      an_deb=$(printf "%04i\n" ${an} )
+      #
+      (( an_fin = an_deb + freq - 1 ))
+      date=${an_deb}_${an_fin}
+      #
+      liste_file_se[${#liste_file_se[*]}]=${file_path}${config_UserChoices_JobName}_SE_${date}_${file}.nc
+      liste_file_se_tmp[${#liste_file_se_tmp[*]}]=${config_UserChoices_JobName}_SE_${date}_${file}.nc
+      (( an = an + freq ))
+    done
+    #
+    IGCM_sys_Get /l liste_file_se[*] ${RUN_DIR_PATH}
+    IGCM_debug_Verif_Exit
+    # Search of common list of variables to be treated
+    nbfile=0
+    for file_common_var in ${liste_file_se_tmp[*]} ; do
+      ncdump -h ${file_common_var} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> tmpfile_ncra
+      (( nbfile = nbfile + 1 ))
+    done
+    list_var_final_ncra=`cat tmpfile_ncra | sort | uniq -c | awk -v nbfile=$nbfile '{if ($1 == nbfile) {print $2}}' | paste -s -d ','`
+    IGCM_sys_Rm tmpfile_ncra
+
+    # detect time counter : time or time_counter ie unlimited variable
+    var_unlim=$(ncdump -h ${liste_file_se_tmp[1]}|grep UNLIMITED|awk '{print $1}')
+
+    for mois in  01 02 03 04 05 06 07 08 09 10 11 12 ; do
+      #
+      (( nb = ${mois} - 1 ))
+      #
+      OUT_SE[${nb}]=${config_UserChoices_JobName}_SE${mois}_${an_deb}_${an_fin}_${file}.nc
+      IGCM_sys_ncra -O -v ${list_var_final_ncra} -d ${var_unlim},${nb},,12 ${liste_file_se_tmp[*]} ${OUT_SE[${nb}]}
+    done
+    IGCM_sys_Rm ${liste_file_se_tmp[*]}
+    #
+
+    # Search of common list of variables to be treated
+    nbfile=0
+    for file_common_var in ${OUT_SE[*]} ; do
+      ncdump -h ${file_common_var} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> tmpfile_ncrcat
+      (( nbfile = nbfile + 1 ))
+    done
+    list_var_final_ncrcat=`cat tmpfile_ncrcat | sort | uniq -c | awk -v nbfile=$nbfile '{if ($1 == nbfile) {print $2}}' | paste -s -d ','`
+    IGCM_sys_Rm tmpfile_ncrcat
+
+    IGCM_sys_ncrcat -O -v ${list_var_final_ncrcat} ${OUT_SE[*]} ${RESULT_MULTI_SE}
+    #
+    IGCM_sys_Rm ${OUT_SE[*]}
+
+    # Put correct climatological axis following calendar
+    case ${config_UserChoices_CalendarType} in
+      360d|360_day)
+      # 360 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15, 45, 75, 105, 135, 165, 195, 225, 255, 285, 315, 345.} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 30, 30, 60, 60, 90, 90, 120, 120, 150, 150, 180, 180, 210, 210, 240, 240, 270, 270, 300, 300, 330, 330, 360.} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"360_day\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+      noleap|365_day)
+      # 365 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15.5, 45, 74.5, 105, 135.5, 166, 196.5, 227.5, 258, 288.5, 319, 349.5} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 31, 31, 59, 59, 90, 90, 120, 120, 151, 151, 181, 181, 212, 212, 243, 243, 273, 273, 304, 304, 334, 334, 365.} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"365_day\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+      all_leap|366_day)
+      # 366 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15.5, 45.5, 75.5, 106, 136.5, 167, 197.5, 228.5, 259, 289.5, 320, 350.5} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 31, 31, 60, 60, 91, 91, 121, 121, 152, 152, 182, 182, 213, 213, 244, 244, 274, 274, 305, 305, 335, 335, 366.} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"366_day\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+      leap|gregorian|standard)
+      # 365.2425 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 31, 31, 59.2425, 59.2425, 90.2425, 90.2425, 120.2425, 120.2425, 151.2425, 151.2425, 181.2425, 181.2425, 212.2425, 212.2425, 243.2425, 243.2425, 273.2425, 273.2425, 304.2425, 304.2425, 334.2425, 334.2425, 365.2425} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"gregorian\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+    esac
+    eval IGCM_sys_ncap2 -Oh -s $ncap2cmd ${RESULT_MULTI_SE} tmp.nc
+    IGCM_sys_Rm ${RESULT_MULTI_SE}
+    IGCM_sys_Mv tmp.nc ${RESULT_MULTI_SE}
+    #
+    eval IGCM_sys_Put_Out ${RESULT_MULTI_SE} \${R_OUT_${comp}}/Analyse/${DIR_OUT}/${RESULT_MULTI_SE}
+    IGCM_sys_Rm ${RESULT_MULTI_SE}
+    #
+  done
+done
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  for comp in ${config_ListOfComponents[*]} ; do
+    IGCM_sys_TestDirArchive ${R_SAVE}/${comp}/Analyse/${DIR_OUT}
+    [ $? = 0 ] && IGCM_sys_Put_Dods ${comp}/Analyse/${DIR_OUT}
+  done
+fi
+
+# Temporal coverage id for atlas
+YEARS=${an_multi_deb}_${an_multi_fin}
+
+export DEBUG_debug; export BigBrother ; export libIGCM; export SUBMIT_DIR; export POST_DIR; export Script_Output ;
+export StandAlone ; export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_MBG ; export RESOL_SRF ;
+export RESOL_SBG ; export YEARS; export DIR_OUT
+listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG,YEARS,DIR_OUT"
+export listVarEnv;
+
+#D-
+# --------------------------------------------------------------------
+#D- Test if all was right before ATLAS
+# --------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${config_UserChoices_TagName} = "IPSLCM4_v1_OASIS3" ] || \
+   [ ${config_UserChoices_TagName} = "IPSLCM4_v2" ]        || \
+   [ ${config_UserChoices_TagName} = "IPSL_ESM_V1" ] ; then
+  #
+  export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+  export Script_Post_Output=atlas_LDMZ.${PeriodDateEnd}     ;
+  IGCM_sys_QsubPost atlas_LMDZ                              ;
+  export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+  export Script_Post_Output=additionnal.${PeriodDateEnd}    ;
+  IGCM_sys_QsubPost additionnal                             ;
+  #
+elif [ ${config_UserChoices_TagName} = "IPSLCM5" ]         || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5A" ]        || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5B" ]        || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5A-MR" ]     || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5A2" ]       || \
+     [ ${config_UserChoices_TagName} = "IPSLCM6" ] ; then
+  export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+  export Script_Post_Output=atlas_LDMZ.${PeriodDateEnd}     ;
+  IGCM_sys_QsubPost atlas_LMDZ                              ;
+  export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+  export Script_Post_Output=atlas_PISCES.${PeriodDateEnd}   ;
+  IGCM_sys_QsubPost atlas_PISCES                            ;
+  #
+elif [ ${config_UserChoices_TagName} = "LMDZ4OR" ]         || \
+     [ ${config_UserChoices_TagName} = "LMDZOR" ]          || \
+     [ ${config_UserChoices_TagName} = "LMDZ4OR_v2" ] ; then
+  #
+  export Script_Post_Output=atlas_LDMZ.${PeriodDateEnd}     ;
+  IGCM_sys_QsubPost atlas_LMDZ                              ;
+  export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+  #
+elif [ ${config_UserChoices_TagName} = "LMDZ" ] ; then
+  #
+  export Script_Post_Output=atlas_LDMZ.${PeriodDateEnd}     ;
+  IGCM_sys_QsubPost atlas_LMDZ                              ;
+  #
+elif [ ${config_UserChoices_TagName} = "OL" ]              || \
+     [ ${config_UserChoices_TagName} = "OL2" ] ; then
+  #
+  export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+  #
+elif [ ${config_UserChoices_TagName} = "ORCA2_LIM" ]       || \
+     [ ${config_UserChoices_TagName} = "ORCA2_LIM2" ]      || \
+     [ ${config_UserChoices_TagName} = "ORCA2_LIM3" ] ; then
+  #
+  export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+  #
+elif [ ${config_UserChoices_TagName} = "ORCA2_LIM2_PISCES" ] || \
+     [ ${config_UserChoices_TagName} = "ORCA2_LIM3_PISCES" ] ; then
+  #
+  export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+  IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+  export Script_Post_Output=atlas_PISCES.${PeriodDateEnd}   ;
+  IGCM_sys_QsubPost atlas_PISCES                            ;
+  #
+elif [ ${config_UserChoices_TagName} = "ORCA2_OFF_PISCES" ] ; then
+  #
+  export Script_Post_Output=atlas_PISCES.${PeriodDateEnd}   ;
+  IGCM_sys_QsubPost atlas_PISCES                            ;
+  #
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_se
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_se	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_se	(revision 5899)
@@ -0,0 +1,727 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r SE             # Nom du job
+#-Q- curie #MSUB -o SE.out_%I
+#-Q- curie #MSUB -e SE.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 36000          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r SE            # Job name
+#-Q- irene #MSUB -o SE.out_%I
+#-Q- irene #MSUB -e SE.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 36000         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r SE     # Job name
+#-Q- irene-amd #MSUB -o SE.out_%I
+#-Q- irene-amd #MSUB -e SE.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 36000          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh 
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=SE         # Job Name
+#-Q- jeanzay #SBATCH --output=SE.out_%I    # standard output
+#-Q- jeanzay #SBATCH --error=SE.out_%I     # error output
+#-Q- jeanzay #SBATCH -N  1                        # Number of core
+#-Q- jeanzay #SBATCH --partition=prepost          # Post-processing partition
+#-Q- jeanzay #SBATCH --time=10:00:00       # Wall clock limit (seconds)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 10:00:00
+#-Q- ada # Memory required for ncrcat
+#-Q- ada # @ as_limit = 30Gb
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = SE
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $POST_DIR ; $Script_Post_Output ; $MASTER ; $DateBegin ; $PeriodDateEnd ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N SE
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o SE.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N SE
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD ###PBS -q h12       # Queue for 12 hours at ciclad only
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#D- Flag to determine if rebuild process has been performed asynchronously
+#D- Possible value true or false.
+#D- If true raw files has allready been patched by rebuild job
+#D- If false create_ts will patch the raw files
+#D- Default : Value from AA_job if any. Usefull in StandAlone case.
+RebuildFrequency=${RebuildFrequency:=true}
+
+#D- Flag to determine atlas job's output directory
+#D- Default : value from libIGCM_post.ksh if any
+POST_DIR=${POST_DIR:=${PBS_O_WORKDIR:=$(pwd)}}
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- TEMPORARY Flag to determine atmospheric resolution
+#D- Default : value from atmospheric driver if any
+RESOL_ATM=${RESOL_ATM:=ALL}
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SRF=ALL
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SBG=ALL
+
+#D- TEMPORARY Flag to determine ocean resolution
+#D- Default : value from ocean driver if any
+RESOL_OCE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine ice resolution
+#D- Default : value from ice driver if any
+RESOL_ICE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine marine biogeochemistry resolution
+#D- Default : value from ice driver if any
+RESOL_MBG=${RESOL_OCE:=ORCA2}
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Define default value to keep compatibility with previous card: means before changes due to TGCC
+if [ X${PackDefault} = Xtrue ] ; then
+  [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency}
+else
+  config_Post_PackFrequency=NONE
+fi
+
+#==================================
+# If pack is active then PackFrequency overule the config_UserChoices_PeriodLength
+if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then
+  config_UserChoices_PeriodLength=${config_Post_PackFrequency}
+fi
+
+#==================================
+# Read ListOfComponents section:
+IGCM_card_DefineArrayFromSection   ${CARD_DIR}/config.card ListOfComponents
+
+#==================================
+# Read SeasonalFrequency:
+IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post SeasonalFrequency
+
+#
+# Determine period for seasonnal average. Default : value from AA_job if any
+#
+DateBegin=${DateBegin:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )}
+#
+PeriodDateEnd=${PeriodDateEnd:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )}
+#
+freq=$( echo ${config_Post_SeasonalFrequency} |  sed -e "s/[yY]//" )
+#
+an_fin=$(( $( IGCM_date_ConvertGregorianDateToJulian ${PeriodDateEnd} ) / 1000 ))
+an_deb=$( IGCM_date_YearDigit $(( an_fin - freq + 1 )) )
+an_fin=$( IGCM_date_YearDigit ${an_fin} )
+#
+# For each component selected determine which files need post-processing
+#
+for comp in ${config_ListOfComponents[*]} ; do
+  #
+  IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
+  eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+  #
+  card=${CARD_DIR}/COMP/${compname}.card
+  IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+  #
+  ListFilesName=${compname}_OutputFiles_List
+  eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+  #
+  if [ X${FileName0} != X${NULL_STR} ] ; then
+    #
+    # INITIALISATION
+    #
+    eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+    typeset i=2
+    #
+    until [ $i -gt $NbFiles ]; do
+      #
+      eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
+      #
+      if [ X${flag_post} != XNONE ] ; then
+        #
+        # Check if seasonal is required for this file
+        #
+        IGCM_card_DefineArrayFromSection ${card} ${flag_post}
+        #
+        # Seasonal case : If option Seasonal is not found (old cards) put SEASONAL ON by default
+        #
+        # variable option allready typeset above
+        for option in $( eval echo \${${compname}_${flag_post}[*]} ) ; do
+          if [ ${option} = Seasonal ] ; then
+            FoundSeasonal=true
+            IGCM_card_DefineVariableFromOption ${card} ${flag_post} Seasonal
+          fi
+        done
+        #
+        if [ ! X${FoundSeasonal} = Xtrue ] ; then
+            eval ${compname}_${flag_post}_Seasonal=ON
+        fi
+        #
+        if [ ! X$( eval echo \${${compname}_${flag_post}_Seasonal} ) = XON ] ; then
+          (( i=i+3 ))
+          continue
+        fi
+        #
+        # CREATE LIST
+        #
+        FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' )
+        #
+        DIRECTORY=${R_SAVE}/${comp}/Analyse/SE
+        #
+        TestedFile=${config_UserChoices_JobName}_SE_${an_deb}_${an_fin}_${FILE}.nc
+        #
+        IGCM_sys_TestFileArchive ${DIRECTORY}/${TestedFile}
+        if [ ! $? = 0 ] ; then
+          eval set +A LISTE_FILE_${comp} \$\{LISTE_FILE_${comp}[*]} ${FILE}
+          if [ ! ${RebuildFrequency} = true ] ; then
+            IGCM_card_DefineArrayFromOption ${card} Post_${FILE} Patches
+            eval set +A LISTE_PATCHES_${FILE} \$\{${compname}_Post_${FILE}_Patches[*]}
+            if [ X$( eval echo \${LISTE_PATCHES_${FILE}[0]} ) !=  X${NULL_STR} ]; then
+              for Patch in $( eval echo \${LISTE_PATCHES_${FILE}[*]} ); do
+                if [ Xload${Patch} != X ] ; then
+                  . ${libIGCM}/libIGCM_post/IGCM_${Patch}.ksh
+                  eval load${Patch}=loaded
+                fi
+              done
+            fi
+          fi
+        fi
+      fi
+      (( i=i+3 ))
+    done # until [ $i -eq $NbFiles ]
+  fi
+done         # for comp
+
+for comp in ${config_ListOfComponents[*]} ; do
+  #
+  eval R_OUT_${comp}=${R_SAVE}/${comp}
+  #
+  i=0
+  for file in $( eval echo \${LISTE_FILE_${comp}[*]} ); do
+    #
+    # Determine in which output can we find file
+    # IE : Output/MO or Output/DA or ...
+    #
+    FlagDir=$( echo ${file} | awk -F "_" '{print $1}' )
+    case ${FlagDir} in
+      1Y)    FreqDir=YE  ;;
+      1M)    FreqDir=MO  ;;
+      5D|1D) FreqDir=DA  ;;
+      HF)    FreqDir=HF  ;;
+      3H)    FreqDir=HF  ;;
+      INS)   FreqDir=INS ;;
+    esac
+    #
+    RESULT_SE=${config_UserChoices_JobName}_SE_${an_deb}_${an_fin}_${file}.nc
+    # Do not redoo an existing SE
+    IGCM_sys_TestFileArchive ${R_SAVE}/${comp}/Analyse/SE/${RESULT_SE}
+    if [ $? = 0 ] ; then
+      continue
+    fi
+    #
+    eval file_path=\${R_OUT_${comp}}/Output/${FreqDir}/
+    #
+    case ${config_UserChoices_PeriodLength} in
+      # For Yearly simulation :
+      *Y|*y)
+        PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[yY]//' )
+        (( an = an_deb ))
+        # Initialize array
+        unset liste_file_se
+        unset liste_file_se_tmp
+        while [ ${an} -le ${an_fin} ] ; do
+          #
+          an4=$(printf "%04i\n" ${an} )
+          #
+          diy=$( IGCM_date_DaysInCurrentPeriod ${an4}0101 ${config_UserChoices_PeriodLength} )
+          afin=$( IGCM_date_AddDaysToGregorianDate ${an4}0101 $(( diy - 1 )) )
+          #
+          date=${an4}0101_${afin}
+          #
+          liste_file_se[${#liste_file_se[*]}]=${file_path}${config_UserChoices_JobName}_${date}_${file}.nc
+          liste_file_se_tmp[${#liste_file_se_tmp[*]}]=${config_UserChoices_JobName}_${date}_${file}.nc
+          (( an = an + ${PeriodLengthInYears} ))
+        done
+        #
+        IGCM_sys_Get /l liste_file_se[*] ${RUN_DIR_PATH}
+        IGCM_debug_Verif_Exit
+
+        # Apply IGCM_Patch if needed
+        if [ ! ${RebuildFrequency} = true ] ; then
+          if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) !=  X${NULL_STR} ]; then
+            for file_t in $( eval echo ${liste_file_se_tmp[*]} ); do
+              for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do
+                IGCM_${Patch} ${file_t}
+              done
+            done
+          fi
+        fi
+
+        # Search of common list of variables to be treated
+        nbfile=0
+        for file_common_var in ${liste_file_se_tmp[*]} ; do
+          ncdump -h ${file_common_var} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> tmpfile_ncra
+          (( nbfile = nbfile + 1 ))
+        done
+        list_var_final_ncra=`cat tmpfile_ncra | sort | uniq -c | awk -v nbfile=$nbfile '{if ($1 == nbfile) {print $2}}' | paste -s -d ','`
+        IGCM_sys_Rm tmpfile_ncra
+
+        # detect time counter : time or time_counter ie unlimited variable
+        var_unlim=$(ncdump -h ${liste_file_se_tmp[0]}|grep UNLIMITED|awk '{print $1}')
+
+        for mois in  01 02 03 04 05 06 07 08 09 10 11 12 ; do
+          #
+          (( nb = ${mois} - 1 ))
+          #
+          OUT_SE[${nb}]=${config_UserChoices_JobName}_SE${mois}_${an_deb}_${an_fin}_${file}.nc
+          IGCM_sys_ncra -O -v ${list_var_final_ncra} -d ${var_unlim},${nb},,12 ${liste_file_se_tmp[*]} ${OUT_SE[${nb}]}
+        done
+        IGCM_sys_Rm ${liste_file_se_tmp[*]}
+        ;;
+      # For Monthly simulation :
+      1M|1m)
+        for mois in 01 02 03 04 05 06 07 08 09 10 11 12 ; do
+          #
+          (( nb = ${mois} - 1 ))
+          #
+          OUT_SE[${nb}]=${config_UserChoices_JobName}_SE${mois}_${an_deb}_${an_fin}_${file}.nc
+          #
+          (( an = an_deb ))
+          # Initialize array
+          unset liste_file_se
+          unset liste_file_se_tmp
+          while [ ${an} -le ${an_fin} ] ; do
+            moisL=$( IGCM_date_DaysInMonth ${an} ${mois} )
+            #
+            an4=$(printf "%04i\n" ${an} )
+            #
+            date=${an4}${mois}01_${an4}${mois}${moisL}
+            #
+            liste_file_se[${#liste_file_se[*]}]=${file_path}${config_UserChoices_JobName}_${date}_${file}.nc
+            liste_file_se_tmp[${#liste_file_se_tmp[*]}]=${config_UserChoices_JobName}_${date}_${file}.nc
+
+            (( an = an + 1 ))
+          done
+          #
+          IGCM_sys_Get /l liste_file_se[*] ${RUN_DIR_PATH}
+          IGCM_debug_Verif_Exit
+
+          # Apply IGCM_Patch if needed
+          if [ ! ${RebuildFrequency} = true ] ; then
+            if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) !=  X${NULL_STR} ]; then
+              for file_t in $( eval echo ${liste_file_se_tmp[*]} ); do
+                for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do
+                  IGCM_${Patch} ${file_t}
+                done
+              done
+            fi
+          fi
+
+          # Search of common list of variables to be treated
+          nbfile=0
+          for file_common_var in ${liste_file_se_tmp[*]} ; do
+            ncdump -h ${file_common_var} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> tmpfile_ncra
+            (( nbfile = nbfile + 1 ))
+          done
+            list_var_final_ncra=`cat tmpfile_ncra | sort | uniq -c | awk -v nbfile=$nbfile '{if ($1 == nbfile) {print $2}}' | paste -s -d ','`
+          IGCM_sys_Rm tmpfile_ncra
+
+          IGCM_sys_ncra -O -v ${list_var_final_ncra} ${liste_file_se_tmp[*]} ${OUT_SE[${nb}]}
+
+          IGCM_sys_Rm ${liste_file_se_tmp[*]}
+        done
+        ;;
+      *D|*d)
+        for mois in 01 02 03 04 05 06 07 08 09 10 11 12 ; do
+          #
+          (( nb = ${mois} - 1 ))
+          #
+          OUT_SE[${nb}]=${config_UserChoices_JobName}_SE${mois}_${an_deb}_${an_fin}_${file}.nc
+          #
+          (( an = an_deb ))
+          # Initialize array
+          unset liste_file_se
+          unset liste_file_se_tmp
+          while [ ${an} -le ${an_fin} ] ; do
+            moisL=$( IGCM_date_DaysInMonth ${an} ${mois} )
+            #
+            an4=$(printf "%04i\n" ${an} )
+              #
+            length_d=$(( ${config_UserChoices_PeriodLength} - 1 ))
+            # for one day
+            if [ ${length_d} -eq 1 ] ; then
+              (( length_d = 0 ))
+            fi
+            (( day  = 1 ))
+            while [ ${day} -le ${moisL} ] ; do
+              day2=$(printf "%02i\n" ${day} )
+              day_beg=${an4}${mois}${day2}
+              day_end=$( IGCM_date_AddDaysToGregorianDate ${day_beg} ${length_d} )
+              date=${an4}${mois}${day_beg}_${an4}${mois}${day_end}
+              #
+              liste_file_se[${#liste_file_se[*]}]=${file_path}${config_UserChoices_JobName}_${date}_${file}.nc
+              liste_file_se_tmp[${#liste_file_se_tmp[*]}]=${config_UserChoices_JobName}_${date}_${file}.nc
+              (( day = day + 1 ))
+            done
+            (( an = an + 1 ))
+          done
+          #
+          IGCM_sys_Get /l liste_file_se[*] ${RUN_DIR_PATH}
+          IGCM_debug_Verif_Exit
+
+          # Apply IGCM_Patch if needed
+          if [ ! ${RebuildFrequency} = true ] ; then
+            if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) !=  X${NULL_STR} ]; then
+              for file_t in $( eval echo ${liste_file_se_tmp[*]} ); do
+                for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do
+                  IGCM_${Patch} ${file_t}
+                done
+              done
+            fi
+          fi
+
+          # Search of common list of variables to be treated
+          nbfile=0
+          for file_common_var in ${liste_file_se_tmp[*]} ; do
+            ncdump -h ${file_common_var} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> tmpfile_ncra
+            (( nbfile = nbfile + 1 ))
+          done
+            list_var_final_ncra=`cat tmpfile_ncra | sort | uniq -c | awk -v nbfile=$nbfile '{if ($1 == nbfile) {print $2}}' | paste -s -d ','`
+          IGCM_sys_Rm tmpfile_ncra
+
+          IGCM_sys_ncra -O -v ${list_var_final_ncra} ${liste_file_se_tmp[*]} ${OUT_SE[${nb}]}
+          IGCM_sys_Rm ${liste_file_se_tmp[*]}
+        done
+        ;;
+      esac
+      #
+
+      # Search of common list of variables to be treated
+      nbfile=0
+      for file_common_var in ${OUT_SE[*]} ; do
+        ncdump -h ${file_common_var} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> tmpfile_ncrcat
+        (( nbfile = nbfile + 1 ))
+      done
+      list_var_final_ncrcat=`cat tmpfile_ncrcat | sort | uniq -c | grep -v ^time_ | awk -v nbfile=$nbfile '{if ($1 == nbfile) {print $2}}' | paste -s -d ','`
+      IGCM_sys_Rm tmpfile_ncrcat
+
+    IGCM_sys_ncrcat -O -v ${list_var_final_ncrcat} ${OUT_SE[*]} ${RESULT_SE}
+    #
+    IGCM_sys_Rm ${OUT_SE[*]}
+    #
+    # detect time counter : time or time_counter ie unlimited variable
+    var_unlim=$( ncdump -h ${RESULT_SE} | grep UNLIMITED |  cut -d ' ' -f 1 | sed -e 's/^[[:space:]]*//' )
+
+    # Put correct climatological axis following calendar
+    case ${config_UserChoices_CalendarType} in
+      360d|360_day)
+      # 360 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15, 45, 75, 105, 135, 165, 195, 225, 255, 285, 315, 345.} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 30, 30, 60, 60, 90, 90, 120, 120, 150, 150, 180, 180, 210, 210, 240, 240, 270, 270, 300, 300, 330, 330, 360.} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"360_day\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+      noleap|365_day)
+      # 365 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15.5, 45, 74.5, 105, 135.5, 166, 196.5, 227.5, 258, 288.5, 319, 349.5} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 31, 31, 59, 59, 90, 90, 120, 120, 151, 151, 181, 181, 212, 212, 243, 243, 273, 273, 304, 304, 334, 334, 365.} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"365_day\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+      all_leap|366_day)
+      # 366 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15.5, 45.5, 75.5, 106, 136.5, 167, 197.5, 228.5, 259, 289.5, 320, 350.5} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 31, 31, 60, 60, 91, 91, 121, 121, 152, 152, 182, 182, 213, 213, 244, 244, 274, 274, 305, 305, 335, 335, 366.} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"366_day\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+      leap|gregorian|standard)
+      # 365.2425 days
+        ncap2cmd="'defdim(\"tbnds\",2) ; ${var_unlim}[${var_unlim}]={15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425} ; ${var_unlim}_bnds[${var_unlim},tbnds]={0, 31, 31, 59.2425, 59.2425, 90.2425, 90.2425, 120.2425, 120.2425, 151.2425, 151.2425, 181.2425, 181.2425, 212.2425, 212.2425, 243.2425, 243.2425, 273.2425, 273.2425, 304.2425, 304.2425, 334.2425, 334.2425, 365.2425} ; ${var_unlim}@units=\"days since 0000-01-01 00:00:00\" ; ${var_unlim}@time_origin=\"01-JAN-0000 00:00:00\" ; ${var_unlim}@calendar=\"gregorian\" ; ${var_unlim}@bounds=\"${var_unlim}_bnds\"'"
+        ;;
+    esac
+    eval IGCM_sys_ncap2 -Oh -s $ncap2cmd ${RESULT_SE} tmp.nc
+    IGCM_sys_Rm ${RESULT_SE}
+    IGCM_sys_Mv tmp.nc ${RESULT_SE}
+    #
+    eval IGCM_sys_Put_Out ${RESULT_SE} \${R_OUT_${comp}}/Analyse/SE/${RESULT_SE}
+    [ -f ${RESULT_SE} ] && IGCM_sys_Rm ${RESULT_SE}
+    #
+  done
+done
+
+# DODS copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  for comp in ${config_ListOfComponents[*]} ; do
+    IGCM_sys_TestDirArchive ${R_SAVE}/${comp}/Analyse/SE
+    [ $? = 0 ] && IGCM_sys_Put_Dods ${comp}/Analyse/SE
+  done
+fi
+
+# Temporal coverage id for atlas
+YEARS=${an_deb}_${an_fin}
+DIR_OUT=SE
+
+export DEBUG_debug; export BigBrother ; export libIGCM; export SUBMIT_DIR; export POST_DIR; export Script_Output ;
+export StandAlone ; export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_MBG ; export RESOL_SRF ;
+export RESOL_SBG ; export YEARS; export DIR_OUT
+listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG,YEARS,DIR_OUT"
+export listVarEnv;
+
+#D-
+# --------------------------------------------------------------------
+#D- Test if all was right before ATLAS
+# --------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${config_UserChoices_TagName} = "IPSLCM4_v1_OASIS3" ] || \
+   [ ${config_UserChoices_TagName} = "IPSLCM4_v2" ]        || \
+   [ ${config_UserChoices_TagName} = "IPSL_ESM_V1" ] ; then
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+    export Script_Post_Output=atlas_LMDZ.${PeriodDateEnd}     ;
+    IGCM_sys_QsubPost atlas_LMDZ                              ;
+    export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+    export Script_Post_Output=additionnal.${PeriodDateEnd}    ;
+    IGCM_sys_QsubPost additionnal                             ;
+  fi
+  #
+elif [ ${config_UserChoices_TagName} = "IPSLCM5" ]         || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5A" ]        || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5B" ]        || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5A-MR" ]     || \
+     [ ${config_UserChoices_TagName} = "IPSLCM5A2" ]       || \
+     [ ${config_UserChoices_TagName} = "IPSLCM6" ] ; then
+  # METRICS
+  if [ X${config_Post_MetricsPCMDI} = XTRUE ]  ; then
+    export Script_Post_Output=metrics_LMDZ.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost metrics_LMDZ                            ;
+    export Script_Post_Output=metrics_NEMO.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost metrics_NEMO                            ;
+  fi
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+    export Script_Post_Output=atlas_LMDZ.${PeriodDateEnd}     ;
+    IGCM_sys_QsubPost atlas_LMDZ                              ;
+    export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+    export Script_Post_Output=atlas_PISCES.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost atlas_PISCES                            ;
+  fi
+elif [ ${config_UserChoices_TagName} = "LMDZ4OR" ]         || \
+     [ ${config_UserChoices_TagName} = "LMDZOR" ]          || \
+     [ ${config_UserChoices_TagName} = "LMDZ4OR_v2" ] ; then
+  # METRICS
+  if [ X${config_Post_MetricsPCMDI} = XTRUE ]  ; then
+    export Script_Post_Output=metrics_LMDZ.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost metrics_LMDZ                            ;
+  fi
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_LMDZ.${PeriodDateEnd}     ;
+    IGCM_sys_QsubPost atlas_LMDZ                              ;
+    export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+  fi
+elif [ ${config_UserChoices_TagName} = "LMDZ" ] ; then
+  # METRICS
+  if [ X${config_Post_MetricsPCMDI} = XTRUE ]  ; then
+    export Script_Post_Output=metrics_LMDZ.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost metrics_LMDZ                            ;
+  fi
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_LMDZ.${PeriodDateEnd}     ;
+    IGCM_sys_QsubPost atlas_LMDZ                              ;
+  fi
+elif [ ${config_UserChoices_TagName} = "OL" ]              || \
+     [ ${config_UserChoices_TagName} = "OL2" ] ; then
+  # METRICS
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_ORCHIDEE.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCHIDEE                          ;
+  fi
+elif [ ${config_UserChoices_TagName} = "ORCA2_LIM" ]       || \
+     [ ${config_UserChoices_TagName} = "ORCA2_LIM2" ]      || \
+     [ ${config_UserChoices_TagName} = "ORCA2_LIM3" ]      || \
+     [ ${config_UserChoices_TagName} = "ORCA1_LIM2" ]      || \
+     [ ${config_UserChoices_TagName} = "ORCA1_LIM3" ] ; then
+  # METRICS
+  if [ X${config_Post_MetricsPCMDI} = XTRUE ]  ; then
+    export Script_Post_Output=metrics_NEMO.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost metrics_NEMO                            ;
+  fi
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+  fi
+elif [ ${config_UserChoices_TagName} = "ORCA2_LIM2_PISCES" ] || \
+     [ ${config_UserChoices_TagName} = "ORCA2_LIM3_PISCES" ] || \
+     [ ${config_UserChoices_TagName} = "ORCA1_LIM2_PISCES" ] || \
+     [ ${config_UserChoices_TagName} = "ORCA1_LIM3_PISCES" ] ; then
+  # METRICS
+  if [ X${config_Post_MetricsPCMDI} = XTRUE ]  ; then
+    export Script_Post_Output=metrics_NEMO.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost metrics_NEMO                            ;
+  fi
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+    export Script_Post_Output=atlas_ORCA_LIM.${PeriodDateEnd} ;
+    IGCM_sys_QsubPost atlas_ORCA_LIM                          ;
+    export Script_Post_Output=atlas_PISCES.${PeriodDateEnd}   ;
+    IGCM_sys_QsubPost atlas_PISCES                            ;
+  fi
+elif [ ${config_UserChoices_TagName} = "ORCA2_OFF_PISCES" ] ; then
+  # METRICS
+  # ATLAS
+  if [ X${config_Post_AtlasIPSL} = XTRUE ]  ; then
+  export Script_Post_Output=atlas_PISCES.${PeriodDateEnd}   ;
+  IGCM_sys_QsubPost atlas_PISCES                            ;
+  fi
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_ts
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_ts	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_create_ts	(revision 5899)
@@ -0,0 +1,851 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r TS             # Nom du job
+#-Q- curie #MSUB -o TS.out_%I
+#-Q- curie #MSUB -e TS.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 80000          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r TS            # Job name
+#-Q- irene #MSUB -o TS.out_%I
+#-Q- irene #MSUB -e TS.out_%I
+#-Q- irene #MSUB -n 1             # Number of cores
+#-Q- irene #MSUB -T 80000         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r TS            # Job name
+#-Q- irene-amd #MSUB -o TS.out_%I
+#-Q- irene-amd #MSUB -e TS.out_%I
+#-Q- irene-amd #MSUB -n 1             # Number of cores
+#-Q- irene-amd #MSUB -T 80000         # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh 
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=TS         # Job Name
+#-Q- jeanzay #SBATCH --output=TS.out_%I    # standard output
+#-Q- jeanzay #SBATCH --error=TS.out_%I     # error output
+#-Q- jeanzay #SBATCH -N  1                        # Number of core
+#-Q- jeanzay #SBATCH --partition=prepost          # Post-processing partition
+#-Q- jeanzay #SBATCH --time=10:00:00       # Wall clock limit (seconds)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 20:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = TS
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $POST_DIR ; $Script_Post_Output ; $MASTER ; $RebuildFrequency ; $DateBegin ; $PeriodDateEnd ; $StandAlone ; $CompletedFlag ; $TsTask ; $CompToRead ; $FlagToRead ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N TS
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o TS.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N TS
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD ###PBS -q h12       # Queue for 12 hours at ciclad only
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#D- Flag to determine allready produced time series. Empty if you start from the beginning
+#D- Default : Value from AA_job if any. Usefull in StandAlone case if you want to continue a time series
+CompletedFlag=${CompletedFlag:=}
+
+#D- Flag to determine task type this script will perform.
+#D- Possible Value : 2D, 3D, Chunck2D, Chunck3D
+#D- Default : Value from AA_job if any. Usefull in StandAlone case.
+TsTask=${TsTask:=2D}
+if [ X${TsTask} = Xempty ] ; then
+  TsTask=""
+fi
+
+#D- Flag to determine if rebuild process has been performed asynchronously
+#D- Possible value true or false.
+#D- If true raw files has allready been patched by rebuild job
+#D- If false create_ts will patch the raw files
+#D- Default : Value from AA_job if any. Usefull in StandAlone case.
+RebuildFrequency=${RebuildFrequency:=true}
+
+#D- Flag to determine job's output directory
+#D- Default : value from libIGCM_post.ksh if any
+POST_DIR=${POST_DIR:=${PBS_O_WORKDIR:=$(pwd)}}
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- TEMPORARY Flag to determine atmospheric resolution
+#D- Default : value from atmospheric driver if any
+RESOL_ATM=ALL
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SRF=ALL
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SBG=ALL
+
+#D- TEMPORARY Flag to determine ocean resolution
+#D- Default : value from ocean driver if any
+RESOL_OCE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine ice resolution
+#D- Default : value from ice driver if any
+RESOL_ICE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine marine biogeochemistry resolution
+#D- Default : value from ice driver if any
+RESOL_MBG=${RESOL_OCE:=ORCA2}
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# Useful cleaning function
+MENAGE ()
+{
+  typeset ExistFlag
+  ExistFlag=$( IGCM_sys_RshArchive "[ -f $1/$3 ] && echo 0 || echo 1" )
+  [ ${ExistFlag} -eq 0 ] && ( IGCM_sys_RshArchive rm -f $1/$2 ;)
+}
+
+########################################################################
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+  CARD_DIR=${SUBMIT_DIR}
+else
+  CARD_DIR=${RUN_DIR_PATH}
+
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Define default value to keep compatibility with previous card: means before changes due to TGCC
+if [ X${PackDefault} = Xtrue ] ; then
+  [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency}
+else
+  config_Post_PackFrequency=NONE
+fi
+
+#==================================
+# If pack is active then PackFrequency overule the config_UserChoices_PeriodLength
+if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then
+  config_UserChoices_PeriodLength=${config_Post_PackFrequency}
+fi
+
+#
+# Determine component to take care of depending on kind of task create_ts will perform
+#
+[ ${CompToRead} ] && set -A config_ListOfComponents ${CompToRead} || IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents
+#
+# Determine period for time series. Default : value from AA_job or from launch_TS if any
+#
+[ X${CompletedFlag} = X ] || CompletedFlag=$( IGCM_date_ConvertFormatToGregorian ${CompletedFlag} )
+
+DateBegin=${DateBegin:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )}
+#
+PeriodDateEnd=${PeriodDateEnd:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )}
+#
+# Determine Dimension of the produced time series : 2D or 3D
+if (   [ X${TsTask} = XChunck2D ] || [ X${TsTask} = X2D ] ) ; then
+  Dimension=2D
+elif ( [ X${TsTask} = XChunck3D ] || [ X${TsTask} = X3D ] ) ; then
+  Dimension=3D
+else
+  Dimension=""
+fi
+
+# ------------------------------------------------------------------
+#D- Test if all was right before entering the loop
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+########################################################################
+#      Depending on requested time series fill following variables :
+#
+#                           - LISTE_FILE_${comp}[*]
+#                           - LISTE_VARS_${file}[*]
+#                           - LISTE_AXIS_${file}[*]
+#                           - LISTE_PATCH_${file}[*]
+########################################################################
+
+#
+# For each selected component determine which files need post-processing
+#
+DoJob=false
+for comp in ${config_ListOfComponents[*]} ; do
+  #
+  ActiveComp=false
+  #
+  IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
+  eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+  #
+  card=${CARD_DIR}/COMP/${compname}.card
+
+  IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+  #
+  ListFilesName=${compname}_OutputFiles_List
+  eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+  #
+  if [ X${FileName0} != X${NULL_STR} ] ; then
+    #
+    #IGCM_debug_Print 1 "Component      : ${compname}"
+    #
+    # INITIALISATION
+    #
+    typeset i
+    if [ ${FlagToRead} ] ; then
+      ((NbFiles=${FlagToRead}))
+      ((i=${NbFiles}))
+    else
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+      i=2
+    fi
+    #
+    until [ $i -gt $NbFiles ]; do
+      #
+      eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
+      #
+      if [ X${flag_post} != XNONE ] ; then
+        #
+        # For each comp and each file who needs post-processing
+        # determine which variables need time series.
+        #
+        FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' )
+        IGCM_card_DefineArrayFromOption ${card}    Post_${FILE} TimeSeriesVars${Dimension}
+        IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension}
+        #
+        # If TimeSeriesVars list is empty we skip
+        #
+        if [ $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
+          #
+          IGCM_debug_Print 3 "Nothing to do for ${FILE} according to ${card}"
+          IGCM_debug_Print 3 "TimeSeriesVars${Dimension} for ${FILE} is empty"
+          (( i=i+3 ))
+          continue
+          #
+        fi
+        #
+        # If files/variables has been switch off by ChunckJob${Dimension}=0 we skip
+        #
+        if [ X$( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} ) = XOFF ] ; then
+          IGCM_debug_Print 3 "Nothing to do for ${FILE} according to ${card}"
+          IGCM_debug_Print 3 "ChunckJob${Dimension}=OFF for ${FILE} so it has been switched off"
+          (( i=i+3 ))
+          continue
+        fi
+        #
+          # If we are not a Chunck type task, we skip files/variables handled by chunck task
+          #
+        if ( [ ! X${TsTask} = XChunck${Dimension} ] && [ ! X${TsTask} = X ] && [ ! XChunck${Dimension} = XChunck ] ) ; then
+          if [ ! $( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} ) = NONE ] ; then
+            IGCM_debug_Print 3 "Nothing to do for ${FILE} TimeSeriesVars${Dimension} according to ${card}"
+            IGCM_debug_Print 3 "Let another chunck task do the job $( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} )"
+            (( i=i+3 ))
+            continue
+          fi
+        fi
+        #
+        # Now on we know we have things to do
+        #
+
+        #
+        #  We need coordinates axis to properly fill produced time series
+        #
+        IGCM_card_DefineArrayFromOption ${card} Post_${FILE} GatherWithInternal
+        #
+        if [ $( eval echo \${${compname}_Post_${FILE}_GatherWithInternal} ) = ${NULL_STR} ] ; then
+          #
+          IGCM_debug_Print 1 "ERROR !! We miss coordinate axis for ${FILE} according to ${card}"
+          IGCM_debug_Print 1 "So no time series will be produced for ${FILE} !!"
+          (( i=i+3 ))
+          continue
+          #
+        fi
+        #
+        # We need LIST of variables not allready produced (useful for standalone mode)
+        #
+        FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' )
+        case ${FlagDir} in
+          *Y)  TS_Dir=TS_YE  ;;
+          *M)  TS_Dir=TS_MO  ;;
+          *D)  TS_Dir=TS_DA  ;;
+          HF)  TS_Dir=TS_HF  ;;
+          3H)  TS_Dir=TS_HF  ;;
+          INS) TS_Dir=TS_INS ;;
+        esac
+        #
+        count=0
+        for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do
+          #
+          DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir}
+          TestedFile=${config_UserChoices_JobName}_${DateBegin}_${PeriodDateEnd}_${FlagDir}_${var}.nc
+          #
+          IGCM_sys_TestFileArchive ${DIRECTORY}/${TestedFile}
+          if [ ! $? = 0 ] ; then
+            eval set +A LISTE_VARS_${FILE} \${LISTE_VARS_${FILE}[*]} ${var}
+            ActiveComp=true
+            (( count = count + 1 ))
+          fi
+        done
+        #
+        if [ ${count} -gt 0 ] ; then
+          #
+          eval set +A LISTE_FILE_${comp} \${LISTE_FILE_${comp}[*]} ${FILE}
+          eval set +A LISTE_AXIS_${FILE} \${${compname}_Post_${FILE}_GatherWithInternal[*]}
+          #
+          if [ ! X${RebuildFrequency} = Xtrue ] ; then
+            IGCM_card_DefineArrayFromOption ${card} Post_${FILE} Patches
+            eval set +A LISTE_PATCHES_${FILE} \${${compname}_Post_${FILE}_Patches[*]}
+            if [ X$( eval echo \${LISTE_PATCHES_${FILE}[0]} ) !=  X${NULL_STR} ]; then
+              for Patch in $( eval echo \${LISTE_PATCHES_${FILE}[*]} ); do
+                if [ Xload${Patch} != X ] ; then
+                  . ${libIGCM}/libIGCM_post/IGCM_${Patch}.ksh
+                  eval load${Patch}=loaded
+                fi
+              done
+            fi
+          fi
+        fi
+      fi
+      (( i=i+3 ))
+    done
+  fi
+  #
+  if [ ${ActiveComp} = true ] ; then
+    set +A ActiveListOfComponents ${ActiveListOfComponents[*]} ${comp}
+  fi
+done
+
+set -A config_ListOfComponents ${ActiveListOfComponents[*]}
+[ ! -z "${ActiveListOfComponents}" ] && DoJob=true
+
+########################################################################
+#
+#               IS THERE SOME ALLREADY PRODUCED TIME SERIES ?
+#                 IF SO BRING THEM IN THE WORKING DIRECTORY
+#
+# PS : Keep in mind that IGCM_sys_Get here is a weak link :
+#      - especially for IDRiS
+#      - no special protection against "command too long" !
+#      - libIGCM_sys should handle that or modify following code part
+#
+########################################################################
+
+if [ ${StandAlone} != true ] ; then
+  Running_Flag=$( IGCM_sys_RshMaster "IGCM_card_DefineVariableFromOption \
+  ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning ; \
+  echo \${run_PostProcessing_TimeSeriesRunning}" )
+
+  #if [ X${Running_Flag} = Xy ] ; then
+  #  # Time Series Job allready running
+  #  IGCM_debug_Print 1 "Time Series Job allready running exit"
+  #  exit
+  #fi
+  # Now run.card know we are running
+
+
+
+
+  IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning "y"
+
+
+
+
+
+  # Get information from last execution
+  #CompletedFlag=$( IGCM_sys_RshMaster \
+  # "IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted ;\
+  #        echo \${run_PostProcessing_TimeSeriesCompleted}" )
+fi
+
+# Is it the first submission or not ?
+
+if ( [ X${CompletedFlag} = X ] || [ X${CompletedFlag} = X$( IGCM_date_AddDaysToGregorianDate ${DateBegin} -1 ) ] ) ; then
+  # First Time Series Submission
+  FIRST_PASS=TRUE
+  Length=$( IGCM_date_DaysInPreviousPeriod ${DateBegin} ${config_UserChoices_PeriodLength} begin)
+  DATE_FIN_JOB_B=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( Length - 1 )) )
+else
+  # Last Completed Time Series
+  FIRST_PASS=FALSE
+  DATE_FIN_JOB_B=${CompletedFlag}
+  date=${DateBegin}_${DATE_FIN_JOB_B}
+  #
+  for comp in ${config_ListOfComponents[*]} ; do
+    #
+    IGCM_sys_Mkdir ${RUN_DIR_PATH}/${comp}
+    #
+    IGCM_sys_Cd ${RUN_DIR_PATH}/${comp}
+    #
+    unset liste_file
+    #
+    file_path=${R_SAVE}/${comp}/Analyse
+    #
+    i=0
+    file=${NULL_STR}
+    #
+    for file in $( eval echo \${LISTE_FILE_${comp}[*]} ); do
+      #
+      # Determine in which output can we find file
+      # IE : Analyse/TS or Analyse/DA2TS or ...
+      #
+      FlagDir=$( echo ${file} | awk -F "_" '{print $1}' )
+      case ${FlagDir} in
+        *Y)  TS_Dir=TS_YE  ;;
+        *M)  TS_Dir=TS_MO  ;;
+        *D)  TS_Dir=TS_DA  ;;
+        HF)  TS_Dir=TS_HF  ;;
+        3H)  TS_Dir=TS_HF  ;;
+        INS) TS_Dir=TS_INS ;;
+      esac
+      for var in $( eval echo \${LISTE_VARS_${file}[*]} ) ; do
+        #
+        IGCM_sys_TestFileArchive ${file_path}/${TS_Dir}/${config_UserChoices_JobName}_${date}_${FlagDir}_${var}.nc
+        if [ $? = 0 ] ; then
+          liste_file[${#liste_file[*]}]=${file_path}/${TS_Dir}/${config_UserChoices_JobName}_${date}_${FlagDir}_${var}.nc
+        else
+          IGCM_debug_Print 1 "WARNING ${file_path}/${TS_Dir}/${config_UserChoices_JobName}_${date}_${FlagDir}_${var}.nc dont exist"
+        fi
+        #
+      done
+    done
+    if [ X${file} != X${NULL_STR} ] ; then
+      IGCM_sys_Get /l liste_file[*] ${RUN_DIR_PATH}/${comp}
+      IGCM_debug_Verif_Exit
+    fi
+  done
+  #
+  LEVEL=0
+  #
+fi
+
+########################################################################
+#
+#                          DEFINE LOOP PARAMETERS
+#
+########################################################################
+
+DATE_COUNT=${DATE_FIN_JOB_B}
+DATE_FIN_JOB_B_LOOP=${DATE_FIN_JOB_B}
+
+( [ -n "${LEVEL}" ] && [ ${LEVEL} -eq 0 ] ) && NBRE_FILE_TOT=0 || NBRE_FILE_TOT=1
+
+if [ ${DoJob} = true ] ; then
+  while [ ${DATE_COUNT} -lt ${PeriodDateEnd} ] ; do
+    (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 ))
+    Length=$( IGCM_date_DaysInNextPeriod ${DATE_COUNT} ${config_UserChoices_PeriodLength} )
+    DATE_COUNT=$( IGCM_date_AddDaysToGregorianDate ${DATE_COUNT} ${Length} )
+  done
+else
+  NBRE_FILE_TOT=0
+fi
+
+if [ ${NBRE_FILE_TOT} -le ${UNIX_MAX_LIMIT} ] ; then
+  NBRE_TOUR=1
+elif [ ${NBRE_FILE_TOT}%${UNIX_MAX_LIMIT} -eq 0 ] ; then
+  let NBRE_TOUR=${NBRE_FILE_TOT}/${UNIX_MAX_LIMIT}
+else
+  let NBRE_TOUR=${NBRE_FILE_TOT}/${UNIX_MAX_LIMIT}+1
+fi
+
+CURRENT_LOOP=1
+# THIS LOOP GIVES PARAMETERS FOR THE DATE'S LOOP ie : DATE_COURANTE, DATE_FIN.
+# WE HAVE 3 LEVELS
+#    - LEVEL 1 : JUST ONE LOOP TO COMPLETE
+#    - LEVEL 2 : WE ARE IN THE "DEEP" LOOP
+#    - LEVEL 3 : WE ARE IN THE LAST LOOP
+
+while [ ${CURRENT_LOOP} -le  ${NBRE_TOUR} ] ; do
+
+  if [ ${NBRE_FILE_TOT} -le ${UNIX_MAX_LIMIT} ] ; then
+    # - LEVEL 1 : JUST ONE LOOP TO COMPLETE
+    NBRE_FILE_LOOP=${NBRE_FILE_TOT}
+
+    if [ ${FIRST_PASS} = TRUE ] ; then
+      DATE_COURANTE=${DATE_FIN_JOB_B_LOOP}
+    else
+      Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN_JOB_B_LOOP} ${config_UserChoices_PeriodLength} )
+      DATE_COURANTE=$( IGCM_date_AddDaysToGregorianDate ${DATE_FIN_JOB_B_LOOP} ${Length} )
+    fi
+
+    DATE_FIN=${PeriodDateEnd}
+    DATE_FIN_JOB_B_LOOP_PREC=${DATE_FIN_JOB_B_LOOP}
+
+    [ -n "${DATE_LOOP}" ] && DATE_FIN_JOB_B_LOOP=${DATE_LOOP}
+    [ -n "${LEVEL}" ] && FLAG_B="TRUE" || FLAG_B="FALSE"
+
+    LEVEL=1
+    DEPOT="TRUE"
+  elif [ ${CURRENT_LOOP} -ne  ${NBRE_TOUR} ] ; then
+    # - LEVEL 2 : WE ARE IN THE "DEEP" LOOP
+    NBRE_FILE_LOOP=${UNIX_MAX_LIMIT}
+
+    if [ ! ${FIRST_PASS} = TRUE ] && [ ${CURRENT_LOOP} -eq 1 ] ; then
+      Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN_JOB_B_LOOP} ${config_UserChoices_PeriodLength} )
+      DATE_COURANTE=$( IGCM_date_AddDaysToGregorianDate ${DATE_FIN_JOB_B_LOOP} ${Length} )
+    elif [ -z "${DATE_COURANTE}" ] ; then
+      DATE_COURANTE=${DATE_FIN_JOB_B}
+    else
+      Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN} ${config_UserChoices_PeriodLength} )
+      DATE_COURANTE=$( IGCM_date_AddDaysToGregorianDate ${DATE_FIN} ${Length} )
+    fi
+
+    (( TotLength = 0 ))
+    COMPTEUR=1
+    DATE_LOOP=${DATE_COURANTE}
+
+    while [ ${COMPTEUR} -lt ${NBRE_FILE_LOOP} ] ; do
+      #
+      Length=$( IGCM_date_DaysInNextPeriod ${DATE_LOOP} ${config_UserChoices_PeriodLength} )
+      DATE_LOOP=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} ${Length} )
+      (( TotLength = TotLength + Length ))
+      (( COMPTEUR = COMPTEUR + 1 ))
+      #
+    done # while [ ${COMPTEUR} -le ${NBRE_FILE_LOOP} ] done
+    DATE_FIN=$( IGCM_date_AddDaysToGregorianDate ${DATE_COURANTE} ${TotLength} )
+
+    [ -n "${DATE_LOOP}" ] && DATE_FIN_JOB_B_LOOP_PREC=${DATE_FIN_JOB_B_LOOP} ; DATE_FIN_JOB_B_LOOP=${DATE_LOOP}
+    [ -n "${LEVEL}" ] && [ ${LEVEL} -eq 0 ] && FLAG_B="TRUE" || [ ${CURRENT_LOOP} -gt 1 ] && FLAG_B="TRUE" || FLAG_B="FALSE"
+    DEPOT="FALSE"
+    LEVEL=2
+  else
+    # - LEVEL 3 : WE ARE IN THE LAST LOOP
+    NBRE_FILE_LOOP=$(( ${NBRE_FILE_TOT} % ( ${UNIX_MAX_LIMIT} * ( ${CURRENT_LOOP} - 1 ) ) ))
+    [ ${NBRE_FILE_LOOP} -eq 0 ] && NBRE_FILE_LOOP=${UNIX_MAX_LIMIT}
+
+    Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN} ${config_UserChoices_PeriodLength} )
+    DATE_COURANTE=$(IGCM_date_AddDaysToGregorianDate ${DATE_FIN} ${Length} )
+    DATE_FIN=${PeriodDateEnd}
+    [ -n "${DATE_LOOP}" ] && DATE_FIN_JOB_B_LOOP_PREC=${DATE_FIN_JOB_B_LOOP} ; DATE_FIN_JOB_B_LOOP=${DATE_LOOP}
+
+    LEVEL=3
+    DEPOT="TRUE"
+    FLAG_B="TRUE"
+  fi
+
+  # THEN FOR EACH FILE TYPE WE LOOP BETWEEN DATE_COURANTE AND DATE_FIN.
+  for comp in ${config_ListOfComponents[*]} ; do
+    #
+    IGCM_sys_Mkdir ${RUN_DIR_PATH}/${comp}
+      #
+    IGCM_sys_Cd ${RUN_DIR_PATH}/${comp}
+    #
+    eval R_OUT_${comp}=${R_SAVE}/${comp}
+    #
+    i=0
+    #
+    for file in $( eval echo \${LISTE_FILE_${comp}[*]} ); do
+      #
+      # Determine in which output we can find file
+      # IE : Output/MO or Output/DA or ...
+      #
+      FlagDir=$( echo ${file} | awk -F "_" '{print $1}' )
+      case ${FlagDir} in
+        *Y)    TS_Dir=TS_YE  ; FreqDir=YE  ;;
+        *M)    TS_Dir=TS_MO  ; FreqDir=MO  ;;
+        *D)    TS_Dir=TS_DA  ; FreqDir=DA  ;;
+        HF)    TS_Dir=TS_HF  ; FreqDir=HF  ;;
+        3H)    TS_Dir=TS_HF  ; FreqDir=HF  ;;
+        INS)   TS_Dir=TS_INS ; FreqDir=INS ;;
+        *)     IGCM_debug_Print 1 "Error in FlagDir=${FlagDir} for file ${file}."
+               IGCM_debug_Exit "Job create_ts" ;;
+      esac
+
+      # Initialize array
+      unset liste_file
+      unset liste_file_tmp
+      eval file_path=\${R_OUT_${comp}}/Output/${FreqDir}/
+
+      COMPTEUR=1
+      MissingFile=FALSE
+      DATE_LOOP=${DATE_COURANTE}
+
+      while [ ${COMPTEUR} -le ${NBRE_FILE_LOOP} ] ; do
+        #
+        Length1=$( IGCM_date_DaysInPreviousPeriod ${DATE_LOOP} ${config_UserChoices_PeriodLength} end)
+        DATE_TAB=$(  IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} $(( 1 - Length1 )) )_${DATE_LOOP}
+
+        Length2=$( IGCM_date_DaysInNextPeriod ${DATE_LOOP} ${config_UserChoices_PeriodLength} )
+        DATE_LOOP=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} ${Length2} )
+
+        IGCM_sys_TestFileArchive ${file_path}${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc
+        if [ $? = 0 ] ; then
+          liste_file[${#liste_file[*]}]=${file_path}${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc
+          liste_file_tmp[${#liste_file_tmp[*]}]=${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc
+        else
+          IGCM_debug_Print 1 "WARNING ${file_path}${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc dont exist"
+          MissingFile=TRUE
+        fi
+        (( COMPTEUR = COMPTEUR + 1 ))
+        #
+      done # while [ ${COMPTEUR} -le ${NBRE_FILE_LOOP} ] done
+
+      # We skip this file type if one of them is missing.
+      if [ "${MissingFile}" = "TRUE" ] ; then
+        IGCM_debug_Print 1 "WARNING We skip ${file} type processing"
+        continue
+      fi
+
+      DATE_LOOP=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} -${Length2} )
+
+      # Get selected files
+      IGCM_sys_Get /l liste_file[*] ${RUN_DIR_PATH}/${comp}
+      IGCM_debug_Verif_Exit
+
+      # Apply IGCM_Patch if needed
+      if [ ! X${RebuildFrequency} = Xtrue ] ; then
+        if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) !=  X${NULL_STR} ]; then
+          for file_t in $( eval echo ${liste_file_tmp[*]} ); do
+            for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do
+              IGCM_${Patch} ${file_t}
+              IGCM_debug_Verif_Exit
+            done
+          done
+        fi
+      fi
+
+      # WE CAN CONCATENATE FILES AT THIS POINT
+      [ "${FLAG_B}" = "TRUE" ] && DATE_BUILD_B=${DateBegin}_${DATE_FIN_JOB_B_LOOP_PREC}
+      Length=$( IGCM_date_DaysInPreviousPeriod ${DATE_COURANTE} ${config_UserChoices_PeriodLength} end)
+      DATE_BUILD1=$( IGCM_date_AddDaysToGregorianDate ${DATE_COURANTE} -$(( Length - 1 )) )
+      DATE_BUILD=${DATE_BUILD1}_${DATE_FIN}
+      DATE_BUILD_END=${DateBegin}_${DATE_FIN}
+
+      liste_coord=" "
+      for axis in $( eval echo \${LISTE_AXIS_${file}[*]} ); do
+        liste_coord=${liste_coord}${axis}","
+      done
+
+      # Time axis must be the last dimension
+      time_axis=${axis}
+
+      # SWITCH BETWEEN MODEL TO FIT PARTICULAR CASE
+      for var in $( eval echo \${LISTE_VARS_${file}[*]} ) ; do
+        #
+        # We skip variables not in the first file of the list.
+        # Seems overkill to test thel all... but will do if needed
+        ncdump -hv ${var} ${liste_file_tmp[0]} > /dev/null 2>&1
+        if [ ! $? = 0 ] ; then
+          IGCM_debug_Print 1 "WARNING We skip ${var}, not present within ${liste_file_tmp[0]}"
+          continue
+        fi
+        #
+        if [ "${FLAG_B}" = "TRUE" ] ; then
+          # WE CONCATENATE WITH EXISTING FILES
+          file1=${config_UserChoices_JobName}_${DATE_BUILD_B}_${FlagDir}_${var}.nc
+          file_out=${config_UserChoices_JobName}_${DATE_BUILD_END}_${FlagDir}_${var}.nc
+          IGCM_sys_ncrcat --hst -v ${liste_coord}${var} ${file1} ${liste_file_tmp[*]} ${file_out}
+          IGCM_debug_Verif_Exit
+          #
+          IGCM_sys_Rm ${file1}
+          if [ ! "${DEPOT}" = "TRUE" ] ; then
+            eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}}/Analyse/${TS_Dir}/${file_out}
+            # "${file1} = file_before ?
+            [ ! "${file1}" = "${config_UserChoices_JobName}_${DateBegin}_${DATE_FIN_JOB_B}_${FlagDir}_${var}.nc" ] && eval MENAGE \${R_OUT_${comp}}/Analyse/${TS_Dir} ${file1} ${file_out}
+          fi
+        else
+          # OR NOT
+          file_out=${config_UserChoices_JobName}_${DATE_BUILD}_${FlagDir}_${var}.nc
+          IGCM_sys_ncrcat --hst -v ${liste_coord}${var} ${liste_file_tmp[*]} ${file_out}
+          IGCM_debug_Verif_Exit
+        fi
+
+        #
+        if [ "${DEPOT}" = "TRUE" ] ; then
+          # WE PUT FINAL FILE ON FILE SYSTEM
+          [ "${FLAG_B}" = "FALSE" ] && file_out=${config_UserChoices_JobName}_${DATE_BUILD}_${FlagDir}_${var}.nc
+          file_before=${config_UserChoices_JobName}_${DateBegin}_${DATE_FIN_JOB_B}_${FlagDir}_${var}.nc
+          #
+          eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}}/Analyse/${TS_Dir}/${file_out}
+          [ "${FLAG_B}" = "TRUE" ] && eval MENAGE \${R_OUT_${comp}}/Analyse/${TS_Dir} ${file_before} ${file_out}
+          if [ ! "X${file1}" = "X" ] ; then
+            [ ! "${file1}" = "${config_UserChoices_JobName}_${DateBegin}_${DATE_FIN_JOB_B}_${FlagDir}_${var}.nc" ] && eval MENAGE \${R_OUT_${comp}}/Analyse/${TS_Dir} ${file1} ${file_out}
+          fi
+          #
+          [ -f ${file_out} ] && IGCM_sys_Rm ${file_out}
+          #
+        fi
+        #
+      done                              # for var in ${liste_var} ; do
+      IGCM_sys_Rm ${liste_file_tmp[*]}
+    done                                # for file in ${liste_file_brut} do
+  done                                  # for comp in ${config_ListOfComponents[*]} ; do
+  # GO AHEAD IN DEEPEST LOOP
+  (( CURRENT_LOOP = CURRENT_LOOP + 1 ))
+done                                    # while [ ${CURRENT_LOOP} -le  ${NBRE_TOUR} ] do
+# FINISH
+
+# DODS copy
+for comp in ${config_ListOfComponents[*]} ; do
+  for TS_Dir in TS_YE TS_MO TS_DA TS_HF TS_INS ; do
+    IGCM_sys_TestDirArchive ${R_SAVE}/${comp}/Analyse/${TS_Dir}
+    [ $? = 0 ] && IGCM_sys_Put_Dods ${comp}/Analyse/${TS_Dir}
+  done
+done
+
+export DEBUG_debug; export BigBrother ; export libIGCM; export SUBMIT_DIR; export POST_DIR; export Script_Output ;
+export StandAlone ; export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_MBG ; export RESOL_SRF ;
+export RESOL_SBG
+listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG"
+export listVarEnv
+
+#D-
+# --------------------------------------------------------------------
+#D- Test if all was right
+# --------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+# --------------------------------------------------------------------
+#D- Submit MONITORING
+# --------------------------------------------------------------------
+if ( [ X${TsTask} = X2D ] || [ X${TsTask} = X3D ] || [ X${TsTask} = X ] ) ; then
+  # From 2D and 3D it is the last one to finish that will submit the monitoring.
+  if [ ! "X$( grep "IGCM_sys_RmRunDir" ${POST_DIR}/create_ts.${PeriodDateEnd}.[23]D.out 2> /dev/null )" = "X" ] ; then
+    Script_Post_Output=monitoring.${PeriodDateEnd}
+    IGCM_sys_QsubPost monitoring
+  fi
+fi
+
+#D-
+# --------------------------------------------------------------------
+#D- Update the run.card
+# --------------------------------------------------------------------
+if [ ${StandAlone} != true ] ; then
+  # Put in run.card end period of time series
+  [ X"${DATE_FIN}" = X ] || IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted "${DATE_FIN}"
+  # We have finish the job !
+  IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning "n"
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
+
+date
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_job
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_job	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_job	(revision 5899)
@@ -0,0 +1,642 @@
+#-Q- curie #!/bin/ksh
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r ::Jobname::        # Job Name
+#-Q- curie #MSUB -o Script_Output_::Jobname::.000001    # standard output
+#-Q- curie #MSUB -e Script_Output_::Jobname::.000001    # error output
+#-Q- curie #MSUB -eo
+#-Q- curie #MSUB -n ::JobNumProcTot::  # Number of MPI tasks (SPMD case) or cores (MPMD case)
+#-Q- curie #MSUB -c ::openMPthreads::  # Number of openMP threads. To specify only for SMPD
+#-Q- curie #MSUB -x                    # exclusive node. To specify only for MPMD together with the one below
+#-Q- curie #MSUB -E '--cpu_bind=none'
+#-Q- curie ##MSUB -E '--distribution cyclic' 
+#-Q- curie #MSUB -T 86400              # Wall clock limit (seconds)
+#-Q- curie #MSUB -q standard           # thin nodes
+#-Q- curie ##MSUB -U high
+#-Q- curie #MSUB -U medium
+#-Q- curie ##MSUB -U low
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie #MSUB -E --no-requeue
+#-Q- curie # Below specific options that can be activated 
+#-Q- curie ##MSUB -q ivybridge         # Option for Airain
+#-Q- curie
+#-Q- curie BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC
+#-Q- curie set +x
+#-Q- irene #!/bin/ksh
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r ::Jobname::        # Job Name
+#-Q- irene #MSUB -o Script_Output_::Jobname::.000001    # standard output
+#-Q- irene #MSUB -e Script_Output_::Jobname::.000001    # error output
+#-Q- irene #MSUB -eo
+#-Q- irene #MSUB -n ::JobNumProcTot::  # Number of MPI tasks (SPMD case) or cores (MPMD case)
+#-Q- irene #MSUB -c ::openMPthreads::  # Number of openMP threads. To specify only for SMPD
+#-Q- irene #MSUB -x                    # exclusive node. To specify only for MPMD together with the one below
+#-Q- irene #MSUB -E '--cpu_bind=none'
+#-Q- irene #MSUB -T ::WallTime::              # Wall clock limit (seconds)
+#-Q- irene #MSUB -A ::default_project::
+#-Q- irene #MSUB -q skylake
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene
+#-Q- irene BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC
+#-Q- irene set +x
+#-Q- irene-amd #!/bin/ksh
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE-AMD   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r ::Jobname::        # Job Name
+#-Q- irene-amd #MSUB -o Script_Output_::Jobname::.000001    # standard output
+#-Q- irene-amd #MSUB -e Script_Output_::Jobname::.000001    # error output
+#-Q- irene-amd #MSUB -eo
+#-Q- irene-amd #MSUB -n ::JobNumProcTot::  # Number of MPI tasks (SPMD case) or cores (MPMD case)
+#-Q- irene-amd #MSUB -c ::openMPthreads::  # Number of openMP threads. To specify only for SMPD
+#-Q- irene-amd #MSUB -x                    # exclusive node. To specify only for MPMD together with the one below
+#-Q- irene-amd #MSUB -T ::WallTime::              # Wall clock limit (seconds)
+#-Q- irene-amd #MSUB -A ::default_project::
+#-Q- irene-amd #MSUB -q rome
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd
+#-Q- irene-amd BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=::Jobname::        # Job Name
+#-Q- jeanzay #SBATCH --output=Script_Output_::Jobname::.000001    # standard output
+#-Q- jeanzay #SBATCH --error=Script_Output_::Jobname::.000001    # error output
+#-Q- jeanzay #SBATCH --ntasks=::JobNumProcTot::   # Number of MPI tasks
+#-Q- jeanzay #SBATCH --cpus-per-task=::openMPthreads::  # Number of openMP threads.
+#-Q- jeanzay #SBATCH --hint=nomultithread         # 1 processus MPI par par physical core (no hyperthreading) 
+#-Q- jeanzay #SBATCH --time=::WallTime::             # Wall clock limit (minutes)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay
+#-Q- jeanzay ##BATCH_NUM_PROC_TOT=$BRIDGE_SBATCH_NPROC
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada # ######################
+#-Q- ada # ##  ADA       IDRIS ##
+#-Q- ada # ######################
+#-Q- ada # Job name 
+#-Q- ada # @ job_name = ::Jobname::
+#-Q- ada # Standard output file name
+#-Q- ada # @ output = Script_Output_::Jobname::.000001
+#-Q- ada # Error output file name
+#-Q- ada # @ error = Script_Output_::Jobname::.000001
+#-Q- ada # Job type
+#-Q- ada # @ job_type = parallel
+#-Q- ada # Total number of tasks
+#-Q- ada # @ total_tasks = ::JobNumProcTot::
+#-Q- ada # Specific option for OpenMP parallelization: Number of OpenMP threads per MPI task
+#-Q- ada # @ parallel_threads = ::openMPthreads::
+#-Q- ada # Memory : as_limit=3.5gb max per process per core. With 4 threads per process use max as_limit=14gb
+#-Q- ada # @ as_limit = 3.5gb
+#-Q- ada # Maximum CPU time per task hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 1:00:00
+#-Q- ada # @ environment = "BATCH_NUM_PROC_TOT=::JobNumProcTot::" ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # End of the header options
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N ::Jobname::
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q mediump
+#-Q- lxiv8 #PBS -o Script_Output_::Jobname::.000001
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- lxiv8 #PBS -v BATCH_NUM_PROC_TOT=::JobNumProcTot::
+#-Q- lxiv8 #PBS -l nodes=1:ppn=::JobNumProcTot::
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N ::Jobname::
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD ###PBS -q h12   # Queue for 12 hours at ciclad only
+#-Q- ifort_CICLAD #PBS -o Script_Output_::Jobname::.000001
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- ifort_CICLAD #PBS -v BATCH_NUM_PROC_TOT=::JobNumProcTot::
+#-Q- ifort_CICLAD #PBS -l nodes=1:ppn=::JobNumProcTot::
+#-Q- ifort_CICLAD #PBS -l mem=6gb
+#-Q- ifort_CICLAD #PBS -l vmem=30gb
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+#-Q- default #For MPI use, uncomment next line :
+#-Q- default #BATCH_NUM_PROC_TOT=::JobNumProcTot::
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1536                                     $ Revision of last commit
+# $Author:: rpennel                                    $ Author of last commit
+# $Date:: 2020-07-03 15:16:53 +0200 (Fri, 03 Jul 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+echo
+echo "#######################################"
+echo "#       ANOTHER GREAT SIMULATION      #"
+echo "#######################################"
+echo
+
+#D--------------------------------------------------------------------==
+#D-
+#D-                      Job to launch IGCM models
+#D-
+#D--------------------------------------------------------------------==
+#D-
+
+MODIPSL=::modipsl::
+libIGCM=${MODIPSL}/libIGCM
+
+#D--------------------------------------------------------------------==
+#D- -1. PLACE FOR USER MODIFICATION
+#D-     - Job Verbosity
+#D-     - PeriodNb
+#D-     - Experience type : DEB(ug), DEV(elopment), RUN
+#D--------------------------------------------------------------------==
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=computing
+
+#D- Increased verbosity (1, 2, 3)
+Verbosity=3
+
+#D- postProcessingStopLevel (0,1,2,3)
+#D- 3 stop the main job if any post-processing went wrong (atlas, monitoring, metrics, create_ts, create_se, rebuild or pack_*)
+#D- 2 stop only if create_ts, create_se or pack_* failed  (dont stop if atlas, monitoring or metrics failed)
+#D- 1 stop only if pack_* failed (dont stop if atlas, monitoring, metrics, create_ts or create_se failed)
+#D- 0 never stop the main job for post-processing that went wrong
+postProcessingStopLevel=1
+
+#D- Experience type : DEB(ug), DEV(elopment), RUN (default)
+#D- DEB : set -vx mode + output files are NOT read only
+#D- DEV : output files are NOT read only
+#D- RUN : output files ARE read only
+JobType=RUN
+
+#D- Number of execution in one job
+PeriodNb=1
+
+#D-
+#D- --------------------------------------------------------------------------------------------------#
+#D-                          ! OPTIONNAL FEATURES /!\ USE WITH CARE !                                 #
+#D- --------------------------------------------------------------------------------------------------#
+
+
+#D- Low level debug : to perform lib test checks, stack construction and IO functions instrumentation
+#D- Default=true
+#D-
+DEBUG_debug=true
+
+#D- Messaging : all activities and call stacks will be sent to ipsl servers
+#D- If true will imply DEBUG_debug=true
+#D- Default=false
+#D-
+BigBrother=true
+
+#D- Set DEBUG_sys to false to disable output calls of function
+#D- true when JobType=DEB # means DEB(ug)
+#D-
+#DEBUG_sys=false
+
+#D- Define running directory
+#D- Default=${TMPDIR} ie temporary batch directory
+#D-
+#RUN_DIR_PATH=/workdir/or/scratchdir/of/this/machine
+
+#D- Define submit directory
+#D- Default= where you launch qsub (variable from scheduler)
+#D-
+#SUBMIT_DIR=$( pwd )
+
+#D- Define input file root directory R_IN
+#D- IPSL:   /prodigfs/ipslfs/igcmg/IGCM
+#D- TGCC:   /ccc/work/cont003/igcmg/igcmg/IGCM
+#D- IDRIS:  /gpfswork/rech/psl/commun/IGCM
+#D- OBELIX: /home/orchideeshare/igcmg/IGCM
+#D- Other default:  /home_local/${LOGIN}/IGCM
+
+#D- Change below to override the default
+#R_IN=/u/rech/por/rpor111/DATA
+
+#D- Turn in dry run mode ? (0,1,2,3)
+#D- Default=0
+#D-
+#DRYRUN=3
+#D-# YOU HAVE TO COMPILE YOUR EXE FILES to USE DRYRUN MODE !
+#D-# -------------------------------------------------------------------------------------
+#D-# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+#D-# |          |  Cp/Exe/param/files |            |         |                           |
+#D-# |          |  Chmod Qsub         |            |         |                           |
+#D-# -------------------------------------------------------------------------------------
+#D-# |    0     |       yes           |    yes     |  yes    |      yes                  |
+#D-# -------------------------------------------------------------------------------------
+#D-# |    1     |       yes           |    yes     |  yes    |      no                   |
+#D-# -------------------------------------------------------------------------------------
+#D-# |    2     |       yes           |    yes     |  no     |      no                   |
+#D-# -------------------------------------------------------------------------------------
+#D-# |    3     |       yes           |    no      |  no     |      no                   |
+#D-# -------------------------------------------------------------------------------------
+
+#D-
+# --------------------------------------------------------------------------------------------------#
+#D- ! END OF OPTIONNAL FEATURES /!\ DO NOT MODIFY ANYTHING BELOW UNLESS YOU KNOW WHAT YOU ARE DOING #
+# --------------------------------------------------------------------------------------------------#
+
+#D-
+#D--------------------------------------------------------------------==
+#D- 0.0 SYSTEM ENVIRONMENT
+#D-     - Define variables for Number of processors
+#D-     - Define MPI variables
+#D-     - Define batch scheduler variables
+#D-     - Source IGCM Library
+#D-     - Get RESOLution in .resol file (temporary)
+#D--------------------------------------------------------------------==
+
+#---------------------------------------------------------------------==
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_comp/libIGCM_comp.ksh
+. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+#--------------------------------------------------------------------==
+
+#-- Resolution FLAG for oasis input
+#RESOL="ORCA2xLMD9671"
+[ -f ${SUBMIT_DIR}/../.resol ] && RESOL=$(head -1 ${SUBMIT_DIR}/../.resol)
+#-- Chemistrie FLAG to ease chemistries configurations management
+#CHEM="AER"
+[ -f ${SUBMIT_DIR}/../.chimie ] && eval $(grep CHEM ${SUBMIT_DIR}/../.chimie)
+
+#D-
+#D--------------------------------------------------------------------==
+#D- 0.1 COMMON ENVIRONMENT
+#D-     - Read libIGCM compatibility version in config.card
+#D-     - Read UserChoices section
+#D-     - Read Ensemble section
+#D-     - Read Post section
+#D-     - Define all netcdf output directories
+#D--------------------------------------------------------------------==
+IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
+
+if [ ! -r ${SUBMIT_DIR}/run.card ] ; then
+  #================================================#
+  #         The file run.card doesn't exist        #
+  #================================================#
+  FirstInitialize=true
+  #copy initial run.card
+  IGCM_sys_Cp ${SUBMIT_DIR}/run.card.init ${SUBMIT_DIR}/run.card
+  IGCM_debug_Print 2 "run.card copied from run.card.init"
+else
+  FirstInitialize=false
+  IGCM_debug_Print 2 "run.card exists"
+fi
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this simulation
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#D-
+#D--------------------------------------------------------------------==
+#D- 1. INITIALIZE CONFIGURATION
+#D-    - Simulation configuration
+#D-    - Simulation parameters
+#D-    - Execution parameter
+#D-    - Define input files directory
+#D-    - Read or initialize CumulPeriod
+#D-    - run.card
+#D--------------------------------------------------------------------==
+IGCM_config_Initialize
+
+# --------------------------------------------------------------------==
+# Define, create and cd RUN_DIR
+# --------------------------------------------------------------------==
+RUN_DIR=${RUN_DIR_PATH}/${config_UserChoices_JobName}.${$}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+#D-
+#D---------------------------------------------------------------------==
+#D- 2. INITIALIZE ALL COMPONENT OF THE CONFIGURATION
+#D-    - Define component executable
+#D-    - Define Write Frequency by component "1M" "1D" ...
+#D-    - Source ${comp}.driver
+#D-    - Define Storage Places by component
+#D-    - ${comp}_Initialize :
+#D-    - Patterns to sed
+#D-    - Variables from namelist
+#D---------------------------------------------------------------------==
+IGCM_comp_Initialize
+
+#D-
+#D---------------------------------------------------------------------==
+#D- 3. PERFORM GENERAL VERIFICATION
+#D-    - Verify compatibility of period length, write frequencies, ...
+#D-    - Verify compatibility of rebuild choices and post-process choices
+#D-    - Will stop here if something is wrong
+#D---------------------------------------------------------------------==
+IGCM_config_Check
+
+# ------------------------------------------------------------------
+# Test if all was right before entering the period loop
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+#D-
+#D---------------------------------------------------------------------==
+#D- 4. ENTER THE DEEP EXECUTION LOOP
+#D-    ! FASTEN YOUR SEAT BELTS PLEASE. !
+#D-    !   WE WILL CROSS TURBULENCES.   !
+#D---------------------------------------------------------------------==
+
+Period=1
+
+PeriodContinue=false
+if [ ${Period} -le ${PeriodNb} ]; then
+  PeriodContinue=true
+fi
+while ( ${PeriodContinue} ) ; do
+
+  echo
+  echo "Starting iteration ${Period} / ${PeriodNb}"
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.1 COMPUTE AND DEFINE DATE INFORMATION.
+  #D-       - ${PeriodDateBegin}
+  #D-       - ${PeriodDateEnd}
+  #D-       - ${CumulPeriod}
+  #D-       - ${DatesPeriod}=${PeriodDateBegin}_${PeriodDateEnd}
+  #D-       - ${PeriodLength} => JOURS=31 , 28, 29, 30 ; MOIS=0 ; ANS=0
+  #D-       - update run.card value
+  # ------------------------------------------------------------------
+  IGCM_config_PeriodStart
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.2 BEGIN COMPUTATION ONLY IF NEEDED
+  # ------------------------------------------------------------------
+  if [ ${SimulationLengthInDays} -gt ${ExperienceLengthInDays} ] ; then
+    IGCM_debug_Print 1 "break because '\${SimulationLengthInDays} -gt \${ExperienceLengthInDays}' : ${SimulationLengthInDays} -gt ${ExperienceLengthInDays}"
+    break ;
+  fi
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.3 CALL OPTIONNAL FUNCTION WITHIN DRIVER
+  #D-       - to set special variables used in lists (Param, Init or Bc).
+  # ------------------------------------------------------------------
+  IGCM_comp_PeriodStart
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.4 GET PARAMETERS TEXT FILES UPDATED BY JOB
+  #D-       - (.def, namelist ...)
+  #D-       - READ AND USE BY GCM AT EACH EXECUTION.
+  # ------------------------------------------------------------------
+  for (( pool_rank=0 ; pool_rank < $(($config_Ensemble_PoolNumber)) ; pool_rank++ ))
+  do
+
+
+  IGCM_comp_GetInputParametersFiles $pool_rank
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.5 GET INITIAL STATE
+  #D-       - (Etat0, carteveg,relief...)
+  #D-       - NECESSARY ONLY IF CumulPeriod= (=> NUMERO) == 1
+  #D-       - AND ???_Restart=NO
+  #D-       - READ AND USE BY GCM FOR ONLY ONE EXECUTION.
+  # ------------------------------------------------------------------
+  IGCM_comp_GetInputInitialStateFiles $pool_rank
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.6 GET BOUNDARIES CONDITIONS
+  #D-       - (SST, WIND[X,Y,Z], LAI ...)
+  #D-       - READ AND USE BY GCM AT EACH EXECUTION.
+  # ------------------------------------------------------------------
+  IGCM_comp_GetInputBoundaryFiles $pool_rank
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.7 GET SmoothFiles CONDITIONS
+  #D-       - (SST, WIND[X,Y,Z], LAI ...)
+  #D-       - READ AND USE BY GCM AT EACH EXECUTION
+  #D-       - Do not change at each ${Period}
+  # ------------------------------------------------------------------
+  IGCM_comp_GetInputSmoothFiles $pool_rank
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.8 GET RESTART FILES
+  #D-       - (restartphy.nc, orca_restart.nc ...)
+  #D-       - READ AND USE BY GCM AT EACH EXECUTION.
+  #D-
+  #D-       - IF A COMPONENT DO NOT RESTART FROM PREVIOULSY COMPUTED RESTART
+  #D-       - ONLY IF CumulPeriod= (=> NUMERO) == 1
+  #D-       - MUST EXECUTE CREATE ETAT0_LIMIT (TYPICALLY LMDZ AND ./create_etat0_limit.e)
+  #D-
+  #D-       - IF CumulPeriod == 1
+  #D-       - AND A COMPONENT RESTART FROM PREVIOULSY COMPUTED RESTART
+  #D-       - MUST BRING THIS RESTART IN ${RUN_DIR_PATH}
+  #D-
+  #D-       - ELSE BRING RESTART FROM ${JobName} IN ${RUN_DIR_PATH}
+  # ------------------------------------------------------------------
+  IGCM_comp_GetInputRestartFiles $pool_rank
+
+  # ------------------------------------------------------------------
+  #D-   4.9 GET BINARY FILES
+  #D-       - USED BY AT EACH EXECUTION.
+  #D-       - CHECK BINARIES HAS BEEN COMPILED WITH THE SAME COMPILER
+  #D-       - RELOAD THE APPROPRIATE ENVIRONMENT THE FIRST TIME IF NEEDED
+  # ------------------------------------------------------------------
+  IGCM_comp_GetInputBinaryFiles
+
+  # ------------------------------------------------------------------
+  # Test if all was right before Update
+  # ------------------------------------------------------------------
+  IGCM_debug_Verif_Exit
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.10 ACTIVATE RUNNING ENVIRONNEMENT VARIABLES
+  #D-       - including module load associated to compiler & tools
+  #D-       - .env_intel17.0.2_curie
+  #D-       - .env_netcdf4.3.3.1_curie
+  # ------------------------------------------------------------------
+  IGCM_sys_activ_variables
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   4.11 UPDATE ParametersFiles
+  #D-        - (.def, namelist ...)
+  #D-        - with current value of (ORCA_NIT00, ORCA_LRSTAR, RAZ_DATE, ...)
+  # ------------------------------------------------------------------
+  IGCM_comp_Update
+
+  # ------------------------------------------------------------------
+  # Test if all was right before execution
+  # ------------------------------------------------------------------
+  IGCM_debug_Verif_Exit
+
+#-Q- jeanzay # Workaround at Jean-Zay
+#-Q- jeanzay source $I_MPI_ROOT/intel64/bin/mpivars.sh release_mt
+  # ------------------------------------------------------------------
+  # Treatment specific to handling of ensemble by XIOS
+  # ------------------------------------------------------------------
+
+  IGCM_config_ensembleXIOS $pool_rank
+  #D-
+  #D---------------------------------------------------------------------==
+  #D- 5. EXECUTION
+  #D---------------------------------------------------------------------==
+
+  echo
+  echo "#######################################"
+  echo "#      DIR BEFORE RUN EXECUTION       #"
+  echo "#######################################"
+  echo
+  ls -lrt
+
+  echo "========================================================================"
+  if [ ${DRYRUN} -le 1 ] ; then
+    REAL_DATE_INIT=$( date )
+    echo                                                                                  >> ${Exe_Output}
+    echo "#######################################"                                        >> ${Exe_Output}
+    echo "EXECUTION of : ${EXECUTION}"
+    echo "EXECUTION of : ${EXECUTION}"                                                    >> ${Exe_Output}
+    echo                                                                                  >> ${Exe_Output}
+    echo "EXECUTION of pool number : ${pool_rank}"
+    echo "EXECUTION of pool number : ${pool_rank}"                                       >> ${Exe_Output} 
+    typeset RET
+    RUN_DATE_BEGIN=$( date '+%Y-%m-%dT%H:%M:%S' )
+    ${EXECUTION}  >> ${Exe_Output} 2>&1
+    RET=$?
+    RUN_DATE_END=$( date '+%Y-%m-%dT%H:%M:%S' )
+    if [ ${RET} -gt 0 ] ; then
+      echo "Return code of executable :" ${RET}
+      IGCM_debug_Exit "EXECUTABLE"
+      IGCM_sys_Mkdir ${SUBMIT_DIR}/Debug
+      IGCM_sys_Cp ${Exe_Output} ${SUBMIT_DIR}/Debug/${PREFIX}_${Exe_Output}_error
+      ExecutionFail=true
+    fi
+    echo                                            >> ${Exe_Output}
+    echo "#######################################"  >> ${Exe_Output}
+    echo "libIGCM RunDateBegin=${RUN_DATE_BEGIN}"   >> ${Exe_Output}
+    echo "libIGCM RunDateEnd=${RUN_DATE_END}"       >> ${Exe_Output}
+    echo                                            >> ${Exe_Output}
+  else
+    echo "EXECUTION of : ${EXECUTION} simulated for DRYRUN = " $DRYRUN
+    echo "EXECUTION of : ${EXECUTION} simulated for DRYRUN = " $DRYRUN > ${Exe_Output}
+    if ( $DEBUG_debug ) ; then
+      echo "FOR EXECUTION DRYRUN mode = " $DRYRUN >> stack
+    fi
+  fi
+  echo "========================================================================"
+
+  echo
+  echo "#######################################"
+  echo "#       DIR AFTER RUN EXECUTION       #"
+  echo "#######################################"
+  echo
+  ls -lrt
+
+  #D-
+  #D---------------------------------------------------------------------==
+  #D- 6. POST EXECUTION OPERATIONS
+  #D---------------------------------------------------------------------==
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   6.1. DESACTIVATE RUNNING ENVIRONNEMENT VARIABLES
+  # ------------------------------------------------------------------
+  IGCM_sys_desactiv_variables
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   6.2. SAVE OUTPUTS
+  #D-        - On archive/storage machine
+  #D-        - netcdf outputs, restarts and text files of models
+  # ------------------------------------------------------------------
+  IGCM_comp_Finalize $pool_rank
+
+  # ------------------------------------------------------------------
+  # Test if all was right after Finalize
+  # ------------------------------------------------------------------
+  IGCM_debug_Verif_Exit
+  done
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   6.3. CONFIGURE POST-PROCESSING
+  #D-        - asynchronous post-treatment (Level 0) when necessary (rebuild/pack)
+  #D-        - classic post-treatment      (Level 1) when necessary (TimeSeries/Seasonal)
+  # ------------------------------------------------------------------
+  IGCM_post_Configure
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   6.4. SUBMIT POST-PROCESSING
+  #D-        - remote rebuild or/and post-treatment process if necessary
+  # ------------------------------------------------------------------
+  IGCM_post_Submit
+
+  #D-
+  # ------------------------------------------------------------------
+  #D-   6.5. FINALYZE CURRENT LOOP AND PREPARE NEXT ONE
+  #D-        - Manage executable size to save only different binary
+  #D-        - Write in run.card user, system and elapse time
+  #D-        - Check that everything went well ! No ? then we stop.
+  #D-        - Determine next computed period
+  # ------------------------------------------------------------------
+  IGCM_config_PeriodEnd
+
+  echo "Ending iteration ${Period}"
+  (( Period = Period + 1 ))
+
+  # End loop if date end is reached
+  if [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ; then
+    break ;
+  fi
+
+  PeriodContinue=false
+  if [ ${Period} -le ${PeriodNb} ]; then
+    PeriodContinue=true
+  fi
+done
+
+#D-
+#D---------------------------------------------------------------------==
+#D- 7. SUBMIT NEXT JOB OR SEND MAIL IF SIMULATION IS OVER.
+#D---------------------------------------------------------------------==
+IGCM_config_Finalize
+
+date
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_LMDZ
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_LMDZ	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_LMDZ	(revision 5899)
@@ -0,0 +1,245 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r METRICS_LMDZ       # Nom du job
+#-Q- curie #MSUB -o METRICS_LMDZ.out_%I
+#-Q- curie #MSUB -e METRICS_LMDZ.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 14400          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r METRICS_LMDZ   # Job name
+#-Q- irene #MSUB -o METRICS_LMDZ.out_%I
+#-Q- irene #MSUB -e METRICS_LMDZ.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 14400          # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r METRICS_LMDZ   # Job name
+#-Q- irene-amd #MSUB -o METRICS_LMDZ.out_%I
+#-Q- irene-amd #MSUB -e METRICS_LMDZ.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 14400          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 4:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = METRICS_LMDZ
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N METRICS_LMDZ
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o METRICS_LMDZ.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N METRICS_LMDZ
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+######################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_comp/libIGCM_comp.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+######################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_OUT_ATM=${R_SAVE}/ATM
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+IGCM_sys_MkdirWork METRICS/SE_${YEARS}
+
+#==================================
+# Get the file
+#==================================
+IGCM_sys_Get ${R_OUT_ATM}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc ${RUN_DIR}
+IGCM_sys_Get ${R_OUT_ATM}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_histmthNMC.nc ${RUN_DIR}
+
+#==================================
+# Group of metrics we will compute
+#==================================
+GroupsOfMetrics='LMDZ_PCMDI LMDZ_JetLat LMDZ_OverOceanRegions'
+MP_Version=v3
+
+#==================================
+# SET UP THE PATH (wont be done in libIGCM_sys because setup_runtime.sh is way too intrusive)
+#==================================
+. ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/setup_runtime.sh
+
+for metricsGroupName in ${GroupsOfMetrics} ; do
+
+  #==================================
+  # Appropriate configuration template
+  #==================================
+  IGCM_sys_Cp ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/doc/parameter_files/input_parameters_${metricsGroupName}_template.py template.py
+
+  #==================================
+  # Configure template for histmth.nc
+  #==================================
+  IGCM_comp_modifyFile template.py path_and_filename \'./${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc\'
+  IGCM_comp_modifyFile template.py filename \'${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc\'
+  IGCM_comp_modifyFile template.py attributes_provided \'IPSL_Extended\'
+  IGCM_comp_modifyFile template.py Login  \'${LOGIN}\'
+  IGCM_comp_modifyFile template.py model_versions \[\'${config_UserChoices_TagName}\'\]
+  IGCM_comp_modifyFile template.py experiment  \'${config_UserChoices_ExperimentName}\'
+  IGCM_comp_modifyFile template.py realization \'${config_UserChoices_JobName}\'
+  IGCM_comp_modifyFile template.py project_id \'IPSL\-${config_UserChoices_SpaceName}\'
+  IGCM_comp_modifyFile template.py ModelFreeSpace "\"${config_UserChoices_LongName}\""
+  IGCM_comp_modifyFile template.py case_id \'${metricsGroupName}\'
+  IGCM_comp_modifyFile template.py obs_data_path  \'${R_IN}/ReferenceDatasets/climatos\'
+  IGCM_comp_modifyFile template.py metrics_output_path \'${RUN_DIR}/METRICS/SE_${YEARS}\'
+  IGCM_comp_modifyFile template.py model_clims_interpolated_output \'${RUN_DIR}\'
+
+  #==================================
+  # Compute metrics
+  #==================================
+  python ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/pcmdi_metrics_driver.py -p template.py
+
+  if [ ${metricsGroupName} != "LMDZ_OverOceanRegions" ] ; then
+    #==================================
+    # (Re)Configure template for histmthNMC.nc
+    #==================================
+    IGCM_comp_modifyFile template.py path_and_filename \'./${config_UserChoices_JobName}_SE_${YEARS}_1M_histmthNMC.nc\'
+    IGCM_comp_modifyFile template.py filename \'${config_UserChoices_JobName}_SE_${YEARS}_1M_histmthNMC.nc\'
+
+    #==================================
+    # Compute metrics for histmthNMC.nc
+    #==================================
+    python ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/pcmdi_metrics_driver.py -p template.py
+  fi
+
+  #==================================
+  # Export metrics to mongoDB system
+  #==================================
+  IGCM_debug_sendAMQP_Metrics METRICS/SE_${YEARS}/${metricsGroupName} ${metricsGroupName}
+
+done
+
+#==================================
+# Save files
+#==================================
+IGCM_sys_Put_Dir METRICS ${R_FIGR}
+IGCM_sys_Rm -Rf METRICS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_NEMO
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_NEMO	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_NEMO	(revision 5899)
@@ -0,0 +1,266 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r METRICS_NEMO       # Nom du job
+#-Q- curie #MSUB -o METRICS_NEMO.out_%I
+#-Q- curie #MSUB -e METRICS_NEMO.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 14400          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r METRICS_NEMO # Job name
+#-Q- irene #MSUB -o METRICS_NEMO.out_%I
+#-Q- irene #MSUB -e METRICS_NEMO.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 14400        # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r METRICS_NEMO # Job name
+#-Q- irene-amd #MSUB -o METRICS_NEMO.out_%I
+#-Q- irene-amd #MSUB -e METRICS_NEMO.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 14400        # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 4:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = METRICS_NEMO
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N METRICS_NEMO
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o METRICS_NEMO.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N METRICS_NEMO
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+######################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_comp/libIGCM_comp.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+######################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_OUT_OCE=${R_SAVE}/OCE
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+IGCM_sys_MkdirWork METRICS/SE_${YEARS}
+
+#==================================
+# Get the file
+#==================================
+IGCM_sys_Get ${R_OUT_OCE}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc ${RUN_DIR}
+
+#==================================
+# Rename variables
+#==================================
+IGCM_sys_ncrename -v .votemper,t -v .thetao,to -v .vosaline,so -v .somxl010,mldpt -v .mldr10_1,mldpt -v .sosstsst,tos -v .sossheig,zos -v .sosaline,sos -v .sowaflup,wfo ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+
+#==================================
+# Interpolate vertical levels
+#==================================
+IGCM_sys_cdo intlevel,50,100,250,500,1000 -selvar,to,so ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc ${config_UserChoices_JobName}_SE_${YEARS}_1MVertLevels_grid_T.nc
+
+#==================================
+# Identify grid label from opa9.card
+#==================================
+IGCM_card_DefineVariableFromOption ${CARD_DIR}/COMP/opa9.card UserChoices ORCA_version
+IGCM_debug_Print 3 "ORCA_VERSION=${opa9_UserChoices_ORCA_version}"
+
+#==================================
+# To be found soon from the synchronized igcmg repository instead
+#==================================
+orca_grid=${DB}/grids/${opa9_UserChoices_ORCA_version}_grid.nc
+
+## IGCM_sys_ncks --append -v bounds_lat,bounds_lon ${orca_grid} ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+## IGCM_sys_ncatted -O -a bounds,nav_lat,o,c,bounds_lat ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+## IGCM_sys_ncatted -O -a bounds,nav_lon,o,c,bounds_lon ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+
+## IGCM_sys_ncks --append -v bounds_lat,bounds_lon ${orca_grid} ${config_UserChoices_JobName}_SE_${YEARS}_1MVertLevels_grid_T.nc
+## IGCM_sys_ncatted -O -a bounds,nav_lat,o,c,bounds_lat ${config_UserChoices_JobName}_SE_${YEARS}_1MVertLevels_grid_T.nc
+## IGCM_sys_ncatted -O -a bounds,nav_lon,o,c,bounds_lon ${config_UserChoices_JobName}_SE_${YEARS}_1MVertLevels_grid_T.nc
+
+#==================================
+# Group of metrics we will compute
+#==================================
+GroupsOfMetrics='NEMO_PCMDI NEMO_LatBandsAndRegions NEMO_VertLevels'
+MP_Version=v3
+
+#==================================
+# SET UP THE PATH (wont be done in libIGCM_sys because setup_runtime.sh is way too intrusive)
+#==================================
+. ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/setup_runtime.sh
+
+for metricsGroupName in ${GroupsOfMetrics} ; do
+
+  #==================================
+  # Appropriate configuration template
+  #==================================
+  IGCM_sys_Cp ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/doc/parameter_files/input_parameters_${metricsGroupName}_template.py template.py
+
+  #==================================
+  # Configure template for grid_T.nc
+  #==================================
+
+  if [ ${metricsGroupName} != "NEMO_VertLevels" ] ; then
+    IGCM_comp_modifyFile template.py path_and_filename \'./${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc\'
+    IGCM_comp_modifyFile template.py filename \'${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc\'
+  else
+    IGCM_comp_modifyFile template.py path_and_filename \'./${config_UserChoices_JobName}_SE_${YEARS}_1MVertLevels_grid_T.nc\'
+    IGCM_comp_modifyFile template.py filename \'${config_UserChoices_JobName}_SE_${YEARS}_1MVertLevels_grid_T.nc\'
+  fi
+  IGCM_comp_modifyFile template.py attributes_provided \'IPSL_Extended\'
+  IGCM_comp_modifyFile template.py Login  \'${LOGIN}\'
+  IGCM_comp_modifyFile template.py model_versions \[\'${config_UserChoices_TagName}\'\]
+  IGCM_comp_modifyFile template.py experiment  \'${config_UserChoices_ExperimentName}\'
+  IGCM_comp_modifyFile template.py realization \'${config_UserChoices_JobName}\'
+  IGCM_comp_modifyFile template.py project_id \'IPSL\-${config_UserChoices_SpaceName}\'
+  IGCM_comp_modifyFile template.py ModelFreeSpace "\"${config_UserChoices_LongName}\""
+  IGCM_comp_modifyFile template.py case_id \'${metricsGroupName}\'
+  IGCM_comp_modifyFile template.py obs_data_path  \'${R_IN}/ReferenceDatasets/climatos\'
+  IGCM_comp_modifyFile template.py metrics_output_path \'${RUN_DIR}/METRICS/SE_${YEARS}\'
+  IGCM_comp_modifyFile template.py model_clims_interpolated_output \'${RUN_DIR}\'
+
+  #==================================
+  # Compute metrics
+  #==================================
+  python ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/pcmdi_metrics_driver.py -p template.py
+
+  #==================================
+  # Export metrics to mongoDB system
+  #==================================
+  IGCM_debug_sendAMQP_Metrics METRICS/SE_${YEARS}/${metricsGroupName} ${metricsGroupName}
+
+done 
+
+#==================================
+# Save files
+#==================================
+IGCM_sys_Put_Dir METRICS ${R_FIGR}
+IGCM_sys_Rm -Rf METRICS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_grid_T.nc
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_ORCHIDEE
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_ORCHIDEE	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_metrics_ORCHIDEE	(revision 5899)
@@ -0,0 +1,238 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r METRICS_ORCHIDEE       # Nom du job
+#-Q- curie #MSUB -o METRICS_ORCHIDEE.out_%I
+#-Q- curie #MSUB -e METRICS_ORCHIDEE.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 14400          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r METRICS_ORCHIDEE # Job name
+#-Q- irene #MSUB -o METRICS_ORCHIDEE.out_%I
+#-Q- irene #MSUB -e METRICS_ORCHIDEE.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 14400           # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r METRICS_ORCHIDEE # Job name
+#-Q- irene-amd #MSUB -o METRICS_ORCHIDEE.out_%I
+#-Q- irene-amd #MSUB -e METRICS_ORCHIDEE.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 14400           # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 4:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = METRICS_ORCHIDEE
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $R_INIT ; $R_BC ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $YEARS ; $DIR_OUT ; $MASTER ; $libIGCM_SX ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N METRICS_ORCHIDEE
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q test
+#-Q- lxiv8 #PBS -o METRICS_ORCHIDEE.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N METRICS_ORCHIDEE
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+######################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_comp/libIGCM_comp.ksh
+#-------
+IGCM_sys_MkdirWork ${RUN_DIR_PATH}
+IGCM_sys_Cd ${RUN_DIR_PATH}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+######################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Then set up several directories
+#==================================
+R_OUT_SRF=${R_SAVE}/SRF
+DIR_OUT=${DIR_OUT:=SE}
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirArchive ${R_FIGR}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+IGCM_sys_MkdirWork METRICS/SE_${YEARS}
+
+#==================================
+# Get the file
+#==================================
+IGCM_sys_Get ${R_OUT_SRF}/Analyse/${DIR_OUT}/${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc ${RUN_DIR}
+
+#==================================
+# Get the fileCompute gpptot
+#==================================
+IGCM_sys_ncap2 -s 'gpptot = gpp.total($veget)/1000' ${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc tmpout.nc
+IGCM_sys_ncatted -O -a units,gpptot,o,c,"kg m-2 s-1" tmpout.nc
+IGCM_sys_Mv tmpout.nc ${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc
+
+#==================================
+# Group of metrics we will compute
+#==================================
+GroupsOfMetrics='ORCHIDEE_PCMDI'
+MP_Version=v3
+
+#==================================
+# SET UP THE PATH (wont be done in libIGCM_sys because setup_runtime.sh is way too intrusive)
+#==================================
+. ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/setup_runtime.sh
+
+for metricsGroupName in ${GroupsOfMetrics} ; do
+
+  #==================================
+  # Appropriate configuration template
+  #==================================
+  IGCM_sys_Cp ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/doc/parameter_files/input_parameters_${metricsGroupName}_template.py template.py
+
+  #==================================
+  # Configure template for histmth.nc
+  #==================================
+  IGCM_comp_modifyFile template.py path_and_filename \'./${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc\'
+  IGCM_comp_modifyFile template.py filename \'${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc\'
+  IGCM_comp_modifyFile template.py attributes_provided \'IPSL_Extended\'
+  IGCM_comp_modifyFile template.py Login  \'${LOGIN}\'
+  IGCM_comp_modifyFile template.py model_versions \[\'${config_UserChoices_TagName}\'\]
+  IGCM_comp_modifyFile template.py experiment  \'${config_UserChoices_ExperimentName}\'
+  IGCM_comp_modifyFile template.py realization \'${config_UserChoices_JobName}\'
+  IGCM_comp_modifyFile template.py project_id \'IPSL\-${config_UserChoices_SpaceName}\'
+  IGCM_comp_modifyFile template.py ModelFreeSpace "\"${config_UserChoices_LongName}\""
+  IGCM_comp_modifyFile template.py case_id \'${metricsGroupName}\'
+  IGCM_comp_modifyFile template.py obs_data_path  \'${R_IN}/ReferenceDatasets/climatos\'
+  IGCM_comp_modifyFile template.py metrics_output_path \'${RUN_DIR}/METRICS/SE_${YEARS}\'
+  IGCM_comp_modifyFile template.py model_clims_interpolated_output \'${RUN_DIR}\'
+
+  #==================================
+  # Compute metrics
+  #==================================
+  python ${PCMDI_MP}/work_install_${MP_Version}/PCMDI_METRICS/bin/pcmdi_metrics_driver.py -p template.py
+
+  #==================================
+  # Export metrics to mongoDB system
+  #==================================
+  IGCM_debug_sendAMQP_Metrics METRICS/SE_${YEARS}/${metricsGroupName} ${metricsGroupName}
+
+done
+
+#==================================
+# Save files
+#==================================
+IGCM_sys_Put_Dir METRICS ${R_FIGR}
+IGCM_sys_Rm -Rf METRICS
+IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_monitoring
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_monitoring	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_monitoring	(revision 5899)
@@ -0,0 +1,303 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r MONITORING     # Nom du job
+#-Q- curie #MSUB -o MONITORING.out_%I
+#-Q- curie #MSUB -e MONITORING.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 80000          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r MONITORING    # Job name
+#-Q- irene #MSUB -o MONITORING.out_%I
+#-Q- irene #MSUB -e MONITORING.out_%I
+#-Q- irene #MSUB -n 1             # Number of cores
+#-Q- irene #MSUB -T 80000         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r MONITORING     # Job name
+#-Q- irene-amd #MSUB -o MONITORING.out_%I
+#-Q- irene-amd #MSUB -e MONITORING.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 80000          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh 
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=MONITORING         # Job Name
+#-Q- jeanzay #SBATCH --output=MONITORING.out_%J    # standard output
+#-Q- jeanzay #SBATCH --error=MONITORING.out_%J     # error output
+#-Q- jeanzay #SBATCH --ntasks=1                    # Number of core
+#-Q- jeanzay #SBATCH --hint=nomultithread          # 1 processus MPI par coeur physique (pas d'hyperthreading)
+#-Q- jeanzay #SBATCH --time=10:00:00               # Wall clock limit (seconds)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay #SBATCH --partition=prepost
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 4:00:00
+#-Q- ada # Memory required for ferret (_SEP _MAR variables)
+#-Q- ada # @ as_limit = 30Gb
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = MONITORING
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $libIGCM ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N MONITORING
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o MONITORING.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N MONITORING
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ada and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- TEMPORARY Flag to determine atmospheric resolution
+#D- Default : value from atmospheric driver if any
+RESOL_ATM=${RESOL_ATM:=ALL}
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SRF=${RESOL_SRF:=ALL}
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SBG=${RESOL_SBG:=ALL}
+
+#D- TEMPORARY Flag to determine ocean resolution
+#D- Default : value from ocean driver if any
+RESOL_OCE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine ice resolution
+#D- Default : value from ice driver if any
+RESOL_ICE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine marine biogeochemistry resolution
+#D- Default : value from ice driver if any
+RESOL_MBG=${RESOL_OCE:=ORCA2}
+
+######################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+######################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+  CARD_DIR=${SUBMIT_DIR}
+else
+  CARD_DIR=${RUN_DIR}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Read ListOfComponents section:
+IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents
+
+# Create R_FIGR that has been defined by IGCM_config_CommonConfiguration
+IGCM_sys_MkdirArchive ${R_FIGR}
+#
+IGCM_sys_TestDirArchive ${R_FIGR}/MONITORING
+if [ $? = 0 ] ; then
+  IGCM_debug_Print 1 "Get MONITORING directory from archive"
+  IGCM_sys_Get_Dir ${R_FIGR}/MONITORING ${RUN_DIR}
+else
+  IGCM_debug_Print 1 "MONITORING first pass. Nothing has been done before"
+fi
+# --------------------------------------------
+# Insert your commands between III...III lines
+# and precise produced directories to save
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+for comp in ${config_ListOfComponents[*]} ; do
+  IGCM_debug_Print 1 "################## Component: ${comp} ######################"
+  liste_file_monitoring=""
+  IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
+  eval compname=\${config_ListOfComponents_${comp}[0]}                > /dev/null 2>&1
+
+  PATH_monitoring_file=""
+  eval monitoring_file=monitoring01_${compname}_\${RESOL_${comp}}.cfg > /dev/null 2>&1
+  if [[ -d ${CARD_DIR}/POST && -f ${CARD_DIR}/POST/${monitoring_file} ]] ; then
+    PATH_monitoring_file=${CARD_DIR}/POST/${monitoring_file}
+  elif [[ -d ${CARD_DIR}/POST && -f ${CARD_DIR}/POST/monitoring01_${compname}.cfg ]] ; then
+    PATH_monitoring_file=${CARD_DIR}/POST/monitoring01_${compname}.cfg
+  elif [ -f ${FER_ATLAS}/${monitoring_file} ] ; then
+    PATH_monitoring_file=${FER_ATLAS}/${monitoring_file}
+  else
+    IGCM_debug_Print 1 "No monitoring file found for this component. Was expecting ${monitoring_file}"
+    IGCM_debug_Print 1 "Step to next component"
+    continue
+  fi
+  #
+  if [ X${PATH_monitoring_file} != X"" ] ; then
+    IGCM_debug_Print 1 "Monitoring file used : ${PATH_monitoring_file}"
+    IGCM_debug_Print 1 "Determine which frequency of time series to be used."
+
+    FreqTS=$( grep FreqTS ${PATH_monitoring_file} | grep -v \# | awk -F "=" '{print $2}' )
+    if [ X${FreqTS} = X ] ; then
+      # Default frequency is MO
+      FreqTS=MO
+    fi
+
+    IGCM_debug_Print 1 "Times series frequency to be used is ${FreqTS}"
+    IGCM_debug_Print 1 "Determine which files we need."
+    . monitoring01 -l2 --listcommand 'IGCM_sys_RshArchive_NoError ls' ${PATH_monitoring_file} ${R_SAVE}/${comp}/Analyse/TS_${FreqTS}
+    liste_file_monitoring=$( . monitoring01 -q -l2 --listcommand 'IGCM_sys_RshArchive_NoError ls' ${PATH_monitoring_file} ${R_SAVE}/${comp}/Analyse/TS_${FreqTS} )
+  fi
+  #
+  if [ ! "X${liste_file_monitoring}" = X ] ; then
+    IGCM_sys_Get /l liste_file_monitoring ${RUN_DIR}
+    IGCM_debug_Print 1 "monitoring01 -c ${CARD_DIR} -p ${comp} --time -t \"${config_UserChoices_JobName} monitoring\" -o ${RUN_DIR}/MONITORING ${PATH_monitoring_file} ."
+    IGCM_debug_Print 1 "monitoring01 starts ................................................."
+    monitoring01 -c ${CARD_DIR} -p ${comp} --time -t "${config_UserChoices_JobName} monitoring" -o ${RUN_DIR}/MONITORING ${PATH_monitoring_file} .
+  else
+    IGCM_debug_Print 1 "No time series detected by this command :"
+    IGCM_debug_Print 1 "monitoring01 -l2 --listcommand 'IGCM_sys_RshArchive_NoError ls' ${PATH_monitoring_file} ${R_SAVE}/${comp}/Analyse/TS_${FreqTS}"
+    . monitoring01 -l2 --listcommand 'IGCM_sys_RshArchive_NoError ls' ${PATH_monitoring_file} ${R_SAVE}/${comp}/Analyse/TS_${FreqTS}
+  fi
+
+  # Now do cleaning before starting with next component
+  rm -f ${RUN_DIR}/*nc
+
+done
+
+# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+
+# Save files
+IGCM_sys_Put_Dir MONITORING ${R_FIGR}
+
+# Dods copy
+if [ X${config_Post_DodsCopy} = XTRUE ]  ; then
+  IGCM_sys_Put_Dods MONITORING
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_move-and-rename
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_move-and-rename	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_move-and-rename	(revision 5899)
@@ -0,0 +1,530 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1356                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2016-09-09 18:41:19 +0200 (Fri, 09 Sep 2016) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+# Change SpaceName/ExperimentName/JobName names and path for a simulation during the run.
+# !! Be careful that the job is suspended before using this script !!
+# You may call this script with those four variables already defined, or modify directly
+# default values under here :
+
+# New Name Space of this experience
+NEW_SpaceName=${NEW_SpaceName:=DEVT}
+
+# New Expericence class of the run
+NEW_ExperimentName=${NEW_ExperimentName:=NEWExperimentName}
+
+# New JobName of the run
+NEW_JobName=${NEW_JobName:=NEWJobName}
+
+SUBMIT_DIR=${SUBMIT_DIR:=my_path_to_my_SUBMIT_DIR}
+
+# verbosity
+Verbosity=3
+
+########################################################################
+
+# Path to modipsl
+MODIPSL=${MODIPSL:=::modipsl::}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+DEBUG_sys=false
+DEBUG_debug=false
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+# define local functions
+
+# Function to replace OLD JobName in file
+
+function REPLACE_sed
+{
+  IGCM_debug_PushStack "REPLACE_sed"
+  typeset RET
+
+  FILEIN=${1}
+  FILEOUT=$( basename ${FILEIN} )
+
+  sed -e "s&${R_SAVE}&${NEW_R_SAVE}&g" -e "s/${config_UserChoices_JobName}/${NEW_JobName}/g" \
+  ${1} > ${RUN_DIR_PATH}/${FILEOUT}
+  RET=$?
+
+  touch --reference=${1} ${RUN_DIR_PATH}/${FILEOUT}
+  IGCM_sys_Mv ${RUN_DIR_PATH}/${FILEOUT} ${2}
+  chmod --reference=${1} ${2}/${FILEOUT}
+
+  IGCM_sys_Rm -f ${1}
+
+  IGCM_debug_Print 3 "REPLACE_sed : ${1} ${2}"
+
+  IGCM_debug_PopStack "REPLACE_sed"
+  return $RET
+}
+
+function MOVE_and_RENAME_files
+{
+  IGCM_debug_PushStack "MOVE_and_RENAME_files"
+
+  typeset VAR_files FILE_OUT file i RET
+
+  VAR_files=${1}
+  eval VAR1=\${${VAR_files[0]}}
+
+  if [ X$( echo ${NEW_R_SAVE} | grep ${config_UserChoices_JobName} ) != X ]; then
+    set +A FILE_OUT -- $( eval echo \${${VAR_files}[*]} | sed -e "s&${R_SAVE}&${NEW_R_SAVE}&g" )
+    ((i=0))
+    for file in ${FILE_OUT[@]} ; do
+      FILE_OUT[$i]=$( dirname $file )/$( echo $( basename $file ) | sed -e "s/${config_UserChoices_JobName}/${NEW_JobName}/g" )
+      (( i = i + 1 ))
+    done
+  else
+    set +A FILE_OUT -- $( eval echo \${${VAR_files}[*]} | sed -e "s&${R_SAVE}&${NEW_R_SAVE}&g" -e "s/${config_UserChoices_JobName}/${NEW_JobName}/g" )
+  fi
+  IGCM_debug_Print 3 "MOVE_and_RENAME_files all : ${VAR1}"
+  IGCM_debug_Print 3 "    to     ${FILE_OUT}."
+
+  (( ifile = 0 ))
+  for file_o in ${FILE_OUT[@]} ; do
+    eval IGCM_sys_Mv \${${VAR_files}[${ifile}]} ${file_o}
+    RET=$?
+    (( ifile = ifile + 1 ))
+  done
+
+  IGCM_debug_PopStack "MOVE_and_RENAME_files"
+  return $RET
+}
+
+function MY_DODS_Cp
+{
+  IGCM_debug_PushStack "MY_DODS_Cp"
+
+  typeset old_JobName old_R_DODS
+  IGCM_sys_Cd ${NEW_R_SAVE}
+  old_JobName=${config_UserChoices_JobName}
+  old_R_DODS=${R_DODS}
+  old_R_SAVE=${R_SAVE}
+
+  config_UserChoices_JobName=${NEW_JobName}
+  R_DODS=${NEW_R_DODS}
+  R_SAVE=${NEW_R_SAVE}
+
+  IGCM_sys_Dods_Cp ${1}
+  IGCM_debug_Print 3 "MY_DODS_Cp : ${config_UserChoices_JobName}/${1}"
+  IGCM_sys_Cd ${RUN_DIR_PATH}
+
+  config_UserChoices_JobName=${old_JobName}
+  R_DODS=${old_R_DODS}
+  R_SAVE=${old_R_SAVE}
+
+  IGCM_debug_PopStack "MY_DODS_Cp"
+}
+
+function MY_DODS_Rm
+{
+  IGCM_debug_PushStack "MY_DODS_Rm"
+  DEBUG_debug=false
+
+  IGCM_sys_Cd ${R_SAVE}
+  IGCM_sys_Dods_Rm ${1}
+  IGCM_debug_Print 3 "MY_DODS_Rm : ${config_UserChoices_JobName}/${1}"
+  IGCM_sys_Cd ${RUN_DIR_PATH}
+
+  IGCM_debug_PopStack "MY_DODS_Rm"
+}
+########################################################################
+
+if [ ! -d ${SUBMIT_DIR} ]; then
+  IGCM_debug_Print 1 "No ${SUBMIT_DIR}, we stop here"
+  exit 1
+fi
+
+# We temporary change ${run_Configuration_PeriodState} to
+if [ -f ${SUBMIT_DIR}/run.card ] ; then
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState
+  if ( [ ${run_Configuration_PeriodState} != "Start" ] && [ ${run_Configuration_PeriodState} != "Running" ] && [ ${run_Configuration_PeriodState} != "OnQueue" ] && [ ${run_Configuration_PeriodState} != "Continue" ] ) ; then
+    old_run_Configuration_PeriodState=${run_Configuration_PeriodState}
+    IGCM_debug_PrintVariables 2 old_run_Configuration_PeriodState
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "OnQueue"
+  fi
+fi
+
+IGCM_config_Initialize
+
+if [ -f ${SUBMIT_DIR}/run.card ] ; then
+  IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin
+  IGCM_debug_PrintVariables 2 run_Configuration_PeriodDateBegin
+  if [ X${old_run_Configuration_PeriodState} != X"Completed" ] ; then
+    DateEnd=$( IGCM_date_AddDaysToGregorianDate $( IGCM_date_ConvertFormatToGregorian ${PeriodDateBegin} ) -1 )
+  else
+    DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+  fi
+else
+  DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+fi
+
+IGCM_debug_Print 1 ""
+IGCM_debug_Print 1 "DateEnd for MoveJob_Checker : " ${DateEnd}
+IGCM_date_GetYearMonth ${DateEnd}   YearEnd   MonthEnd
+IGCM_debug_Print 1 "YearEnd MonthEnd for TimeSeries_Checker : " ${YearEnd} ${MonthEnd}
+IGCM_debug_Print 1 ""
+
+#set -vx
+
+#====================================================
+#DEFINE NEW_R_SAVE
+if [ X${config_UserChoices_SpaceName} != X ] ; then
+  NEW_SAVE=${config_UserChoices_TagName}/${NEW_SpaceName}
+else
+  NEW_SAVE=${config_UserChoices_TagName}
+fi
+if [ X${config_UserChoices_ExperimentName} != X ] ; then
+  NEW_SAVE=${NEW_SAVE}/${NEW_ExperimentName}
+fi
+
+NEW_R_SAVE=${R_OUT}/${NEW_SAVE}/${NEW_JobName}
+
+IGCM_debug_Print 1 "Move ${R_SAVE} to ${NEW_R_SAVE}"
+if [ -d ${NEW_R_SAVE} ] ; then
+  IGCM_debug_Print 1 "ERROR : ${NEW_R_SAVE} directory already exist !"
+  IGCM_debug_Print 1 "We won't try to  We stop here."
+  exit 1
+fi
+IGCM_sys_MkdirArchive ${NEW_R_SAVE}
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+#DEFINE NEW_R_DODS
+NEW_R_DODS=${NEW_SAVE}/${NEW_JobName}
+
+# Define NEW_REBUILD_DIR
+if [ -d ${REBUILD_DIR} ] ; then  
+  NEW_REBUILD_DIR=${BIG_DIR}/${config_UserChoices_TagName}/${NEW_JobName}
+  IGCM_sys_MkdirWork ${NEW_REBUILD_DIR}
+fi
+
+#====================================================
+# SAVE LOCAL WORKING DIR
+IGCM_sys_Cd ${RUN_DIR_PATH}
+
+#====================================================
+#Exe
+IGCM_debug_Print 1 "Move Exe"
+set +A listfiles -- $( find ${R_SAVE}/Exe -type f )
+
+IGCM_sys_MkdirArchive ${NEW_R_SAVE}/Exe
+MOVE_and_RENAME_files "listfiles"
+
+#====================================================
+#Out
+IGCM_debug_Print 1 "Move Out"
+OutinDir=${R_SAVE}/Out
+OutNEWDir=${NEW_R_SAVE}/Out
+IGCM_sys_MkdirArchive ${OutNEWDir}
+
+# Change JobName and copy run.card
+if [ -f ${OutinDir}/run.card ] ; then
+  sed -e "s/OldPrefix=\ *${config_UserChoices_JobName}/OldPrefix= ${NEW_JobName}/g" \
+    ${OutinDir}/run.card > ${RUN_DIR_PATH}/run.card
+  RET=$?
+  if [ ${RET} = 0 ] ; then
+    IGCM_sys_Mv -f ${RUN_DIR_PATH}/run.card ${OutNEWDir}
+    IGCM_sys_Rm -f ${OutinDir}/run.card
+  fi
+fi
+
+# Just copy historical run.card
+unset listfiles
+set +A listfiles -- $( find ${OutinDir} -type f -name "run.card\.[0-9]*\.[0-9]*" )
+if [ ${#listfiles[*]} -gt 0 ] ; then
+  IGCM_sys_Cp ${listfiles[*]} ${OutNEWDir}
+  RET=$?
+  if [ ${RET} = 0 ] ; then
+    IGCM_sys_Rm -f ${listfiles[*]}
+  fi
+fi
+
+# Move and Rename OLD Script_Output
+unset listfiles
+set +A listfiles -- $( find ${OutinDir} -type f -name "Script_Output_*\.[0-9]*\.[0-9]*" )
+MOVE_and_RENAME_files "listfiles"
+
+# Move and Rename OLD Executable Output
+unset listfiles
+set +A listfiles -- $( find ${OutinDir} -type f -name "*_out_execution" )
+MOVE_and_RENAME_files "listfiles"
+
+#====================================================
+IGCM_debug_Print 1 "For components"
+IGCM_debug_Print 1 "=============="
+
+#====================================================
+#Output
+# loop over components and frequencies
+IGCM_debug_Print 1 "Move Output"
+for comp in ${config_ListOfComponents[*]} ; do
+  IGCM_debug_Print 2 "------------------"
+  IGCM_debug_Print 2 "for component ${comp}"
+
+  unset FREQDIR
+  set +A FREQDIR -- $( find ${R_SAVE}/${comp}/Output -type d -not -name "*Output" )
+
+  IGCM_debug_Print 3 "List of WriteFrequencies : ${FREQDIR[*]}"
+
+  for ThisfreqDir in ${FREQDIR[*]} ; do
+    freq=$( basename ${ThisfreqDir} )
+    IGCM_debug_Print 2 "${freq}."
+
+    NEW_freqDir=${NEW_R_SAVE}/${comp}/Output/${freq}
+    IGCM_sys_MkdirArchive ${NEW_freqDir}
+
+    unset listfiles
+    set +A listfiles -- $( find ${ThisfreqDir} -type f )
+
+    MOVE_and_RENAME_files "listfiles"
+  done
+
+  unset COMPFILES
+  set +A COMPFILES -- $( find ${R_SAVE}/${comp}/Output -type f )
+
+  if [ ${#COMPFILES[*]} -gt 0 ] ; then
+    IGCM_debug_Print 2 "simple Output FILES : ${COMPFILES[*]}."
+
+    MOVE_and_RENAME_files "COMPFILES"
+  fi
+done
+
+#====================================================
+#Restart
+# loop over components
+IGCM_debug_Print 1 "Move Restart"
+for comp in ${config_ListOfComponents[*]} ; do
+  IGCM_debug_Print 2 "------------------"
+  IGCM_debug_Print 2 "for component ${comp}"
+
+  ThisRestDir=${R_SAVE}/${comp}/Restart
+  NEW_RestDir=${NEW_R_SAVE}/${comp}/Restart
+  IGCM_sys_MkdirArchive ${NEW_RestDir}
+
+  unset listfiles
+  set +A listfiles -- $( find ${ThisRestDir} -type f )
+
+  MOVE_and_RENAME_files "listfiles"
+done
+
+#====================================================
+#DEBUG
+# Move and Rename OLD Executable Output
+# loop over components
+IGCM_debug_Print 1 "Move Debug"
+for comp in ${config_ListOfComponents[*]} ; do
+  IGCM_debug_Print 2 "------------------"
+  IGCM_debug_Print 2 "for component ${comp}"
+
+  ThisDebugDir=${R_SAVE}/${comp}/Debug
+  NEW_DebugDir=${NEW_R_SAVE}/${comp}/Debug
+  IGCM_sys_MkdirArchive ${NEW_DebugDir}
+
+  unset listfiles
+  set +A listfiles -- $( find ${ThisDebugDir} -type f )
+
+  MOVE_and_RENAME_files "listfiles"
+done
+
+#====================================================
+#POST
+# loop over components and frequencies
+IGCM_debug_Print 1 "Move Analyse"
+for comp in ${config_ListOfComponents[*]} ; do
+  IGCM_debug_Print 2 "------------------"
+  IGCM_debug_Print 2 "for component ${comp}"
+
+  if [ -d ${R_SAVE}/${comp}/Analyse ] ; then
+    unset TSDIR
+    set +A TSDIR -- $( find ${R_SAVE}/${comp}/Analyse -name "TS_*" -type d )
+
+    for ThisTSDir in ${TSDIR[*]} ; do
+      TS_Dir=$( basename ${ThisTSDir} )
+      IGCM_debug_Print 2 "${TS_Dir}."
+
+      NEW_TSDir=${NEW_R_SAVE}/${comp}/Analyse/${TS_Dir}
+      IGCM_sys_MkdirArchive ${NEW_TSDir}
+
+      MY_DODS_Rm ${comp}/Analyse/${TS_Dir}
+
+      unset listfiles
+      set +A listfiles -- $( find ${ThisTSDir} -type f )
+
+      MOVE_and_RENAME_files "listfiles"
+
+      MY_DODS_Cp ${comp}/Analyse/${TS_Dir}
+    done
+
+    ThisSEDir=${R_SAVE}/${comp}/Analyse/SE
+    IGCM_sys_TestDirArchive ${ThisSEDir}
+    if [ $? = 0 ] ; then
+      IGCM_debug_Print 2 "SE."
+      NEW_SEDir=${NEW_R_SAVE}/${comp}/Analyse/SE
+      IGCM_sys_MkdirArchive ${NEW_SEDir}
+
+      MY_DODS_Rm ${comp}/Analyse/SE
+
+      unset listfiles
+      set +A listfiles -- $( find ${ThisSEDir} -type f )
+
+      MOVE_and_RENAME_files "listfiles"
+
+      MY_DODS_Cp ${comp}/Analyse/SE
+    fi
+
+    MY_DODS_Rm ${comp}/Analyse
+    MY_DODS_Rm ${comp}
+  else
+    IGCM_debug_Print 2 "nothing to do without Analyse."
+  fi
+
+done
+
+#====================================================
+#GRAPHS
+IGCM_debug_Print 1 "Move ATLAS"
+R_ATLAS=ATLAS
+IGCM_sys_TestDirArchive ${R_SAVE}/${R_ATLAS}
+if [ $? = 0 ] ; then
+  # REPLACE_sed ${NEW_R_SAVE}/${R_ATLAS}/*/*/index.html ${NEW_R_SAVE}/${R_ATLAS}
+
+  MY_DODS_Rm ${R_ATLAS}
+
+  IGCM_sys_Mv ${R_SAVE}/${R_ATLAS} ${NEW_R_SAVE}/${R_ATLAS}
+
+  MY_DODS_Cp ${R_ATLAS}
+fi
+
+IGCM_debug_Print 1 "Move MONITORING"
+R_MONITORING=MONITORING
+IGCM_sys_TestDirArchive ${R_SAVE}/${R_MONITORING}
+if [ $? = 0 ] ; then
+  IGCM_sys_MkdirArchive ${NEW_R_SAVE}/${R_MONITORING}
+  REPLACE_sed ${R_SAVE}/${R_MONITORING}/index.html ${NEW_R_SAVE}/${R_MONITORING}
+  sed -e "s/OldPrefix=\ *${config_UserChoices_JobName}/OldPrefix= ${NEW_JobName}/g" \
+  ${R_SAVE}/${R_MONITORING}/run.card > ${RUN_DIR_PATH}/run.card
+  IGCM_sys_Mv -f ${RUN_DIR_PATH}/run.card ${NEW_R_SAVE}/${R_MONITORING}
+  RET=$?
+  if [ ${RET} = 0 ] ; then
+    IGCM_sys_Rm -f ${R_SAVE}/${R_MONITORING}/run.card
+  fi
+  REPLACE_sed ${R_SAVE}/${R_MONITORING}/config.card ${NEW_R_SAVE}/${R_MONITORING}
+  IGCM_sys_Cp -rp ${R_SAVE}/${R_MONITORING} ${NEW_R_SAVE}
+
+  MY_DODS_Rm ${R_MONITORING}
+  IGCM_sys_Rm -rf ${R_SAVE}/${R_MONITORING}
+
+  MY_DODS_Cp ${R_MONITORING}
+fi
+
+
+#====================================================
+#REBUILD
+
+if [ -d ${REBUILD_DIR} ] ; then
+
+  IGCM_debug_Print 1 "Move REBUILD"
+  set +A LISTREBUILDS -- $( find ${REBUILD_DIR} -type d  -not -name "*${config_UserChoices_JobName}" -a -not -name "*TMP" )
+
+  for ThisREBDir in ${LISTREBUILDS[*]} ; do
+    rebdir=$( basename ${ThisREBDir} )
+    IGCM_debug_Print 2 "${rebdir}."
+    IGCM_sys_MkdirWork ${NEW_REBUILD_DIR}/${rebdir}
+    REPLACE_sed ${REBUILD_DIR}/${rebdir}/rebuild.ksh ${NEW_REBUILD_DIR}/${rebdir}
+    IGCM_sys_Mv -f ${REBUILD_DIR}/${rebdir}/* ${NEW_REBUILD_DIR}/${rebdir}/
+  done
+fi
+
+#====================================================
+#List OLD R_SAVE and Ask for erase it !
+
+IGCM_debug_Print 1 "ls of SAVE DIR :"
+ls --color -lR ${R_SAVE}
+
+echo "\033[1;31mPlease verify that ALL OLD DIRECTORY LISTED IS COMPLETLY EMPTY !"
+echo "\033[1;32mIf It is NOT EMPTY, you can TRY AGAIN this script."
+echo "\033[1;31mDo you REALLY want to erase all this directory ?"
+echo -n " Your answer (y/n) : \033[m"
+if [ X${reponse} = X ] ; then
+  read reponse
+fi
+case ${reponse} in
+
+  oui|OUI|o|y|yes|YES)
+    echo "OK. It will be erased."
+    IGCM_sys_Rm -Rf ${R_SAVE}
+    echo "done."
+    ;;
+  non|NON|n|no|NO)
+    echo "Nothing to do !"
+    ;;
+esac
+
+
+#############################################################################################################
+# Edit config.card, run.card and Job_${NewJobName}
+
+IGCM_debug_Print 1 "edit config.card"
+if [ X${config_UserChoices_SpaceName} != X ] ; then
+  IGCM_card_WriteOption ${SUBMIT_DIR}/config.card UserChoices SpaceName ${NEW_SpaceName}
+fi
+if [ X${config_UserChoices_ExperimentName} != X ] ; then
+  IGCM_card_WriteOption ${SUBMIT_DIR}/config.card UserChoices ExperimentName ${NEW_ExperimentName}
+fi
+IGCM_card_WriteOption ${SUBMIT_DIR}/config.card UserChoices JobName ${NEW_JobName}
+
+if [ -f ${SUBMIT_DIR}/run.card ] ; then
+  IGCM_debug_Print 1 "edit run.card"
+  sed -e "s/OldPrefix=\ *${config_UserChoices_JobName}/OldPrefix= ${NEW_JobName}/g" \
+  ${SUBMIT_DIR}/run.card > ${RUN_DIR_PATH}/run.card
+  IGCM_sys_Mv -f ${RUN_DIR_PATH}/run.card ${SUBMIT_DIR}/run.card
+
+  if [ X${old_run_Configuration_PeriodState} != X ] ; then
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState ${old_run_Configuration_PeriodState}
+  fi
+fi
+
+if [ -f ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} ] ; then
+  IGCM_debug_Print 1 "edit Job_${NEW_JobName}"
+  sed -e "s&${R_SAVE}&${NEW_R_SAVE}&g" -e "s/${config_UserChoices_JobName}/${NEW_JobName}/g" \
+  ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} > ${SUBMIT_DIR}/Job_${NEW_JobName}
+  chmod --reference=${SUBMIT_DIR}/Job_${config_UserChoices_JobName} ${SUBMIT_DIR}/Job_${NEW_JobName}
+  ls -la ${SUBMIT_DIR}/Job_${NEW_JobName}
+fi
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_debug
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_debug	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_debug	(revision 5899)
@@ -0,0 +1,332 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r PACKDEBUG      # Nom du job
+#-Q- curie #MSUB -o PACKDEBUG.out_%I
+#-Q- curie #MSUB -e PACKDEBUG.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 3600          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r PACKDEBUG     # Job name
+#-Q- irene #MSUB -o PACKDEBUG.out_%I
+#-Q- irene #MSUB -e PACKDEBUG.out_%I
+#-Q- irene #MSUB -n 1             # Number of cores
+#-Q- irene #MSUB -T 3600          # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r PACKDEBUG     # Job name
+#-Q- irene-amd #MSUB -o PACKDEBUG.out_%I
+#-Q- irene-amd #MSUB -e PACKDEBUG.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 3600          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh 
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=PACKDEBUG         # Job Name
+#-Q- jeanzay #SBATCH --output=PACKDEBUG.out_%J    # standard output
+#-Q- jeanzay #SBATCH --error=PACKDEBUG.out_%J     # error output
+#-Q- jeanzay #SBATCH -N  1                        # Number of core
+#-Q- jeanzay #SBATCH --partition=prepost          # Post-processing partition
+#-Q- jeanzay #SBATCH --time=10:00:00              # Wall clock limit (seconds)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 10:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = PACKDEBUG
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $DateBegin ; $DateEnd ; $PeriodPack ; $StandAlone ; $MASTER ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N PACKDEBUG
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o PACKDEBUG.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N PACKDEBUG
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#-D- $hostname of the MASTER job when SUBMIT_DIR is not visible on postprocessing computer.
+MASTER=${MASTER:=ada|curie}
+
+#D- Flag to determine begin date for restart pack
+#D- Default : value from AA_job if any
+DateBegin=${DateBegin:=20000101}
+
+#D- Flag to determine end date for restart pack
+#D- Default : value from AA_job if any
+DateEnd=${DateEnd:=20691231}
+
+#D- Flag to determine pack period
+#D- Default : value from AA_job if any
+PeriodPack=${PeriodPack:=10Y}
+
+#D- Uncomment to run interactively
+#D- For testing purpose, will be remove
+#SUBMIT_DIR=${PWD}
+#RUN_DIR_PATH=${SCRATCHDIR}/Pack_Test
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- Keep following comments for now. Will be remove.
+
+#on veut archiver les fichiers restart
+#Dans le cadre du demenagement ils seront renommes
+#ATM/Restart/****.nc
+#OCE/Restart/****.nc
+#...
+#sous la forme
+#RESTART/ATM_****.nc
+#RESTART/OCE_****.nc
+#Attention de bien conserver les dates d'origines
+#
+#Dans le cadre de la production nouvelle chaine
+#ils auront directement le bon nom
+#
+#On veut egalement que l'archive soit par periode de temps
+# cette periode est definie par la taille du pack donc connue
+# en entree du script (1M, 1Y, 5Y, 10Y etc...)
+#
+# $1= PATH/config_card d'une simulation avec
+# TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd
+# $2=PeriodPack en M/m ou Y/y
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
+#-------
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Test and set up directories
+#==================================
+IGCM_sys_TestDirArchive ${R_SAVE}
+[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive"
+
+STORE_DEBUG=${R_SAVE}/DEBUG
+IGCM_sys_MkdirArchive ${STORE_DEBUG}
+
+# Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure)
+JobName=${config_UserChoices_JobName}
+echo $JobName $DateBegin $DateEnd
+
+# Clear txt file lists
+rm -f ${RUN_DIR}/liste_debug_files.txt
+rm -f ${RUN_DIR}/liste_out_files.txt
+rm -f ${RUN_DIR}/new_liste_debug_files.txt
+rm -f ${RUN_DIR}/liste_pack_*.txt
+
+# Create sorted debug list to work with
+find ${R_BUFR}/*/Debug -type f | sort >> ${RUN_DIR}/liste_debug_files.txt
+
+# Rename debug files we will work with using symlinks. use ???_ prefix ie NF-2
+#gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("cp --preserve " $0 " "dest_name)}' ${RUN_DIR}/liste_debug_files.txt
+gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("ln -s " $0 " "dest_name)}' ${RUN_DIR}/liste_debug_files.txt
+
+# Add out_ : output of execution files
+find ${R_BUFR}/Out -type f -name '*out_*' | sort >> ${RUN_DIR}/liste_out_files.txt
+
+# Rename out files we will work with using symlinks. use Out_ prefix ie NF-1
+gawk -F/ '{dest_name=$(NF-1)("_") $(NF); system("ln -s " $0 " "dest_name)}' ${RUN_DIR}/liste_out_files.txt
+
+# List renamed debug files. Exclude Job_xxx files.
+find ${RUN_DIR} -maxdepth 1 -mindepth 1 -name "???_*${JobName}*" -ls | sort -k 11 > ${RUN_DIR}/new_liste_debug_files.txt
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+# Init loop
+date_begin_pack=${DateBegin}
+date_end_simulation=${DateEnd}
+number_pack=1
+
+IGCM_debug_PrintVariables 3 date_begin_pack
+IGCM_debug_PrintVariables 3 date_end_simulation
+
+while [ ${date_begin_pack} -le ${date_end_simulation} ] ; do
+
+  IGCM_debug_PrintVariables 3 number_pack
+
+  DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} )
+  date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) )
+
+  for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_debug_files.txt ); do
+    extract_date_file=$( echo ${file}  | sed -e "s/.*${JobName}_[0-9]*_//" )
+    date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' )
+#   echo pack nÂ°${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack}
+    if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then
+        echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt
+        echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${date_begin_pack}_${date_end_pack}.txt
+    fi
+  done
+
+  # Create tar files
+  IGCM_debug_Print 1 "Tar ongoing"
+  tar -cvf ${JobName}_${date_begin_pack}_${date_end_pack}_debug.tar --dereference --files-from ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt
+  # Test return code of tar
+  [ $? != 0 ] && IGCM_debug_Exit "tar failed"
+  # Save it
+  IGCM_sys_Put_Out ${JobName}_${date_begin_pack}_${date_end_pack}_debug.tar ${STORE_DEBUG}
+  # Clean it
+  IGCM_sys_Rm ${JobName}_${date_begin_pack}_${date_end_pack}_debug.tar
+  # ------------------------------------------------------------------
+  # Test if all was right before proceeding cleaning
+  # ------------------------------------------------------------------
+  IGCM_debug_Verif_Exit
+  # Clean links
+  cat ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt | xargs rm
+  # Clean files links pointed to
+  cat ${RUN_DIR}/liste_remove_pack_${date_begin_pack}_${date_end_pack}.txt | xargs rm
+  # Save the list of files that has been pack (tar)
+  #mv ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt ${STORE_DEBUG}
+  IGCM_debug_Print 1 "Tar and cleaning done"
+
+  (( number_pack = number_pack + 1 ))
+
+  # Add 1 day to date_end_pack to have the new date_begin_pack
+  date_begin_pack=$( IGCM_date_AddDaysToGregorianDate ${date_end_pack} 1 )
+
+done
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
+
+date
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_output
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_output	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_output	(revision 5899)
@@ -0,0 +1,347 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r PACKOUTPUT     # Nom du job
+#-Q- curie #MSUB -o PACKOUTPUT.out_%I
+#-Q- curie #MSUB -e PACKOUTPUT.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 36000          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r PACKOUTPUT     # Job name
+#-Q- irene #MSUB -o PACKOUTPUT.out_%I
+#-Q- irene #MSUB -e PACKOUTPUT.out_%I
+#-Q- irene #MSUB -n 1              # Number of cores
+#-Q- irene #MSUB -T 36000          # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node::
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r PACKOUTPUT     # Job name
+#-Q- irene-amd #MSUB -o PACKOUTPUT.out_%I
+#-Q- irene-amd #MSUB -e PACKOUTPUT.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 36000          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh 
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=PACKOUTPUT         # Job Name
+#-Q- jeanzay #SBATCH --output=PACKOUTPUT.out_%J    # standard output
+#-Q- jeanzay #SBATCH --error=PACKOUTPUT.out_%J     # error output
+#-Q- jeanzay #SBATCH -N  1                        # Number of core
+#-Q- jeanzay #SBATCH --partition=prepost          # Post-processing partition
+#-Q- jeanzay #SBATCH --time=10:00:00               # Wall clock limit (seconds)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 10:00:00
+#-Q- ada # Memory required for ncrcat
+#-Q- ada # @ as_limit = 30Gb
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = PACKOUTPUT
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $DateBegin ; $DateEnd ; $PeriodPack ; $StandAlone ; $MASTER ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N PACKOUTPUT
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o PACKOUTPUT.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N PACKOUTPUT
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#-D- $hostname of the MASTER job when SUBMIT_DIR is not visible on postprocessing computer.
+MASTER=${MASTER:=ada|curie}
+
+#D- Flag to determine begin date for restart pack
+#D- Default : value from AA_job if any
+DateBegin=${DateBegin:=20000101}
+
+#D- Flag to determine end date for restart pack
+#D- Default : value from AA_job if any
+DateEnd=${DateEnd:=20691231}
+
+#D- Flag to determine pack period
+#D- Default : value from AA_job if any
+PeriodPack=${PeriodPack:=10Y}
+
+#D- Uncomment to run interactively
+#D- For testing purpose, will be remove
+#SUBMIT_DIR=${PWD}
+#RUN_DIR_PATH=${SCRATCHDIR}/Pack_Test
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
+#-------
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Read ListOfComponents section
+# to drive the loop over find
+IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents
+
+#==================================
+# Test and set up directories
+#==================================
+IGCM_sys_TestDirArchive ${R_SAVE}
+[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive"
+
+# Where to store used file list /!\ TEMPORARY /!\
+STORE_DEBUG=${R_SAVE}/DEBUG
+
+# Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure)
+JobName=${config_UserChoices_JobName}
+echo $JobName $DateBegin $DateEnd
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+IGCM_debug_Print 1 "Check coherence between PackFrequency and PeriodLength"
+IGCM_post_CheckModuloFrequency PeriodPack config_UserChoices_PeriodLength NbPeriodPerFrequency
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+IGCM_debug_Print 1 "We must process ${NbPeriodPerFrequency} files for each pack"
+
+# Init loop
+date_begin_pack=${DateBegin}
+date_end_simulation=${DateEnd}
+number_pack=1
+
+IGCM_debug_PrintVariables 3 date_begin_pack
+IGCM_debug_PrintVariables 3 date_end_simulation
+
+while [ ${date_begin_pack} -le ${date_end_simulation} ] ; do
+
+  IGCM_debug_PrintVariables 3 number_pack
+  DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} )
+  date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) )
+
+  for comp in ${config_ListOfComponents[*]} ; do
+    dirList=$( find ${R_BUFR}/${comp}/Output -maxdepth 1 -mindepth 1 -type d )
+    for dir in ${dirList} ; do
+      # dirID is like ATM.Output.MO
+      dirID=$( echo $dir | sed "s:${R_BUFR}/::" | sed "s:/:.:g" )
+      # Sort what's in the directory
+      find ${dir} -type f -name "${JobName}*.nc" -ls | sort -k 11 > liste_files.${dirID}.txt
+      # How much file type. Example : 1M_histmthCOSP.nc, 1M_histmth.nc, 1M_histmthNMC.nc, 1M_paramLMDZ_phy.nc
+      # /!\ fileType include the .nc extension /!\
+      fileType=$( gawk '{print $11}' liste_files.${dirID}.txt | gawk -F$dir/ '{print $2}' | sed "s:${JobName}_[0-9]\{8,9\}_[0-9]\{8,9\}_::g" | sort | uniq )
+      # Loop over the file type and pack them when in between date_begin_pack and date_end_pack
+      for myType in ${fileType} ; do
+        grep ${myType} liste_files.${dirID}.txt > liste_files.${dirID}.${myType}.txt
+        nbfile=0
+        for file in $( gawk '{print $11}' liste_files.${dirID}.${myType}.txt ); do
+          extract_date_file=$( echo ${file}  | sed -e "s/.*${JobName}_[0-9]*_//" )
+          date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' )
+          # echo pack nÂ°${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack}
+          if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then
+            echo ${file} >> liste_pack_${myType}_${date_begin_pack}_${date_end_pack}.txt
+            ncdump -h ${file} | grep -E 'float|double' | cut -f 1 -d '(' | cut -f 2 -d ' ' >> liste_variables_${myType}_${date_begin_pack}_${date_end_pack}.txt
+            (( nbfile = nbfile + 1 ))
+          fi
+        done
+
+        if [ ${nbfile} = 0 ] ; then
+          IGCM_debug_Print 1 "We found no file to process"
+          IGCM_debug_Print 1 "We should have found ${NbPeriodPerFrequency} files"
+          IGCM_debug_Print 1 "As some files can be produced only for some selected period we consider we can move to the next file type"
+          continue
+        fi
+
+        # Select list of variables to work with
+        list_var=$( cat liste_variables_${myType}_${date_begin_pack}_${date_end_pack}.txt | sort | uniq -c | awk -v nbfile=$nbfile '{if ($1 != nbfile) {print $2}}' | paste -s -d ',' )
+        liste_file_tmp=$( for i in $( cat liste_pack_${myType}_${date_begin_pack}_${date_end_pack}.txt ) ; do basename $i ; done )
+        # Create packed files
+        IGCM_debug_Print 1 "Ncrcat ongoing for ${dir} and ${myType}"
+        if [ ! ${nbfile} = ${NbPeriodPerFrequency} ] ; then
+          IGCM_debug_Print 1 "Number of files to process is not equal to what it should be"
+          IGCM_debug_Print 1 "We found ${nbfile} files and it should have been ${NbPeriodPerFrequency} files"
+          IGCM_debug_Exit "ERROR in number of files to process. STOP HERE INCLUDING THE COMPUTING JOB"
+          IGCM_debug_Verif_Exit
+        fi
+        output=${JobName}_${date_begin_pack}_${date_end_pack}_${myType}
+        #cat liste_pack_${myType}_${date_begin_pack}_${date_end_pack}.txt | xargs ncrcat -v ${list_var} -o ${output}
+        if [ X${list_var} = X ] ; then
+          IGCM_sys_ncrcat -p ${dir} ${liste_file_tmp} --output ${output}
+        else
+          IGCM_sys_ncrcat -x -v ${list_var} -p ${dir} ${liste_file_tmp} --output ${output}
+        fi
+        # ------------------------------------------------------------------
+        # Test if all was right before proceeding further
+        # ------------------------------------------------------------------
+        IGCM_debug_Verif_Exit
+        # Save it
+        IGCM_sys_Put_Out ${output} ${R_SAVE}/$( echo $dir | sed "s:${R_BUFR}/::" )/${output}
+        # Clean file produced by ncrcat
+        IGCM_sys_Rm ${output}
+        # ------------------------------------------------------------------
+        # Test if all was right before proceeding further
+        # ------------------------------------------------------------------
+        IGCM_debug_Verif_Exit
+        # Clean files used by ncrcat
+        cat liste_pack_${myType}_${date_begin_pack}_${date_end_pack}.txt | xargs rm
+        # Save the list of files that has been pack (ncrcat)
+        #mv liste_pack_${myType}_${date_begin_pack}_${date_end_pack}.txt ${STORE_DEBUG}
+        IGCM_debug_Print 1 "Ncrcat and cleaning done for ${dir} and ${myType}"
+        echo
+      done
+    done
+  done
+  (( number_pack = number_pack + 1 ))
+  # Add 1 day to date_end_pack to have the new date_begin_pack
+  date_begin_pack=$( IGCM_date_AddDaysToGregorianDate ${date_end_pack} 1 )
+done
+
+# Flush post-processing submission
+if [ -f ${R_BUFR}/FlushPost_${DateEnd}.ksh ] ; then
+  . ${R_BUFR}/FlushPost_${DateEnd}.ksh
+  IGCM_FlushPost
+  #IGCM_sys_Rm -f ${R_BUFR}/FlushPost_${DateEnd}.ksh
+fi
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
+
+date
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_restart
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_restart	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_pack_restart	(revision 5899)
@@ -0,0 +1,343 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r PACKRESTART    # Nom du job
+#-Q- curie #MSUB -o PACKRESTART.out_%I
+#-Q- curie #MSUB -e PACKRESTART.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 7200          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q ::default_node::
+#-Q- curie #MSUB -c ::default_core::
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r PACKRESTART    # Job name
+#-Q- irene #MSUB -o PACKRESTART.out_%I
+#-Q- irene #MSUB -e PACKRESTART.out_%I
+#-Q- irene #MSUB -n 1              # Number of cores
+#-Q- irene #MSUB -T 7200           # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core:: 
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ##########################
+#-Q- irene-amd ## IRENE-ROME  TGCC/CEA ##
+#-Q- irene-amd ##########################
+#-Q- irene-amd #MSUB -r PACKRESTART     # Job name
+#-Q- irene-amd #MSUB -o PACKRESTART.out_%I
+#-Q- irene-amd #MSUB -e PACKRESTART.out_%I
+#-Q- irene-amd #MSUB -n 1              # Number of cores
+#-Q- irene-amd #MSUB -T 7200          # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node::
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- jeanzay #!/bin/ksh 
+#-Q- jeanzay ######################
+#-Q- jeanzay ## JEANZAY    IDRIS ##
+#-Q- jeanzay ######################
+#-Q- jeanzay #SBATCH --job-name=PACKRESTART         # Job Name
+#-Q- jeanzay #SBATCH --output=PACKRESTART.out_%J    # standard output
+#-Q- jeanzay #SBATCH --error=PACKRESTART.out_%J     # error output
+#-Q- jeanzay #SBATCH -N  1                        # Number of core
+#-Q- jeanzay #SBATCH --partition=prepost          # Post-processing partition
+#-Q- jeanzay #SBATCH --time=10:00:00                # Wall clock limit (seconds)
+#-Q- jeanzay #SBATCH --account ::default_project::@cpu
+#-Q- jeanzay set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 10:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = PACKRESTART
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $POST_DIR ; $Script_Post_Output ; $SUBMIT_DIR ; $PeriodDateBegin ; $DateBegin ; $DateEnd ; $PeriodPack ; $StandAlone ; $MASTER ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N PACKRESTART
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o PACKRESTART.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N PACKRESTART
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#-D- $hostname of the MASTER job when SUBMIT_DIR is not visible on postprocessing computer.
+MASTER=${MASTER:=ada|curie}
+
+#D- Flag to determine begin date for restart pack
+#D- Default : value from AA_job if any
+DateBegin=${DateBegin:=20000101}
+
+#D- Flag to determine end date for restart pack
+#D- Default : value from AA_job if any
+DateEnd=${DateEnd:=20691231}
+
+#D- Flag to determine pack period
+#D- Default : value from AA_job if any
+PeriodPack=${PeriodPack:=10Y}
+
+#D- Uncomment to run interactively
+#D- For testing purpose, will be remove
+#SUBMIT_DIR=${PWD}
+#RUN_DIR_PATH=${SCRATCHDIR}/Pack_Test
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- Keep following comments for now. Will be remove.
+
+#on veut archiver les fichiers restart
+#Dans le cadre du demenagement ils seront renommes
+#ATM/Restart/****.nc
+#OCE/Restart/****.nc
+#...
+#sous la forme
+#RESTART/ATM_****.nc
+#RESTART/OCE_****.nc
+#Attention de bien conserver les dates d'origines
+#
+#Dans le cadre de la production nouvelle chaine
+#ils auront directement le bon nom
+#
+#On veut egalement que l'archive soit par periode de temps
+# cette periode est definie par la taille du pack donc connue
+# en entree du script (1M, 1Y, 5Y, 10Y etc...)
+#
+# $1= PATH/config_card d'une simulation avec
+# TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd
+# $2=PeriodPack en M/m ou Y/y
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
+#-------
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+    CARD_DIR=${SUBMIT_DIR}
+else
+    CARD_DIR=${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+    IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+#==================================
+# Test and set up directories
+#==================================
+IGCM_sys_TestDirArchive ${R_SAVE}
+[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive"
+
+STORE_RESTART=${R_SAVE}/RESTART
+IGCM_sys_MkdirArchive ${STORE_RESTART}
+
+# Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure)
+JobName=${config_UserChoices_JobName}
+echo $JobName $R_BUFR $DateBegin $DateEnd
+
+# Clear txt file lists
+rm -f ${RUN_DIR}/liste_restart_files.txt
+rm -f ${RUN_DIR}/new_liste_restart_files.txt
+rm -f ${RUN_DIR}/liste_pack_*.txt
+rm -f ${RUN_DIR}/liste_pack_light_*.txt
+
+# Create sorted restart list to work with
+find ${R_BUFR}/*/Restart -name "*.*" | sort >> ${RUN_DIR}/liste_restart_files.txt
+
+# Rename restart files we will work with using symlinks
+#gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("cp --preserve " $0 " "dest_name)}' ${RUN_DIR}/liste_restart_files.txt
+gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("ln -s " $0 " "dest_name)}' ${RUN_DIR}/liste_restart_files.txt
+
+# List renamed restart files
+find ${RUN_DIR} -maxdepth 1 -mindepth 1 -name "???_*${JobName}*" -ls | sort -k 11 > ${RUN_DIR}/new_liste_restart_files.txt
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+# Init loop
+date_begin_pack=${DateBegin}
+date_end_simulation=${DateEnd}
+number_pack=1
+
+IGCM_debug_PrintVariables 3 date_begin_pack
+IGCM_debug_PrintVariables 3 date_end_simulation
+
+# last restart of the previous period : to be deleted
+typeset date_end_previous
+date_end_previous=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} -1 )
+
+while [ ${date_begin_pack} -le ${date_end_simulation} ] ; do
+
+  IGCM_debug_PrintVariables 3 number_pack
+
+  DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} )
+  date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) )
+
+  for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_restart_files.txt ); do
+    extract_date_file=$( echo ${file}  | sed -e "s/.*${JobName}_//" )
+    date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' )
+    # warning demenagement. delete last restart of the previous pack
+    [  ${date_file} -eq ${date_end_previous} ] && echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${date_begin_pack}_${date_end_pack}.txt
+    # echo pack number ${number_pack}  ${date_file} ${date_begin_pack} ${date_end_pack}
+    if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then
+      echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt
+      # warning demenagement. do not delete last restart of this pack
+      [ ${date_file} -eq ${date_end_pack} ] || echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${date_begin_pack}_${date_end_pack}.txt
+    fi
+    # light pack list of restarts files that will be used
+    if [ X${config_Post_LightRestartPack} = XTRUE ] ; then
+      if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${PeriodDateBegin} ] ; then
+        echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_light_${date_begin_pack}_${date_end_pack}.txt
+      fi
+    fi
+  done
+
+  # Create tar files
+  IGCM_debug_Print 1 "Tar ongoing"
+  if [ X${config_Post_LightRestartPack} = XTRUE ] ; then
+    tar -cvf ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar --dereference --files-from ${RUN_DIR}/liste_pack_light_${date_begin_pack}_${date_end_pack}.txt
+  else
+    tar -cvf ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar --dereference --files-from ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt
+  fi
+  # Test return code of tar
+  [ $? != 0 ] && IGCM_debug_Exit "tar failed in pack_restart job"
+  # Save it
+  IGCM_sys_Put_Out ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar ${STORE_RESTART}
+  # Clean it
+  IGCM_sys_Rm ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar
+  # ------------------------------------------------------------------
+  # Test if all was right before proceeding cleaning
+  # ------------------------------------------------------------------
+  IGCM_debug_Verif_Exit
+  # Clean links
+  cat ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt | xargs rm
+  # Clean files links pointed to
+  cat ${RUN_DIR}/liste_remove_pack_${date_begin_pack}_${date_end_pack}.txt | xargs rm
+  # Save the list of files that has been pack (tar)
+  #mv ${RUN_DIR}/liste_pack_${date_begin_pack}_${date_end_pack}.txt ${STORE_RESTART}
+  IGCM_debug_Print 1 "Tar and cleaning done"
+
+  (( number_pack = number_pack + 1 ))
+
+  # Add 1 day to date_end_pack to have the new date_begin_pack
+  date_begin_pack=$( IGCM_date_AddDaysToGregorianDate ${date_end_pack} 1 )
+
+done
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
+
+date
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_purge_simulation
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_purge_simulation	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_purge_simulation	(revision 5899)
@@ -0,0 +1,173 @@
+#!/bin/ksh
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# ID of your genci project. Curie only : post-processing jobs need it to run properly
+#-Q- curie export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene export BRIDGE_MSUB_PROJECT=::default_project:: 
+#-Q- irene-amd export BRIDGE_MSUB_PROJECT=::default_project:: 
+
+#set -eu
+#set -vx
+
+libIGCM=::modipsl::/libIGCM
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=checking
+
+#D--------------------------------------------------------------------==
+#D-                   -1. User modification place
+#D--------------------------------------------------------------------==
+
+#D- Increased verbosity (1, 2, 3)
+Verbosity=3
+
+#D- Low level debug : to perform lib test checks, stack construction and IO functions instrumentation
+#D- Default=true
+DEBUG_debug=true
+
+#D- Messaging : all activities and call stacks will be sent to ipsl servers
+#D- If true will imply DEBUG_debug=true
+#D- Default=false
+#D-
+BigBrother=true
+
+
+#D--------------------------------------------------------------------==
+
+echo "purge an entire simulation :"
+echo "Script used to purge a simulation from the IGCM_OUT directory !"
+echo "This script will completely wipe out your simulation and will erase all files !!!"
+echo "Be careful and read all informations !"
+echo "----"
+echo "It must be called in Experience directory (so-called SUBMIT_DIR)."
+echo "----"
+
+#D--------------------------------------------------------------------==
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+SUBMIT_DIR=$( pwd )
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+if [ ! -f ${SUBMIT_DIR}/config.card ] ; then
+  echo "A config.card is needed to proceed"
+  exit
+fi
+
+if [ ! -f ${SUBMIT_DIR}/run.card ] ; then
+  echo "A run.card is needed to proceed"
+  exit
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this simulation
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+# List whats need to be done
+echo "Search directories in ${R_SAVE}"
+set +A ListDirectories -- $( IGCM_sys_RshArchive "find ${R_SAVE} ${R_BUFR} ${R_FIGR} -type d | sort | uniq" )
+CountListDirectories=${#ListDirectories[@]}
+
+# And proceed
+if [ ${CountListDirectories} -gt 0 ] ; then
+  for dir in ${ListDirectories[@]} ; do
+    IGCM_debug_Print 2 -e "\033[1;31m ${dir}\033[m"
+  done
+  IGCM_debug_Print 2 -e "\033[1;31m ${SUBMIT_DIR}/run.card\033[m"
+  IGCM_debug_Print 2 -e "\033[1;31m ${SUBMIT_DIR}/Debug\033[m"
+  IGCM_debug_Print 2 -e "\033[1;31m ${SUBMIT_DIR}/Script_Output_*.??????\033[m"
+
+  echo -e "\033[1;32mDo you REALLY want to erase all those directories and files?\033[m"
+  echo -n " Your answer (y/n) :"
+  read reponse
+  case ${reponse} in
+
+  oui|OUI|o|y|yes|YES)
+
+    ERASE=FALSE
+    if [ X${config_UserChoices_SpaceName} = XTEST ] ; then
+      ERASE=TRUE
+    else
+      echo -e "\033[1;32mPlease type in the exact Job Name of the simulation to erase?\033[m"
+      read jobname
+      if [ X${config_UserChoices_JobName} = X${jobname} ] ; then
+        ERASE=TRUE
+      else
+        echo "JobName you gave and the one from config.card do not match. Stop here."
+      fi
+    fi
+
+    if [ X${ERASE} = XTRUE ] ; then
+      echo "OK. It will be erased."
+      for dir in ${ListDirectories[@]} ; do
+        IGCM_sys_RshArchive rm -rf ${dir}
+      done
+      # Remove dods hardlink
+      IGCM_sys_Dods_Rm
+      # Remove run.card
+      rm -f ${SUBMIT_DIR}/run.card
+      # Remove Script_Output
+      rm -f ${SUBMIT_DIR}/Script_Output_*.??????
+      # Remove the Debug directory
+      rm -rf ${SUBMIT_DIR}/Debug
+      # Send a message telling we want to purge
+      IGCM_debug_sendAMQP_Purge 
+      echo "done."
+
+      # Add reset of counter for Script_Output in the main Job
+      Script_Output_Prefix=${config_UserChoices_Script_Output_Prefix:='Script_Output'}
+      Script_Output_Job=${Script_Output_Prefix}_${config_UserChoices_JobName}
+      Script_Output=${Script_Output_Prefix}_${config_UserChoices_JobName}.000001
+
+      echo -e "\033[1;32mDo you want to change the number in Script_Output? (${Script_Output} into Job) ?"
+      echo -n -e " Your answer (y/n) : \033[m"
+      read reponse
+      case ${reponse} in
+	  
+	  oui|OUI|o|y|yes|YES)
+              cp ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}_SAVED_$$
+              sed -e"s/${Script_Output_Job}.[0-9][0-9][0-9][0-9][0-9][0-9]/${Script_Output}/"  ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}_SAVED_$$  >${SUBMIT_DIR}/Job_${config_UserChoices_JobName}
+              echo "Job : Job_${config_UserChoices_JobName} modified."
+              echo "Old job saved here : Job_${config_UserChoices_JobName}_SAVED_$$"
+              ;;
+	  non|NON|n|no|NO)
+              echo "Nothing done in Job_${config_UserChoices_JobName} !"
+              ;;
+      esac
+
+    fi
+    ;;
+  non|NON|n|no|NO)
+    echo "Nothing to do !"
+    ;;
+  esac
+fi
+
+exit 0
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_rebuild_fromWorkdir
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_rebuild_fromWorkdir	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/AA_rebuild_fromWorkdir	(revision 5899)
@@ -0,0 +1,260 @@
+#-Q- curie ######################
+#-Q- curie ## CURIE   TGCC/CEA ##
+#-Q- curie ######################
+#-Q- curie #MSUB -r REBUILDWRK     # Nom du job
+#-Q- curie #MSUB -o REBUILDWRK.out_%I
+#-Q- curie #MSUB -e REBUILDWRK.out_%I
+#-Q- curie #MSUB -n 1              # Reservation du processus
+#-Q- curie #MSUB -T 36000          # Limite de temps elapsed du job
+#-Q- curie #MSUB -q standard       # xlarge:fat nodes standard:thin nodes
+#-Q- curie #MSUB -x                # exclusive node (needed to use high speed disk below)
+#-Q- curie #MSUB -Q normal
+#-Q- curie #MSUB -A ::default_project::
+#-Q- curie RUN_DIR_PATH=/tmp/REBUILD_DIR_MR_$$     # RAM high speed disk partition ; 250GB/node. Along with -q standard
+#-Q- curie #RUN_DIR_PATH=/dev/shm/REBUILD_DIR_MR_$$ # SSD high speed disk partition ; 64GB/node.  Along with -q xlarge
+#-Q- curie set +x
+#-Q- irene ######################
+#-Q- irene ## IRENE   TGCC/CEA ##
+#-Q- irene ######################
+#-Q- irene #MSUB -r REBUILDWRK    # Job name
+#-Q- irene #MSUB -o REBUILDWRK.out_%I
+#-Q- irene #MSUB -e REBUILDWRK.out_%I
+#-Q- irene #MSUB -n 1
+#-Q- irene #MSUB -T 36000         # Maximum elapsed time
+#-Q- irene #MSUB -q ::default_node:: 
+#-Q- irene #MSUB -c ::default_core::
+#-Q- irene #MSUB -Q normal
+#-Q- irene #MSUB -A ::default_post_project::
+#-Q- irene #MSUB -m store,work,scratch
+#-Q- irene set +x
+#-Q- irene-amd ######################
+#-Q- irene-amd ## IRENE   TGCC/CEA ##
+#-Q- irene-amd ######################
+#-Q- irene-amd #MSUB -r REBUILDWRK    # Job name
+#-Q- irene-amd #MSUB -o REBUILDWRK.out_%I
+#-Q- irene-amd #MSUB -e REBUILDWRK.out_%I
+#-Q- irene-amd #MSUB -n 1
+#-Q- irene-amd #MSUB -T 36000         # Maximum elapsed time
+#-Q- irene-amd #MSUB -q ::default_node:: 
+#-Q- irene-amd #MSUB -c ::default_core::
+#-Q- irene-amd #MSUB -Q normal
+#-Q- irene-amd #MSUB -A ::default_post_project::
+#-Q- irene-amd #MSUB -m store,work,scratch
+#-Q- irene-amd set +x
+#-Q- ada #!/bin/ksh
+#-Q- ada #######################
+#-Q- ada ## ADA         IDRIS ##
+#-Q- ada #######################
+#-Q- ada # @ job_type = mpich
+#-Q- ada # @ requirements = (Feature == "prepost")
+#-Q- ada # Temps Elapsed max. d'une requete hh:mm:ss
+#-Q- ada # @ wall_clock_limit = 10:00:00
+#-Q- ada # Nom du travail LoadLeveler
+#-Q- ada # @ job_name   = REBUILDWRK
+#-Q- ada # Fichier de sortie standard du travail
+#-Q- ada # @ output     = $(job_name).$(jobid)
+#-Q- ada # Fichier de sortie d'erreur du travail
+#-Q- ada # @ error      =  $(job_name).$(jobid)
+#-Q- ada # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
+#-Q- ada # @ notification = error
+#-Q- ada # @ environment  = $DEBUG_debug ; $BigBrother ; $postProcessingStopLevel ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $POST_DIR ; $Script_Post_Output ; $DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_MBG ; $RESOL_SRF ; $RESOL_SBG ; $MASTER ; wall_clock_limit=$(wall_clock_limit)
+#-Q- ada # @ queue
+#-Q- lxiv8 ######################
+#-Q- lxiv8 ## OBELIX      LSCE ##
+#-Q- lxiv8 ######################
+#-Q- lxiv8 #PBS -N REBUILDWRK
+#-Q- lxiv8 #PBS -m a
+#-Q- lxiv8 #PBS -j oe
+#-Q- lxiv8 #PBS -q medium
+#-Q- lxiv8 #PBS -o REBUILDWRK.$$
+#-Q- lxiv8 #PBS -S /bin/ksh
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
+#-Q- ifort_CICLAD ######################
+#-Q- ifort_CICLAD #PBS -N REBUILDWRK
+#-Q- ifort_CICLAD #PBS -m a
+#-Q- ifort_CICLAD #PBS -j oe
+#-Q- ifort_CICLAD #PBS -q std
+#-Q- ifort_CICLAD #PBS -S /bin/ksh
+#-Q- default #!/bin/ksh
+#-Q- default ##################
+#-Q- default ## DEFAULT HOST ##
+#-Q- default ##################
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1525                                     $ Revision of last commit
+# $Author:: cetlod                                     $ Author of last commit
+# $Date:: 2020-04-27 10:39:22 +0200 (Mon, 27 Apr 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#set -eu
+#set -vx
+
+date
+
+#-Q- ada export OMP_NUM_THREADS=1
+
+#D- Task type DO NOT CHANGE (computing, post-processing or checking)
+TaskType=post-processing
+
+########################################################################
+
+#D- Flag to determine if this job in a standalone mode
+#D- Default : value from AA_job if any
+StandAlone=${StandAlone:=true}
+
+#D- Path to libIGCM
+#D- Default : value from AA_job if any
+# WARNING For StandAlone use : To run this script on some machine (ulam and cesium)
+# WARNING you must check MirrorlibIGCM variable in sys library.
+# WARNING If this variable is true, you must use libIGCM_POST path instead
+# WARNING of your running libIGCM directory.
+libIGCM=${libIGCM:=::modipsl::/libIGCM}
+
+#-D- $hostname of the MASTER job when SUBMIT_DIR is not visible on postprocessing computer.
+MASTER=${MASTER:=ada|curie}
+
+#D- Directory where files we need to rebuild are store
+#D- Default : value from AA_job if any
+#D- REBUILD_DIR=${BIGDIR}/REBUILD/TagName/JobName/
+#D- example : /scratch/cont003/p86denv/REBUILD/IPSLCM5/SCAL-NEW
+REBUILD_DIR=${REBUILD_DIR:=/path/to/your/TMP/REBUILD/FILES}
+
+#D- How many directory to rebuild we have to consider
+#D- Default : value from AA_job if any
+NbRebuildDir=${NbRebuildDir:=1000}
+
+#D- Suffix date we will use to determine which directory to rebuild
+#D- We will rebuild NbRebuildDir before and including PeriodDateBegin
+#D- Default : value from AA_job if any
+LastPeriodForRebuild=${LastPeriodForRebuild:=${PeriodDateBegin:=18901201}}
+
+#D- Flag to determine atlas job's output directory
+#D- Default : value from libIGCM_post.ksh if any
+POST_DIR=${POST_DIR:=${PBS_O_WORKDIR}}
+
+#-D- libIGCM_SX contains libIGCM on Master computer. Required on some center. Always OK.
+libIGCM_SX=${libIGCM_SX:=::modipsl::/libIGCM}
+
+#D- Increased verbosity (1, 2, 3)
+#D- Default : value from AA_job if any
+Verbosity=${Verbosity:=3}
+
+#D- Low level debug : to bypass lib test checks and stack construction
+#D- Default : value from AA_job if any
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- TEMPORARY Flag to determine atmospheric resolution
+#D- Default : value from atmospheric driver if any
+RESOL_ATM=${RESOL_ATM:=ALL}
+
+#D- TEMPORARY Flag to determine ocean resolution
+#D- Default : value from ocean driver if any
+RESOL_OCE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine ice resolution
+#D- Default : value from ice driver if any
+RESOL_ICE=${RESOL_OCE:=ORCA2}
+
+#D- TEMPORARY Flag to determine biogeochemistry resolution
+#D- Default : value from ice driver if any
+RESOL_MBG=${RESOL_OCE:=ORCA2}
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SRF=ALL
+
+#D- Flag to determine surface resolution
+#D- Default : value from surface driver if any
+RESOL_SBG=ALL
+
+########################################################################
+
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+#-------
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
+#-------
+RUN_DIR=${RUN_DIR_PATH}
+IGCM_sys_MkdirWork ${RUN_DIR}
+IGCM_sys_Cd ${RUN_DIR}
+#-------
+( ${DEBUG_debug} ) && IGCM_debug_Check
+( ${DEBUG_debug} ) && IGCM_card_Check
+( ${DEBUG_debug} ) && IGCM_date_Check
+
+########################################################################
+
+#set -vx
+
+# ------------------------------------------------------------------
+# Test if all was right before proceeding further
+# ------------------------------------------------------------------
+IGCM_debug_Verif_Exit
+
+if [ ${StandAlone} = true ] ; then
+  CARD_DIR=${SUBMIT_DIR}
+else
+  CARD_DIR=${RUN_DIR}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card    ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP        ${RUN_DIR_PATH}
+  IGCM_sys_Get_Master ${SUBMIT_DIR}/POST        ${RUN_DIR_PATH}
+fi
+
+#==================================
+# First of all
+#
+# Read libIGCM compatibility version in config.card
+# Read UserChoices section
+# Read Ensemble section
+# Read Post section
+# Define all netcdf output directories
+#==================================
+IGCM_config_CommonConfiguration ${CARD_DIR}/config.card
+
+# ------------------------------------------------------------------
+# Activate BigBrother so as to supervise this job
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Initialize
+
+# Directory list to work with
+ListAllRebuildDir=$( IGCM_sys_RshMaster ls -d ${REBUILD_DIR}/REBUILD_* | grep -B $(( ${NbRebuildDir} -1 )) ${LastPeriodForRebuild} )
+
+for directory in ${ListAllRebuildDir} ; do
+  #
+  IGCM_sys_Get_Master ${directory} ${RUN_DIR}
+  #
+  IGCM_sys_Cd ${RUN_DIR}/$( basename ${directory} )
+
+  # --------------------------------------------------------------------
+  # Source function include in the REBUILD ksh and rebuild
+  # --------------------------------------------------------------------
+  . ${RUN_DIR}/$( basename ${directory} )/rebuild.ksh
+  IGCM_FlushRebuild
+  #
+  IGCM_sys_Cd ${RUN_DIR}
+  # Clean Up
+  # local clean up
+  IGCM_sys_Rm -rf $( basename ${directory} )
+  # remote clean up
+  IGCM_sys_RshMaster rm -rf ${directory}
+done
+
+# Clean RUN_DIR_PATH (necessary for cesium and titane only)
+IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
+
+# ------------------------------------------------------------------
+# Finalize BigBrother to inform that the jobs end
+# ------------------------------------------------------------------
+IGCM_debug_BigBro_Finalize
+
+date
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/ins_job
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/ins_job	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/ins_job	(revision 5899)
@@ -0,0 +1,667 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Jacques Belier
+# Contact:
+# $Revision:: 1547                                     $ Revision of last commit
+# $Author:: rpennel                                    $ Author of last commit
+# $Date:: 2021-03-09 16:03:19 +0100 (Tue, 09 Mar 2021) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+#---------------------------------------------------------------------
+#- Installation of jobs according to environment
+#---------------------------------------------------------------------
+function ins_job_Usage
+{
+print - "
+ins_job installs the jobs in the directories
+which contain a file config.card
+
+ins_job must be launched on the host
+on which the job will be submitted
+
+Usage :
+  ${b_n} [-h] [-v] [-e] 
+  or on irene/TGCC :
+  ${b_n} [-h] [-v] [-e] [-p project] [-q type_of_node] [-c number of cores]
+  or on ada /IDRIS
+  ${b_n} [-h] [-v] [-e] [-m MPI environment]
+Options :
+  -h                  : help
+  -v                  : verbose mode
+  -e                  : turn on ensemble mode (hindcast/forecast or date restart)
+  -f                  : ins_job is force to create jobs even if they already exist
+on irene only : 
+  -p project          : add default project on irene
+  -q type_of_node     : add default type of nodes for postprocessing on irene skylake/xlarge 
+  -c number of cores  : add default number of cores for postprocessing on irene 1-112
+on ada only :
+  - m MPI environment : add default MPI environment (Intel MPI or IBM MPI)
+  -t wall time        : change default wall time
+"
+}
+function ins_job_Warning
+{
+   [[ ${x_v} = 'verbose' ]] && print - "\n############### WARNING ###############";
+   [[ ${x_v} = 'verbose' ]] && print - "File ${n_f} already exists\nin directory ${j}";
+   [[ ${x_v} = 'verbose' ]] && print - "You must delete this file to update !";
+}
+
+function ins_job_Check_JobName
+{
+  verif=${JobName##[a-zA-Z]*(?([.\-])[a-zA-Z0-9])}
+
+  if [ ${#verif} -ne 0 ] ; then
+    echo "################ ERROR ################"
+    echo "${JobName} is invalid."
+    echo "- JobName can only contain alphanumeric characters, \".\" and \"-\""
+    echo "- JobName must start with a letter"
+
+    ((NbErr=NbErr+1))
+
+    Status=1
+  else
+    Status=0
+  fi
+
+  return ${Status}
+}
+
+#-
+#     dirname     and      basename
+#-
+d_n=$(dirname ${0}); b_n=$(basename ${0});
+#-
+# Retrieving and validation of the options
+#-
+x_v='silencious';
+x_e=false;
+x_f=false;
+x_p=false;
+x_q=false;
+x_c=false;
+x_m=false;
+x_t=false;
+while getopts :hvefc:p:m:q:s:t: V ; do
+  case $V in
+  (h)  ins_job_Usage; exit 0;;
+  (v)  x_v='verbose';;
+  (e)  x_e=true;;
+  (f)  x_f=true;;
+  (p)  x_p=true
+       ProjectID=${OPTARG} ;;
+  (q)  x_q=true
+       ProjectNode=${OPTARG} ;;
+  (c)  x_c=true
+       ProjectCore=${OPTARG} ;;
+  (m)  x_m=true
+       MPIEnvironment=${OPTARG} ;;
+  (t)  x_t=true
+       WallTime=${OPTARG} ;;
+  (:)  echo ${b_n}" : -"${OPTARG}" option : missing value" 1>&2;
+       exit 2;;
+  (\?) echo ${b_n}" : -"${OPTARG}" option : not supported" 1>&2;
+       exit 2;;
+  esac
+done
+[ ${x_v} = 'silencious' ] && export DEBUG_sys=false
+shift $(($OPTIND-1));
+#-
+# Define working files
+#-
+F_MOD=$(cd ${d_n}'/..';/bin/pwd;)
+# [[ ${F_MOD##*/} != 'modipsl' ]] && \
+#  { print - "directory 'modipsl' unreachable"; exit 3; }
+W_W=${d_n}'/../libIGCM'
+[[ ! -d ${W_W} ]] && { print - "${W_W} unreachable"; exit 3; }
+libIGCM=$(cd ${W_W};/bin/pwd;)
+F_JOB=${libIGCM}'/AA_job';
+[[ ! -f ${F_JOB} ]] && { print - "${F_JOB} unreachable"; exit 3; }
+F_RCI=${libIGCM}'/run.card.init';
+[[ ! -f ${F_RCI} ]] && { print - "${F_RCI} unreachable"; exit 3; }
+#-
+# Accessing to functions (without stack)
+#-
+# No verbosity (0, 1, 2, 3)
+Verbosity=0
+# No de debug
+DEBUG_debug=false
+# Dont move libIGCM
+MirrorlibIGCM=false
+# Behave like computing job
+TaskType=computing
+# Source libIGCM
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
+if [ $x_e = 'true' ] ; then
+  . ${libIGCM}/libIGCM_ensemble/libIGCM_ensemble.ksh
+fi
+
+#-
+[[ ${x_v} = 'verbose' ]] && \
+ {
+  print - "";
+  print - '--- Host        : '${SYSTEM};
+  print - '--- modipsl     : '${F_MOD};
+  print - '--- libIGCM     : '${libIGCM};
+  print - '--- basic job   : '${F_JOB};
+  print - '--- basic card  : '${F_RCI};
+ }
+#-
+[[ ${x_v} = 'verbose' ]] && print - "\nInstallation of jobs for '${SYSTEM}'";
+#-
+
+NbErr=0
+
+#-
+# Define Project parameters to set up jobs header for Irene (TGCC)
+# on Irene define ProjectID and ProjectCore : option or answer
+# on Irene ProjectNode default projectnode set to xlarge since 17/10/2018
+#-
+
+
+if [ X"${SYSTEM}" == "Xirene" ] ; then
+
+  #- set ProjectID if required
+  if ( ! ${x_p} ) ; then
+    print - "Wait for the next question ..."
+    #- default ProjectID
+    ProjectID=$( ccc_myproject | grep -i irene |grep -i skylake | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | sort -u | grep -v gencmip6 | head -n 1 )
+    answer=""
+    print - "Hit Enter or give project ID (default is ${ProjectID}), possible projects are $( echo $( ccc_myproject | grep -i irene | grep -i skylake | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | grep -v gencmip6 | sort -u ) ) or other xxxcmip6 : $(for i in $(groups) ; do echo $i|grep -v gencmip6|grep .cmip6 1>/dev/null 2>&1 && echo -n $i " " ; done ; echo ) "
+    read answer
+
+    if [ "X${answer}" != "X" ] ; then
+      ProjectID=${answer}
+    fi
+
+  fi # if ( ! ${x_p} )
+
+  echo  ProjectID is ${ProjectID} at Irene 
+
+
+  # set ProjectNode if required
+  if ( ! ${x_q} ) ; then 
+     #- default ProjectNode 
+     ProjectNode="xlarge"
+     #- is xlarge possible for ${ProjectID} ?
+     echo $(ccc_myproject | grep -i irene | grep -i xlarge | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | grep -v gencmip6 | sort -u) $(for i in $(groups) ; do echo $i|grep -v gencmip6|grep .cmip6 1>/dev/null 2>&1 && echo -n $i " " ; done ) | grep ${ProjectID} >/dev/null 2>&1  || ProjectNode="xlarge"
+
+     if [ "X${ProjectNode}" == "Xxlarge" ] ; then
+       answerOK=false 
+  
+       while ( ! ${answerOK} ) ; do 
+         answer="" 
+         print - "Hit Enter or give TYPE OF NODE required for post-processing (default is \"${ProjectNode}\"), possible types of nodes are \"skylake\" or \"xlarge\" : " 
+         read answer 
+         [ "X${answer}" == "X" ] || [ "X${answer}" == "Xskylake" ] || [ "X${answer}" == "Xxlarge" ] && answerOK=true 
+       done 
+  
+       if [ "X${answer}" != "X" ] ; then 
+         ProjectNode=${answer} 
+       fi 
+
+     else
+       print - "PostProcessing will be done on ${ProjectNode}"
+     fi
+  
+  fi # if ( ! ${x_q} ) 
+  echo ProjectNode for post-processing is ${ProjectNode} at Irene 
+
+  #- ProjectNode is known (option or answer) set ProjectCoreMax 
+  [ "${ProjectNode}" = "xlarge" ] && ProjectCoreMax="112" || ProjectCoreMax="48" 
+  #- ProjectCoreMax is 48 for standard and 112 for xlarge
+
+  if ( ! ${x_c} ) ; then
+    #- ProjectNode is known (option or answer), set ProjectCore default
+    [ "${ProjectNode}" = "xlarge" ] && ProjectCore="8" || ProjectCore="4" 
+
+    # let check minimum/maximum value 1/${ProjectCoreMax}
+
+    answerOK=false
+
+    while ( ! ${answerOK} ) ; do
+      answer=""
+      print - "possible numbers of cores are \"1\" to \"${ProjectCoreMax}\" for ${ProjectNode} : "
+      print - "Hit Enter or give NUMBER OF CORES required for post-processing (default is \"${ProjectCore}\")"
+      read answer
+      [ "X${answer}" == "X" ] || [ ${answer} -ge 1 -a ${answer} -le ${ProjectCoreMax} ] && answerOK=true
+    done
+
+    if [ "X${answer}" != "X" ] ; then
+      ProjectCore=${answer}
+    fi
+
+  fi # if ( ! ${x_c} )
+
+  echo ProjectCore for post-processing is ${ProjectCore}
+  #- ProjectCore is set (option or answer)
+
+  #- set WallTime if required
+  if ( ! ${x_t} ) ; then
+    #- default WallTime 1800 s 
+    WallTime=1800
+    answer=""
+    print - "Hit Enter or give required wall time in seconds for computing job (default is \"${WallTime}\" seconds, maximum is 86400 seconds) "
+    read answer
+
+    if [ "X${answer}" != "X" ] ; then
+      WallTime=${answer}
+    fi
+
+  fi # if ( ! ${x_t} )
+   
+  echo Wall time limit is ${WallTime} seconds
+
+elif [ X"${SYSTEM}" == "Xirene-amd" ] ; then
+
+  #- set ProjectID if required
+  if ( ! ${x_p} ) ; then
+    print - "Wait for the next question ..."
+    #- default ProjectID
+    ProjectID=$( ccc_myproject | grep -i irene |grep -i rome | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | sort -u | grep -v gencmip6 | head -n 1 )
+    answer=""
+    print - "Hit Enter or give project ID (default is ${ProjectID}), possible projects are $( echo $( ccc_myproject | grep -i irene | grep -i rome | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | grep -v gencmip6 | sort -u ) ) or other xxxcmip6 : $(for i in $(groups) ; do echo $i|grep -v gencmip6|grep .cmip6 1>/dev/null 2>&1 && echo -n $i " " ; done ; echo ) "
+    read answer
+
+    if [ "X${answer}" != "X" ] ; then
+      ProjectID=${answer}
+    fi
+
+  fi # if ( ! ${x_p} )
+
+  echo  ProjectID is ${ProjectID} at Irene-amd
+
+  # set ProjectNode if required
+  if ( ! ${x_q} ) ; then 
+     #- default ProjectNode 
+     ProjectNode="rome"
+     #- is xlarge possible for ${ProjectID} ?
+     echo $(ccc_myproject | grep -i irene | grep -i xlarge | gawk '{ if ( $3 ~ /^project$/ && $4 !~ /^tgcc/ ) { print $4 } }' | grep -v gencmip6 | sort -u) $(for i in $(groups) ; do echo $i|grep -v gencmip6|grep .cmip6 1>/dev/null 2>&1 && echo -n $i " " ; done ) | grep ${ProjectID} >/dev/null 2>&1  || ProjectNode="rome"
+
+     if [ "X${ProjectNode}" == "Xxlarge" ] ; then
+       answerOK=false 
+  
+       while ( ! ${answerOK} ) ; do 
+         answer="" 
+         print - "Hit Enter or give TYPE OF NODE required for post-processing (default is \"${ProjectNode}\"), possible types of nodes are \"rome\"  : " 
+         read answer 
+         [ "X${answer}" == "X" ] || [ "X${answer}" == "Xrome" ] && answerOK=true 
+       done 
+  
+       if [ "X${answer}" != "X" ] ; then 
+         ProjectNode=${answer} 
+       fi 
+
+     else
+       print - "PostProcessing will be done on ${ProjectNode}"
+     fi
+  
+  fi # if ( ! ${x_q} ) 
+  echo ProjectNode for post-processing is ${ProjectNode} at Irene-amd
+
+  #- ProjectNode is known (option or answer) set ProjectCoreMax 
+  [ "${ProjectNode}" = "xlarge" ] && ProjectCoreMax="112" || ProjectCoreMax="48" 
+  #- ProjectCoreMax is 48 for standard and 112 for xlarge
+
+  if ( ! ${x_c} ) ; then
+    #- ProjectNode is known (option or answer), set ProjectCore default
+    [ "${ProjectNode}" = "xlarge" ] && ProjectCore="8" || ProjectCore="4" 
+
+    # let check minimum/maximum value 1/${ProjectCoreMax}
+
+    answerOK=false
+
+    while ( ! ${answerOK} ) ; do
+      answer=""
+      print - "possible numbers of cores are \"1\" to \"${ProjectCoreMax}\" for ${ProjectNode} : "
+      print - "Hit Enter or give NUMBER OF CORES required for post-processing (default is \"${ProjectCore}\")"
+      read answer
+      [ "X${answer}" == "X" ] || [ ${answer} -ge 1 -a ${answer} -le ${ProjectCoreMax} ] && answerOK=true
+    done
+
+    if [ "X${answer}" != "X" ] ; then
+      ProjectCore=${answer}
+    fi
+
+  fi # if ( ! ${x_c} )
+
+  echo ProjectCore for post-processing is ${ProjectCore}
+  #- ProjectCore is set (option or answer)
+
+  #- set WallTime if required
+  if ( ! ${x_t} ) ; then
+    #- default WallTime 1800 s 
+    WallTime=1800
+    answer=""
+    print - "Hit Enter or give required wall time in seconds for computing job (default is \"${WallTime}\" seconds, maximum is 86400 seconds) "
+    read answer
+
+    if [ "X${answer}" != "X" ] ; then
+      WallTime=${answer}
+    fi
+
+  fi # if ( ! ${x_t} )
+   
+  echo Wall time limit is ${WallTime} seconds
+
+elif [ X"${SYSTEM}" == "Xjeanzay" ] ; then
+
+  #- set ProjectID if required
+  if ( ! ${x_p} ) ; then
+    print - "Wait for the next question ..."
+    #- default ProjectID
+    ProjectID=$( echo $IDRPROJ )
+    answer=""
+    print - "Hit Enter or give project ID (default is ${ProjectID}), possible projects are: $( groups ; echo ) "
+    read answer
+
+    if [ "X${answer}" != "X" ] ; then
+      ProjectID=${answer}
+    fi
+
+  fi # if ( ! ${x_p} )
+
+  echo  ProjectID is ${ProjectID} at Jean-Zay
+
+  #- set WallTime if required
+  if ( ! ${x_t} ) ; then
+    #- default WallTime 30 minutes
+    WallTime=30
+    answer=""
+    print - "Hit Enter or give required wall time in minutes for computing job (default is \"${WallTime}\" minutes, maximum is 1200 minutes) "
+    read answer
+
+    if [ "X${answer}" != "X" ] ; then
+      WallTime=${answer}
+    fi
+
+  fi # if ( ! ${x_t} )
+   
+  echo Wall time limit is ${WallTime} minutes
+
+elif [ X"${SYSTEM}" == "Xada" ] ; then
+  if ( ! ${x_m} ) ; then
+    MPIEnvironment=IBM 
+    # Intel MPI Environment.
+    answerOK=false   	
+    while ( ! ${answerOK} ) ; do
+      answer=""
+      print - "Hit Enter or give MPI Environement (default is ${MPIEnvironment}), possible MPI environments are IBM (MPI IBM) and Intel (MPI Intel) :"
+      read answer
+      [ "X${answer}" == "X" ] || [ "X${answer}" == "XIBM" ] || [ "X${answer}" == "XIntel" ] && answerOK=true
+    done
+
+    if [ "X${answer}" != "X" ] ; then
+      MPIEnvironment=${answer}
+    fi
+  fi # if ( ! ${x_pm} )
+  echo MPIEnvironment is ${MPIEnvironment}
+
+elif [ X"${SYSTEM}" == "Xlxiv8" ] || [ X"${SYSTEM}" == "Xifort_CICLAD" ] ; then
+  # obelix, ciclad, climserv
+  echo ""
+  echo "You need to check and maybe adapt headers in the main job especially the line: "
+  echo "  #PBS -l nodes=x:ppn=y "
+  echo "where x is the number of nodes, y the number of cores per node and x*y is the total number of cores for the job. "
+  echo "y must not be bigger than the maximum numer of cores per node on the machine (often 8 or 16)."
+fi # if [ X"${SYSTEM}" == "Xirene" ]
+
+#-
+# Define the pattern string to substitute
+#-
+W_P='#-Q- '; W_W=${W_P}${SYSTEM}' ';
+#-
+# Extract list of 'config.card' files
+# and create jobs with AA_job
+#-
+F_CFG='config.card';
+F_CFG_ENS='ensemble.card';
+SUBMIT_DIR_ENS=$( pwd )
+for i in $( pwd )/config.card 
+do
+  if [ ! -f $i ] ; then
+    echo ""
+    echo "################## WARNING ##################"
+    echo "No config.card available in current directory"
+    echo ""
+    continue 
+  fi 
+
+
+  j=$(cd ${i%/*};/bin/pwd;)
+  n_f=${F_RCI##*/};
+
+  if [ ! X$( echo ${j} | grep EXPERIMENTS ) = X ] ; then
+    # Do not treat config.card if it is in sub-directory of EXPERIMENTS
+    # Continue to next config.card
+    continue
+  else
+    [[ ${x_v} = 'verbose' ]] && print - "\nWorking with file ${F_CFG}\nin directory ${j}\nfor ${n_f}";
+  fi
+
+  # Find out if new structure and set .resol filename
+  if [ -d ${j}/EXPERIMENTS ] && [ -d ${j}/GENERAL ] ; then
+    # New Structure
+    [[ ${x_v} = 'verbose' ]] && echo "This is new configuration structure"
+    new_struct=yes
+    resolfile=$j/.resol
+  else
+    # Old Structure
+    new_struct=no
+    resolfile=$j/../.resol
+  fi
+
+  # Get all variables declared in section UserChoices in config.card
+  IGCM_card_DefineArrayFromSection ${j}'/'${F_CFG} UserChoices
+  # Set default values
+  config_UserChoices_ExpType=""
+  RESOL_ATM_3D=this_is_a_test_string
+  RESOL=this_is_another_test_string
+  ResolAtm=this_is_a_new_another_test
+  typeset option
+  for option in ${config_UserChoices[*]} ; do
+    IGCM_card_DefineVariableFromOption ${j}'/'${F_CFG} UserChoices ${option}
+  done
+
+  # Find the JobName : JobName might contain the variable RESOL_ATM_3D that will be replaced by what is in .resol file
+  if [ ! X$( echo ${config_UserChoices_JobName} | grep ${RESOL_ATM_3D} ) = X ] ; then
+    TRUERESOL=$( tail -1 $resolfile | awk "-F=" '{print $2}' )
+    echo TRUERESOL = $TRUERESOL
+    JobName=$( echo ${config_UserChoices_JobName} | sed -e "s/${RESOL_ATM_3D}/${TRUERESOL}/" )
+    IGCM_card_WriteOption ${j}'/'${F_CFG} UserChoices JobName ${JobName}
+  elif [ ! X$( echo ${config_UserChoices_JobName} | grep ${RESOL} ) = X ] ; then
+    TRUERESOL=$( head -1 $resolfile  )
+    JobName=$( echo ${config_UserChoices_JobName} | sed -e "s/${RESOL}/${TRUERESOL}/" )
+    IGCM_card_WriteOption ${j}'/'${F_CFG} UserChoices JobName ${JobName}
+  elif [ ! X$( echo ${config_UserChoices_JobName} | grep ${ResolAtm} ) = X ] ; then
+    TRUERESOL=${config_UserChoices_ResolAtm}
+    JobName=$( echo ${config_UserChoices_JobName} | sed -e "s/${ResolAtm}/${TRUERESOL}/" )
+    IGCM_card_WriteOption ${j}'/'${F_CFG} UserChoices JobName ${JobName}
+  else
+    JobName=${config_UserChoices_JobName}
+  fi
+
+  # Check JobName validity : only alphanumerical characters, "-" and "." are authorized
+  ins_job_Check_JobName
+  RetCode=$?
+  [[ $RetCode -gt 0 ]] && continue
+
+  [[ ${x_v} = 'verbose' ]] && echo "JobName=${JobName}"
+
+  # Add specific treatment for new type of directory structure
+  if [ ${new_struct} == yes ] ; then
+
+    if [ "X${config_UserChoices_ExpType}" = X ] ; then
+      echo "\nERROR in ${j}/config.card"
+      echo "ins_job stops here"
+      echo "=> The variable ExpType must be added in config.card in section UserChoices"
+      echo "=> ExpType gives the directory for the .card configuration files for the wanted experiement. For exemple ExpType=IPSLCM5/historical"
+      exit 4
+    else
+      [[ ${x_v} = 'verbose' ]] && echo "ExpType= ${config_UserChoices_ExpType}"
+    fi
+
+    if [ -d ${j}/${JobName} ] ; then
+      echo "Directory ${j}/${JobName} exists already. It will not be overwritten."
+      echo "Remove the existing directory or change JobName before relaunching ins_job."
+      #continue
+      exit  
+    fi
+    echo "=> Submit directory ${JobName} will be created with cards from EXPERIMENTS/${config_UserChoices_ExpType}"
+    cp -r ${j}/EXPERIMENTS/${config_UserChoices_ExpType} ${j}/${JobName}
+    cp -r ${j}/GENERAL/* ${j}/${JobName}/.
+    cp -f ${j}/${F_CFG}  ${j}/${JobName}/.
+    if [ -f ${F_CFG_ENS} ] ; then
+      cp -f ${j}/${F_CFG_ENS}  ${j}/${JobName}/.
+      SUBMIT_DIR_ENS=${j}/${JobName}
+    fi
+    rm -f ${j}/${F_CFG}
+    # rm -f ${j}/${F_CFG_ENS}
+    rm -f ${j}/${F_CFG}.bak
+    j=${j}/${JobName}
+    [[ ${x_v} = 'verbose' ]] && echo new j=$j
+  fi
+  # end specific treatment for new type directory structure
+
+  [[ -f ${j}'/'${n_f} ]] && { ins_job_Warning; } || \
+   {
+    [[ ${x_v} = 'verbose' ]] && print - "\nCopying file ${F_RCI}\nin directory ${j}";
+    \cp ${F_RCI} ${j};
+   }
+
+  #==================================
+  # Read ListOfComponents section:
+  #echo
+  #IGCM_debug_Print 1 "DefineArrayFromSection : ListOfComponents"
+
+  IGCM_card_DefineArrayFromSection  ${j}'/'${F_CFG} ListOfComponents
+  for comp in ${config_ListOfComponents[*]} ; do
+    IGCM_card_DefineArrayFromOption  ${j}'/'${F_CFG} ListOfComponents ${comp}
+  done
+  #IGCM_debug_Print 3 ${config_ListOfComponents[*]}
+
+  #==================================
+  # Read Executable section:
+  IGCM_card_DefineArrayFromSection ${j}'/'${F_CFG} Executable
+
+  # Define the execution context (MPMD, SPMD, MPI/OMP ...)
+  IGCM_config_ConfigureExecution ${j}'/'${F_CFG}
+
+  # coreNumber    : TOTAL NUMBER OF CORES
+  # mpiTasks      : TOTAL NUMBER OF MPI TASKS
+  # openMPthreads : NUMBER OF OpenMP THREADS
+
+  # File name for Job
+  n_f='Job_'${JobName};
+  [[ ${x_f} = 'false' ]] && [[ -f ${j}'/'${n_f} ]] && { ins_job_Warning; continue; }
+  [[ ${x_v} = 'verbose' ]] && print - "\nWorking with file ${F_CFG}\nin directory ${j}\nfor ${n_f}";
+  sed -e "/^${W_W} */ s///" \
+      -e "/^${W_P}/d"       \
+      -e "s%::modipsl::%${F_MOD}%" \
+      -e "s/::Jobname::/${JobName}/" \
+      -e "s/::default_project::/${ProjectID}/" \
+      -e "s/::WallTime::/${WallTime}/" \
+      ${F_JOB} > ${j}'/'${n_f}
+  chmod u+x ${j}'/'${n_f}
+
+  # update Headers so that ressources description are accurate (MPMD/SPMD/...)
+  IGCM_sys_updateHeaders ${j}'/'${n_f}
+done
+
+#-
+# Extract list of AA_* files in libIGCM
+# and create jobs (for all except AA_job)
+#-
+for i in $(find ${libIGCM} -maxdepth 1 -name "AA_*" -print)
+do
+  i_f=${i##*/};
+  [[ ${i_f} = 'AA_job' ]] && { continue; }
+  j=${i%/*}; n_f=${i_f#AA_}'.job';
+  [[ ${x_f} = 'false' ]] && [[ -f ${j}'/'${n_f} ]] && { ins_job_Warning; continue; }
+  [[ ${x_v} = 'verbose' ]] && print - "\nIn directory ${j}\n${i_f} -> ${n_f}"
+  sed -e "/^${W_W} */ s///" \
+      -e "s%::modipsl::%${F_MOD}%" \
+      -e "/^${W_P}/d"       \
+      -e "s/::default_node::/${ProjectNode}/" \
+      -e "s/::default_core::/${ProjectCore}/" \
+      -e "s/::default_project::/${ProjectID}/" \
+      -e "s/::default_post_project::/${ProjectID}/" \
+      ${i} > ${j}'/'${n_f}
+  chmod u+x ${j}'/'${n_f}
+done
+#-
+# set default_project in libIGCM_sys_irene and libIGCM_sys_jeanzay.
+#-
+if [ X"${SYSTEM}" == "Xirene" ] ; then
+  i=${libIGCM}/libIGCM_sys/libIGCM_sys_irene.ksh
+  sed -i -e "s/::default_project::/${ProjectID}/" ${i}
+elif [ X"${SYSTEM}" == "Xirene-amd" ] ; then
+  i=${libIGCM}/libIGCM_sys/libIGCM_sys_irene-amd.ksh
+  sed -i -e "s/::default_project::/${ProjectID}/" ${i}
+elif [ X"${SYSTEM}" == "Xjeanzay" ] ; then
+  i=${libIGCM}/libIGCM_sys/libIGCM_sys_jeanzay.ksh
+  sed -i -e "s/::default_project::/${ProjectID}/" ${i}
+fi
+#-
+# Limited to hindcast/forecast and date restart Ensemble for the time being
+if [ ${x_e} = 'true' ] ; then
+    if [ ! -f ${F_CFG_ENS} ] ; then
+       echo ""
+       echo "################## WARNING ##################"
+       echo "No ensemble.card available in current directory"
+       echo ""
+       exit
+      #  continue
+   fi
+
+  #.. Read input data from ensemble.card ..
+  SUBMIT_DIR=${SUBMIT_DIR_ENS}
+  RUN_DIR="${CCCWORKDIR}/ENSEMBLE_TMP"
+  #
+  # Copy initial things around and define variables (hindcast/forecast case)
+  IGCM_sys_Cd ${SUBMIT_DIR}
+  IGCM_ensemble_Init
+
+  if [[ ${ensemble_Ens_DATE_active} = 'y' ]] ; then
+    IGCM_sys_Cd ${SUBMIT_DIR}
+    IGCM_ensemble_DateInit
+    # As it says
+    IGCM_sys_Cd ${SUBMIT_DIR}
+    IGCM_ensemble_DateNonPeriodicStarts
+  fi
+
+  if [[ ${ensemble_Ens_PERTURB_active} = 'y' ]] ; then
+    IGCM_sys_Cd ${SUBMIT_DIR}
+    IGCM_ensemble_CastInit
+    # As it says
+    IGCM_sys_Cd ${SUBMIT_DIR}
+    IGCM_ensemble_CastPeriodicStarts
+    # As it says
+    #IGCM_sys_Cd ${SUBMIT_DIR}
+    #IGCM_ensemble_CastMemberList
+  fi
+  # Done
+  IGCM_sys_Cd ${SUBMIT_DIR}
+  # Clean
+  IGCM_sys_Rm -rf ${RUN_DIR}
+  
+fi
+#-
+[[ ${x_v} = 'verbose' ]] && print - "";
+#-
+# That's all folks
+#-
+
+if [ ${NbErr} -ne 0 ] ; then
+  echo "################ ERROR ################"
+  echo "${NbErr} invalid JobName(s) found, check the log"
+fi
+
+
+exit 0;
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM.card	(revision 5899)
@@ -0,0 +1,25 @@
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 373                                      $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2010-10-29 12:37:36 +0200 (Fri, 29 Oct 2010) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#D- You MUST change cards (and first config.card) parameters too be compatible
+#D- with your modifications here.
+[UserChanges]
+PeriodNb=2
+#config_UserChoices_DateEnd=1900-02-03
+#config_UserChoices_PeriodLength= 1D
+#config_Post_TimeSeriesFrequency= 1D
+#config_Post_SeasonalFrequency= 1Y
+#config_SRF_WriteFrequency= 1800s
+
+#D- Increased verbosity (1, 2, 3)
+#Verbosity=1
+#D- Path must exist before change it !
+#RUN_DIR=${RUN_DIR_PATH}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_CeCILL.LIC
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_CeCILL.LIC	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_CeCILL.LIC	(revision 5899)
@@ -0,0 +1,40 @@
+The following licence information concerns ONLY the libIGCM tools
+==================================================================
+
+Copyright © Centre National de la Recherche Scientifique CNRS  
+            Commissariat à l'Énergie Atomique CEA
+
+libIGCM : Library for Portable Models Computation of IGCM Group.
+
+IGCM Group is the french IPSL Global Climate Model Group.
+
+This library is a set of shell scripts and functions whose purpose is
+the management of the initialization, the launch, the transfer of
+output files, the post-processing and the monitoring of datas produce
+by any numerical program on any plateforme.
+
+This software is governed by the CeCILL  license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL license and that you accept its terms.
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_PrintOption.awk
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_PrintOption.awk	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_PrintOption.awk	(revision 5899)
@@ -0,0 +1,137 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann__at__cea.fr
+# $Revision:: 475                                      $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2011-05-31 15:12:20 +0200 (Tue, 31 May 2011) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==========================
+function myprint(str) {
+	if (debug) {
+		print str
+	}
+}
+
+#==========================
+BEGIN {
+
+nbarg=ARGC
+if (ARGV[1] == "-d") {
+        debug=1
+        file=ARGV[2]
+        section=ARGV[3]
+        option=ARGV[4]
+        delete ARGV[1] ; delete ARGV[3] ; delete ARGV[4]
+	nbarg--
+} else {
+        debug=0
+        file=ARGV[1]
+        section=ARGV[2]
+        option=ARGV[3]
+        delete ARGV[2] ; delete ARGV[3]
+}
+
+# When exit statement, 'END' rule is always executed, so defined a exit_value to manage this
+exit_value=0
+if (nbarg != 4) {
+	print "Usage: IGCM_card_PrintOption [-d] file section option" 
+	print 
+	print "Args:"
+	print "      file = file at CARD format" 
+	print "      section = section to find" 
+	print "      option = option to find" 
+	print 
+	print "Options:" 
+	print "       -d = debug mode" 
+	print 
+	exit_value=1
+	exit
+}
+
+section_found=0
+option_found=0
+
+}
+
+#==========================
+{
+
+myprint($0) 
+
+# Do not consider commented lines (#...)
+if (! match($0,/^#/)) {
+
+# Find section with delimiters '[' and ']'
+if (match($0, "\\[" section "\\]")) {
+
+	myprint("---->section found")
+	section_found=1
+
+} else if (section_found == 1 && (match($0, "^[ ]*" option "[ ]*="))) {
+
+	myprint("---->option found")
+	option_found=1
+	
+	# Extract string after '='
+	option_value=substr($0, index($0, "=")+1)
+
+	# Remove space after '='
+	gsub(/^[ ]*/, "", option_value)
+
+	# If continuation character '\' get next lines
+	if (match($0,/\\$/)) {
+		tmp=$0
+		tmp=substr(tmp, 1, length(tmp)-1)
+		gsub(/[ \t]*/, "", tmp)
+		option_value=tmp
+		getline tmp
+		while (match(tmp,/\\$/)) {
+			tmp=substr(tmp, 1, length(tmp)-1)
+			gsub(/[ \t]*/, "", tmp)
+			option_value=option_value " " tmp
+			getline tmp 
+			}
+		gsub(/[ \t]*/, "", tmp)
+		option_value=option_value " " tmp
+	}
+
+	exit
+
+} else if (section_found == 1 && match($0, /^[\[*\]]/)) {
+
+	myprint("---->end section")
+	exit
+
+}
+
+}
+
+}
+
+#==========================
+END {
+
+if (! exit_value ) {
+
+myprint("###############################")
+myprint("section      ====> " section)
+myprint("option       ====> " option)
+myprint("value        ====> " option_value)
+
+if (section_found == 0) {
+	print "Error: Section not found"
+} else if (option_found == 0) {
+	print "Error: Option not found"
+} else {
+	print option_value
+}
+
+}
+
+}
+ 
+#==========================
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_PrintSection.awk
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_PrintSection.awk	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_PrintSection.awk	(revision 5899)
@@ -0,0 +1,120 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann__at__cea.fr
+# $Revision:: 475                                      $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2011-05-31 15:12:20 +0200 (Tue, 31 May 2011) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==========================
+function myprint(str) {
+	if (debug) {
+		print str
+	}
+}
+
+#==========================
+BEGIN {
+
+nbarg=ARGC
+if (ARGV[1] == "-d") {
+        debug=1
+        file=ARGV[2]
+        section=ARGV[3]
+        delete ARGV[1] ; delete ARGV[3]
+	nbarg--
+} else {
+        debug=0
+        file=ARGV[1]
+        section=ARGV[2]
+        delete ARGV[2]
+}
+
+# When exit statement, 'END' rule is always executed, so defined a exit_value to manage this
+exit_value=0
+if (nbarg != 3) {
+	print "Usage: IGCM_card_PrintSection [-d] file section" 
+	print 
+	print "Args:"
+	print "      file = file at CARD format" 
+	print "      section = section to find" 
+	print 
+	print "Options:" 
+	print "       -d = debug mode" 
+	print 
+	exit_value=1
+	exit
+}
+
+section_found=0
+option_list="null"
+
+}
+
+#==========================
+{
+
+myprint($0) 
+
+# Do not consider commented lines (#...)
+if (! match($0,/^#/)) {
+
+# Find section with delimiters '[' and ']'
+if (match($0, "\\[" section "\\]")) {
+
+	myprint("---->section found")
+	section_found=1
+
+} else if (section_found == 1 && (match($0, "[.]*="))) {
+
+	myprint("---->option found")
+
+	# Extract string after '='
+	option_value=substr($0, 1, index($0, "=")-1)
+
+	# Remove space before '='
+	gsub(/[ ]*/, "", option_value)
+
+	# Add options
+	# If 1st option
+	if (match(option_list,"null")) {
+		option_list=option_value
+	} else {
+		option_list=option_list " " option_value
+	}
+
+} else if (section_found == 1 && match($0, /^[\[*\]]/)) {
+
+	myprint("---->end section")
+	exit
+
+}
+
+}
+
+}
+
+#==========================
+END {
+
+if (! exit_value ) {
+
+myprint("###############################")
+myprint("section      ====> " section)
+
+if (section_found == 0) {
+	print "Error: Section not found"
+} else if (match(option_list,"null")) {
+	print "Error: Option not found"
+} else {
+	print option_list
+}
+
+}
+
+}
+ 
+#==========================
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_Test.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_Test.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_Test.ksh	(revision 5899)
@@ -0,0 +1,84 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann__at__cea.fr
+# $Revision:: 1119                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-10-24 12:41:17 +0200 (Fri, 24 Oct 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+# This script is used to generate a reference file with command :
+# IGCM_card_Test.ksh > IGCM_card_Test.ref 2>&1
+# The reference file produced is used by the function IGCM_card_Check
+# to verify that the libIGCM_card produce the same results
+
+#=================================================
+libIGCM=`dirname $0`/..
+typeset DEBUG_sys=false
+typeset TaskType=checking
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
+. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+
+#=================================================
+cat ${libIGCM}/libIGCM_card/TestFile.card
+
+#=================================================
+# function IGCM_card_PrintOption
+
+IGCM_card_PrintOption ${libIGCM}/libIGCM_card/TestFile.card Messages Option1
+IGCM_card_PrintOption ${libIGCM}/libIGCM_card/TestFile.card Messages Option2
+IGCM_card_PrintOption ${libIGCM}/libIGCM_card/TestFile.card ColorValues Red
+IGCM_card_PrintOption ${libIGCM}/libIGCM_card/TestFile.card ColorValues Blue
+IGCM_card_PrintOption ${libIGCM}/libIGCM_card/TestFile.card ColorValues Green
+
+#=================================================
+# function IGCM_card_PrintSection
+
+IGCM_card_PrintSection ${libIGCM}/libIGCM_card/TestFile.card Recipes
+IGCM_card_PrintSection ${libIGCM}/libIGCM_card/TestFile.card Couples
+
+#==================================================
+# function IGCM_card_DefineVariableFromOption
+
+IGCM_card_DefineVariableFromOption ${libIGCM}/libIGCM_card/TestFile.card Messages Option2
+echo ${TestFile_Messages_Option2}
+IGCM_card_DefineVariableFromOption ${libIGCM}/libIGCM_card/TestFile.card ColorValues Red
+echo ${TestFile_ColorValues_Red}
+
+#==================================================
+# function IGCM_card_DefineArrayFromOption
+
+IGCM_card_DefineArrayFromOption ${libIGCM}/libIGCM_card/TestFile.card Couples List1
+echo ${TestFile_Couples_List1[*]}
+IGCM_card_DefineArrayFromOption ${libIGCM}/libIGCM_card/TestFile.card Couples List2
+echo ${TestFile_Couples_List2[*]}
+
+#=================================================
+# function IGCM_card_DefineArrayFromSection
+
+IGCM_card_DefineArrayFromSection ${libIGCM}/libIGCM_card/TestFile.card ColorValues
+echo ${TestFile_ColorValues[*]}
+
+#==================================================
+# function IGCM_card_WriteOption
+
+cp ${libIGCM}/libIGCM_card/TestFile.card  ${libIGCM}/libIGCM_card/NewTestFile.$$.card
+IGCM_card_WriteOption ${libIGCM}/libIGCM_card/NewTestFile.$$.card Messages Option2 '"Hello Mercure"'
+
+IGCM_card_WriteOption ${libIGCM}/libIGCM_card/NewTestFile.$$.card Messages ListVal1 '( 1, 2, 3 )'
+listname="(Sebastien, Martial, Patrick)"
+IGCM_card_WriteOption ${libIGCM}/libIGCM_card/NewTestFile.$$.card Messages ListVal2 "${listname}"
+
+set -A tableau one, two, three, four
+echo ${tableau[*]}
+IGCM_card_WriteOption ${libIGCM}/libIGCM_card/NewTestFile.$$.card Messages ListVal3 "( ${tableau[*]} )"
+
+IGCM_card_WriteOption ${libIGCM}/libIGCM_card/NewTestFile.$$.card ColorValues Red 888
+
+diff ${libIGCM}/libIGCM_card/TestFile.card ${libIGCM}/libIGCM_card/NewTestFile.$$.card
+rm -f ${libIGCM}/libIGCM_card/NewTestFile.$$.card ${libIGCM}/libIGCM_card/NewTestFile.$$.card.bak
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_Test.ref
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_Test.ref	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_Test.ref	(revision 5899)
@@ -0,0 +1,53 @@
+
+[Messages]
+Option1= "Hello Earth"
+Option2= "Hello Mars"
+ListVal1= ()
+ListVal2= ()
+ListVal3= ()
+
+# My comments
+[Recipes]
+Cake= "file1.doc"
+Starter= "file2.doc"
+
+[ColorValues]
+Red= 120
+Blue= 230
+Green= 178
+AnotherRed= 234
+
+[Couples]
+List1=   (up, down), \
+         (humid, dry), \
+         (hot, cold), \
+         (far, close)
+List2=   (ice, fire, air, water)
+
+"Hello Earth"
+"Hello Mars"
+120
+230
+178
+Cake Starter
+List1 List2
+Hello Mars
+120
+up down humid dry hot cold far close
+ice fire air water
+Red Blue Green AnotherRed
+one, two, three, four
+4,7c4,7
+< Option2= "Hello Mars"
+< ListVal1= ()
+< ListVal2= ()
+< ListVal3= ()
+---
+> Option2= "Hello Mercure"
+> ListVal1= ( 1, 2, 3 )
+> ListVal2= (Sebastien, Martial, Patrick)
+> ListVal3= ( one, two, three, four )
+15c15
+< Red= 120
+---
+> Red= 888
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_WriteOption.awk
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_WriteOption.awk	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/IGCM_card_WriteOption.awk	(revision 5899)
@@ -0,0 +1,121 @@
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann__at__cea.fr
+# $Revision:: 475                                      $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2011-05-31 15:12:20 +0200 (Tue, 31 May 2011) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==========================
+function myprint(str) {
+	if (debug) {
+		print str
+	}
+}
+
+#==========================
+BEGIN {
+
+nbarg=ARGC
+if (ARGV[1] == "-d") {
+        debug=1
+        file=ARGV[2]
+        section=ARGV[3]
+        option=ARGV[4]
+        value=ARGV[5]
+        delete ARGV[1] ; delete ARGV[3] ; delete ARGV[4] ; delete ARGV[5]
+	nbarg--
+} else {
+        debug=0
+        file=ARGV[1]
+        section=ARGV[2]
+        option=ARGV[3]
+        value=ARGV[4]
+        delete ARGV[2] ; delete ARGV[3] ; delete ARGV[4]
+}
+
+
+# When exit statement, 'END' rule is always executed, so defined a exit_value to manage this
+exit_value=0
+if (nbarg != 5) {
+	print "Usage: IGCM_card_WriteOption [-d] file section option value"
+	print 
+	print "Args:"
+	print "      file = file at CARD format" 
+	print "      section = section to find" 
+	print "      option = option to find" 
+	print "      value = value option to write" 
+	print 
+	print "Options:" 
+	print "       -d = debug mode" 
+	print
+	exit_value=1
+        exit
+}
+
+section_found=0
+section_inside=0
+option_found=0
+}
+
+#==========================
+{
+
+myprint($0) 
+
+# Find section with delimiters '[' and ']'
+if (match($0, "\\[" section "\\]")) {
+
+	myprint("---->section found")
+	section_found=1
+	section_inside=1
+	print $0
+
+} else if (section_inside == 1 && (match($0, "^[ ]*" option "[ ]*="))) {
+
+	myprint("---->option found")
+	option_found=1
+
+	print option "= " value
+	myprint("---->new value ")
+
+} else if (section_inside == 1 && match($0, /^[\[*\]]/)) {
+
+	myprint("---->end section")
+	section_inside=0
+	print $0
+
+} else {
+	print $0
+}
+
+}
+
+#==========================
+END {
+
+    if (! exit_value ) {
+
+	myprint("###############################")
+	myprint("section      ====> " section)
+	myprint("option       ====> " option)
+	myprint("value        ====> " value)
+	
+	if (section_found == 0) {
+	    print "Error: Section not found"
+	} else if (option_found == 0) {
+	    print "Error: Option not found"
+	}	
+	
+    } else {
+
+	print "Error in with IGCM_WriteOption : ", section, option
+
+    }
+
+}
+ 
+#==========================
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/TestFile.card
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/TestFile.card	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/TestFile.card	(revision 5899)
@@ -0,0 +1,26 @@
+
+[Messages]
+Option1= "Hello Earth"
+Option2= "Hello Mars"
+ListVal1= ()
+ListVal2= ()
+ListVal3= ()
+
+# My comments
+[Recipes]
+Cake= "file1.doc"
+Starter= "file2.doc"
+
+[ColorValues]
+Red= 120
+Blue= 230
+Green= 178
+AnotherRed= 234
+
+[Couples]
+List1=   (up, down), \
+         (humid, dry), \
+         (hot, cold), \
+         (far, close)
+List2=   (ice, fire, air, water)
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/libIGCM_card.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/libIGCM_card.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_card/libIGCM_card.ksh	(revision 5899)
@@ -0,0 +1,332 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann__at__cea.fr
+# $Revision:: 1152                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-01-19 15:45:38 +0100 (Mon, 19 Jan 2015) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#==================================================
+
+#D-#==================================================================
+#D-libIGCM_card
+#D-This ksh library handles extraction of information from configuration file
+#D-called "card" file (en français fichier "carte").
+#D-All function described bellow must be prefixed by IGCM_card.
+#D-A card file is organized as follows :
+#D- ---------------------
+#D-[Messages]
+#D-Option1= "Hello Earth"
+#D-Option2= "Hello Mars"
+#D-
+#D-# My comments
+#D-[Recipes]
+#D-Cake= "file1.doc"
+#D-Starter= "file2.doc"
+#D-
+#D-[ColorValues]
+#D-Red= 120
+#D-Blue= 230
+#D-Green= 178
+#D-
+#D-[Couples]
+#D-List1=   (up, down), \
+#D-         (humid, dry), \
+#D-         (hot, cold), \
+#D-         (far, close)
+#D-List2=   (ice, fire, air, water)
+#D- ---------------------
+#D-
+
+#D-#==================================================================
+#D-function IGCM_card_PrintOption
+#D-* Purpose: Print an option from a given file.card and section
+#D-* Usage: IGCM_card_PrintOption file.card section option
+#D-* Only used by IGCM_card_Test.ksh
+#D-
+function IGCM_card_PrintOption
+{
+  IGCM_debug_PushStack "IGCM_card_PrintOption" $@
+  if ( [ -r "$1" ] && [ -f "$1" ] ) ; then
+    gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintOption.awk "$@"
+  else
+    echo
+    IGCM_debug_Print 1 "--Error--> IGCM_card_PrintOption $@"
+    IGCM_debug_Print 1 "           $1 is not readable"
+    IGCM_debug_Exit "IGCM_card_PrintOption"
+  fi
+  IGCM_debug_PopStack "IGCM_card_PrintOption"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_PrintSection
+#D-* Purpose: Print all options from a given file.card and section
+#D-* Usage: IGCM_card_PrintSection file.card section
+#D-* Only used by IGCM_card_Test.ksh
+#D-
+function IGCM_card_PrintSection
+{
+  IGCM_debug_PushStack "IGCM_card_PrintSection" $@
+  if ( [ -r "$1" ] && [ -f "$1" ] ) ; then
+    gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintSection.awk -- "$@"
+  else
+    IGCM_debug_Print 1 "--Error--> IGCM_card_PrintSection $@"
+    IGCM_debug_Print 1 "           $1 is not readable"
+    IGCM_debug_Exit "IGCM_card_PrintSection"
+  fi
+  IGCM_debug_PopStack "IGCM_card_PrintSection"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_DefineVariableFromOption
+#D-* Purpose: Define a variable from a given file.card, section and option
+#D-*          Variable name is automatically defined as file_section_option
+#D-* Usage: IGCM_card_DefineVariableFromOption file.card section option
+#D-
+function IGCM_card_DefineVariableFromOption
+{
+  IGCM_debug_PushStack "IGCM_card_DefineVariableFromOption" $@
+  if ( [ -r "$1" ] && [ -f "$1" ] ) ; then
+    # Get basename of card file ($1)
+    typeset name1=${1##*/}
+      # Build name of variable as $1_$2_$3 (cardname_Section_Option)
+      typeset name=${name1%%.*}_${2}_${3}
+      typeset value=$( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintOption.awk -- "$@" )
+
+      # Only if a Section is missing we exit the job.
+      # We must allow missing Option to keep backward compatibilty.
+      if [ "${value}" = "Error: Section not found" ] ; then
+        echo
+        IGCM_debug_Print 1 "Error with readding of ${name} variable in ${1}."
+        IGCM_debug_Print 1 "Error: Section ${2} not found"
+        IGCM_debug_Exit
+        IGCM_debug_Verif_Exit
+      elif [ "${value}" = "Error: Option not found" ] ; then
+         eval ${name}=${NULL_STR}
+      else
+        eval ${name}=${value}
+      fi
+  else
+    echo
+    IGCM_debug_Print 1 "--Error--> IGCM_card_DefineVariableFromOption"
+    IGCM_debug_Print 1 "--Error--> $1 is not readable"
+    IGCM_debug_Exit "IGCM_card_DefineVariableFromOption"
+    IGCM_debug_Verif_Exit
+  fi
+  IGCM_debug_PopStack "IGCM_card_DefineVariableFromOption"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_DefineArrayFromOption
+#D-* Purpose: Define an array variable from a given file.card, section and option
+#D-*          Array variable is automatically defined as file_section_option
+#D-* Usage: IGCM_card_DefineArrayFromOption file.card section option
+#D-
+function IGCM_card_DefineArrayFromOption
+{
+  IGCM_debug_PushStack "IGCM_card_DefineArrayFromOption" $@
+  if ( [ -r "$1" ] && [ -f "$1" ] ) ; then
+    # Get basename of card file ($1)
+    typeset name1=${1##*/}
+    # Build name of array as $1_$2_$3 (cardname_Section_Option)
+    typeset name=${name1%%.*}_${2}_${3}
+    eval unset ${name}
+    eval ${name}[0]=${NULL_STR}
+    set +A ${name} -- $( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintOption.awk -- "$@" | gawk -- 'BEGIN {FS="[() ,]+"} {for (i=2; i <= NF-1; i++) printf("%s ",$i)}' )
+  else
+    echo
+    IGCM_debug_Print 1 "--Error--> IGCM_card_DefineArrayFromOption $@"
+    IGCM_debug_Print 1 "           $1 is not readable"
+    IGCM_debug_Exit "IGCM_card_DefineArrayFromOption"
+  fi
+  IGCM_debug_PopStack "IGCM_card_DefineArrayFromOption"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_DefineArrayFromSection
+#D-* Purpose: Define an array variable from a given file.card and section
+#D-*          Array variable is automatically defined as file_section
+#D-* Usage: IGCM_card_DefineArrayFromSection file.card section
+#D-
+function IGCM_card_DefineArrayFromSection
+{
+  IGCM_debug_PushStack "IGCM_card_DefineArrayFromSection" $@
+  if ( [ -r "$1" ] && [ -f "$1" ] ) ; then
+    # Get basename of card file ($1)
+    typeset name1=${1##*/}
+    # Build name of array as $1_$2 (cardname_Section)
+    typeset name=${name1%%.*}_${2}
+    eval unset ${name}
+    eval ${name}[0]=${NULL_STR}
+    set +A ${name} -- $( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintSection.awk -- "$@" )
+    #if [ "$( eval echo \${${name}[@]} )" = "Error: Section not found" ] ; then
+    #    echo
+    #    IGCM_debug_Print 1 "Error with readding of ${name} variable in ${1}."
+    #    IGCM_debug_Print 1 "Error: Section ${2} not found"
+    #    IGCM_debug_Exit
+    #    IGCM_debug_Verif_Exit
+    #fi
+    if [ "$( eval echo \${${name}[@]} )" = "Error: Section not found" ] ; then
+      echo
+      IGCM_debug_Print 1 "Warning with readding of ${name} variable in ${1}."
+      IGCM_debug_Print 1 "Warning: Section ${2} not found"
+      eval unset ${name}
+    fi
+  else
+    IGCM_debug_Print 1 "--Error--> IGCM_card_DefineArrayFromSection $@"
+    IGCM_debug_Print 1 "           $1 is not readable"
+    IGCM_debug_Exit "IGCM_card_DefineArrayFromSection"
+  fi
+  IGCM_debug_PopStack "IGCM_card_DefineArrayFromSection"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_WriteOption
+#D-* Purpose: Write an option in a given file.card and section
+#D-* Usage: IGCM_card_WriteOption file.card section newvalue
+#D-* Examples: IGCM_card_WriteOption file.card Recipes Red 150
+#D-            IGCM_card_WriteOption file.card Messages Option2 '"Hello Mercure"'
+#D-            IGCM_card_WriteOption file.card Messages ListVal1 '( 1, 2, 3 )'
+#D-            listname="(Sebastien, Martial, Patrick)"
+#D-            IGCM_card_WriteOption NewTestFile.card Messages ListVal2 "${listname}"
+#D-
+function IGCM_card_WriteOption
+{
+  IGCM_debug_PushStack "IGCM_card_WriteOption" $@
+  if ( [ -r "$1" ] && [ -w "$1" ]  && [ -f "$1" ] ) ; then
+    if [ $( IGCM_card_PrintOption "$1" "$2" "$3" | grep "not found" | wc -l ) -gt 0 ] ; then
+      IGCM_debug_Print 1 "!!! Issue with IGCM_card_WriteOption !!!"
+      IGCM_debug_Print 1 "We tried to write : $@"
+      IGCM_debug_Exit "Must check that option $3 in section $2 exist in this file $1"
+      IGCM_debug_Verif_Exit
+    fi
+
+    # The tmpfile uses now the real path of the card to be modified,
+    # not just a local tmpfile with PID.
+    tmpfile=$1_mutex_$$
+
+    IGCM_card_CheckConflict $1
+
+    # Do the job
+    ( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_WriteOption.awk -- "$@" 2> /dev/null ) > ${tmpfile}
+
+    cp $1 $1.bak
+    mv ${tmpfile} $1
+
+  else
+    echo
+    IGCM_debug_Print 1 "--Error--> IGCM_card_WriteOption $@"
+    IGCM_debug_Print 1 "           $1 is not readable or not writable"
+    IGCM_debug_Exit "IGCM_card_WriteOption"
+  fi
+  IGCM_debug_PopStack "IGCM_card_WriteOption"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_CheckConflict
+#D-* Purpose: Check that a card is not in use by another process. If it is the case wait until it is not.
+#D-* Usage: IGCM_card_CheckConflict run.card
+#D-* Examples:
+#D-
+function IGCM_card_CheckConflict
+{
+  IGCM_debug_PushStack "IGCM_card_CheckConflict" $@
+  typeset isleep tmpfiles
+
+  # Watch for possible conflics : Check for other tmpfiles.
+  set +A tmpfiles -- $( ls $1_mutex_[0-9]* 2>/dev/null )
+  ((isleep=0))
+  while [ ${#tmpfiles[@]} -gt 0 ] ; do
+    echo "Conflict between two processes working on " $1 "!!!" ${tmpfiles[@]}
+    sleep 1
+    ((isleep=isleep+1))
+    if [ ${isleep} -gt 20 ] ; then
+      echo "Too many loops waiting for other process working on " $1 ". We continue."
+      echo "You should see if one process of your run or post-treatment may have terminated suddenly."
+      echo "Afer, you should erase this(those) file(s) : " ${tmpfiles[@]}
+      # Send a mail to USER ??
+      break ;
+    fi
+    unset tmpfiles
+    set +A tmpfiles -- $( ls $1_mutex_[0-9]* 2>/dev/null )
+  done
+
+  IGCM_debug_PopStack "IGCM_card_CheckConflict"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_WriteArrayOption
+#D-* Purpose: Write an array option a given file.card and section
+#D-* Usage: IGCM_card_WriteArrayOption file.card section option newarray
+#D-* Examples: set -A MyArray -- 1 2 3
+#D-            IGCM_card_WriteArrayOption file.card Recipes List MyArray
+#D-
+function IGCM_card_WriteArrayOption
+{
+  IGCM_debug_PushStack "IGCM_card_WriteArrayOption" $@
+
+  if ( [ -r "$1" ] && [ -w "$1" ]  && [ -f "$1" ] ) ; then
+    if [ X"${4}" != X"" ]; then
+      tab=$4
+      IGCM_card_WriteOption $1 $2 $3 '('$( eval echo \${${tab}[@]} | sed -e 's/ /,/g' )')'
+    else
+      IGCM_card_WriteOption $1 $2 $3 '()'
+    fi
+  else
+    echo
+    IGCM_debug_Print 1 "--Error--> IGCM_card_WriteArrayOption $@"
+    IGCM_debug_Print 1 "           $1 is not readable or not writable"
+    IGCM_debug_Exit "IGCM_card_WriteArrayOption"
+  fi
+  IGCM_debug_PopStack "IGCM_card_WriteArrayOption"
+}
+
+#D-#==================================================================
+#D-function IGCM_card_Check
+#D-* Purpose: Check the present file by comparison with a reference file
+#D-* Usage: IGCM_card_Check
+#D-
+function IGCM_card_Check
+{
+  #---------------------
+  if [ ! -n "${libIGCM}" ] ; then
+    echo "Check libIGCM_card ...........................................[ FAILED ]"
+    echo "--Error--> libIGCM variable is not defined"
+    IGCM_debug_Exit "IGCM_card_Check"
+  fi
+
+  #---------------------
+  whence -v gawk > /dev/null 2>&1
+  if [ ! $? -eq 0 ] ; then
+    echo "Check libIGCM_card ...........................................[ FAILED ]"
+    echo "--Error--> gawk command is not defined"
+    IGCM_debug_Exit "IGCM_card_Check"
+  fi
+
+  #---------------------
+  # No need to remove timestamps here
+  diff ${libIGCM}/libIGCM_card/IGCM_card_Test.ref <(${libIGCM}/libIGCM_card/IGCM_card_Test.ksh) > /dev/null 2>&1
+  status=$?
+
+  if [ ${status} -eq 0 ] ; then
+    echo "Check libIGCM_card ...............................................[ OK ]"
+  else
+    echo "Check libIGCM_card ...........................................[ FAILED ]"
+    echo "--Error--> Execution of ${libIGCM}/libIGCM_card/IGCM_card_Test.ksh"
+    echo "           has produced the file IGCM_card_Test.ref.failed"
+    echo "           Please analyse differences with the reference file by typing:"
+    echo "           diff IGCM_card_Test.ref.failed ${libIGCM}/libIGCM_card/IGCM_card_Test.ref"
+    echo "           Report errors to the author: Patrick.Brockmann@cea.fr"
+    diff ${libIGCM}/libIGCM_card/IGCM_card_Test.ref <(${libIGCM}/libIGCM_card/IGCM_card_Test.ksh)
+    IGCM_debug_Exit "IGCM_card_Check"
+  fi
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_check/libIGCM_check.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_check/libIGCM_check.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_check/libIGCM_check.ksh	(revision 5899)
@@ -0,0 +1,494 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sonia Labetoulle, SÃ©bastien Denvil
+# Contact: Sonia.Labetoulle__at__ipsl.jussieu.fr Sebastien.Denvil_at__ipsl.jussieu.fr
+# $Revision:: 1059                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-09-23 12:05:29 +0200 (Tue, 23 Sep 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#D-#==================================================
+#D-function IGCM_check_CommonDef
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_CommonDef
+{
+  IGCM_debug_PushStack "IGCM_check_CommonDef" $@
+
+  # Define colors
+  # -------------
+  ColEsc="\033["
+  ColNon="${ColEsc}0m"       # Return to normal
+  ColExp="${ColEsc}1m"       # Blanc - gras
+  ColFat="${ColEsc}1;31m"    # Fatal
+  ColCpl="${ColEsc}1;32m"    # Completed
+  ColAtt="${ColEsc}1;30m"    # Waiting
+  ColDef="${ColEsc}1;34m"    # Default
+  ColRbl="${ColEsc}31m"      # Rebuild
+
+  # Define date format
+  # ------------------
+  DateFormat="%d/%m/%y %R:%S"
+
+
+  # What kind of rebuild ?
+  # ----------------------
+  RebuildJob="rebuild_fromWorkdir"
+  IGCM_sys_TestDir ${REBUILD_DIR}
+  RebuildExists=$?
+
+  # Are packs activated or not ?
+  # ----------------------------
+  if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && \
+       [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then
+    Pack=true
+  else
+    Pack=false
+  fi
+
+
+  # Define input parameters
+  # -----------------------
+  set -A JobType_list "${RebuildJob}" "pack_output" "pack_restart" "pack_debug"
+
+  for JobType in ${JobType_list[*]} ; do
+    typeset    name1="${JobType}_String"
+    typeset    name2="${JobType}_Field"
+    typeset    name3="${JobType}_Activ"
+    if [ X${JobType} == X${RebuildJob} ] ; then
+      if ( ${Pack} ) ; then
+        eval ${name1}=IGCM_sys_PutBuffer_Out
+      else
+        eval ${name1}=IGCM_sys_Put_Out
+      fi
+      eval ${name2}=4
+      eval ${name3}=true
+    else
+      eval ${name1}=IGCM_sys_Put_Out
+      eval ${name2}=3
+      if ( ${Pack} ) ; then
+        eval ${name3}=true
+      else
+        eval ${name3}=false
+      fi
+    fi
+  done
+
+  IGCM_debug_PopStack "IGCM_check_CommonDef"
+}
+
+#D-#==================================================
+#D-function IGCM_check_ChangeUsr
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_ChangeUsr
+{
+  IGCM_debug_PushStack "IGCM_check_ChangeUsr" $@
+
+  CurrentGrp=$( groups $CurrentUsr | gawk '{print $3}' )
+  TargetGrp=$( groups $TargetUsr | gawk '{print $3}' )
+
+  echo $1 | sed -e "s/${CurrentUsr}/${TargetUsr}/" \
+                -e "s/${CurrentGrp}/${TargetGrp}/"
+
+  IGCM_debug_PopStack "IGCM_check_ChangeUsr"
+}
+
+#D-#==================================================
+#D-function IGCM_check_SearchCatalog
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_SearchCatalog
+{
+  IGCM_debug_PushStack "IGCM_check_SearchCatalog" $@
+
+  typeset num
+  unset SUBMIT_DIR
+
+  fg_new=false
+
+  if [ ! X${JobName} == X ] ; then
+    NbOcc=$( gawk -v JobName=${JobName} \
+             'BEGIN {x=0}  $1 ~ JobName {++x} END {print x}' ${SimuCatalog} )
+  else
+    NbOcc=0
+  fi
+
+  if ( [ ${NbOcc} -eq 0 ] && ( ${fg_path} ) ) ; then
+
+    if [ ! "$( echo ${ConfigPath} | cut -c 1 )" == "/" ] ; then
+      ConfigPath="${PWD}/${ConfigPath}"
+    fi
+
+    set -A FileList $( ls ${ConfigPath}/Job_* )
+    if [ X$FileList == X ] ; then
+      NbOcc=0
+    else
+      NbOcc=${#FileList[@]}
+      fg_new=true
+    fi
+  fi
+
+  if ( [ ${NbOcc} -eq 0 ] && ( ${fg_search} ) ) ; then
+    SEARCH_DIR=${WORKDIR}
+    if [ ${TargetUsr} != ${CurrentUsr} ] ; then
+      SEARCH_DIR=$( IGCM_check_ChangeUsr ${SEARCH_DIR} )
+    fi
+    echo "${JobName} not in Catalog, we'll try to find it in ${SEARCH_DIR}"
+
+    set -A FileList $( find ${SEARCH_DIR}/ \
+                            -path ${SEARCH_DIR}/IGCM_OUT -prune -o \
+                            -name Job_${JobName} -print )
+    if [ X$FileList == X ] ; then
+      NbOcc=0
+    else
+      NbOcc=${#FileList[@]}
+      fg_new=true
+    fi
+  fi
+
+  if [ ${NbOcc} -gt 1 ] ; then
+    echo "More than one job"
+    ind=0
+    while [ ${ind} -lt ${NbOcc} ] ; do
+      printf '%2i) %-30s\n' ${ind} ${FileList[${ind}]}
+      (( ind = ind + 1 ))
+    done
+    echo "Give your choice number or 'q' to quit : "
+    read Choice
+    if [ X${Choice} == Xq ] ; then
+      return 1
+    else
+      fg_new=true
+      FileList=${FileList[${Choice}]}
+      NbOcc=1
+    fi
+  fi
+
+  case ${NbOcc} in
+    0)
+      if ( ${fg_search} ) ; then
+        echo "${JobName} not found, neither in catalog nor in \$WORKDIR."
+      else
+        echo "${JobName} not found in catalog."
+      fi
+      echo "You can try : *) '-s' option to automatically search your \$WORKDIR ; "
+      echo "              *) '-p' option to provide the directory (absolute path) "
+      echo "                      containing the config.card ; "
+      echo "              *)  manually editing your ${SimuCatalog}."
+      return 1 ;;
+    1)
+      if ( ${fg_new} ) ; then
+#        JobName=${JobName:=$( basename ${FileList} | gawk -F"_" '{ print $2 }' )}
+        JobName=$( basename ${FileList} | gawk -F"_" '{ print $2 }' )
+        SUBMIT_DIR=$( dirname ${FileList} )
+        echo "${JobName} ${TargetUsr} ${HostName} ${SUBMIT_DIR}"
+        echo "${JobName} ${TargetUsr} ${HostName} ${SUBMIT_DIR}" >> ${SimuCatalog}
+        sort -u ${SimuCatalog} > ${SimuCatalog}.tmp
+        mv ${SimuCatalog}.tmp ${SimuCatalog}
+      elif ( [ ${TargetUsr} == $( gawk -v JobName=${JobName} \
+                                      '$1 ~ JobName {print $2}' \
+                                      ${SimuCatalog} ) ] \
+          && [ ${HostName}  == $( gawk -v JobName=${JobName} \
+                                      '$1 ~ JobName {print $3}' \
+                                      ${SimuCatalog} ) ] ) ; then
+        JobName=$( gawk -v JobName=${JobName} '$1 ~ JobName {print $1}' ${SimuCatalog} )
+        SUBMIT_DIR=$( gawk -v JobName=${JobName} '$1 ~ JobName {print $4}' ${SimuCatalog} )
+      else
+        echo "${JobName} not in Catalog."
+        return 1
+      fi
+      ;;
+    *)
+      break ;;
+  esac
+
+  IGCM_debug_PopStack "IGCM_check_SearchCatalog"
+}
+
+#D-#==================================================
+#D-function IGCM_check_PrintHeader
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_PrintHeader
+{
+  IGCM_debug_PushStack "IGCM_check_PrintHeader" $@
+
+  echo "|===========================================================================================================|"
+  printf "| JobName = ${ColExp}%-26.26s${ColNon} JobID = ${ColExp}%-36.36s${ColNon}date : ${ColExp}%-18s${ColNon}|\n" \
+         ${JobName} ${JobID} "$( date +"${DateFormat}" )"
+
+  printf "| User    = ${ColExp}%-56.56s${ColNon}last run.card write : ${ColExp}%-18s${ColNon}|\n" \
+         ${TargetUsr} "${LastWrite}"
+
+  printf "|-----------------------------------------------------------------------------------------------------------|\n"
+
+  printf "| Submit  | ${ColExp}%-95.95s${ColNon} |\n" ${SUBMIT_DIR}
+  printf "| Data    | ${ColExp}%-95.95s${ColNon} |\n" ${DATA_DIR}
+  printf "| Rebuild | ${ColExp}%-95.95s${ColNon} |\n" ${REBUILD_DIR}
+  printf "| Post    | ${ColExp}%-95.95s${ColNon} |\n" ${POST_DIR}
+  printf "| Work    | ${ColExp}%-95.95s${ColNon} |\n" ${CWORK_DIR}
+
+  echo "|-------------------------|-------------|-------------------------|-------------|-----:----------:----------|"
+  echo "|                         |             |                         |             |     Pending Rebuilds      |"
+  echo "| Date Begin - DateEnd    | PeriodState | Current Period          | CumulPeriod | Nb  : from     : to       |"
+  echo "|-------------------------|-------------|-------------------------|-------------|-----:----------:----------|"
+
+  printf "| %-10s - %-10s | " \
+         $DateBegin $DateEnd
+
+  case $PeriodState in
+    Fatal)
+      Color=${ColFat}
+      ;;
+    Completed)
+      Color=${ColCpl}
+      ;;
+    Waiting|OnQueue)
+      Color=${ColAtt}
+      ;;
+    *)
+      Color=${ColDef}
+      ;;
+  esac
+  printf "${Color}%-11s${ColNon} | " $PeriodState
+
+  printf "%-10s - %-10s | %11s | " \
+         $PeriodDateBegin $PeriodDateEnd $CumulPeriod
+
+  if ( [ X${NbRebuild} != X. ] && [ X${NbRebuild} != X0 ] ) ; then
+    printf "${ColRbl}%3s : %-8s : %-8s${ColNon} |\n" \
+           $NbRebuild $FirstRebuild $LastRebuild
+  else
+    printf "%3s : %-8s : %-8s |\n" \
+           $NbRebuild $FirstRebuild $LastRebuild
+  fi
+
+  if [ ${NbLines} -gt 0 ] ; then
+    printf "|-----------------------------------------------------------------------------------------------------------|\n"
+    printf "|                                                      Last                                                 |\n"
+    printf "|     Rebuild      |   Pack_Output    |   Pack_Restart   |    Pack_Debug    |  Monitoring  |     Atlas      |\n"
+    printf "|------------------|------------------|------------------|------------------|--------------|----------------|\n"
+  fi
+
+  IGCM_debug_PopStack "IGCM_check_PrintHeader"
+}
+
+#D-#==================================================
+#D-function IGCM_check_PrintJob
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_PrintJob
+{
+  IGCM_debug_PushStack "IGCM_check_PrintJob" $@
+
+  printf "|"
+
+  #Â Print rebuild and pack jobs
+  #Â ---------------------------
+  for JobType in ${JobType_list[*]} ; do
+    eval Date=\${${JobType}_Date[${ind}]}
+    eval Status=\${${JobType}_Status[${ind}]}
+    eval Nb=\${${JobType}_Nb[${ind}]}
+
+    if [ X${Status} == XOK  ] ; then
+      Color=${ColCpl}
+    else
+      Color=${ColFat}
+    fi
+    printf "  ${Color}%-8s${ColNon} : %3s  |" ${Date} ${Nb}
+  done
+
+  Color=${ColExp}
+
+  #Â Print monitoring jobs
+  #Â ---------------------
+  JobType=monitoring
+  if [ $ind -eq 0 ] ; then
+    eval Date=\${${JobType}_Date}
+  else
+    Date=""
+  fi
+  printf "     ${Color}%-4s${ColNon}     |" ${Date}
+
+  #Â Print atlas jobs
+  #Â ----------------
+  JobType=atlas
+  eval Date=\${${JobType}_Date[${ind}]}
+  printf "  ${Color}%-12s${ColNon}  |" ${Date}
+
+  printf "\n"
+
+  IGCM_debug_PopStack "IGCM_check_PrintJob"
+}
+
+#D-#==================================================
+#D-function IGCM_check_PrintFooter
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_PrintFooter
+{
+  IGCM_debug_PushStack "IGCM_check_PrintFooter" $@
+
+  printf "|===========================================================================================================|\n"
+  #date +"${DateFormat}"
+
+  IGCM_debug_PopStack "IGCM_check_PrintFooter"
+}
+
+#D-#==================================================
+#D-function IGCM_check_CheckPendingRebuild
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_CheckPendingRebuild
+{
+  IGCM_debug_PushStack "IGCM_check_PendingRebuild" $@
+
+  NbRebuild="."
+  FirstRebuild="."
+  LastRebuild="."
+
+  if [ ${RebuildExists} == 0 ] ; then
+    set -A RebuildList $( find ${REBUILD_DIR}/ -name "REBUILD_*" | sort )
+    if [ ${#RebuildList[*]} -gt 0 ] ; then
+      NbRebuild=$( IGCM_sys_CountFileArchive ${REBUILD_DIR} )
+
+      FirstRebuild=$( basename ${RebuildList[0]} | cut -f2 -d\_ )
+      LastRebuild=$( basename ${RebuildList[ (( NbRebuild=${NbRebuild}-1 )) ]} | cut -f2 -d\_ )
+    fi
+  fi
+
+  IGCM_debug_PopStack "IGCM_check_PendingRebuild"
+}
+
+#D-#==================================================
+#D-function IGCM_check_CheckRebPackJobs
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_CheckRebPackJobs
+{
+  IGCM_debug_PushStack "IGCM_check_CheckRebPackJobs" $@
+
+  NbLines=0
+  for JobType in ${JobType_list[*]} ; do
+    eval String=\${${JobType}_String}
+    eval Field=\${${JobType}_Field}
+    eval Activ=\${${JobType}_Activ}
+
+    if ( ${Activ} ) ; then
+
+      set -A FileList $( ls ${POST_DIR}/${JobType}.*.out | tail -n ${NbHisto} )
+
+      if [ ${#FileList[*]} -gt ${NbLines} ] ; then
+        NbLines=${#FileList[*]}
+      fi
+
+      (( ind = 0 ))
+      for FileName in ${FileList[*]} ; do
+        LastDate=""
+        LastDate=$( basename ${FileName} | gawk -F"." '{ print $(NF-1) }' )
+
+        set -- $( gawk -v String=${String} \
+                       'BEGIN { nb_ok = 0 ; nb_ko = 0 } \
+                       ($1 ~ String) { \
+                         if ($3 !~ /error./) { \
+                           nb_ok = nb_ok + 1 \
+                         } else { \
+                           nb_ko = nb_ko + 1 \
+                         } \
+                       } \
+                       END { print nb_ok " " nb_ko }' \
+                       ${POST_DIR}/${JobType}.${LastDate}.out )
+        Match=$1
+        Error=$2
+
+        (( Nb = ${Match} - ${Error} ))
+
+        if ( [ ${Error} -eq 0 ] && [ ${Nb} -gt 0 ] ) ; then
+          Status=OK
+        else
+          Status=KO
+        fi
+
+        eval ${JobType}_Date[$ind]=${LastDate}
+        eval ${JobType}_Status[$ind]=${Status}
+        eval ${JobType}_Nb[$ind]=${Nb}
+
+        (( ind = ind + 1 ))
+      done
+
+    else
+
+        eval ${JobType}_Date[0]=""
+        eval ${JobType}_Status[0]=""
+        eval ${JobType}_Nb[0]=""
+
+    fi
+
+  done
+
+  IGCM_debug_PopStack "IGCM_check_CheckRebPackJobs"
+}
+
+#D-#==================================================
+#D-function IGCM_check_CheckMonitoring
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_CheckMonitoring
+{
+  IGCM_debug_PushStack "IGCM_check_CheckMonitoring" $@
+
+    LastDate=""
+    JobType=monitoring
+    IGCM_sys_TestDirArchive ${CWORK_DIR}/MONITORING
+    RC=$?
+    if [ $RC == 0 ] ; then
+      FileTmp=$( IGCM_sys_RshArchive "ls ${CWORK_DIR}/MONITORING/files/*.nc | head -n 1" )
+      IGCM_sys_GetDate_Monitoring ${FileTmp} LastDate
+      eval ${JobType}_Date=${LastDate}
+    fi
+
+  IGCM_debug_PopStack "IGCM_check_CheckMonitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_check_CheckAtlas
+#D-* Purpose:
+#D-* Examples:
+#D-
+function IGCM_check_CheckAtlas
+{
+  IGCM_debug_PushStack "IGCM_check_CheckAtlas" $@
+
+  JobType=atlas
+  IGCM_sys_TestDirArchive ${CWORK_DIR}/ATLAS
+  RC=$?
+  if [ $RC == 0 ] ; then
+    set -A FileList $( IGCM_sys_RshArchive "ls ${CWORK_DIR}/ATLAS | tail -n ${NbHisto}" )
+
+    if [ ${#FileList[*]} -gt ${NbLines} ] ; then
+      NbLines=${#FileList[*]}
+    fi
+
+    (( ind = 0 ))
+    for FileName in ${FileList[*]} ; do
+      eval ${JobType}_Date[$ind]=${FileName}
+      (( ind = ind + 1 ))
+    done
+  fi
+
+  IGCM_debug_PopStack "IGCM_check_CheckAtlas"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_comp/libIGCM_comp.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_comp/libIGCM_comp.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_comp/libIGCM_comp.ksh	(revision 5899)
@@ -0,0 +1,2082 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1545                                     $ Revision of last commit
+# $Author:: aclsce                                     $ Author of last commit
+# $Date:: 2021-01-18 14:16:13 +0100 (Mon, 18 Jan 2021) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#========================================================================
+function IGCM_comp_Initialize
+{
+  IGCM_debug_PushStack "IGCM_comp_Initialize"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_Initialize"
+  echo
+
+  typeset comp compname comptagname auxprint card_UserChoices first_option option i j
+  for comp in ${config_ListOfComponents[*]} ; do
+
+    # Define component
+    IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/config.card ListOfComponents ${comp}
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Debug Print
+    IGCM_debug_Print 1 "Initialize ${comp} : ${compname} component."
+
+    # ${compname}.card PATH
+    card=${SUBMIT_DIR}/COMP/${compname}.card
+
+    # Manage component executable
+    IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/config.card Executable ${comp}
+
+    # Define all options in section [comp]
+    IGCM_debug_Print 3 " DefineArrayFromSection : ${comp}"
+    IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card ${comp}
+    eval config_comp=\${config_${comp}[*]} > /dev/null 2>&1
+    for option in ${config_comp[*]} ; do
+        IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} ${option}
+    done
+    IGCM_debug_Print 3 " Found in section config_${comp} :  ${config_comp[*]} "
+
+    # Debug Print :
+    eval auxprint=\${config_${comp}_WriteFrequency}
+    IGCM_debug_Print 1 "Write frequency for ${compname} : ${auxprint} "
+    #2> /dev/null
+
+    # Debug Print :
+    IGCM_debug_Print 2 "Initialize following component library"
+
+    # Source drivers in directory DRIVER if it exist
+    # else source them from directory COMP
+    if [ -d ${SUBMIT_DIR}/DRIVER ] ; then
+      IGCM_debug_Print 2 ${SUBMIT_DIR}/DRIVER/${compname}.driver
+      # Source component library
+      . ${SUBMIT_DIR}/DRIVER/${compname}.driver
+    else
+      IGCM_debug_Print 2 ${SUBMIT_DIR}/COMP/${compname}.driver
+      # Source component library
+      . ${SUBMIT_DIR}/COMP/${compname}.driver
+    fi
+    IGCM_debug_Print 3 "With tag : ${comptagname}"
+
+    # Debug Print
+    IGCM_debug_Print 3 "Initialize ${comp} output directory."
+
+    # Define ARCHIVED Dirs
+    eval R_OUT_${comp}=${R_SAVE}/${comp}
+    eval IGCM_sys_MkdirArchive \${R_OUT_${comp}}
+
+    eval R_OUT_${comp}_O=\${R_OUT_${comp}}/Output
+    eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_O}
+
+    eval R_OUT_${comp}_A=\${R_OUT_${comp}}/Analyse
+    eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_A}
+
+    eval R_OUT_${comp}_R=\${R_OUT_${comp}}/Restart
+    [ ${config_Post_PackFrequency} = NONE ] && eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_R}
+
+    eval R_OUT_${comp}_D=\${R_OUT_${comp}}/Debug
+    [ ${config_Post_PackFrequency} = NONE ] && eval IGCM_sys_MkdirArchive \${R_OUT_${comp}_D}
+
+    eval R_OUT_${comp}_O_H=\${R_OUT_${comp}_O}/HF
+    eval R_OUT_${comp}_O_D=\${R_OUT_${comp}_O}/DA
+    eval R_OUT_${comp}_O_M=\${R_OUT_${comp}_O}/MO
+    eval R_OUT_${comp}_O_Y=\${R_OUT_${comp}_O}/YE
+
+    eval R_OUT_${comp}_A_H=\${R_OUT_${comp}_A}/TS_HF
+    eval R_OUT_${comp}_A_D=\${R_OUT_${comp}_A}/TS_DA
+    eval R_OUT_${comp}_A_M=\${R_OUT_${comp}_A}/TS_MO
+    eval R_OUT_${comp}_A_Y=\${R_OUT_${comp}_A}/TS_YE
+
+    # Define BUFFERED Dirs
+    if ( [ ! ${config_Post_PackFrequency} = NONE ] || [ X${config_UserChoices_SpaceName} = XTEST ] ) ; then
+      eval R_BUF_${comp}=${R_BUFR}/${comp}
+      eval IGCM_sys_Mkdir \${R_BUF_${comp}}
+
+      eval R_BUF_${comp}_O=\${R_BUF_${comp}}/Output
+      eval IGCM_sys_Mkdir \${R_BUF_${comp}_O}
+
+      eval R_BUF_${comp}_A=\${R_BUF_${comp}}/Analyse
+      eval IGCM_sys_Mkdir \${R_BUF_${comp}_A}
+
+      eval R_BUF_${comp}_R=\${R_BUF_${comp}}/Restart
+
+      eval R_BUF_${comp}_D=\${R_BUF_${comp}}/Debug
+
+      if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+
+	for (( pool_rank_comp_Init=0 ; pool_rank_comp_Init < $(($config_Ensemble_PoolNumber)) ; pool_rank_comp_Init++ ))
+        do
+
+        for (( pool_member_rank=0 ; pool_member_rank < $config_Ensemble_PoolSize ; pool_member_rank++ ))
+        do
+         whole_ensemble_rank=$(($config_Ensemble_PoolSize*$pool_rank_comp_Init+$pool_member_rank))
+         eval IGCM_sys_Mkdir \${R_BUF_${comp}_R}/MEMBER_$whole_ensemble_rank
+         eval IGCM_sys_Mkdir \${R_BUF_${comp}_D}/MEMBER_$whole_ensemble_rank
+        done
+        done
+      fi
+
+      eval R_BUF_${comp}_O_H=\${R_BUF_${comp}_O}/HF
+      eval R_BUF_${comp}_O_D=\${R_BUF_${comp}_O}/DA
+      eval R_BUF_${comp}_O_M=\${R_BUF_${comp}_O}/MO
+      eval R_BUF_${comp}_O_Y=\${R_BUF_${comp}_O}/YE
+
+      eval R_BUF_${comp}_A_H=\${R_BUF_${comp}_A}/TS_HF
+      eval R_BUF_${comp}_A_D=\${R_BUF_${comp}_A}/TS_DA
+      eval R_BUF_${comp}_A_M=\${R_BUF_${comp}_A}/TS_MO
+      eval R_BUF_${comp}_A_Y=\${R_BUF_${comp}_A}/TS_YE
+
+      # Define CMIP6 Dirs
+      eval CMIP6_BUF_${comp}=${R_CMIP}/CMIP6/${comp}
+    fi
+
+    # Read UserChoices section of component card
+    IGCM_debug_Print 2 "DefineArrayFromSection : ${compname}_UserChoices ${card}"
+    IGCM_card_DefineArrayFromSection ${card} UserChoices
+    eval first_option=\${${compname}_UserChoices[0]} > /dev/null 2>&1
+
+    # If section is not empty we define corresponding variables
+    if [ X${first_option} != X"Error:" ] ; then
+      if [ X${card_UserChoices[0]} != X ] ; then
+        unset card_UserChoices
+      fi
+      eval set +A card_UserChoices -- \${${compname}_UserChoices[*]} > /dev/null 2>&1
+      IGCM_debug_Print 3 "${compname}_UserChoices_values:"
+      for option in ${card_UserChoices[*]} ; do
+        IGCM_card_DefineVariableFromOption ${card} UserChoices ${option}
+        eval IGCM_debug_Print 3 "${option}=\${${compname}_UserChoices_${option}}"
+      done
+    fi
+
+    # Read and Build Output File stuff
+    IGCM_debug_Print 2 "DefineArrayFromOption  : ${compname}_OutputFiles ${card}"
+    IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+    ListFilesName=${compname}_OutputFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+    #
+    if [ X${FileName0} != X${NULL_STR} ] ; then
+      #
+      #IGCM_debug_Print 1 "Component      : ${compname}"
+      #
+      # INITIALISATION
+      #
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+      #
+      i=2
+      #
+      until [ $i -ge $NbFiles ]; do
+        #
+        eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        #
+        if [ X${flag_post} != XNONE ] ; then
+          #
+          # First of all
+          #
+          IGCM_card_DefineArrayFromSection ${card} ${flag_post}
+          # This section is mandatory
+          if [ "X$( eval echo \${${compname}_${flag_post}[@]} )" = "X" ] ; then
+            IGCM_debug_Print 1 "IGCM_card_DefineArrayFromSection ${card} ${flag_post}"
+            IGCM_debug_Exit "${flag_post} section do not exist in ${card}. Please check your card."
+            IGCM_debug_Verif_Exit
+          fi
+          #
+          # Seasonal case : If option Seasonal is not found (old cards) put SEASONAL ON by default
+          #
+          # variable option allready typeset above
+          for option in $( eval echo \${${compname}_${flag_post}[*]} ) ; do
+            if [ ${option} = Seasonal ] ; then
+              FoundSeasonal=true
+              IGCM_card_DefineVariableFromOption ${card} ${flag_post} Seasonal
+            fi
+          done
+          #
+          if [ ! X${FoundSeasonal} = Xtrue ] ; then
+            eval ${compname}_${flag_post}_Seasonal=ON
+          fi
+          #
+          if [ $( eval echo \${${compname}_${flag_post}_Seasonal} ) = ON ] ; then
+            Seasonal=true
+          fi
+
+          # Dimension = vide si vieille card.
+          IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars
+          IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches
+          if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then
+            # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob.
+            ListDimension[0]=2D
+            ListDimension[1]=3D
+            TimeSeries=false
+            iLoop=${#ListDimension[*]}
+            j=0
+            until [ $j -ge ${iLoop} ]; do
+              Dimension=${ListDimension[${j}]}
+              IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension}
+              IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension}
+              #
+              # Time series WITHOUT chunk
+              #
+              if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
+                if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then
+                  IGCM_debug_Print 3 "${Dimension} time series activated for ${flag_post}"
+                  eval TimeSeries${Dimension}=true
+                fi
+              fi
+              #
+              # Time series WITH chunk
+              #
+              if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
+                chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} )
+                if [ ! ${chunck_size} = NONE ] &&  [ ! ${chunck_size} = OFF ] ; then
+                  IGCM_debug_Print 3 "${Dimension} time series activated with chunck for ${flag_post}"
+                  eval TimeSeriesChunck${Dimension}=true
+                  eval CHUNCK${Dimension}_COMP[\${#CHUNCK${Dimension}_COMP[*]}]=${comp}
+                  eval CHUNCK${Dimension}_FLAG[\${#CHUNCK${Dimension}_FLAG[*]}]=${i}
+                  eval CHUNCK${Dimension}_NAME[\${#CHUNCK${Dimension}_NAME[*]}]=${flag_post}
+                  eval CHUNCK${Dimension}_SIZE[\${#CHUNCK${Dimension}_SIZE[*]}]=${chunck_size}
+                fi
+              fi
+              (( j=j+1 ))
+            done
+          else
+            ListDimension[0]=""
+            TimeSeries=true
+            TimeSeries2D=false
+            TimeSeries3D=false
+            TimeSeriesChunck2D=false
+            TimeSeriesChunck3D=false
+          fi
+        fi
+        (( i=i+3 ))
+      done
+    fi
+    # Debug Print
+    IGCM_debug_Print 3 "Initialize ${compname} with driver."
+    # INIT component
+    ${comp}_Initialize
+    echo
+  done
+
+  IGCM_debug_PopStack "IGCM_comp_Initialize"
+}
+
+#=======================================================================
+function IGCM_comp_PrepareDeletedFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_PrepareDeletedFiles" $@
+
+  if [ X${2} != X. ] ; then
+    eval FileToBeDeleted[${#FileToBeDeleted[@]}]=$( basename ${2} ) > /dev/null 2>&1
+  else
+    eval FileToBeDeleted[${#FileToBeDeleted[@]}]=$( basename ${1} ) > /dev/null 2>&1
+  fi
+
+  IGCM_debug_PopStack "IGCM_comp_PrepareDeletedFiles"
+}
+
+#=======================================================================
+function IGCM_comp_PrepareXiosFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_PrepareXiosFiles" $@
+
+  typeset file
+  [ X${2} != X. ] && file=$( basename ${2} ) || file=$( basename ${1} )
+
+  if [ $( echo ${file} | grep "^field_def_" | wc -l ) = 1 ] ; then
+    eval FieldDef[${#FieldDef[@]}]=${file} > /dev/null 2>&1
+  fi
+  if [ $( echo ${file} | grep "^file_def_" | wc -l ) = 1 ] ; then
+    eval FileDef[${#FileDef[@]}]=${file} > /dev/null 2>&1
+  fi
+  if [ $( echo ${file} | grep "^timeseries_def_" | wc -l ) = 1 ] ; then
+    eval FileDef[${#FileDef[@]}]=${file} > /dev/null 2>&1
+  fi
+  
+  IGCM_debug_PopStack "IGCM_comp_PrepareXiosFiles"
+}
+
+#=======================================================================
+function IGCM_comp_GetInputInitialStateFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_GetInputInitialStateFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_GetInputInitialStateFiles"
+  echo
+
+  # Only the first time step need InitialStateFiles
+  # otherwise it's BoundaryConditions
+  if ( ${FirstInitialize} ) ; then
+    typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_
+    typeset file_in_ file_in file_out_ file_out do_init
+    for comp in ${config_ListOfComponents[*]} ; do
+      # Initialize
+      do_init="y"
+      # Do we need to bring initial state file for this component
+      if ( [ "${config_Restarts_OverRule}" = "y" ] || [ "${config_Restarts_OverRule}" = "Y" ] ) ; then
+        eval do_init="n"
+      else
+        # Read component Restarts parameters
+        IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} Restart
+        eval do_start=\${config_${comp}_Restart} > /dev/null 2>&1
+        if [ "${do_start}" = "y" ] ; then
+          do_init="n"
+        else
+          do_init="y"
+        fi
+      fi
+
+      if [ "${do_init}" = "y" ] ; then
+        # Define component
+        eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+        eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+        # Debug Print :
+        IGCM_debug_Print 3 "Initialisation files ${compname}"
+
+        card=${SUBMIT_DIR}/COMP/${compname}.card
+
+        IGCM_card_DefineArrayFromOption ${card} InitialStateFiles List
+        ListFilesName=${compname}_InitialStateFiles_List
+
+        eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+        if [ X${FileName0} != X${NULL_STR} ] ; then
+          eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+          (( i=0 ))
+          until [ $i -ge $NbFiles ]; do
+            eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+            eval file_in=${file_in_}
+            (( i_ = i+1 ))
+            eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+            eval file_out=${file_out_}
+
+            IGCM_sys_IsFileArchived ${file_in}
+            if [ $? = 0 ] ; then
+		if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+			IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+		else
+			IGCM_sys_Get ${file_in} ${file_out}
+                fi
+              IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out}
+            else
+                if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+			IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+		else
+              		IGCM_sys_Cp ${file_in} ${file_out}
+		fi
+            fi
+            (( i=i+2 ))
+          done
+        fi
+      fi
+    done
+  fi
+  IGCM_debug_PopStack "IGCM_comp_GetInputInitialStateFiles"
+}
+
+#=======================================================================
+# Definition of Smooth modulo function
+# usage :
+# IGCM_SmoothModulo StringModulo value
+#
+# StringModulo : A string of min max and modulo like definition of Scilab vectors.
+# [min]:[modulo:][max]
+# where :
+# [] value are optionnals;
+# empty min equal 1
+# empty max equal infinity
+# modulo not given or empty equal 1
+# empty string or just ':' equal always.
+#
+# value : the value to test with the definition
+#
+# return : true(1)/false(0)
+function IGCM_SmoothModulo
+{
+  IGCM_debug_PushStack "IGCM_SmoothModulo"
+  typeset defVector ModValue
+
+  eval set +A defVector -- $( echo "${1}" | \
+    gawk -F ':' '{print ($1 == "" ? 1 : $1) " " (NF==3 ? ($2 == "" ? 1 : $2) : 1) " " (NF==3 ? ($3 == "" ? -1 : $3) : ($2 == "" ? -1 : $2))}' )
+
+  # Save Smooth Min and Max. Needed to call IGCM_sys_Get when appropriate
+  arr[1]=${defVector[0]}
+  arr[2]=${defVector[2]}
+
+  # Test limits :
+  # ${defVector[0]} <= ${2} <= ${defVector[2]}
+  #          or ${defVector[2]} == -1
+  if ( [ ${2} -ge ${defVector[0]} ] && ( [ ${2} -le ${defVector[2]} ] || [ ${defVector[2]} -lt 0 ] ) ) ; then
+    # Test modulo
+    ModValue=$( expr \( ${2} - ${defVector[0]} \) % ${defVector[1]} )
+    if [ ${ModValue} -eq 0 ] ;  then
+      arr[3]=true
+      echo ${arr[@]}
+      IGCM_debug_PopStack "IGCM_SmoothModulo"
+      return 1
+    else
+      arr[3]=false
+      echo ${arr[@]}
+      IGCM_debug_PopStack "IGCM_SmoothModulo"
+      return 0
+    fi
+  else
+    arr[3]=false
+    echo ${arr[@]}
+    IGCM_debug_PopStack "IGCM_SmoothModulo"
+    return 0
+  fi
+}
+
+#=======================================================================
+function IGCM_comp_GetInputSmoothFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_GetInputSmoothFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_GetInputSmoothFiles"
+  echo
+
+  typeset comp compname comptagname card ListFilesName FileName0 NbFiles j i i_ i__
+  typeset file_in_ file_in file_out_ file_out ret SmoothDef aux val
+
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Debug Print :
+    IGCM_debug_Print 3 "Smooth files ${compname}"
+
+    card=${SUBMIT_DIR}/COMP/${compname}.card
+
+    IGCM_card_DefineArrayFromOption ${card} SmoothFiles List
+    ListFilesName=${compname}_SmoothFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+    if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != X"Section" ] ) ; then
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+      (( i=0 ))
+      until [ $i -ge $NbFiles ]; do
+        eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        eval file_in=${file_in_}
+        (( i_ = i+1 ))
+        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_out=${file_out_}
+
+        # define CumulPeriod definition for this file
+        (( i__ = i+2 ))
+        eval SmoothDef=\${${ListFilesName}[$i__]}
+        IGCM_debug_Print 3 "  ${file_in} ${SmoothDef}"
+        aux=$( IGCM_SmoothModulo ${SmoothDef} ${CumulPeriod} )
+        j=1
+        for val in ${aux} ; do
+          [ ${j} -eq 1 ] && SmoothMin=${val}
+          [ ${j} -eq 2 ] && SmoothMax=${val}
+          [ ${j} -eq 3 ] && ret=${val}
+          (( j=j+1 ))
+        done
+        [ ${SmoothMax} -eq -1 ] && SmoothMax=${CumulPeriod}
+        if ( [ X${ret} = Xtrue ] || ( [ ${Period} -eq 1 ] && [ ${CumulPeriod} -ge ${SmoothMin} ] && [ ${CumulPeriod} -le ${SmoothMax} ] ) ) ; then
+
+          IGCM_sys_IsFileArchived ${file_in}
+            if [ $? = 0 ] ; then
+                if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                        IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+                else
+                        IGCM_sys_Get ${file_in} ${file_out}
+                fi
+              IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out}
+            else
+                if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                        IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+                else
+                        IGCM_sys_Cp ${file_in} ${file_out}
+                fi
+            fi
+        fi
+        (( i=i+3 ))
+      done
+    fi
+  done
+
+  IGCM_debug_PopStack "IGCM_comp_GetInputSmoothFiles"
+}
+
+#=======================================================================
+function IGCM_comp_GetInputBoundaryFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_GetInputBoundaryFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_GetInputBoundaryFiles"
+  echo
+
+  typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_
+  typeset file_in_ file_in file_out_ file_out
+
+  if [ ${Period} = 1 ]; then
+    ListFixBoundary=" "
+  fi
+
+  for comp in ${config_ListOfComponents[*]} ; do
+
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Debug Print :
+    IGCM_debug_Print 3 "Boundary files ${compname}"
+
+    card=${SUBMIT_DIR}/COMP/${compname}.card
+
+    IGCM_card_DefineArrayFromOption ${card} BoundaryFiles List
+    ListFilesName=${compname}_BoundaryFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+    if [ X${FileName0} != X${NULL_STR} ] ; then
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+      (( i=0 ))
+      until [ $i -ge $NbFiles ]; do
+        eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        eval file_in=${file_in_}
+        (( i_ = i+1 ))
+        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_out=${file_out_}
+
+        IGCM_sys_IsFileArchived ${file_in}
+        if [ $? = 0 ] ; then
+            if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                    IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+            else
+                    IGCM_sys_Get ${file_in} ${file_out}
+            fi
+            IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out}
+        else
+            if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                    IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+            else
+                    IGCM_sys_Cp ${file_in} ${file_out}
+            fi
+        fi
+
+        (( i=i+2 ))
+      done
+    fi
+
+    # Get non deleted files
+    if [ ${Period} = 1 ]; then
+
+      IGCM_card_DefineArrayFromOption ${card} BoundaryFiles ListNonDel
+      ListFilesName=${compname}_BoundaryFiles_ListNonDel
+      eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+      if [ X${FileName0} != X${NULL_STR} ] ; then
+        eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+        (( i=0 ))
+        until [ $i -ge $NbFiles ]; do
+          eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+          eval file_in=${file_in_}
+          (( i_ = i+1 ))
+          eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+          eval file_out=${file_out_}
+
+          IGCM_sys_IsFileArchived ${file_in}
+          if [ $? = 0 ] ; then
+              if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                      IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+              else
+                      IGCM_sys_Get ${file_in} ${file_out}
+              fi
+              IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out}
+          else
+              if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                      IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+              else
+                      IGCM_sys_Cp ${file_in} ${file_out}
+              fi
+          fi
+
+          if [ X${file_out} != X. ] ; then
+            ListFixBoundary=${ListFixBoundary}" "${file_out}
+          else
+            ListFixBoundary=${ListFixBoundary}" "$( basename ${file_in} )
+          fi
+
+          (( i=i+2 ))
+        done
+      fi
+    fi
+  done
+
+  IGCM_debug_PopStack "IGCM_comp_GetInputBoundaryFiles"
+}
+
+#=======================================================================
+function IGCM_comp_DelFixeBoundaryFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_DelFixeBoundaryFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_DelFixeBoundaryFiles"
+  echo
+
+  ls -l ${ListFixBoundary}
+  rm -f ${ListFixBoundary}
+
+  IGCM_debug_PopStack "IGCM_comp_DelFixeBoundaryFiles"
+}
+
+#=======================================================================
+function IGCM_comp_GetInputParametersFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_GetInputParametersFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_GetInputParametersFiles"
+  echo
+
+  typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_ file_in file_out
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Initialize array hosting file_def and field_def files to check and/or modify
+    unset FieldDef
+    unset FileDef
+
+    # Debug Print :
+    IGCM_debug_Print 3 "Parameters ${compname}"
+
+    card=${SUBMIT_DIR}/COMP/${compname}.card
+
+    IGCM_card_DefineArrayFromOption ${card} ParametersFiles List
+    ListFilesName=${compname}_ParametersFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+    if [ X${FileName0} != X${NULL_STR} ] ; then
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+      (( i=0 ))
+      until [ $i -ge $NbFiles ]; do
+        eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        eval file_in=${file_in_}
+        (( i_ = i+1 ))
+        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_out=${file_out_}
+        if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+                IGCM_sys_Cp_ensembleXIOS ${file_in} ${file_out} $1
+        else
+                IGCM_sys_Cp ${file_in} ${file_out}
+        fi
+        IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out}
+        IGCM_comp_PrepareXiosFiles    ${file_in} ${file_out}
+
+        (( i=i+2 ))
+      done
+    fi
+
+  done
+
+  IGCM_debug_PopStack "IGCM_comp_GetInputParametersFiles"
+}
+
+#=======================================================================
+function IGCM_comp_GetInputRestartFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_GetInputRestartFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_GetInputRestartFiles"
+  echo
+
+  typeset Date_tmp Date_r Path_r do_start CompOldName Path_OUT Path_BUF
+  typeset Buffered Archived Tared PotentialTarFile IsMatching TarFileFound
+  typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_
+  typeset file_in file_out file_in_ file_out_ file_in_Name
+  typeset -Z4 j4
+  #BASH declare j4
+
+  IsMatching=""
+
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+    #
+    card=${SUBMIT_DIR}/COMP/${compname}.card
+    #
+    IGCM_card_DefineArrayFromOption ${card} RestartFiles List
+    ListFilesName=${compname}_RestartFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+    # Debug Print :
+    IGCM_debug_Print 3 "restart ${compname}"
+
+    if ( ${FirstInitialize} ) ; then
+
+      if ( [ "${config_Restarts_OverRule}" = "y" ] || [ "${config_Restarts_OverRule}" = "Y" ] ) ; then
+        # Adhoc exception for CMIP6 : exclude XIOS from the restart overrule mechanism.
+        if ( [ X${comp} = XIOS ] ) && ( [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] || [ X${config_Post_dr2xmlIPSL} = XTRUE ] ) ; then
+          CompOldName=IOS
+          config_IOS_Restart="n"
+          do_start="n"
+          config_IOS_RestartDate=-1
+          config_IOS_RestartJobName=${NULL_STR}
+          config_IOS_RestartPath=${NULL_STR}
+        else
+          eval config_${comp}_Restart="y"
+          eval config_${comp}_RestartDate=${config_Restarts_RestartDate}
+          eval config_${comp}_RestartJobName=${config_Restarts_RestartJobName}
+          eval config_${comp}_RestartPath=${config_Restarts_RestartPath}
+          eval do_start=\${config_${comp}_Restart} > /dev/null 2>&1
+          eval CompOldName=${comp}
+        fi
+      else
+        # Read component Restarts parameters
+        IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} Restart
+        eval do_start=\${config_${comp}_Restart} > /dev/null 2>&1
+
+        if [ "${do_start}" = "y" ] ; then
+          IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} RestartDate
+          IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} RestartJobName
+          IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} RestartPath
+        else
+          eval config_${comp}_RestartDate=-1
+          eval config_${comp}_RestartJobName=${NULL_STR}
+          eval config_${comp}_RestartPath=${NULL_STR}
+        fi
+
+        eval CompOldName=\${config_${comp}_OldName}
+        if [ X${CompOldName} = X ] ; then
+          eval CompOldName=${comp}
+        fi
+
+        # Reinitialize IsMatching to allow searching for a different tar file for each component.
+        IsMatching=""
+        TarFileFound=""
+      fi
+
+      if [ "${do_start}" = "y" ] ; then
+
+        # Restore Restarts files
+        #-----------------------
+        if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != XNONE ] ) ; then
+          eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+          (( i=1 ))
+          until [ $i -gt $NbFiles ]; do
+            eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+            eval file_in=${file_in_}
+            (( i_ = i+1 ))
+            eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+            eval file_out=${file_out_}
+
+            eval Date_tmp=\${config_${comp}_RestartDate}
+            Date_r=$( IGCM_date_ConvertFormatToGregorian ${Date_tmp} )
+            # will be re-use
+            eval RestartPath=\${config_${comp}_RestartPath}
+            eval RestartJobName=\${config_${comp}_RestartJobName}
+            #
+            Path_r=${RestartPath}/${RestartJobName}/${CompOldName}/Restart
+            file_in_Name=${RestartJobName}_${Date_r}_${file_in}
+
+            extension_in=$( echo ${file_in_Name##*.} )
+            extension_out=$( echo ${file_out##*.} )
+
+            generic_restart_file_name_in=$( basename ${file_in_Name} .${extension_in} )
+            generic_restart_file_name_out=$( basename ${file_out} .${extension_out} )
+            Path_OUT=${Path_r}/${generic_restart_file_name_in}
+
+            path_restart_tmp=`dirname $Path_OUT`
+            base_restart_tmp=`basename $Path_OUT`
+
+            if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+           		for (( pool_member_rank=0 ; pool_member_rank < $config_Ensemble_PoolSize ; pool_member_rank++ ))
+   		        do
+                  whole_ensemble_rank=$(($config_Ensemble_PoolSize*$1+$pool_member_rank))
+                  Path_OUT="$path_restart_tmp/MEMBER_$whole_ensemble_rank/$base_restart_tmp"
+                  Path_r="$path_restart_tmp/MEMBER_$whole_ensemble_rank"
+                  cd MEMBER_$whole_ensemble_rank
+
+            if [ $( IGCM_sys_TestFileBuffer ${Path_OUT}*.${extension_in} ; echo $? ) = 0 ] ; then
+              IGCM_debug_Print 3 "Buffered restart ${Path_OUT}*.${extension_in} "
+              Buffered=true
+              Archived=false
+              Tared=false
+              nb_restart_file=$(IGCM_sys_CountFileBuffer ${Path_OUT}_????.${extension_in})
+            elif [ $( IGCM_sys_TestFileArchive ${Path_OUT}*.${extension_in} ; echo $? ) = 0 ] ; then
+              IGCM_debug_Print 3 "Archived restart ${Path_OUT}*.${extension_in}"
+              Buffered=false
+              Archived=true
+              Tared=false
+              nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.${extension_in})
+            else
+              IGCM_debug_Print 3 "No restart file in the buffer nor in the archive directory"
+              IGCM_debug_Print 3 "${Path_OUT}*.${extension_in} do not exist"
+              IGCM_debug_Print 3 "Restart files will now be searched for in : ${RestartPath}/${RestartJobName}/RESTART"
+              Buffered=false
+              Archived=false
+              Tared=true
+              # Look after the tar file we want if we did not found it already
+              if [ X${IsMatching} = X ] ; then
+                IGCM_sys_TestDirArchive ${RestartPath}/${RestartJobName}/RESTART
+                if [ $? ] ; then
+                  for PotentialTarFile in $( IGCM_sys_RshArchive "find ${RestartPath}/${RestartJobName}/RESTART -name "${RestartJobName}_*restart*.tar" -print" ) ; do
+                    IsMatching=$( echo ${PotentialTarFile##*/} | \
+                      sed "s:_restart::" | \
+                      sed "s:^${RestartJobName}_::" | \
+                      sed "s:\.tar$::" | \
+                      gawk -F_ -v restartdate=${Date_r} \
+                      '{if (($1 <= restartdate) && ($2 >= restartdate)) {print $1"_"$2}}' )
+                    if [ ! X${IsMatching} = X ] ; then
+                      TarFileFound=${PotentialTarFile}
+                      break
+                    fi
+                  done
+                fi
+                # Stop here if nothing has been found
+                if [ X${TarFileFound} = X ] ; then
+                  IGCM_debug_Print 3 "Restart files were not found!"
+                  IGCM_debug_Print 3 "Restart files have been searched for in buffer and archive directory."
+                  IGCM_debug_Print 3 "They have been searched for in packed and unpacked format."
+                  IGCM_debug_Exit "Please double check restart settings in config.card"
+                  IGCM_debug_Verif_Exit
+                fi
+              fi
+              IGCM_sys_PrepareTaredRestart ${TarFileFound}
+              TarFileLocation=$( basename ${TarFileFound} )
+              IGCM_debug_Print 1 "tar xvf ${TarFileLocation} ${comp}_${generic_restart_file_name_in}*.${extension_in}"
+              tar xvf ${TarFileLocation} ${comp}_${generic_restart_file_name_in}*.${extension_in}
+              nb_restart_file=$( IGCM_sys_CountFileBuffer ${comp}_${generic_restart_file_name_in}_????.${extension_in} )
+            fi
+
+            if [ ${nb_restart_file} -gt 1 ] ; then
+              j=0                                      # BASH LINE NOT NEEDED
+              # BASH for j4 in in $( eval echo {0000..$(( nb_restart_file - 1 ))} ) ; do
+              until [ $j -ge ${nb_restart_file} ]; do  # BASH LINE NOT NEEDED
+                j4=${j}                                # BASH LINE NOT NEEDED
+                if [ X${Buffered} = Xtrue ] ; then
+                  IGCM_sys_GetBuffer ${Path_OUT}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out}
+                elif [ X${Archived} = Xtrue ] ; then
+                  IGCM_sys_Get ${Path_OUT}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out}
+                elif [ X${Tared} = Xtrue ] ; then
+                  IGCM_sys_Mv ${comp}_${generic_restart_file_name_in}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out}
+                fi
+                (( j=j+1 ))                            #BASH LINE NOT NEEDED
+              done
+
+              # OCE SPECIFIC TO REBUILD RESTART WHEN NUMBER OF RESTART FILES DONT MATCH MPI PROCESS
+              if [ X${OCE_PROC_MPI} != X ] ; then
+                if [ ${OCE_PROC_MPI} -ne ${nb_restart_file} ] ; then
+                  IGCM_sys_rebuild_nemo ${generic_restart_file_name_out} ${nb_restart_file} ${extension_out} ${generic_restart_file_name_out}_????.${extension_out}
+                  IGCM_sys_Rm ${generic_restart_file_name_out}_????.${extension_out}
+                fi
+              fi
+            else
+              if [ X${Buffered} = Xtrue ] ; then
+                IGCM_sys_GetBuffer ${Path_r}/${file_in_Name} ${file_out}
+              elif [ X${Archived} = Xtrue ] ; then
+                IGCM_sys_Get ${Path_r}/${file_in_Name} ${file_out}
+              elif [ X${Tared} = Xtrue ] ; then
+                IGCM_sys_Mv ${comp}_${file_in_Name} ${file_out}
+              fi
+            fi
+            cd ..
+            done
+            fi
+            (( i=i+3 ))
+          done
+        else
+          if [ X${FileName0} != XNONE ] ; then
+            IGCM_debug_Exit "IGCM_comp_GetInputRestartFiles : No file in list for ${compname}."
+          else
+            IGCM_debug_Print 1 "IGCM_comp_GetInputRestartFiles : NONE specified in Restart List ${compname}."
+          fi
+        fi
+      fi
+    elif ( [ ${Period} -eq 1 ] && [ ${DRYRUN} -eq 0 ] ) ; then
+      # if not FirstInitialize and first loop of this job
+
+      # Restore Restarts files
+      #-----------------------
+      if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != XNONE ] ) ; then
+        eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+	index_j=0
+	for index_member in $(cut -d: -f2 ${SUBMIT_DIR}/ensemble.txt); do 
+	    member[$index_j]=$index_member
+	    index_j=$index_j+1 
+	done
+
+        (( i=1 ))
+        until [ $i -gt $NbFiles ]; do
+          eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+          eval file_in=${file_in_}
+          (( i_ = i+1 ))
+          eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+          eval file_out=${file_out_}
+
+          file_in_Name=${config_UserChoices_JobName}_${LastPeriodDateEnd}_${file_in}
+
+          extension_in=$( echo ${file_in_Name##*.} )
+          extension_out=$( echo ${file_out##*.} )
+
+          generic_restart_file_name_in=$( basename ${file_in_Name} .${extension_in} )
+          generic_restart_file_name_out=$( basename ${file_out} .${extension_out} )
+
+          eval Path_BUF=\${R_BUF_${comp}_R}/${generic_restart_file_name_in}
+          eval Path_OUT=\${R_OUT_${comp}_R}/${generic_restart_file_name_in}
+
+          if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+              path_restart_tmp=`dirname $Path_BUF`
+              base_restart_tmp=`basename $Path_BUF`
+
+             for (( pool_member_rank=0 ; pool_member_rank < $config_Ensemble_PoolSize ; pool_member_rank++ ))
+             do
+	      whole_ensemble_rank=$(($config_Ensemble_PoolSize*$1+$pool_member_rank))	 
+              Path_BUF=$path_restart_tmp/MEMBER_${member[$whole_ensemble_rank]}/$base_restart_tmp
+	      Path_r=$path_restart_tmp/MEMBER_${member[$whole_ensemble_rank]}
+              cd MEMBER_$whole_ensemble_rank
+
+
+          if [ $( IGCM_sys_TestFileBuffer ${Path_BUF}*.${extension_in} ; echo $? ) = 0 ] ; then
+            IGCM_debug_Print 3 "Buffered restart ${Path_BUF}*.${extension_in}"
+            Buffered=true
+            Archived=false
+            Tared=false
+            nb_restart_file=$(IGCM_sys_CountFileBuffer ${Path_BUF}_????.${extension_in})
+          elif [ $( IGCM_sys_TestFileArchive ${Path_OUT}*.${extension_in} ; echo $? ) = 0 ] ; then
+            IGCM_debug_Print 3 "Archived restart ${Path_OUT}*.${extension_in}"
+            Buffered=false
+            Archived=true
+            Tared=false
+            nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.${extension_in})
+          else
+            IGCM_debug_Print 3 "No restart file in the buffer nor in the archive directory"
+            IGCM_debug_Print 3 "Restart files will now be searched for in : ${R_SAVE}/RESTART"
+            Buffered=false
+            Archived=false
+            Tared=true
+            # Look after the tar file we want if we did not found it already
+            if [ X${IsMatching} = X ] ; then
+              for PotentialTarFile in $( IGCM_sys_RshArchive "find ${R_SAVE}/RESTART -name "${config_UserChoices_JobName}_*_restart.tar" -print" ) ; do
+                IsMatching=$( echo ${PotentialTarFile##*/} | sed "s:^${config_UserChoices_JobName}_::" | sed "s:\.restart\.tar$::" | gawk -F_ -v restartdate=${LastPeriodDateEnd} '{if (($1 < restartdate) && ($2 >= restartdate)) {print $1"_"$2}}' )
+                if [ ! X${IsMatching} = X ] ; then
+                  TarFileFound=${PotentialTarFile}
+                  break
+                fi
+              done
+            fi
+            # Stop here if nothing has been found
+            if [ X${TarFileFound} = X ] ; then
+              IGCM_debug_Print 3 "Restart files were not found!"
+              IGCM_debug_Print 3 "Restart files have been searched for in buffer and archive directory."
+              IGCM_debug_Print 3 "They have been searched for in packed and unpacked format."
+              IGCM_debug_Exit "Please double check restart settings in config.card"
+              IGCM_debug_Verif_Exit
+            fi
+            IGCM_sys_PrepareTaredRestart ${TarFileFound}
+            TarFileLocation=$( basename ${TarFileFound} )
+            IGCM_debug_Print 1 "tar xvf ${TarFileLocation} ${comp}_${generic_restart_file_name_in}*.${extension_in}"
+            tar xvf ${TarFileLocation} ${comp}_${generic_restart_file_name_in}*.${extension_in}
+            nb_restart_file=$( IGCM_sys_CountFileBuffer ${comp}_${generic_restart_file_name_in}_????.${extension_in} )
+          fi
+
+          if [ ${nb_restart_file} -gt 1 ] ; then
+            j=0                                     # BASH LINE NOT NEEDED
+            #BASH for j4 in in $( eval echo {0000..$(( nb_restart_file - 1 ))} ) ; do
+            until [ $j -ge ${nb_restart_file} ]; do # BASH LINE NOT NEEDED
+              j4=${j}                               # BASH LINE NOT NEEDED
+              if [ X${Buffered} = Xtrue ] ; then
+                IGCM_sys_GetBuffer ${Path_BUF}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out}
+              elif [ X${Archived} = Xtrue ] ; then
+                IGCM_sys_Get ${Path_OUT}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out}
+              elif [ X${Tared} = Xtrue ] ; then
+                IGCM_sys_Mv ${comp}_${generic_restart_file_name_in}_${j4}.${extension_in} ${generic_restart_file_name_out}_${j4}.${extension_out}
+              fi
+              (( j=j+1 ))                           # BASH LINE NOT NEEDED
+            done
+          else
+            if [ X${Buffered} = Xtrue ] ; then
+              eval IGCM_sys_GetBuffer ${Path_r}/${file_in_Name} ${file_out}
+            elif [ X${Archived} = Xtrue ] ; then
+              eval IGCM_sys_Get \${R_OUT_${comp}_R}/${file_in_Name} ${file_out}
+            elif [ X${Tared} = Xtrue ] ; then
+              IGCM_sys_Mv ${comp}_${file_in_Name} ${file_out}
+            fi
+          fi
+            cd ..
+            done
+            fi
+          (( i=i+3 ))
+        done
+      else
+        if [ X${FileName0} != XNONE ] ; then
+          IGCM_debug_Exit "IGCM_comp_GetInputRestartFiles : No file in list for ${compname}."
+        else
+          IGCM_debug_Print 1 "IGCM_comp_GetInputRestartFiles : NONE specified in Restart List ${compname}."
+        fi
+      fi
+    fi
+  done
+
+  NbFiles=$( ls * 2> /dev/null | wc -l )
+  if [ ${NbFiles} -gt 0 ] ; then
+    IGCM_sys_Chmod u+rw *
+  fi
+
+  IGCM_debug_PopStack "IGCM_comp_GetInputRestartFiles"
+}
+
+#=======================================================================
+function IGCM_comp_GetInputBinaryFiles
+{
+  IGCM_debug_PushStack "IGCM_comp_GetInputBinaryFiles"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_GetInputBinaryFiles"
+  echo
+
+  # Clean up previous pass
+  [ -f ${RUN_DIR}/compiler.txt ] && rm -f ${RUN_DIR}/compiler.txt
+
+  typeset comp ExeNameIn ExeNameOut byPass
+  typeset compilerNmbr compilerUnit compilerFull
+  byPass=false
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+
+    # Copy executable for this component
+    eval ExeNameIn=\${config_Executable_${comp}[0]}
+    eval ExeNameOut=\${config_Executable_${comp}[1]}
+    # Test if missing executable and DRYRUN is set to 0 or 1, then stop!
+    if [ ${DRYRUN} -le 1 ] && [ X${ExeNameIn} != X\"\" ] ; then
+	# The executable is set in config.card and is different from ""
+	# Use eval to expand ExeNameIn if variables are used in the name 
+	eval ExeNameIn=${ExeNameIn}
+	if [ ! -f ${R_EXE}/${ExeNameIn} ] ; then
+	    IGCM_debug_Exit "IGCM_comp_GetInputBinaryFiles missing executable ${ExeNameIn}"
+	fi
+    fi
+
+    if [ ${Period} -eq 1 ] && [ -f ${R_EXE}/${ExeNameIn} ] ; then
+      eval IGCM_sys_Cp ${R_EXE}/${ExeNameIn} ${ExeNameOut}
+      if [ -f ${RUN_DIR}/${ExeNameOut} ] ; then
+        eval IGCM_sys_Chmod +rx ${RUN_DIR}/${ExeNameOut}
+      fi
+    elif [ -f ${R_EXE}/${ExeNameIn} ] && [ ! -f ${RUN_DIR}/${ExeNameOut} ] ; then
+      eval IGCM_sys_Cp ${R_EXE}/${ExeNameIn} ${ExeNameOut}
+      if [ -f ${RUN_DIR}/${ExeNameOut} ] ; then
+        eval IGCM_sys_Chmod +rx ${RUN_DIR}/${ExeNameOut}
+      fi
+    fi
+
+    if [ -f ${RUN_DIR}/${ExeNameOut} ] ; then
+      # Get the compiler version
+      compilerFull=$( strings ${RUN_DIR}/${ExeNameOut}  | grep "RTL Message Catalog" | gawk '{print $6}' | gawk -F. '{print $1}' )
+      compilerVersion=$( strings ${RUN_DIR}/${ExeNameOut}  | grep "RTL Message Catalog" | gawk '{print $6}' | gawk -F. '{print $1}' )
+      # Save it
+      echo $compilerFull >> ${RUN_DIR}/compiler.txt
+      [ X${compilerFull} = X ] && byPass=true
+      IGCM_debug_Print 1 "${RUN_DIR}/${ExeNameOut} has been compiled with ${compilerFull}"
+      IGCM_debug_Print 1 "Compiler is ${compilerVersion}"
+    fi
+  done
+
+  compilerNmbr=$( cat ${RUN_DIR}/compiler.txt | wc -l )
+  compilerUnit=$( cat ${RUN_DIR}/compiler.txt | sort | uniq -c )
+
+  if ( [ ${compilerNmbr} -ne ${compilerUnit} ] && [ ! X${byPass} = Xtrue  ] ); then
+    IGCM_debug_Exit "Binaries has not been compiled with the same compiler version"
+  fi
+
+# Test on compiler version for IPSLCM6* configuration on irene (only for CMIP6 production)
+  if [ ${SYSTEM} = irene ]; then
+    if ( [ X"$( echo ${config_UserChoices_LongName} | grep IPSLCM6.0.13 )" != "X" ] && [ X${compilerFull} != XV17 ] )  || ( [ X"$( echo ${config_UserChoices_LongName} | grep IPSLCM6.0.14 )" != "X" ] && [ X${compilerFull} != XV17 ] ) || ( [ X"$( echo ${config_UserChoices_LongName} | grep IPSLCM6.0.15 )" != "X" ] && [ X${compilerFull} != XV17 ] ) || ( [ X"$( echo ${config_UserChoices_LongName} | grep IPSLCM6.1 )" != "X" ] && [ X${compilerFull} != XV17 ] ) || ( [ X"$( echo ${config_UserChoices_LongName} | grep IPSLCM5A2.1 )" != "X" ] && [ X${compilerFull} != XV17 ] ) ; then
+      IGCM_debug_Exit "IPSLCM6.0.13, IPSLCM6.0.14, IPSLCM6.0.15, IPSLCM6.1 and IPSLCM5A2.1 must be compiled with intel 2017 compiler"
+    fi
+  fi
+
+  IGCM_debug_PopStack "IGCM_comp_GetInputBinaryFiles"
+}
+
+#=======================================================================
+function IGCM_comp_PeriodStart
+{
+  IGCM_debug_PushStack "IGCM_comp_PeriodStart"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_PeriodStart"
+  echo
+
+  typeset ExeNameIn ExeNameOut
+  typeset comp compname comptagname
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Copy executable for this component
+    eval ExeNameIn=\${config_Executable_${comp}[0]}
+    eval ExeNameIn=${ExeNameIn}
+    eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+    # Debug Print
+    IGCM_debug_Print 3 "PeriodStart ${compname} Driver Function (if any)."
+    # UPDATE component
+    ${comp}_PeriodStart 2> /dev/null
+
+  done
+
+  IGCM_debug_PopStack "IGCM_comp_PeriodStart"
+}
+
+
+
+#=======================================================================
+function IGCM_comp_modifyFile
+{
+#
+# syntax:     IGCM_comp_modifyFile  filein  key  [value]
+#
+# For example : IGCM_comp_modifyFile metrics_template.py case_id \'SE_${YEARS}\'
+#
+# This function is used to replace a pattern in a file for a specific variable.
+#
+# Arguments:
+# - filein : the file in run directory in which the variable should be set
+# - key    : the variable to modify
+# - value  : the value to set the key equal to
+#
+  IGCM_debug_PushStack "IGCM_comp_modifyFile"
+
+  typeset filein key value pattern
+
+  # Set local variables and test the arguments
+  if [ $# = 3 ] ; then
+    # Normal case with 3 arguments
+    filein=$1 ; key=$2 ; value=$3
+  else
+    IGCM_debug_Exit "IGCM_comp_modifyFile: Bad number of arguments."
+    IGCM_debug_PopStack "IGCM_comp_modifyFile"
+    return
+  fi
+  IGCM_debug_Print 1 "Entering IGCM_comp_modifyFile with arguments: ${filein} ${key} ${value}"
+
+  # Test if the file exist
+  if [ ! -f ${filein} ] ; then
+    IGCM_debug_Exit "IGCM_comp_modifyFile: ${filein} does not exist."
+    IGCM_debug_PopStack "IGCM_comp_modifyFile"
+    return
+  fi
+
+  # Read the line with key in the file without the comments
+  pattern=$( grep "^ *${key} *=" ${filein} | sed -e "s% *\!.*%%" )
+
+  # Verify the existance of the pattern
+  if [ X"${pattern}" = X ] ; then
+    # Variable key is not set in filein, stop.
+    IGCM_debug_Exit "IGCM_comp_modifyFile : Variable ${key} is not set in correct file. It should be set in ${filein}."
+    IGCM_debug_PopStack "IGCM_comp_modifyFile"
+    return
+  fi
+
+  # Now change key in filein
+  #sed -e "s:${pattern}:${key}=${value}:" ${filein} > ${filein}.tmp
+  sed -e "s:^ *${key} *=.*:${key}=${value}:" ${filein} > ${filein}.tmp
+  IGCM_debug_Print 1 "IGCM_comp_modifyFile: In ${filein} set ${key}=${value}"
+  \mv ${filein}.tmp ${filein}
+  
+  IGCM_debug_PopStack "IGCM_comp_modifyFile"
+}
+
+#=======================================================================
+function IGCM_comp_modifyDefFile
+{
+#
+# syntax:     IGCM_comp_modifyDefFile  type  filein  key  [value]
+#
+# For example : IGCM_comp_modifyDefFile blocker run.def day_step 1200
+#
+# This function is used to modify a parameter file for a specific variable.
+# The file must be a ".def" file, i.e. with IOIPSL parameter file syntax.
+# This function can be used in the comp.driver files for the components.
+#
+# Arguments:
+# - type   : first argument must be blocker, nonblocker or force
+#            For "blocker" case, the variable must be attributed the keyworld AUTO
+#            otherwise this function will exit.
+#            For "nonblocker" case, the user can remove or modify the variable. For
+#            this case, as long as AUTO is not set, no modification will be done.
+#            For "force" case, the variable will be modified even if it is not set to AUTO
+# - filein : the file in run directory of .def type in which the variable should be set
+# - key    : the variable to modify
+# - value  : the value to set the key equal to, optional. If value is not set or if
+#            value=DEFAULT, then a default value must be given in filein using syntax :
+#            key= AUTO : DEFAULT=def_value
+#
+  IGCM_debug_PushStack "IGCM_comp_modifyDefFile"
+
+  typeset type filein key value
+  typeset filelist nb_occ modify
+
+  # Set local variables and test the arguments
+  if [ $# = 4 ] ; then
+    # Normal case with 4 arguments
+    type=$1 ; filein=$2 ; key=$3 ; value=$4
+  elif [ $# = 3 ] ; then
+    # Normal case with 3 arguments
+    type=$1 ; filein=$2 ;	key=$3; value="DEFAULT"
+  else
+    IGCM_debug_Exit "IGCM_comp_modifyDefFile: Bad number of arguments."
+    IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+    return
+  fi
+  IGCM_debug_Print 1 "Entering IGCM_comp_modifyDefFile with arguments: ${type} ${filein} ${key} ${value}"
+
+  # Test if first argument is correct
+  if [ ${type} != blocker ] && [ ${type} != nonblocker ] && [ ${type} != force ] ; then
+    IGCM_debug_Exit "IGCM_comp_modifyDefFile: Error in first argument must be blocker, nonblocker or force"
+    IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+    return
+  fi
+
+  # Test if the file exist. 
+  # Exit with error if the file does not exist for the case blocker or force. 
+  # Only return for the case nonblocker. 
+  if [ ! -f ${filein} ] ; then
+    if [ ${type} = blocker ] || [ ${type} = force ] ; then
+      IGCM_debug_Exit "IGCM_comp_modifyDefFile: ${filein} does not exist."
+    else
+      IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: ${filein} does not exist. Nothing will be done for this file."
+    fi
+    IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+    return
+  fi
+
+  # Define list of files to test using all files with suffix .def (except used*.def)
+  filelist=$( ls *def | grep -v used )
+
+  # Count number of occurances for the key in all files
+  nb_occ=$( grep -w ${key} ${filelist} | grep -v "#"  | wc -l )
+
+  # Test if key is set several times
+  if [ ${nb_occ} -gt 1 ] ; then
+    IGCM_debug_Exit "IGCM_comp_modifyDefFile : Error in ${filein}: Variable=${key} is set ${nb_occ} times"
+    IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+    return
+  fi
+
+  # Treatement according to different cases
+  if [ ${nb_occ} -eq 0 ] && [ ${type} = blocker ] ; then
+    # Stop if the key is never set and the function is blocker
+    IGCM_debug_Exit "IGCM_comp_modifyDefFile : Error in ${filein}: Variable=${key} has been removed but this function is blocker. "
+    IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: restore ${filein} for variable ${key}."
+  elif [ ${nb_occ} -eq 0 ] && [ ${type} = nonblocker ] ; then
+    # The key is not set but it is a nonblocker call so nothing is done.
+    IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: ${key} is not set in ${filein}. This is a nonblocker call so nothing is done."
+    IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: Default value for ${key} from the model will be used."
+    modify=no
+  elif [ $( grep ${key} ${filein} | grep -v "\#"  |wc -l ) = 0 ] ; then
+    # Variable key is not set in filein, stop.
+    IGCM_debug_Exit "IGCM_comp_modifyDefFile : Variable ${key} is not set in correct file. It should be set in ${filein}."
+  fi
+
+  # Check if AUTO is set in the filein on the same line as the key variable
+  if [ $( grep -w ${key} ${filein} | grep -v "\#" | grep AUTO | wc -l ) = 1 ] ; then
+    # Modification will be done for all cases
+    modify=yes
+  else
+    # The variable was not set to AUTO
+    if [ ${type} = blocker ] ; then
+      # Exit because this is a blocker call
+      IGCM_debug_Exit "IGCM_comp_modifyDefFile : The variable ${key} cannot be modified. It should be set to AUTO."
+      IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+      return
+    elif [ ${type} = nonblocker ] ; then
+      # Do nothing. Suppose that the user did set the variable correct
+      IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: ${key} is set by the user. Nothing done."
+      modify=no
+    elif [ ${type} = force ] ; then
+      # Force modification
+      IGCM_debug_Print 1 "IGCM_comp_modifyDefFile : Variabl=${key} was not set to AUTO. Modification will be forced."
+      modify=yes
+    fi
+  fi
+
+  # Do the modifcation now
+  if [ ${modify} = yes ] ; then
+
+    # For option DEFAULT, read default value from file.
+    if [ X"${value}" = XDEFAULT ] || [ X"${value}" = X ] ; then
+      # Case to set DEFAULT value
+      # Read default value from filein
+      value=$( grep -w ${key} ${filein} | grep -v "\#" | awk  -F"DEFAULT *=" '{print $2}')
+
+      if [ X"${value}" = X ] ; then
+        IGCM_debug_Exit "IGCM_comp_modifyDefFile : The variable ${key} needs a DEFAULT value in ${filein}."
+        IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: The syntax in ${filein} should be:"
+        IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: ${key}=_AUTO_:DEFAULT=def_value"
+        IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+        return
+      fi
+    fi
+
+    # Now change key in filein
+    sed -e "s/^${key}\ *=.*/${key}= ${value}/" ${filein} > ${filein}.tmp
+    IGCM_debug_Print 1 "IGCM_comp_modifyDefFile: In ${filein} set ${key}=${value}"
+    \mv ${filein}.tmp ${filein}
+  fi
+  IGCM_debug_PopStack "IGCM_comp_modifyDefFile"
+}
+
+#=======================================================================
+function IGCM_comp_modifyNamelist
+{
+#
+# syntax:     IGCM_comp_modifyNamelist  type  filein  key  [value]
+#
+# For example : IGCM_comp_modifyNamelist blocker run.def day_step 1200
+#
+# This function is used to modify a parameter file for a specific variable.
+# The file must be a "namelist" file, i.e. with fortran namelist syntax.
+# This function can be used in the comp.driver files for the components.
+#
+# Arguments:
+# - type   : first argument must be blocker, nonblocker or force
+#            For "blocker" case, the variable must be attributed the keyworld AUTO
+#            otherwise this function will exit.
+#            For "nonblocker" case, the user can remove or modify the variable. For
+#            this case, as long as AUTO is not set, no modification will be done.
+#            For "force" case, the variable will be modified even if it is not set to AUTO
+# - filein : the file in run directory of .def type in which the variable should be set
+# - key    : the variable to modify
+# - value  : the value to set the key equal to, optional. If value is not set or if
+#            value=DEFAULT, then a default value must be given in filein using syntax :
+#            key= AUTO : DEFAULT=def_value
+#
+  IGCM_debug_PushStack "IGCM_comp_modifyNamelist"
+
+  typeset type filein key value pattern modify
+
+  # Set local variables and test the arguments
+  if [ $# = 4 ] ; then
+    # Normal case with 4 arguments
+    type=$1 ; filein=$2 ; key=$3 ; value=$4
+  elif [ $# = 3 ] ; then
+    # Normal case with 3 arguments
+    type=$1 ; filein=$2 ;	key=$3; value="DEFAULT"
+  else
+    IGCM_debug_Exit "IGCM_comp_modifyNamelist: Bad number of arguments."
+    IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+    return
+  fi
+  IGCM_debug_Print 1 "Entering IGCM_comp_modifyNamelist with arguments: ${type} ${filein} ${key} ${value}"
+
+  # Test if first argument is correct
+  if [ ${type} != blocker ] && [ ${type} != nonblocker ] && [ ${type} != force ] ; then
+    IGCM_debug_Exit "IGCM_comp_modifyNamelist: Error in first argument must be blocker, nonblocker or force"
+    IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+    return
+  fi
+
+  # Test if the file exist. 
+  # Exit with error if the file does not exist for the case blocker or force. 
+  # Only return for the case nonblocker. 
+  if [ ! -f ${filein} ] ; then
+    if [ ${type} = blocker ] || [ ${type} = force ] ; then
+      IGCM_debug_Exit "IGCM_comp_modifyNamelist: ${filein} does not exist."
+    else
+      IGCM_debug_Print 1 "IGCM_comp_modifyNamelist: ${filein} does not exist. Nothing will be done for this file."
+    fi
+    IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+    return
+  fi
+
+  # Read the line with key in the file without the comments
+  pattern=$( grep "^ *${key} *=" ${filein} | sed -e "s% *\!.*%%" )
+
+  # Verify the existance of the pattern
+  if [ X"$pattern" = X ] ; then
+    # Variable key is not set in filein, stop.
+    IGCM_debug_Exit "IGCM_comp_modifyNamelist : Variable ${key} is not set in correct file. It should be set in ${filein}."
+    IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+    return
+  fi
+
+  # Check if the variable is set to AUTO in the filein
+  if [ $( echo $pattern | grep AUTO | wc -l ) = 1 ] ; then
+    # Modification will be done for all cases
+    modify=yes
+  else
+    # The variable was not set to AUTO
+    if [ ${type} = blocker ] ; then
+      # Exit because this is a blocker call
+      IGCM_debug_Exit "IGCM_comp_modifyNamelist : The variable ${key} cannot be modified. It should be set to AUTO."
+      IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+      return
+    elif [ ${type} = nonblocker ] ; then
+      # Do nothing. Suppose that the user did set the variable correct
+      IGCM_debug_Print 1 "IGCM_comp_modifyNamelist: ${key} is set by the user. Nothing done."
+      modify=no
+    elif [ ${type} = force ] ; then
+      # Force modification
+      IGCM_debug_Print 1 "IGCM_comp_modifyNamelist : Variabl=${key} was not set to AUTO. Modification will be forced."
+      modify=yes
+    fi
+  fi
+
+  # Do the modifcation now
+  if [ ${modify} = yes ] ; then
+
+    # For option DEFAULT, read default value from file.
+    if [ X"${value}" = XDEFAULT ] || [ X"${value}" = X ] ; then
+      # Case to set DEFAULT value
+      # Read default value from filein
+      value=$( echo $pattern | awk  -F"DEFAULT *=" '{print $2}')
+
+      if [ X"${value}" = X ] ; then
+        IGCM_debug_Exit "IGCM_comp_modifyNamelist : The variable ${key} needs a DEFAULT value in ${filein}."
+        IGCM_debug_Print 1 "IGCM_comp_modifyNamelist: The syntax in ${filein} should be:"
+        IGCM_debug_Print 1 "IGCM_comp_modifyNamelist: ${key}=_AUTO_:DEFAULT=def_value"
+        IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+        return
+      fi
+    fi
+
+    # Now change key in filein
+    sed -e "s/${pattern}/       ${key}=${value}/" ${filein} > ${filein}.tmp
+    IGCM_debug_Print 1 "IGCM_comp_modifyNamelist: In ${filein} set ${key}=${value}"
+    \mv ${filein}.tmp ${filein}
+  fi
+  IGCM_debug_PopStack "IGCM_comp_modifyNamelist"
+}
+
+#=======================================================================
+function IGCM_comp_modifyXmlFile
+{
+#
+# syntax:     IGCM_comp_modifyXmlFile  type  filein  keyid  keyattrib  value
+#
+# For example : IGCM_comp_modifyXmlFile force file_def_orchidee.xml sechiba2 enabled .TRUE.
+#          or   IGCM_comp_modifyXmlFile blocker iodef.xml using_server NONE false
+#
+# This function is used to modify the value for a specific attribute and variable id.
+# The file must be a valid xml file.
+# This function can be used in the comp.driver files for the components.
+#
+# Arguments:
+# - type      : first argument must be blocker, nonblocker or force.
+#               For "blocker" case, the variable must be attributed the keyworld AUTO
+#               otherwise this function will exit.
+#               For "nonblocker" case, the user can remove or modify the variable. For
+#               this case, as long as AUTO is not set, no modification will be done.
+#               For "force" case, the variable will be modified even if it is not set to AUTO
+# - filein    : the file in run directory of .xml type in which the variable should be set
+# - keyid     : the variable to modify
+# - keyattrib : the attribute name to modify. If NONE, then the variable itself will be modified
+# - value     : the value to set in the filein
+#
+  IGCM_debug_PushStack "IGCM_comp_modifyXmlFile"
+
+  typeset type filein keyid keyattrib value modify
+
+  # Set local variables and test the arguments
+  if [ $# = 5 ] ; then
+    # Normal case with 4 arguments
+    type=$1 ; filein=$2 ; keyid=$3 ; keyattrib=$4 ; value=$5
+  else
+    IGCM_debug_Exit "IGCM_comp_modifyXmlFile: Bad number of arguments."
+    IGCM_debug_PopStack "IGCM_comp_modifyXmlFile"
+    return
+  fi
+  IGCM_debug_Print 1 "Entering IGCM_comp_modifyXmlFile with arguments: type=${type} file=${filein}, id=${keyid} attribute=${keyattrib}, value=${value}"
+
+  # Test if first argument is correct
+  if [ ${type} != blocker ] && [ ${type} != nonblocker ] && [ ${type} != force ] ; then
+    IGCM_debug_Exit "IGCM_comp_modifyXmlFile: Error in first argument must be blocker, nonblocker or force"
+    IGCM_debug_PopStack "IGCM_comp_modifyXmlFile"
+    return
+  fi
+
+  # Test if the file exist. 
+  # Exit with error if the file does not exist for the case blocker or force. 
+  # Only return for the case nonblocker. 
+  if [ ! -f ${filein} ] ; then
+    if [ ${type} = blocker ] || [ ${type} = force ] ; then
+      IGCM_debug_Exit "IGCM_comp_modifyXmlFile: ${filein} does not exist."
+    else
+      IGCM_debug_Print 1 "IGCM_comp_modifyXmlFile: ${filein} does not exist. Nothing will be done for this file."
+    fi
+    IGCM_debug_PopStack "IGCM_comp_modifyXmlFile"
+    return
+  fi
+
+  # Test if keyid is set in filein. If not exit for case all cases(blocker, force) except nonblocker.
+  if [ $( grep -w ${keyid} ${filein} | wc -l ) = 0 ] ; then
+      if [ ${type} = nonblocker ] ; then
+          # This is a nonblocker case, print warning but do nothing else
+	  IGCM_debug_Print 1 "IGCM_comp_modifyXmlFile: ${keyid} is not set in ${filein}. This is a nonblocker call so nothing is done."
+      else
+          # This is a blocker or force case : stop now
+	  IGCM_debug_Exit "IGCM_comp_modifyXmlFile : ${keyid} is not set in the file. Bad syntax of ${filein} file."
+	  IGCM_debug_PopStack "IGCM_comp_modifyXmlFile"
+	  return
+      fi
+  fi
+
+  # Check if AUTO is set on the same line as keyid and keyattrib
+  if [  $( grep -w ${keyid} ${filein} | grep AUTO | wc -l ) = 1 ] ; then
+    # Modification will be done
+    modify=yes
+  else
+    if [ ${type} = blocker ] ; then
+      # Exit, the variable must be set to AUTO
+      IGCM_debug_Exit "IGCM_comp_modifyXmlFile : blocker function. The ${keyattrib} for ${keyid} must be set to AUTO in ${filein}."
+      IGCM_debug_PopStack "IGCM_comp_modifyXmlFile"
+      return
+    elif [ ${type} = nonblocker ] ; then
+      # Nothing will be done
+      IGCM_debug_Print 1 "Nonblocker nothing is done for ${filein}, id=${keyid} and attribute ${keyattrib}"
+      modify=no
+    elif [ ${type} = force ] ; then
+      # Force modification
+      IGCM_debug_Print 1 "IGCM_comp_modifyXmlFile : Attribute=${keyattrib} for id=${keyid} was not set to AUTO. Modification will be forced."
+      modify=yes
+    fi
+  fi
+
+  # Do the modifcation now
+  if [ ${modify} = yes ] ; then
+    if [ ${keyattrib} = NONE ] ; then
+      # Case to modify the variable itself
+      IGCM_debug_Print 1 "Now modify ${filein} for id=${keyid} by setting the variable=${value}"
+      sed -e "s/\(<[^\"]*\"${keyid}\".*>\)\([^<]*\)\(<[^>]*\)/\1${value}\3/" ${filein} > ${filein}.tmp
+    else
+      # Check if keyattrib is set on the same line as keyid
+      if [  $( grep -w ${keyid} ${filein} | grep ${keyattrib} | wc -l ) = 1 ] ; then
+        # Case to modify the attribute value
+        IGCM_debug_Print 1 "Now modify ${filein} for id=${keyid} by setting attribute to ${keyattrib}=${value}"
+        sed -e "/id=\"${keyid}\"/s/\(${keyattrib}=\"\)[^\"]*\(\"\)/\1${value}\2/" ${filein} > ${filein}.tmp
+      else
+        # Case to add the attribute and its value
+        IGCM_debug_Print 1 "Now add in ${filein} for id=${keyid} the attribute ${keyattrib} to the value ${value}"
+        sed -e "/id=\"${keyid}\"/s/\/>/ ${keyattrib}=\"${value}\"\/>/" ${filein} > ${filein}.tmp
+      fi
+    fi
+    \mv ${filein}.tmp ${filein}
+  fi
+  IGCM_debug_PopStack "IGCM_comp_modifyXmlFile"
+}
+
+#=======================================================================
+function IGCM_comp_Update
+{
+  IGCM_debug_PushStack "IGCM_comp_Update"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_Update"
+  echo
+  if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+   cd ENSEMBLE_TEMPLATE
+  fi
+
+  typeset comp compname comptagname
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Debug Print
+    IGCM_debug_Print 1 "Update ${compname} Parameter Files."
+    # UPDATE component
+    ${comp}_Update
+
+    # Read TimeSeries information from XML files, prepare TS directories and do modifications in timeseries_def_${compname}.xml
+    if [ -f timeseries_def_${compname}.xml ]; then
+      ${libIGCM}/libIGCM_post/xios_parser.py tsquery --file timeseries_def_${compname}.xml > ts.temp.${compname}.txt
+      for line in $( cat ts.temp.${compname}.txt ); do
+        output_freq=$( echo ${line} | awk -F "," '{print $1}' | awk -F "=" '{print $2}' )
+        id=$(          echo ${line} | awk -F "," '{print $2}' | awk -F "=" '{print $2}' )
+        case ${output_freq} in
+        *Y|*y)
+          eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_Y}
+          eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_Y}/${config_UserChoices_JobName}
+          ;;
+        *MO|*mo)
+          eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_M}
+          eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_M}/${config_UserChoices_JobName}
+          ;;
+        *D|*d)
+          eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_D}
+          eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_D}/${config_UserChoices_JobName}
+          ;;
+        *S|*s)
+          eval IGCM_sys_Mkdir \${R_BUF_${comp}_A_H}
+          eval IGCM_comp_modifyXmlFile nonblocker timeseries_def_${compname}.xml ${id} ts_prefix \${R_BUF_${comp}_A_H}/${config_UserChoices_JobName}
+          ;;
+        esac
+      done
+    fi
+
+    # Read TimeSeries information from XML files, prepare CMIP6 TS directories and do modifications in dr2xml_${compname}.xml
+    if [ -f dr2xml_${compname}.xml ]; then
+      if ( [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] || [ X${config_Post_dr2xmlIPSL} = XTRUE ] ) ; then
+        eval IGCM_sys_Mkdir \${CMIP6_BUF_${comp}}
+        eval CMIP6_DIR=\${CMIP6_BUF_${comp}}
+        # Modify path from dr2xml_{compname}.xml
+        if [ X${config_Post_dr2xmlIPSL} = XTRUE ]; then
+          ${libIGCM}/libIGCM_post/xios_parser.py -v modifydr2xmlIPSL --newPath ${CMIP6_DIR} --splitLastDate ${EndYear_p1} --JobName ${config_UserChoices_JobName} --ModelName ${config_UserChoices_ModelName} --ModelVersion ${config_UserChoices_LongName} --file dr2xml_${compname}.xml
+        else
+          ${libIGCM}/libIGCM_post/xios_parser.py -v modifyPath --newPath ${CMIP6_DIR} --file dr2xml_${compname}.xml
+        fi
+        # Overwrite the original file
+        IGCM_sys_Mv modified.dr2xml_${compname}.xml dr2xml_${compname}.xml
+      fi
+    fi
+  done
+  if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+   cd ..
+  fi
+
+
+  IGCM_debug_PopStack "IGCM_comp_Update"
+}
+
+#=======================================================================
+function IGCM_comp_Finalize
+{
+  IGCM_debug_PushStack "IGCM_comp_Finalize"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_comp_Finalize"
+  echo
+
+  typeset ListTextName TextName0
+  typeset comp compname comptagname card ListFilesName FileName0 NbFiles SaveOnArchive
+  typeset i i_ file_in file_in_ file_out file_out_ file_outin file_outin_ generic_file_name nb_rebuild_file
+  typeset -Z4 j4 #BASH declare j4
+  typeset list_file nlist_file
+  typeset compactoutputs
+
+  # Initialize array hosting list of rebuilded files to copy
+  unset rebuildedActionsList
+
+  # Text compacting options
+  compactoutputs=false
+  if [ X${JobType} != XRUN ] ; then
+    compactoutputs=true
+  elif [ X${config_UserChoices_CompactText} != Xn ] ; then
+    compactoutputs=true
+  fi
+
+  # Prepare headers for the shell dedicated to offline rebuild
+  if [ X${AsynchronousRebuild} = Xtrue ] ; then
+    [ ! -d ${RUN_DIR}/REBUILD_${PeriodDateBegin} ] && IGCM_sys_Mkdir ${RUN_DIR}/REBUILD_${PeriodDateBegin}
+    if [ ${DRYRUN} -le 1 ] ; then
+      echo "#!/bin/ksh                                        " >  ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "function IGCM_FlushRebuild                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "{                                                 " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "IGCM_debug_PushStack \"IGCM_FlushRebuild\"        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "echo                                              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "IGCM_debug_Print 1 \"IGCM_FlushRebuild\"          " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "echo                                              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export R_SAVE=${R_SAVE}                           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export R_BUFR=${R_BUFR}                           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export R_OUT_KSH=${R_OUT_KSH}                     " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export R_BUF_KSH=${R_BUF_KSH}                     " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export config_UserChoices_JobName=${config_UserChoices_JobName}     " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export config_UserChoices_SpaceName=${config_UserChoices_SpaceName} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+    fi
+  fi
+
+  for comp in ${config_ListOfComponents[*]} ; do
+    # Define component
+    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
+    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
+
+    # Debug Print
+    IGCM_debug_Print 1 "Finalize ${comp} : ${compname} component."
+    # FINALIZE component
+    ${comp}_Finalize
+
+    card=${SUBMIT_DIR}/COMP/${compname}.card
+
+    # Save Output Text files of models
+    #---------------------------------
+    IGCM_debug_Print 2 "Save Output Text files for ${comp} : ${compname} component."
+    IGCM_card_DefineArrayFromOption ${card} OutputText List
+    ListTextName=${compname}_OutputText_List
+
+    eval TextName0=\${${ListTextName}[0]} > /dev/null 2>&1
+    if [ X${TextName0} != X${NULL_STR} ] ; then
+      eval NbFiles=\${#${ListTextName}[@]} > /dev/null 2>&1
+
+      (( i=0 ))
+      until [ $i -eq $NbFiles ]; do
+        eval file_in=\${${ListTextName}[$i]} > /dev/null 2>&1
+        eval file_out=${PREFIX}_${file_in}
+
+        (( i=i+1 ))
+
+        unset list_file
+
+        if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+           for (( pool_member_rank=0 ; pool_member_rank < $config_Ensemble_PoolSize ; pool_member_rank++ ))
+           do
+            whole_ensemble_rank=$(($config_Ensemble_PoolSize*$1+$pool_member_rank))
+            Path_OUT="\${R_BUF_${comp}_D}/MEMBER_$whole_ensemble_rank"
+            cd MEMBER_$whole_ensemble_rank
+
+        #set +A list_file -- $( ls ${file_in}* | sort 2>/dev/null )
+        # result for a a1 a10 a2 with file_in=a a a1 a2 a10
+        set +A list_file -- $( [ -f ${file_in} ] && ls ${file_in} ; for i in $(ls ${file_in}* 2>/dev/null | sed "s/${file_in}//" | sort -n) ; do ls ${file_in}$i ; done )
+        nlist_file=${#list_file[@]}
+        if [ ${nlist_file} -gt 1 ] ; then
+          if ( ${compactoutputs} ) ; then
+            IGCM_debug_Print 2 "Parallelism of Text Output with ${nlist_file} files."
+            IGCM_debug_Print 2 "Compact files in ${file_out} : " ${list_file[*]}
+            echo ${list_file[*]} > ${file_out}
+            echo "
+" >> ${file_out}
+
+            (( i_ = 0 ))
+            for file in ${list_file[@]} ; do
+              echo "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ " >> ${file_out}
+              echo "| " ${i_} " " ${file} >> ${file_out}
+              echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " >> ${file_out}
+              cat ${file} | sed "s/\(.*\)/${i_}\1/" >> ${file_out}
+              echo "
+" >> ${file_out}
+              eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&1
+                  (( i_ = i_ + 1 ))
+            done
+            if ( ${ExecutionFail} ) ; then
+              IGCM_sys_Cp ${file_out} ${SUBMIT_DIR}/Debug
+            fi
+
+            if [ X${Pack} = Xtrue ] ; then
+              eval IGCM_sys_PutBuffer_Out ${file_out} $Path_OUT/${file_out}
+            else
+              eval IGCM_sys_Put_Out ${file_out} $Path_OUT/${file_out}
+            fi
+
+            eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_out}" > /dev/null 2>&1
+          else
+            for file in ${list_file[@]} ; do
+              if ( ${ExecutionFail} ) ; then
+                IGCM_sys_Cp ${file} ${SUBMIT_DIR}/Debug/${PREFIX}_${file}
+              fi
+
+              if [ X${Pack} = Xtrue ] ; then
+                eval IGCM_sys_PutBuffer_Out ${file} $Path_OUT/${PREFIX}_${file}
+              else
+                eval IGCM_sys_Put_Out ${file} $Path_OUT/${PREFIX}_${file}
+              fi
+
+              eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&1
+            done
+          fi
+        else
+          if ( [ -f ${file_in}_0000 ] || [ -f ${file_in}0 ] ) ; then
+            eval IGCM_sys_Mv ${file_in}* ${file_in}
+          fi
+
+          if ( ${ExecutionFail} ) ; then
+            IGCM_sys_Cp ${file_in} ${SUBMIT_DIR}/Debug/${file_out}
+          fi
+
+          if [ X${Pack} = Xtrue ] ; then
+            eval IGCM_sys_PutBuffer_Out ${file_in} $Path_OUT/${file_out}
+          else
+            eval IGCM_sys_Put_Out ${file_in} $Path_OUT/${file_out}
+          fi
+          eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1
+        fi
+        cd ..
+        done
+       fi 
+      done
+    fi
+
+    # Save Restarts files
+    #--------------------
+    IGCM_debug_Print 2 "Save Restart files for ${comp} : ${compname} component."
+    IGCM_card_DefineArrayFromOption ${card} RestartFiles List
+    ListFilesName=${compname}_RestartFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+    if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != XNONE ] ) ; then
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+      (( i=0 ))
+      until [ $i -ge $NbFiles ]; do
+        eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        eval file_in=${file_in_}
+
+        (( i_ = i+1 ))
+        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_out=${file_out_}
+
+        (( i_ = i+2 ))
+        eval file_outin_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_outin=${file_outin_}
+
+        generic_restart_file_name_in=$(    basename ${file_in} .nc )
+        generic_restart_file_name_out=$(   basename ${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} .nc )
+        generic_restart_file_name_outin=$( basename ${file_outin} .nc )
+
+        if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+
+	    generic_restart_file_name_in_tmp=${generic_restart_file_name_in}
+           for (( pool_member_rank=0 ; pool_member_rank < $config_Ensemble_PoolSize ; pool_member_rank++ ))
+           do
+            whole_ensemble_rank=$(($config_Ensemble_PoolSize*$1+$pool_member_rank))
+            Path_OUT="\${R_BUF_${comp}_R}/MEMBER_$whole_ensemble_rank"
+            cd MEMBER_$whole_ensemble_rank
+            if [ X${comp} = XCPL ] ; then
+              echo "Arnaud"
+              generic_restart_file_name_in="${generic_restart_file_name_in_tmp}__$pool_member_rank"
+	      file_in="${generic_restart_file_name_in}.nc"	      
+
+              if [ X${file_in} = Xsstoc__${pool_member_rank}.nc ] ; then
+
+               for varname in O_SSTSST OIceFrc O_AlbIce O_TepIce O_OCurx1 O_OCury1 O_OCurz1
+               do
+               ncrename -O -v .${varname}__${pool_member_rank},${varname} ${file_in}
+               done
+
+              else
+
+             for varname in COTAUXXU COTAUYYU COTAUZZU COTAUXXV COTAUYYV COTAUZZV COTOTRAI COTOTSNO COTOTEVA COICEVAP COQSRMIX COQNSMIX COSHFICE CONSFICE CODFLXDT COCALVIN COLIQRUN COWINDSP COTAUMOD
+             do
+             ncrename -O -v .${varname}__${pool_member_rank},${varname} ${file_in}
+             done
+             fi
+            fi
+            echo $generic_restart_file_name_in
+	    echo $file_in
+
+        nb_restart_file=$( ls ${generic_restart_file_name_in}_????.nc 2>/dev/null | wc -l )
+        if [ ${nb_restart_file} -gt 1 ] ; then
+          j=0                                     # BASH LINE NOT NEEDED
+          # BASH for j4 in in $( eval echo {0000..$(( nb_restart_file - 1 ))} ) ; do
+          until [ $j -ge ${nb_restart_file} ]; do # BASH LINE NOT NEEDED
+            j4=${j}                               # BASH LINE NOT NEEDED
+            if [ X${Pack} = Xtrue ] ; then
+              eval IGCM_sys_PutBuffer_Rest ${generic_restart_file_name_in}_${j4}.nc $Path_OUT/${generic_restart_file_name_out}_${j4}.nc
+            else
+              eval IGCM_sys_Put_Rest ${generic_restart_file_name_in}_${j4}.nc \${R_OUT_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc
+            fi
+            if [ ! ${file_in} = ${file_outin} ] ; then
+              if ( ${ExitFlag} ) ; then
+                echo "IGCM_sys_Mv ${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_outin}_${j4}.nc not executed."
+              else
+                IGCM_sys_Mv ${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_outin}_${j4}.nc
+              fi
+            fi
+            (( j=j+1 ))                           # BASH LINE NOT NEEDED
+          done
+        else
+          if [ X${Pack} = Xtrue ] ; then
+            eval IGCM_sys_PutBuffer_Rest ${file_in} $Path_OUT/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out}
+          else
+            eval IGCM_sys_Put_Rest ${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out}
+          fi
+          if [ ! ${file_in} = ${file_outin} ] ; then
+            if ( ${ExitFlag} ) ; then
+              echo "IGCM_sys_Mv ${file_in} ${file_outin} not executed."
+            else
+              IGCM_sys_Mv ${file_in} ${file_outin}
+            fi
+          fi
+        fi
+            cd ..
+            done
+            fi
+            (( i=i+3 ))
+          done
+    else
+      if [ X${FileName0} != XNONE ] ; then
+        IGCM_debug_Exit "IGCM_comp_Finalize : No file in restart list for ${compname}."
+      else
+        IGCM_debug_Print 1 "IGCM_comp_Finalize : NONE specified in Restart List ${compname}."
+      fi
+    fi
+
+    # Save Output files
+    #------------------
+    IGCM_debug_Print 2 "Save Output files for ${comp} : ${compname} component."
+    IGCM_card_DefineArrayFromOption ${card} OutputFiles List
+    ListFilesName=${compname}_OutputFiles_List
+    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+
+    if [ X${FileName0} != X${NULL_STR} ] ; then
+      eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+      (( i=0 ))
+      until [ $i -ge $NbFiles ]; do
+        SaveOnArchive=true
+        eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1
+        eval file_in=${file_in_}
+        (( i_ = i+1 ))
+        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_out=${file_out_}
+        #
+        # Override file_out path remplacing R_SAVE by R_BUFR
+        #
+        if [ X${Pack} = Xtrue ] ; then
+          file_out=$( echo $file_out | sed "s:^$R_SAVE:$R_BUFR:" )
+        fi
+        #
+        # Not necessarily the best option. /!\ Potential side effects /!\
+        #
+        (( i_ = i+2 ))
+        eval flag_post=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        #
+
+         if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+            cd XIOS
+         fi
+
+        generic_file_name=$( basename ${file_in} .nc )
+        nb_rebuild_file=$( ls | grep "^${generic_file_name}_[0-9]*.nc" | wc -l )
+        #
+        if ( [ ${nb_rebuild_file} -eq 1 ] && [ -f ${generic_file_name}_0000.nc ] ) ; then
+          IGCM_debug_Print 2 "Parallelism with 1 file. Rebuilding ${file_in} not needed"
+          IGCM_sys_Mv ${generic_file_name}_0000.nc ${file_in}
+        elif [ ${nb_rebuild_file} -gt 1 ] ; then
+          IGCM_debug_Print 2 "Parallelism detected and rebuilding ${file_in} is needed"
+          if [ X${AsynchronousRebuild} = Xfalse ] ; then
+            IGCM_debug_Print 2 "Rebuilding ${file_in} online"
+            #
+            # for output.abort file, let use rebuild_NEMO : 13s instead of 20 mn.
+            if [ ${file_in} = output.abort.nc ] ; then
+              IGCM_sys_rebuild_nemo ${generic_file_name} ${nb_rebuild_file} "nc" ${generic_file_name}_[0-9]*.nc
+            else
+              IGCM_sys_rebuild ${file_in} ${generic_file_name}_????.nc
+            fi
+          else
+            IGCM_debug_Print 2 "Preparing offline rebuild for ${file_in}"
+            IGCM_sys_Mv ${generic_file_name}_????.nc ${RUN_DIR}/REBUILD_${PeriodDateBegin}
+
+            # Prepare the shell dedicated to offline rebuild
+            if [ $DRYRUN -le 1 ]; then
+              if [ ${file_in} = histstn.nc ] ; then
+                echo "IGCM_sys_rebuild_station ${file_in} ${generic_file_name}_*.nc" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+              else
+                echo "IGCM_sys_rebuild ${file_in} ${generic_file_name}_[0-9]*.nc" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+              fi
+              echo "IGCM_debug_Verif_Exit" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+            fi
+            #
+            # Load Patch we need to apply and apply
+            if [ $DRYRUN -le 1 ]; then
+              if [ X$( eval echo \${${compname}_${flag_post}_Patches[0]} ) !=  X${NULL_STR} ]; then
+                for Patch in $( eval echo \${${compname}_${flag_post}_Patches[*]} ) ; do
+                  echo ". ${libIGCM_POST}/libIGCM_post/IGCM_${Patch}.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+                  echo "IGCM_${Patch} ${file_in}                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+                  echo "IGCM_debug_Verif_Exit                           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+                done
+              fi
+            fi
+            #
+            if [ $DRYRUN -le 1 ]; then
+              if [ X${Pack} = Xtrue ] ; then
+                rebuildedActionsList[${#rebuildedActionsList[*]}]="IGCM_sys_PutBuffer_Out ${file_in} ${file_out}"
+              else
+                rebuildedActionsList[${#rebuildedActionsList[*]}]="IGCM_sys_Put_Out ${file_in} ${file_out}"
+              fi
+              rebuildedActionsList[${#rebuildedActionsList[*]}]="IGCM_debug_Verif_Exit"
+              rebuildedActionsList[${#rebuildedActionsList[*]}]="IGCM_sys_Rm ${generic_file_name}_[0-9]*.nc"
+            fi
+            SaveOnArchive=false
+          fi
+        fi
+        #
+        if [ ${SaveOnArchive} = true ] ; then
+          #
+          # Rebuild has been done online or it was not needed
+          #
+          # If we need to apply a patch we use TMP DIRECTORY before ARCHIVING if asynchronous rebuild is on
+          #
+          thereisapatch=$( eval echo \${${compname}_${flag_post}_Patches[0]} )
+          if ( [ ! X${thereisapatch} = X${NULL_STR} ] && [ ! X${thereisapatch} = X ] && [ X${AsynchronousRebuild} = Xtrue ] && [ -f ${file_in} ] ) ; then
+            IGCM_sys_Mv ${file_in} ${RUN_DIR}/REBUILD_${PeriodDateBegin}
+            eval FileToBeDeleted[${#FileToBeDeleted[@]}]=REBUILD_${PeriodDateBegin}/${file_in} > /dev/null 2>&1
+            #
+            if [ $DRYRUN -le 1 ]; then
+              for Patch in $( eval echo \${${compname}_${flag_post}_Patches[*]} ) ; do
+                echo ". ${libIGCM_POST}/libIGCM_post/IGCM_${Patch}.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+                echo "IGCM_${Patch} ${file_in}                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+                echo "IGCM_debug_Verif_Exit                           " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+              done
+              #
+              if [ X${Pack} = Xtrue ] ; then
+                echo "IGCM_sys_PutBuffer_Out ${file_in} ${file_out}   " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+              else
+                echo "IGCM_sys_Put_Out ${file_in} ${file_out}         " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+              fi
+              echo "IGCM_debug_Verif_Exit                             " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+              #
+            fi
+          else
+            #
+            # No Patch, No Asynchronous rebuild, online rebuild has been done or was not needed
+            #
+            if [ X${Pack} = Xtrue ] ; then
+              IGCM_sys_PutBuffer_Out ${file_in} ${file_out}
+            else
+              IGCM_sys_Put_Out ${file_in} ${file_out}
+            fi
+            eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1
+            if [ ${nb_rebuild_file} -gt 1 ] ; then
+              for DelFile in $( ls | grep "${generic_file_name}[_0-9]*.nc" ) ; do
+                eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1
+              done
+            fi
+          fi
+        fi
+        (( i=i+3 ))
+         if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+            cd ..
+         fi
+      done
+    fi
+    echo
+  done
+  # Append the sync call and the copy sequence to the IGCM_FlushRebuild function if needed
+  if [ ${#rebuildedActionsList[*]} -ne 0 ] ; then
+    echo "IGCM_sys_sync              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+    i=0
+    until [ ${i} -ge ${#rebuildedActionsList[*]} ]; do
+      echo ${rebuildedActionsList[$i]} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      (( i=i+1 ))
+    done
+  fi
+  IGCM_debug_PopStack "IGCM_comp_Finalize"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_config/libIGCM_config.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_config/libIGCM_config.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_config/libIGCM_config.ksh	(revision 5899)
@@ -0,0 +1,1486 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1546                                     $ Revision of last commit
+# $Author:: acosce                                     $ Author of last commit
+# $Date:: 2021-02-09 14:28:14 +0100 (Tue, 09 Feb 2021) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#===================================
+function IGCM_config_CommonConfiguration
+{
+  IGCM_debug_PushStack "IGCM_config_CommonConfiguration" $@
+
+  # Debug Print :
+  [ ${Verbosity} -gt 0 ] && echo
+  IGCM_debug_Print 1 "IGCM_config_CommonConfiguration" $@
+
+  # config.card path
+  configCardPath=$1
+
+  #==================================
+  typeset option auxprint
+
+  #==================================
+  # Read UserChoices section:
+  [ ${Verbosity} -gt 0 ] && echo
+  IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices"
+
+  IGCM_card_DefineArrayFromSection ${configCardPath} UserChoices
+  for option in ${config_UserChoices[*]} ; do
+    IGCM_card_DefineVariableFromOption ${configCardPath} UserChoices ${option}
+    eval auxprint=\${config_UserChoices_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+  done
+
+  # Set variables with shorter names on some variables which  
+  # are used in the executable name in config.card
+  ResolAtm=${config_UserChoices_ResolAtm}
+  ResolOce=${config_UserChoices_ResolOce}
+  ConfChem=${config_UserChoices_ConfChem}
+  OptMode=${config_UserChoices_OptMode}
+
+  #==================================
+  # Read Ensemble section:
+  [ ${Verbosity} -gt 0 ] && echo
+  IGCM_debug_Print 1 "DefineArrayFromOption  : config_Ensemble"
+
+  IGCM_card_DefineArrayFromSection ${configCardPath} Ensemble
+  for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${configCardPath} Ensemble ${option}
+    eval auxprint=\${config_Ensemble_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+  done
+
+  #==================================
+  # Read Post section:
+  [ ${Verbosity} -gt 0 ] && echo
+  IGCM_debug_Print 1 "DefineArrayFromOption : config_Post"
+
+  IGCM_card_DefineArrayFromSection ${configCardPath} Post
+  for option in ${config_Post[*]} ; do
+    IGCM_card_DefineVariableFromOption ${configCardPath} Post ${option}
+    eval auxprint=\${config_Post_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+  done
+  [ ${Verbosity} -gt 0 ] && echo
+
+  #==================================
+  # Define default value to keep compatibility with previous card: means before changes due to TGCC
+  # Apply some overrules to ensure proper usage of computing centres resources
+  #
+
+  # if RebuildFrequency is not define in config.card - we initilize it to NONE 
+  if [ X${config_Post_RebuildFrequency} = X ] ; then 
+      config_Post_RebuildFrequency=NONE
+  fi
+
+  if [ X${PackDefault} = Xtrue ] ; then
+    if [ X${config_UserChoices_SpaceName} = XTEST ]; then
+      # TEST simulations will not be packed and will stay on SCRATCHDIR filesystem
+      IGCM_debug_Print 1 "SpaceName=TEST. OVERRULE PackFrequency to NONE"
+      config_Post_PackFrequency=NONE
+    else
+      # Default to RebuildFrequency if nothing has been set up related to PackFrequency
+      [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency}
+    fi
+  else
+    # If we DO NOT apply pack in this computing center
+    config_Post_PackFrequency=NONE
+  fi
+
+  #====================================================
+  # Define ARCHIVE : Dedicated to large files
+  # Define STORAGE : Dedicated to small/medium files
+  # Define R_OUT   : Output tree located on ARCHIVE
+  # Define R_BUF   : Output tree located on STORAGE (files waiting treatment, or file lcoation when SpaceName=!PROD)
+  # Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+  # Define R_TMP   : A temporary space used by IGCM_debug_send_AMQP_msg__MAILTUNNEL. Must be persistent in between jobs
+  IGCM_sys_defineArchives
+
+  #====================================================
+  # R_SAVE : Job output directory
+  # R_BUFR : Job output buffered directory
+  # R_CMIP : Job output directory for CMIP6 standard files
+
+  if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
+    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+    if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_CMIP=${CMIP6_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    else
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_CMIP=${CMIP6_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    fi
+  else
+    if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+      R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    else
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+      R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    fi
+  fi
+
+  #====================================================
+  # Define R_OUT_KSH : Storage place for job output
+  # Define R_OUT_EXE : Storage place for binary used during simulation
+  R_OUT_KSH=${R_SAVE}/Out
+  R_OUT_EXE=${R_SAVE}/Exe
+
+  #====================================================
+  # Define R_BUF_KSH : Buffer place for job output
+  # Define R_BUF_EXE : Buffer place for binary used during simulation
+  R_BUF_KSH=${R_BUFR}/Out
+  R_BUF_EXE=${R_BUFR}/Exe
+
+  #====================================================
+  # Define REBUILD_DIR : where we store files needing rebuild process
+  REBUILD_DIR=${R_BUFR}/REBUILD
+  if [ ! X${TaskType} = Xchecking ] ; then
+    IGCM_sys_MkdirWork ${REBUILD_DIR}
+  fi
+
+  #====================================================
+  # DodsCopy : apply default value if not defined
+  if ( [ X${config_Post_DodsCopy} = X${NULL_STR} ] || [ X${config_Post_DodsCopy} = X ] ) ; then
+    config_Post_DodsCopy=TRUE
+  fi
+
+  #====================================================
+  # AtlasIPSL : apply default value if not defined
+  if ( [ X${config_Post_AtlasIPSL} = X${NULL_STR} ] || [ X${config_Post_AtlasIPSL} = X ] ) ; then
+    config_Post_AtlasIPSL=FALSE
+  fi
+
+  #====================================================
+  # ParserXIOS : apply default value if not defined
+  if ( [ X${config_Post_ParserXIOS} = X${NULL_STR} ] || [ X${config_Post_ParserXIOS} = X ] ) ; then
+    config_Post_ParserXIOS=FALSE
+  fi
+
+  #====================================================
+  # MetricsPCMDI : apply default value if not defined
+  if ( [ X${config_Post_MetricsPCMDI} = X${NULL_STR} ] || [ X${config_Post_MetricsPCMDI} = X ] ) ; then
+    config_Post_MetricsPCMDI=FALSE
+  fi
+
+  #====================================================
+  # IgnoreNonMonotonic : apply default value if not defined
+  if ( [ X${config_Post_IgnoreNonMonotonic} = X${NULL_STR} ] || [ X${config_Post_IgnoreNonMonotonic} = X ] ) ; then
+    config_Post_IgnoreNonMonotonic=FALSE
+  fi
+
+  #====================================================
+  # LightRestartPack : apply default value if not defined
+  if ( [ X${config_Post_LightRestartPack} = X${NULL_STR} ] || [ X${config_Post_LightRestartPack} = X ] ) ; then
+    config_Post_LightRestartPack=FALSE
+  fi
+
+  #====================================================
+  # dr2xmlIPSL : apply default value if not defined
+  if ( [ X${config_Post_dr2xmlIPSL} = X${NULL_STR} ] || [ X${config_Post_dr2xmlIPSL} = X ] ) ; then
+    config_Post_dr2xmlIPSL=FALSE
+  fi
+
+
+  #====================================================
+  # Define StackFileLocation : directory where we store stack files
+  # Define StackFileName : stack file containing call tree and instrumentation
+  # Stack file containing call tree will be stored there.
+  if ( $DEBUG_debug ) ; then
+    StackFileLocation=${StackFileLocation:=${R_BUF_KSH}}
+    [ ! -d ${StackFileLocation} ] && mkdir -p ${StackFileLocation}
+    if [ X${TaskType} = Xcomputing ]; then
+      StackFileName=computing.stack.$$
+    elif [ X${TaskType} = Xpost-processing ]; then
+      StackFileName=${Script_Post_Output}.stack.$$
+    elif [ X${TaskType} = Xchecking ]; then
+      StackFileName=checking.stack.$$
+    else
+      IGCM_debug_Exit "IGCM_config_CommonConfiguration unknown TaskType : ${TaskType}"
+      IGCM_debug_Verif_Exit
+    fi
+
+    # This boolean will trigger the filling of the stack
+    # Only now we know where things should be ...
+    # We don't fill the stack when we perform checking task
+    if [ ! X${TaskType} = Xchecking ] ; then
+      ActivateStackFilling=true
+    fi
+  fi
+
+  IGCM_debug_PopStack "IGCM_config_CommonConfiguration"
+}
+
+#===================================
+function IGCM_config_Initialize
+{
+  IGCM_debug_PushStack "IGCM_config_Initialize"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_config_Initialize"
+
+  # Test modipsl tree existence.
+  IGCM_sys_TestDir ${MODIPSL}
+  [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir"
+  IGCM_sys_TestDir ${libIGCM}
+  [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir"
+  IGCM_sys_TestDir ${R_EXE}
+  [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir"
+  IGCM_sys_TestDir ${SUBMIT_DIR}
+  [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir"
+
+  if ( $DEBUG_debug ) ; then
+    echo "Keep trace of inital SUBMIT_DIR : "
+    ls -lta ${SUBMIT_DIR}
+  fi
+
+  #==================================
+  # Read ListOfComponents section:
+  echo
+  IGCM_debug_Print 1 "DefineArrayFromSection : ListOfComponents"
+
+  IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card ListOfComponents
+  for comp in ${config_ListOfComponents[*]} ; do
+    IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/config.card ListOfComponents ${comp}
+  done
+  IGCM_debug_Print 3 ${config_ListOfComponents[*]}
+
+  #==================================
+  # Read Executable section:
+  IGCM_card_DefineArrayFromSection   ${SUBMIT_DIR}/config.card Executable
+
+  #==================================
+  # Read Restarts section:
+  # Restarts : Gerneral rule or local for each component.
+  echo
+  IGCM_debug_Print 1 "DefineArrayFromOption : config_Restarts"
+
+  IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Restarts
+  for option in ${config_Restarts[*]} ; do
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Restarts ${option}
+    eval auxprint=\${config_Restarts_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+  done
+
+  #==================================
+  # Define Job Outputs Name
+  echo
+  IGCM_debug_Print 2 "Define Script_Output_Prefix and Exe_Output"
+  Script_Output_Prefix=${config_UserChoices_Script_Output_Prefix:='Script_Output'}
+  IGCM_debug_Print 3 "Script_Output_Prefix = ${Script_Output_Prefix}"
+  Exe_Output=out_execution
+  IGCM_debug_Print 3 "Exe_Output           = ${Exe_Output}"
+
+  #===================================================================#
+  # Prepare variables available for ${COMP}.card and ${COMP}.driver   #
+  #             But available to any son functions                    #
+  #===================================================================#
+
+  # Convert yyyy-mm-dd date to gregorian yyyymmdd
+  DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
+  DateEnd=$(   IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd}   )
+  EndYear=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateEnd ) / 1000 ))
+  EndYear_p1=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateEnd ) / 1000 + 1 ))
+
+
+  # Period Length In Days between DateBegin and DateEnd
+  (( ExperienceLengthInDays=$( IGCM_date_DaysBetweenGregorianDate ${DateEnd} ${DateBegin} )  + 1 ))
+  if [ ${ExperienceLengthInDays} -lt 0 ] ; then
+    IGCM_debug_Print 1 "Problem with dates in config.card : ${DateEnd} < ${DateBegin} ! You must check that."
+    IGCM_debug_Exit "IGCM_config_Initialize" " Wrong Dates."
+    IGCM_debug_Verif_Exit
+  fi
+
+  # Day and Year of Initial State (Given in julian format)
+  InitDay=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateBegin ) % 1000 ))
+  InitYear=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateBegin ) / 1000 ))
+  InitYear_m1=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateBegin ) / 1000 - 1 ))
+
+  #================================================================#
+  #                  Test and Prepare directories                  #
+  #================================================================#
+
+  # ==> 4 kinds of input files :
+  #     1) R_INIT  : Initial State Files   (Etat0, carteveg)
+  #     2) R_BC    : Boundary Conditions   (Forcages, lai)
+  #     3) Parameters files (allready define through ${SUBMIT_DIR})
+  #     4) Restarts files   (allready define in IGCM_config_Initialize)
+
+  # Here we offer the possibility to redefine R_INIT, R_BC
+  # and PeriodNb through config.card
+  R_INIT=${config_UserChoices_R_INIT:=${R_IN}/INIT}
+  echo
+  IGCM_debug_Print 2 "(Re)Define R_INIT, R_BC and PeriodNb"
+  IGCM_debug_Print 3 "R_IN=${R_IN}"
+  IGCM_debug_Print 3 "R_INIT=${R_INIT}"
+  R_BC=${config_UserChoices_R_BC:=${R_IN}/BC}
+  IGCM_debug_Print 3  "R_BC=${R_BC}"
+  PeriodNb=${config_UserChoices_PeriodNb:=${PeriodNb}}
+  IGCM_debug_Print 3  "Loop in main Job with ${PeriodNb} period(s)"
+
+  # SD ADA SPECIFIC #
+  #      TO FIX     #
+  #IGCM_sys_TestDirArchive ${R_IN}
+  #[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive"
+
+  if ( ${FirstInitialize} ) ; then
+    IGCM_sys_MkdirArchive   ${R_SAVE}
+    [ ! ${config_Post_PackFrequency} = NONE ] && IGCM_sys_Mkdir ${R_BUFR}
+  else
+    IGCM_sys_TestDirArchive ${R_SAVE}
+    [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive ${R_SAVE}"
+
+    if [ ! ${config_Post_PackFrequency} = NONE ] ; then
+      IGCM_sys_TestDir ${R_BUFR}
+      [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir ${R_BUFR}"
+    fi
+
+    # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal"
+    IGCM_config_StateCheck
+
+    # And EXIT if not OK
+    IGCM_debug_Verif_Exit
+  fi
+
+  #====================================================
+  # Experience type : DEB(ug), DEV(elopment), RUN
+  if [ X${JobType} != XRUN ] ; then
+    echo
+    echo "===================================================="
+    echo "libIGCM JOB is NOT in RUN type mode."
+    echo "!! OUTPUT files will NOT be PROTECTED !!"
+    echo "Be carefull : you can ERASE the result of this job !"
+
+    case ${JobType} in
+    DEB)
+      echo "DEBUG mode : activation of 'set -vx' mode."
+      echo "DEBUG mode : no protection for output files."
+      echo "DEBUG mode : if active force asynchronous rebuild frequency to PeriodLength frequency."
+      ;;
+    DEV)
+      echo "DEVelopment mode : no protection for output files."
+      echo "DEVelopment mode : if active force asynchronous rebuild frequency to PeriodLength frequency."
+      ;;
+    esac
+
+    if ( [ X${config_Post_RebuildFrequency} != XNONE ] && [ ${DRYRUN} -eq 0 ] ) ; then
+      if [ X${config_Post_RebuildFrequency} != X${config_UserChoices_PeriodLength} ] ; then
+        echo "------------"
+        echo "WARNING : Job is NOT in RUN mode then we will force REBUILD Frequency"
+        echo "          to PeriodLength : ${config_UserChoices_PeriodLength}"
+        echo "------------"
+        config_Post_RebuildFrequency=${config_UserChoices_PeriodLength}
+      fi
+    fi
+    echo "===================================================="
+    echo
+  fi
+
+  IGCM_debug_PopStack "IGCM_config_Initialize"
+}
+
+#===================================
+function IGCM_config_DaysInPeriodLength
+{
+  IGCM_debug_PushStack "IGCM_config_DaysInPeriodLength"
+
+  typeset i
+
+  # Determine number of day(s) in PeriodLength :
+  case ${config_UserChoices_PeriodLength} in
+  *Y|*y)
+    PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[yY]//' )
+    echo
+    IGCM_debug_Print 2 "Number of years for PeriodLength : ${PeriodLengthInYears}"
+    PeriodLengthInDays=0
+    i=0
+    until [ $i -ge $PeriodLengthInYears ] ; do
+      (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInYear $(( year + i )) ) ))
+      (( i=i+1 ))
+    done
+    ;;
+  *M|*m)
+    PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[mM]//' )
+    echo
+    IGCM_debug_Print 2 "Number of months for PeriodLength : ${PeriodLengthInMonths}"
+    PeriodLengthInDays=0
+    i=0
+    until [ $i -ge $PeriodLengthInMonths ] ; do
+      if [ $(( 10#${month} + ${i} )) -lt 13 ] ; then
+        (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( 10#${month} + ${i} )) ) ))
+      else
+        (( PeriodLengthInDays  = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( 10#${month} + ${i} - 12 )) ) ))
+      fi
+      (( i=i+1 ))
+    done
+    ;;
+  *D|*d)
+    PeriodLengthInMonths=0
+    PeriodLengthInDays=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[dD]//' )
+    echo
+    IGCM_debug_Print 2 "Number of days for PeriodLength : ${PeriodLengthInDays}";;
+  *)
+    IGCM_debug_Exit "IGCM_config_DaysInPeriodLength " ${config_UserChoices_PeriodLength} " invalid period length : choose in *Y, *M, *D."
+    IGCM_debug_Verif_Exit ;;
+  esac
+
+  IGCM_debug_PopStack "IGCM_config_DaysInPeriodLength"
+}
+
+#===================================
+function IGCM_config_DateCoherency
+{
+  IGCM_debug_PushStack "IGCM_config_DateCoherency"
+
+  echo
+  IGCM_debug_Print 1 "IGCM_config_DateCoherency"
+  echo
+
+  typeset Length VerifiedPeriodDateBegin VerifiedPeriodDateEnd
+
+  # check coherency between (PeriodDateBegin, PeriodDateEnd) and (DateBegin, CumulPeriod, PeriodLength)
+  # DateBegin + CumulPeriod*PeriodLength = PeriodDateBegin
+  echo
+
+  case ${config_UserChoices_PeriodLength} in
+  *Y|*y)
+    Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} $(( ${CumulPeriod} * ${PeriodLengthInYears} ))Y )
+    ;;
+  *M|*m)
+    Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} $(( ${CumulPeriod} * ${PeriodLengthInMonths} ))M )
+    ;;
+  *D|*d)
+    Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} $(( ${CumulPeriod} * ${PeriodLengthInDays} ))D )
+    ;;
+  esac
+  VerifiedPeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${Length}-1 )
+
+  if [ ${VerifiedPeriodDateEnd} != ${PeriodDateEnd} ] ; then
+    IGCM_debug_Print 1 "From run.card PeriodDateEnd is not consistent with DateBegin and CumulPeriod."
+    IGCM_debug_Print 1 "We have DateBegin = ${DateBegin}"
+    IGCM_debug_Print 1 "We have CumulPeriod = ${CumulPeriod}"
+    IGCM_debug_Print 1 "We have PeriodDateEnd = ${PeriodDateEnd}"
+    IGCM_debug_Print 1 "We have VerifiedPeriodDateEnd = ${VerifiedPeriodDateEnd}"
+    IGCM_debug_Print 1 "You must have change run.card in an inconsistent way."
+
+    IGCM_debug_Exit "STOP here to avoid further issues."
+  fi
+
+  # PeriodDateBegin + PeriodLength = PeriodDateEnd
+  VerifiedPeriodDateBegin=$( IGCM_date_AddDaysToGregorianDate ${VerifiedPeriodDateEnd} $(( ${PeriodLengthInDays} * -1 )) )
+
+  IGCM_debug_PopStack "IGCM_config_DateCoherency"
+}
+
+#===================================
+function IGCM_config_StateCheck
+{
+  IGCM_debug_PushStack "IGCM_config_StateCheck"
+
+    #Test state of run in run.card
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState
+
+    if [ ${run_Configuration_PeriodState} = "Fatal" ] ; then
+      echo
+      IGCM_debug_Print 1 "!! Error in run.card with PeriodState : " ${run_Configuration_PeriodState} "!!"
+      IGCM_debug_Print 1 "Check the overall status of your simulation by visiting this page:"
+      IGCM_debug_Print 1 "https://hermes.ipsl.upmc.fr/static/simulation.detail.html?uid=${simuid}"
+      IGCM_debug_Print 1 "Then try running ${libIGCM}/clean_PeriodLenght.job to clean latest failed period"
+      IGCM_debug_Print 1 "Or try running ${libIGCM}/clean_latestPackperiod.job to clean lastest pack period."
+      IGCM_debug_Print 1 "Or use ${libIGCM}/purge_simulation.job to delete the full simulation."
+      IGCM_debug_Exit
+    elif [ $( echo ${run_Configuration_PeriodState} | grep Fatal | wc -l ) -eq 1 ] ; then
+      echo
+      IGCM_debug_Print 1 "!! Error in run.card with PeriodState : " ${run_Configuration_PeriodState} "!!"
+      IGCM_debug_Print 1 "Compute jobs has been stop because at least the above mentionned post-processing jobs fails."
+      IGCM_debug_Print 1 "Check post-processing jobs carefully by visiting this page:"
+      IGCM_debug_Print 1 "https://hermes.ipsl.upmc.fr/static/simulation.detail.html?uid=${simuid}"
+      IGCM_debug_Print 1 "Please visit that page to see how to fix issues:"
+      IGCM_debug_Print 1 "https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocGmonitor"
+      IGCM_debug_Print 1 "Then try running ${libIGCM}/clean_PeriodLenght.job to clean latest failed period"
+      IGCM_debug_Print 1 "Or try running ${libIGCM}/clean_latestPackperiod.job to clean latest pack period."
+      IGCM_debug_Print 1 "Or use ${libIGCM}/purge_simulation.job to delete the full simulation."
+      IGCM_debug_Exit
+    fi
+
+  IGCM_debug_PopStack "IGCM_config_StateCheck"
+}
+
+#===================================
+function IGCM_config_Check
+{
+  IGCM_debug_PushStack "IGCM_config_Check"
+
+  # If one of the following modulo is not zero :
+  # we will issue an error then explain and exit in
+  # AA_job IGCM_debug_Verif_Exit call before binary submission
+
+  echo
+  IGCM_debug_Print 1 "IGCM_config_Check"
+  echo
+
+  typeset i
+
+  # Check RebuildFrequency against key frequencies : PeriodLength ; PackFrequency ; TimeSeriesFrequency ; SeasonalFrequency
+  if ( [ ! X${config_Post_RebuildFrequency} = X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = XNONE ] ) ; then
+    AsynchronousRebuild=true
+    IGCM_debug_Print 1 "Asynchronous rebuild has been activated."
+    echo
+    # modulo (RebuildFrequency and PeriodLength/TimeSeriesFrequency/SeasonalFrequency) must be zero
+    IGCM_debug_Print 1 "Check coherence between RebuildFrequency and PeriodLength"
+    IGCM_post_CheckModuloFrequency config_Post_RebuildFrequency config_UserChoices_PeriodLength
+    IGCM_debug_Print 1 "Check coherence between PackFrequency and RebuildFrequency"
+    IGCM_post_CheckModuloFrequency config_Post_PackFrequency config_Post_RebuildFrequency
+    IGCM_debug_Print 1 "Check coherence between TimeSeriesFrequency and RebuildFrequency"
+    IGCM_post_CheckModuloFrequency config_Post_TimeSeriesFrequency config_Post_RebuildFrequency
+    IGCM_debug_Print 1 "Check coherence between SeasonalFrequency and RebuildFrequency"
+    IGCM_post_CheckModuloFrequency config_Post_SeasonalFrequency config_Post_RebuildFrequency
+  else
+    AsynchronousRebuild=false
+    IGCM_debug_Print 1 "Asynchronous rebuild has not been activated"
+    IGCM_debug_Print 1 "Proceed with standard post-treatment pathway"
+    echo
+    #modulo (PeriodLength and TimeSeriesFrequency/SeasonalFrequency) must be zero
+    IGCM_debug_Print 1 "Check coherence between TimeSeriesFrequency and PeriodLength"
+    IGCM_post_CheckModuloFrequency config_Post_TimeSeriesFrequency config_UserChoices_PeriodLength
+    IGCM_debug_Print 1 "Check coherence between SeasonalFrequency and PeriodLength"
+    IGCM_post_CheckModuloFrequency config_Post_SeasonalFrequency   config_UserChoices_PeriodLength
+  fi
+
+  # Check PackFrequency against other key frequencies
+  # Modulo (PackFrequency and TimeSeriesFrequency/SeasonalFrequency and PeriodLenght) must be zero
+  if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then
+    Pack=true
+    #
+    IGCM_debug_Print 1 "Check coherence between PackFrequency and PeriodLength"
+    IGCM_post_CheckModuloFrequency config_Post_PackFrequency config_UserChoices_PeriodLength
+    IGCM_debug_Print 1 "Check coherence between TimeSeriesFrequency and PackFrequency"
+    IGCM_post_CheckModuloFrequency config_Post_TimeSeriesFrequency config_Post_PackFrequency
+    IGCM_debug_Print 1 "Check coherence between SeasonalFrequency and PackFrequency"
+    IGCM_post_CheckModuloFrequency config_Post_SeasonalFrequency config_Post_PackFrequency
+  else
+    Pack=false
+  fi
+
+  # modulo (TimeSeriesFrequency and all Chunck2D) must be zero
+  NbJob=${#CHUNCK2D_SIZE[@]}
+  i=0
+  until [ $i -ge $NbJob ]; do
+    value=${CHUNCK2D_SIZE[${i}]}
+    IGCM_debug_Print 1 "Check coherence between ${CHUNCK2D_NAME[${i}]} Chunck2D frequency and TimeSeriesFrequency"
+    IGCM_post_CheckModuloFrequency value config_Post_TimeSeriesFrequency
+    case ${value} in
+    *Y|*y) ;;
+    *)
+      IGCM_debug_Print 1 "All ChunckJob2D frequency must be expressed in year *Y|*y in comp.card"
+      IGCM_debug_Exit "This will stop the job" ;;
+    esac
+    (( i=i+1 ))
+  done
+
+  # modulo (TimeSeriesFrequency and all Chunck3D) must be zero
+  NbJob=${#CHUNCK3D_SIZE[@]}
+  i=0
+  until [ $i -ge $NbJob ]; do
+    value=${CHUNCK3D_SIZE[${i}]}
+    IGCM_debug_Print 1 "Check coherence between ${CHUNCK3D_NAME[${i}]} Chunck3D frequency and TimeSeriesFrequency"
+    IGCM_post_CheckModuloFrequency value config_Post_TimeSeriesFrequency
+    case ${value} in
+    *Y|*y) ;;
+    *)
+      IGCM_debug_Print 1 "All ChunckJob3D frequency must be expressed in year *Y|*y in comp.card"
+      IGCM_debug_Exit "This will stop the job" ;;
+    esac
+    (( i=i+1 ))
+  done
+
+  # check to be sure there is enough space on temporary filesystems to run
+  echo
+  IGCM_debug_Print 1 "Check if there is enough space on temporary filesystem"
+  IGCM_sys_check_quota
+
+  # check to be sure that RUN_DIR_PATH, that will be removed is not pointing to an important directory
+  echo
+  IGCM_debug_Print 1 "Check where RUN_DIR_PATH variable is pointing to"
+  IGCM_sys_check_path
+
+
+  IGCM_debug_PopStack "IGCM_config_Check"
+}
+
+#===================================
+function IGCM_config_ConfigureExecution
+{
+  IGCM_debug_PushStack " IGCM_config_ConfigureExecution"
+
+  #echo
+  IGCM_debug_Print 1 " IGCM_config_ConfigureExecution"
+  #echo
+
+  typeset ExeNameIn ExeNameFirst CompNameFirst configCardPath comp i
+  typeset tempvar tempvarMPI tempvarNOD NbElts NbExec
+
+  # config.card path
+  configCardPath=$1
+
+  coreNumber=0
+  mpiTasks=0
+  openMPthreads=0
+  NbExec=0
+
+  OK_PARA_MPI=false
+  OK_PARA_OMP=false
+  OK_PARA_NOD=false
+  OK_PARA_MPMD=false
+
+  for comp in ${config_ListOfComponents[*]} ; do
+
+    # Manage component executable
+    IGCM_card_DefineArrayFromOption ${configCardPath} Executable ${comp}
+
+    eval ExeNameIn=\${config_Executable_${comp}[0]}
+
+    # NO order in config.card for parallelized values !
+    # just use suffix : MPI , OMP and NOD (for number of NODes.)
+
+    # NOD is the number of NODes allocated
+    eval ${comp}_PROC_NOD=0
+
+    # MPI is the number of MPI processus per nodes
+    eval ${comp}_PROC_MPI=0
+
+    # OMP is the number of OpenMP threads per MPI processus
+    eval ${comp}_PROC_OMP=0
+
+    # DEP is the factor to increase the number of cores per process
+    eval ${comp}_PROC_DEP=0
+
+    # DEDICATED is the flag to activate the use of dedicated node for XIOS server only
+    eval ${comp}_OK_DEDICATED=0
+
+    # Only if we really have an executable for the component :
+    if ( [ "X${ExeNameIn}" != X\"\" ] && [ "X${ExeNameIn}" != "Xinca.dat" ] ) ; then
+
+      IGCM_debug_Print 1 ${comp}
+
+      # Keep the first executable found and the first CompName
+      eval ExeNameFirst=${ExeNameIn}
+      CompNameFirst=${comp}
+
+      # Are we a second executable?
+      (( NbExec = NbExec + 1 ))
+
+      # set 1 MPI task, 1 OpenMP thread and 1 node as default
+      eval ${comp}_PROC_MPI=1
+      eval ${comp}_PROC_OMP=1
+      eval ${comp}_PROC_NOD=1
+      eval ${comp}_PROC_DEP=1
+
+      eval NbElts=\${#config_Executable_${comp}[@]}
+      if [ ${NbElts} -gt 2 ] ; then
+        #
+        # CURRENT METHOD TO SPECIFY MPI AND OMP RESSOURCES
+        #
+        i=2
+        while [ ${i} -lt ${NbElts} ] ; do
+          eval tempvar=\${config_Executable_${comp}[${i}]}
+          IGCM_debug_Print 2 ${tempvar}
+
+          if [ X${tempvar} = X ] ; then
+            IGCM_debug_Print 2 "Error reading MPI/OMP parameters !!!"
+            IGCM_debug_Exit "Check your config.card. Exit now"
+            IGCM_debug_Verif_Exit
+          fi
+
+          case ${tempvar} in
+          *[mM][pP][iI]*)
+            # Read MPI parameter for composante
+            eval ${comp}_PROC_MPI=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/MPI//" )
+            OK_PARA_MPI=true;;
+          *[oO][mM][pP]*)
+            # Read OMP parameter for composante
+            eval ${comp}_PROC_OMP=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/OMP//" )
+            ;;
+          *[nN][oO][dD]*)
+            # Read NOD (NumBer of Nodes) parameter for composante
+            eval ${comp}_PROC_NOD=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/NOD//" )
+            OK_PARA_NOD=true
+            OK_PARA_MPI=true
+            ;;
+            *[dD][eE][pP]*)
+            # Read DEP parameter for composante
+            eval ${comp}_PROC_DEP=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/DEP//" )
+            ;;
+            *[dD][eE][dD][iI][cC][aA][tT][eE][dD]*)
+            # Read DEDICATED parameter for composante
+            eval ${comp}_OK_DEDICATED=1
+          esac
+          (( i = i + 1 ))
+        done
+      else
+        #
+        # BACKWARD COMPATIBILITY NOT SUPPORTED ANYMORE
+        #
+        IGCM_debug_Exit "You are using a deprecated ressources specification mechanism in your config.card"
+        IGCM_debug_Exit "Please check : https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocEsetup#ThesectionExecutable"
+        IGCM_debug_Exit "Please modify ${configCardPath}"
+        exit
+      fi
+      if [ ${comp}_PROC_NOD -gt 1 ] ; then
+	    if ( [ ${comp}_PROC_MPI -gt 1 ] && [ ${comp}_PROC_OMP -gt 1 ] ) ; then 
+	      IGCM_debug_Print 2 "Error using MPI/OMP/NOD parameters !!!"
+	      IGCM_debug_Exit "It is not allowed to use MPI and OMP and NOD parameters for the same component"
+	      IGCM_debug_Exit "Check your config.card. Exit now"
+	      IGCM_debug_Verif_Exit
+	    fi
+	    if [ "${comp}" != "IOS" ] ; then
+	      IGCM_debug_Print 2 "Error using NOD parameter !!!"
+	      IGCM_debug_Exit "NOD parameter is only available for IOS component "
+	      IGCM_debug_Exit "Check your config.card. Exit now"
+	      IGCM_debug_Verif_Exit
+	    fi
+      fi
+      if ( [ ${comp}_OK_DEDICATED -eq 1 ] && [ "${comp}" != "IOS" ] ) ; then
+            IGCM_debug_Print 2 "Error using DEDICATED parameter !!!"
+            IGCM_debug_Exit "DEDICATED parameter is only available for IOS component "
+            IGCM_debug_Exit "Check your config.card. Exit now"
+            IGCM_debug_Verif_Exit
+      fi
+
+      eval tempvarMPI=\${${comp}_PROC_MPI}
+      eval tempvarNOD=\${${comp}_PROC_NOD}
+      eval tempvarOMP=\${${comp}_PROC_OMP}
+      eval tempvarDEP=\${${comp}_PROC_DEP}
+
+      # set OMP mode if more than 1 OMP thread.
+      [ ${tempvarOMP} -ge 2 ] && OK_PARA_OMP=true
+
+      # Number of OMP threads
+      [ ${openMPthreads} -lt ${tempvarOMP} ] && openMPthreads=${tempvarOMP}
+
+      # SUM UP NUMBER OF CORES
+      if [ ${comp}_PROC_NOD -gt 1 ] ; then 
+	  (( coreNumber = coreNumber + tempvarNOD * NB_CORE_PER_NODE ))
+      else
+	  (( coreNumber = coreNumber + tempvarMPI * tempvarNOD * tempvarOMP * tempvarDEP ))
+      fi
+      # SUM UP NUMBER OF MPI TASKS
+      (( mpiTasks = mpiTasks + tempvarMPI * tempvarNOD ))
+    fi
+  done
+
+  # MANDATORY FOR THE OPA9.DRIVER. USED TO EDIT OPA NAMELIST
+  # WE SHOULD PLANIFY NUM_PROC_??? DEPRECATION
+  NUM_PROC_CPL=${CPL_PROC_MPI}
+  NUM_PROC_OCE=${OCE_PROC_MPI}
+  NUM_PROC_ATM=${ATM_PROC_MPI}
+
+  # set MPMD mode if more than 2 executable names.
+  [ ${NbExec} -ge 2 ] && OK_PARA_MPMD=true  
+
+  # Define the execution type we are running in
+  if ( ${OK_PARA_MPMD} ) ; then
+    if ( ${OK_PARA_MPI} ) ; then
+      # MPMD always implies MPI
+      executionType=1
+    fi
+    if ( ${OK_PARA_OMP} ) ; then
+      # MPMD + MPI/OMP
+      executionType=2
+    fi
+  else
+    if ( ( ${OK_PARA_MPI} ) && ( ${OK_PARA_OMP} ) ) ; then
+      # SPMD + MPI/OMP
+      executionType=3
+    elif ( ( ${OK_PARA_MPI} ) && ( ! ${OK_PARA_OMP} ) ) ; then
+      # SPMD + MPI only
+      executionType=4
+    elif ( ( ! ${OK_PARA_MPI} ) && ( ${OK_PARA_OMP} ) ) ; then
+      # SPMD + OMP only
+      executionType=5
+    elif ( ( ! ${OK_PARA_MPI} ) && ( ! ${OK_PARA_OMP} ) ) ; then
+      # SEQUENTIAL THEN
+      executionType=6
+      coreNumber=1
+    fi
+  fi
+
+  IGCM_debug_Print 1 "MPI/OMP treatment coreNumber = ${coreNumber}"
+  IGCM_debug_Print 1 "MPI/OMP treatment mpiTasks = ${mpiTasks}"
+  IGCM_debug_Print 1 "MPI/OMP treatment openMPthreads = ${openMPthreads}"
+  IGCM_debug_Print 1 "MPI/OMP treatment executionType = ${executionType}"
+
+  IGCM_debug_PopStack "IGCM_config_ConfigureExecution"
+}
+
+#===================================
+function IGCM_config_PeriodStart
+{
+  IGCM_debug_PushStack "IGCM_config_PeriodStart"
+
+  echo
+  IGCM_debug_Print 1 "IGCM_config_PeriodStart"
+  echo
+
+  if ( ${FirstInitialize} ) ; then
+    #================================================#
+    #         Initialize date/period information     #
+    #================================================#
+
+    IGCM_date_GetYearMonthDay ${DateBegin} year month day
+    IGCM_config_DaysInPeriodLength
+
+    PeriodDateBegin=${DateBegin}
+    PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( ${PeriodLengthInDays} - 1 )) )
+    CumulPeriod=1
+
+    #=================================================#
+    #              Write updated run.card             #
+    #=================================================#
+
+    #Correct run.card Configuration for this period
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin ${PeriodDateBegin}
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd ${PeriodDateEnd}
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod ${CumulPeriod}
+    if [ X$( grep "SubmitPath" ${SUBMIT_DIR}/run.card ) != X ] ; then
+      IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration SubmitPath ${SUBMIT_DIR}
+    fi
+
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Running"
+
+  else
+    #================================================#
+    #         The file run.card allready exist       #
+    #================================================#
+
+    # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal"
+    IGCM_config_StateCheck
+    # And EXIT if not OK
+    IGCM_debug_Verif_Exit
+
+    #===================================#
+    #        Read updated run.card      #
+    #===================================#
+
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod
+
+    PeriodDateBegin=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateBegin} )
+    PeriodDateEnd=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateEnd} )
+    CumulPeriod=${run_Configuration_CumulPeriod}
+
+    LastPeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate $( IGCM_date_ConvertFormatToGregorian ${PeriodDateBegin} ) -1 )
+
+    if [ ${Period} = 1 ]; then
+      # save last Job output and current run.card
+      typeset Potential
+      IGCM_sys_Cd ${SUBMIT_DIR}
+      #
+      IGCM_debug_Print 2 "Save previous ksh job output"
+      for Potential in $( ls ${Script_Output_Prefix}_${config_UserChoices_JobName}.[0-9][0-9][0-9][0-9][0-9][0-9] ) ; do
+        if [ X${Pack} = Xtrue ] ; then
+          ( IGCM_sys_TestFileBuffer  ${R_BUF_KSH}/${Potential} ) || IGCM_sys_Cp ${Potential} ${R_BUF_KSH}/${Potential}.$$
+        else
+          ( IGCM_sys_TestFileArchive ${R_OUT_KSH}/${Potential} ) || IGCM_sys_Put_Out ${Potential} ${R_OUT_KSH}/${Potential}.$$ NOMOVE
+          IGCM_debug_Print 1 "Save of previous ksh job output is not done for Pack=false"
+        fi
+      done
+
+      #
+      IGCM_debug_Print 2 "Save current run.card"
+      IGCM_card_CheckConflict run.card
+
+      if [ X${Pack} = Xtrue ] ; then
+        IGCM_sys_Cp ${SUBMIT_DIR}/run.card ${R_BUF_KSH}/run.card
+      else
+        IGCM_sys_Put_Out ${SUBMIT_DIR}/run.card ${R_OUT_KSH}/run.card NOMOVE
+	IGCM_debug_Print 1 "Save of run.card is not done for Pack=false"
+      fi
+      #
+      IGCM_sys_Cd ${RUN_DIR}
+    else
+      unset FileToBeDeleted
+    fi
+
+    # Determine number of day(s) in PeriodLength
+    IGCM_date_GetYearMonthDay $PeriodDateBegin year month day
+    IGCM_config_DaysInPeriodLength
+
+    # Check coherency between (PeriodDateBegin, PeriodDateEnd) and (DateBegin, CumulPeriod, PeriodLength)
+    IGCM_config_DateCoherency
+    # And EXIT if not OK
+    IGCM_debug_Verif_Exit
+
+    # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal"
+    IGCM_config_StateCheck
+    # And EXIT if not OK
+    IGCM_debug_Verif_Exit
+
+    # We can say we are "Running" now.
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Running"
+  fi
+
+  # BEGIN: SHOULD GO IN A FUNCTION FROM libIGCM_date.ksh
+  # Compute year_m1 and year_p1 (year minus 1Y and year plus 1Y)
+  year_m1=$(( year - 1 ))
+  year_p1=$(( year + 1 ))
+  # Compute month_m1 (month minus 1M)
+  # Compute yyyymm_m1 (yyyymm minus 1M)
+  month_m1=$(( 10#${month} - 1 ))
+  if [ ${month_m1} = 0 ]; then
+    month_m1=12
+    yyyymm_m1=${year_m1}12
+  elif [ ${month_m1} -le 9 ]; then
+    month_m1=0${month_m1}
+    yyyymm_m1=${year}${month_m1}
+  else
+    yyyymm_m1=${year}${month_m1}
+  fi
+  # Compute month_p1 (month plus 1M)
+  # Compute yyyymm_p1 (yyyymm plus 1M)
+  month_p1=$(( 10#${month} + 1 ))
+  if [ ${month_p1} = 13 ]; then
+    month_p1=01
+    yyyymm_p1=${year_p1}01
+  elif [ ${month_p1} -le 9 ]; then
+    month_p1=0${month_p1}
+    yyyymm_p1=${year}${month_p1}
+  else
+    yyyymm_p1=${year}${month_p1}
+  fi
+
+
+  #===================================================================#
+  # Calculate CyclicYear to be used for looping over a given forcing  #
+  # period. Add CyclicBegin and CyclicEnd in config.card UserChoices. #
+  #===================================================================#
+
+  # To use the variable CyclicYear, one must add in config.card CyclicBegin and CyclicEnd.
+  # CyclicBegin is the first year in the cycle. CyclicEnd is the last year included in the cycle.
+  if ( [ ! X${config_UserChoices_CyclicBegin} = X ] && [ ! X${config_UserChoices_CyclicEnd} = X ] ) ; then
+    CycleNb=$(( ${config_UserChoices_CyclicEnd} - ${config_UserChoices_CyclicBegin} + 1 ))
+    #CyclicYear_p1=  #NOTDEFINED
+  
+    # For current year
+    yeartmp=$year
+    diffy=$(( $yeartmp - ${config_UserChoices_CyclicBegin} ))
+    while [ $diffy -lt 0 ] ; do
+      yeartmp=$(( ${yeartmp} + ${CycleNb} ))
+      diffy=$(( $yeartmp - ${config_UserChoices_CyclicBegin} ))
+    done
+    CyclicYear=$(( ( ${diffy} % ${CycleNb} ) + ${config_UserChoices_CyclicBegin} ))
+
+    # For next coming year
+    CyclicYear_p1=$(( CyclicYear + 1 ))
+
+    # For previous year
+    CyclicYear_m1=$(( CyclicYear - 1 ))
+
+    IGCM_debug_Print 1 "CyclicYear   = ${CyclicYear}, current year=$year"
+    IGCM_debug_Print 1 "CyclicYear_p1 = ${CyclicYear_p1}, CyclicYear_m1 = ${CyclicYear_m1} "
+  else
+    CyclicYear="ERROR_CyclicYear_Variable_Not_Defined"
+    CyclicYear_p1="ERROR_CyclicYear_p1_Variable_Not_Defined"
+    IGCM_debug_Print 1 "CyclicYear wont be use without adding CyclicBegin and CyclicEnd in config.card"
+  fi
+
+  # END: SHOULD GO IN A FUNCTION FROM libIGCM_date.ksh
+
+  #===================================================================#
+  # Prepare variables available for ${COMP}.card and ${COMP}.driver   #
+  #             But available to any son functions                    #
+  #===================================================================#
+
+  # Period Length In Days between DateBegin and DateCurrent (at end of period == PeriodDateEnd !)
+  (( SimulationLengthInDays = $( IGCM_date_DaysBetweenGregorianDate ${PeriodDateEnd} ${DateBegin} ) + 1 ))
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_config_PeriodStart : Before Execution"
+  IGCM_debug_Print 1 "Year of simulation      : ${year}"
+  IGCM_debug_Print 1 "Month of simulation     : ${month}"
+  IGCM_debug_Print 1 "PeriodLengthInDays      : ${PeriodLengthInDays}"
+  IGCM_debug_Print 1 "PeriodDateBegin         : ${PeriodDateBegin}"
+  IGCM_debug_Print 1 "PeriodDateEnd           : ${PeriodDateEnd}"
+  IGCM_debug_Print 1 "SimulationLengthInDays  : ${SimulationLengthInDays}"
+  IGCM_debug_Print 1 "ExperienceLengthInDays  : ${ExperienceLengthInDays}"
+
+  #================================================================#
+  #         Prepare variables available for comp_finalyze          #
+  #================================================================#
+
+  # Period for save files
+  DatesPeriod=${PeriodDateBegin}_${PeriodDateEnd}
+
+  # Prefix for save files of this period
+  PREFIX=${config_UserChoices_JobName}_${DatesPeriod}
+
+  # List of files that will be deleted in RUN_DIR after run
+  [ -f stack ] && FileToBeDeleted[0]="stack"
+
+  # Test if the same run as already been saved :
+  if [ X${JobType} = XRUN ] ; then
+    if [ ${DRYRUN} -le 0 ] ; then
+      if ( IGCM_sys_TestFileBuffer ${R_BUF_KSH}/${PREFIX}_${Exe_Output} ) ; then
+        IGCM_debug_Exit "IGCM_config_PeriodStart" "You are currently re-running an old job."
+        IGCM_debug_Print 1 "Because of readonly permissions, you can't re-run a job when saved files"
+        IGCM_debug_Print 1 " are still in the ARCHIVE directory. You must deleted those files, or "
+        IGCM_debug_Print 1 " the whole ${R_SAVE} tree. See different clean_*.job in ${libIGCM} directory."
+        IGCM_debug_Print 1 " This exit has been initiated because at least ${R_BUF_KSH}/${PREFIX}_${Exe_Output} exists."
+        IGCM_debug_Verif_Exit
+      fi
+    fi
+  else
+    if ( IGCM_sys_TestFileBuffer ${R_BUF_KSH}/${PREFIX}_${Exe_Output} ) ; then
+      IGCM_debug_Print 1 "IGCM_config_PeriodStart" "RErun an old job. Allowed in DEBUG or DEV mode."
+    fi
+  fi
+
+  #================================================================#
+  #       Prepare variables available for binary execution         #
+  #       Call function for creation of run script                 #
+  #       Only done once per job                                   #
+  #================================================================#
+
+  if [ ${Period} -eq 1 ]; then
+    # Define the execution context (MPMD, SPMD, MPI/OMP ...)
+    IGCM_config_ConfigureExecution ${SUBMIT_DIR}/config.card
+    # Create the execution script for the current context
+    IGCM_sys_build_execution_scripts
+  fi
+
+  ExecutionFail=false
+
+  # Update the rabbitMQ queue
+  IGCM_debug_BigBro_Update
+
+  IGCM_debug_PopStack "IGCM_config_PeriodStart"
+}
+
+#===================================
+function IGCM_config_SaveSourceModifications
+{
+  IGCM_debug_PushStack "IGCM_config_SaveSourceModifications"
+
+  typeset ExeOutDateMax listVarEnv
+  ExeOutDateMax=$1
+
+  listVarEnv="ExeOutDateMax,R_OUT_EXE,PREFIX,SUBMIT_DIR"
+  IGCM_sys_RshMaster "\
+    . ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh; \
+    export ExeOutDateMax=${ExeOutDateMax};\
+    export R_OUT_EXE=${R_OUT_EXE};\
+    export PREFIX=${PREFIX};\
+    export SUBMIT_DIR=${SUBMIT_DIR};\
+    export listVarEnv=${listVarEnv};\
+    Script_Output=out_SaveSourceModifications;\
+    IGCM_sys_Qsub ${libIGCM}/SaveSourceModifications.job ${ExeOutDateMax} ${R_OUT_EXE} ${PREFIX} ${SUBMIT_DIR}"
+
+  IGCM_debug_PopStack "IGCM_config_SaveSourceModifications"
+}
+
+#===================================
+function IGCM_config_PeriodEnd
+{
+  IGCM_debug_PushStack "IGCM_config_PeriodEnd"
+
+  echo
+  IGCM_debug_Print 1 "IGCM_config_PeriodEnd"
+  echo
+
+  if [ ${DRYRUN} -le 1 ] ; then
+
+    IGCM_debug_Print 1 "Check components binary : size and creation date"
+
+    typeset LS_comp LS_bin ExeDate ExeCpuLog NextExeSize LastCompExeSize
+    typeset comp i
+    typeset ExeNameIn ExeNameOut UpdateExe ExeSecDateMax
+
+    #==================================#
+    #        Get last Exe Size         #
+    #==================================#
+
+    (( i=0 ))
+    if ( ${FirstInitialize} ) ; then
+      run_Log_LastExeSize=""
+      for comp in ${config_ListOfComponents[*]} ; do
+        run_Log_LastExeSize[$i]=0
+        (( i=i+1 ))
+      done
+    else
+      IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/run.card Log LastExeSize
+    fi
+    #==================================#
+    #         And Build ExeDate        #
+    #==================================#
+
+    # ExeDate = ATM_Jun_12_09:34-SRF_Jun_12_09:34-OCE_Jun_12_09:34-ICE_Jun_12_09:34-CPL_Jun_12_09:33
+    # Would be nice to have next line but no way to format ls output (need to ls -l --time-style "+%Y-%m-%dT%H:%M")
+    # ExeDate = ATM_2009-06-12T09:34+SRF_2009-06-12T09:34+OCE_2009-06-12T09:34+ICE_2009-06-12T09:34+CPL_2009-06-12T09:34
+    ExeDate=""
+    NextExeSize="( "
+    (( i=0 ))
+    UpdateExe=false
+    (( ExeSecDateMax = 0 ))
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      IGCM_debug_Print 3 ${comp}
+
+      eval ExeNameIn=\${config_Executable_${comp}[0]}
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      # Only if we really have an executable for the component :
+      if [ X${ExeNameIn} = X\"\" ] ; then
+        # If there is no exe file for this component
+        (( ExeSize=0 ))
+      else
+        eval ExeNameIn=${ExeNameIn}
+        LS_bin=${R_EXE}/${ExeNameIn}
+        IGCM_sys_FileSize ${LS_bin} ExeSize
+
+        set +A LS_comp -- $( LC_TIME=en_US ls -l ${LS_bin} )
+        if [ X${ExeDate} = X ] ; then
+          # First component exe date
+          ExeDate=${comp}_${LS_comp[5]}_${LS_comp[6]}
+        else
+          ExeDate=${ExeDate}-${comp}_${LS_comp[5]}_${LS_comp[6]}
+        fi
+        ExeDate=${ExeDate}_${LS_comp[7]}
+      fi
+
+      if [ ${i} -eq 0 ] ; then
+        # First component
+        NextExeSize="( "${ExeSize}
+      else
+        NextExeSize=${NextExeSize}", "${ExeSize}
+      fi
+      LastCompExeSize=${run_Log_LastExeSize[$i]}
+      (( i=i+1 ))
+
+      if [ ${ExeSize} -ne ${LastCompExeSize} ] ; then
+        if ( ${FirstInitialize} ) ; then
+          IGCM_debug_Print 1 "Save first ${ExeNameIn} in ${R_OUT_EXE} !"
+        else
+          IGCM_debug_Print 1 "${ExeNameIn} has changed in ${R_EXE} !"
+          IGCM_debug_Print 1 "Save latest ${ExeNameIn} in ${R_OUT_EXE} !"
+          FileToBeDeleted[${#FileToBeDeleted[@]}]=${ExeNameOut}
+        fi
+        IGCM_sys_Put_Out ${ExeNameOut} ${R_OUT_EXE}/${PREFIX}_${ExeNameIn} rw
+        UpdateExe=true
+
+        # SD : switch off for now
+        #IGCM_sys_GetDate_FichWork ${LS_bin} ExeSecDate
+        #if [ $ExeSecDateMax -lt $ExeSecDate ] ; then
+        #  ExeSecDateMax=$ExeSecDate
+        #fi
+      fi
+    done
+
+    # SD : switch off for now
+    #if ( ${UpdateExe} ) ; then
+    #  echo "Launch SaveSourceModifications."
+    #  IGCM_config_SaveSourceModifications ${ExeSecDateMax}
+    #fi
+
+    NextExeSize=${NextExeSize}" )"
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Log LastExeSize "${NextExeSize}"
+
+    if [ ${DRYRUN} -le 1 ] ; then
+      tail -1500 ${Exe_Output} > ${Exe_Output}_tail.txt
+      ExeCpuLog=$( gawk -f ${libIGCM}/libIGCM_sys/IGCM_add_out.awk ${Exe_Output}_tail.txt )
+      RET=$?
+      if [ $RET -eq 0 ] ; then
+        # ExeCpuLog variable contents 5 fields
+        echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${ExeCpuLog} ${ExeDate}" |   \
+          gawk '{printf("# %11d | %15s | %15s | %19s | %19s | %15.5f | %15.5f | %15.5f | %s\n", \
+            $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/run.card
+      fi
+      FileToBeDeleted[${#FileToBeDeleted[@]}]=${Exe_Output}_tail.txt
+    fi
+
+  fi
+
+  #==================================#
+  #         Save Job output          #
+  #==================================#
+  if [ X${Pack} = Xtrue ] ; then
+    IGCM_sys_PutBuffer_Out ${Exe_Output} ${R_BUF_KSH}/${PREFIX}_${Exe_Output}
+  else
+    IGCM_sys_Put_Out ${Exe_Output} ${R_OUT_KSH}/${PREFIX}_${Exe_Output}
+  fi
+  FileToBeDeleted[${#FileToBeDeleted[@]}]=${Exe_Output}
+
+  # All was right ? no ? then we stop.
+  IGCM_debug_Verif_Exit
+
+  # If all was OK, we can delete all files not necessary for next Job
+  echo
+  IGCM_debug_Print 1 "Files that will be deleted before next period-run : "
+
+  if [ ${DRYRUN} -le 2 ] ; then
+    for f in ${FileToBeDeleted[@]} ; do [ -f ${f} ] && ls -la $f ; [ -f ${f} ] && rm -f $f ; done
+  else
+    echo ${FileToBeDeleted[@]}
+  fi
+
+  # Send some accounting element to the user if CumulPeriod=3
+  if [ ${CumulPeriod} -eq 3 ] ; then
+    echo
+    IGCM_debug_Print 1 "Send email containing some accounting information : "
+
+    RealCpuTime=$( echo ${ExeCpuLog} | gawk '{print $3}' )
+
+    consumeHoursPerPeriod=$( echo "scale=6;${RealCpuTime}*${coreNumber}/3600" | bc )
+
+    consumeHoursPerWholeSimulation=$( echo "scale=6;${consumeHoursPerPeriod}/${PeriodLengthInDays}*${ExperienceLengthInDays}" | bc )
+
+    recommendedPeriodNb=$( echo "scale=6;${jobWarningDelay}/3600/${consumeHoursPerPeriod}*${coreNumber}" | bc )
+
+    IGCM_sys_SendMail Accounting
+  fi
+
+  #=================================================#
+  #         Modification of libIGCM behaviour       #
+  #=================================================#
+
+  # To use this function, one must copy libIGCM.card from ${libIGCM} directory
+  # and put it in ${SUBMIT_DIR} directory. After modifications of ${SUBMIT_DIR}/libIGCM.card,
+  # variables define inside [UserChanges] will be modified for next Period of libIGCM main loop.
+  if [ -f ${SUBMIT_DIR}/libIGCM.card ] ; then
+    echo
+    echo "########################################################################"
+    echo "!!!                 Modification of libIGCM behaviour                !!!"
+    echo
+
+    IGCM_debug_Print 1 "DefineArrayFromOption  : libIGCM_UserChanges in libIGCM.card"
+    IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/libIGCM.card UserChanges
+    IGCM_debug_Print 2 "libIGCM_UserChanges" ${libIGCM_UserChanges[*]}
+
+    # Special treatments for libIGCM internals
+    for option in ${libIGCM_UserChanges[*]} ; do
+      IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/libIGCM.card UserChanges ${option}
+
+      echo "We will change : ${option}."
+      eval echo "Previous value : " \${${option}}
+      eval echo "Change to : " \${libIGCM_UserChanges_${option}}
+
+      eval ${option}=\${libIGCM_UserChanges_${option}}
+
+      case ${option} in
+      config_UserChoices_DateEnd)
+        IGCM_debug_PrintVariables 1 config_UserChoices_DateEnd
+        DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
+
+        # Period Length In Days between DateBegin and DateEnd
+        (( ExperienceLengthInDays=$( IGCM_date_DaysBetweenGregorianDate ${DateEnd} ${DateBegin} )  + 1 ))
+        if [ ${ExperienceLengthInDays} -lt 0 ] ; then
+          IGCM_debug_Print 1 "Problem with dates in libIGCM.card : ${DateEnd} < ${DateBegin} ! You must check that."
+          IGCM_debug_Exit "IGCM_PeriodEnd have wrong dates."
+          IGCM_debug_Verif_Exit
+        fi
+        ;;
+      config_UserChoices_PeriodLength)
+        IGCM_debug_Print 1  "Change config_UserChoices_PeriodLength=${config_UserChoices_PeriodLength}"
+        ;;
+      PeriodNb)
+        IGCM_debug_Print 1  "Loop in main Job with ${PeriodNb} period(s)"
+        ;;
+      config_Post_RebuildFrequency)
+        IGCM_debug_Print 1  "Change config_Post_RebuildFrequency=${config_Post_RebuildFrequency} : IGCM_post_Configure"
+        IGCM_post_Configure
+        ;;
+      config_Post_TimeSeriesFrequency)
+        IGCM_debug_Print 1  "Change config_Post_TimeSeriesFrequency = ${config_Post_TimeSeriesFrequency} : IGCM_post_Configure"
+        IGCM_post_Configure
+        ;;
+      config_Post_SeasonalFrequency)
+        IGCM_debug_Print 1  "Change config_Post_SeasonalFrequency = ${config_Post_SeasonalFrequency} : IGCM_post_Configure"
+        IGCM_post_Configure
+        ;;
+      esac
+    done
+
+    echo
+    echo "########################################################################"
+    echo
+  fi
+
+  #=================================================#
+  #         Determine next computed period          #
+  #=================================================#
+
+  PeriodDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} 1 )
+  IGCM_date_GetYearMonthDay $PeriodDateBegin year month day
+  year_m1=$(( year - 1 ))
+  year_p1=$(( year + 1 ))
+  IGCM_config_DaysInPeriodLength
+  PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateBegin} $(( ${PeriodLengthInDays} - 1 )) )
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_config_PeriodEnd : Preparing Next Execution"
+  IGCM_debug_Print 1 "PeriodDateBegin       : ${PeriodDateBegin}"
+  IGCM_debug_Print 1 "PeriodDateEnd         : ${PeriodDateEnd}"
+  IGCM_debug_Print 1 "PeriodLengthInDays    : ${PeriodLengthInDays}"
+
+  PeriodDateBegin=$( IGCM_date_ConvertFormatToHuman ${PeriodDateBegin} )
+  PeriodDateEnd=$( IGCM_date_ConvertFormatToHuman ${PeriodDateEnd} )
+
+  (( CumulPeriod = CumulPeriod + 1 ))
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 3 "PeriodDateBegin Human : ${PeriodDateBegin}"
+  IGCM_debug_Print 3 "PeriodDateEnd Human   : ${PeriodDateEnd}"
+  IGCM_debug_Print 3 "CumulPeriod           : ${CumulPeriod}"
+
+  #=================================================#
+  #             Write updated run.card              #
+  #=================================================#
+
+  IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin ${PeriodDateBegin}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd ${PeriodDateEnd}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod ${CumulPeriod}
+
+  if ( ${FirstInitialize} ) ; then
+    # It's no more the first time
+    FirstInitialize=false
+  fi
+
+  IGCM_debug_PopStack "IGCM_config_PeriodEnd"
+}
+
+#===================================
+function IGCM_config_Finalize
+{
+  IGCM_debug_PushStack "IGCM_config_Finalize"
+
+  echo
+  IGCM_debug_Print 1 "IGCM_config_Finalize"
+  echo
+
+  # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal"
+  IGCM_config_StateCheck
+
+  # And EXIT if not OK
+  IGCM_debug_Verif_Exit
+
+  if [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ; then
+    #==========================#
+    # End of entire simulation #
+    #==========================#
+    simulationIsOver=true
+
+    # Mail notification
+    IGCM_sys_SendMail
+    #
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Completed"
+    #
+    IGCM_debug_Print 1 "Normal End of computation."
+
+  else
+    #=================#
+    # Submit next job #
+    #=================#
+    simulationIsOver=false
+
+    IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "OnQueue"
+
+    # Name of next Ksh Script output :
+    Script_Output=${Script_Output_Prefix}_${config_UserChoices_JobName}.$( printf "%06d" ${CumulPeriod} )
+
+    IGCM_debug_Print 1 "Submit next job"
+    # SUBMIT NEXT JOB from SUBMIT_DIR and come back in RUN_DIR
+    IGCM_sys_Cd ${SUBMIT_DIR}
+    # Keep only the 5 latest ${Script_Output_Prefix}_${config_UserChoices_JobName}
+    ScriptTot=$( ls ${Script_Output_Prefix}_${config_UserChoices_JobName}.?????? 2>/dev/null | wc -l )
+    [ ${ScriptTot} -gt 5 ] && rm -f $( ls ${Script_Output_Prefix}_${config_UserChoices_JobName}.?????? | head -$(( ${ScriptTot} - 5 )) )
+    # Submit next job and come back
+    IGCM_sys_Qsub ${SUBMIT_DIR}/Job_${config_UserChoices_JobName}
+    IGCM_sys_Cd -
+  fi
+
+  # Clean ${RUN_DIR}=${RUN_DIR_PATH}/${config_UserChoices_JobName}.${$}
+  # Only for production run (No clean up in DEV or DEB mode)
+  # and command sent from .. directory.
+  IGCM_sys_Cd ..
+  [ X${JobType} = XRUN ] && IGCM_sys_RmRunDir -rf ${RUN_DIR_PATH}
+
+  # Inform the rabbitMQ queue
+  IGCM_debug_BigBro_Finalize
+
+  IGCM_debug_PopStack "IGCM_config_Finalize"
+}
+
+#===================================
+function IGCM_config_ensembleXIOS
+{
+  IGCM_debug_PushStack "IGCM_config_ensembleXIOS"
+
+  echo
+  IGCM_debug_Print 1 "IGCM_config_ensembleXIOS"
+  echo
+   whole_ensemble_size=$((config_Ensemble_PoolNumber * config_Ensemble_PoolSize))
+   cp ${SUBMIT_DIR}/ENSEMBLES/create* .
+   cp ${SUBMIT_DIR}/ENSEMBLES/script* .
+
+   j=0 #un compteur
+   for i in $(cut -d: -f2 ${SUBMIT_DIR}/ensemble.txt); do 
+       member[$j]=$i
+       j=$j+1 
+   done
+   j=0 #un compteur
+   for i in $(cut -d: -f3 ${SUBMIT_DIR}/ensemble.txt); do
+       if ( ${FirstInitialize} ) ; then
+         noise_teta[$j]=0
+       else
+         noise_teta[$j]=$i
+       fi
+       j=$j+1
+   done
+
+
+   if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+
+       for (( pool_member_rank=0 ; pool_member_rank < $(($config_Ensemble_PoolSize+1)) ; pool_member_rank++ ))
+       do
+           whole_ensemble_rank=$(($config_Ensemble_PoolSize*$1+$pool_member_rank))
+
+	   if (( pool_member_rank < $config_Ensemble_PoolSize ))
+           then
+               [ ! -d MEMBER_$whole_ensemble_rank ] && mkdir MEMBER_$whole_ensemble_rank
+               cd MEMBER_$whole_ensemble_rank
+	       ../create_ensemble_def $whole_ensemble_size $config_Ensemble_PoolSize $1 $pool_member_rank ${noise_teta[$whole_ensemble_rank]}
+                ../create_oasis_restart.sh $pool_member_rank ${member[$whole_ensemble_rank]} $FirstInitialize
+	   else
+	       [ ! -d XIOS ] && mkdir XIOS
+               cd XIOS
+	   fi
+	   ../create_oasis_namecoupl.sh $config_Ensemble_PoolSize $1
+	   ../create_iodef_xml.sh $config_Ensemble_PoolSize
+	   cd ..
+        done
+       ./create_runfile.sh $config_Ensemble_PoolSize $1
+   fi
+
+  IGCM_debug_PopStack "IGCM_config_ensembleXIOS"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test.ksh	(revision 5899)
@@ -0,0 +1,143 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1119                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-10-24 12:41:17 +0200 (Fri, 24 Oct 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+# This script is used to generate a reference file with command :
+# IGCM_date_Test.ksh > IGCM_date_Test.ref 2>&1
+# The reference file produced is used by the function IGCM_date_Check
+# to verify that the libIGCM_date produce the same results
+
+#=================================================
+libIGCM=`dirname $0`/..
+typeset TaskType=checking
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
+
+if [ X${config_UserChoices_CalendarType} = X ] ; then
+    config_UserChoices_CalendarType="leap"
+fi
+
+echo "#=================================#"
+echo "IGCM_date_DaysInYear test"
+echo "#=================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_DaysInYears 1998"
+echo "#"
+IGCM_date_DaysInYear 1998
+
+echo ""
+echo "#"
+echo "IGCM_date_DaysInYears 2000"
+echo "#"
+IGCM_date_DaysInYear 2000
+
+echo "#=================================#"
+echo "IGCM_date_DaysInMonth test"
+echo "#=================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_DaysInMonth 1998 02"
+echo "#"
+IGCM_date_DaysInMonth 1998 02
+
+echo ""
+echo "#"
+echo "IGCM_date_DaysInMonth 20000206"
+echo "#"
+IGCM_date_DaysInMonth 20000206
+
+echo "#==========================================#"
+echo "IGCM_date_ConvertGregorianDateToJulian test"
+echo "#==========================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_ConvertGregorianDateToJulian 19980312"
+echo "#"
+IGCM_date_ConvertGregorianDateToJulian 19980312
+
+echo ""
+echo "#"
+echo "IGCM_date_ConvertGregorianDateToJulian 19980830"
+echo "#"
+IGCM_date_ConvertGregorianDateToJulian 19980830
+
+echo "#==========================================#"
+echo "IGCM_date_ConvertJulianDateToGregorian test"
+echo "#==========================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_ConvertJulianDateToGregorian 1998326"
+echo "#"
+IGCM_date_ConvertJulianDateToGregorian 1998326
+
+echo ""
+echo "#"
+echo "IGCM_date_ConvertJulianDateToGregorian 2000298"
+echo "#"
+IGCM_date_ConvertJulianDateToGregorian 2000298
+
+echo "#==================================#"
+echo "IGCM_date_AddDaysToJulianDate test"
+echo "#==================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_AddDaysToJulianDate 1998312 14"
+echo "#"
+IGCM_date_AddDaysToJulianDate 1998312 14
+
+echo ""
+echo "#"
+echo "IGCM_date_AddDaysToJulianDate 2000312 -14"
+echo "#"
+IGCM_date_AddDaysToJulianDate 2000312 -14
+
+echo "#====================================#"
+echo "IGCM_date_AddDaysToGregorianDate test"
+echo "#====================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_AddDaysToGregorianDate 19980312 44"
+echo "#"
+IGCM_date_AddDaysToGregorianDate 19980312 44
+
+echo ""
+echo "#"
+echo "IGCM_date_AddDaysToGregorianDate 20000228 -44"
+echo "#"
+IGCM_date_AddDaysToGregorianDate 20000228 -44
+
+echo "#====================================#"
+echo "IGCM_date_DaysBetweenJulianDate test"
+echo "#====================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_DaysBetweenJulianDate 1860001 1865365"
+echo "#"
+IGCM_date_DaysBetweenJulianDate 1860001 1865365
+
+echo "#======================================#"
+echo "IGCM_date_DaysBetweenGregorianDate test"
+echo "#======================================#"
+
+echo ""
+echo "#"
+echo "IGCM_date_DaysBetweenGregorianDate 18801231 18750101"
+echo "#"
+IGCM_date_DaysBetweenGregorianDate 18801231 18750101
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test4.ref
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test4.ref	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test4.ref	(revision 5899)
@@ -0,0 +1,94 @@
+#=================================#
+IGCM_date_DaysInYear test
+#=================================#
+
+#
+IGCM_date_DaysInYears 1998
+#
+365
+
+#
+IGCM_date_DaysInYears 2000
+#
+366
+#=================================#
+IGCM_date_DaysInMonth test
+#=================================#
+
+#
+IGCM_date_DaysInMonth 1998 02
+#
+28
+
+#
+IGCM_date_DaysInMonth 20000206
+#
+29
+#==========================================#
+IGCM_date_ConvertGregorianDateToJulian test
+#==========================================#
+
+#
+IGCM_date_ConvertGregorianDateToJulian 19980312
+#
+1998071
+
+#
+IGCM_date_ConvertGregorianDateToJulian 19980830
+#
+1998242
+#==========================================#
+IGCM_date_ConvertJulianDateToGregorian test
+#==========================================#
+
+#
+IGCM_date_ConvertJulianDateToGregorian 1998326
+#
+19981122
+
+#
+IGCM_date_ConvertJulianDateToGregorian 2000298
+#
+20001024
+#==================================#
+IGCM_date_AddDaysToJulianDate test
+#==================================#
+
+#
+IGCM_date_AddDaysToJulianDate 1998312 14
+#
+1998326
+
+#
+IGCM_date_AddDaysToJulianDate 2000312 -14
+#
+2000298
+#====================================#
+IGCM_date_AddDaysToGregorianDate test
+#====================================#
+
+#
+IGCM_date_AddDaysToGregorianDate 19980312 44
+#
+19980425
+
+#
+IGCM_date_AddDaysToGregorianDate 20000228 -44
+#
+20000115
+#====================================#
+IGCM_date_DaysBetweenJulianDate test
+#====================================#
+
+#
+IGCM_date_DaysBetweenJulianDate 1860001 1865365
+#
+-2191
+#======================================#
+IGCM_date_DaysBetweenGregorianDate test
+#======================================#
+
+#
+IGCM_date_DaysBetweenGregorianDate 18801231 18750101
+#
+2191
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test5.ref
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test5.ref	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/IGCM_date_Test5.ref	(revision 5899)
@@ -0,0 +1,94 @@
+#=================================#
+IGCM_date_DaysInYear test
+#=================================#
+
+#
+IGCM_date_DaysInYears 1998
+#
+365
+
+#
+IGCM_date_DaysInYears 2000
+#
+366
+#=================================#
+IGCM_date_DaysInMonth test
+#=================================#
+
+#
+IGCM_date_DaysInMonth 1998 02
+#
+28
+
+#
+IGCM_date_DaysInMonth 20000206
+#
+29
+#==========================================#
+IGCM_date_ConvertGregorianDateToJulian test
+#==========================================#
+
+#
+IGCM_date_ConvertGregorianDateToJulian 19980312
+#
+1998071
+
+#
+IGCM_date_ConvertGregorianDateToJulian 19980830
+#
+1998242
+#==========================================#
+IGCM_date_ConvertJulianDateToGregorian test
+#==========================================#
+
+#
+IGCM_date_ConvertJulianDateToGregorian 1998326
+#
+019981122
+
+#
+IGCM_date_ConvertJulianDateToGregorian 2000298
+#
+020001024
+#==================================#
+IGCM_date_AddDaysToJulianDate test
+#==================================#
+
+#
+IGCM_date_AddDaysToJulianDate 1998312 14
+#
+1998326
+
+#
+IGCM_date_AddDaysToJulianDate 2000312 -14
+#
+2000298
+#====================================#
+IGCM_date_AddDaysToGregorianDate test
+#====================================#
+
+#
+IGCM_date_AddDaysToGregorianDate 19980312 44
+#
+019980425
+
+#
+IGCM_date_AddDaysToGregorianDate 20000228 -44
+#
+020000115
+#====================================#
+IGCM_date_DaysBetweenJulianDate test
+#====================================#
+
+#
+IGCM_date_DaysBetweenJulianDate 1860001 1865365
+#
+-2191
+#======================================#
+IGCM_date_DaysBetweenGregorianDate test
+#======================================#
+
+#
+IGCM_date_DaysBetweenGregorianDate 18801231 18750101
+#
+2191
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/libIGCM_date.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/libIGCM_date.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_date/libIGCM_date.ksh	(revision 5899)
@@ -0,0 +1,1052 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#==================================================
+
+#D-#==================================================================
+#D-libIGCM_date
+#D-This ksh library handles date calculs and convertions in different calendars.
+#D-  types of calendars are possible :
+#D-
+#D-  - leap|gregorian|standard (other name leap) :
+#D-      The normal calendar. The time origin for the
+#D-      julian day in this case is 24 Nov -4713.
+#D-  - noleap|365_day :
+#D-      A 365 day year without leap years.
+#D-  - all_leap|366_day :
+#D-      A 366 day year with only leap years.
+#D-  - 360d|360_day :
+#D-      Year of 360 days with month of equal length.
+
+# Number of digit in the year
+typeset -r dY=${dY:=4}
+#typeset -r MaxpY=$( echo "10^"$((dY+1)) | bc -l )
+# Number of digit in non-human date representation
+typeset -r pY=$(( dY+4 ))
+
+#==================================================================
+function IGCM_date_YearDigit
+{
+  IGCM_debug_PushStack "IGCM_date_YearDigit" $@
+
+  typeset NUM
+
+  NUM=$(( 10#${1} ))
+  echo $( gawk "BEGIN { printf \"%0${dY}d\",${NUM} }" )
+
+  IGCM_debug_PopStack "IGCM_date_YearDigit"
+}
+
+#==================================================================
+function IGCM_date_GregorianDigit
+{
+  IGCM_debug_PushStack "IGCM_date_GregorianDigit" $@
+
+  typeset NUM
+
+  NUM=$(( 10#${1} ))
+
+  echo $( gawk "BEGIN { printf \"%0${pY}d\",${NUM} }" )
+
+  IGCM_debug_PopStack "IGCM_date_GregorianDigit"
+}
+
+#==================================================================
+function IGCM_date_HumanDigit
+{
+  IGCM_debug_PushStack "IGCM_date_HumanDigit" $@
+
+  echo $( IGCM_date_GregorianDigit $( print ${1} | sed 's/-//g' ) ) \
+    | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1-\2-\3/"
+
+  IGCM_debug_PopStack "IGCM_date_HumanDigit"
+}
+
+#==================================================================
+function IGCM_date_SupressZeros
+{
+  IGCM_debug_PushStack "IGCM_date_SupressZeros" $@
+  echo $( print ${1} | sed -e "s/0*//" )
+  IGCM_debug_PopStack "IGCM_date_SupressZeros"
+}
+
+#==================================================================
+function IGCM_date_ConvertFormatToGregorian
+{
+  IGCM_debug_PushStack "IGCM_date_ConvertFormatToGregorian" $@
+
+  # from a yyyy-mm-dd date format return
+  # a yyymmdd date format
+  # usage IGCM_date_ConvertFormat yyyy-mm-dd
+
+  # if there is no argument on the command line,
+  # then assume that a y-m-d formated date is being
+  # piped in
+  typeset ymd
+  if [ $# = 0 ]
+  then
+    read ymd
+  else
+    ymd=$1
+  fi
+
+  IGCM_date_GregorianDigit $( print ${ymd} | sed 's/-//g' )
+
+  IGCM_debug_PopStack "IGCM_date_ConvertFormatToGregorian"
+}
+
+#==================================================================
+function IGCM_date_ConvertFormatToHuman
+{
+  IGCM_debug_PushStack "IGCM_date_ConvertFormatToHuman" $@
+
+  # from a yyyymmdd date format return
+  # a yyyy-mm-dd date format
+  # usage IGCM_date_ConvertFormat yyyymmdd
+
+  # if there is no argument on the command line,
+  # then assume that a yyyymmdd formated date is being
+  # piped in
+  typeset dt
+  if [ $# = 0 ]
+  then
+    read dt
+  else
+    dt=$1
+  fi
+
+  # break the yyyymmdd into separate parts for year, month and day
+  echo $( IGCM_date_GregorianDigit ${dt} ) | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1-\2-\3/"
+
+  IGCM_debug_PopStack "IGCM_date_ConvertFormatToHuman"
+}
+
+#==================================================================
+function IGCM_date_GetYearMonth
+{
+  IGCM_debug_PushStack "IGCM_date_GetYearMonth" $@
+
+  # from a yyyymmdd date format return
+  # a yyyy year and mm month
+  # usage IGCM_date_GetYearMonth yyyymmdd year_var month_var
+
+  # if there is no argument on the command line,
+  # then assume that a yyyymmdd formated date is being
+  # piped in
+  typeset dt
+  if [ $# = 0 ]
+  then
+    read dt
+  else
+    dt=$1
+  fi
+
+  # break the yyyymmdd into separate parts for year, month and day
+  eval $2=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1/" )
+  eval $3=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\2/" )
+
+  IGCM_debug_PopStack "IGCM_date_GetYearMonth"
+}
+
+#==================================================================
+function IGCM_date_GetYearMonthDay
+{
+  IGCM_debug_PushStack "IGCM_date_GetYearMonthDay" $@
+
+  # from a yyyymmdd date format return
+  # a yyyy year, mm month and dd day
+  # usage IGCM_date_GetYearMonthDay yyyymmdd year_var month_var day_var
+
+  # if there is no argument on the command line,
+  # then assume that a yyyymmdd formated date is being
+  # piped in
+  typeset dt
+  if [ $# = 0 ]
+  then
+    read dt
+  else
+    dt=$1
+  fi
+
+  # break the yyyymmdd into separate parts for year, month and day
+  eval $2=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1/" )
+  eval $3=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\2/" )
+  eval $4=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\3/" )
+
+  IGCM_debug_PopStack "IGCM_date_GetYearMonthDay"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysInYear
+#D-* Purpose: Return the number of days in a year
+#D-* Usage: IGCM_date_DaysInYear yyyy
+#D-         if there is no argument on the command line,
+#D-         then assume that a yyyy is being piped in
+#D-
+function IGCM_date_DaysInYear
+{
+#    IGCM_debug_PushStack "IGCM_date_DaysInYear" $@
+  # return the number of days in a year
+  # usage IGCM_date_DaysInYear yyyy
+
+  # What is the calendar :
+  case ${config_UserChoices_CalendarType} in
+  360d|360_day)
+    if [ X$2 = X ] ; then
+      echo 360
+    else
+      eval $2=360 > /dev/null 2>&1
+    fi
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+    return;;
+  noleap|365_day)
+    if [ X$2 = X ] ; then
+      echo 365
+    else
+      eval $2=365 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+    return;;
+  all_leap|366_day)
+    if [ X$2 = X ] ; then
+      echo 366
+    else
+      eval $2=366 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+    return;;
+  esac
+
+  typeset y a
+
+  # if there is no argument on the command line,
+  # then assume that a yyyy is being piped in
+  if [ $# = 0 ]
+  then
+    read y
+  else
+    y=$(( 10#${1} ))
+  fi
+
+  # a year is a leap year if it is even divisible by 4
+  # but not evenly divisible by 100
+  # unless it is evenly divisible by 400
+
+  # if it is evenly divisible by 400 it must be a leap year
+  a=$(( $y % 400 ))
+  if [ $a = 0 ]
+  then
+    if [ X$2 = X ] ; then
+      echo 366
+    else
+      eval $2=366 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+    return
+  fi
+
+  # if it is evenly divisible by 100 it must not be a leap year
+  a=$(( $y % 100 ))
+  if [ $a = 0 ]
+  then
+    if [ X$2 = X ] ; then
+      echo 365
+    else
+      eval $2=365 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+    return
+  fi
+
+  # if it is evenly divisible by 4 it must be a leap year
+  a=$(( $y % 4 ))
+  if [ $a = 0 ]
+  then
+    if [ X$2 = X ] ; then
+      echo 366
+    else
+      eval $2=366 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+    return
+  fi
+
+  # otherwise it is not a leap year
+  if [ X$2 = X ] ; then
+    echo 365
+  else
+    eval $2=365 > /dev/null 2>&1
+  fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInYear"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysInMonth
+#D-* Purpose: Calculate the number of days in a month
+#D-* Usage: IGCM_date_DaysInMonth yyyy mm
+#D-         or IGCM_date_DaysInMonth yyyymmdd
+#D-         if there are no command line arguments then
+#D-         assume that a yyyymmdd is being piped in and read the value.
+#D-         if there is only one argument assume it is a yyyymmdd on the command line
+#D-         other wise it is a yyyy and mm on the command line
+function IGCM_date_DaysInMonth
+{
+#    IGCM_debug_PushStack "IGCM_date_DaysInMonth" $@
+
+  # calculates the number of days in a month
+  # usage IGCM_date_DaysInMonth yyyy mm
+  # or IGCM_date_DaysInMonth yyyymmdd
+
+  # What is the calendar :
+  if ( [ "${config_UserChoices_CalendarType}" = "360d" ] || [ "${config_UserChoices_CalendarType}" = "360_day" ] ) ; then
+    if [ X$3 = X ] ; then
+      echo 30
+    else
+      eval $3=30 > /dev/null 2>&1
+    fi
+
+#   IGCM_debug_PopStack "IGCM_date_DaysInMonth"
+    return
+  fi
+
+  typeset ymd y m
+
+  # if there are no command line arguments then assume that a yyyymmdd is being
+  # piped in and read the value.
+  # if there is only one argument assume it is a yyyymmdd on the command line
+  # other wise it is a yyyy and mm on the command line
+  if [ $# = 0 ]
+  then
+    read ymd
+  elif [ $# = 1 ]
+  then
+    ymd=$1
+  else
+    ymd=$(( ( $1 * 10000 ) + ( $2 * 100 ) + 1 ))
+  fi
+
+  # extract the year and the month
+  y=$(( $ymd / 10000 )) ;
+  m=$(( ( $ymd % 10000 ) / 100 )) ;
+
+  # 30 days hath september etc.
+  case $m in
+  1|3|5|7|8|10|12)
+    if [ X$3 = X ] ; then
+      echo 31
+    else
+      eval $3=31 > /dev/null 2>&1
+    fi
+
+#           IGCM_debug_PopStack "IGCM_date_DaysInMonth"
+    return ;;
+  4|6|9|11)
+    if [ X$3 = X ] ; then
+      echo 30
+    else
+      eval $3=30 > /dev/null 2>&1
+    fi
+
+#           IGCM_debug_PopStack "IGCM_date_DaysInMonth"
+    return ;;
+  *) ;;
+  esac
+
+  # except for month 2 which depends on whether the year is a leap year
+  # Use IGCM_date_DaysInYear to get the number of days in the year and return a value
+  # accordingly.
+
+  IGCM_date_DaysInYear $y diy
+  case $diy in
+  365)
+    if [ X$3 = X ] ; then
+      echo 28
+    else
+      eval $3=28 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInMonth"
+    return ;;
+  366)
+    if [ X$3 = X ] ; then
+      echo 29
+    else
+      eval $3=29 > /dev/null 2>&1
+    fi
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInMonth"
+    return ;;
+  esac
+
+#    IGCM_debug_PopStack "IGCM_date_DaysInMonth"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_ConvertGregorianDateToJulian
+#D-* Purpose: Convert yyyymmdd to yyyyddd
+#D-* Usage: IGCM_date_ConvertGregorianDateToJulian 19980429
+#D-         if there is no command line argument, then assume that the date
+#D-         is coming in on a pipe and use read to collect it
+#D-
+function IGCM_date_ConvertGregorianDateToJulian
+{
+  IGCM_debug_PushStack "IGCM_date_ConvertGregorianDateToJulian" $@
+
+  # IGCM_date_ConvertGregorianDateToJulian converts yyyymmdd to yyyyddd
+  # usage IGCM_date_ConvertGregorianDateToJulian 19980429
+
+  typeset dt y m d x jul
+
+  # if there is no command line argument, then assume that the date
+  # is coming in on a pipe and use read to collect it
+  if [ $# = 0 ]
+  then
+    read dt
+  else
+    dt=$( IGCM_date_SupressZeros $1 )
+  fi
+
+  # break the yyyymmdd into separate parts for year, month and day
+  y=$(( $dt / 10000 ))
+  m=$(( ( $dt % 10000 ) / 100 ))
+  d=$(( ( $dt % 100 ) ))
+
+  # add the days in each month up to (but not including the month itself)
+  # into the days. For example if the date is 19980203 then extract the
+  # number of days in January and add it to 03. If the date is June 14, 1998
+  # then extract the number of days in January, February, March, April and May
+  # and add them to 14.
+  x=1
+  while [ $x -lt $m ]
+  do
+    IGCM_date_DaysInMonth $y $x md
+    d=$(( $d + $md ))
+    x=$(( $x + 1 ))
+  done
+
+  # combine the year and day back together again and you have the julian date.
+  jul=$(( ( $y * 1000 ) + $d ))
+  echo $jul
+
+  IGCM_debug_PopStack "IGCM_date_ConvertGregorianDateToJulian"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_ConvertJulianDateToGregorian()
+#D-* Purpose: Convert yyyyddd to yyyymmdd
+#D-* Usage: IGCM_date_ConvertJulianDateToGregorian 1998213
+#D-         if there is no command line argument, assume one is being
+#D-         piped in and read it
+#D-
+function IGCM_date_ConvertJulianDateToGregorian
+{
+  IGCM_debug_PushStack "IGCM_date_ConvertJulianDateToGregorian" $@
+
+  # IGCM_date_ConvertJulianDateToGregorian converts yyyyddd to yyyymmdd
+  # usage IGCM_date_ConvertJulianDateToGregorian 1998213
+
+  typeset dt y m d grg
+
+  # if there is no command line argument, assume one is being
+  # piped in and read it
+  if [ X$1 = X ]
+  then
+    read dt
+  else
+    dt=$1
+  fi
+
+  # break apart the year and the days
+  y=$(( $dt / 1000 ))
+  d=$(( $dt % 1000 ))
+
+  # subtract the number of days in each month starting from 1
+  # from the days in the date. When the day goes below 1, you
+  # have the current month. Add back the number of days in the
+  # month to get the correct day of the month
+  m=1
+  while [ $d -gt 0 ]
+  do
+    IGCM_date_DaysInMonth $y $m md
+    d=$(( $d - $md ))
+    m=$(( $m + 1 ))
+  done
+
+  d=$(( $d + $md ))
+
+  # the loop steps one past the correct month, so back up the month
+  m=$(( $m - 1 ))
+
+  # assemble the results into a gregorian date
+  grg=$(( ( $y * 10000 ) + ( $m * 100 ) + $d ))
+  echo $( IGCM_date_GregorianDigit $grg )
+
+  IGCM_debug_PopStack "IGCM_date_ConvertJulianDateToGregorian"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_AddDaysToJulianDate
+#D-* Purpose: Add days to a yyyyddd formatted date
+#D-* Usage: IGCM_date_AddDaysToJulianDate 1998312 { ,-}14
+#D-         Read the difference from the command lines
+#D-         and the date from the command line, or standard input
+#D-
+function IGCM_date_AddDaysToJulianDate
+{
+  IGCM_debug_PushStack "IGCM_date_AddDaysToJulianDate" $@
+
+  # IGCM_date_AddDaysToJulianDate adds days to a yyyyddd formatted date
+  # usage IGCM_date_AddDaysToJulianDate 1998312 { ,-}14
+
+  typeset dif yd d y
+
+  # Read the difference from the command lines
+  # and the date from the command line, or standard input
+  if [ X$2 = X ]
+  then
+    dif=$1
+    read yd
+  else
+    yd=$1
+    dif=$2
+  fi
+
+  # Break it into pieces
+  d=$(( $yd % 1000 ))
+  y=$(( $yd / 1000 ))
+
+  # Add the number of days (if days is negative this results is
+  # a subtraction)
+  d=$(( $d + $dif ))
+
+  # Extract the days in the year
+  IGCM_date_DaysInYear $y diy
+
+  # If the calculated day exceeds the days in the year,
+  # add one year to the year and subtract the days in the year from the
+  # calculated days. Extract the days in the new year and repeat
+  # test until you end up with a day number that falls within the
+  # days of the year
+  while [ $d -gt $diy ]
+  do
+    d=$(( $d - $diy ))
+    y=$(( $y + 1 ))
+    IGCM_date_DaysInYear $y diy
+  done
+
+  # This is the reverse process. If the calculated number of days
+  # is less than 1, move back one year. Extract
+  # the days in this year and add the days in the year
+  # loop on this test until you end up with a number that
+  # falls within the days of the year
+  while [ $d -lt 1 ]
+  do
+    y=$(( $y - 1 ))
+    IGCM_date_DaysInYear $y diy
+    d=$(( $d + $diy ))
+  done
+
+  # put the year and day back together and echo the result
+  yd=$(( ( $y * 1000 ) + $d ))
+
+  echo $yd
+
+  IGCM_debug_PopStack "IGCM_date_AddDaysToJulianDate"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_AddDaysToGregorianDate
+#D-* Purpose: Add days to a yyyymmdd formatted date
+#D-* Usage: IGCM_date_AddDaysToGregorianDate 19980312 { ,-}14
+#D-         Read the difference from the command lines
+#D-         and the date from the command line, or standard input
+#D-
+function IGCM_date_AddDaysToGregorianDate
+{
+  IGCM_debug_PushStack "IGCM_date_AddDaysToGregorianDate" $@
+
+  # IGCM_date_AddDaysToGregorianDate adds days to a yyyymmdd formatted date
+  # usage IGCM_date_AddDaysToGregorianDate 19980312 { ,-}14
+
+  # Read the difference from the command lines
+  # and the date from the command line, or standard input
+  typeset dif yd tmp res
+  if [ X$2 = X ]
+  then
+    dif=$1
+    read yd
+  else
+    yd=$1
+    dif=$2
+  fi
+
+  tmp=$( IGCM_date_ConvertGregorianDateToJulian $yd )
+  tmp=$( IGCM_date_AddDaysToJulianDate $tmp $dif )
+  res=$( IGCM_date_ConvertJulianDateToGregorian $tmp )
+
+  echo $res
+
+  IGCM_debug_PopStack "IGCM_date_AddDaysToGregorianDate"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysBetweenJulianDate
+#D-* Purpose: Calculate the days difference between two dates and reports
+#D-           the number days as jul1 - jul2
+#D-* Usage: IGCM_date_DaysBetweenJulianDate jul1 jul2
+#D-         where julian date is in the form yyyyddd
+#D-
+function IGCM_date_DaysBetweenJulianDate
+{
+  IGCM_debug_PushStack "IGCM_date_DaysBetweenJulianDate" $@
+
+  # calculates the days difference between two dates and reports
+  # the number days as jul1 - jul2
+  # usage IGCM_date_DaysBetweenJulianDate jul1 jul2
+  # where julian date is in the form yyyyddd
+
+  usage () {
+    echo "Usage:"
+    echo " IGCM_date_DaysBetweenJulianDate jul1 jul2"
+    echo ""
+    echo " Calculates the day difference between"
+    echo " two julian dates (jul1 -jul2)"
+    echo " where a julian date is in the form of yyyyddd."
+  }
+
+  if [ $# -lt 2 ]; then
+    usage
+    IGCM_debug_Exit "IGCM_date_DaysBetweenJulianDate"
+  fi
+
+  typeset jul1 jul2 yyyy1 yyyy2 ddd1 ddd2 res
+
+  # This process subtracts arg2 from arg1. If arg2 is larger
+  # then reverse the arguments. The calculations are done, and
+  # then the sign is reversed
+  if [ $1 -lt $2 ]
+  then
+    jul1=$2
+    jul2=$1
+  elif [ $1 -gt $2 ]
+  then
+    jul1=$1
+    jul2=$2
+  else
+    echo 0
+    IGCM_debug_PopStack "IGCM_date_DaysBetweenJulianDate"
+    return
+  fi
+
+  # Break the dates in to year and day portions
+  yyyy1=$(( $jul1 / 1000 ))
+  yyyy2=$(( $jul2 / 1000 ))
+  ddd1=$(( $jul1 % 1000 ))
+  ddd2=$(( $jul2 % 1000 ))
+
+  # Subtract days
+  res=$(( $ddd1 - $ddd2 ))
+
+  # Then add days in year until year2 matches year1
+  case ${config_UserChoices_CalendarType} in
+  360d|360_day)
+    res=$(( ( ( $yyyy1 - $yyyy2 ) * 360 ) + $res )) ;;
+  noleap|365_day)
+    res=$(( ( ( $yyyy1 - $yyyy2 ) * 365 ) + $res )) ;;
+  all_leap|366_day)
+    res=$(( ( ( $yyyy1 - $yyyy2 ) * 366 ) + $res )) ;;
+  leap|gregorian|standard)
+    while [ $yyyy2 -lt $yyyy1 ]
+    do
+      IGCM_date_DaysInYear $yyyy2 diy
+      res=$(( $res + $diy ))
+      yyyy2=$(( $yyyy2 + 1 ))
+    done
+    ;;
+  esac
+
+  # if argument 2 was larger than argument 1 then
+  # the arguments were reversed before calculating
+  # adjust by reversing the sign
+  if [ $1 -lt $2 ]
+  then
+    res=$(( $res * -1 ))
+  fi
+
+  # and output the results
+  echo $res
+
+  IGCM_debug_PopStack "IGCM_date_DaysBetweenJulianDate"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysBetweenGregorianDate ()
+#D-* Purpose: Calculate the days difference between two dates and reports
+#D-           the number days as grg1 - grg2
+#D-* Usage: IGCM_date_DaysBetweenGregorianDate grg1 grg2
+#D-         where gregorian date is in the form yyyymmdd
+#D-
+function IGCM_date_DaysBetweenGregorianDate
+{
+  IGCM_debug_PushStack "IGCM_date_DaysBetweenGregorianDate" $@
+
+  # calculates the days difference between two dates and reports
+  # the number days as grg1 - grg2
+  # usage IGCM_date_DaysBetweenGregorianDate grg1 grg2
+  # where gregorian date is in the form yyyymmdd
+
+  usage () {
+    echo "Usage:"
+    echo " IGCM_date_DaysBetweenGregorianDate grg1 grg2"
+    echo ""
+    echo " Calculate day difference between"
+    echo " two gregorian dates (grg1 - grg2)"
+    echo " where a gregorian date is in the form of yyyymmdd."
+  }
+
+  if [ $# -lt 2 ]; then
+    usage
+    IGCM_debug_Exit "IGCM_date_DaysBetweenGregorianDate"
+  fi
+
+  typeset grg1 grg2 jul1 jul2 res
+
+  # convert each date to julian
+  grg1=$1
+  grg2=$2
+
+  jul1=$( IGCM_date_ConvertGregorianDateToJulian $grg1 )
+  jul2=$( IGCM_date_ConvertGregorianDateToJulian $grg2 )
+
+  if [ $jul1 -ne $jul2 ]; then
+    # calculate the answer using IGCM_date_DaysBetweenJulianDate
+    res=$( IGCM_date_DaysBetweenJulianDate $jul1 $jul2 )
+    # and output the results
+    echo $res
+  else
+    echo 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_date_DaysBetweenGregorianDate"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysSinceJC ()
+#D-* Purpose: Calculate the days difference between a date and 00010101
+#D-* Usage: IGCM_date_DaysSinceJC grg1
+#D-         where gregorian date is in the form yyyymmdd
+#D-
+function IGCM_date_DaysSinceJC
+{
+  IGCM_debug_PushStack "IGCM_date_DaysSinceJC" $@
+
+  # calculates the days difference between a date and 00010101
+  # usage IGCM_date_DaysSinceJC grg1
+  # where gregorian date is in the form yyyymmdd
+
+  usage () {
+    echo "Usage:"
+    echo " IGCM_date_DaysSinceJC grg1"
+    echo ""
+    echo " Calculate day difference between"
+    echo " a gregorian date and 00010101"
+    echo " where a gregorian date is in the form of yyyymmdd."
+  }
+
+  if [ $# -lt 1 ]; then
+    usage
+    IGCM_debug_Exit "IGCM_date_DaysSinceJC"
+  fi
+
+  typeset aux num
+
+  if   [ ${1} -lt  5000000 ]; then
+    case ${config_UserChoices_CalendarType} in
+    360d|360_day)
+      aux=-360;;
+    noleap|365_day)
+      aux=-365;;
+    all_leap|366_day)
+      aux=-366;;
+    leap|gregorian|standard)
+      aux=-366;;
+    esac
+    num=101
+  elif [ ${1} -lt 15000000 ]; then
+    # To save CPU type we use auxiliary value
+    # which is number of days since JC and 10000101
+    case ${config_UserChoices_CalendarType} in
+    360d|360_day)
+      aux=359640;;
+    noleap|365_day)
+      aux=364635;;
+    all_leap|366_day)
+      aux=365634;;
+    leap|gregorian|standard)
+      aux=364877;;
+    esac
+    num=10000101
+  else
+    # To save CPU type we use auxiliary value
+    # which is number of days since JC and 19000101
+    case ${config_UserChoices_CalendarType} in
+    360d|360_day)
+      aux=683640;;
+    noleap|365_day)
+      aux=693135;;
+    all_leap|366_day)
+      aux=695034;;
+    leap|gregorian|standard)
+      aux=693595;;
+    esac
+    num=19000101
+  fi
+  echo $(( $( IGCM_date_DaysBetweenGregorianDate $1 ${num} ) + $aux ))
+
+  IGCM_debug_PopStack "IGCM_date_DaysSinceJC"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysInPreviousPeriod ()
+#D-* Purpose: Give the numbers of days during the previous prd1 period from grg1 date # OLD create_ts_begin_date
+#D-* Usage: IGCM_date_DaysInPreviousPeriod grg1 prd1 [end]
+#D-         where grg1 gregorian date is in the form yyyymmdd
+#D-         where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer
+#D-         where [end] is an optionnal keyword to specify grg1 is the end of prd1
+#D-
+function IGCM_date_DaysInPreviousPeriod {
+  IGCM_debug_PushStack "IGCM_date_DaysInPreviousPeriod" $@
+
+  typeset Length Period treatedYear PeriodLengthInYears PeriodLengthInMonths year0 i
+
+  Period=${2}
+  case ${Period} in
+  *Y|*y)
+    PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' )
+    IGCM_date_GetYearMonth ${1} year month
+    year=$( IGCM_date_SupressZeros ${year} )
+    if [ X${3} = Xend ] ; then
+      (( year = year - PeriodLengthInYears + 1))
+    fi
+    Length=0
+    i=0
+    until [ $i -ge $PeriodLengthInYears ] ; do
+      (( Length = Length + $( IGCM_date_DaysInYear $(( year + i )) ) ))
+      (( i = i + 1 ))
+    done
+    ;;
+  *M|*m)
+    PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' )
+    IGCM_date_GetYearMonth ${1} year month
+    year=$( IGCM_date_SupressZeros ${year} )
+    if [ X${3} = Xend ] ; then
+      (( month = month - PeriodLengthInMonths + 1 ))
+    fi
+    year0=year
+    if [ $month -le 0 ] ; then
+      (( month = month + 12 ))
+      year=$( printf "%04i\n" $(( year - 1 )) )
+    fi
+    month=$( printf "%02i\n" ${month} )
+    treatedYear=0
+    Length=0
+    i=0
+    for ((i = 0; i < ${PeriodLengthInMonths}; i += 1)) ; do
+
+      (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i - 12 * treatedYear )) ) ))
+
+      if [ $(( month + i )) -ge $(( 12 * (treatedYear + 1) )) ] ; then
+        (( year = year0 + 1 ))
+        (( treatedYear = treatedYear + 1 ))
+      fi
+    done
+    ;;
+  *D|*d)
+    Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;;
+  *)
+    IGCM_debug_Exit "IGCM_date_DaysInPreviousPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D."
+    IGCM_debug_Verif_Exit ;;
+  esac
+  echo ${Length}
+
+  IGCM_debug_PopStack "IGCM_date_DaysInPreviousPeriod"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysInNextPeriod ()
+#D-* Purpose: Give the numbers of days during the next prd1 period from grg1 date # OLD create_ts_next_date
+#D-* Usage: IGCM_date_DaysInNextPeriod grg1 prd1
+#D-         where grg1 gregorian date is in the form yyyymmdd
+#D-         where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer
+#D-
+function IGCM_date_DaysInNextPeriod {
+  IGCM_debug_PushStack "IGCM_date_DaysInNextPeriod" $@
+
+  typeset Length Period treatedYear PeriodLengthInYears PeriodLengthInMonths year0 month0 i
+
+  Period=${2}
+  case ${Period} in
+  *Y|*y)
+    PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' )
+    IGCM_date_GetYearMonth ${1} year month
+    year=$( IGCM_date_SupressZeros ${year} )
+    Length=0
+    i=0
+    until [ $i -ge $PeriodLengthInYears ] ; do
+      (( Length = Length + $( IGCM_date_DaysInYear $(( year + i + 1 )) ) ))
+      (( i = i + 1 ))
+    done
+    ;;
+  *M|*m)
+    PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' )
+    IGCM_date_GetYearMonth ${1} year month
+    year=$( IGCM_date_SupressZeros ${year} )
+    year0=year
+    if [ $(( month + 1 )) -lt 13 ] ; then
+      month0=$(( month + 1 ))
+    else
+      month0=$(( month + 1 - 12 ))
+      (( year = year0 + 1 ))
+    fi
+    treatedYear=0
+    Length=0
+    i=0
+    for ((i = 0; i < ${PeriodLengthInMonths}; i += 1)) ; do
+
+      (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month0 + i - 12 * treatedYear )) ) ))
+
+      if [ $(( month0 + i )) -ge $(( 12 * (treatedYear + 1) )) ] ; then
+        (( year = year0 + 1 ))
+        (( treatedYear = treatedYear + 1 ))
+      fi
+    done
+    ;;
+  *D|*d)
+    Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;;
+  *)
+    IGCM_debug_Exit "IGCM_date_DaysInNextPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D."
+    IGCM_debug_Verif_Exit ;;
+  esac
+  echo ${Length}
+
+  IGCM_debug_PopStack "IGCM_date_DaysInNextPeriod"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_DaysInCurrentPeriod ()
+#D-* Purpose: Give the numbers of days during the Current prd1 period from grg1 date
+#D-* Usage: IGCM_date_DaysInCurrentPeriod grg1 prd1
+#D-         where grg1 gregorian date is in the form yyyymmdd
+#D-         where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer
+#D-
+function IGCM_date_DaysInCurrentPeriod {
+  IGCM_debug_PushStack "IGCM_date_DaysInCurrentPeriod" $@
+
+  typeset Length Period treatedYear PeriodLengthInYears PeriodLengthInMonths year0 i
+
+  Period=${2}
+  case ${Period} in
+  *Y|*y)
+    PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' )
+    IGCM_date_GetYearMonth ${1} year month
+    year=$( IGCM_date_SupressZeros ${year} )
+    month=$( IGCM_date_SupressZeros ${month} )
+    Length=0
+    # if starting after february and using leap calendar
+    # we need to add the number of days of the next year (potentially a leap year)
+    if [ ${month} -gt 2 ] ; then
+      (( year = year + 1 ))
+    fi
+    i=0
+    until [ $i -ge $PeriodLengthInYears ] ; do
+      (( Length = Length + $( IGCM_date_DaysInYear $(( year + i )) ) ))
+      (( i = i + 1 ))
+    done
+    ;;
+  *M|*m)
+    PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' )
+    IGCM_date_GetYearMonth ${1} year month
+    year=$( IGCM_date_SupressZeros ${year} )
+    year0=year
+    treatedYear=0
+    Length=0
+    i=0
+    for ((i = 0; i < ${PeriodLengthInMonths}; i += 1)) ; do
+
+      (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i - 12 * treatedYear )) ) ))
+
+      if [ $(( month + i )) -ge $(( 12 * (treatedYear + 1) )) ] ; then
+        (( year = year0 + 1 ))
+        (( treatedYear = treatedYear + 1 ))
+      fi
+    done
+    ;;
+  *D|*d)
+    Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;;
+  *)
+    IGCM_debug_Exit "IGCM_date_DaysInCurrentPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D."
+    IGCM_debug_Verif_Exit ;;
+  esac
+  echo ${Length}
+
+  IGCM_debug_PopStack "IGCM_date_DaysInCurrentPeriod"
+}
+
+#D-#==================================================================
+#D-function IGCM_date_Check
+#D- * Purpose: Check the present file by comparison with a reference file
+function IGCM_date_Check
+{
+  #---------------------
+  if [ ! -n "${libIGCM}" ] ; then
+    echo "Check libIGCM_date ...........................................[ FAILED ]"
+    echo "--Error--> libIGCM variable is not defined"
+    IGCM_debug_Exit "IGCM_date_Check"
+  fi
+
+  #---------------------
+  whence -v gawk > /dev/null 2>&1
+  if [ ! $? -eq 0 ] ; then
+    echo "Check libIGCM_date ...........................................[ FAILED ]"
+    echo "--Error--> gawk command is not defined"
+    IGCM_debug_Exit "IGCM_date_Check"
+  fi
+
+  #---------------------
+  # No need to remove timestamps here
+  diff ${libIGCM}/libIGCM_date/IGCM_date_Test${dY}.ref <(${libIGCM}/libIGCM_date/IGCM_date_Test.ksh) > /dev/null 2>&1
+  status=$?
+
+  if [ ${status} -eq 0 ] ; then
+    echo "Check libIGCM_date ...............................................[ OK ]"
+  else
+    echo "Check libIGCM_date ...........................................[ FAILED ]"
+    echo "--Error--> Execution of ${libIGCM}/libIGCM_date/IGCM_date_Test.ksh"
+    echo "           has produced the file IGCM_date_Test.ref.failed"
+    echo "           Please analyse differences with the reference file by typing:"
+    echo "           diff IGCM_date_Test.ref.failed ${libIGCM}/libIGCM_date/IGCM_date_Test${dY}.ref"
+    echo "           Report errors to the author: Sebastien.Denvil@ipsl.jussieu.fr"
+    diff ${libIGCM}/libIGCM_date/IGCM_date_Test${dY}.ref <(${libIGCM}/libIGCM_date/IGCM_date_Test.ksh)
+    IGCM_debug_Exit "IGCM_date_Check"
+  fi
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/IGCM_debug_Test.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/IGCM_debug_Test.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/IGCM_debug_Test.ksh	(revision 5899)
@@ -0,0 +1,49 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Patrick Brockmann
+# Contact: Patrick.Brockmann__at__cea.fr
+# $Revision:: 1119                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-10-24 12:41:17 +0200 (Fri, 24 Oct 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+# This script is used to generate a reference file with command :
+# IGCM_debug_Test.ksh > IGCM_debug_Test.ref 2>&1
+# The reference file produced is used by the function IGCM_debug_Check
+# to verify that the libIGCM_debug produce the same results
+
+#=================================================
+libIGCM=`dirname $0`/..
+typeset TaskType=checking
+. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+
+#=================================================
+Verbosity=3
+
+Option1="Hello Earth"
+Option2="Hello Mars"
+
+List="${R_ENTREE}/flux_iceberg . ${R_ENTREE}/Albedo.nc ."
+
+#=================================================
+# function IGCM_debug_Print
+
+IGCM_debug_Print 1 ${Option1}
+IGCM_debug_Print 1 ${Option2}
+
+IGCM_debug_Print 2 "A comment at level 2"
+IGCM_debug_Print 3 "A comment at level 3" "Another comment at level 3"
+IGCM_debug_Print 1 "A comment at level 1"
+IGCM_debug_Print 3 "Another comment at level 3"
+IGCM_debug_Print 2 "Another comment at level 2"
+
+IGCM_debug_Print 1 ${List}
+
+#=================================================
+# function IGCM_debug_PrintVariables
+
+IGCM_debug_PrintVariables 1 Option
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/IGCM_debug_Test.ref
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/IGCM_debug_Test.ref	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/IGCM_debug_Test.ref	(revision 5899)
@@ -0,0 +1,18 @@
+--Debug1--> Hello
+--Debug1--> Earth
+--Debug1--> Hello
+--Debug1--> Mars
+--------Debug2--> A comment at level 2
+--------------Debug3--> A comment at level 3
+--------------Debug3--> Another comment at level 3
+--Debug1--> A comment at level 1
+--------------Debug3--> Another comment at level 3
+--------Debug2--> Another comment at level 2
+--Debug1--> /flux_iceberg
+--Debug1--> .
+--Debug1--> /Albedo.nc
+--Debug1--> .
+--Debug1--> Option1=Hello
+--Debug1--> Earth
+--Debug1--> Option2=Hello
+--Debug1--> Mars
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/libIGCM_debug.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/libIGCM_debug.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_debug/libIGCM_debug.ksh	(revision 5899)
@@ -0,0 +1,1062 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Patrick Brockmann, Martial Mancip
+# Contact: Patrick.Brockmann__at__cea.fr Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1478                                     $ Revision of last commit
+# $Author:: mafoipsl                                   $ Author of last commit
+# $Date:: 2019-03-05 16:30:16 +0100 (Tue, 05 Mar 2019) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#==================================================
+
+#==================================================
+# Add high level verbosity
+typeset -i Verbosity=${Verbosity:=3}
+
+#==================================================
+# DEBUG_debug
+# Add low level verbosity
+DEBUG_debug=${DEBUG_debug:=false}
+
+#D- postProcessingStopLevel (0,1,2,3)
+#D- 3 stop if any post-processing went wrong
+#D- 2 dont stop if atlas, monitoring or metrics failed
+#D- 1 dont stop if atlas, monitoring, metrics, create_ts or create_se failed
+#D- 0 dont stop if atlas, monitoring, metrics, create_ts, create_se, rebuild or pack_* failed
+postProcessingStopLevel=${postProcessingStopLevel:=0}
+
+#==================================================
+# GENERATE RANDOM ERROR ; only apply if ( ${DEBUG_debug} )
+typeset -r RandomError=false
+
+#==================================================
+# NULL_STR
+# Default null string
+typeset -r NULL_STR="_0_"
+
+#==================================================
+# libIGCM_CurrentTag
+# Current libIGCM tag, check compatibilty with *.card
+typeset -r libIGCMVersion="2.8.3"
+
+#==================================================
+# Exit Flag (internal debug)
+# When true, end the master loop AFTER SAVES FILES
+ExitFlag=false
+
+#==================================================
+# When we start to run the simulation is not finished
+simulationIsOver=false
+
+#==================================================
+# When we start to run we dont flush AMQP messages
+FlushAMQP=false
+
+#==================================================
+# Declare a stack of functions calls
+unset IGCM_debug_Stack
+unset IGCM_debug_StackArgs
+unset IGCM_debug_StackTiming
+IGCM_debug_Stack[0]=${NULL_STR}
+IGCM_debug_StackArgs[0]=${NULL_STR}
+IGCM_debug_StackTiming[0]=${NULL_STR}
+IGCM_debug_LenStack=0
+
+#D-#==================================================================
+#D-function IGCM_debug_getDate_ms
+#D- * Purpose: Give number of milliseconds since 01-jan-1970
+function IGCM_debug_getDate_ms
+{
+  typeset nanosecs ms
+  # nano secondes since 01-jan-1970
+  nanosecs=$( date +%s%N )
+
+  # truncate the last 6 digits to get milliseconds since 01-jan-1970
+  ms=${nanosecs:0:${#nanosecs}-6}
+
+  echo "$ms"
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_sizeOfTabContent
+#D- * Purpose: Give sumed size of a list of files
+#D- * Usage: IGCM_debug_sizeOfTabContent entityList destination
+#D- *        where entityList is a list of files or directory
+#D- *        where dest is either a directory or a file name
+function IGCM_debug_sizeOfTabContent
+{
+  typeset entityListe destination iEntity sizeKo sumSizeKo sumSizeMo
+
+  eval set +A entityListe \${${1}}
+  destination=${2}
+  sumSizeKo=0
+
+  # Here we will try to compute size (file or directory size) from local path and not from archive.
+  for ((i = 0; i < ${#entityListe[*]}; i += 1)) ; do
+    if [ -f ${entityListe[$i]} ] ; then
+      # One file or a bunch of files has been copied without renaming from a visible filesystem
+      iEntity=${entityListe[$i]}
+    elif [ -f ${entityListe[$i]##/*/} ] ; then
+      # One file or a bunch of files has been copied without renaming from an non visible filesystem
+      # remove path /home/login/../ from entityListe elements
+      iEntity=${entityListe[$i]##/*/}
+    elif [ -f ${destination} ] ; then
+      # a file has been copied and renamed
+      iEntity=${destination}
+    elif [ -f ${destination}/${entityListe[$i]##/*/} ] ; then
+      # a copy in a directory but not in ${PWD}
+      iEntity=${destination}/${entityListe[$i]##/*/}
+    elif [ -d ${entityListe[$i]} ] ; then
+      # a directory has been copied from a non remote place
+      iEntity=${entityListe[$i]}
+    elif [ -d ${destination}/${entityListe[$i]##/*/} ] ; then
+      # a directory has been copied from a remote archive and not renamed
+      iEntity=${destination}/${entityListe[$i]##/*/}
+    elif [ -d ${destination} ] ; then
+      # a directory has been copied from a remote archive and renamed
+      iEntity=${destination}
+    fi
+    sizeKo=$( du --apparent-size -skL ${iEntity} | gawk '{print $1}' )
+    sumSizeKo=$(( $sumSizeKo + $sizeKo ))
+  done
+  sumSizeMo=$( echo "scale=6;${sumSizeKo}/1024" | bc )
+  echo "${sumSizeKo}|${sumSizeMo}"
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_send_AMQP_msg__MAILTUNNEL
+#D- * Purpose: Take over AMQP C client using mail as a message recipient
+#D- * One argument : base64 encoded message
+#D- * Attach encoded config.card when starting the simulation
+
+function IGCM_debug_send_AMQP_msg__MAILTUNNEL {
+
+  typeset b64_encoded_msg mail_recipient
+  typeset buffer send_messages mail_frequency
+  typeset last_mail_date__file
+  typeset secondsBetweenRefAndLastMail secondsSinceLastMail
+
+  b64_encoded_msg=$1
+
+  mail_recipient="superviseur@mail.ipsl.upmc.fr"
+  send_messages=0
+  mail_frequency=3600 # in seconds
+  # use to keep track when was last mail sent (maybe to be replaced with global variable)
+  last_mail_date__file=${R_BUF}/.stamp.${config_UserChoices_TagName}.${config_UserChoices_JobName}
+  # use to accumulate messages before sending them
+  buffer=${R_BUF}/.buffer.${config_UserChoices_TagName}.${config_UserChoices_JobName}
+
+  # init
+  if [ ! -f "${buffer}" ]; then
+    touch ${buffer}
+  fi
+
+  if [ ! -f "${last_mail_date__file}" ]; then
+    touch ${last_mail_date__file}
+  else
+    # compute last time the file was changed (in seconds)
+    secondsBetweenRefAndLastMail=$(stat -c %Y ${last_mail_date__file})
+    status=$?
+    #
+    # Only execute this block when the stat command succeeded.
+    # The stat command might fail in some circumstance but we consider it is ok to continue anyway.
+    if [ ${status} -eq 0 ] ; then
+      secondsSinceLastMail=$(( $(date +%s) - ${secondsBetweenRefAndLastMail} ))
+      # send message when exceeding threshold
+      [ ${secondsSinceLastMail} -gt ${mail_frequency} ] && send_messages=1
+    fi
+  fi
+
+  # queue messages in the buffer
+  echo ${b64_encoded_msg} >> ${buffer}
+
+  # send mail
+
+  if [ X${initBigBro} = Xtrue ] ; then
+    #echo $(date +"%Y-%m-%dT%H:%M:%S.%N%z") > ${SUBMIT_DIR}/mail.txt
+    mailx -s "[TEMPORARY AMQP CHANNEL]" -a ${SUBMIT_DIR}/config.card.base64 ${mail_recipient} < ${buffer} # send buffer
+    rm -f $buffer ; touch ${buffer}                                    # clear buffer
+    touch ${last_mail_date__file}                                      # memorize last mail date
+    rm -f ${SUBMIT_DIR}/config.card.base64                             # remove temporary file
+    initBigBro=false
+  elif [ ${send_messages} -eq 1 ] ; then
+    #echo $(date +"%Y-%m-%dT%H:%M:%S.%N%z") >> ${SUBMIT_DIR}/mail.txt
+    mailx -s "[TEMPORARY AMQP CHANNEL]" ${mail_recipient}  < ${buffer} # send buffer
+    rm -f ${buffer} ; touch ${buffer}                                  # flush the buffer
+    touch ${last_mail_date__file}                                      # memorize last mail date
+  fi
+
+  if ( ${FlushAMQP} ) ; then
+    mailx -s "[TEMPORARY AMQP CHANNEL]" ${mail_recipient}  < ${buffer} # send buffer
+    rm -f ${buffer}                                                    # cleaning behind us
+    rm -f ${last_mail_date__file}                                      # cleaning behind us
+  fi
+
+  # Allways all good for now.
+  return 0
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_sendAMQP_Purge
+#D- * Purpose: Take over AMQP C client using mail as a message recipient
+#D- * No argument : send a message indicating a simulation has been purged
+
+function IGCM_debug_sendAMQP_Purge {
+
+  typeset mail_recipient encodedBody
+  if [ X${ActivateBigBro} = Xtrue ] ; then
+    mail_recipient="superviseur@mail.ipsl.upmc.fr"
+    # Clea nup tag on server side
+    code=8888
+    # Usual AMQP message to route messages on server side
+    encodedBody=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" |  base64 -w 0 )
+    # send mail
+
+    IGCM_debug_Print 2 "IGCM_debug_sendAMQP_Purge"
+    echo ${encodedBody}|mailx -s "[TEMPORARY AMQP CHANNEL]" ${mail_recipient}
+  fi
+
+  # Allways all good for now.
+  return 0
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_sendAMQP_Metrics
+#D- * Purpose: Take over AMQP C client using mail as a message recipient
+#D- * Two arguments : - Directory where metrics.json files can be found
+#D- *                 - Metrics Group Name. metrics will be added to this group
+#D- * Attach encoded metrics.json files.
+
+function IGCM_debug_sendAMQP_Metrics {
+
+  typeset mail_recipient encodedBody
+  if [ X${ActivateBigBro} = Xtrue ] ; then
+    mail_recipient="superviseur@mail.ipsl.upmc.fr"
+    # Metrics tag on server side
+    code=7100
+    # Usual AMQP message to route messages on server side
+    encodedBody=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"metricsGroupName\":\"${2}\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" |  base64 -w 0 )
+    # send mail
+    attachmentsOptions=""
+    for metricsFile in $( ls $1/*json ) ; do
+      attachmentsOptions="-a ${metricsFile} ${attachmentsOptions}"
+    done
+    IGCM_debug_Print 2 "IGCM_debug_sendAMQP_Metrics"
+    echo ${encodedBody}|mailx -s "[TEMPORARY AMQP CHANNEL]" ${attachmentsOptions} ${mail_recipient}
+  fi
+
+  # Allways all good for now.
+  return 0
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_sendAMQP_projectAccounting
+#D- * Purpose: Take over AMQP C client using mail as a message recipient
+#D- * One argument : - File name where project accounting details are stored
+#D- * Attach encoded accounting file.
+
+function IGCM_debug_sendAMQP_projectAccounting {
+
+  typeset mail_recipient encodedBody
+  if [ X${ActivateBigBro} = Xtrue ] ; then
+    mail_recipient="superviseur@mail.ipsl.upmc.fr"
+    # Metrics tag on server side
+    code=7010
+    # Usual AMQP message to route messages on server side
+    encodedBody=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"accountingProject\":\"${PROJECT}\",\"centre\":\"${CENTER}\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" |  base64 -w 0 )
+    # send mail
+    attachmentsOptions="-a ${1}"
+    IGCM_debug_Print 2 "IGCM_debug_sendAMQP_projectAccounting"
+    echo ${encodedBody}|mailx -s "[TEMPORARY AMQP CHANNEL]" ${attachmentsOptions} ${mail_recipient}
+    # clean behind
+    rm -f $1
+  fi
+
+  # Allways all good for now.
+  return 0
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_SendAMQP
+#D- * Purpose: Send body; encoded body and config.card to rabbitMQ
+function IGCM_debug_sendAMQP {
+
+  typeset decal first additionnalOption encodedBody
+
+  # Encode message Body
+  encodedBody=$( echo "${Body}" | base64 -w 0 )
+
+  # Send config.card ?
+  if [ X${1} = Xactivate ] ; then
+    # Encode config.card
+    cat ${SUBMIT_DIR}/config.card | base64 -w 0 > ${SUBMIT_DIR}/config.card.base64
+    # Prepare additionnal option
+    additionnalOption="-f ${SUBMIT_DIR}/config.card.base64"
+    #
+    initBigBro=true
+  else
+    additionnalOption=
+    #
+    initBigBro=false
+  fi
+
+  # Only cosmetics : stack file
+  if [ X${ActivateStackFilling} = Xtrue ] ; then
+    decal=0
+    while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do
+      printf ' ' >> ${StackFileLocation}/${StackFileName}
+      (( decal = decal + 1 ))
+    done
+    # Log to stack file using human readable format
+    echo "${Body}" >> ${StackFileLocation}/${StackFileName}
+  fi
+
+  # Log separately encoded AMQP message command for reuse in a mock up
+  #echo sendAMQPMsg -h localhost -p 5672 ${additionnalOption} -b ${encodedBody} >> ${RUN_DIR_PATH}/send.AMQP.${config_UserChoices_JobName}.${config_UserChoices_ExperimentName}.${config_UserChoices_SpaceName}.${config_UserChoices_TagName}.${CumulPeriod}.history.txt
+
+  # Send the message
+  if [ X${BigBrotherChannel} = XMAIL ] ; then
+    IGCM_debug_send_AMQP_msg__MAILTUNNEL "${encodedBody}"
+    status=$?
+  else
+    sendAMQPMsg -h localhost -p 5672 ${additionnalOption} -b ${encodedBody}
+    status=$?
+  fi
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_debug_Push/PopStack/ActivateBigBro : command sendAMQPMsg failed error code ${status}"
+    echo sendAMQPMsg -h localhost -p 5672 -b "${Body}"
+    exit 1
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_CallStack
+#D-* Purpose: Print the call stack tree from the oldest to the youngest (opposite of the display standard)
+#D-
+function IGCM_debug_CallStack {
+  if ( $DEBUG_debug ) ; then
+    # Cosmetics
+    typeset i decal
+    i=0
+    until [ $i -eq ${IGCM_debug_LenStack} ]; do
+      decal=0
+      until [ $decal -eq ${i} ]; do
+        printf -- ' '
+        (( decal = decal + 1 ))
+      done
+      echo "$i - ${IGCM_debug_Stack[$(( $IGCM_debug_LenStack-$i-1 ))]}" "(${IGCM_debug_StackArgs[$(( $IGCM_debug_LenStack-$i-1 ))]})"
+      ((i = i + 1))
+    done
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_PushStack
+#D-* Purpose: Push a function name in the stack
+#D-
+function IGCM_debug_PushStack {
+  if ( $DEBUG_debug ) ; then
+    typeset decal inputs startTime_ms
+
+    # Only cosmetics : stack file
+    if [ X${ActivateStackFilling} = Xtrue ] ; then
+      echo >> ${StackFileLocation}/${StackFileName}
+      decal=0
+      while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do
+        printf ' ' >> ${StackFileLocation}/${StackFileName}
+        (( decal = decal + 1 ))
+      done
+
+      # Fill the stack file
+      echo "> ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/${StackFileName}
+    fi
+
+    # Save input list in an indexed array
+    INPUTS=( $@ )
+
+    # Get timing information
+    startTime_ms=$( IGCM_debug_getDate_ms )
+
+    # We add function call name on beginning of the stack
+    set +A IGCM_debug_Stack -- ${1} ${IGCM_debug_Stack[*]}
+
+    # Save timing in milliseconds in an indexed array
+    set +A IGCM_debug_StackTiming -- ${startTime_ms} ${IGCM_debug_StackTiming[*]}
+
+    # We include the "null" Args in the beginning of the StackArgs
+    set +A IGCM_debug_StackArgs ${NULL_STR} ${IGCM_debug_StackArgs[*]}
+
+    # Then, we shift StackArgs tabular
+    # Replacing blank separated list by comma separated list of quoted elements (except the first and last element)
+    if [ $# -gt 1 ]; then
+      IGCM_debug_StackArgs[0]=$(echo ${INPUTS[*]:1} | sed -e "s/\ /\",\"/g" )
+    fi
+
+    # Increment LenStack
+    (( IGCM_debug_LenStack = IGCM_debug_LenStack + 1 ))
+
+    #IGCM_debug_CallStack
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_PopStack
+#D-* Purpose: Pop a function name in the stack
+#D-
+function IGCM_debug_PopStack {
+  if ( $DEBUG_debug ) ; then
+    typeset i decal command arguments startTime_ms endTime_ms
+    typeset instrumentation dest prefix
+    # they are not typeset because they are send "by adress" to son functions
+    # we unset them to avoid "memory effect"
+    unset fileList source
+
+    # INTRODUCE SIMPLE ERROR GENERATOR TO TEST SUPERVISOR
+    # PROBABILITY ERROR IS 0.0001 PER COMMAND OR FUNCTION CALL
+    # THERE ARE ~500 COMMAND OR FUNCTION CALL PER PERIOD
+    # ONLY WHEN TaskType is "computing".
+    if [ X${ActivateBigBro} = Xtrue ] ; then
+      if [ X${TaskType} = Xcomputing ]; then
+        if ( ${RandomError} ) ; then
+          if [ $((RANDOM%10000)) -le 10 ] ; then
+            IGCM_debug_Print 1 "Random error has been triggered"
+            if [ X${ActivateStackFilling} = Xtrue ] ; then
+              echo "RANDOM ERROR" >> ${StackFileLocation}/${StackFileName}
+            fi
+            ExitFlag=true
+          fi
+        fi
+      fi
+    fi
+
+    if [ "${IGCM_debug_Stack[0]}" = "${1}" ]; then
+      # Everything is cool
+
+      # Get timing information
+      endTime_ms=$( IGCM_debug_getDate_ms )
+
+      # Save Stack information before poping the stack
+      command=${IGCM_debug_Stack[0]}
+
+      # Go from comma separated list of quoted elements (except the first and the last element)
+      # to unquoted space separated elements in an array
+      set -A arguments -- $( echo ${IGCM_debug_StackArgs[0]} | sed -e "s/\",\"/\ /g" )
+
+      # Save Stack information before poping the stack
+      startTime_ms=${IGCM_debug_StackTiming[0]}
+
+      # Pop the stack
+      (( IGCM_debug_LenStack = IGCM_debug_LenStack - 1 ))
+      set -A IGCM_debug_Stack -- ${IGCM_debug_Stack[*]:1}
+      set -A IGCM_debug_StackArgs -- ${IGCM_debug_StackArgs[*]:1}
+      set -A IGCM_debug_StackTiming -- ${IGCM_debug_StackTiming[*]:1}
+    else
+      echo 'IGCM_debug_Exit : stack is corrupted ! LenStack =' ${IGCM_debug_LenStack}
+      IGCM_debug_Exit $@
+    fi
+
+    # Special actions depending on command to prepare IGCM_debug_PrintInfosActions call
+    # We are interested in:
+    #  0. Which command performs the work
+    #  1. Size of entity we are working with
+    #  2. Where are we reading
+    #  3. Where are we writing
+    #  4. How long it took
+
+    instrumentation=false
+
+    case ${command} in
+    # Classical copy (only files are given to IGCM_sys_Cp as options)
+    IGCM_sys_Cp)
+      instrumentation=true
+      # All but the latest
+      fileList=${arguments[*]:0:${#arguments[*]}-1}
+      # just need the first file to get the directory
+      source=${arguments[0]}
+      # Nothing but the latest
+      dest=${arguments[${#arguments[*]}-1]}
+      # Size of file whose name are stored in a list
+      entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} )
+      ;;
+
+    # Copy from archive machine or from buffer
+    IGCM_sys_Get|IGCM_sys_GetBuffer)
+      instrumentation=true
+      if [ ${#arguments[*]} -eq 2 ] ; then
+        source=${arguments[0]}
+        dest=${arguments[1]}
+        # Size of file whose name are stored in a variable
+        entitySize=$( IGCM_debug_sizeOfTabContent source ${dest} )
+      elif ( [ ${#arguments[*]} -eq 3 ] && [ ${arguments[0]} = '/l' ] ) ; then
+        # IGCM_sys_Get /l liste_file[*] /ccc/scratch/cont003/dsm/p86denv/RUN_DIR/985998_14754/
+        # Keep the array name hosting the all list
+        eval set +A fileList \${${arguments[1]}}
+        # just need the first file to get the directory
+        source=${fileList[0]}
+        dest=${arguments[2]}
+        # Size of file whose name are stored in a list
+        entitySize=$( IGCM_debug_sizeOfTabContent fileList[*] ${dest} )
+      elif [ [ ${#arguments[*]} -ge 3 ] ; then
+       # All but the latest
+        fileList=${arguments[*]:0:${#arguments[*]}-1}
+        # just need the first file to get the directory
+        source=${arguments[0]}
+        # Nothing but the latest
+        dest=${arguments[${#arguments[*]}-1]}
+        # Size of file whose name are stored in a list
+        entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} )
+      fi
+      ;;
+
+    # Copy from compute node or copy to archive/buffer
+    IGCM_sys_Get_Master|IGCM_sys_Get_Dir|IGCM_sys_Put_Out|IGCM_sys_PutBuffer_Out)
+      instrumentation=true
+      source=${arguments[0]}
+      dest=${arguments[1]}
+      # Size of file whose name are stored in a variable
+      entitySize=$( IGCM_debug_sizeOfTabContent source ${dest} )
+      ;;
+
+    # Rebuild command
+    IGCM_sys_rebuild|IGCM_sys_rebuild_station)
+      instrumentation=true
+      # All but the first
+      fileList=${arguments[*]:1:${#arguments[*]}-1}
+      # just need a file to get the directory
+      source=${arguments[1]}
+      # Nothing but the first
+      dest=${arguments[0]}
+      # Size of file whose name are stored in a list
+      entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} )
+      ;;
+
+    # NCO commands
+    IGCM_sys_ncrcat|IGCM_sys_ncecat|IGCM_sys_ncra|IGCM_sys_ncks|IGCM_sys_cdo)
+      # Example of what we want to catch : only filenames in those command lines
+      # IGCM_sys_ncrcat -O -v ${list_var_final_ncrcat} ${OUT_SE[*]} ${RESULT_SE}
+      # IGCM_sys_ncrcat --hst -v ${liste_coord}${var} ${file1} ${liste_file_tmp[*]} ${file_out}
+      # IGCM_sys_ncrcat -p ${dir} ${liste_file_tmp} --output ${output}
+      # IGCM_sys_ncrcat -x -v ${list_var} -p ${dir} ${liste_file_tmp} --output ${output}
+      instrumentation=true
+      keepGoing=true
+      prefix=.
+      i=0
+      while ( ${keepGoing} ) ; do
+        # the last one is not interesting
+        if [ ${i} -eq ${#arguments[*]}-1 ] ; then
+          keepGoing=false
+        # look after "-p" option. Path prefix is the following arguments
+        elif [ ${arguments[${i}]} = "-p" ] ; then
+          ((i = i + 1))
+          prefix=${arguments[${i}]}
+          ((i = i + 1))
+        elif [ ${i} -eq ${#arguments[*]}-1 ] ; then
+          keepGoing=false
+        # looking for files
+        elif [ -f ${prefix}/${arguments[${i}]} ] ; then
+          fileList="${fileList} ${prefix}/${arguments[${i}]}"
+          ((i = i + 1))
+        # other options are not interesting
+        else
+          ((i = i + 1))
+        fi
+      done
+
+      # i value is at least 1
+      # just need one file to get the directory
+      source=$( echo ${fileList} | gawk '{print $1}' )
+      # Nothing but the latest
+      dest=${arguments[${#arguments[*]}-1]}
+      # Size of file whose name are stored in a list
+      entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} )
+      ;;
+    esac
+
+    # Print information related to instrumentation
+    ( ${instrumentation} ) && IGCM_debug_PrintInfosActions ${command} ${entitySize} ${startTime_ms} ${endTime_ms} ${dest} ${source}
+
+    # Only cosmetics : stack file
+    if [ X${ActivateStackFilling} = Xtrue ] ; then
+      decal=0
+      while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do
+        printf ' ' >> ${StackFileLocation}/${StackFileName}
+        (( decal = decal + 1 ))
+      done
+    fi
+
+    if ( ${ExitFlag} ) ; then
+      # Inform the stack file
+      if [ X${ActivateStackFilling} = Xtrue ] ; then
+        echo '!!! ExitFlag has been activated !!!' >> ${StackFileLocation}/${StackFileName}
+      fi
+
+      # Unplugged message 4900 handling for now. To ease downstream treatment.
+      if [ X${ActivateBigBro} = Xtrue ] ; then
+        if [ X${TaskType} = Xcomputing ]; then
+          # RabbitMQ message code "COMPUTING JOBs COMMAND FAILURE"
+          code=1900
+        elif [ X${TaskType} = Xpost-processing ]; then
+          # RabbitMQ message code "POST-PROCESSING JOBs COMMAND FAILURE"
+          code=2900
+        elif [ X${TaskType} = Xchecking ]; then
+          # RabbitMQ message code "POST-PROCESSING FROM CHECKER JOBs COMMAND FAILURE"
+          code=3900
+        fi
+        # RabbitMQ message body
+        Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"command\":\"${command}\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" )
+
+        # Fill the rabbitMQ queue
+        IGCM_debug_sendAMQP
+      fi
+    else
+      # Inform the stack file
+      if [ X${ActivateStackFilling} = Xtrue ] ; then
+        echo "< ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/${StackFileName}
+      fi
+    fi
+
+    # Reset array if necessary
+    if [ ${IGCM_debug_LenStack} = 0 ]; then
+      #echo
+      #IGCM_debug_Print 3 "Clean stack array"
+      #echo
+      unset IGCM_debug_Stack
+      unset IGCM_debug_StackArgs
+      unset IGCM_debug_StackTiming
+      IGCM_debug_Stack[0]=${NULL_STR}
+      IGCM_debug_StackArgs[0]=${NULL_STR}
+      IGCM_debug_StackTiming[0]=${NULL_STR}
+    fi
+  fi
+  #IGCM_debug_CallStack
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_BigBro_Initialize
+#D-* Purpose: switch rabbitMQ on
+#D-
+function IGCM_debug_BigBro_Initialize {
+  IGCM_debug_PushStack "IGCM_debug_BigBro_Initialize"
+
+  typeset postProcessingIDLength postProcessingName postProcessingDate postProcessingDimn postProcessingComp postProcessingFile accountingFile
+
+# Message type standard fields:
+# https://github.com/Prodiguer/prodiguer-docs/wiki/MQ-Standard-Message-Fields
+
+# Message type dictionnary and custom fields:
+# https://github.com/Prodiguer/prodiguer-docs/wiki/Monitoring-Message-Dictionary
+
+  if [ X${BigBrother} = Xtrue ] ; then
+    # create a unique ID for this specific job
+    jobuid=$(uuidgen)
+
+    # get the assigned id by the scheduler for that job
+    IGCM_sys_getJobSchedulerID jobSchedulerID
+
+    if [ X${TaskType} = Xcomputing ]; then
+      if ( ${FirstInitialize} ) ; then
+        # RabbitMQ message code "BEGIN A SIMULATION"
+        code=0000
+        # create and persist a unique id for this simulation
+        simuid=$(uuidgen)
+        IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration simuid ${simuid}
+        # Standard fields for the first message
+        genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"activity\":\"IPSL\",\"name\":\"${config_UserChoices_JobName}\",\"experiment\":\"${config_UserChoices_ExperimentName}\",\"space\":\"${config_UserChoices_SpaceName}\",\"model\":\"${config_UserChoices_TagName}\",\"startDate\":\"${config_UserChoices_DateBegin}\",\"endDate\":\"${config_UserChoices_DateEnd}\",\"login\":\"${LOGIN}\",\"centre\":\"${CENTER}\",\"machine\":\"${MASTER}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" )
+        # RabbitMQ message body with specific fields associated message codes treated here
+        Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"accountingProject\":\"${PROJECT}\",\"jobWarningDelay\":\"${jobWarningDelay}\",\"jobSchedulerID\":\"${jobSchedulerID}\",\"jobSubmissionPath\":\"${SUBMIT_DIR}\",\"archivePath\":\"${R_SAVE}\",\"storagePath\":\"${R_BUFR}\",\"storageSmallPath\":\"${R_FIGR}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" )
+        # Fill the rabbitMQ queue (the config.card in use will be sent)
+        IGCM_debug_sendAMQP activate
+      else
+        # RabbitMQ message code "A NEW COMPUTING JOB IS RUNNING PART OF A SIMULATION"
+        code=1000
+        # retrieve this simulation's unique id
+        IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration simuid
+        simuid=${run_Configuration_simuid}
+        # Using standard fields for message others than the first one. Still subject to change
+        genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" )
+        # RabbitMQ message body with specific fields associated message codes treated here
+        Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"accountingProject\":\"${PROJECT}\",\"jobWarningDelay\":\"${jobWarningDelay}\",\"jobSchedulerID\":\"${jobSchedulerID}\",\"jobSubmissionPath\":\"${SUBMIT_DIR}\",\"archivePath\":\"${R_SAVE}\",\"storagePath\":\"${R_BUFR}\",\"storageSmallPath\":\"${R_FIGR}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" )
+        # Fill the rabbitMQ queue
+        IGCM_debug_sendAMQP
+      fi
+
+      # NOT VERY NICE BUT ... IT WORKS
+      # Be sure that the genericSimulationID will be small from now on
+      # Using standard fields for messages others than the first one. Still subject to change
+      genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" )
+
+    elif [ X${TaskType} = Xpost-processing ]; then
+      # RabbitMQ message code "A NEW POST-PROCESSING JOB IS RUNNING PART OF A SIMULATION"
+      code=2000
+      # retrieve this simulation's unique id
+      IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration simuid
+      simuid=${run_Configuration_simuid}
+      # Using standard fields for message others than the first one. Still subject to change
+      genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" )
+      
+      # Specify the post-processing task we are dealing with
+      postProcessingIDLength=$( echo "${Script_Post_Output}" | tr -d -c "\." | wc -c )
+      postProcessingName=$( echo "${Script_Post_Output}" | gawk -F. '{print $1}' )
+      postProcessingDate=$( echo "${Script_Post_Output}" | gawk -F. '{print $2}' )
+      postProcessingDimn="null"
+      postProcessingComp="null"
+      postProcessingFile="null"
+      if [ ${postProcessingIDLength} -eq 2 ] ; then
+        postProcessingDimn=$( echo "${Script_Post_Output}" | gawk -F. '{print $3}' )
+      elif [ ${postProcessingIDLength} -eq 4 ] ; then
+        postProcessingComp=$( echo "${Script_Post_Output}" | gawk -F. '{print $4}' )
+        postProcessingFile=$( echo "${Script_Post_Output}" | gawk -F. '{print $5}' )
+      fi
+
+      # RabbitMQ message body with specific fields associated message codes treated here
+      Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"accountingProject\":\"${PROJECT}\",\"jobWarningDelay\":\"${jobWarningDelay}\",\"jobSchedulerID\":\"${jobSchedulerID}\",\"jobSubmissionPath\":\"${SUBMIT_DIR}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\",\"postProcessingName\":\"${postProcessingName}\",\"postProcessingDate\":\"${postProcessingDate}\",\"postProcessingDimn\":\"${postProcessingDimn}\",\"postProcessingComp\":\"${postProcessingComp}\",\"postProcessingFile\":\"${postProcessingFile}\"}" )
+      # Fill the rabbitMQ queue
+      IGCM_debug_sendAMQP
+
+    elif [ X${TaskType} = Xchecking ]; then
+      # retrieve this simulation's unique id
+      IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration simuid
+      simuid=${run_Configuration_simuid}
+      # Using standard fields for message others than the first one. Still subject to change
+      genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"N\/A\"" )
+    fi
+
+    # Turn the flag on
+    ActivateBigBro=true
+
+    if [ X${TaskType} = Xcomputing ]; then
+      # Save project accounting details in a file
+      accountingFile=cpt_${CENTER}_${PROJECT}_$( date +"%Y%m%d_%H%M" ).dat
+      IGCM_sys_projectAccounting ${accountingFile}
+
+      # And send it
+      IGCM_debug_sendAMQP_projectAccounting ${accountingFile}
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_debug_BigBro_Initialize"
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_BigBro_Update
+#D-* Purpose: Update rabbitMQ messages exchanges during the run
+#D-
+function IGCM_debug_BigBro_Update {
+  IGCM_debug_PushStack "IGCM_debug_BigBro_Update"
+
+  # Message type standard fields:
+  # https://github.com/Prodiguer/prodiguer-docs/wiki/MQ-Standard-Message-Fields
+
+  # Message type dictionnary and custom fields:
+  # https://github.com/Prodiguer/prodiguer-docs/wiki/Monitoring-Message-Dictionary
+
+  if [ X${ActivateBigBro} = Xtrue ] ; then
+    if [ X${TaskType} = Xcomputing ]; then
+      # Send ${PeriodDateBegin}, ${PeriodDateEnd} and ${CumulPeriod}
+      # RabbitMQ message body
+      Body=$( echo "{${genericSimulationID},\"msgCode\":\"1001\",\"PeriodDateBegin\":\"${PeriodDateBegin}\",\"PeriodDateEnd\":\"${PeriodDateEnd}\",\"CumulPeriod\":\"${CumulPeriod}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" )
+      # Fill the rabbitMQ queue
+      IGCM_debug_sendAMQP
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_debug_BigBro_Update"
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_BigBro_Finalize
+#D-* Purpose: Finalize rabbitMQ messages exchanges
+#D-
+function IGCM_debug_BigBro_Finalize {
+  IGCM_debug_PushStack "IGCM_debug_BigBro_Finalize"
+
+  # Message type standard fields:
+  # https://github.com/Prodiguer/prodiguer-docs/wiki/MQ-Standard-Message-Fields
+
+  # Message type dictionnary and custom fields:
+  # https://github.com/Prodiguer/prodiguer-docs/wiki/Monitoring-Message-Dictionary
+
+  if ( $DEBUG_debug ) ; then
+    if [ X${ActivateBigBro} = Xtrue ] ; then
+      if [ X${TaskType} = Xcomputing ]; then
+        if ( ${simulationIsOver} ) ; then
+          # RabbitMQ message code "SIMULATION ENDS"
+          code=0100
+          FlushAMQP=true
+        elif ( ${ExitFlag} ) ; then
+          # RabbitMQ message code "EXIT THE JOBS BECAUSE ERROR(S) HAS BEEN TRIGGERED"
+          code=1999
+          FlushAMQP=true
+        else
+          # RabbitMQ message code "COMPUTING JOB ENDS"
+          code=1100
+        fi
+      elif [ X${TaskType} = Xpost-processing ]; then
+        if ( ${ExitFlag} ) ; then
+          # RabbitMQ message code "POST-PROCESSING JOB FAILS"
+          code=2999
+          FlushAMQP=true
+        else
+          # RabbitMQ message code "POST-PROCESSING JOB ENDS"
+          code=2100
+          FlushAMQP=true
+        fi
+      elif [ X${TaskType} = Xchecking ]; then
+        if ( ${ExitFlag} ) ; then
+          # RabbitMQ message code "POST-PROCESSING JOB FAILS"
+          code=3999
+          FlushAMQP=true
+        else
+          # RabbitMQ message code "POST-PROCESSING JOB ENDS"
+          code=3100
+          FlushAMQP=true
+        fi
+      fi
+      # RabbitMQ message body
+      Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" )
+      # Fill the rabbitMQ queue
+      IGCM_debug_sendAMQP
+    fi
+  fi
+  
+  IGCM_debug_PopStack "IGCM_debug_BigBro_Finalize"
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_Exit
+#D-* Purpose: Print Call Stack and set ExitFlag to true
+#D-
+function IGCM_debug_Exit {
+  IGCM_debug_PushStack "IGCM_debug_Exit"
+  echo "IGCM_debug_Exit : " "${@}"
+  echo
+  echo "!!!!!!!!!!!!!!!!!!!!!!!!!!"
+  echo "!!   ERROR TRIGGERED    !!"
+  echo "!!   EXIT FLAG SET      !!"
+  echo "!------------------------!"
+  echo
+  IGCM_debug_CallStack
+  ExitFlag=true
+  IGCM_debug_PopStack "IGCM_debug_Exit"
+}
+
+#D-#==================================================
+#D-function IGCM_debug_Verif_Exit
+#D-* Purpose: exit with number 1 if ExitFlag is true
+#D-
+function IGCM_debug_Verif_Exit {
+  if ( ${ExitFlag} ) ; then
+    echo "IGCM_debug_Verif_Exit : Something wrong happened previously."
+    echo "IGCM_debug_Verif_Exit : ERROR and EXIT keyword will help find out where."
+    # Only computing TaskType stops the job for now.
+    if [ X${TaskType} = Xcomputing ] ; then
+      IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Fatal"
+      echo "                        EXIT THE JOB."
+      echo
+      IGCM_debug_CallStack
+
+      # Mail notification
+      IGCM_sys_SendMail
+
+      # Inform the rabbitMQ queue
+      IGCM_debug_BigBro_Finalize
+
+      # And Good Bye
+      date
+      exit 1
+
+    elif [ X${TaskType} = Xpost-processing ] ; then
+      StopAll=false
+      typeset postProcessingName
+      postProcessingName=$( echo "${Script_Post_Output}" | gawk -F. '{print $1}' )
+      # Test if we need to stop the computing job
+      case ${postProcessingName} in
+      atlas*|monitoring*|metrics*)
+        [ ${postProcessingStopLevel} -gt 2 ] && StopAll=true ;;
+      create_*)
+        [ ${postProcessingStopLevel} -gt 1 ] && StopAll=true ;;
+      rebuild*|pack_*)
+        [ ${postProcessingStopLevel} -gt 0 ] && StopAll=true ;;
+      esac
+      # Notify the computing job that something wrong happened and stop it.
+      ( ${StopAll} ) && IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Fatal.${Script_Post_Output}"
+
+      # If SpaceName is PROD we stop when post_processing failed
+      if [ X${config_UserChoices_SpaceName} = XPROD ] ; then
+        echo "                        EXIT THE POST-PROCESSING JOB."
+        echo
+        IGCM_debug_CallStack
+
+        # Inform the rabbitMQ queue
+        IGCM_debug_BigBro_Finalize
+
+        # And Good Bye
+        date
+        exit 1
+      else
+        echo "In config.card the variable SpaceName is not in PROD"
+        echo "              SO WE DO NOT EXIT THE JOB."
+        echo
+        date
+      fi
+    elif [ X${TaskType} = Xchecking ] ; then
+      echo "Nothing will happen for now"
+    fi
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_Print
+#D-* Purpose: Print arguments according to a level of verbosity.
+#D-
+function IGCM_debug_Print
+{
+  typeset level=$1
+  shift
+
+  if [ X"${1}" = X"-e" ]; then
+    typeset cmd_echo="echo -e"
+    shift
+  else
+    typeset cmd_echo="echo"
+  fi
+
+  if [ ${level} -le ${Verbosity} ] ; then
+    typeset i
+    case "${level}" in
+    1) for i in "$@" ; do
+      ${cmd_echo} $(date +"%Y-%m-%d %T") "--Debug1-->" ${i}
+      done ;;
+    2) for i in "$@" ; do
+      ${cmd_echo} $(date +"%Y-%m-%d %T") "--------Debug2-->" ${i}
+      done ;;
+    3) for i in "$@" ; do
+      ${cmd_echo} $(date +"%Y-%m-%d %T") "--------------Debug3-->" ${i}
+      done ;;
+    esac
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_PrintVariables
+#D-* Purpose: Print arguments when match a pattern
+#D-           according to a level of verbosity.
+function IGCM_debug_PrintVariables
+{
+  typeset level=$1
+  shift
+
+  list=$( set | grep ^$1 | sed -e "s/'//g" )
+
+  if [ "X${list}" != X ]  ; then
+    IGCM_debug_Print ${level} ${list}
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_PrintInfosActions
+#D-* Purpose: Print information related to instrumentation
+function IGCM_debug_PrintInfosActions
+{
+  typeset actionType=$1
+  typeset entitySize=$2
+  typeset start_ms=$3
+  typeset end_ms=$4
+
+  typeset dest=$5
+  typeset source=$6
+
+  typeset diff_ms entitySizeKo entitySizeMo flux_Ko_ms flux_Ko_s flux_Mo_s
+  typeset dirFrom dirTo
+
+  diff_ms=$(( $end_ms - $start_ms ))
+  # echo "diff_ms=$diff_ms"
+
+  entitySizeKo=$( echo ${entitySize} | gawk -F"|" '{print $1}' )
+  # echo "entitySizeKo=$entitySizeKo"
+  entitySizeMo=$( echo ${entitySize} | gawk -F"|" '{print $2}' )
+
+  # flux en Ko / ms
+  flux_Ko_ms=$( echo "scale=6;${entitySizeKo}/${diff_ms}" | bc )
+  # echo "flux_Ko_ms=$flux_Ko_ms"
+
+  # flux en Ko / s
+  flux_Ko_s=$(( $flux_Ko_ms * 1000 ))
+  # echo "flux_Ko_s=$flux_Ko_s"
+
+  # flux en Mo / s
+  flux_Mo_s=$( echo "scale=6;${flux_Ko_s}/1024" | bc )
+  # echo "flux_Mo_s=$flux_Mo_s"
+
+  if [ -d $dest ] ; then
+    dirTo=$( readlink -f ${dest} )
+  else
+    dirTo=$( readlink -f $( dirname ${dest} ) )
+  fi
+
+  if [ -d $source ] ; then
+    dirFrom=$( readlink -f ${source} )
+  else
+    dirFrom=$( readlink -f $( dirname ${source} ) )
+  fi
+
+  instrumentationContent=$( echo "\"actionName\":\"${actionType}\",\"size_Mo\":\"${entitySizeMo}\",\"duration_ms\":\"${diff_ms}\",\"throughput_Mo_s\":\"${flux_Mo_s}\",\"dirFrom\":\"${dirFrom}\",\"dirTo\":\"${dirTo}\"" )
+
+  if [ X${ActivateStackFilling} = Xtrue ] ; then
+    echo "{${instrumentationContent}}" >> ${StackFileLocation}/${StackFileName}
+  fi
+
+  # Inform the rabbitMQ queue
+  if [ X${ActivateBigBro} = Xtrue ] ; then
+    # RabbitMQ message body
+    Body=$( echo "{${genericSimulationID},\"msgCode\":\"7000\",\"msgUID\":\"$(uuidgen)\",${instrumentationContent},\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" )
+    # Fill the rabbitMQ queue
+    IGCM_debug_sendAMQP
+  fi
+}
+
+#D-#==================================================================
+#D-function IGCM_debug_Check
+#D- * Purpose: Check the present file by comparison with a reference file
+function IGCM_debug_Check
+{
+  #---------------------
+  if [ ! -n "${libIGCM}" ] ; then
+    echo "Check libIGCM_debug ..........................................[ FAILED ]"
+    echo "--Error--> libIGCM variable is not defined"
+    exit 2
+  fi
+
+  #---------------------
+  if [ ! -n "${Verbosity}" ] ; then
+    echo "Check libIGCM_debug ..........................................[ FAILED ]"
+    echo "--Error--> Verbosity variable is not defined"
+    exit 3
+  fi
+
+  #---------------------
+  # Need to remove timestamps here
+  diff ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ref <(${libIGCM}/libIGCM_debug/IGCM_debug_Test.ksh | sed -e "s:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9] ::g") > /dev/null 2>&1
+  status=$?
+
+  if [ ${status} -eq 0 ] ; then
+    echo "Check libIGCM_debug ..............................................[ OK ]"
+  else
+    echo "Check libIGCM_debug ..........................................[ FAILED ]"
+    echo "--Error--> Execution of ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ksh"
+    echo "           has produced the file IGCM_debug_Test.ref.failed"
+    echo "           Please analyse differences with the reference file by typing:"
+    echo "           diff IGCM_debug_Test.ref.failed ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ref"
+    echo "           Report errors to the author: Patrick.Brockmann@cea.fr"
+    diff ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ref <(${libIGCM}/libIGCM_debug/IGCM_debug_Test.ksh | sed -e "s:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9] ::g")
+    exit 4
+  fi
+  #---------------------
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_ensemble/ENSEMBLE_DOC.txt
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_ensemble/ENSEMBLE_DOC.txt	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_ensemble/ENSEMBLE_DOC.txt	(revision 5899)
@@ -0,0 +1,151 @@
+04/06/2014 - N.LEBAS
+
+**********************************
+ENSEMBLE JOB CREATION
+**********************************
+
+Updates 04/06/2014
+------------------
+1) Updates of Ensemble DATE:
+   Fix minor bug: periodic member names start to 0 as for non-periodic
+
+   Create new file "Qclean.PeriodLength.ENSNAME.sh" which allow 
+   user to use clean_PeriodLength.job scripts for all members.
+   
+   New option "INITFROM_NONPERIODIC" is avalaible in ensemble.card to use different 
+   simulations for restart (use INITFROM option for all if it is not fill).
+   
+2) Updates of Ensemble PERTURB:
+   Create new file "Qclean.PeriodLength.ENSNAME.sh" which allow 
+   user to use clean_PeriodLength scripts for all members.
+   
+3) Updates for ins_job:
+   When a new directory is created from config.card, ensemble.card is copy inside if it 
+   exists.
+   
+   If -e option is used, ins_job also works when a new directory is created. But it is 
+   still only consider the ensemble.card present in the directory where the command was
+   used (it doesn't look for all ensemble.card present in configuration).
+      
+   Update variable name for "ensemble.card" from $FileName to $F_CFG_ENS to be coherent 
+   with $F_CFG for 'config.card'.
+  
+
+Updates 11/04/2014
+------------------
+1) Updates of libIGCM_ensemble.ksh:
+  New function "IGCM_ensemble_Init" to read the "active" parameter for each 
+  ensemble type. Ins_job could then call only functions link to active ensemble.
+  
+  Function "IGCM_ensemble_SetAlpha" fill Alpha and AlphaMonth vectors used to create 
+  member name suffix (A,B...). Actually return Alpha= A to Z vector and AlphaMonth=a to l
+  but it could be adapted later to return n suffixes (n = members number). 
+  
+  11/04/2014: QsubXXX.txt file become QsubXXX.sh (seems more coherent to it content).
+
+2) Updates of Ensemble PERTURB
+  In "ensemble.card" all parameters are in english, so as comments over each param.
+  Read "JobName" in "config.card" directly, so ensemble.card NAME could be different.
+  Creation of symbolic link to DRIVER directory for each member (mandatory with IPSLCM5_v5).
+  Check if directories for each member exist. If this is the case, there is no modification 
+  of it (don't touch config.car and Jobxxx inside). Create it else and add command line to
+  Qsub.xxx.txt file.
+  
+3) Ensemble DATE
+  Create automatically a set of experiments with defined length and restart file. The 
+  descritpion could be defined in a periodic or non-periodic way (or a mix of both). 
+  11/04/2014: Update subdir names as ${ENSNAME}${restartnb}A/ and add "_per" suffix for 
+  periodic directories.
+    
+4) Ensemble PARAMETRIC
+  Test active parameter in ins_job and print "not implemented yet".
+
+
+Usage
+-----
+First of all you need to add a new section called "Ensemble" in config.card - ignored if 
+ins_job script is not using for creating an ensemble - as below:
+[Ensemble]
+#D- Ensemble run ? 'y' or 'n'
+#D- If 'y', fill in ensemble.card !!
+EnsembleRun= y
+EnsembleName=
+EnsembleDate=
+EnsembleType=
+
+Note that all empty fields will be filled automatically with the ensemble. All of them 
+are only to help you to remind the conditions of the run, they don't change the run of 
+the Job.
+
+All parameters for ensemble description are in "ensemble.card" and global template of 
+simulations are in the "config.card".
+
+Check that you get COMP, POST, PARAM and DRIVER (for IPSLCM5_v5) directories in experiment
+folder.
+Once "ensemble.card" and "config.card" are correctly written,  to create an ensemble 
+simply type: 
+
+       ins_job -e
+
+This will create all the directories of the ensemble and Qsub.xxx.sh, a shell file 
+containing all command to submit all jobs (PeriodNb=60 for all simulations).
+
+The Qclean.PeriodLength.xxx.sh is bash file to use clean_PeriodLength script for
+all simulations.
+
+NOTE: If a directory exists, ins_job won't modify it. If only some directories of 
+the ensemble are presents, it will create the missing one and complete Qsub.xxx.sh 
+shell file.
+
+NOTE: If you put ensemble.card and config.card directly in [...]/modipsl/config/IPSLCM5_v5
+folder, it will create a new directory from config.card "JobName" value. Then copy the 2 
+card files and generate the ensemble structure.
+
+Configuration
+-------------
+
+1) Peturb ensembles
+   To be done by S. Nguyen.
+
+2) Date restart ensembles
+   
+   In ensemble.card all configuration of this ensemble are in [Ens_DATE] section.
+   Available options for this section are:
+   	   active*: 'y' for using date ensemble, 'n' else.
+	   NAME*: name of the ensemble (used to create root directory)
+	   LENGTH*: default length of the simulation for non periodic and duration 
+	   	   for all periodic
+	   INITFROM*: Restart name to find all restart files (also use as prefix for
+	   	     all simulations)
+	   INITPATH*: Restart global directory  
+   
+	   BEGIN_INIT(1): start date of the first periodic simulation 
+	   END_INIT(1): start date of the last periodic simulation
+	   PERIODICITY(1): duration between the start of 2 periodic simulations
+	   BEGIN_RESTART(1): date of the first restart file (next files will be 
+	   		     determined adding periodicity length conform to 
+			     config.card calendar).
+	   
+	   NONPERIODIC(2): list of start dates for all simulations
+	   RESTART_NONPERIODIC(2): list of corresponding restart dates
+	   INITFROM_NONPERIODIC(2): simulation name to restart for each simulation. 
+	   			    IF empty all simulations will use INITFROM one.
+	   LENGTH_NONPERIODIC: lenght of each simulation. IF empty all simulations
+	   		       duration will be the default LENGTH option.
+	   	   
+   All parameters with * must be filled.
+   All parameters with (1) must be filled for periodic description are empty else.
+   All parameters with (2) must be filled for non periodic description are empty else.
+   
+   WARNING: For list variables, use space between values (no coma).
+   
+   ins_job -e will create a "NAME" root ensemble directory containing all periodic and 
+   non periodics simulations subdir. Subdir names, such as Jobs, are build by concatening
+   <NAME><RESTART_NB>A (ex: ensNino0A, ensNino1A...) for non periodic and add suffix 
+   "_per" for periodic (ex: ensNino0A_per). 
+   
+3) Parametric ensembles
+  Not implemented yet.
+
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_ensemble/libIGCM_ensemble.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_ensemble/libIGCM_ensemble.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_ensemble/libIGCM_ensemble.ksh	(revision 5899)
@@ -0,0 +1,992 @@
+#!/bin/ksh
+#set -vx
+
+#**************************************************************
+# Author: Sebastien Denvil, Sonia Labetoulle, Nicolas Lebas, Sebastien Nguyen
+# Contact: Nicolas.Lebas__at__locean-ipsl.upmc.fr
+# $Revision:: 1489                                     $ Revision of last commit
+# $Author:: flavoni                                    $ Author of last commit
+# $Date:: 2019-09-17 10:55:34 +0200 (Tue, 17 Sep 2019) $ Date of last commit
+# IPSL (2012)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+# >>> Date ensemble <<<
+# Author: Nicolas Lebas (adapted from Sonia Labetoulle)
+# Contact: Nicolas.Lebas__at__locean-ipsl.upmc.fr
+# IPSL (2014)
+#
+# >>> Add 3D perturbation maps to oceanic restart <<<
+# Author: Sebastien Nguyen
+# Contact: Sebastien.Nguyen__at__locean-ipsl.upmc.fr
+# IPSL (2014)
+#
+# >>> Uniform DATE and PERTURB ensemble (remove old, useless), ADD some functions <<<
+# add : IGCM_ensemble_InitRunDir, IGCM_ensemble_FilesUpdate (unique function)
+# DATE           ensemble : removed periodic case
+#                         : all dates are NON-periodic
+# CAST PERTURBED ensemble : removed NON-periodic case
+#                         : all casts are periodic (*Y or *M)
+#                         : removed Ens_PERTURB_PERTU_MAP_LIST case
+# 
+# Author: Simona Flavoni & Nicola Lebas
+# Contact: Simona.Flavoni__at__locean-ipsl.upmc.fr
+# IPSL (2019)
+#**************************************************************
+
+# Read which ensemble type are active
+function IGCM_ensemble_Init
+{
+  IGCM_debug_PushStack "IGCM_ensemble_Init"
+
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB active
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE active
+ 
+  Job_Period=10 # PARAMETER USED in function IGCM_ensemble_FilesUpdate
+
+  IGCM_debug_Print 1 "Ens_PERTURB ACTIVE     = ${ensemble_Ens_PERTURB_active}"
+  IGCM_debug_Print 1 "Ens_DATE ACTIVE        = ${ensemble_Ens_DATE_active}"
+  echo ""
+
+  #====================================================
+  # Define ARCHIVE : Dedicated to large files
+  # Define STORAGE : Dedicated to small/medium files
+  # Define R_OUT   : Output tree located on ARCHIVE
+  # Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+  # Define R_BUF   : USELESS and DEPRECATED output tree.
+  IGCM_sys_defineArchives
+
+  IGCM_debug_PopStack "IGCM_ensemble_Init"
+}
+
+
+############### ENSEMBLE #################
+function IGCM_ensemble_InitRunDir
+{
+
+  if [ -d ${SUBMIT_DIR}/${JobName} ] ; then
+    IGCM_debug_Print 3 "STOP directory ${SUBMIT_DIR}/${JobName} already exists."
+    exit # SF: stop at this point because in ENSEMBLE case need to be stopped 
+  fi
+  IGCM_sys_Mkdir ${RUN_DIR}
+
+  IGCM_sys_Cp ${SUBMIT_DIR}/config.card   ${RUN_DIR}
+  IGCM_sys_Cp ${SUBMIT_DIR}/ensemble.card ${RUN_DIR}
+  IGCM_sys_Cp ${SUBMIT_DIR}/Job_*         ${RUN_DIR}
+  IGCM_sys_Cp ${SUBMIT_DIR}/run.card.init ${RUN_DIR}
+  if [ -f ${SUBMIT_DIR}/Qsub.* ]; then
+    IGCM_sys_Cp ${SUBMIT_DIR}/Qsub.*        ${RUN_DIR}
+  fi
+  if [ -f ${SUBMIT_DIR}/Qclean.* ]; then
+    IGCM_sys_Cp ${SUBMIT_DIR}/Qclean.*      ${RUN_DIR}
+  fi
+
+}
+
+############### Create Member Directory ENSEMBLE ################# 
+function IGCM_ensemble_CreateMemberDir
+{
+
+ #  if [ ! -d  ${SUBMIT_DIR}/${StartDir}/${MemberDir} ] ; then
+     IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir}/${MemberDir}
+     IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir}/${MemberDir}
+     ln -s ../../COMP
+     ln -s ../../PARAM
+     ln -s ../../POST
+     ln -s ../../DRIVER
+     IGCM_sys_Cd ${RUN_DIR}
+     IGCM_sys_Cp config.card run.card.init ${SUBMIT_DIR}/${StartDir}/${MemberDir}
+     IGCM_sys_Cp Job_${config_UserChoices_JobName} ${SUBMIT_DIR}/${StartDir}/${MemberDir}/${JobName}
+
+     # Dump command to be lauched
+     echo "cd ${StartDir}/${MemberDir}/ ;"    >> ${RUN_DIR}/Qsub.${StartDir}.sh
+     echo "${SUBMIT} ${JobName} ; cd -"       >> ${RUN_DIR}/Qsub.${StartDir}.sh
+
+     echo "cd ${StartDir}/${MemberDir}/ ;"    >> ${RUN_DIR}/Qclean.latestPackperiod.${StartDir}.sh
+     echo "${libIGCM}/clean_latestPackperiod.job ; cd -"  >> ${RUN_DIR}/Qclean.latestPackperiod.${StartDir}.sh
+
+     echo "cd ${StartDir}/${MemberDir}/ ;"    >> ${RUN_DIR}/Qclean.PeriodLength.${StartDir}.sh
+     echo "${libIGCM}/clean_PeriodLength.job ; cd -"  >> ${RUN_DIR}/Qclean.PeriodLength.${StartDir}.sh
+
+}
+
+
+############### FilesUpdate ENSEMBLE #################
+function IGCM_ensemble_FilesUpdate
+{
+  IGCM_debug_PushStack "IGCM_ensemble_FilesUpdate"
+
+  # Debug Print :
+  echo 
+  IGCM_debug_Print 1 "IGCM_ensemble_FilesUpdate :"
+
+  EnsembleType=${1}
+  MemberNb=${2}
+  HumanDateBegin=$(   IGCM_date_ConvertFormatToHuman ${3} )
+  HumanDateEnd=$(     IGCM_date_ConvertFormatToHuman ${4} )
+  HumanRestartDate=$( IGCM_date_ConvertFormatToHuman ${5} )
+  if [[ X${6} != "X" ]]; then 
+    initFrom=${6} # non periodic config (INITFROM could be different between members)
+  else 
+    initFrom=$(eval echo $\ensemble_Ens_${EnsembleType}_INITFROM) # periodic (same INITFROM value)
+  fi
+
+  if [[ X${7} != "X" ]]; then 
+    initPath=${7} # non periodic config (INITPATH could be different between members)
+  else 
+    initPath=$(eval echo $\ensemble_Ens_${EnsembleType}_INITPATH) # periodic (same INITPATH value)
+  fi
+  
+  # ==> config.card
+  # [ENSEMBLE]
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleRun 'y'
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleName $(eval echo $\ensemble_Ens_${EnsembleType}_NAME)
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleDate ${HumanDateBegin}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleType "Ens_${EnsembleType}"
+  
+  # [UserChoices]
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card UserChoices JobName   ${MemberDir}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card UserChoices DateBegin ${HumanDateBegin}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card UserChoices DateEnd   ${HumanDateEnd}
+  # Adhoc exceptioN for CMIP6 : update realisation number in member field.
+  if ( [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] ) ; then
+      IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card UserChoices Member "r${MemberNb}i1p1f1"
+  fi
+
+  # [Restarts]
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Restarts OverRule "n"
+  # [ATM/OCE/...]
+  for comp in ${config_ListOfComponents[*]} ; do
+    IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${comp} Restart "y"
+    IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${comp} RestartDate ${HumanRestartDate}
+    IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${comp} RestartJobName ${initFrom}
+    IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${comp} RestartPath ${initPath}
+
+    # Adhoc exception for CMIP6 : exclude XIOS from the restart overrule mechanism.
+    if ( [ X${comp} = XIOS ] && [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] ) ; then
+    IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${comp} Restart "n"
+    fi
+  done
+
+  unset initFrom
+
+  # ==> Job
+  sed -e "s/\(#.*Script_Output_\)${config_UserChoices_JobName}\(\.*\)/\1${MemberDir}\2/" \
+      -e "s/\(#.*\)${config_UserChoices_JobName}\(\.*\)/\1${MemberDir} \2/"              \
+      -e "s/^PeriodNb=.*/PeriodNb=${Job_Period}/"                                        \
+      ${SUBMIT_DIR}/${StartDir}/${MemberDir}/Job_${MemberDir} > Job_${MemberDir}.tmp
+  IGCM_sys_Mv Job_${MemberDir}.tmp ${SUBMIT_DIR}/${StartDir}/${MemberDir}/Job_${MemberDir}
+
+  IGCM_debug_PopStack "IGCM_ensemble_FilesUpdate"
+}
+
+
+############### Perturb ENSEMBLE #################
+function IGCM_ensemble_CastInit
+{
+  IGCM_debug_PushStack "IGCM_ensemble_CastInit"
+
+  IGCM_ensemble_InitRunDir
+  
+  ## Init some variables (only periodic case)
+  CastPeriodicStart=true
+  
+  echo " pwd id : ${PWD}"
+
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB active
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB NAME
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB BEGIN_INIT
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB END_INIT
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB PERIODICITY
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB LENGTH
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB MEMBER
+  IGCM_card_DefineArrayFromOption    ${F_CFG_ENS} Ens_PERTURB MEMBER_NAMESLIST
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB MEMBER_INITFROM
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB MEMBER_INITPATH
+  IGCM_card_DefineArrayFromOption    ${F_CFG_ENS} Ens_PERTURB PERTURB_BIN
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB INITFROM
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB INITPATH
+  IGCM_card_DefineVariableFromOption config.card UserChoices JobName
+  IGCM_card_DefineVariableFromOption config.card UserChoices TagName
+  IGCM_card_DefineVariableFromOption config.card UserChoices CalendarType
+  IGCM_card_DefineArrayFromSection   config.card ListOfComponents
+
+  echo
+  IGCM_debug_Print 1 "[Ens_PERTURB]"
+  IGCM_debug_Print 1 "ACTIVE            = ${ensemble_Ens_PERTURB_active}"
+  IGCM_debug_Print 1 "NAME              = ${ensemble_Ens_PERTURB_NAME}"
+  IGCM_debug_Print 1 "BEGIN_INIT        = ${ensemble_Ens_PERTURB_BEGIN_INIT}"
+  IGCM_debug_Print 1 "END_INIT          = ${ensemble_Ens_PERTURB_END_INIT}"
+  IGCM_debug_Print 1 "PERIODICITY       = ${ensemble_Ens_PERTURB_PERIODICITY}"
+  IGCM_debug_Print 1 "LENGTH            = ${ensemble_Ens_PERTURB_LENGTH}"
+  IGCM_debug_Print 1 "MEMBER            = ${ensemble_Ens_PERTURB_MEMBER}"
+  IGCM_debug_Print 1 "MEMBER_NAMESLIST  = ${ensemble_Ens_PERTURB_MEMBER_NAMESLIST[*]}"
+  IGCM_debug_Print 1 "MEMBER_INITFROM   = ${ensemble_Ens_PERTURB_MEMBER_INITFROM}"
+  IGCM_debug_Print 1 "MEMBER_INITPATH   = ${ensemble_Ens_PERTURB_MEMBER_INITPATH}"
+  IGCM_debug_Print 1 "PERTURB_BIN       = ${ensemble_Ens_PERTURB_PERTURB_BIN[*]}"
+  IGCM_debug_Print 1 "INITFROM          = ${ensemble_Ens_PERTURB_INITFROM}"
+  IGCM_debug_Print 1 "INITPATH          = ${ensemble_Ens_PERTURB_INITPATH}"
+  IGCM_debug_Print 1 "JobName           = ${config_UserChoices_JobName}"
+  IGCM_debug_Print 1 "TagName           = ${config_UserChoices_TagName}"
+  IGCM_debug_Print 1 "CalendarType      = ${config_UserChoices_CalendarType}"
+  IGCM_debug_Print 1 "ListOfComponents  = ${config_ListOfComponents[*]}"
+
+
+  ### Check unset variables and set them to empty
+  # Following var are set because they could be unset in some 
+  # use case (ex: non periodic if periodic is active...)
+  if [[ "${ensemble_Ens_PERTURB_PERIODICITY}" = _0_ || "${ensemble_Ens_PERTURB_PERIODICITY}" = '' ]];
+  then 
+      ensemble_Ens_PERTURB_PERIODICITY=NONE
+  fi
+  if [[ "${ensemble_Ens_PERTURB_MEMBER}" = _0_ || "${ensemble_Ens_PERTURB_MEMBER}" = '' ]];
+  then 
+      ensemble_Ens_PERTURB_MEMBER=NONE
+  fi
+  if [[ "${ensemble_Ens_PERTURB_END_INIT}" = _0_ || "${ensemble_Ens_PERTURB_END_INIT}" = '' ]];
+  then 
+      ensemble_Ens_PERTURB_END_INIT=${ensemble_Ens_PERTURB_BEGIN_INIT}
+  fi
+
+  ### End check unset variables ###
+  PerturbExe=${ensemble_Ens_PERTURB_PERTURB_BIN[0]}
+
+  case ${PerturbExe} in
+  AddNoise)
+    PerturbComp=${ensemble_Ens_PERTURB_PERTURB_BIN[1]}
+    PerturbFile=${ensemble_Ens_PERTURB_PERTURB_BIN[2]}
+    PerturbVar=${ensemble_Ens_PERTURB_PERTURB_BIN[3]}
+    PerturbAmp=${ensemble_Ens_PERTURB_PERTURB_BIN[4]}
+
+    IGCM_debug_Print 1 "PerturbExe  = ${PerturbExe}"
+    IGCM_debug_Print 1 "PerturbFile = ${PerturbFile}"
+    IGCM_debug_Print 1 "PerturbComp = ${PerturbComp}"
+    IGCM_debug_Print 1 "PerturbVar  = ${PerturbVar}"
+    IGCM_debug_Print 1 "PerturbAmp  = ${PerturbAmp}"
+    ;;
+  AddPertu3DOCE)
+    PerturbComp=${ensemble_Ens_PERTURB_PERTURB_BIN[1]}
+    PerturbFile=${ensemble_Ens_PERTURB_PERTURB_BIN[2]}
+    PerturbVar=${ensemble_Ens_PERTURB_PERTURB_BIN[3]}
+    PerturbMask=${ensemble_Ens_PERTURB_PERTURB_BIN[4]}
+
+    IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB MASKPATH
+    
+    IGCM_debug_Print 1 "PerturbExe  = ${PerturbExe}"
+    IGCM_debug_Print 1 "PerturbFile = ${PerturbFile}"
+    IGCM_debug_Print 1 "PerturbComp = ${PerturbComp}"
+    IGCM_debug_Print 1 "PerturbVar  = ${PerturbVar}"
+    IGCM_debug_Print 1 "PerturbMask = ${PerturbMask}"
+    IGCM_debug_Print 1 "MASK PATH   = ${ensemble_Ens_PERTURB_MASKPATH}"
+    ;;
+  esac
+
+  # A few checks Period case:
+
+  # ... Check PERIODICITY ...
+  case ${ensemble_Ens_PERTURB_PERIODICITY} in
+  NONE)
+    IGCM_debug_Print 1 "periodic start not active"
+    CastPeriodicStart=false
+    ;;
+  *[Yy]|*[Mm])
+    CastPeriodicStart=true
+    IGCM_debug_Print 1 "Periodic length : ${ensemble_Ens_PERTURB_PERIODICITY}" ;;
+  *)
+    IGCM_debug_Exit "IGCM_ensemble_CastInit ${ensemble_Ens_PERTURB_PERIODICITY} : invalid PERIODICITY"
+    IGCM_debug_Exit "Choose a value in *Y or *M"
+    IGCM_debug_Verif_Exit ;;
+  esac
+  # ... Check LENGTH ...
+  case ${ensemble_Ens_PERTURB_LENGTH} in
+  *[Yy]|*[Mm])
+    IGCM_debug_Print 1 "Periodic duration : ${ensemble_Ens_PERTURB_LENGTH}" ;;
+  *)
+    IGCM_debug_Exit "IGCM_ensemble_CastInit ${ensemble_Ens_PERTURB_LENGTH} invalid LENGTH"
+    IGCM_debug_Exit "Choose a value in choose in *Y or *M"
+    IGCM_debug_Verif_Exit ;;
+  esac
+
+  # Need to know all the restart filename of the component we will apply the noise to
+  IGCM_card_DefineArrayFromOption config.card ListOfComponents ${PerturbComp}
+  eval compname=\${config_ListOfComponents_${PerturbComp}[0]} > /dev/null 2>&1
+
+  # Target the component's card we apply the noise to
+  card=${SUBMIT_DIR}/COMP/${compname}.card
+
+  # Read the restart file list. To be used later
+  IGCM_card_DefineArrayFromOption ${card} RestartFiles List
+  ListFilesName=${compname}_RestartFiles_List
+  eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
+  eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
+
+  # Check
+  IGCM_debug_Print 1 "Nb Restart Files  = ${NbFiles}"
+
+  IGCM_debug_PopStack "IGCM_ensemble_CastInit"
+}
+
+function IGCM_ensemble_CastPeriodicStarts
+{
+  IGCM_debug_PushStack "IGCM_ensemble_CastPeriodicStarts"
+
+  [ ${CastPeriodicStart} = false ] && return
+
+  echo
+  IGCM_debug_Print 1 "Manage periodic starts"
+
+#.. Manage periodic starts ..
+#   ======================
+
+# ... Loop over DateBegin ...
+  eval DateBegin=\${ensemble_Ens_PERTURB_BEGIN_INIT}
+
+  while [ ${DateBegin} -le ${ensemble_Ens_PERTURB_END_INIT} ] ; do
+    IGCM_date_GetYearMonth ${DateBegin} year month
+
+  # - Determine number of day(s) in PERIODICITY
+    PeriodLengthInDays=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} ${ensemble_Ens_PERTURB_PERIODICITY} )
+
+  # - Determine number of day(s) in LENGTH
+    DurationLengthInDays=$(( $( IGCM_date_DaysInCurrentPeriod ${DateBegin} ${ensemble_Ens_PERTURB_LENGTH} ) - 1 ))
+
+  # - Determine DateEnd
+    (( DateEnd = $( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${DurationLengthInDays} ) ))
+
+  # - Build directory name
+    #SF IGCM_ensemble_CastDirectoryName ${ensemble_Ens_PERTURB_NAME} ${ensemble_Ens_PERTURB_PERIODICITY} ${year} ${month} ${StartDir}
+    IGCM_ensemble_CastDirectoryName ${ensemble_Ens_PERTURB_NAME} ${ensemble_Ens_PERTURB_PERIODICITY} ${year} ${month}
+    # StartDir="${ensemble_Ens_PERTURB_NAME}"
+
+  # - Determine RestartDate
+    (( Offset = -1 ))
+    (( RestartDate = $( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${Offset} ) ))
+
+    IGCM_debug_Print 2 "${DateBegin} => ${DateEnd} : ${StartDir}"
+    echo "${DateBegin} ${DateEnd} ${StartDir}" >> ${RUN_DIR}/CreatedDir.txt
+
+  # - Create directory for current DateBegin
+    if [ ! -d  ${StartDir} ] ; then
+      IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir}
+      IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir}
+      ln -s ../../.resol .
+      ln -s ../../.libmpi .
+      IGCM_sys_Cd ${RUN_DIR}
+    fi
+
+  # - Create directory to store modified restart files
+    RestartDir=${STORAGE}/IGCM_IN/${config_UserChoices_TagName}/${StartDir}
+    IGCM_sys_MkdirArchive ${RestartDir}
+
+  # - Loop over members
+    i=1
+    while [ $i -le ${ensemble_Ens_PERTURB_MEMBER} ] ; do
+      if [ $((i)) -le 9 ] ; then
+        MemberDir="${StartDir}"-0"$((i))"
+      else 
+        MemberDir="${StartDir}-$((i))"
+      fi
+      echo
+      IGCM_debug_Print 3 "${MemberDir}"
+
+      JobName="Job_${MemberDir}"
+
+    # * Create directory if it doesn't exist and copy/link files
+      if [ ! -d  ${SUBMIT_DIR}/${StartDir}/${MemberDir} ] ; then
+     
+        # * Create ${SUBMIT_DIR}/${StartDir}/${MemberDir} directories
+        #   link COMP PARAM POST and DRIVER
+        #   cp config.card, run.card.init, Job_
+        #   and Dump command to be launched 
+        IGCM_ensemble_CreateMemberDir
+
+        # * Update files : config.card, Job_, COMP/comp.card
+        IGCM_ensemble_FilesUpdate "PERTURB" ${i} ${DateBegin} ${DateEnd} ${RestartDate} 
+
+        # * Apply noise on restart file
+        IGCM_ensemble_CastPerturbFile
+      fi
+
+      (( i = i + 1 ))
+    done
+
+    # Done. Save ${StartDir} submission text file
+    IGCM_sys_Cp ${RUN_DIR}/Qsub.${StartDir}.sh ${SUBMIT_DIR}
+    IGCM_sys_Cp ${RUN_DIR}/Qclean.PeriodLength.${StartDir}.sh ${SUBMIT_DIR}
+    IGCM_sys_Cp ${RUN_DIR}/Qclean.latestPackperiod.${StartDir}.sh ${SUBMIT_DIR}
+
+  # - Next DateBegin
+    echo "$DateBegin  $PeriodLengthInDays"
+    case ${ensemble_Ens_PERTURB_PERIODICITY} in
+    *[Yy]|*[Mm])
+      (( DateBegin = $( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${PeriodLengthInDays} ) ))
+      ;;
+    esac
+    echo "New DateBegin = $DateBegin"
+    echo "========================================================================"
+  done
+  IGCM_debug_PopStack "IGCM_ensemble_CastPeriodicStarts"
+}
+
+function IGCM_ensemble_CastMemberList
+{
+  IGCM_debug_PushStack "IGCM_ensemble_CastMemberList"
+
+  if [ ${CastMemberList} = false ] ; then
+    IGCM_debug_PopStack "IGCM_ensemble_CastMemberList"
+    return
+  fi
+
+  echo
+  IGCM_debug_Print 1 "Manage members list"
+
+#.. Manage members list ..
+#   ======================
+
+  # DateBegin
+  eval DateBegin=\${ensemble_Ens_PERTURB_BEGIN_INIT}
+
+  IGCM_date_GetYearMonth ${DateBegin} ${year} ${month}
+
+  # - Determine number of day(s) in LENGTH
+  DurationLengthInDays=$(( $( IGCM_date_DaysInCurrentPeriod ${DateBegin} ${ensemble_Ens_PERTURB_LENGTH} ) - 1 ))
+
+  # - Determine DateEnd
+  DateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${DurationLengthInDays} )
+
+  # bad hack enforce yearly for parent directory name
+  # - Build directory name
+  IGCM_ensemble_CastDirectoryName ${ensemble_Ens_PERTURB_NAME} 1Y ${year} ${month}
+  #SF IGCM_ensemble_CastDirectoryName ${ensemble_Ens_PERTURB_NAME} 1Y ${year} ${month} ${StartDir}
+
+  # - Determine RestartDate
+  (( Offset = -1 ))
+  RestartDate=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${Offset} )
+
+  IGCM_debug_Print 2 "${DateBegin} => ${DateEnd} : ${StartDir}"
+  echo "${DateBegin} ${DateEnd} ${StartDir}" >> ${RUN_DIR}/CreatedDir.txt
+
+  # - Create directory for current DateBegin
+  if [ ! -d  ${StartDir} ] ; then
+    IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir}
+    IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir}
+    ln -s ../../.resol .
+    ln -s ../../.libmpi .
+    IGCM_sys_Cd ${RUN_DIR}
+  fi
+
+  # - Create directory to store modified restart files
+  RestartDir=${STORAGE}/IGCM_IN/${config_UserChoices_TagName}/${StartDir}
+  IGCM_sys_MkdirArchive ${RestartDir}
+
+  # - Loop over members
+  i=1
+  nbmember=${ensemble_Ens_PERTURB_MEMBER}
+  while [ $i -lt $nbmember ] ; do
+    MemberVec=${ensemble_PERTURB_MEMBER_[${i}]}
+    MemberDir=${config_UserChoices_Member}
+    echo 
+    IGCM_debug_Print 3 "print nbmember: ${nbmember}"
+    IGCM_debug_Print 3 "print MemberVec: ${ensemble_PERTURB_MEMBER[${i}]}"
+
+    JobName="Job_${MemberDir}"
+    echo
+    IGCM_debug_Print 3 "${MemberDir}"
+
+    # * Create directory if it doesn't exist and copy/link files
+    if [ ! -d  ${SUBMIT_DIR}/${StartDir}/${MemberDir} ] ; then
+
+      # * Create ${SUBMIT_DIR}/${StartDir}/${MemberDir} directories
+      #   link COMP PARAM POST and DRIVER
+      #   cp config.card, run.card.init, Job_
+      #   and Dump command to be launched 
+      IGCM_ensemble_CreateMemberDir
+
+      # * Update files : config.card, Job_, COMP/comp.card
+      IGCM_ensemble_FilesUpdate "PERTURB" ${i} ${DateBegin} ${DateEnd} ${RestartDate} ${InitFrom} ${InitPath}
+
+      # * Apply noise on restart file
+      IGCM_ensemble_CastPerturbFile
+    fi
+
+    (( i = i + 1 ))
+  done
+
+  # Done. Save ${StartDir} submission text file
+  IGCM_sys_Cp ${RUN_DIR}/Qsub.${StartDir}.sh ${SUBMIT_DIR}
+  IGCM_sys_Cp ${RUN_DIR}/Qclean.PeriodLength.${StartDir}.sh ${SUBMIT_DIR}
+
+  IGCM_debug_PopStack "IGCM_ensemble_CastMemberList"
+}
+
+function IGCM_ensemble_CastDirectoryName
+{
+  IGCM_debug_PushStack "IGCM_ensemble_CastDirectoryName"
+
+  #.. Debug Print ..
+  echo
+  IGCM_debug_Print 1 "IGCM_ensemble_CastDirectoryName :"
+  echo
+
+  Name=$1
+  PeriodLen=$2
+  Year=$3
+  Month=$4
+
+  # - Build directory name
+  case ${PeriodLen} in
+  *Y|*y)
+    StartDir="${Name}${year}"
+    ;;
+  esac
+
+  IGCM_debug_PopStack "IGCM_ensemble_CastDirectoryName"
+}
+
+function IGCM_ensemble_CastPerturbFile
+{
+  IGCM_debug_PushStack "IGCM_ensemble_CastPerturbFile"
+
+  typeset i i_ j
+  typeset -Z4 j4
+  typeset file_out file_out_
+
+  #.. Debug Print ..
+  echo
+  IGCM_debug_Print 1 "IGCM_ensemble_CastPerturbFile :"
+
+  #.. FileIn ? => RestartDate ..
+  DirIn="${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/${PerturbComp}/Restart"
+  DirInTar="${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/RESTART"
+  FileIn="${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${PerturbFile}"
+  DirOut="${RestartDir}/${MemberDir}/${PerturbComp}/Restart"
+
+  # * Create member restart directory
+  IGCM_sys_TestDirArchive ${DirOut}
+  RET=$?
+  if [ $RET -gt 0 ] ; then
+    IGCM_sys_MkdirArchive ${DirOut}
+  fi
+
+  FileOut="${MemberDir}_${RestartDate}_${PerturbFile}"
+  IGCM_debug_Print 1 "FileIn  = ${DirIn}/${FileIn}"
+  IGCM_debug_Print 1 "FileOut = ${DirOut}/${FileOut}.nc"
+
+  IGCM_sys_TestFileArchive ${DirOut}/${FileOut}.nc
+  RET=$?
+  if [ $RET -gt 0 ] ; then
+
+    # * Look for the restart file we apply the noise to
+
+    # restart file list pertaining to the component we apply the noise to
+    # but not being the precise restart file we will apply the noise to
+    unset OtherFileInList
+    # generic restart filename list (like flxat, sstoc, restart, ...)
+    unset OtherGenericList
+
+    if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != XNONE ] ) ; then
+      (( i=0 ))
+      until [ $i -ge ${NbFiles} ]; do
+
+        (( i_ = i+1 ))
+        eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1
+        eval file_out=${file_out_}
+
+        generic_restart_file_name_out=$( basename ${file_out} .nc )
+
+        if [ ! ${generic_restart_file_name_out} = ${PerturbFile} ] ; then
+          set +A OtherFileInList ${OtherFileInList[*]} ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic_restart_file_name_out}\*.nc
+          set +A OtherGenericList ${OtherGenericList[*]} ${generic_restart_file_name_out}
+        fi
+
+        (( i=i+3 ))
+      done
+    fi
+    # How many restart files other than the one we will apply the noise to
+    NbOtherFiles=${#OtherGenericList[*]}
+
+    ##########################
+    # TO BE A FUNCTION BEGIN #
+    ##########################
+
+    if [ $( IGCM_sys_TestFileBuffer ${DirIn}/${FileIn}*.nc ; echo $? ) = 0 ] ; then
+      IGCM_debug_Print 3 "Buffered restart"
+      Buffered=true
+      Archived=false
+      Tared=false
+      nb_restart_file=$(IGCM_sys_CountFileBuffer ${DirIn}/${FileIn}_????.nc)
+    elif [ $( IGCM_sys_TestFileArchive ${DirIn}/${FileIn}*.nc ; echo $? ) = 0 ] ; then
+      IGCM_debug_Print 3 "Archived restart"
+      Buffered=false
+      Archived=true
+      Tared=false
+      nb_restart_file=$(IGCM_sys_CountFileArchive ${DirIn}/${FileIn}_????.nc)
+    else
+      IGCM_debug_Print 3 "Tared restart"
+      Buffered=false
+      Archived=false
+      Tared=true
+
+      # Look for the tar file we want if we did not found it already
+      for PotentialTarFile in $( find ${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/RESTART -name "${ensemble_Ens_PERTURB_INITFROM}_*restart*.tar" -print ) ; do
+        IsMatching=$( echo ${PotentialTarFile##*/} | sed "s:_restart::" | sed "s:^${ensemble_Ens_PERTURB_INITFROM}_::" | sed "s:\.tar$::" | gawk -F_ -v restartdate=${RestartDate} '{if (($1 <= restartdate) && ($2 >= restartdate)) {print $1"_"$2}}' )
+        if [ ! X${IsMatching} = X ] ; then
+          TarFileFound=${PotentialTarFile}
+          break
+        fi
+      done
+
+      # Extract relevant restart files
+      IGCM_debug_Print 1 "tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${OtherFileInList[*]}"
+      tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${OtherFileInList[*]}
+      nb_restart_file=$( IGCM_sys_CountFileBuffer ${PerturbComp}_${FileIn}_????.nc )
+    fi
+
+    # Move around and perturb restart files so as to be able to start hindcast/forecast simulation members
+    if [ ${nb_restart_file} -gt 1 ] ; then
+      j=0
+      until [ $j -ge ${nb_restart_file} ]; do
+        j4=${j}
+        if [ X${Buffered} = Xtrue ] ; then
+          IGCM_sys_GetBuffer ${DirIn}/${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc
+
+          cd ${DirOut}
+          for generic in ${OtherGenericList[*]} ; do
+            ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}_${j4}.nc
+          done
+          cd -
+
+        elif [ X${Archived} = Xtrue ] ; then
+          IGCM_sys_Get ${DirIn}/${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc
+
+          for generic in ${OtherGenericList[*]} ; do
+            IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}_${j4}.nc"
+          done
+
+        elif [ X${Tared} = Xtrue ] ; then
+          IGCM_debug_Print 2 "IGCM_sys_Mv ${PerturbComp}_${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc"
+          IGCM_sys_Mv ${PerturbComp}_${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc
+
+          for generic in ${OtherGenericList[*]} ; do
+            IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${DirOut}/${MemberDir}_${RestartDate}_${generic}_${j4}.nc
+          done
+
+        fi
+        (( j=j+1 ))
+      done
+    else
+      if [ X${Buffered} = Xtrue ] ; then
+        IGCM_sys_GetBuffer ${DirIn}/${FileIn}.nc ${RUN_DIR}/${FileOut}.nc
+
+        cd ${DirOut}
+        for generic in ${OtherGenericList[*]} ; do
+          ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}.nc
+        done
+        cd -
+
+      elif [ X${Archived} = Xtrue ] ; then
+        IGCM_sys_Get ${DirIn}/${FileIn}.nc ${RUN_DIR}/${FileOut}.nc
+
+        for generic in ${OtherGenericList[*]} ; do
+          IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}.nc"
+        done
+
+      elif [ X${Tared} = Xtrue ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Mv ${PerturbComp}_${FileIn}.nc ${RUN_DIR}/${FileOut}.nc"
+        IGCM_sys_Mv ${PerturbComp}_${FileIn}.nc ${RUN_DIR}/${FileOut}.nc
+
+        for generic in ${OtherGenericList[*]} ; do
+          IGCM_debug_Print 2 "IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${DirOut}/${MemberDir}_${RestartDate}_${generic}.nc"
+          IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${DirOut}/${MemberDir}_${RestartDate}_${generic}.nc
+        done
+
+      fi
+    fi
+
+    ########################
+    # TO BE A FUNCTION END #
+    ########################
+
+# treat the perturbation on different components by looking at the executable name
+
+    case ${PerturbExe} in
+    (AddNoise)
+      IGCM_sys_Chmod 644 ${RUN_DIR}/${FileOut}.nc
+
+      IGCM_debug_Print 1 "${PerturbExe} ${RUN_DIR}/${FileOut}.nc ${PerturbVar} ${PerturbAmp}"
+      echo
+
+      ${PerturbExe} ${RUN_DIR}/${FileOut}.nc ${PerturbVar} ${PerturbAmp}  > /dev/null 2>&1
+      if [ $? -ne 0 ] ; then
+        IGCM_debug_Exit "Error with $( basename ${PerturbExe} )"
+        IGCM_debug_Verif_Exit
+      fi
+      IGCM_sys_Put_Out ${RUN_DIR}/${FileOut}.nc ${DirOut}/ 644
+      ;;
+    (AddPertu3DOCE)
+      # where to find the pattern we apply to the restart
+      PatternFile=${ensemble_Ens_PERTURB_MEMBER_INITPATH}/${ensemble_Ens_PERTURB_MEMBER_INITFROM}/${MemberVec}.nc
+
+      # where to find the land mask for the grid
+      MaskFile=${ensemble_Ens_PERTURB_MASKPATH}/${PerturbMask}
+
+      # if there is multiple restart files rebuild restart file
+      if [ ${nb_restart_file} -gt 1 ] ; then
+        IGCM_debug_Print 1 "rebuild files ${FileOut}_????.nc"
+        IGCM_sys_rebuild ${RUN_DIR}/${FileOut}.nc ${RUN_DIR}/${FileOut}_????.nc
+      fi
+
+      # there is now a single restart file
+      IGCM_sys_Chmod 644 ${RUN_DIR}/${FileOut}.nc
+
+      IGCM_debug_Print 1 "${PerturbExe} ${RUN_DIR}/${FileOut}.nc ${PerturbVar} ${PatternFile} ${MaskFile}"
+      echo
+
+      # add pattern to restart file on variable PerturbVar
+      ${PerturbExe} ${RUN_DIR}/${FileOut}.nc ${PerturbVar} ${PatternFile} ${MaskFile}  > /dev/null 2>&1
+      if [ $? -ne 0 ] ; then
+        IGCM_debug_Exit "Error with $( basename ${PerturbExe} )"
+        IGCM_debug_Verif_Exit
+      fi
+      IGCM_sys_Put_Out ${RUN_DIR}/${FileOut}.nc ${DirOut}/ 644
+     ;;
+    esac
+
+  fi
+
+  #.. Update config.card..
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${PerturbComp} Restart "y"
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${PerturbComp} RestartDate    ${HumanRestartDate}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${PerturbComp} RestartJobName ${MemberDir}
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card ${PerturbComp} RestartPath    ${RestartDir}/
+  IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleType "Ens_PERTURB"
+
+  IGCM_debug_PopStack "IGCM_ensemble_CastPerturbFile"
+}
+
+############### Date ENSEMBLE #################
+function IGCM_ensemble_DateInit
+{
+  IGCM_debug_PushStack "IGCM_ensemble_DateInit"
+
+  IGCM_ensemble_InitRunDir
+
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE active
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE NAME
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE BEGIN_INIT
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE BEGIN_RESTART
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE END_INIT
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE STARTDATE
+  IGCM_card_DefineArrayFromOption    ${F_CFG_ENS} Ens_DATE NONPERIODIC
+  IGCM_card_DefineArrayFromOption    ${F_CFG_ENS} Ens_DATE RESTART_NONPERIODIC
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE LENGTH
+  IGCM_card_DefineArrayFromOption    ${F_CFG_ENS} Ens_DATE LENGTH_NONPERIODIC
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE INITFROM
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE INITFROM_NONPERIODIC
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE INITPATH
+  IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE INITPATH_NONPERIODIC
+  IGCM_card_DefineVariableFromOption config.card UserChoices JobName
+  IGCM_card_DefineVariableFromOption config.card UserChoices TagName
+  IGCM_card_DefineVariableFromOption config.card UserChoices CalendarType
+  IGCM_card_DefineArrayFromSection   config.card ListOfComponents
+
+  echo
+  IGCM_debug_Print 1 "[Ens_DATE]"
+  IGCM_debug_Print 1 "ACTIVE               = ${ensemble_Ens_DATE_active}"
+  IGCM_debug_Print 1 "NAME                 = ${ensemble_Ens_DATE_NAME}"
+  IGCM_debug_Print 1 "BEGIN_INIT           = ${ensemble_Ens_DATE_BEGIN_INIT}"
+  IGCM_debug_Print 1 "END_INIT             = ${ensemble_Ens_DATE_END_INIT}"
+  IGCM_debug_Print 1 "BEGIN_RESTART        = ${ensemble_Ens_DATE_BEGIN_RESTART}"
+  IGCM_debug_Print 1 "STARTDATE            = ${ensemble_Ens_DATE_STARTDATE}"
+  IGCM_debug_Print 1 "NONPERIODIC          = ${ensemble_Ens_DATE_NONPERIODIC[*]}"
+  IGCM_debug_Print 1 "RESTART_NONPERIODIC  = ${ensemble_Ens_DATE_RESTART_NONPERIODIC[*]}"
+  IGCM_debug_Print 1 "LENGTH               = ${ensemble_Ens_DATE_LENGTH}"
+  IGCM_debug_Print 1 "LENGTH_NONPERIODIC   = ${ensemble_Ens_DATE_LENGTH_NONPERIODIC[*]}"
+  IGCM_debug_Print 1 "INITFROM             = ${ensemble_Ens_DATE_INITFROM}"
+  IGCM_debug_Print 1 "INITFROM_NONPERIODIC = ${ensemble_Ens_DATE_INITFROM_NONPERIODIC[*]}"
+  IGCM_debug_Print 1 "INITPATH             = ${ensemble_Ens_DATE_INITPATH}"
+  IGCM_debug_Print 1 "INITPATH_NONPERIODIC = ${ensemble_Ens_DATE_INITPATH_NONPERIODIC[*]}"
+  IGCM_debug_Print 1 "JobName              = ${config_UserChoices_JobName}"
+  IGCM_debug_Print 1 "TagName              = ${config_UserChoices_TagName}"
+  IGCM_debug_Print 1 "CalendarType         = ${config_UserChoices_CalendarType}"
+  IGCM_debug_Print 1 "ListOfComponents     = ${config_ListOfComponents[*]}"
+  echo ""
+
+  IGCM_debug_Print 1 "Check args..."
+  DateNonPeriodicStart=true
+
+  # ... Check LENGTH ...
+  case ${ensemble_Ens_DATE_LENGTH} in
+  *[Yy]|*[Mm])
+    IGCM_debug_Print 1 "Default simulation duration : ${ensemble_Ens_DATE_LENGTH}" ;;
+  *)
+    IGCM_debug_Exit "IGCM_ensemble_DateInit ${ensemble_Ens_DATE_LENGTH} invalid LENGTH"
+    IGCM_debug_Exit "Choose a value in choose in *Y or *M"
+    IGCM_debug_Verif_Exit ;;
+  esac
+
+  # ***************************************
+  # A few checks for the Non-Periodic case:
+  # ***************************************
+#  if [[ ${#ensemble_Ens_DATE_NONPERIODIC[*]} != ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ]] ; then
+#    IGCM_debug_Exit "IGCM_ensemble_DateInit: NONPERIODIC and RESTART_NONPERIODIC lists have different sizes"
+#    IGCM_debug_Verif_Exit
+#  fi
+
+  if [[ ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} > 0 ]] && [[ ${ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} != _0_ ]]; then
+    DateNonPeriodicStart=true
+
+    # Use LENGTH if no NONPERIODIC_LENGTH given
+    if [[ ${#ensemble_Ens_DATE_LENGTH_NONPERIODIC[*]} < ${#ensemble_Ens_DATE_NONPERIODIC[*]} ]] ||
+	   [[ X"${ensemble_Ens_DATE_LENGTH_NONPERIODIC[0]}" = "XOption" ]] ; then
+	IGCM_debug_Print 1 "WARNING: LENGTH_NONPERIODIC is not fill (or not correctly). "
+	IGCM_debug_Print 1 "Use LENGTH value '${ensemble_Ens_DATE_LENGTH}' for all NONPERIODIC runs"
+      DateNum=0
+      while [ ${DateNum} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; do
+        ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_LENGTH}
+        (( DateNum = DateNum + 1 ))
+      done
+    fi
+    
+    # Use STARTDATE if no NONPERIODIC start date given
+    if [[ ${#ensemble_Ens_DATE_NONPERIODIC[*]} < ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ]] ||
+	   [[ X"${ensemble_Ens_DATE_NONPERIODIC[0]}" = "XOption" ]] ; then
+	IGCM_debug_Print 1 "WARNING: NONPERIODIC start date not fill (or not correctly)."
+	IGCM_debug_Print 1 "Use STARTDATE value '${ensemble_Ens_DATE_STARTDATE}' for all NONPERIODIC runs"
+      DateNum=0
+      while [ ${DateNum} -lt ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ] ; do
+        ensemble_Ens_DATE_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_STARTDATE}
+        (( DateNum = DateNum + 1 ))
+      done
+    fi
+	
+    # Use INITFROM if no INITFROM_NONPERIODIC given
+    if [ ${#ensemble_Ens_DATE_INITFROM_NONPERIODIC[*]} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; then
+      IGCM_debug_Print 1 "WARNING: INITFROM_NONPERIODIC is not fill (or not correctly). Use INITFROM value '${ensemble_Ens_DATE_INITFROM}' for all NONPERIODIC runs"
+      DateNum=0
+      while [ ${DateNum} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; do
+        ensemble_Ens_DATE_INITFROM_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_INITFROM}
+        (( DateNum = DateNum + 1 ))
+      done
+    fi
+    
+    # Use INITPATH if no INITPATH_NONPERIODIC given
+    if [ ${#ensemble_Ens_DATE_INITPATH_NONPERIODIC[*]} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; then
+      IGCM_debug_Print 1 "WARNING: INITPATH_NONPERIODIC is not fill (or not correctly). Use INITPATH value '${ensemble_Ens_DATE_INITPATH}' for all NONPERIODIC runs"
+      DateNum=0
+      while [ ${DateNum} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; do
+        ensemble_Ens_DATE_INITPATH_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_INITPATH}
+        (( DateNum = DateNum + 1 ))
+      done
+    fi
+  else
+    IGCM_debug_Print 1 "Non-Periodic start NOT ACTIVE"
+    DateNonPeriodicStart=false
+  fi
+
+  if [[ ${DateNonPeriodicStart} = true ]]; then
+    DateNum=0
+    while [ ${DateNum} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; do
+      # - Check LENGTH_NONPERIODIC
+      case ${ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]} in
+      *[Yy]|*[Mm])
+        IGCM_debug_Print 1 "Non-periodic duration ${DateNum}: ${ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]}"
+        ;;
+      *)
+        IGCM_debug_Exit "IGCM_ensemble_DateInit ${ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]} : invalid NON PERIODIC LENGTH"
+        IGCM_debug_Exit "choose in *Y or *M"
+        IGCM_debug_Verif_Exit ;;
+      esac
+
+      # - Check RESTART_NONPERIODIC
+      case ${ensemble_Ens_DATE_RESTART_NONPERIODIC[${DateNum}]} in
+      _0_)
+        IGCM_debug_Exit "IGCM_ensemble_DateInit ${ensemble_Ens_DATE_RESTART_NONPERIODIC[${DateNum}]} : invalid NON PERIODIC RESTART"
+        IGCM_debug_Verif_Exit ;;
+      esac
+
+      (( DateNum = DateNum + 1 ))
+    done
+  fi # DateNonPeriodicStart = true
+
+  IGCM_debug_PopStack "IGCM_ensemble_DateInit"
+}
+
+function IGCM_ensemble_DateNonPeriodicStarts
+{
+  IGCM_debug_PushStack "IGCM_ensemble_DateNonPeriodicStarts"
+
+  #.. Manage non periodic starts => Loop over DateBegin ..
+  #   ==========================
+
+  [ ${DateNonPeriodicStart} = false ] && return
+
+  echo
+  IGCM_debug_Print 1 ">>>  MANAGE NON PERIODIC STARTS  <<<"
+
+  # - Build directory name
+  echo ""
+  echo "========================================================================"
+  echo "ensemble_Ens_DATE_NAME = ${ensemble_Ens_DATE_NAME}"
+  StartDir="${ensemble_Ens_DATE_NAME}"
+
+  # -  Does $StartDir already exist ?
+  if [ ! -d ${SUBMIT_DIR}/${StartDir} ] ; then
+    IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir}
+    IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir}
+    ln -s ../../.resol .
+    ln -s ../../.libmpi .
+    IGCM_sys_Cd ${RUN_DIR}
+  fi
+
+  DateNum=0
+  # ... Loop over ensemble_Ens_DATE_NONPERIODIC ...
+  while [ ${DateNum} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; do
+    DateBegin=${ensemble_Ens_DATE_NONPERIODIC[${DateNum}]}
+    Duree=${ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]}
+    RestartDate=${ensemble_Ens_DATE_RESTART_NONPERIODIC[${DateNum}]}
+    InitFrom=${ensemble_Ens_DATE_INITFROM_NONPERIODIC[${DateNum}]}
+    InitPath=${ensemble_Ens_DATE_INITPATH_NONPERIODIC[${DateNum}]}
+    (( ii=DateNum + 1 ))
+    
+    MemberDir="${ensemble_Ens_DATE_NAME}${ii}"
+    IGCM_debug_Print 3 "${MemberDir}"
+    echo "Create: ${MemberDir}"
+    
+  # - Determine number of day(s) in LENGTH_NONPERIODIC
+    IGCM_date_GetYearMonth ${DateBegin} year month
+    DureeLengthInDays=$(( $( IGCM_date_DaysInCurrentPeriod ${DateBegin} ${Duree} ) - 1 ))
+
+  # - Determine DateEnd
+    (( DateEnd = $( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${DureeLengthInDays} ) ))
+
+    IGCM_debug_Print 2 "${DateBegin} => ${DateEnd} : ${StartDir}"
+    echo "${DateBegin} ${DateEnd} ${StartDir}" >> ${RUN_DIR}/CreatedDir.txt
+
+    PeriodDateEnd=$( grep -m1 ${StartDir} ${RUN_DIR}/CreatedDir.txt | cut -f2 -d\  )
+
+    JobName="Job_${MemberDir}"
+    
+    # * Create directory if it doesn't exist and copy files
+    if [ ! -d  ${SUBMIT_DIR}/${StartDir}/${MemberDir} ] ; then
+
+        # * Create ${SUBMIT_DIR}/${StartDir}/${MemberDir} directories
+        #   link COMP PARAM POST and DRIVER
+        #   cp config.card, run.card.init, Job_
+        #   and Dump command to be launched 
+        IGCM_ensemble_CreateMemberDir
+	
+        # * Update files : config.card, Job_, COMP/comp.card
+        IGCM_ensemble_FilesUpdate "DATE" ${ii} ${DateBegin} ${DateEnd} ${RestartDate} ${InitFrom} ${InitPath}
+    fi
+    
+    # Done. Save ${StartDir} submission text file
+    IGCM_sys_Cp ${RUN_DIR}/Qsub.${StartDir}.sh ${SUBMIT_DIR}
+    IGCM_sys_Cp ${RUN_DIR}/Qclean.PeriodLength.${StartDir}.sh ${SUBMIT_DIR}
+    IGCM_sys_Cp ${RUN_DIR}/Qclean.latestPackperiod.${StartDir}.sh ${SUBMIT_DIR}
+
+    (( DateNum = DateNum + 1 ))
+  done
+
+  IGCM_debug_PopStack "IGCM_ensemble_DateNonPeriodicStarts"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20070220_histcom_time_axis.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20070220_histcom_time_axis.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20070220_histcom_time_axis.ksh	(revision 5899)
@@ -0,0 +1,75 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# We keep only first time axis as time_counter !!!!
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+function IGCM_Patch_20070220_histcom_time_axis {
+    IGCM_debug_PushStack "IGCM_Patch_histcom_time_axis" $@
+
+    typeset file AXISt AXISt_i VARName var ATTN ATTNV VAR_AXISt VAR_AXISt_i
+
+    ncdump -h ${1} > ${1}_ncdump-h
+    set +A AXISt $(cat ${1}_ncdump-h | grep 't_ave_.*(time_counter)' | sed -e 's/[[:space:]]float t_ave_\([0-9]*\).*/\1/')
+    # liste => tous les axes de temps vont s'appeler time_counter !!
+    if [ $? -eq 0 ] ; then
+
+	file=t_$1
+	IGCM_sys_Mv ${1} ${file}
+	IGCM_sys_Chmod 644 ${file}
+
+	if [ ${#AXISt[*]} -gt 1 ] ; then
+	    echo "WARNING : for file ${1} we have more than one time axis !"
+	    echo "We choose first one ! = t_ave_${AXISt[0]}."
+	fi
+        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+        # We keep only first time axis as time_counter !!!!
+        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+	AXISt_i=${AXISt[0]}
+	# Rename time_counter variable
+	IGCM_sys_ncrename -O --hst -v t_ave_${AXISt_i},time_counter ${file}
+	ncdump -h ${file} > ${file}_ncdump-h
+
+	# We have also to rename variables indexed by this time value
+        # liste => pb avec deux variables indéxées par deux valeurs de temps différentes => même nom au final!
+	set +A VAR_AXISt $( cat ${file}_ncdump-h | grep "[[:space:]]*[a-z]* [a-zA-Z_]*${AXISt_i}(.*) ;" | sed -e "s/[[:space:]]*[a-z]* \([a-zA-Z_]*\)_${AXISt_i}(.*) ;/\1/" )
+	for VAR_AXISt_i in ${VAR_AXISt[*]} ; do
+	    IGCM_sys_ncrename -O --hst -v ${VAR_AXISt_i}_${AXISt_i},${VAR_AXISt_i} ${file}
+	done
+
+        # A-t-on besoin de renommer les attributs des autres variables ??
+	# Rename relative associate string in other variables
+
+	set +A VARName $( cat ${file}_ncdump-h | grep "[0-9a-zA-Z_]*.*:associate.*" | grep "t_ave_${AXISt_i}" | sed -e "s/[[:space:]]*\(.*\):associate.*/\1/" )
+	for var in ${VARName[*]} ; do 
+	    # Old attribute value
+	    ATTN=$( cat ${file}_ncdump-h | grep "${var}:associate.*" | grep "t_ave_${AXISt_i}" | sed -e "s/.*:associate = \"\(.*\)\" ;/\1/" )
+	    # New attribute value
+	    ATTNV=$( echo ${ATTN} | sed -e "s/t_ave_${AXISt_i}/time_counter/" ) #| sed -e 's/[[:space:]]/\\ /g')
+	    # change it !
+	    IGCM_sys_ncatted -O --hst -a associate,${var},m,c,"${ATTNV}" ${file}
+	done
+        # ------------------------------------------------------------------
+        # Test if all was right before proceeding further
+        # ------------------------------------------------------------------
+	IGCM_debug_Verif_Exit
+
+	IGCM_sys_Mv ${file} ${1}
+	IGCM_sys_Rm ${file}_ncdump-h
+    fi
+    IGCM_sys_Rm ${1}_ncdump-h
+    
+    IGCM_debug_PopStack "IGCM_Patch_histcom_time_axis"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20090317_histcom__Fillvalue.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20090317_histcom__Fillvalue.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20090317_histcom__Fillvalue.ksh	(revision 5899)
@@ -0,0 +1,41 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# We change _Fillvalue to old missing_value    !!!!
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+function IGCM_Patch_20090317_histcom__Fillvalue {
+    IGCM_debug_PushStack "IGCM_Patch_histcom__Fillvalue" $@
+ 
+    typeset file
+
+    file=t_$1
+    IGCM_sys_Mv ${1} ${file}
+    IGCM_sys_Chmod 644 ${file}
+
+    #IGCM_sys_ncrename -O --hst -a _Fillvalue,missing_value ${file}
+
+    miss=$( ncdump -h ${file} | grep _Fillvalue | head -1 | awk "-F=" '{print $2}' |  awk "-Ff" '{print $1}' )
+
+    [ ! X${miss} = X ] && IGCM_sys_ncatted -a missing_value,,c,f,${miss} ${file} 
+
+    # ------------------------------------------------------------------
+    # Test if all was right before proceeding further
+    # ------------------------------------------------------------------
+    IGCM_debug_Verif_Exit
+
+    IGCM_sys_Mv ${file} ${1}
+    
+    IGCM_debug_PopStack "IGCM_Patch_histcom__Fillvalue"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20090407_histcom_time_axis.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20090407_histcom_time_axis.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20090407_histcom_time_axis.ksh	(revision 5899)
@@ -0,0 +1,75 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# We keep only first time axis as time_counter !!!!
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+function IGCM_Patch_20090407_histcom_time_axis {
+    IGCM_debug_PushStack "IGCM_Patch_histcom_time_axis" $@
+
+    typeset file AXISt AXISt_i VARName var ATTN ATTNV VAR_AXISt VAR_AXISt_i
+
+    ncdump -h ${1} > ${1}_ncdump-h
+    set +A AXISt $(cat ${1}_ncdump-h | grep 't_ave_.*(time_counter)' | sed -e 's/[[:space:]][fd][lo][ou][ab][tl][ e] *t_ave_\([0-9]*\).*/\1/')
+    # liste => tous les axes de temps vont s'appeler time_counter !!
+    if [ $? -eq 0 ] ; then
+
+	file=t_$1
+	IGCM_sys_Mv ${1} ${file}
+	IGCM_sys_Chmod 644 ${file}
+
+	if [ ${#AXISt[*]} -gt 1 ] ; then
+	    echo "WARNING : for file ${1} we have more than one time axis !"
+	    echo "We choose first one ! = t_ave_${AXISt[0]}."
+	fi
+        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+        # We keep only first time axis as time_counter !!!!
+        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+	AXISt_i=${AXISt[0]}
+	# Rename time_counter variable
+	IGCM_sys_ncrename -O --hst -v t_ave_${AXISt_i},time_counter ${file}
+	ncdump -h ${file} > ${file}_ncdump-h
+
+	# We have also to rename variables indexed by this time value
+        # liste => pb avec deux variables indéxées par deux valeurs de temps différentes => même nom au final!
+	set +A VAR_AXISt $( cat ${file}_ncdump-h | grep "[[:space:]]*[a-z]* [a-zA-Z_]*${AXISt_i}(.*) ;" | sed -e "s/[[:space:]]*[a-z]* \([a-zA-Z_]*\)_${AXISt_i}(.*) ;/\1/" )
+	for VAR_AXISt_i in ${VAR_AXISt[*]} ; do
+	    IGCM_sys_ncrename -O --hst -v ${VAR_AXISt_i}_${AXISt_i},${VAR_AXISt_i} ${file}
+	done
+
+        # A-t-on besoin de renommer les attributs des autres variables ??
+	# Rename relative associate string in other variables
+
+	set +A VARName $( cat ${file}_ncdump-h | grep "[0-9a-zA-Z_]*.*:associate.*" | grep "t_ave_${AXISt_i}" | sed -e "s/[[:space:]]*\(.*\):associate.*/\1/" )
+	for var in ${VARName[*]} ; do 
+	    # Old attribute value
+	    ATTN=$( cat ${file}_ncdump-h | grep "${var}:associate.*" | grep "t_ave_${AXISt_i}" | sed -e "s/.*:associate = \"\(.*\)\" ;/\1/" )
+	    # New attribute value
+	    ATTNV=$( echo ${ATTN} | sed -e "s/t_ave_${AXISt_i}/time_counter/" ) #| sed -e 's/[[:space:]]/\\ /g')
+	    # change it !
+	    IGCM_sys_ncatted -O --hst -a associate,${var},m,c,"${ATTNV}" ${file}
+	done
+        # ------------------------------------------------------------------
+        # Test if all was right before proceeding further
+        # ------------------------------------------------------------------
+	IGCM_debug_Verif_Exit
+
+	IGCM_sys_Mv ${file} ${1}
+	IGCM_sys_Rm ${file}_ncdump-h
+    fi
+    IGCM_sys_Rm ${1}_ncdump-h
+    
+    IGCM_debug_PopStack "IGCM_Patch_histcom_time_axis"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091030_histcom_time_axis.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091030_histcom_time_axis.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091030_histcom_time_axis.ksh	(revision 5899)
@@ -0,0 +1,90 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# We keep only first time axis as time_counter !!!!
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+function IGCM_Patch_20091030_histcom_time_axis {
+    IGCM_debug_PushStack "IGCM_Patch_histcom_time_axis" $@
+
+    typeset file AXISt AXISt_i VARName var ATTN ATTNV VAR_AXISt VAR_AXISt_i
+
+    ncdump -h ${1} > ${1}_ncdump-h
+    set +A AXISt $(cat ${1}_ncdump-h | grep 't_ave_.*(time_counter)' | sed -e 's/[[:space:]][fd][lo][ou][ab][tl][ e] *t_ave_\([0-9a-zA-Z]*\).*/\1/')
+    # liste => tous les axes de temps vont s'appeler time_counter !!
+    if [ $? -eq 0 ] ; then
+      if [ ${#AXISt[*]} -ge 1 ] ; then
+
+	file=t_$1
+	IGCM_sys_Mv ${1} ${file}
+	IGCM_sys_Chmod 644 ${file}
+
+	if [ ${#AXISt[*]} -gt 1 ] ; then
+	    echo "WARNING : for file ${1} we have more than one time axis !"
+	    echo "We choose first one ! = t_ave_${AXISt[0]}."
+	fi
+        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+        # We keep only first time axis as time_counter !!!!
+        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+	AXISt_i=${AXISt[0]}
+	# Rename time_counter variable
+	IGCM_sys_ncrename -O --hst -v t_ave_${AXISt_i},time_counter ${file}
+	ncdump -h ${file} > ${file}_ncdump-h
+
+	# We have also to rename variables indexed by this time value
+        # liste => pb avec deux variables indéxées par deux valeurs de temps différentes => même nom au final!
+	set +A VAR_AXISt $( cat ${file}_ncdump-h | grep "[[:space:]]*[a-z]* [a-zA-Z_]*${AXISt_i}(.*) ;" | sed -e "s/[[:space:]]*[a-z]* \([a-zA-Z_]*\)_${AXISt_i}(.*) ;/\1/" )
+	for VAR_AXISt_i in ${VAR_AXISt[*]} ; do
+	    IGCM_sys_ncrename -O --hst -v ${VAR_AXISt_i}_${AXISt_i},${VAR_AXISt_i} ${file}
+	done
+
+        # A-t-on besoin de renommer les attributs des autres variables ??
+	# Rename relative associate string in other variables
+
+	set +A VARName $( cat ${file}_ncdump-h | grep "[0-9a-zA-Z_]*.*:associate.*" | grep "t_ave_${AXISt_i}" | sed -e "s/[[:space:]]*\(.*\):associate.*/\1/" )
+	for var in ${VARName[*]} ; do 
+	    # Old attribute value
+	    ATTN=$( cat ${file}_ncdump-h | grep "${var}:associate.*" | grep "t_ave_${AXISt_i}" | sed -e "s/.*:associate = \"\(.*\)\" ;/\1/" )
+	    # New attribute value
+	    ATTNV=$( echo ${ATTN} | sed -e "s/t_ave_${AXISt_i}/time_counter/" ) #| sed -e 's/[[:space:]]/\\ /g')
+	    # change it !
+	    IGCM_sys_ncatted -O --hst -a associate,${var},m,c,"${ATTNV}" ${file}
+	done
+
+        # Rename coordinates attribut from t_ave_xxxx to time_counter
+
+        set +A VARName $( cat ${file}_ncdump-h | grep "[0-9a-zA-Z_]*.*:coordinates.*" | grep "t_ave_${AXISt_i}" | sed -e "s/[[:space:]]*\(.*\):coordinates.*/\1/" )
+        for var in ${VARName[*]} ; do
+            # Old attribute value
+            ATTN=$( cat ${file}_ncdump-h | grep "${var}:coordinates.*" | grep "t_ave_${AXISt_i}" | sed -e "s/.*:coordinates = \"\(.*\)\" ;/\1/" )
+            # New attribute value
+            ATTNV=$( echo ${ATTN} | sed -e "s/t_ave_${AXISt_i}/time_counter/" ) #| sed -e 's/[[:space:]]/\\ /g')
+            # change it ! 
+	    IGCM_sys_ncatted -O --hst -a coordinates,${var},m,c,"${ATTNV}" ${file}
+        done
+
+        # ------------------------------------------------------------------
+        # Test if all was right before proceeding further
+        # ------------------------------------------------------------------
+	IGCM_debug_Verif_Exit
+
+	IGCM_sys_Mv ${file} ${1}
+	IGCM_sys_Rm ${file}_ncdump-h
+      fi
+    fi
+    IGCM_sys_Rm ${1}_ncdump-h
+    
+    IGCM_debug_PopStack "IGCM_Patch_histcom_time_axis"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091116_ncks_ncra.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091116_ncks_ncra.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091116_ncks_ncra.ksh	(revision 5899)
@@ -0,0 +1,61 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Marie-Alice Foujols
+# Contact: Marie-Alice.Foujols__at__ipsl.jussieu.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2009)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#------------------------------------------------------------
+# ncks CPL files for 1D frequency, ncra for 1M averaged files
+#------------------------------------------------------------
+
+function IGCM_Patch_20091116_ncks_ncra {
+    IGCM_debug_PushStack "IGCM_Patch_ncks_ncra" $@
+
+    CPL_OkDay=y
+    CPL_OkMonth=y
+
+    PREFIX=TEMPO
+    if [ -f FIRST_TIME_CPL ] ; then
+       echo FIRST_TIME_CPL exists
+    else
+       # create FIRST_TIME_CPL file
+       date > FIRST_TIME_CPL
+
+       #ls -l S*_out.*.nc C*_out.*.nc
+
+       rm -f ${PREFIX}_*_cpl_*.nc 
+
+       for file in S*_out.*.nc C*_out.*.nc
+       do
+           [[ ${CPL_OkDay}   = "y" ]] && IGCM_sys_ncks -A ${file} ${PREFIX}_1D_cpl_atm.nc  > /dev/null 2>&1
+           [[ ${CPL_OkMonth} = "y" ]] && IGCM_sys_ncra -A ${file} ${PREFIX}_1M_cpl_atm.nc  > /dev/null 2>&1
+       done
+       rm -f S*_out.*.nc C*_out.*.nc
+
+       #ls -l O*_out.*.nc
+
+       for file in O*_out.*.nc
+       do
+           [[ ${CPL_OkDay}   = "y" ]] && IGCM_sys_ncks -A ${file} ${PREFIX}_1D_cpl_oce.nc   > /dev/null 2>&1
+           [[ ${CPL_OkMonth} = "y" ]] && IGCM_sys_ncra -A ${file} ${PREFIX}_1M_cpl_oce.nc   > /dev/null 2>&1
+       done
+       rm -f O*_out.*.nc
+
+       # ------------------------------------------------------------------
+       # Test if all was right before proceeding further
+       # ------------------------------------------------------------------
+       IGCM_debug_Verif_Exit
+
+       #ls -s ${PREFIX}_*_cpl_*.nc 
+
+     fi
+    
+    IGCM_debug_PopStack "IGCM_Patch_ncks_ncra"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091118_mask.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091118_mask.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091118_mask.ksh	(revision 5899)
@@ -0,0 +1,153 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Arnaud Caubel
+# Contact: Arnaud.Caubel__at__lsce.ipsl.fr
+# $Revision:: 1206                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit
+# IPSL (2009)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#------------------------------------------------------------
+# Add mask from meshmask file to oceanic variables
+#------------------------------------------------------------
+
+function IGCM_Patch_20091118_mask {
+
+    IGCM_debug_PushStack "IGCM_Patch_mask" $@
+
+    if [ ! -f ${config_UserChoices_JobName}_mesh_mask.nc ] ; then
+      if [ -f mesh_mask.nc ] ; then
+    IGCM_sys_Cp mesh_mask.nc ${config_UserChoices_JobName}_mesh_mask.nc
+      elif [ -f ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc ] ; then
+	IGCM_sys_GetBuffer ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc .
+      elif [ -f ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc ] ; then
+	IGCM_sys_Get ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc .
+      else
+	IGCM_debug_Exit "mesh_mask can not be found. Stop."
+	IGCM_debug_Exit "neither here ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc"
+	IGCM_debug_Exit "nor here ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc"
+	IGCM_debug_Verif_Exit
+      fi
+    fi
+
+    filename=${1}
+
+    chaineT=${filename%%'grid_T'*}
+    chaineU=${filename%%'grid_U'*}
+    chaineV=${filename%%'grid_V'*}
+    chaineW=${filename%%'grid_W'*}
+    chaineIce=${filename%%'icemod'*}
+    chaineTrc=${filename%%'ptrc_T'*}
+    chaineDia=${filename%%'diad_T'*}
+    chaineBio=${filename%%'dbio_T'*}
+
+    if [ ${filename} != ${chaineT} ]; then
+	mask='tmask' ; depth='deptht'
+    elif [ ${filename} != ${chaineU} ]; then
+	mask='umask' ; depth='depthu'
+    elif [ ${filename} != ${chaineV} ]; then
+	mask='vmask' ; depth='depthv'
+    elif [ ${filename} != ${chaineW} ]; then
+	mask='tmask' ; depth='depthw'
+    elif [ ${filename} != ${chaineIce} ]; then
+	mask='tmask' ; depth='deptht'
+    elif [ ${filename} != ${chaineTrc} ]; then
+	mask='tmask' ; depth='deptht'
+    elif [ ${filename} != ${chaineDia} ]; then
+	mask='tmask' ; depth='deptht'
+    elif [ ${filename} != ${chaineBio} ]; then
+	mask='tmask' ; depth='deptht'
+    fi
+
+    #============================================
+    # Remove nav_lon, nav_lat file
+    IGCM_sys_ncks -Oh -x -v nav_lon,nav_lat ${filename} file1.nc
+
+    #============================================
+    # Extract mask variable
+    IGCM_sys_ncks -Oh -v ${mask} ${config_UserChoices_JobName}_mesh_mask.nc mask3D.nc
+
+    #============================================
+    # Rename deptht dimension
+    IGCM_sys_ncrename -Oh -d z,${depth} mask3D.nc
+
+    #============================================
+    # Remove single dimension t
+    IGCM_sys_ncwa -Oh -a t mask3D.nc mask3D.nc
+
+    #============================================
+    # Create mask2D 
+    IGCM_sys_ncks -Oh -d ${depth},0,0 mask3D.nc mask2D.nc
+    IGCM_sys_ncwa -Oh -a ${depth} mask2D.nc mask2D.nc
+    IGCM_sys_ncrename -h -v ${mask},mask2D mask2D.nc
+
+    #============================================
+    # Append mask (2D) to file1.nc
+    IGCM_sys_ncks -Ah -c -v mask2D mask2D.nc file1.nc
+
+    if [ ${filename} = ${chaineIce} ]; then
+
+        #============================================
+        # Append mask (3D) only for oceanic files
+	IGCM_sys_ncks -Ah -v ${mask} mask3D.nc file1.nc
+	IGCM_sys_ncrename -h -v ${mask},mask3D file1.nc
+
+        #============================================
+        # Add record dimension only for oceanic files
+	IGCM_sys_ncecat -Oh file1.nc file1.nc
+
+        #============================================
+        # Apply mask 3D only for oceanic files
+	IGCM_sys_ncwa -Oh -a record -B 'mask3D==1' file1.nc file2.nc
+	IGCM_sys_Rm file1.nc
+	IGCM_sys_Mv file2.nc file1.nc
+
+
+    fi
+
+    #============================================
+    # Add record dimension
+    IGCM_sys_ncecat -Oh file1.nc file1.nc
+
+    #============================================
+    # Apply mask 2D
+    IGCM_sys_ncwa -Oh -b -a record -B 'mask2D==1' file1.nc file1.nc
+
+    #============================================
+    # Permute record dimension in time_counter dimension
+    IGCM_sys_ncpdq -Oh -a time_counter,record file1.nc file1.nc
+    IGCM_sys_ncwa -Oh -a record file1.nc file1.nc
+
+    #============================================
+    # Remove mask 2D and 3D for oceanic files, and mask 2D only for ice files
+    
+    if [ ${filename} = ${chaineIce} ]; then
+        #============================================
+        # Remove mask 2D and mask 3D for oceanic files
+        IGCM_sys_ncks -Oh -x -v mask2D,mask3D file1.nc file_mask.nc
+    else
+        #============================================
+        # Remove mask 2D for ice files
+        IGCM_sys_ncks -Oh -x -v mask2D file1.nc file_mask.nc
+    fi
+
+    #============================================
+    # Add nav_lon nav_lat
+    IGCM_sys_ncks -Ah -v nav_lon,nav_lat ${filename} file_mask.nc
+
+    # ------------------------------------------------------------------
+    # Test if all was right before proceeding further
+    # ------------------------------------------------------------------
+    IGCM_debug_Verif_Exit
+
+    #============================================
+    # Cleaning
+    IGCM_sys_Mv file_mask.nc ${filename}
+    IGCM_sys_Rm mask3D.nc mask2D.nc file1.nc
+    
+    IGCM_debug_PopStack "IGCM_Patch_mask"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091119_put_out.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091119_put_out.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20091119_put_out.ksh	(revision 5899)
@@ -0,0 +1,23 @@
+#!/bin/ksh
+
+#**************************************************************
+#**************************************************************
+# Author: Marie-Alice Foujols
+# Contact: Marie-Alice.Foujols__at__ipsl.jussieu.fr
+# $Revision:: 1059                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-09-23 12:05:29 +0200 (Tue, 23 Sep 2014) $ Date of last commit
+# IPSL (2009)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#------------------------------------------------------------
+# to put_out the result of IGCM_Patch_20091116_ncks_ncra.ksh
+#------------------------------------------------------------
+
+function IGCM_Patch_20091119_put_out {
+    IGCM_debug_PushStack "IGCM_Patch_put_out" $@
+
+    IGCM_debug_PopStack "IGCM_Patch_put_out"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20101208_nudge_interp.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20101208_nudge_interp.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20101208_nudge_interp.ksh	(revision 5899)
@@ -0,0 +1,160 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Josefine Ghattas
+# Contact: Josefine.Ghattas__at__ipsl.jussieu.fr
+# $Revision:: 1059                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-09-23 12:05:29 +0200 (Tue, 23 Sep 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+#
+# Interpolation of monthly input ERAI files to the actual model grid.
+#
+# The patch should be applied once for each variable to interpolate. The file start.nc must be present in lmdz.car OutputFiles.
+# In lmdz.card all monthly ERAI files for the actual year to be interpolated must be present at format var_month_year.nc, where var=[u,v], 
+# month=[1,13]. The file var_13_year.nc correspond to january the following year.
+# Partial year can be interpolated.
+# 
+#
+function IGCM_Patch_20101208_nudge_interp {
+    IGCM_debug_PushStack "IGCM_Patch_nudge_interp" $@
+
+###################################################################################################
+# 1 - Define variables
+# Filein is the first month to interpolate for a variable.
+# Filein name should be at format X_Y_ZZZZ.nc, where X=varaiable name [u,v,ta], Y=[1,13] and ZZZZ=year.
+# To do one year complete for one variable X, 13 month must be present.
+###################################################################################################
+    filein=${1}
+
+# Define startfile containg the destination grid. This file must exist in the OutputFiles list in lmdz.card. 
+    startfile=start.nc
+
+# Determine which variable and year concerned by this patch
+    var=$( echo ${filein} | awk '-F_' '{print $1}' )
+    year=$( echo ${filein} | awk '-F_' '{print $3}' | awk '-F.nc' '{print $1}' )
+    echo var=$var year=$year
+
+###################################################################################################
+# 2 - Interpolate all files for the actual varaiable.
+#     Original files will be overritten.
+###################################################################################################
+    filelist=${var}_*.nc
+    echo 'filelist 1 = ' ${filelist}
+    for file in ${filelist}; do
+	month=$( echo ${file} | awk '-F_' '{print $2}' | awk '-F_' '{print $1}' )
+	echo 'era2gcm for file = ' ${file} 
+	IGCM_era2gcm ${file} tmp_${file} ${var} ${year}
+	IGCM_sys_Mv tmp_${file} ${file}
+    done
+
+###################################################################################################
+# 3 - Add a final time step in each file, coming from the first time step in following month
+###################################################################################################
+    filelist=${var}_*.nc
+    echo 'filelist 2 = ' ${filelist}
+    for file in ${filelist}; do
+	month=$( echo ${file} | awk '-F_' '{print $2}' | awk '-F_' '{print $1}' )
+	month_next=`expr $month + 1`
+	file_next=${var}_${month_next}_${year}.nc
+	if [ -f ${file_next} ] ; then
+	    echo First time step from file ${file_next} will be added last in file ${file}
+	    ncks -O -d THOUR,0,0 ${file_next} tmp.nc
+	    ncrcat -O $file tmp.nc tmptot.nc
+	    IGCM_sys_Mv tmptot.nc $file
+	else
+	    echo Next file ${file_next} does not exist. Nothing will be done for ${file}
+	fi
+    done
+
+###################################################################################################
+# 4 - Remove 13'th month
+###################################################################################################
+    if [ -f ${var}_13_${year}.nc ] ; then
+	echo Remove file ${var}_13_${year}.nc
+	IGCM_sys_Rm ${var}_13_${year}.nc
+    fi
+
+    IGCM_debug_PopStack "IGCM_Patch_nudge_interp"
+}
+
+
+function IGCM_era2gcm {
+#set -xv
+# Function that does a linear interpolation of the variable in 
+# filein towards the destionation grid in gridfile. Results in are 
+# stored in fileout.
+    IGCM_debug_PushStack "IGCM_era2gcm" $@
+
+###################################################################
+# 1 - Define variables
+###################################################################
+    filein=$1
+    fileout=$2
+    varin=$3
+    year=$4
+
+# Define file with destination grid
+    gridfile=start.nc
+    
+# Find time boundaries
+    tmin=1
+    tmax=`ncdump -h ${filein} | grep time | head -1 | awk ' { print $6 } '`
+    tmax=$( echo ${tmax} | awk '-F(' '{print $2}' )
+    
+# Choose grid and output variable name 
+    if [ ${varin} = 'u' ] ; then 
+	varout=uwnd
+	grille='grille_u'
+    elif [ ${varin} = 'v' ] ; then 
+	varout=vwnd
+	grille='grille_v'
+    elif [ ${varin} = 'ta' ] ; then 
+	varout=air
+	grille='grille_t'
+    elif [ ${varin} = 'r' ] ; then 
+	varout=rh
+	grille='grille_t'
+    elif [ ${varin} = 'msl' ] ; then 
+	varout=sp
+	grille='grille_t'
+    else 
+	echo Error : ${varin} unknown!!!!
+	exit
+    fi 
+
+###################################################################
+# 2 - Create ferret script for interpolation
+###################################################################
+    cat << eod >  ${varin}.jnl
+set memory/size=50
+
+use ${gridfile}
+use ${filein}
+let ${varout}=${varin}
+
+define axis/t=01-JAN-${year}:31-DEC-${year}:6/units=hours thour
+
+define grid/like=${varout}[d=2]/x=cu[d=1]/y=cu[d=1] grille_u
+define grid/like=${varout}[d=2]/x=cv[d=1]/y=cv[d=1] grille_v
+define grid/like=${varout}[d=2]/x=cv[d=1]/y=cu[d=1] grille_t
+
+save/clobber/file=${fileout} ${varout}[d=2,g=${grille},l=1,gt=thour@asn]
+repeat/l=1:${tmax} save/file="${fileout}"/append ${varout}[d=2,g=${grille},gt=thour@asn]
+
+exit
+eod
+    
+###################################################################
+# 3 - Launch interpolation with ferret
+###################################################################
+    ferret -nojnl <<eod >  /dev/null
+go ${varin}.jnl
+quit
+eod
+
+    IGCM_debug_PopStack "IGCM_era2gcm"    
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20140206_ncks_ncra.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20140206_ncks_ncra.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20140206_ncks_ncra.ksh	(revision 5899)
@@ -0,0 +1,52 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Marie-Alice Foujols
+# Contact: Marie-Alice.Foujols__at__ipsl.jussieu.fr
+# $Revision:: 1107                                     $ Revision of last commit
+# $Author:: aclsce                                     $ Author of last commit
+# $Date:: 2014-10-22 16:53:47 +0200 (Wed, 22 Oct 2014) $ Date of last commit
+# IPSL (2009)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#------------------------------------------------------------
+# ncks CPL files for 1D frequency, ncra for 1M averaged files
+#------------------------------------------------------------
+
+function IGCM_Patch_20140206_ncks_ncra {
+    IGCM_debug_PushStack "IGCM_Patch_ncks_ncra" $@
+
+    CPL_OkDay=y
+    CPL_OkMonth=y
+
+    PREFIX=TEMPO
+    if [ -f FIRST_TIME_CPL ] ; then
+       echo FIRST_TIME_CPL exists
+    else
+       # create FIRST_TIME_CPL file
+       date > FIRST_TIME_CPL
+
+       rm -f ${PREFIX}_*_cpl_*.nc 
+
+       list_file_atm=$( find . \( -name "S*lmdz.x*.nc" -o -name "C*lmdz.x*.nc" -o -name "S*LMDZ*.nc" -o -name "C*LMDZ*.nc" \) )
+
+       for file in ${list_file_atm} 
+       do
+           [[ ${CPL_OkDay}   = "y" ]] && IGCM_sys_ncks -A ${file} ${PREFIX}_1D_cpl_atm.nc  > /dev/null 2>&1
+           [[ ${CPL_OkMonth} = "y" ]] && IGCM_sys_ncra -A ${file} ${PREFIX}_1M_cpl_atm.nc  > /dev/null 2>&1
+       done
+       rm -f S*lmdz.x*.nc C*lmdz.x*.nc S*LMDZ*.nc C*LMDZ*.nc
+
+       for file in O*oceanx*.nc
+       do
+           [[ ${CPL_OkDay}   = "y" ]] && IGCM_sys_ncks -A ${file} ${PREFIX}_1D_cpl_oce.nc   > /dev/null 2>&1
+           [[ ${CPL_OkMonth} = "y" ]] && IGCM_sys_ncra -A ${file} ${PREFIX}_1M_cpl_oce.nc   > /dev/null 2>&1
+       done
+       rm -f O*oceanx*.nc
+
+     fi
+    
+    IGCM_debug_PopStack "IGCM_Patch_ncks_ncra"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20140801_ncks_cdo.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20140801_ncks_cdo.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/IGCM_Patch_20140801_ncks_cdo.ksh	(revision 5899)
@@ -0,0 +1,76 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Marie-Alice Foujols
+# Contact: Marie-Alice.Foujols__at__ipsl.jussieu.fr
+# $Revision:: 1107                                     $ Revision of last commit
+# $Author:: aclsce                                     $ Author of last commit
+# $Date:: 2014-10-22 16:53:47 +0200 (Wed, 22 Oct 2014) $ Date of last commit
+# IPSL (2009)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#------------------------------------------------------------
+# ncks CPL files for 1D frequency, ncra for 1M averaged files
+#------------------------------------------------------------
+
+function IGCM_Patch_20140801_ncks_cdo {
+    IGCM_debug_PushStack "IGCM_Patch_ncks_ncra" $@
+
+    PREFIX=TEMPO
+    if [ -f FIRST_TIME_CPL ] ; then
+       echo FIRST_TIME_CPL exists
+    else
+       # create FIRST_TIME_CPL file
+       date > FIRST_TIME_CPL
+
+       # Get date from directory name
+       DateDeb=$( basename $(pwd) | awk -F _ '{ print $2}' )
+       DateDeb=$( IGCM_date_ConvertFormatToHuman ${DateDeb} )
+       
+       rm -f ${PREFIX}_*_cpl_*.nc 
+
+       list_file_atm=$( find . \( -name "S*lmdz.x*.nc" -o -name "C*lmdz.x*.nc" -o -name "S*LMDZ*.nc" -o -name "C*LMDZ*.nc" \) )
+
+       for file in ${list_file_atm} 
+       do
+           IGCM_sys_ncks -A ${file} ${PREFIX}_1D_cpl_atm.nc  > /dev/null 2>&1
+       done
+       rm -f S*lmdz.x*.nc C*lmdz.x*.nc S*LMDZ*.nc C*LMDZ*.nc
+
+       ## Correctly defines the time axis for CDO
+       # DateDeb is first date of the file, not start date of run
+       # (according to time var in OASIS files)
+       #
+       ncatted \
+	   -a axis,time,c,c,"T"                                  \
+	   -a long_name,time,c,c,"Time axis"                     \
+	   -a title,time,c,c,"Time"                              \
+	   -a calendar,time,c,c,"noleap"                         \
+	   -a units,time,c,c,"seconds since ${DateDeb} 00:00:00" \
+	   -a time_origin,time,c,c,"${DateDeb} 00:00:00"         \
+	   ${PREFIX}_1D_cpl_atm.nc 
+
+       for file in O*oceanx*.nc
+       do
+           IGCM_sys_ncks -A ${file} ${PREFIX}_1D_cpl_oce.nc   > /dev/null 2>&1
+       done
+       rm -f O*oceanx*.nc
+
+       ncatted \
+	   -a axis,time,c,c,"T"                                  \
+	   -a long_name,time,c,c,"Time axis"                     \
+	   -a title,time,c,c,"Time"                              \
+	   -a calendar,time,c,c,"noleap"                         \
+	   -a units,time,c,c,"seconds since ${DateDeb} 00:00:00" \
+	   -a time_origin,time,c,c,"${DateDeb} 00:00:00"         \
+	   ${PREFIX}_1D_cpl_oce.nc 
+    fi
+
+    # Monthly average
+    IGCM_sys_cdo monavg ${PREFIX}_1D_cpl_atm.nc  ${PREFIX}_1M_cpl_atm.nc
+    IGCM_sys_cdo monavg ${PREFIX}_1D_cpl_oce.nc  ${PREFIX}_1M_cpl_oce.nc
+    
+    IGCM_debug_PopStack "IGCM_Patch_ncks_ncra"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/check_expe_files_size.sh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/check_expe_files_size.sh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/check_expe_files_size.sh	(revision 5899)
@@ -0,0 +1,330 @@
+#!/bin/sh
+##set -xv
+#**************************************************************
+# Author: Marie-Alice Foujols
+# Contact: Marie-Alice.Foujols__at__ipsl.jussieu.fr
+# $Revision:: 1059                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-09-23 12:05:29 +0200 (Tue, 23 Sep 2014) $ Date of last commit
+# IPSL (2009)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# stephane.senesi 'at' meteo.fr, CNRM-GAME/GMGEC, mars-avril 2010
+doc="\nScript d'analyse des fichiers d'un repertoire pour y trouver des formes \n\
+de nom de fichier avec dates, les dates, et des sequences de dates. \n\
+On synthetise la
+\n\n\t Syntaxe : $(basename $0) [-d] [-v/q] [-R] [-Z] dir [-S subdir] [-I maxyear]\n\n\
+L'option -R permet d'inclure les sous-repertoires\n\
+L'option -Z permet de verifier que les tailles des fichiers mensuels sont identiques par mois\n\
+dir permet de decrire le repertoire selectionne : . par defaut \n\
+-S subdir permet de decrire les sous-repertoires selectionnes : \*/Output par exemple\n\
+-I maxyear ne traite que les dates inferieures ou egales a maxyear. Toutes les dates par defaut\n\
+Les formes de dates identifiables sont illustrees dans l'exemple obtenu par \n\
+    \t$(basename $0) -exemple\n\
+la valeur retournee est le nombre de formes de noms de fichier qui presentent des trous\n
+Si l option -Z est precisee, le code retour y ajoute le nombre de mois avec tailles differentes.\n
+-q pour n avoir aucun message / -v pour avoir les patterns et erreurs  a  l ecran \n
+-d pour activer l echo des commandes \n
+Exemples :\n
+check_expe_files_size.sh SRF/Output/MO # verification des noms du repertoire SRF/Output/MO\n
+check_expe_files_size.sh -Z SRF/Output/MO # verification des noms et des tailles des fichiers du repertoire\n
+check_expe_files_size.sh -R -S \"*/Output\" # verification des noms des fichiers pour toute une simulation IPSL\n
+check_expe_files_size.sh -Z -R -S \"*/Output\" # verification des noms et des tailles des fichiers pour toute une simulation IPSL\n
+check_expe_files_size.sh -I 1949 -R -S \"*/Output\" # verification jusuque a l annee 1949 incluse des noms des fichiers pour une simulation IPSL\n
+"
+#La presence d'une annee+mois impose la presence de l'annee entiere
+[ $# -eq 0  ]  && echo -e $doc && exit -1
+
+debugflag=0
+quiet=0
+exemple=0
+recursion=0
+examsize=0
+dir=.
+subdir=
+maxyear=9999
+maxyearp1=9999
+
+#---------------------------------------------
+while [ $# -ne 0 ]
+do
+  case $1 in
+  -h|--help|-help)
+    echo -e $doc
+    exit -1 ;;
+  -e|-exemple)
+    exemple=1
+# exemple de formes de dates reconnues par ce script. La liste ci-dessous est aussi
+# utilisee lors des tests du script
+    cat<<-EOF > /tmp/$$.ldir
+MONEXP_20000101_20000131_1M_histmth.nc
+MONEXP_20000101_20000131_1M_histmthNMC.nc
+MONEXP_20000201_20000228_1M_histmth.nc
+MONEXP_20000201_20000228_1M_histmthNMC.nc
+MONEXP_20000301_20000331_1M_histmth.nc
+MONEXP_20000301_20000331_1M_histmthNMC.nc
+MONEXP_20000401_20000430_1M_histmth.nc
+MONEXP_20000401_20000430_1M_histmthNMC.nc
+MONEXP_20000501_20000531_1M_histmth.nc
+MONEXP_20000501_20000531_1M_histmthNMC.nc
+MONEXP_20000601_20000630_1M_histmth.nc
+MONEXP_20000601_20000630_1M_histmthNMC.nc
+MONEXP_20000701_20000731_1M_histmth.nc
+MONEXP_20000701_20000731_1M_histmthNMC.nc
+MONEXP_20000801_20000831_1M_histmth.nc
+MONEXP_20000801_20000831_1M_histmthNMC.nc
+MONEXP_20000901_20000930_1M_histmth.nc
+MONEXP_20000901_20000930_1M_histmthNMC.nc
+MONEXP_20001001_20001031_1M_histmth.nc
+MONEXP_20001001_20001031_1M_histmthNMC.nc
+MONEXP_20001101_20001130_1M_histmthNMC.nc
+MONEXP_20001201_20001231_1M_histmth.nc
+MONEXP_20001201_20001231_1M_histmthNMC.nc
+
+EOF
+    echo -e "\nExample : with this directory content\n"
+    cat  /tmp/$$.ldir
+    echo -e "\n\nYou would get :\n\n"
+    break;;
+  -d|--debug)
+    set -x
+    debugflag=1
+    shift ;;
+  -q|--quiet)
+    quiet=1
+    shift ;;
+  -v|--verbose)
+    quiet=0
+    shift ;;
+  -R|-r|--r)
+    recursion=1
+    shift ;;
+  -Z|-z|--z)
+    examsize=1
+    shift ;;
+  -S|-s|--s)
+    subdir=$2
+    shift 2 ;;
+  -I|-i|--i)
+    maxyear=$2
+    (( maxyearp1 = maxyear + 1 ))
+    shift 2 ;;
+  *)
+    dir=$1
+    break ;;
+  esac
+done
+
+[ $quiet = 0 ] && echo quiet : $quiet recursion : $recursion - examsize : $examsize - dir - $dir -- subdir $subdir-- maxyearp1 : $maxyearp1
+if [ $exemple = 0 ] ; then
+  [ ! -d $dir ] && echo "verif_expe_files : missing directory $dir "&& exit
+  ( cd $dir
+    if [ $recursion = O ] ; then ls > /tmp/$$.ldir ; [ $examsize = 1 ] && ls -l > /tmp/$$.size # Cas "normal" : on liste les entrees du repertoire et ls long
+    else find ./$subdir  -type f > /tmp/$$.ldir ; [ $examsize = 1 ] && find ./$subdir -type f -exec ls -l {} \; >/tmp/$$.size # Cas de listage recursif des fichiers
+    fi
+  )
+fi
+###head /tmp/$$.ldir ; head /tmp/$$.size ; rm /tmp/$$*
+# For debugging purpose ...
+#head -n 2 /tmp/$$.ldir > /tmp/$$.aa ; mv /tmp/$$.aa /tmp/$$.ldir
+#set -x
+# On remplace les / en ~ dans la liste des fichiers
+cat /tmp/$$.ldir | tr "/" "~" > /tmp/$$.aa ; mv /tmp/$$.aa /tmp/$$.ldir
+[ -f /tmp/$$.size ] && cat /tmp/$$.size | tr "/" "~" > /tmp/$$.aa && mv /tmp/$$.aa /tmp/$$.size
+# On deduit de la liste des fichiers des patterns de annee+mois, annee, intervalles de date ...
+sed -r \
+  -e 's/[0-5][0-9]{3}[01][0-9]/YYMM/g' \
+  -e 's/YYMM01_YYMM(28|29|30|31)/YYmmdd_YYmmdd/g' \
+  /tmp/$$.ldir | sort -u > /tmp/$$.lpat
+# Ci-dessus, il faudrait compter les nb d'occ de chqaue pattern pour signaler et
+# ne pas retenir ceux qui n'apparaissent qu'une fois (sauf les decennaux ?)
+# On ote les patterns sans date du tout
+sed -i -e '/YY/!d' /tmp/$$.lpat
+# On rend compte des patterns identifies
+#echo "Formes de fichier identifiees: " ; awk '{printf "\t%s\n",$1}' /tmp/$$.lpat
+# Une fonction pour associer un nom de fichier a chaque pattern : on remplace les / par des ~
+tmpfic (){
+  echo -n "/tmp/$$." ; echo $1 | tr "/" "_"
+}
+# Pour chaque pattern, on liste les dates pertinentes: annees de debut et fin pour les
+# intervalles d'annees, ou annee ou annee+mois pour les autres
+cat /dev/null > /tmp/$$.dates
+#set -x
+while read pattern ; do
+  if [ $(echo $pattern | grep "YYmmdd_YYmmdd") ] ; then
+        # On transforme le pattern pour mettre une sequences
+        # de capture des annees de debut et fin d'intervalle
+    p2=$(echo $pattern | sed -e 's/YYmmdd_YYmmdd/([0-5][0-9]{3}[01][0-9])01_[0-5][0-9]{3}[01][0-9](28|29|30|31)/g' )
+
+       # On balaye le repertoire avec le(s) pattern(s) transforme(s) pour capturer les annees
+    grep -E $p2 /tmp/$$.ldir | sed -r -e "s/$p2/\1/g"  >> /tmp/$$.$pattern.tmp
+  fi
+  sort -n -u /tmp/$$.$pattern.tmp > /tmp/$$.$pattern.list
+    # Si la liste des date (annees ou annes+mois) pour le pattern est
+    # de taille > 1, on l'integre a la liste generale des dates
+    # en supprimant au prealable les dates isolees
+    # ... ca reste a faire
+  cat /tmp/$$.$pattern.list | cut -c 1-4 >> /tmp/$$.dates
+done < /tmp/$$.lpat
+# Fonction pour completer et rendre sequentielle une liste d'annees (une par ligne)
+force_sequence (){
+  awk '{
+        if (NR==1) {avant=$1; print $1}
+        else { for (i=avant+1 ; i<=$1 ; i++) printf "%04i\n", i}}'
+}
+sort -u /tmp/$$.dates > /tmp/$$.toutes_dates
+# On enleve les trous dans la liste des dates
+force_sequence < /tmp/$$.toutes_dates > /tmp/$$.tmp ; sort -u /tmp/$$.tmp > /tmp/$$.toutes_dates
+# Fonction d'analyse de sequences de nombres (annees, ou annees+mois
+# On transforme les series continues a a+1 a+2....b (a raison d'un par
+# ligne) en : "a-b"
+sequence (){
+  awk -v pas=${1:-1} '{
+        if (NR==1) {avant=$1;nb=1; printf "%s",$1}
+        else {
+          suivant=avant+pas
+          # Pour les nombres sur 6 chiffres, on suppose que c est du YYYMM
+          # et on gere le passage de decembre a janvier
+          if ((length(avant)==6) && (substr(avant,5,2)=="12"))
+            { avant4=substr(avant,1,4) ; suivant=sprintf("%4d01",avant4+1)}
+          if ($1 > suivant) {
+            if (nb>1) printf "-%s",avant
+            nb=1 ; printf ", %s",$1}
+          else { nb=nb+1 }
+          avant=$1  }}
+      END { if (nb >1) printf "-%s\n",avant ; else print ""} '
+}
+[ $quiet = 0 ] && echo $(wc -l /tmp/$$.ldir | cut -d \  -f 1) files proceeded.
+[ $quiet = 0 ] && echo -n "Years occurring : " && sequence 1 < /tmp/$$.toutes_dates
+# on ne garde que les annees inferieures a maxyear
+sed "/$maxyearp1/"',$d' </tmp/$$.toutes_dates >/tmp/$$.toutes_dates_maxyear
+[ $quiet = 0 ] && echo -n "Years tested : " && sequence 1 < /tmp/$$.toutes_dates_maxyear
+mv /tmp/$$.toutes_dates_maxyear /tmp/$$.toutes_dates
+# On liste tous les mois qui doivent etre presents (au motif qu'une annee est presente)
+> /tmp/$$.toutes_dates_et_mois
+while read an ; do
+  i=1
+  while [ $i -le 12 ] ; do
+    printf "%s%02d\n" ${an} $i  >> /tmp/$$.toutes_dates_et_mois
+    i=$(( i + 1 ))
+  done
+done < /tmp/$$.toutes_dates
+# Pour chaque pattern, on analyse si toutes les dates sont presentes en bon nombre (decennie, an, an+mois)
+touch /tmp/$$.synthese
+[ $quiet = 0 ] && echo "File name patterns and holes (if any) :"
+#set -x
+while read pattern ; do
+  [ `echo $pattern | grep -E "(YYmmdd_YYmmdd)"` ]  && pas=1 && \
+    join -v 1 /tmp/$$.toutes_dates_et_mois  /tmp/$$.$pattern.list > /tmp/$$.$pattern.manques
+  sequence $pas < /tmp/$$.$pattern.manques > /tmp/$$.$pattern.synthese
+  truepattern=$(echo $pattern | tr "~" "/")
+  [ $quiet = 0 ] && printf "%80s : " $truepattern  && cat /tmp/$$.$pattern.synthese
+  cat /tmp/$$.$pattern.synthese >> /tmp/$$.synthese
+done < /tmp/$$.lpat
+
+rep=$(wc -w /tmp/$$.synthese | tail -1 | cut -d \  -f 1)
+if [ $examsize = 0 ] ; then rm /tmp/$$* ; exit $rep ; fi
+
+# taille des fichiers
+cat /dev/null > /tmp/$$.dates
+#set -x
+while read pattern ; do
+  i=1
+  while [ $i -le 12 ] ; do
+    mois=$(printf "%02d\n"  $i)
+    if [ $(echo $pattern | grep "YYmmdd_YYmmdd") ] ; then
+           # On transforme le pattern pour mettre une sequences
+           # avec le mois courant
+      px=$(echo $pattern | sed -e "s/YYmmdd_YYmmdd/([0-5][0-9]{3})${mois}01_[0-5][0-9]{3}${mois}(28|29|30|31)/g" )
+
+           # On balaye le repertoire avec le(s) pattern(s) transforme(s) pour capturer les tailles des fichiers de ce mois
+      grep -E $px /tmp/$$.size | awk '{print $5}' | sort -u >/tmp/$$.$pattern.size_${mois}
+           # On garde les infos s il n y a pas une taille unique
+      for size in $(cat /tmp/$$.$pattern.size_${mois})  ; do
+        grep -E $px /tmp/$$.size | grep " "${size}" " | tr "~" "/" >>/tmp/$$.$pattern.files_${mois}.${size}
+      done
+    fi
+    i=$(( i + 1 ))
+  done
+done < /tmp/$$.lpat
+
+[ $quiet = 0 ] && echo
+[ $quiet = 0 ] && echo  "Size verification per month (if different) :"
+# Pour chaque pattern, on liste la taille des fichiers de chaque mois
+touch /tmp/$$.synthese_size
+while read pattern ; do
+  truepattern=$(echo $pattern | tr "~" "/")
+  [ $quiet = 0 ] && printf "%80s : " $truepattern
+  if [ `echo $pattern | grep -E "(YYmmdd_YYmmdd)"` ]  ; then
+    RESULT=""
+    for i in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
+      mois=$(printf "%02d\n"  $i)
+      if [ $(wc -l /tmp/$$.$pattern.size_${mois} |  cut -d " " -f 1) = 1 ] ; then
+        RESULT="$RESULT "
+      else
+                # special case for february , we accept 2 different sizes for february for leap year
+        if [[ $i == 2 && $(wc -l /tmp/$$.$pattern.size_${mois} |  cut -d " " -f 1) = 2 ]] ; then
+                   # est ce qu il y a des mois de 29 jours? si non souci reel
+          if [ $( grep 0229 /tmp/$$.$pattern.files_02.* 1>/dev/null 2>&1 ) ] ; then
+            RESULT="$RESULT \033[1;31m[$mois]\033[m"
+            cat  /tmp/$$.$pattern.size_${mois} >> /tmp/$$.synthese_size
+          else
+            RESULT="$RESULT "
+          fi
+        else
+          RESULT="$RESULT \033[1;31m[$mois]\033[m"
+          cat  /tmp/$$.$pattern.size_${mois} >> /tmp/$$.synthese_size
+        fi
+      fi
+    done
+    [ $quiet = 0 ] && echo -e $RESULT
+  fi
+done < /tmp/$$.lpat
+
+# affichage des details
+while read pattern ; do
+  first=0
+  i=1
+  truepattern=$(echo $pattern | tr "~" "/")
+  while [ $i -le 12 ] ; do
+    mois=$(printf "%02d\n"  $i)
+    if [ $(echo $pattern | grep "YYmmdd_YYmmdd") ] ; then
+           # si on a plus de 2 tailles de fichiers pour ce mois, on liste le nombre de fichiers par taille et les 3 premiers
+           # cas special pour fevrier qui accepte 2 tailles differentes si 1 pour les 28 et l autre pour les 29
+      if [ $(wc -l /tmp/$$.$pattern.size_${mois} | cut -d " " -f 1) != 1 ] ; then
+        if  [[ $i == 2 && $(wc -l /tmp/$$.$pattern.size_${mois} |  cut -d " " -f 1) == 2 ]] ; then
+                   # est ce qu il y a des mois de 29 jours? sinon souci reel
+          if [ $( grep 0229 /tmp/$$.$pattern.files_02* 1>/dev/null 2>&1 ) ] ; then
+            if [[ ${first} == 0 ]] ; then printf "Details %73s : \n" $truepattern ; first=1 ; fi
+            echo mois : ${mois}
+            for size in $( cat /tmp/$$.$pattern.size_${mois} ) ; do
+              head -1 /tmp/$$.$pattern.files_${mois}.${size}
+            done
+          fi
+        else
+          if [[ ${first} == 0 ]] ; then printf "Details %73s : \n" $truepattern ; first=1 ; fi
+          echo mois : ${mois}
+          for size in $( cat /tmp/$$.$pattern.size_${mois} ) ; do
+            head -1 /tmp/$$.$pattern.files_${mois}.${size}
+          done
+        fi
+      fi
+    fi
+    i=$(( i + 1 ))
+  done
+done < /tmp/$$.lpat
+
+
+rep=$(wc -w /tmp/$$.synthese /tmp/$$.synthese_size | tail -1 | sed -e 's/total//' -e 's/ //g' )
+
+# reste  a analyser par annee en sus de par pattern, pour presenter le plus clair
+# Penser a forunir l'option d'imposer des patterns et des annees en entree
+[ $debugflag = 0 ] && rm -f /tmp/$$.* /tmp/$$.ldir
+exit $rep
+# Changes
+# - 20 april 2010 : add handling of pattern year1-year2, which is a generalization of decades
+# - janvier 2011 : suppression des caracteres accentues
+#                  mise en place pour prefix de type libIGCM / IPSL
+#                  ajout de la verification des tailles des fichiers mensuels
+#                  ajout des options -d -q/-v -R -S subdir -I maxyear
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/libIGCM_post.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/libIGCM_post.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/libIGCM_post.ksh	(revision 5899)
@@ -0,0 +1,888 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1396                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2017-06-22 09:28:28 +0200 (Thu, 22 Jun 2017) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=======================================================================
+
+function IGCM_post_Configure
+{
+  IGCM_debug_PushStack "IGCM_post_Configure"
+
+  # Debug Print :
+  echo
+  IGCM_debug_Print 1 "IGCM_post_Configure"
+  #
+  # Initialize
+  #
+  POST=false
+  RebuildFrequency=false
+  PackFrequency=false
+  TimeSeriesFrequency=false
+  SeasonalFrequency=false
+  unset list_post
+  #
+  # ONLY IF SOMETHING NEEDS TO BE DONE (EATHER TIME SERIES OR SEASONAL) COMPUTE THE MODULOS
+  #
+  if [ X${AsynchronousRebuild} = Xtrue ] ; then
+    list_post="RebuildFrequency"
+  fi
+  #
+  if [ X${Pack} = Xtrue ] ; then
+    list_post="${list_post} PackFrequency"
+  fi
+  #
+  if ( [ X${TimeSeries} = Xtrue ] || [ X${TimeSeries2D} = Xtrue ] || [ X${TimeSeries3D} = Xtrue ] || [ X${TimeSeriesChunck2D} = Xtrue ] || [ X${TimeSeriesChunck3D} = Xtrue ] ) ; then
+    list_post="${list_post} TimeSeriesFrequency"
+  fi
+  #
+  if [ X${Seasonal} = Xtrue ] ; then
+    list_post="${list_post} SeasonalFrequency"
+  fi
+
+  # Overrule Time Series triggering. Special case 1.
+  if ( [ ! X${config_Post_TimeSeriesFrequency} = X${NULL_STR} ] && \
+    [ ! X${config_Post_TimeSeriesFrequency} = XNONE ]           && \
+    [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then
+    TimeSeriesFrequency=true
+    POST=true
+  fi
+  # Overrule Rebuild triggering. Special case 2.
+  if ( [ X${AsynchronousRebuild} = Xtrue ] && [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then
+    RebuildFrequency=true
+    POST=true
+  fi
+  # Overrule Pack triggering. Special case 3.
+  if ( [ X${Pack} = Xtrue ] && [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then
+    PackFrequency=true
+    POST=true
+  fi
+
+  # READ REBUILD OR PACK OR TIME SERIES OR SEASONAL FREQUENCY
+  # AND TURN ON THE SUBMISSION FLAG WHEN MODULO IS ZERO
+  for post_freq in ${list_post} ; do
+    # Extract frequency from previously defined variable
+    config_Post_post_freq=$( eval echo \${config_Post_${post_freq}} )
+    # Offset for Seasonal Average starting period
+    if [ ${post_freq} = SeasonalFrequency ] ; then
+      if ( [ X${config_Post_SeasonalFrequencyOffset} = X${NULL_STR} ] || [ X${config_Post_SeasonalFrequencyOffset} = XNONE ] || [ X${config_Post_SeasonalFrequencyOffset} = X ] ) ; then
+        PeriodOffset=0
+      else
+        PeriodOffset=${config_Post_SeasonalFrequencyOffset}
+      fi
+    else
+      PeriodOffset=0
+    fi
+    # Compute Modulo between frequencys (/!\second argument will be multiplied by CumuPeriod/!\)
+    # RebuildFrequency needs additionnal information
+    if [ ${post_freq} = RebuildFrequency ] ; then
+      IGCM_post_ModuloRuntimeFrequency config_Post_post_freq config_UserChoices_PeriodLength NbPeriodPerFrequency
+      NbRebuildDir=${NbPeriodPerFrequency}
+    else
+      IGCM_post_ModuloRuntimeFrequency config_Post_post_freq config_UserChoices_PeriodLength
+    fi
+    #
+    eval IGCM_debug_Print 1 \" "${post_freq} flag value : \${${post_freq}}" \"
+  done
+  #
+  IGCM_debug_Print 2 "POST-TREATEMENT flag value : ${POST}"
+  #
+  # Prepare headers for the shell dedicated to post-processing
+  if ( [ ${PackFrequency} = true ] && ( [ ${TimeSeriesFrequency} = true ] || [ ${SeasonalFrequency} = true ] ) ) ; then
+    if [ $DRYRUN -le 1 ]; then
+      echo "#!/bin/ksh                                     " >  ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "function IGCM_FlushPost                        " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "{                                              " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "IGCM_debug_PushStack \"IGCM_FlushPost\"        " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "echo                                           " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "IGCM_debug_Print 1 \"IGCM_FlushPost\"          " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "echo                                           " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_post_Configure"
+}
+
+function IGCM_post_Submit
+{
+  IGCM_debug_PushStack "IGCM_post_Submit"
+
+  typeset listVarEnv DaysTemp
+
+  POST_DIR=${R_BUF_KSH}
+
+  if [ ${POST} = true ]; then
+    echo
+    IGCM_debug_Print 1 "IGCM_post_Submit"
+    echo
+    IGCM_debug_Print 2 "POST_DIR = ${POST_DIR}"
+  fi
+
+  #============ TIME SERIES POST-PROCESSING ===========#
+  if [ ${TimeSeriesFrequency} = true ] ; then
+
+    IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ACTIVATED"
+    echo
+
+
+
+    # Get information from last execution
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted
+    CompletedFlag=${run_PostProcessing_TimeSeriesCompleted}
+    #
+
+
+
+    listVarEnv="DEBUG_debug,BigBrother,postProcessingStopLevel,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,Script_Post_Output,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,CompletedFlag,TsTask,CompToRead,FlagToRead,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG"
+    #
+    jLoop=${#ListDimension[*]}
+    j=0
+    until [ $j -ge ${jLoop} ]; do
+      Dimension=${ListDimension[${j}]}
+      #
+      if [ X$( eval echo \${TimeSeries${Dimension}} ) = Xtrue ] ; then
+      #
+        IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} ACTIVATED"
+        echo
+        #
+        if [ X${Dimension} = X ] ; then
+          TsTask="empty"
+          Script_Post_Output=create_ts.${PeriodDateEnd}
+        else
+          TsTask=${Dimension}
+          Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}
+        fi
+        #
+        if ( [ ${RebuildFrequency} = true ] || [ ${PackFrequency} = true ] ) ; then
+          #
+          if [ ${PackFrequency} = true ] ; then
+            FunctionPath=${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+          else
+            FunctionPath=${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+          fi
+          #
+          if [ -f ${FunctionPath} ] ; then
+#           if [ X${MASTER} = Xtitane ] ; then
+#             echo "IGCM_sys_RshPost <<-EOF"                       >> ${FunctionPath}
+#           fi
+            echo "export DEBUG_debug=${DEBUG_debug}                        " >> ${FunctionPath}
+            echo "export BigBrother=${BigBrother}                          " >> ${FunctionPath}
+            echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${FunctionPath}
+            echo "export MODIPSL=${MODIPSL}                                " >> ${FunctionPath}
+            echo "export libIGCM_SX=${libIGCM}                             " >> ${FunctionPath}
+            echo "export libIGCM=${libIGCM_POST}                           " >> ${FunctionPath}
+            echo "export SUBMIT_DIR=${SUBMIT_DIR}                          " >> ${FunctionPath}
+            echo "export POST_DIR=${POST_DIR}                              " >> ${FunctionPath}
+            echo "export MASTER=${MASTER}                                  " >> ${FunctionPath}
+            echo "export RebuildFrequency=${RebuildFrequency}              " >> ${FunctionPath}
+            echo "export DateBegin=${DateBegin}                            " >> ${FunctionPath}
+            echo "export PeriodDateEnd=${PeriodDateEnd}                    " >> ${FunctionPath}
+            echo "export StandAlone=false                                  " >> ${FunctionPath}
+            echo "export CompletedFlag=${CompletedFlag}                    " >> ${FunctionPath}
+            echo "export TsTask=${TsTask}                                  " >> ${FunctionPath}
+            echo "unset  CompToRead                                        " >> ${FunctionPath}
+            echo "unset  FlagToRead                                        " >> ${FunctionPath}
+            echo "export RESOL_ATM=${RESOL_ATM}                            " >> ${FunctionPath}
+            echo "export RESOL_OCE=${RESOL_OCE}                            " >> ${FunctionPath}
+            echo "export RESOL_ICE=${RESOL_ICE}                            " >> ${FunctionPath}
+            echo "export RESOL_MBG=${RESOL_MBG}                            " >> ${FunctionPath}
+            echo "export RESOL_SRF=${RESOL_SRF}                            " >> ${FunctionPath}
+            echo "export RESOL_SBG=${RESOL_SBG}                            " >> ${FunctionPath}
+            echo "export listVarEnv=${listVarEnv}                          " >> ${FunctionPath}
+            echo "export Script_Post_Output=${Script_Post_Output}          " >> ${FunctionPath}
+#           if [ X${MASTER} = Xtitane ] ; then
+#             echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${FunctionPath}
+#             echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh"     >> ${FunctionPath}
+#           fi
+            echo "IGCM_sys_MkdirWork ${POST_DIR}                 " >> ${FunctionPath}
+            echo "IGCM_debug_Verif_Exit                          " >> ${FunctionPath}
+            echo "IGCM_sys_QsubPost create_ts                    " >> ${FunctionPath}
+#           if [ X${MASTER} = Xtitane ] ; then
+#             echo "EOF"                                           >> ${FunctionPath}
+#           fi
+          fi
+        else
+          IGCM_sys_RshPost <<-EOF
+                    export DEBUG_debug=${DEBUG_debug}
+                    export BigBrother=${BigBrother}
+                    export postProcessingStopLevel=${postProcessingStopLevel}
+                    export MODIPSL=${MODIPSL}
+                    export libIGCM_SX=${libIGCM}
+                    export libIGCM=${libIGCM_POST}
+                    export SUBMIT_DIR=${SUBMIT_DIR}
+                    export POST_DIR=${POST_DIR}
+                    export MASTER=${MASTER}
+                    export RebuildFrequency=${RebuildFrequency}
+                    export DateBegin=${DateBegin}
+                    export PeriodDateEnd=${PeriodDateEnd}
+                    export StandAlone=false
+                    export CompletedFlag=${CompletedFlag}
+                    export TsTask=${TsTask}
+                    unset  CompToRead
+                    unset  FlagToRead
+                    export RESOL_ATM=${RESOL_ATM}
+                    export RESOL_OCE=${RESOL_OCE}
+                    export RESOL_ICE=${RESOL_ICE}
+                    export RESOL_MBG=${RESOL_MBG}
+                    export RESOL_SRF=${RESOL_SRF}
+                    export RESOL_SBG=${RESOL_SBG}
+                    export listVarEnv=${listVarEnv}
+                    export Script_Post_Output=${Script_Post_Output}
+                    . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+                    . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+                    IGCM_sys_MkdirWork ${POST_DIR}
+                    IGCM_debug_Verif_Exit
+                    IGCM_sys_QsubPost create_ts
+EOF
+        fi
+      fi
+      #
+      if [ X$( eval echo \${TimeSeriesChunck${Dimension}} ) = Xtrue ] ; then
+        #
+        IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} WITH CHUNCK ACTIVATED"
+        echo
+        # Need to Remember This One
+        SavedDateBegin=${DateBegin}
+        # Kind of task create_ts will perform
+        TsTask=Chunck${Dimension}
+        # Number of chunck jobs to configure and submit
+        eval NbJob=\${#CHUNCK${Dimension}_COMP[@]}
+        typeset i
+        i=0
+        until [ $i -ge $NbJob ]; do
+          CompToRead=$( eval echo \${CHUNCK${Dimension}_COMP[\${i}]} )
+          FlagToRead=$( eval echo \${CHUNCK${Dimension}_FLAG[\${i}]} )
+          NameToRead=$( eval echo \${CHUNCK${Dimension}_NAME[\${i}]} )
+          ChunckSize=$( eval echo \${CHUNCK${Dimension}_SIZE[\${i}]} )
+          # Chunck Length (mandatory in Year)
+          YearsChunckLength=$( echo ${ChunckSize} | sed -e "s/[yY]//" )
+          #
+          IGCM_date_GetYearMonth ${DateBegin}     YearBegin MonthBegin
+          #
+          IGCM_date_GetYearMonth ${PeriodDateEnd} YearEnd   MonthEnd
+          # How many chunck in total since simulation began
+          NbYearsChunckLoop=$(( ( ${YearEnd} - ${YearBegin} + 1 ) / ${YearsChunckLength} ))
+          #  Tweak special case
+          [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 ))
+          # Starting Year of the current chunck
+          ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} ))
+          # Starting date of the current chunck
+          ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01
+          #
+          Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead}
+          #
+          if ( [ ${RebuildFrequency} = true ] || [ ${PackFrequency} = true ] ) ; then
+            #
+            if [ ${PackFrequency} = true ] ; then
+              FunctionPath=${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+            else
+              FunctionPath=${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+            fi
+            #
+            if [ -f ${FunctionPath} ] ; then
+#             if [ X${MASTER} = Xtitane ] ; then
+#               echo "IGCM_sys_RshPost <<-EOF"                       >> ${FunctionPath}
+#             fi
+              echo "export DEBUG_debug=${DEBUG_debug}                        " >> ${FunctionPath}
+              echo "export BigBrother=${BigBrother}                          " >> ${FunctionPath}
+              echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${FunctionPath}
+              echo "export MODIPSL=${MODIPSL}                                " >> ${FunctionPath}
+              echo "export libIGCM_SX=${libIGCM}                             " >> ${FunctionPath}
+              echo "export libIGCM=${libIGCM_POST}                           " >> ${FunctionPath}
+              echo "export SUBMIT_DIR=${SUBMIT_DIR}                          " >> ${FunctionPath}
+              echo "export POST_DIR=${POST_DIR}                              " >> ${FunctionPath}
+              echo "export MASTER=${MASTER}                                  " >> ${FunctionPath}
+              echo "export RebuildFrequency=${RebuildFrequency}              " >> ${FunctionPath}
+              echo "export DateBegin=${ChunckTsDateBegin}                    " >> ${FunctionPath}
+              echo "export PeriodDateEnd=${PeriodDateEnd}                    " >> ${FunctionPath}
+              echo "export StandAlone=false                                  " >> ${FunctionPath}
+              echo "export CompletedFlag=${CompletedFlag}                    " >> ${FunctionPath}
+              echo "export TsTask=${TsTask}                                  " >> ${FunctionPath}
+              echo "export CompToRead=${CompToRead}                          " >> ${FunctionPath}
+              echo "export FlagToRead=${FlagToRead}                          " >> ${FunctionPath}
+              echo "export RESOL_ATM=${RESOL_ATM}                            " >> ${FunctionPath}
+              echo "export RESOL_OCE=${RESOL_OCE}                            " >> ${FunctionPath}
+              echo "export RESOL_ICE=${RESOL_ICE}                            " >> ${FunctionPath}
+              echo "export RESOL_MBG=${RESOL_MBG}                            " >> ${FunctionPath}
+              echo "export RESOL_SRF=${RESOL_SRF}                            " >> ${FunctionPath}
+              echo "export RESOL_SBG=${RESOL_SBG}                            " >> ${FunctionPath}
+              echo "export listVarEnv=${listVarEnv}                          " >> ${FunctionPath}
+              echo "export Script_Post_Output=${Script_Post_Output}          " >> ${FunctionPath}
+#             if [ X${MASTER} = Xtitane ] ; then
+#               echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${FunctionPath}
+#               echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh"     >> ${FunctionPath}
+#             fi
+              echo "IGCM_sys_MkdirWork ${POST_DIR}                 " >> ${FunctionPath}
+              echo "IGCM_debug_Verif_Exit                          " >> ${FunctionPath}
+              echo "IGCM_sys_QsubPost create_ts                    " >> ${FunctionPath}
+#             if [ X${MASTER} = Xtitane ] ; then
+#               echo "EOF"                                           >> ${FunctionPath}
+#             fi
+            fi
+          else
+            IGCM_sys_RshPost <<-EOF
+                        export DEBUG_debug=${DEBUG_debug}
+                        export BigBrother=${BigBrother}
+                        export postProcessingStopLevel=${postProcessingStopLevel}
+                        export MODIPSL=${MODIPSL}
+                        export libIGCM_SX=${libIGCM}
+                        export libIGCM=${libIGCM_POST}
+                        export SUBMIT_DIR=${SUBMIT_DIR}
+                        export POST_DIR=${POST_DIR}
+                        export MASTER=${MASTER}
+                        export RebuildFrequency=${RebuildFrequency}
+                        export DateBegin=${ChunckTsDateBegin}
+                        export PeriodDateEnd=${PeriodDateEnd}
+                        export StandAlone=false
+                        export CompletedFlag=${CompletedFlag}
+                        export TsTask=${TsTask}
+                        export CompToRead=${CompToRead}
+                        export FlagToRead=${FlagToRead}
+                        export RESOL_ATM=${RESOL_ATM}
+                        export RESOL_OCE=${RESOL_OCE}
+                        export RESOL_ICE=${RESOL_ICE}
+                        export RESOL_MBG=${RESOL_MBG}
+                        export RESOL_SRF=${RESOL_SRF}
+                        export RESOL_SBG=${RESOL_SBG}
+                        export listVarEnv=${listVarEnv}
+                        export Script_Post_Output=${Script_Post_Output}
+                        . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+                        . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+                        IGCM_sys_MkdirWork ${POST_DIR}
+                        IGCM_debug_Verif_Exit
+                        IGCM_sys_QsubPost create_ts
+EOF
+            #
+          fi
+          #
+          export DateBegin=${SavedDateBegin}
+          #
+          (( i=i+1 ))
+          #
+        done
+      fi
+      (( j=j+1 ))
+    done
+  fi
+
+  #=============  SEASONAL POST-PROCESSING ============#
+  if [ ${SeasonalFrequency} = true ] ; then
+    #
+    IGCM_debug_Print 1 "SEASONNAL POST-PROCESSING"
+    echo
+    #
+    Script_Post_Output=create_se.${PeriodDateEnd}
+    #
+    listVarEnv="DEBUG_debug,BigBrother,postProcessingStopLevel,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,Script_Post_Output,MASTER,DateBegin,PeriodDateEnd,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG"
+
+    if ( [ ${RebuildFrequency} = true ] || [ ${PackFrequency} = true ] ) ; then
+      #
+      if [ ${PackFrequency} = true ] ; then
+        FunctionPath=${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      else
+        FunctionPath=${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      fi
+      #
+      if [ -f ${FunctionPath} ] ; then
+      #
+#     if [ X${MASTER} = Xtitane ] ; then
+#       echo "IGCM_sys_RshPost <<-EOF"                     >> ${FunctionPath}
+#     fi
+      echo "export DEBUG_debug=${DEBUG_debug}                        " >> ${FunctionPath}
+      echo "export BigBrother=${BigBrother}                          " >> ${FunctionPath}
+      echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${FunctionPath}
+      echo "export MODIPSL=${MODIPSL}                                " >> ${FunctionPath}
+      echo "export libIGCM_SX=${libIGCM}                             " >> ${FunctionPath}
+      echo "export libIGCM=${libIGCM_POST}                           " >> ${FunctionPath}
+      echo "export SUBMIT_DIR=${SUBMIT_DIR}                          " >> ${FunctionPath}
+      echo "export POST_DIR=${POST_DIR}                              " >> ${FunctionPath}
+      echo "export MASTER=${MASTER}                                  " >> ${FunctionPath}
+      echo "export DateBegin=${DateBegin}                            " >> ${FunctionPath}
+      echo "export PeriodDateEnd=${PeriodDateEnd}                    " >> ${FunctionPath}
+      echo "export StandAlone=false                                  " >> ${FunctionPath}
+      echo "export RESOL_ATM=${RESOL_ATM}                            " >> ${FunctionPath}
+      echo "export RESOL_OCE=${RESOL_OCE}                            " >> ${FunctionPath}
+      echo "export RESOL_ICE=${RESOL_ICE}                            " >> ${FunctionPath}
+      echo "export RESOL_MBG=${RESOL_MBG}                            " >> ${FunctionPath}
+      echo "export RESOL_SRF=${RESOL_SRF}                            " >> ${FunctionPath}
+      echo "export RESOL_SBG=${RESOL_SBG}                            " >> ${FunctionPath}
+      echo "export listVarEnv=${listVarEnv}                          " >> ${FunctionPath}
+      echo "export Script_Post_Output=${Script_Post_Output}          " >> ${FunctionPath}
+#     if [ X${MASTER} = Xtitane ] ; then
+#       echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${FunctionPath}
+#       echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh"     >> ${FunctionPath}
+#     fi
+      echo "IGCM_sys_MkdirWork ${POST_DIR}                 " >> ${FunctionPath}
+      echo "IGCM_debug_Verif_Exit                          " >> ${FunctionPath}
+      echo "IGCM_sys_QsubPost create_se                    " >> ${FunctionPath}
+#     if [ X${MASTER} = Xtitane ] ; then
+#       echo "EOF"                                         >> ${FunctionPath}
+#     fi
+      fi
+    else
+      IGCM_sys_RshPost <<-EOF
+            export DEBUG_debug=${DEBUG_debug}
+            export BigBrother=${BigBrother}
+            export postProcessingStopLevel=${postProcessingStopLevel}
+            export MODIPSL=${MODIPSL}
+            export libIGCM_SX=${libIGCM}
+            export libIGCM=${libIGCM_POST}
+            export SUBMIT_DIR=${SUBMIT_DIR}
+            export POST_DIR=${POST_DIR}
+            export MASTER=${MASTER}
+            export DateBegin=${DateBegin}
+            export PeriodDateEnd=${PeriodDateEnd}
+            export StandAlone=false
+            export RESOL_ATM=${RESOL_ATM}
+            export RESOL_OCE=${RESOL_OCE}
+            export RESOL_ICE=${RESOL_ICE}
+            export RESOL_MBG=${RESOL_MBG}
+            export RESOL_SRF=${RESOL_SRF}
+            export RESOL_SBG=${RESOL_SBG}
+            export listVarEnv=${listVarEnv}
+            export Script_Post_Output=${Script_Post_Output}
+            . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+            . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+            IGCM_sys_MkdirWork ${POST_DIR}
+            IGCM_debug_Verif_Exit
+            IGCM_sys_QsubPost create_se
+EOF
+    fi
+  fi
+
+  #============== PACK PROCESSING FOR RESTART, DEBUG AND OUTPUT FILES =============#
+  if [ ${PackFrequency} = true ] ; then
+    IGCM_debug_Print 1 "PACK POST-PROCESSING"
+    # -----------------------------------------------------------------------------------
+    # Function IGCM_FlushPost called by pack_output.job has not been closed yet. Do it now
+    # Will submit Time Series OR Seasonal Average if needed
+    # -----------------------------------------------------------------------------------
+    if [ -f ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh ] ; then
+      echo "IGCM_debug_PopStack \"IGCM_FlushPost\" " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+      echo "}                                      " >> ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh
+    fi
+    echo
+    ## Need to Remember This One
+    SavedDateBegin=${DateBegin}
+    ## Need to Remember This One
+    SavedDateEnd=${DateEnd}
+    #
+    DaysTemp=$(( $( IGCM_date_DaysInPreviousPeriod ${PeriodDateEnd} ${config_Post_PackFrequency} end ) - 1 ))
+    #
+    PackDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} -${DaysTemp} )
+    #
+    script=pack_debug
+    #
+    Script_Post_Output=${script}.${PeriodDateEnd}
+    #
+    listVarEnv="DEBUG_debug,BigBrother,postProcessingStopLevel,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,Script_Post_Output,MASTER,DateBegin,DateEnd,PeriodPack,StandAlone"
+    IGCM_sys_RshPost <<-EOF
+    export DEBUG_debug=${DEBUG_debug}
+    export BigBrother=${BigBrother}
+    export postProcessingStopLevel=${postProcessingStopLevel}
+    export MODIPSL=${MODIPSL}
+    export libIGCM_SX=${libIGCM}
+    export libIGCM=${libIGCM_POST}
+    export SUBMIT_DIR=${SUBMIT_DIR}
+    export POST_DIR=${POST_DIR}
+    export MASTER=${MASTER}
+    export DateBegin=${PackDateBegin}
+    export DateEnd=${PeriodDateEnd}
+    export PeriodPack=${config_Post_PackFrequency}
+    export StandAlone=false
+    export listVarEnv=${listVarEnv}
+    export Script_Post_Output=${Script_Post_Output}
+    . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+    . ${libIGCM_POST}/libIGCM_card/libIGCM_card.ksh
+    . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+    IGCM_sys_MkdirWork ${POST_DIR}
+    IGCM_debug_Verif_Exit
+    IGCM_sys_QsubPost ${script}
+    IGCM_debug_Verif_Exit
+EOF
+    #
+    script=pack_restart
+    #
+    Script_Post_Output=${script}.${PeriodDateEnd}
+    #
+      IGCM_sys_RshPost <<-EOF
+      export DEBUG_debug=${DEBUG_debug}
+      export BigBrother=${BigBrother}
+      export postProcessingStopLevel=${postProcessingStopLevel}
+      export MODIPSL=${MODIPSL}
+      export libIGCM_SX=${libIGCM}
+      export libIGCM=${libIGCM_POST}
+      export SUBMIT_DIR=${SUBMIT_DIR}
+      export POST_DIR=${POST_DIR}
+      export MASTER=${MASTER}
+      export PeriodDateBegin=${PeriodDateBegin}
+      export DateBegin=${PackDateBegin}
+      export DateEnd=${PeriodDateEnd}
+      export PeriodPack=${config_Post_PackFrequency}
+      export StandAlone=false
+      export listVarEnv=${listVarEnv}
+      export Script_Post_Output=${Script_Post_Output}
+      . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+      . ${libIGCM_POST}/libIGCM_card/libIGCM_card.ksh
+      . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+      IGCM_sys_MkdirWork ${POST_DIR}
+      IGCM_debug_Verif_Exit
+      IGCM_sys_QsubPost ${script}
+      IGCM_debug_Verif_Exit
+EOF
+    #
+    script=pack_output
+    #
+    Script_Post_Output=${script}.${PeriodDateEnd}
+    #
+    if ( [ ${RebuildFrequency} = true ] && [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ) ; then
+#       if [ X${MASTER} = Xtitane ] ; then
+#         echo "IGCM_sys_RshPost <<-EOF"                     >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+#       fi
+      echo "export DEBUG_debug=${DEBUG_debug}              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export BigBrother=${BigBrother}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export MODIPSL=${MODIPSL}                      " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export libIGCM_SX=${libIGCM}                   " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export libIGCM=${libIGCM_POST}                 " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export SUBMIT_DIR=${SUBMIT_DIR}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export POST_DIR=${POST_DIR}                    " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export MASTER=${MASTER}                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export DateBegin=${PackDateBegin}              " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export DateEnd=${PeriodDateEnd}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export PeriodPack=${config_Post_PackFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export StandAlone=false                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export listVarEnv=${listVarEnv}                " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export script=${script}                        " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+#       if [ X${MASTER} = Xtitane ] ; then
+#         echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+#         echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh"     >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+#       fi
+      echo "IGCM_sys_MkdirWork ${POST_DIR}                 " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "IGCM_debug_Verif_Exit                          " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+      echo "IGCM_sys_QsubPost ${script}                    " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+#       if [ X${MASTER} = Xtitane ] ; then
+#         echo "EOF"                                         >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+#       fi
+      echo "IGCM_debug_Verif_Exit                          " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+    else
+      IGCM_sys_RshPost <<-EOF
+        export DEBUG_debug=${DEBUG_debug}
+        export BigBrother=${BigBrother}
+        export postProcessingStopLevel=${postProcessingStopLevel}
+        export MODIPSL=${MODIPSL}
+        export libIGCM_SX=${libIGCM}
+        export libIGCM=${libIGCM_POST}
+        export SUBMIT_DIR=${SUBMIT_DIR}
+        export POST_DIR=${POST_DIR}
+        export MASTER=${MASTER}
+        export DateBegin=${PackDateBegin}
+        export DateEnd=${PeriodDateEnd}
+        export PeriodPack=${config_Post_PackFrequency}
+        export StandAlone=false
+        export listVarEnv=${listVarEnv}
+        export Script_Post_Output=${Script_Post_Output}
+        . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+        . ${libIGCM_POST}/libIGCM_card/libIGCM_card.ksh
+        . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+        IGCM_sys_MkdirWork ${POST_DIR}
+        IGCM_debug_Verif_Exit
+        IGCM_sys_QsubPost ${script}
+        IGCM_debug_Verif_Exit
+EOF
+      export DateBegin=${SavedDateBegin}
+      export DateEnd=${SavedDateEnd}
+    fi
+  fi
+
+  #============== REBUILD POST-PROCESSING =============#
+  if ( [ X${AsynchronousRebuild} = Xtrue ] && [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ) ; then
+    # -----------------------------------------------------------------------------------
+    # Function IGCM_FlushRebuild define in rebuild.ksh has not been closed yet. Do it now
+    # -----------------------------------------------------------------------------------
+    echo "IGCM_debug_PopStack \"IGCM_FlushRebuild\" " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+    echo "}                                         " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh
+    IGCM_sys_Mv REBUILD_${PeriodDateBegin} ${REBUILD_DIR}
+  fi
+  #
+  if [ ${RebuildFrequency} = true ] ; then
+    IGCM_debug_Print 1 "REBUILD POST-PROCESSING FROM WORKDIR"
+    echo
+    script=rebuild_fromWorkdir
+    #
+    Script_Post_Output=${script}.${PeriodDateEnd}
+    #
+    listVarEnv="DEBUG_debug,BigBrother,postProcessingStopLevel,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,REBUILD_DIR,POST_DIR,Script_Post_Output,MASTER,DateBegin,PeriodDateBegin,PeriodDateEnd,NbRebuildDir,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG"
+    IGCM_sys_RshPost <<-EOF
+      export DEBUG_debug=${DEBUG_debug}
+      export BigBrother=${BigBrother}
+      export postProcessingStopLevel=${postProcessingStopLevel}
+      export MODIPSL=${MODIPSL}
+      export libIGCM_SX=${libIGCM}
+      export libIGCM=${libIGCM_POST}
+      export SUBMIT_DIR=${SUBMIT_DIR}
+      export REBUILD_DIR=${REBUILD_DIR}
+      export POST_DIR=${POST_DIR}
+      export MASTER=${MASTER}
+      export DateBegin=${DateBegin}
+      export PeriodDateBegin=${PeriodDateBegin}
+      export PeriodDateEnd=${PeriodDateEnd}
+      export NbRebuildDir=${NbRebuildDir}
+      export StandAlone=false
+      export RESOL_ATM=${RESOL_ATM}
+      export RESOL_OCE=${RESOL_OCE}
+      export RESOL_ICE=${RESOL_ICE}
+      export RESOL_MBG=${RESOL_MBG}
+      export RESOL_SRF=${RESOL_SRF}
+      export RESOL_SBG=${RESOL_SBG}
+      export listVarEnv=${listVarEnv}
+      export Script_Post_Output=${Script_Post_Output}
+      . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh
+      . ${libIGCM_POST}/libIGCM_card/libIGCM_card.ksh
+      . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh
+      IGCM_sys_MkdirWork ${POST_DIR}
+      IGCM_debug_Verif_Exit
+      IGCM_sys_QsubPost ${script}
+      IGCM_debug_Verif_Exit
+EOF
+  fi
+  IGCM_debug_PopStack "IGCM_post_Submit"
+}
+
+#===================================
+function IGCM_post_CheckModuloFrequency
+{
+  IGCM_debug_PushStack "IGCM_post_CheckModuloFrequency" $@
+
+  # Used by IGCM_config_Check
+  # from 2 libIGCM compatible frequency (*Y, *M, *D, *y, *m, *d)
+  # Issue an exit instruction IGCM_debug_Exit if there modulo is not zero
+  # Input parameter are the name of the variable, not the frequency value itself
+  # example
+  # IGCM_post_ModuloFrequency config_Post_RebuildFrequency config_UserChoices_PeriodLength
+
+  typeset MasterName SlaveName MasterFrequency SlaveFrequency PeriodMasterYear PeriodMasterMonth PeriodMasterDay PeriodSlaveYear PeriodSlaveMonth PeriodSlaveDay
+
+  # Get the name of the variable
+  MasterName=$1
+  SlaveName=$2
+  # Get the value the above name points to
+  MasterFrequency=$( eval echo \${${1}} )
+  SlaveFrequency=$( eval echo \${${2}} )
+
+  IGCM_debug_Print 2 "IGCM_post_CheckModuloFrequency : Master=${MasterFrequency} Slave=${SlaveFrequency}"
+
+  case ${MasterFrequency} in
+  *y|*Y)
+    PeriodMasterYear=$( echo ${MasterFrequency} | sed -e "s/[yY]//" )
+    case ${SlaveFrequency} in
+    *Y|*y)
+      PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" )
+      if ( [ ${PeriodSlaveYear} -gt ${PeriodMasterYear} ] || \
+      [ $(( ${PeriodMasterYear} % ${PeriodSlaveYear} )) -ne 0 ] );  then
+        IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+        IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+        IGCM_debug_Exit "Check your frequency"
+      else
+        [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterYear} / ${PeriodSlaveYear} ))
+      fi ;;
+    *M|*m)
+      PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" )
+      if ( [ ${PeriodSlaveMonth} -gt $(( ${PeriodMasterYear} * 12 )) ] || \
+        [ $(( ( ${PeriodMasterYear} * 12 ) % ${PeriodSlaveMonth} )) -ne 0 ] ) ; then
+        IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+        IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+        IGCM_debug_Exit "Check your frequency"
+      else
+        [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ( 12 * ${PeriodMasterYear} ) / ${PeriodSlaveMonth} ))
+      fi ;;
+    *D|*d)
+      PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" )
+      NbDays=$( IGCM_date_DaysInYear ${year} )
+      if [ ${config_UserChoices_CalendarType} = 360d ] || [ ${config_UserChoices_CalendarType} = noleap ] ; then
+        if ( [ ${PeriodSlaveDay} -gt $(( ${PeriodMasterYear} * ${NbDays} )) ] || \
+          [ $(( ( ${PeriodMasterYear} * ${NbDays} ) % ${PeriodSlaveDay} )) -ne 0 ] ; ) then
+          IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+          IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+          IGCM_debug_Exit "Check your frequency"
+        fi
+      else
+        IGCM_debug_Print 1 "For ${MasterName} with leap calendar:"
+        IGCM_debug_Print 1 "We have a daily ${SlaveName} frequency and ${MasterName}=${MasterFrequency}"
+        IGCM_debug_Print 1 "No post-treatment. Case not properly handle at this moment by libIGCM. Sorry"
+        IGCM_debug_Exit    "Check your frequency ${MasterName} and choose a daily frequency for this one too."
+      fi ;;
+    esac ;;
+  *M|*m)
+    PeriodMasterMonth=$( echo ${MasterFrequency} | sed -e "s/[mM]//" )
+    case ${SlaveFrequency} in
+    *Y|*y)
+      PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" )
+      if ( [ ${PeriodMasterMonth} -gt $(( ${PeriodSlaveYear} * 12 )) ] || \
+        [ $(( ${PeriodMasterMonth} % ( ${PeriodSlaveYear} * 12 ) )) -ne 0 ] ) ; then
+        IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+        IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+        IGCM_debug_Exit "Check your frequency"
+      else
+        [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterMonth} / ( 12 * ${PeriodSlaveYear} ) ))
+      fi ;;
+    *M|*m)
+      PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" )
+      if ( [ ${PeriodSlaveMonth} -gt ${PeriodMasterMonth} ] || \
+        [ $(( ${PeriodMasterMonth} % ${PeriodSlaveMonth} )) -ne 0 ] ) ;  then
+        IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+        IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+        IGCM_debug_Exit "Check your frequency"
+      else
+        [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterMonth} / ${PeriodSlaveMonth} ))
+      fi ;;
+    *D|*d)
+      IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+      IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+      IGCM_debug_Exit "Check your frequency" ;;
+    esac ;;
+  *D|*d)
+    PeriodMasterDay=$( echo ${MasterFrequency} | sed -e "s/[dD]//" )
+    case ${SlaveFrequency} in
+    *Y|*y)
+      IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+      IGCM_debug_Print 1 "${MasterName} frequency ${MasterFrequency}"
+      IGCM_debug_Exit "Check your frequency" ;;
+    *M|*m)
+      IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+      IGCM_debug_Print 1 "${MasterName} frequency ${MasterFrequency}"
+      IGCM_debug_Exit "Check your frequency" ;;
+    *D|*d)
+      PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" )
+      if ( [ ${PeriodSlaveDay} -gt ${PeriodMasterDay} ] || \
+        [ $(( ${PeriodMasterDay} % ${PeriodSlaveDay} )) -ne 0 ] ) ;  then
+        IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with"
+        IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}"
+        IGCM_debug_Exit "Check your frequency"
+      else
+        [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterDay} / ${PeriodSlaveDay} ))
+      fi ;;
+    esac ;;
+  NONE|none)
+    ;;
+  *)
+    IGCM_debug_Print 1 "KeyWord ${MasterFrequency} not allowed for ${MasterName} in config.card"
+    IGCM_debug_Exit "Check your ${MasterName} in config.card" ;;
+  esac
+
+  IGCM_debug_PopStack "IGCM_post_CheckModuloFrequency"
+}
+
+#===================================
+function IGCM_post_ModuloRuntimeFrequency
+{
+  IGCM_debug_PushStack "IGCM_post_ModuloRuntimeFrequency" $@
+
+  # Used by IGCM_post_Configure
+  # - from libIGCM (config_UserChoices_PeriodLength frequency * CumulPeriod) and
+  # - post-processing compatible frequency (*Y, *M, *D, *y, *m, *d)
+  # --> turn on post-processing submission when their modulo is zero
+  # Input parameter are the name of the variable, not the frequency value itself
+  # example
+  # IGCM_post_ModuloRuntimeFrequency config_Post_SeasonalFrequency config_UserChoices_PeriodLength
+
+  typeset MasterName SlaveName MasterFrequency SlaveFrequency PeriodMasterYear PeriodMasterMonth PeriodMasterDay PeriodSlaveYear PeriodSlaveMonth PeriodSlaveDay
+
+  # Get the name of the variable
+  MasterName=$1
+  SlaveName=$2
+  # Get the value the above name points to
+  eval MasterFrequency=\${${1}}
+  eval SlaveFrequency=\${${2}}
+
+  echo
+  IGCM_debug_Print 2 "IGCM_post_ModuloRuntimeFrequency : Master=${MasterFrequency} Slave=${SlaveFrequency} CumulPeriod=${CumulPeriod}"
+
+  case ${MasterFrequency} in
+  *y|*Y)
+    PeriodMasterYear=$( echo ${MasterFrequency} | sed -e "s/[yY]//" )
+    case ${SlaveFrequency} in
+    *Y|*y)
+      PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" )
+      if [ $(( ( ${CumulPeriod} * ${PeriodSlaveYear} - ${PeriodOffset} ) % ${PeriodMasterYear} )) -eq 0 ] ;  then
+        if [ $(( ${CumulPeriod} * ${PeriodSlaveYear} - ${PeriodOffset} )) -ne 0 ] ; then
+          eval ${post_freq}=true ; POST=true
+          [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterYear} / ${PeriodSlaveYear} ))
+        fi
+      fi;;
+    *M|*m)
+      PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" )
+      if [ $(( ( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} * 12 ) % ( ${PeriodMasterYear} * 12 ) )) -eq 0 ] ; then
+        if [ $(( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} * 12 )) -ne 0 ] ; then
+          eval ${post_freq}=true ; POST=true
+          [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ( 12 * ${PeriodMasterYear} ) / ${PeriodSlaveMonth} ))
+        fi
+      fi;;
+    *D|*d)
+      PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" )
+      NbDays=$( IGCM_date_DaysInYear ${year} )
+      if [ $(( ( ${CumulPeriod} - ( ${PeriodOffset} * ${NbDays} / ${PeriodSlaveDay} ) ) % ( ${NbDays} * ${PeriodMasterYear} / ${PeriodSlaveDay} ) )) -eq 0 ] ; then
+        if [ $(( ${CumulPeriod} - ( ${PeriodOffset} * ${NbDays} / ${PeriodSlaveDay} ) )) -ne 0 ] ; then
+          eval ${post_freq}=true ; POST=true
+          [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ( ${NbDays} * ${PeriodMasterYear} ) / ${PeriodSlaveDay} ))
+        fi
+      fi;;
+    esac ;;
+  *M|*m)
+    PeriodMasterMonth=$( echo ${MasterFrequency} | sed -e "s/[mM]//" )
+    case ${SlaveFrequency} in
+    *Y|*y)
+      PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" )
+      if [ $(( ( ${CumulPeriod} * ${PeriodSlaveYear} * 12 - ${PeriodOffset} ) % ( ${PeriodMasterMonth} ) )) -eq 0 ] ; then
+        if [ $(( ${CumulPeriod} * ${PeriodSlaveYear} * 12 - ${PeriodOffset} )) -ne 0 ] ; then
+          eval ${post_freq}=true ; POST=true
+          [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterMonth} / ( 12 * ${PeriodSlaveYear} ) ))
+        fi
+      fi;;
+    *M|*m)
+      PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" )
+      if [ $(( ( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} ) % ${PeriodMasterMonth} )) -eq 0 ] ;  then
+        if [ $(( ${CumulPeriod} * ${PeriodSlaveMonth} -  ${PeriodOffset} )) -ne 0 ] ; then
+          eval ${post_freq}=true ; POST=true
+          [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterMonth} / ${PeriodSlaveMonth} ))
+        fi
+      fi;;
+    *D|*d)
+      IGCM_debug_Print 1 "PeriodLength frequency ${SlaveFrequency} not compatbile with"
+      IGCM_debug_Print 1 "${flag_post} frequency : ${MasterFrequency} " ;;
+    esac ;;
+  *D|*d)
+    PeriodMasterDay=$( echo ${MasterFrequency} | sed -e "s/[dD]//" )
+    case ${SlaveFrequency} in
+    *Y|*y)
+      IGCM_debug_Print 1 "PeriodLength frequency ${SlaveFrequency} not compatbile with"
+      IGCM_debug_Print 1 "${flag_post} frequency : ${MasterFrequency} " ;;
+    *M|*m)
+      IGCM_debug_Print 1 "PeriodLength frequency ${SlaveFrequency} not compatbile with"
+      IGCM_debug_Print 1 "${flag_post} frequency : ${MasterFrequency} " ;;
+    *D|*d)
+      PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" )
+      if [ $(( ( ${CumulPeriod} * ${PeriodSlaveDay} - ${PeriodOffset} ) % ${PeriodMasterDay} )) -eq 0 ] ;  then
+        if [ $(( ${CumulPeriod} * ${PeriodSlaveDay} - ${PeriodOffset} )) -ne 0 ] ; then
+          eval ${post_freq}=true ; POST=true
+          [ X${3} = XNbPeriodPerFrequency ] && NbPeriodPerFrequency=$(( ${PeriodMasterDay} / ${PeriodSlaveDay} ))
+        fi
+      fi;;
+    esac ;;
+  NONE|none)
+    ;;
+  *)
+    IGCM_debug_Print 1 "KeyWord not allowed for ${post_freq} in config.card"
+    ;;
+  esac
+
+  IGCM_debug_PopStack "IGCM_post_ModuloRuntimeFrequency"
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/xios_parser.py
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/xios_parser.py	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_post/xios_parser.py	(revision 5899)
@@ -0,0 +1,398 @@
+#! /usr/bin/env python
+# coding: utf-8
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1537                                    $ Revision of last commit
+# $Author:: aclsce                                    $ Author of last commit
+# $Date:: 2020-07-08 21:35:56 +0200 (Wed, 08 Jul 2020#$ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+import os, pwd, sys, traceback, argparse
+import xml.etree.ElementTree as ET
+#import readline, rlcompleter
+#readline.parse_and_bind("tab: complete")
+
+indent = 0
+currentDepth = 0
+ignoreElems = []
+fromField=[]
+fromFile=[]
+
+def dump(args):
+    """Dump XIOS xmls files."""
+    # Read and dump xios_def_xml
+    for inputFile in args.file:        
+        # Read the file_def_xml
+        print '\nReading %s \n|' % (inputFile)
+        try:
+            tree = ET.parse(inputFile)
+        except:
+            print "Parse error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+        root=tree.getroot()
+        # Call the recursive print
+        printRecur(root)
+
+def tsquery(args):
+    """query timeseries related parameters from an XIOS xml file."""
+    if args.verbosity >= 1: print 'Reading timeseries_def_xml=',args.file[0]
+    try:
+        tree = ET.parse(args.file[0])
+    except:
+        print "Parse error. Please fix so that it can be parsed."
+        traceback.print_exc(file=sys.stdout)
+        return
+    root=tree.getroot()
+    if args.verbosity >= 3: print root.tag, root.attrib
+    findTimeSeries(root)
+        
+def printRecur(root):
+    """Recursively prints the tree."""
+    global indent
+    global currentDepth
+    if root.tag in ignoreElems:
+        return
+    print ' '*indent + '|--> %s: %s' % (root.tag, root.attrib)
+    currentDepth += 1
+    indent += 4
+    if currentDepth <= args.depth or args.depth == None:
+        for elem in list(root):
+            printRecur(elem)
+    currentDepth -= 1
+    indent -= 4
+
+def findTimeSeries(root):
+    """Recursively find and list field tag with "timeseries", "id", "output_freq" and enable=.TRUE. attribute."""
+    if root.tag == 'file' and root.attrib.get('timeseries'):
+        if root.attrib.get('enabled') == '.TRUE.':
+            print 'output_freq=%-5s,id=%s' % (root.attrib.get('output_freq'), root.attrib.get('id'))
+    elif root.tag == 'file' and root.attrib.get('uuid_name'):
+        print 'output_freq=%-5s,name=%85s' % (root.attrib.get('output_freq'), root.attrib.get('name'))
+    else:
+        for elem in list(root):
+            findTimeSeries(elem)
+    
+def findField(root):
+    """Recursively find and list field tag with "id" or "field_ref" attribute."""
+    global fromField
+    global fromFile
+    if root.tag in ignoreElems:
+        return    
+    if root.tag == 'field' and root.attrib.get('id'):
+        fromField.append(root.attrib.get('id'))
+    elif root.tag == 'field' and root.attrib.get('field_ref'):
+        fromFile.append(root.attrib.get('field_ref'))
+    else:
+        for elem in list(root):
+            findField(elem)
+
+def findFieldToRemove(root, fieldToRemove):
+    """Recursively find tag having a field_ref in fieldToRemove."""
+    if args.verbosity >= 3 and root.tag == 'file' and root.attrib.get('id'):
+        print '\nFIELDS FROM FILE_DEF with id', root.attrib.get('id')
+    for field in root.findall('field'):
+        if args.verbosity >= 3: print 'field_ref=', field.attrib.get('field_ref')
+        if field.attrib.get('field_ref') in fieldToRemove:
+            if args.correction:
+                if args.verbosity >= 2: print 'removing ', field.attrib.get('field_ref')
+                root.remove(field)
+            else:
+                if args.verbosity >= 2: print 'To be removed ', field.attrib.get('field_ref')
+    for elem in list(root):
+        findFieldToRemove(elem, fieldToRemove)
+        
+def check(args):
+    global fromFile
+    exitCode=0
+    # Read the field_def_xml
+    if args.verbosity >= 1: print '\nReading field_def_xml=',args.field[0]
+    try:
+        tree = ET.parse(args.field[0])
+    except:
+        print 'Parse error with %s. Please fix so that it can be parsed.' % (args.field[0])
+        traceback.print_exc(file=sys.stdout)
+        return
+    root=tree.getroot()
+    if args.verbosity >= 3: print root.tag, root.attrib, '\n'
+    # Build a list of field.id from field_def
+    findField(root)
+
+    # Loop over file_def files
+    for inputFile in args.file:        
+        # Read the file_def_xml
+        if args.verbosity >= 1: print '\nReading file_def_xml=',inputFile
+        try:
+            tree = ET.parse(inputFile)
+        except:
+            print "Parse error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+        root=tree.getroot()
+        fromFile=[]
+        if args.verbosity >= 3: print root.tag, root.attrib, '\n'
+
+        # Build a list of field_ref from file_def
+        findField(root)
+        #print '4. fromFile=', fromFile
+        
+        # Compare the two lists. fromField must be a superset of fromFile.
+        if set(fromField).issuperset(set(fromFile)):
+            if args.verbosity >= 1: print '\nALL GOOD with %s' % (inputFile)
+            if args.verbosity >= 3: print 'fromField=', fromField
+            if args.verbosity >= 3: print 'fromFile=', fromFile
+        else:
+            if args.verbosity >= 1: print '\nTROUBLE AHEAD with %s' % (inputFile)
+            if args.verbosity >= 3: print ', '.join(sorted(list(set(fromFile)-set(fromField))))
+            # Identify fields in fromFile but not in fromField
+            fieldToRemove=list(set(fromFile)-set(fromField))
+            if args.verbosity >= 3: print 'fieldToRemove=', fieldToRemove
+            # 
+            # And now locate and remove them if the modify command has been called
+            findFieldToRemove(root, fieldToRemove)
+            # Final steps
+            if args.correction: tree.write('modified.'+inputFile)
+            if not len(fieldToRemove) == 0 and not args.correction:
+                exitCode=1
+    # The end
+    sys.exit(exitCode)
+
+def showtime(args):
+    """
+    prints table of formatted text format options
+    """
+    for style in xrange(6):
+        for fg in xrange(30,36):
+            s1 = ''
+            for bg in xrange(40,46):
+                format = ';'.join([str(style), str(fg), str(bg)])
+                s1 += '\x1b[%sm %s \x1b[0m' % (format, pwd.getpwuid(os.getuid())[4]+' is on fire')
+            print s1
+        print '\n'
+   
+def modifydr2xmlIPSL(args):
+    """Recursively find tree element with file tag and change the path prefix of the name attribute."""
+
+    # Loop over file_def files
+    for inputFile in args.file:
+        # Read the file_def_xml
+        if args.verbosity >= 1: print '\nReading dr2xml_def_xml=',inputFile
+        try:
+            tree = ET.parse(inputFile)
+        except:
+            print "Parse error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+        root=tree.getroot()
+        if args.verbosity >= 3: print root.tag, root.attrib, '\n'
+
+        # Change file name prefix to point where we want
+        for elem in tree.iter(tag='file'):
+            if not elem.attrib.get('mode') == 'read':
+                name=elem.attrib.get('name')
+                if args.JobName is not None:
+                    name = name.replace('JobName', args.JobName[0]).replace('ModelName', args.ModelName[0])
+                    elem.set('name', os.path.normpath(args.newPath[0]) + '/' + os.path.normpath(name))
+                else:
+                    elem.set('name', os.path.normpath(args.newPath[0]) + '/' + os.path.normpath(name))
+                if args.verbosity >= 2: print elem.tag, elem.attrib
+                if args.splitLastDate is not None: elem.set('split_last_date', args.splitLastDate[0] + '-01-01 00:00:00')
+                if args.ModelVersion is not None:
+                    for childElem in elem.iter(tag='variable'):
+                        if args.verbosity >= 2: print childElem.tag, childElem.attrib
+                        if childElem.attrib.get('name') is not None:
+                            if childElem.attrib.get('name') == 'model_version':
+                               childElem.text = args.ModelVersion[0]
+                if args.ModelName is not None:
+                    for childElem in elem.iter(tag='variable'):
+                        if args.verbosity >= 2: print childElem.tag, childElem.attrib
+                        if childElem.attrib.get('name') is not None:
+                            if childElem.attrib.get('name') == 'source_id':
+                               childElem.text = args.ModelName[0]
+
+
+        # Write out the results
+        if args.verbosity >= 1: print '\nWriting dr2xml_def_xml=','modified.' + inputFile
+        try:
+            tree.write ('modified.' + inputFile)
+        except:
+            print "Write error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+
+def modifyPath(args):
+    """Recursively find tree element with file tag and change the path prefix of the name attribute."""
+    # Loop over file_def files
+    for inputFile in args.file:
+        # Read the file_def_xml
+        if args.verbosity >= 1: print '\nReading dr2xml_def_xml=',inputFile
+        try:
+            tree = ET.parse(inputFile)
+        except:
+            print "Parse error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+        root=tree.getroot()
+        if args.verbosity >= 3: print root.tag, root.attrib, '\n'
+        # Change file name prefix to point where we want
+        for elem in tree.iter(tag='file'):
+            if not elem.attrib.get('mode') == 'read':
+                name=elem.attrib.get('name')
+                if args.filePrefix is not None:
+                    elem.set('name', os.path.normpath(args.newPath[0]) + '/' + args.filePrefix[0] + '_' + os.path.normpath(name))
+                else:
+                    elem.set('name', os.path.normpath(args.newPath[0]) + '/' + os.path.normpath(name))
+                if args.verbosity >= 2: print elem.tag, elem.attrib
+                   
+        # Write out the results
+        if args.verbosity >= 1: print '\nWriting dr2xml_def_xml=','modified.' + inputFile
+        try:
+            tree.write ('modified.' + inputFile)
+        except:
+            print "Write error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+
+def modifyDR2XML(args):
+    """Recursively find tree element with file tag and change the path prefix of the name attribute."""
+    # Need to fine tune their freq_op and freq_offset
+    cospTuple=('CMIP6_albisccp', 'CMIP6_cfadDbze94', 'CMIP6_cfadLidarsr532', 'CMIP6_clcalipso2', 'CMIP6_clcalipsoice', 'CMIP6_climodis', 'CMIP6_clisccp', 'CMIP6_clmisr', 'CMIP6_cltmodis', 'CMIP6_clwmodis', 'CMIP6_jpdftaureicemodis', 'CMIP6_jpdftaureliqmodis', 'CMIP6_pctisccp', 'CMIP6_parasolRefl', 'CMIP6_clcalipso', 'CMIP6_clhcalipso', 'CMIP6_cllcalipso', 'CMIP6_clmcalipso', 'CMIP6_cltcalipso', 'CMIP6_cltisccp')
+    # Dont touch those when fine tuning cfsites field freq_op
+    excluded_field=('CMIP6_ap', 'CMIP6_b', 'CMIP6_b_bnds', 'CMIP6_ap_bnds')
+    
+    # Loop over file_def files
+    for inputFile in args.file:
+        write=False
+        # Read the file_def_xml
+        if args.verbosity >= 1: print '\nReading dr2xml_def_xml=',inputFile
+        try:
+            tree = ET.parse(inputFile)
+        except:
+            print "Parse error. Please fix so that it can be parsed."
+            traceback.print_exc(file=sys.stdout)
+            return
+        root=tree.getroot()
+        if args.verbosity >= 3: print root.tag, root.attrib, '\n'
+
+        # Change some elements to overrule dr2xml
+        for elem in tree.iter(tag='field'):
+            if elem.attrib.get('id') is not None:
+                if elem.attrib.get('id') == 'CMIP6_siconc_Scaltypesi':
+                    write=True
+                    elem.set('freq_op', '2ts')
+                    elem.set('freq_offset', '0ts')
+                    if args.verbosity >= 2: print elem.tag, elem.attrib
+                elif (elem.attrib.get('id').startswith(cospTuple)):
+                    write=True
+                    elem.set('freq_op', '3h')
+                    elem.set('freq_offset', '0ts')
+                    if args.verbosity >= 2: print elem.tag, elem.attrib
+        # Change elements related to CFsubhr files
+        for elem in tree.iter(tag='file'):
+            if elem.attrib.get('id') is not None:
+                if ("_CFsubhr_" in elem.attrib.get('id')):
+                    write=True
+                    elem.set('output_freq', '2ts')
+                    elem.set('split_start_offset', '2ts')
+                    if args.verbosity >= 2: print elem.tag, elem.attrib
+                    for childElem in elem.iter(tag='field'):
+                        if childElem.attrib.get('field_ref') is not None:
+                            if childElem.attrib.get('field_ref') not in excluded_field:
+                                childElem.set('freq_op', '2ts')
+                                if args.verbosity >= 2: print childElem.tag, childElem.attrib
+        # Changes related to cth16
+        for elem in tree.iter(tag='grid'):
+            if elem.attrib.get('id') is not None:
+                if elem.attrib.get('id') == 'grid4Dmisr_greordered':
+                    write=True
+                    if args.verbosity >= 2: print elem.tag, elem.attrib
+                    for childElem in elem.iter(tag='axis'):
+                        if args.verbosity >= 2: print childElem.tag, childElem.attrib
+                        if childElem.attrib.get('axis_ref') is not None:
+                            if childElem.attrib.get('axis_ref') == 'cth16':
+                                childElem.set('axis_ref', 'cth')
+        # Ready
+        if write:
+            # Write out the results
+            if args.verbosity >= 1: print '\nWriting dr2xml_def_xml=','modified.' + inputFile
+            try:
+                tree.write ('modified.' + inputFile)
+            except:
+                print "Write error. Please fix so that it can be parsed."
+                traceback.print_exc(file=sys.stdout)
+                return
+
+if __name__ == '__main__':
+
+    try:
+        # Create the top-level parser
+        parser = argparse.ArgumentParser(description='XIOS2 xml files tooling and ironsmith')
+        subparsers = parser.add_subparsers(description='Dump, check or modify xios xml files')
+
+        # create the parser for the "dump" command
+        parser_dump = subparsers.add_parser('dump',help='Dump the xml content without all the xml\'s ironsmith')
+        parser_dump.add_argument('-d', '--depth', type=int, default=None, help='How deep do we go. Full tree by default')
+        parser_dump.add_argument('file', nargs='+', help='XIOS xml file(s) to dump')
+        parser_dump.set_defaults(func=dump)
+
+        # create the parser for the "tsquery" command
+        parser_check = subparsers.add_parser('tsquery', help='query timeseries related parameters from an xml file')
+        parser_check.add_argument('--file', nargs=1, required=True, help='XIOS xml timeseries_def type')
+        parser_check.set_defaults(func=tsquery)
+        
+        # create the parser for the "check" command
+        parser_check = subparsers.add_parser('check', help='Check consistency between field_def and file_def files')
+        parser_check.add_argument('--field', nargs=1, required=True, help='XIOS xml field_def type')
+        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml file_def type')
+        parser_check.set_defaults(func=check, correction=False)
+
+        # create the parser for the "modify" command
+        parser_check = subparsers.add_parser('modify', help='Will make sure field_def is a superset of file_def')
+        parser_check.add_argument('--field', nargs=1, required=True, help='XIOS xml field_def type')
+        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml file_def type')
+        parser_check.set_defaults(func=check, correction=True)
+        
+        # create the parser for the "modifydr2xmlIPSL" command
+        parser_check = subparsers.add_parser('modifydr2xmlIPSL', help='Adapt dr2xml_file to produce output files according to IPSL requirements')
+        parser_check.add_argument('--newPath', nargs=1, required=True, help='Directory output for file produced from dr2xml_file type')
+        parser_check.add_argument('--JobName', nargs=1, required=False, help='Name of the simulation to be added in the name of file produced from dr2xml_file type')
+        parser_check.add_argument('--ModelName', nargs=1, required=False, help='Name of the model to be added in the name of file produced from dr2xml_file type')
+        parser_check.add_argument('--ModelVersion', nargs=1, required=False, help='Model version to be added in global attributes of files produced from dr2xml_file type')
+        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml dr2xml_file type')
+        parser_check.add_argument('--splitLastDate', nargs=1, required=False, help='Date to be used as split_last_date')
+        parser_check.set_defaults(func=modifydr2xmlIPSL)
+
+        # create the parser for the "modifyPath" command
+        parser_check = subparsers.add_parser('modifyPath', help='Will make sure dr2xml write files where it should be')
+        parser_check.add_argument('--newPath', nargs=1, required=True, help='Directory output for file produced from dr2xml_file type')
+        parser_check.add_argument('--filePrefix', nargs=1, required=False, help='Prefix to be added to file produced from dr2xml_file type')
+        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml dr2xml_file type')
+        parser_check.set_defaults(func=modifyPath)
+
+        # create the parser for the "modifyDR2XML" command
+        parser_check = subparsers.add_parser('modifyDR2XML', help='Fine tune dr2xml files for CMIP6 production')
+        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml dr2xml_file type')
+        parser_check.set_defaults(func=modifyDR2XML)
+        
+        # create the parser for the "showtime" command
+        parser_check = subparsers.add_parser('showtime', help='Just want to make sure you feel good today')
+        parser_check.set_defaults(func=showtime)
+        
+        # Each possible option
+        parser.add_argument('-v', '--verbosity', action='count', default=0)
+
+        # Parse the args.
+        args = parser.parse_args()
+
+        # And call whatever function was selected
+        args.func(args)
+    except KeyboardInterrupt:
+        print "Shutdown requested...exiting"
+    except Exception:
+        traceback.print_exc(file=sys.stdout)
+    sys.exit(0)
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/IGCM_add_out.awk
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/IGCM_add_out.awk	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/IGCM_add_out.awk	(revision 5899)
@@ -0,0 +1,460 @@
+# IGCM_add_out - filter of output of the job :
+# command :
+# IGCM_add_out.awk job_output.out REALTIME USERTIME SYSTIME
+
+#**************************************************************
+# Author: Martial.Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 671                                      $ Revision of last commit
+# $Author:: mafoipsl                                   $ Author of last commit
+# $Date:: 2012-05-21 08:24:42 +0200 (Mon, 21 May 2012) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+# Modification: Patrick.Brockmann@cea.fr
+#
+#**************************************************************
+
+#==========================
+function myprint(str) {
+  if (debug) {
+     print str
+  }
+}
+
+
+#==========================
+BEGIN {
+#  print "traitement de " ARGV[1]
+
+  nbarg=ARGC
+  if (ARGV[1] == "-d") {
+    debug=1
+    file=ARGV[2]
+    delete ARGV[1] 
+    nbarg--
+  } else {
+    debug=0
+    file=ARGV[1]
+  }
+
+# When exit statement, 'END' rule is always executed, so defined a exit_value to manage this
+  exit_value=0
+  if (nbarg != 2) {
+    print "Usage: IGCM_add_out.awk [-d] file.output" 
+    print 
+    print "Args:"
+    print "      file.output = output file of at Job to be parsed" 
+    print 
+    print "Options:" 
+    print "       -d = debug mode" 
+    print 
+    exit_value=1
+    exit
+  }
+
+  Information_found=0
+  Information_ksh_SX_found=0
+
+  RealTime=0.
+  UserTime=-1.
+  SysTime=0.
+  VectorTime=0.
+  InstCount=0.
+  VInstCount=0.
+  VElementCount=0.
+  FLOPCount=0.
+  MOPS=0.
+  MFLOPS=0.
+  AVLength=0.
+  VOpRatio=0.
+  MemorySize=0.
+  MIPS=0.
+  ICache=0.
+  OCache=0.
+  Bank=0.
+
+  counter=0
+
+  RunDateBegin="2000-01-01T00:00:00"
+  RunDateEnd="2000-01-01T00:00:00"
+
+}
+
+#==========================
+{
+  myprint($0) 
+
+# Get information with MPI Program Information output on NEC
+  if (match($0, "     \\*\\*\\*\\*\\*\\*  Program Information  \\*\\*\\*\\*\\*\\*")) 
+  {
+    Information_found=1
+    counter=counter+1
+#   print $0      
+#    print counter
+    next
+  }
+  else if (Information_found == 1 && (match($0, ".*:.*"))) 
+  {
+    where=(match($0,"[a-zA-Z]"))
+    Length=(match($0, " *:"))-where
+    whereDot=(match($0, ":"))
+    info=substr($0,where,Length)
+    whereNum=(match($0, "[0-9]"))
+    Res=substr($0,whereNum)
+#    print where "," Length "," whereDot "," whereNum " '" info "' :" Res 
+
+    if( info=="Real Time (sec)" ) {
+#      print "|" Res "|"
+#      printf("RealTime = %10.5f\n",0.037600)
+#      printf("RealTime = %10.5f\n",Res)
+      if ( Res > RealTime ) {
+        myprint( "NEC Real Time updated" )
+	    RealTime=Res
+      }
+      next
+    }
+    	  
+    if( info=="User Time (sec)" ) {
+      myprint( "NEC User Time " )
+      UserTime=UserTime+Res
+      next
+    }
+
+    if( info=="Sys  Time (sec)" ) {
+      SysTime=SysTime+Res
+      next
+    }
+
+    if( info=="Vector Time (sec)" ) {
+      VectorTime=VectorTime+Res
+      next  
+    }
+
+    if( info=="Inst. Count" ) {
+      InstCount=InstCount+Res
+      next
+    }
+
+    if( info=="V. Element Count" ) {
+      VInstCount=VInstCount+Res
+      next  
+    }
+
+    if( info=="V. Element Count" ) {
+      VElementCount=VElementCount+Res
+      next
+    }
+
+    if( info=="FLOP Count" ) {
+      FLOPCount=FLOPCount+Res
+      next  
+    }
+
+    if( info=="MOPS" ) {
+      MOPS=MOPS+Res
+      next
+    }
+
+    if( info=="MFLOPS" ) {
+      MFLOPS=MFLOPS+Res
+      next  
+    }
+
+    if( info=="A.V. Length" ) {
+      AVLength=AVLength+Res
+      next
+    }
+
+    if( info=="V. Op. Ratio (%)" ) {
+      VOpRatio=VOpRatio+Res
+      next  
+    }
+
+    if( info=="Memory Size (MB)" ) {
+      MemorySize=MemorySize+Res
+      next
+    }
+
+    if( info=="MIPS" ) {
+      MIPS=MIPS+Res
+      next  
+    }
+
+    if( info=="I-Cache (sec)" ) {
+      ICache=ICache+Res
+      next
+    }
+
+    if( info=="O-Cache (sec)" ) {
+      OCache=OCache+Res
+      next  
+    }
+
+    if( info=="Bank (sec)" ) {
+      Bank=Bank+Res
+      next
+    }
+
+  }
+# Get information with time output on other hosts
+# ksh time
+  else if (match($0, ".*s real .*s user .*s system"))
+  {
+    myprint( "ksh" )
+    counter=counter+1
+
+    RealTime=(substr($1,1,match($1, "s")-1))
+    UserTime=(substr($3,1,match($3, "s")-1))
+    SysTime=(substr($5,1,match($5, "s")-1))
+
+  }
+
+# csh time
+# 0.000+u 0.000+s 0:00.00 0.0%      0+0k 0+0io 0pf+0w
+  else if (match($0, "[0-9.]+u [0-9.]+s .+"))
+  {
+    myprint( "csh" )
+    counter=counter+1
+
+    UserTime=(substr($1,1,match($1, "u")-1))
+    SysTime=(substr($2,1,match($2, "s")-1))
+    # si hours ?
+    RealTime=(substr($3,1,match($3, ":")-1)*60. + substr($3,match($3, ":")+1))
+
+  }
+# linux system time
+### example :
+### 2.02user 6.60system 12:41.62elapsed 1%CPU (0avgtext+0avgdata 25520maxresident)k
+### 1.31user 5.33system 2:47:39elapsed 0%CPU (0avgtext+0avgdata 30400maxresident)k
+  else if (match($0, ".*user .*system .*elapsed .*CPU .*"))
+  {
+    myprint( "linux" )
+    counter=counter+1
+
+    UserTime=(substr($1,1,match($1, "user")-1))
+    SysTime=(substr($2,1,match($2, "system")-1))
+    ### RealTime=(substr($3,1,match($3, ":")-1)*60.+substr($3, match($3, ":")+1, match($3, "elapsed"))) what for hours????
+
+    RealTime=0
+    if (match($3, "[0-9]*:[0-9]*:[0-9]*elapsed"))
+    {
+      #### $3=2:47:39elapsed
+      myprint( "linux elapsed in hours " )
+      sub1=(match($3, ":")-1)
+      sub2=sub1+2
+      min=(substr($3,sub2))
+      sub3=(match(min, ":")-1)
+      sub4=sub3+2
+      fin=(substr(min,sub4))
+      sub5=(match(fin, "elapsed")-1)
+      RealTime=((substr($3,1,sub1))*60+substr(min,1,sub3))*60+(substr(min,sub4,sub5))
+      myprint( " real time seconds " RealTime )
+    }
+    else if (match($3, "[0-9]*:[0-9]*\\.[0-9]*elapsed"))
+    {
+      #### $3=12:41.62elapsed
+      myprint( "linux elapsed in minutes " )
+      sub1=(match($3, ":")-1)
+      sub2=sub1+2
+      fin=(substr($3,sub2))
+      sub3=(match(fin, "elapsed")-1)
+      RealTime=(substr($3,1,sub1))*60+(substr($3,sub2,sub3))
+      myprint( " real time seconds " RealTime )
+    }
+    else if (match($3, "[0-9]*\\.[0-9]*elapsed"))
+    {
+      #### $3=41.62elapsed
+      myprint( "linux elapsed in second " )
+      RealTime=(substr($3,1,match($3, "elapsed")-1))
+      myprint( " real time seconds " RealTime )
+    }
+    next
+  }
+# curie system time (if not linux) or vargas
+### curie (with tab)
+### real    9m38.96s
+### user    0m4.45s
+### sys     0m6.41s
+### vargas (with space)
+### real   2891.80
+### user   0.28
+### sys    0.45
+
+  else if (match($1, "real"))
+  {
+    myprint( "curie ou vargas ?" )
+
+    # real    9m38.96s or real   2891.80
+    if (match($2, ".*s.*"))
+    {
+      myprint( "curie" )
+      counter=counter+1
+      ### real    9m38.96s
+      ### real  5h9m38.96s
+      RealTime=((substr($2,1,match($2, "h")-1)*60.)+substr($2,match($2, "h")+1,match($2, "m")-1))*60.+substr($2,match($2, "m")+1,match($2, "s"))
+      next
+    }
+    else
+    {
+      myprint( "vargas" )
+      counter=counter+1
+   
+      ### real 2891.80
+      RealTime=$2
+    next
+    }
+  }
+  else if (match($1, "user"))
+  {
+    # user(tab)0m4.45s or user   0.28
+    if (match($2, ".*s.*"))
+    {
+       myprint( "curie user" )
+       UserTime=((substr($2,1,match($2, "h")-1)*60.)+substr($2,match($2, "h")+1,match($2, "m")-1))*60.+substr($2,match($2, "m")+1,match($2, "s"))
+       next
+    }
+    else
+    {
+      myprint( "vargas user" )
+      UserTime=$2
+      next
+    }
+  }
+  else if (match($1, "sys"))
+  {
+    # 0m6.41s or 0.45
+    if (match($2, ".*s.*"))
+    {
+      myprint( "curie sys" )
+      SysTime=((substr($2,1,match($2, "h")-1)*60.)+substr($2,match($2, "h")+1,match($2, "m")-1))*60.+substr($2,match($2, "m")+1,match($2, "s"))
+      next
+    }
+    else
+    {
+      myprint( "vargas sys" )
+      SysTime=$2
+      next
+    }
+  }
+
+# Get information with time output on SX hosts
+# ksh time
+  else if (match($0, "real *[0-9:.]*"))
+  {
+    myprint("ksh SX")
+    Information_ksh_SX_found=1
+    counter=counter+1
+
+    RealTime=0
+    if (match($2, "[0-9]*:[0-9]*:[0-9]*\\.[0-9]*"))
+    {
+	sub1=(match($2, ":")-1)
+	sub2=sub1+2
+	fin=(substr($2,sub2))
+	sub3=(match(fin, ":")-1)+sub2
+	RealTime=(substr($2,1,sub1))*60+(substr($2,sub2,sub3))
+    }
+    else if (match($2, "[0-9]*:[0-9]*\\.[0-9]*"))
+    {
+	RealTime=(substr($2,1,match($2, ":")-1))
+    }
+  }
+  else if (Information_ksh_SX_found == 1 && match($0, "user *[0-9:.]*"))
+  {
+    myprint("ksh SX ")
+
+    UserTime=0
+    if (match($2, "[0-9]*:[0-9]*:[0-9]*\\.[0-9]*"))
+    {
+	sub1=(match($2, ":")-1)
+	sub2=sub1+2
+	fin=(substr($2,sub2))
+	sub3=(match(fin, ":")-1)+sub2
+	UserTime=(substr($2,1,sub1))*60+(substr($2,sub2,sub3))
+    }
+    else if (match($2, "[0-9]*:[0-9]*\\.[0-9]*"))
+    {
+	UserTime=(substr($2,1,match($2, ":")-1))
+    }
+  }
+  else if (Information_ksh_SX_found == 1 && match($0, "sys *[0-9:.]*"))
+  {
+    myprint("ksh SX ")
+
+    SysTime=0
+    if (match($2, "[0-9]*:[0-9]*:[0-9]*\\.[0-9]*"))
+    {
+	sub1=(match($2, ":")-1)
+	sub2=sub1+2
+	fin=(substr($2,sub2))
+	sub3=(match(fin, ":")-1)+sub2
+	SysTime=(substr($2,1,sub1))*60+(substr($2,sub2,sub3))
+    }
+    else if (match($2, "[0-9]*:[0-9]*\\.[0-9]*"))
+    {
+	SysTime=(substr($2,1,match($2, ":")-1))
+    }
+  }
+
+# RUN_DATE_BEGIN
+if ($0 ~ /RunDateBegin.*=/) {
+    myprint( "start date" )
+    split($0,a,"=")
+    RunDateBegin=a[2]
+}
+
+# RUN_DATE_END
+if ($0 ~ /RunDateEnd.*=/) {
+    myprint( "end date" )
+    split($0,a,"=")
+    RunDateEnd=a[2]
+  }
+
+}
+
+#==========================
+END {
+
+    myprint("exit_value : " exit_value)
+    myprint("counter    : " counter)
+
+  if (! exit_value ) {
+    if (counter > 0) { 
+      myprint("=============================================")
+      myprint("Additionnal results on Program Informations for " ARGV[1])
+      myprint("Real Time (sec)        :" RealTime)
+      myprint("User Time (sec)        :" UserTime)
+      myprint("Sys  Time (sec)        :" SysTime)
+      myprint("Vector Time (sec)      :" VectorTime)
+      myprint("Inst. Count            :" InstCount)
+      myprint("V. Inst. Count         :" VInstCount)
+      myprint("V. Element Count       :" VElementCount)
+      myprint("FLOP Count             :" FLOPCount)
+      myprint("MOPS                   :" MOPS)
+      myprint("MFLOPS                 :" MFLOPS)
+      myprint("A.V. Length            :" AVLength)
+      myprint("V. Op. Ratio (%)       :" VOpRatio)
+      myprint("Memory Size (MB)       :" MemorySize)
+      myprint("MIPS                   :" MIPS)
+      myprint("I-Cache (sec)          :" ICache)
+      myprint("O-Cache (sec)          :" OCache)
+      myprint("Bank (sec)             :" Bank)
+
+      myprint("Date of executables :")
+      myprint("Start Time             :" RunDateBegin)
+      myprint("End   Time             :" RunDateEnd)
+
+      printf("%s %s %.5f %.5f %.5f", RunDateBegin, RunDateEnd, RealTime, UserTime, SysTime) 
+      exit(0)
+    }
+    else
+    { 
+      exit(1)
+    }
+  }
+  else
+  { 
+    exit(2)
+  }
+  
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/IGCM_analyse_rsync_out.awk
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/IGCM_analyse_rsync_out.awk	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/IGCM_analyse_rsync_out.awk	(revision 5899)
@@ -0,0 +1,120 @@
+#!/usr/bin/awk -f 
+# IGCM_analyse_rsync_out - filter rsync output in a job output :
+# command :
+# IGCM_analyse_rsync_out.awk [-d] job_output.out
+
+#**************************************************************
+# Author: Martial.Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 373                                      $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2010-10-29 12:37:36 +0200 (Fri, 29 Oct 2010) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#==========================
+function myprint(str) {
+  if (debug) {
+     print str
+  }
+}
+
+
+#==========================
+BEGIN {
+#  print "traitement de " ARGV[1]
+
+  nbarg=ARGC
+
+  if (ARGV[1] == "-d") {
+    debug=1
+    file=ARGV[2]
+    delete ARGV[1] 
+    nbarg--
+  } else {
+    debug=0
+    file=ARGV[1]
+  }
+
+  exit_value=0
+  if (nbarg != 2) {
+        print "Usage: analyse_rsync_out.awk [-d] file"
+        exit_value=-1
+        exit
+  }
+    
+  rsync_found=0
+  speedup_found=0
+  counter=0
+  thisfile[1]=""
+  errcounter=0
+  errorfile[1]=""
+}
+
+#==========================
+{
+
+  myprint($0) 
+
+  if (rsync_found == 0 && match($0, ".*/rsync .*")) {
+    speedup_found = 0
+    rsync_found=1
+    counter=counter+1
+
+    nb=split($0,felts, " ")
+    myprint("nb  :" nb)
+    for (elt in felts) {
+	myprint(elt "- elt  :" felts[elt])
+    }
+    myprint("elts_split  :" felts[4])
+
+    thisfile[counter]=felts[4]
+  }
+  else if (rsync_found == 1 && match($0, ".* speedup is .*")) {
+    myprint("speedup_found = 1")
+    speedup_found = 1
+  }
+  else if (speedup_found == 1 && match($0, "rsync error:.*")) {
+    errcounter=errcounter+1
+    errorfile[errcounter]=thisfile[counter]
+    myprint("=============================================")
+    myprint("WARNING : Rsync ERROR for " ARGV[1])
+    myprint("counter  :" counter)
+    myprint("file  :" thisfile[counter])
+    thisfile[counter]=""
+    counter=counter-1
+  } 
+  else {
+    if ( speedup_found == 1 ) {
+      rsync_found=0
+      speedup_found=0
+    }
+  }
+}
+
+#==========================
+END {
+  if ( exit_value != -1 ) {
+
+    myprint("=============================================")
+    myprint("Rsync for " ARGV[1])
+    myprint("counter  :" counter)
+    for (i=1; i<=counter; i++) {  
+      myprint("file  :" thisfile[i])
+    }
+    if (errcounter > 0) {
+      debug=1
+      myprint("Error counter  :" errcounter)
+      for (i=1; i<=errcounter; i++) {  
+        myprint("Error file  :" errorfile[i])
+      }
+      exit_value=errcounter
+      print exit_value
+      exit exit_value
+    } 
+    exit_value=0
+    exit 0
+  }
+}
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/jobAccounting.mail
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/jobAccounting.mail	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/jobAccounting.mail	(revision 5899)
@@ -0,0 +1,11 @@
+Dear ${LOGIN},
+
+this mail will be sent once for the simulation ${config_UserChoices_JobName} you recently submitted.
+
+The whole simulation will consume around ${consumeHoursPerWholeSimulation} hours. To be compared with your project allocation.
+
+For your case \(a job duration of ${jobWarningDelay} seconds\) the recommended PeriodNb is around ${recommendedPeriodNb}. To be compare with the current setting \(Job_${config_UserChoices_JobName} parameter\) : PeriodNb=${PeriodNb}
+
+Greetings!
+
+Check this out for more information : https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/Doc
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/jobEnd.mail
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/jobEnd.mail	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/jobEnd.mail	(revision 5899)
@@ -0,0 +1,17 @@
+Dear ${LOGIN},
+
+Simulation ${config_UserChoices_JobName} ${status} on supercomputer $( hostname )
+Simulation started : ${DateBegin}
+Simulation ended   : ${DateEnd}
+
+Output files are available in ${R_SAVE}
+
+Files to be rebuild are temporarily available in ${REBUILD_DIR}
+
+Pre-packed files are temporarily available in ${R_BUFR}
+
+Script files, Script Outputs and Debug files \(if necessary\) are available in ${SUBMIT_DIR}
+
+Greetings!
+
+Check this out for more information : https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/Doc
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys.ksh	(revision 5899)
@@ -0,0 +1,1722 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1521                                     $ Revision of last commit
+# $Author:: aclsce                                     $ Author of last commit
+# $Date:: 2020-02-28 15:45:31 +0100 (Fri, 28 Feb 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+# bypass specific internationalization (for gawk)
+export LC_ALL="C"
+
+# By default, all libIGCM_sys save functions will protect output datas (RUN execution mode)
+# other values : DEB(ug), DEV(elopment).
+JobType=${JobType:=RUN}
+
+#====================================================
+# set PackDefault false by default
+PackDefault=false
+
+#====================================================
+# set BigBrother false by default
+BigBrother=${BigBrother:=false}
+
+#====================================================
+# set BigBrother channel (AMQP or MAIL)
+# only MAIL working at present due to firewall constraint
+BigBrotherChannel=MAIL
+
+# no need to be so verbose in checking mode
+if [ ! X${TaskType} = Xchecking ] ; then
+  echo
+  echo "===================================================="
+  echo "Where do we run ?" $( hostname )
+  uname -a
+  echo "===================================================="
+  echo
+fi
+
+if [ X${JobType} = XDEB ] ; then
+    echo "DEBUG mode : activation of 'set -vx' mode."
+    set -vx
+    DEBUG_debug=true
+    DEBUG_sys=true
+fi
+
+#====================================================
+
+case $( hostname -s ) in
+    ada*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for ada Intel X-64."
+        CENTER=IDRIS
+        SYSTEM=ada
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_ada.ksh;;
+    curie*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for curie Intel X-64."
+        CENTER=TGCC
+        SYSTEM=curie
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_curie.ksh;;
+    irene*)
+        if [ "${SLURM_JOB_PARTITION}" = "rome" ] || [ "$( hostname -s)" = "irene172" ] || [ "$( hostname -s)" = "irene173" ] || [ "$( hostname -s)" = "irene194" ] || [ "$( hostname -s)" = "irene195" ] ; then
+         [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for irene_amd Intel X-64 at TGCC"
+         CENTER=TGCC
+         SYSTEM=irene-amd
+         . ${libIGCM}/libIGCM_sys/libIGCM_sys_irene-amd.ksh
+        else
+         [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for irene Intel X-64 at TGCC"
+         CENTER=TGCC
+         SYSTEM=irene
+         . ${libIGCM}/libIGCM_sys/libIGCM_sys_irene.ksh
+        fi;;
+    airain*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for airain Intel X-64."
+        CENTER=TGCC
+        SYSTEM=curie
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_curie.ksh;;
+    asterix*|obelix*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for obelix or asterix."
+        CENTER=LSCE
+        SYSTEM=lxiv8
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_obelix.ksh;;
+    ciclad*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for ciclad for running at ciclad."
+        CENTER=IPSL-ciclad
+        SYSTEM=ifort_CICLAD
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_ciclad.ksh;;
+    camelot*|loholt1*|loholt2*|merlin*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for ciclad for running at climserv."
+        CENTER=IPSL-climserv
+        SYSTEM=ifort_CICLAD
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_ciclad.ksh;;
+    iitm*)
+        [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for iitm."
+        CENTER=IITM
+        SYSTEM=iitm
+        . ${libIGCM}/libIGCM_sys/libIGCM_sys_iitm.ksh;;
+    *)
+        if [ "${SLURM_CLUSTER_NAME}" = "jean-zay" ] || [ "$( hostname -s |  cut -c "1-8"  )" = "jean-zay" ] ; then
+          [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for Jean-Zay Intel X-64."
+          CENTER=IDRIS
+          SYSTEM=jeanzay
+          . ${libIGCM}/libIGCM_sys/libIGCM_sys_jeanzay.ksh
+        else
+          [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for a default machine."
+          CENTER=DEFAULT
+          SYSTEM=default
+          . ${libIGCM}/libIGCM_sys/libIGCM_sys_default.ksh
+        fi;;
+esac
+# Set default umask (umask is 0027 on some machines : CCRT machine at least)
+umask 0022
+
+#D--------------------------------------------------------------------==
+#D-
+#D-    Define IGCM_sys functions that are common on every systems
+#D-
+#D--------------------------------------------------------------------==
+
+#D-#==================================================
+#D-function IGCM_sys_RshMaster
+#D-* Purpose: Connection to frontend machine.
+#D-* Examples:
+#D-
+function IGCM_sys_RshMaster {
+  IGCM_debug_PushStack "IGCM_sys_RshMaster" $@
+  OUTCOMMAND_PATH=${OUTCOMMAND_PATH} /bin/ksh <<-EOF
+    export libIGCM=${libIGCM}
+    export DEBUG_debug=${DEBUG_debug}
+    . ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
+    . ${libIGCM}/libIGCM_card/libIGCM_card.ksh
+    ${@}
+EOF
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_RshMaster : erreur."
+    IGCM_debug_Exit "IGCM_sys_RshMaster"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshMaster"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshPost
+#D-* Purpose: Post-process rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshPost {
+  IGCM_debug_PushStack "IGCM_sys_RshPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RshPost :" $@
+  fi
+  # keep standard input (stdin) for the loop onto temporary file
+  cat >${OUTCOMMAND_PATH}/tmp_IGCM_sys_RshPost_$$_${LOGNAME}
+
+  OUTCOMMAND_PATH=${OUTCOMMAND_PATH} /bin/ksh <${OUTCOMMAND_PATH}/tmp_IGCM_sys_RshPost_$$_${LOGNAME}
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_RshPost : erreur."
+    IGCM_debug_Exit "IGCM_sys_RshPost"
+  fi
+  # delete temporary file
+  \rm ${OUTCOMMAND_PATH}/tmp_IGCM_sys_RshPost_$$_${LOGNAME}
+
+# ============ FRONTEND  END  ============ #
+
+# ============ CESIUM START ============ #
+#  typeset NB_ESSAI DELAI status i
+#  if [ "X$( grep rebuild_from tmp_IGCM_sys_RshPost_$$ )" != "X" ] ; then
+#    #little hack so that rebuild submission is done on titane not an cesium
+#
+#    libIGCM_POST_sed=$( echo $libIGCM_POST | sed 's/\//\\\//g' )
+#    POST_DIR_sed=$( echo ${POST_DIR} | sed 's/\//\\\//g' )
+#    sed "s/IGCM_sys_QsubPost/IGCM_sys_Qsub/g" tmp_IGCM_sys_RshPost_$$ > tmp.txt
+#    sed "s/ rebuild_fromWorkdir/ ${libIGCM_POST_sed}\/rebuild_fromWorkdir.job/g" tmp.txt > tmp_IGCM_sys_RshPost_$$
+#    sed "s/ rebuild_fromArchive/ ${libIGCM_POST_sed}\/rebuild_fromArchive.job/g" tmp_IGCM_sys_RshPost_$$ > tmp.txt
+#    sed "s/Script_Post_Output=/Script_Output=${POST_DIR_sed}\//g" tmp.txt > tmp_IGCM_sys_RshPost_$$
+#    \mv tmp.txt tmp_IGCM_sys_RshPost_$$
+#
+#    echo cat tmp_IGCM_sys_RshPost_$$ AFTER
+#    cat tmp_IGCM_sys_RshPost_$$
+#
+#    /bin/ksh <tmp_IGCM_sys_RshPost_$$
+#    if [ $? -gt 0 ] ; then
+#      echo "IGCM_sys_RshPost : erreur."
+#      IGCM_debug_Exit "IGCM_sys_RshPost"
+#    fi
+#    # delete temporary file
+#    \rm tmp_IGCM_sys_RshPost_$$
+#
+#  else
+#    # number of tentative
+#    NB_ESSAI=10
+#    # time delay between tentative
+#    DELAI=10
+#    i=0
+#    while [ $i -ne $NB_ESSAI ] ; do
+#      ssh -t titane996 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$
+#      status=$?
+#      if [ ${status} -ne 0 ];
+#      then
+#        sleep $DELAI
+#      else
+#        break
+#      fi
+#      let i=$i+1
+#    done
+#    # delete temporary file
+#    \rm tmp_IGCM_sys_RshPost_$$
+#
+#    if [ ${status} -gt 0 ] ; then
+#      echo "IGCM_sys_RshPost : erreur."
+#      IGCM_debug_Exit "IGCM_sys_RshPost"
+#    fi
+#  fi
+
+# ============ CESIUM  END  ============ #
+
+  IGCM_debug_PopStack "IGCM_sys_RshPost"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_SendMail
+#D-* Purpose: Send mail when simulation is over
+#D-* Examples:
+#D-
+function IGCM_sys_SendMail {
+  IGCM_debug_PushStack "IGCM_sys_SendMail" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_SendMail :" $@
+  fi
+
+  if [ X${1} = XAccounting ] ; then
+    status=Accounting
+    mailText=jobAccounting.mail
+  elif ( ${ExitFlag} ) ; then
+    status=failed
+    mailText=jobEnd.mail
+  else
+    status=completed
+    mailText=jobEnd.mail
+  fi
+
+  # Update selected mail template
+  while read -r line; do
+    eval echo $line >> mail.txt ;
+  done < ${libIGCM}/libIGCM_sys/${mailText}
+
+  if [ ! -z ${config_UserChoices_MailName} ] ; then
+    mail -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} < mail.txt
+  elif [ -f ~/.forward ] ; then
+    mail -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < mail.txt
+  else
+    mail -s "${config_UserChoices_JobName} ${status}" ${USER} < mail.txt
+  fi
+
+  sleep 10
+  rm -f mail.txt
+
+  IGCM_debug_PopStack "IGCM_sys_SendMail"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Mkdir
+#D-* Purpose: Master locale mkdir command
+#D-* Examples:
+#D-
+function IGCM_sys_Mkdir {
+  IGCM_debug_PushStack "IGCM_sys_Mkdir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Mkdir :" $@
+  fi
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    if [ $? -gt 0 ] ; then
+      echo "IGCM_sys_Mkdir : erreur."
+      IGCM_debug_Exit "IGCM_sys_Mkdir"
+    fi
+  fi
+  # vÃ©rification :
+  if [ ! -d ${1} ] ; then
+    echo "IGCM_sys_Mkdir : erreur."
+    IGCM_debug_Exit "IGCM_sys_Mkdir"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Mkdir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirWork
+#D-* Purpose: Mkdir on Work
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirWork {
+  IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirWork :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    if [ $? -gt 0 ] ; then
+      echo "IGCM_sys_MkdirWork : erreur."
+      IGCM_debug_Exit "IGCM_sys_MkdirWork"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirWork"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Cd
+#D-* Purpose: master cd command
+#D-* Examples:
+#D-
+function IGCM_sys_Cd {
+  IGCM_debug_PushStack "IGCM_sys_Cd" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Cd :" $@
+  fi
+  \cd $1
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_Cd : erreur."
+    IGCM_debug_Exit "IGCM_sys_Cd"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Cd"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Chmod
+#D-* Purpose: Chmod
+#D-* Examples:
+#D-
+function IGCM_sys_Chmod {
+  IGCM_debug_PushStack "IGCM_sys_Chmod" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Chmod :" $@
+  fi
+  \chmod $@
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_Chmod : erreur."
+    IGCM_debug_Exit "IGCM_sys_Chmod"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Chmod"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_FileSize
+#D-* Purpose: Filesize
+#D-* Examples:
+#D-
+function IGCM_sys_FileSize {
+  IGCM_debug_PushStack "IGCM_sys_FileSize" $@
+
+  typeset sizeF
+  set +A sizeF -- $( ls -la ${1} )
+  if [ $? -gt 0 ] ; then
+    IGCM_debug_Exit "IGCM_sys_FileSize"
+  fi
+  eval ${2}=${sizeF[4]}
+
+  IGCM_debug_PopStack "IGCM_sys_FileSize"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDir
+#D-* Purpose: Test Directory that must exists
+#D-* Examples:
+#D-
+function IGCM_sys_TestDir {
+  IGCM_debug_PushStack "IGCM_sys_TestDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDir :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDir"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileBuffer
+#D-* Purpose: Test file that must NOT EXISTS on Buffer
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileBuffer {
+  IGCM_debug_PushStack "IGCM_sys_TestFileBuffer" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileBuffer"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileBuffer
+#D-* Purpose: Count files on Scratch filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileBuffer {
+  IGCM_debug_PushStack "IGCM_sys_CountFileBuffer" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileBuffer : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileBuffer"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tar
+#D-* Purpose: master tar command
+#D-* Examples:
+#D-
+function IGCM_sys_Tar {
+  IGCM_debug_PushStack "IGCM_sys_Tar" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tar :" $@
+  fi
+  \tar cf $@
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_Tar : erreur."
+    IGCM_debug_Exit "IGCM_sys_Tar"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Tar"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_UnTar
+#D-* Purpose: master un-tar command
+#D-* Examples:
+#D-
+function IGCM_sys_UnTar {
+  IGCM_debug_PushStack "IGCM_sys_UnTar" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_UnTar :" $@
+  fi
+  \tar xvf $1
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_UnTar : erreur."
+    IGCM_debug_Exit "IGCM_sys_UnTar"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_UnTar"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_Rsync_out
+#D-* Purpose: treat return val of rsync
+#D-* Examples: IGCM_sys_Rsync_out out_RET_rsync
+#D-  Error values and explanations can depend on your system version.
+function IGCM_sys_Rsync_out {
+  IGCM_debug_PushStack "IGCM_sys_Rsync_out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_UnTar :" $@
+  fi
+
+  typeset status
+  status=$1
+
+  if [ ! $status ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_Rsync_out need an argument"
+    IGCM_debug_PopStack "IGCM_sys_Rsync_out"
+    return
+  fi
+
+  case $status in
+  0)  ;;
+  1)  IGCM_debug_Print 1 "rsync error RERR_SYNTAX : Syntax or usage error";;
+  2)  IGCM_debug_Print 1 "rsync error RERR_PROTOCOL : Protocol incompatibility";;
+  3)  IGCM_debug_Print 1 "rsync error RERR_FILESELECT : Errors selecting input/output files, dirs";;
+  4)  IGCM_debug_Print 1 "rsync error RERR_UNSUPPORTED : Requested action not supported."
+      IGCM_debug_Print 1 "An attempt was made to manipulate 64-bit files on a platform that cannot support them"
+      IGCM_debug_Print 1 "Or an option was specified that is supported by the client and not by the server.";;
+  5)  IGCM_debug_Print 1 "rsync error  : Error starting client-server protocol";;
+  10) IGCM_debug_Print 1 "rsync error RERR_SOCKETIO : Error in socket I/O";;
+  11) IGCM_debug_Print 1 "rsync error RERR_FILEIO: Error in file I/O";;
+  12) IGCM_debug_Print 1 "rsync error RERR_STREAMIO : Error in rsync protocol data stream";;
+  13) IGCM_debug_Print 1 "rsync error RERR_MESSAGEIO : Errors with program diagnostics";;
+  14) IGCM_debug_Print 1 "rsync error RERR_IPC : Error in IPC code";;
+  20) IGCM_debug_Print 1 "rsync error RERR_SIGNAL : Received SIGUSR1 or SIGINT";;
+  21) IGCM_debug_Print 1 "rsync error RERR_WAITCHILD : Some error returned by waitpid()";;
+  22) IGCM_debug_Print 1 "rsync error RERR_MALLOC : Error allocating core memory buffers";;
+  23) IGCM_debug_Print 1 "rsync error : Partial transfer due to error";;
+  24) IGCM_debug_Print 1 "rsync error : Partial transfer due to vanished source files";;
+  30) IGCM_debug_Print 1 "rsync error : Timeout in data send/receive";;
+  *)  IGCM_debug_Print 1 "rsync error : return code of rsync unknown :" $status;;
+  esac
+
+  IGCM_debug_PopStack "IGCM_sys_Rsync_out"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Miror_libIGCM
+#D-* Purpose: Mirror libIGCM PATH and lib to frontend
+#D-* Examples:
+#D-
+function IGCM_sys_Mirror_libIGCM {
+  IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Mirror_libIGCM"
+  fi
+
+  typeset status
+
+  mkdir -p ${HOME}/MIRROR/${PATHlibIGCM}
+
+  echo ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on frontend."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Cp
+#D-* Purpose: generic cp
+#D-* Examples:
+#D-
+function IGCM_sys_Cp {
+  IGCM_debug_PushStack "IGCM_sys_Cp" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Cp :" $@
+  fi
+
+  typeset status
+
+  echo cp $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \cp $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_Cp : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_Cp"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Cp"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Cp_ensembleXIOS
+#D-* Purpose: generic cp
+#D-* Examples:
+#D-
+function IGCM_sys_Cp_ensembleXIOS {
+  IGCM_debug_PushStack "IGCM_sys_Cp_ensembleXIOS" $1 $2
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Cp_ensembleXIOS :" $1 $2
+  fi
+  typeset status
+  [ ! -d ENSEMBLE_TEMPLATE ] && mkdir ENSEMBLE_TEMPLATE
+  cd ENSEMBLE_TEMPLATE
+  echo cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \cp $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_Cp_ensembleXIOS : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_Cp_ensembleXIOS"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  cd ..
+  
+  if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+   for (( pool_member_rank=0 ; pool_member_rank < $(($config_Ensemble_PoolSize+1)) ; pool_member_rank++ ))
+   do
+       whole_ensemble_rank=$(($config_Ensemble_PoolSize*$3+$pool_member_rank))
+       if (( pool_member_rank < $config_Ensemble_PoolSize ))
+        then
+        [ ! -d MEMBER_$whole_ensemble_rank ] && mkdir MEMBER_$whole_ensemble_rank
+        cd MEMBER_$whole_ensemble_rank
+        ln -f -s ../ENSEMBLE_TEMPLATE/* . 
+        cd ..
+       else
+       [ ! -d XIOS ] && mkdir XIOS
+        cd XIOS
+        ln -f -s ../ENSEMBLE_TEMPLATE/* .
+        cd ..
+       fi
+    done
+   fi
+
+  IGCM_debug_PopStack "IGCM_sys_Cp_ensembleXIOS"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Cp_restart_ensembleXIOS
+#D-* Purpose: generic cp
+#D-* Examples:
+#D-
+function IGCM_sys_Cp_restart_ensembleXIOS {
+  IGCM_debug_PushStack "IGCM_sys_Cp_restart_ensembleXIOS" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Cp_restart_ensembleXIOS :" $@
+  fi
+
+  typeset status
+
+  path_restart_tmp=`dirname $1`
+  base_restart_tmp=`basename $1`
+
+  if [ ${config_Ensemble_EnsembleXIOS} = TRUE ] ; then
+   for (( pool_member_rank=$3 ; pool_member_rank < $(($config_Ensemble_PoolSize+$3+1)) ; pool_member_rank++ ))
+   do
+       if (( pool_member_rank < $config_Ensemble_PoolSize+$3 ))
+        then
+        [ ! -d MEMBER_$pool_member_rank ] && mkdir MEMBER_$pool_member_rank
+        cd MEMBER_$pool_member_rank
+        cp $path_restart_tmp/MEMBER_$pool_member_rank/$base_restart_tmp $2
+        cd ..
+       else
+       [ ! -d XIOS ] && mkdir XIOS
+        cd XIOS
+        cp $path_restart_tmp/MEMBER_$pool_member_rank/$base_restart_tmp $2
+        cd ..
+       fi
+    done
+   fi
+
+  IGCM_debug_PopStack "IGCM_sys_Cp_restart_ensembleXIOS"
+}
+
+
+
+
+#D-#==================================================
+#D-function IGCM_sys_Rm
+#D-* Purpose: generic rm
+#D-* Examples:
+#D-
+function IGCM_sys_Rm {
+  IGCM_debug_PushStack "IGCM_sys_Rm" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Rm :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_Rm : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_Rm"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Rm"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Mv
+#D-* Purpose: generic move
+#D-* Examples:
+#D-
+function IGCM_sys_Mv {
+  IGCM_debug_PushStack "IGCM_sys_Mv" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Mv :" $@
+  fi
+
+  if [ $DRYRUN = 0 ]; then
+
+    typeset status
+
+    echo mv $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    \mv $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Mv : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Mv"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Mv"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Master
+#D-* Purpose: Copy a complete directory from MASTER filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Master {
+  IGCM_debug_PushStack "IGCM_sys_Get_Master" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Master :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if ( [ ! -d ${1} ] && [ ! -f ${1} ] ) ; then
+      echo "WARNING : IGCM_sys_Get_Master ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Get_Master"
+      return
+    fi
+
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -urL $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ]; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Master : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Master : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Get_Master : error."
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Master"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Master"
+}
+
+#====================================================
+#- Call IGCM_sys_Mirror_libIGCM now !
+if ( $MirrorlibIGCM ) ; then
+  IGCM_sys_Mirror_libIGCM
+fi
+
+#D-#==================================================
+#D-function IGCM_sys_PutBuffer_Rest
+#D-* Purpose: Put computied restarts on ${SCRATCHDIR}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_PutBuffer_Rest {
+  IGCM_debug_PushStack "IGCM_sys_PutBuffer_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_PutBuffer_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_PutBuffer_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_PutBuffer_Rest : error code ${status}"
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_PutBuffer_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_PrepareTaredRestart
+#D-* Purpose: Prepare tared restart to be access by computing job.
+#D-* Examples:
+#D-
+function IGCM_sys_PrepareTaredRestart {
+  IGCM_debug_PushStack "IGCM_sys_PrepareTaredRestart" $@
+  if [ $DRYRUN = 0 ]; then
+    [ ! -f $( basename $1 ) ] && IGCM_sys_Get $1 .
+  fi
+  IGCM_debug_PopStack "IGCM_sys_PrepareTaredRestart"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_PutBuffer_Out
+#D-* Purpose: Copy a file on the buffer filesystem after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_PutBuffer_Out {
+  IGCM_debug_PushStack "IGCM_sys_PutBuffer_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_PutBuffer_Out :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i exist skip
+  typeset fileDeviceNumberInHex directoryDeviceNumberInHex
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_PutBuffer_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_Mkdir $( dirname $2 )
+    #
+
+    exist=false
+    skip=false
+    if [ -f $2 ] ; then
+      IGCM_debug_Print 1 "$2 already exist"
+      exist=true
+      if [ "X$( diff $1 $2 )" = X ] ; then
+        IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy"
+        status=0
+        skip=true
+      else
+        IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy"
+        skip=false
+      fi
+    fi
+    #
+    if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then
+      IGCM_sys_Chmod u+w $2
+    fi
+
+    if [ X${skip} = Xfalse ] ; then
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        # Identify file system
+        fileDeviceNumberInHex=$( stat -c %d $1 )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_PutBuffer_Out"
+        fi
+        # Identify file system
+        directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_PutBuffer_Out"
+        fi
+
+        if [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] ; then
+          # They are not on the same device. USUAL WAY
+          \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        else
+          # They are on the same device. USUAL WAY
+          \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        fi
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_PutBuffer_Out : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_PutBuffer_Out : sleep ${DELAI} seconds and try again."
+          [ -f ${2} ] && ls -l ${2}
+          [ -f ${2}/${1} ] && ls -l ${2}/${1}
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+    fi
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_PutBuffer_Out : error."
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_PutBuffer_Out"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        if [ X${3} = X ] ; then
+          [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+          [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+        fi
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetBuffer
+#D-* Purpose: Get a file from ${SCRATCHDIR}
+#D-* Examples: IGCM_sys_GetBuffer myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_GetBuffer /l Array_contain_myfiles /destpath/
+function IGCM_sys_GetBuffer {
+  IGCM_debug_PushStack "IGCM_sys_GetBuffer" $@
+
+  typeset DEST buf_liste target file_work
+  typeset NB_ESSAI DELAI status i
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetBuffer :" $@
+  fi
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A buf_liste \${${2}}
+    else
+      eval set +A buf_liste ${1}
+    fi
+    eval DEST=\${${#}}
+
+    #USUAL WAY
+    if [ X${1} = X'/l' ] ; then
+      for target in ${buf_liste[*]} ; do
+        local_file=$( basename ${target} )
+        i=0
+        while [ $i -lt $NB_ESSAI ] ; do
+          \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+          if [ ${status} -gt 0 ]; then
+            IGCM_debug_Print 2 "IGCM_sys_GetBuffer : cp failed error code ${status} ${i}/${NB_ESSAI}"
+            IGCM_debug_Print 2 "IGCM_sys_GetBuffer : sleep ${DELAI} seconds and try again."
+            sleep $DELAI
+          else
+            break
+          fi
+          (( i = i + 1 ))
+        done
+        if [ ${status} -gt 0 ] ; then
+          echo "IGCM_sys_Get : error"
+          cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+          \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+          IGCM_debug_Exit "IGCM_sys_GetBuffer"
+        else
+          \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        fi
+      done
+    else
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        \cp ${buf_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+        status=$?
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_GetBuffer : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_GetBuffer : sleep ${DELAI} seconds and try again."
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+      if [ ${status} -gt 0 ] ; then
+        echo "IGCM_sys_Get : error"
+        cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        IGCM_debug_Exit "IGCM_sys_GetBuffer"
+      else
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      fi
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_GetBuffer"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_FichWork
+#D-* Purpose: donne la date filesys d'un fichier sur le filesystem WORK
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_FichWork {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_FichWork" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_FichWork :" $@
+  fi
+
+  if [ $# -ge 3 ] ; then
+    mode=$3
+    TimeStyle=$4
+  else
+    mode="default"
+    TimeStyle="%Y%m%d%H%M%S"
+  fi
+
+  typeset dateF
+  set +A dateF -- $( ls -l --full-time --time-style=+"${TimeStyle}" ${1} )
+
+  case $mode in
+    "default")
+      eval ${2}=${dateF[5]}
+      ;;
+    "SplitFields")
+      eval ${2}="${dateF[5]}\ ${dateF[6]}"
+      ;;
+  esac
+
+  # donne la date filesys d'un fichier sur la machine work
+  IGCM_debug_PopStack "IGCM_sys_GetDate_FichWork"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild
+#D-* Purpose: rebuild parallel files
+#D-* Examples:
+#D-
+function IGCM_sys_rebuild {
+  IGCM_debug_PushStack "IGCM_sys_rebuild" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i firstArg
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    rebuild -f -o $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_rebuild : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_rebuild : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      firstArg=${1}
+      \rm ${firstArg}
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_rebuild : rebuild error code is ${status}"
+    IGCM_debug_Exit "rebuild"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_station
+#D-* Purpose: rebuild parallel files describing station
+#D-* Examples:
+#D-
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+
+  # Station re-ordering is too expansive to be run within libIGCM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    # detect time counter and do the job only if present
+    var_unlim=$(ncdump -h ${file_in} | grep UNLIMITED | cut -d ' ' -f 1 | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+    if [ X${var_unlim} = Xtime_counter ] ; then
+      prefix_invert=$( basename ${file_in} .nc )
+      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+      list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+    fi
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
+}
+
+##############################################################
+# NCO OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_ncap2
+#D-* Purpose: encapsulate ncap2 call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncap2 {
+  IGCM_debug_PushStack "IGCM_sys_ncap2" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncap2 :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 -C --buffer_size 838860800 "$@" > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncap2 : ncap2 error"
+    IGCM_debug_Exit "ncap2"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncap2"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncatted
+#D-* Purpose: encapsulate ncatted call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncatted {
+  IGCM_debug_PushStack "IGCM_sys_ncatted" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncatted :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncatted : ncatted error"
+    IGCM_debug_Exit "ncatted"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncatted"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncbo
+#D-* Purpose: encapsulate ncbo call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncbo {
+  IGCM_debug_PushStack "IGCM_sys_ncbo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncbo :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncbo : ncbo error"
+    IGCM_debug_Exit "ncbo"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncbo"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncdif
+#D-* Purpose: encapsulate ncdiff call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncdiff {
+  IGCM_debug_PushStack "IGCM_sys_ncdiff" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncdiff :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncdiff : ncdiff error"
+    IGCM_debug_Exit "ncdiff"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncdiff"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncea
+#D-* Purpose: encapsulate ncea call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncea {
+  IGCM_debug_PushStack "IGCM_sys_ncea" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncea :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncea : ncea error"
+    IGCM_debug_Exit "ncea"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncea"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncecat
+#D-* Purpose: encapsulate ncecat call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncecat {
+  IGCM_debug_PushStack "IGCM_sys_ncecat" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncecat :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncecat : ncecat error"
+    IGCM_debug_Exit "ncecat"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncecat"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncflint
+#D-* Purpose: encapsulate ncflint call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncflint {
+  IGCM_debug_PushStack "IGCM_sys_ncflint" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncflint :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncflint : ncflint error"
+    IGCM_debug_Exit "ncflint"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncflint"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncks
+#D-* Purpose: encapsulate ncks call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncks {
+  IGCM_debug_PushStack "IGCM_sys_ncks" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncks :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncks : ncks error"
+    IGCM_debug_Exit "ncks"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncks"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncpdq
+#D-* Purpose: encapsulate ncpdq call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncpdq {
+  IGCM_debug_PushStack "IGCM_sys_ncpdq" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncpdq :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncpdq : ncpdq error"
+    IGCM_debug_Exit "ncpdq"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncpdq"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncra
+#D-* Purpose: encapsulate ncra call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncra {
+  IGCM_debug_PushStack "IGCM_sys_ncra" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncra :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncra : ncra error"
+    IGCM_debug_Exit "ncra"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncra"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncrcat
+#D-* Purpose: encapsulate ncrcat call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncrcat {
+  IGCM_debug_PushStack "IGCM_sys_ncrcat" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncrcat :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i lastArg
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    elif ( [ ! "X$( grep "WARNING Intra-file non-monotonicity" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] && [ X${config_Post_IgnoreNonMonotonic} = XFALSE ] ) ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : WARNING Intra-file non-monotonicity"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      # remove files having corrupted time axis
+      eval lastArg=\${$#}
+      IGCM_debug_Print 2 "Remove files having corrupted time axis"
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : Delete ${lastArg}"
+      \rm ${lastArg}
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  # Special case for spinup with cyclic time axis: change attribute calendar to none
+  if [ X${config_Post_IgnoreNonMonotonic} = XTRUE ] ; then
+      eval lastArg=\${$#}
+      echo "IGCM_sys_ncrcat : change attribute calendar to none in file:" ${lastArg}
+      IGCM_sys_ncatted -a calendar,time_counter,m,c,none ${lastArg}
+  fi
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncrcat : ncrcat error"
+    #IGCM_debug_Exit "ncrcat"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncrcat"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncrename
+#D-* Purpose: encapsulate ncrename call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncrename {
+  IGCM_debug_PushStack "IGCM_sys_ncrename" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncrename :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncrename : ncrename error"
+    IGCM_debug_Exit "ncrename"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncrename"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ncwa
+#D-* Purpose: encapsulate ncwa call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_ncwa {
+  IGCM_debug_PushStack "IGCM_sys_ncwa" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ncwa :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+      sleep $DELAI
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_ncwa : ncwa error"
+    IGCM_debug_Exit "ncwa"
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_ncwa"
+}
+
+##############################################################
+# CDO OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_cdo
+#D-* Purpose: encapsulate cdo call so as to manage error code and retry
+#D-* Examples:
+#D-
+function IGCM_sys_cdo {
+  IGCM_debug_PushStack "IGCM_sys_cdo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_cdo :" $@
+  fi
+
+  typeset status
+
+  \cdo $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_cdo"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_cdo"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_cdo"
+}
+
+# 
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_ada.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_ada.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_ada.ksh	(revision 5899)
@@ -0,0 +1,1645 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sébastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1485                                     $ Revision of last commit
+# $Author:: jgipsl                                     $ Author of last commit
+# $Date:: 2019-06-17 17:41:07 +0200 (Mon, 17 Jun 2019) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for Ada
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host and user names
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=ada
+# project name
+typeset PROJECT=$(echo ${LOADL_STEP_GROUP:=NONE})
+# jobWarningDelay in seconds
+typeset jobWarningDelay=$( TZ=utc date -d '1970-01-01 '${wall_clock_limit} +%s )
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=llsubmit}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=ergon
+typeset -r REMOTE_RSYNC=/usr/bin/rsync
+
+#====================================================
+# Access to module command
+#====================================================
+source /smplocal/pub/Modules/default/init/ksh
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+    IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+else
+    if ( [ "X${LOADL_STEP_TYPE}" = "XPARALLEL" ] || [ "X${LOADL_STEP_TYPE}" = "XSERIAL" ] ) ; then
+	. /smphome/rech/psl/rpsl035/.atlas_env_ada_intel_2013_0_bash > /dev/null 2>&1
+    else
+	module unload intel > /dev/null 2>&1
+	module load intel/2016.2 > /dev/null 2>&1
+	. /smphome/rech/psl/rpsl035/.atlas_env_ada_bash > /dev/null 2>&1
+	export PCMDI_MP=/workgpfs/rech/psl/rpsl035/PCMDI-MP
+	export UVCDAT_ANONYMOUS_LOG=no
+    fi
+fi
+
+# Load python
+module load python/2.7.10 > /dev/null 2>&1
+
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+export PATH=${PATH}:/smphome/rech/psl/rpsl035/AddNoise/src_X64_ADA/bin
+export PATH=${PATH}:/smphome/rech/psl/rpsl035/AddPerturbation/src_X64_ADA/bin
+export PATH=${PATH}:/smphome/rech/psl/rpsl035/bin/
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${LOADL_STEP_INITDIR}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/workgpfs/rech/psl/rpsl035/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${TMPDIR}}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=${RUN_DIR_PATH:-/tmp}
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+if ( [ "X${LOADL_STEP_TYPE}" = "XPARALLEL" ] || [ "X${LOADL_STEP_TYPE}" = "XSERIAL" ] ) ; then
+  typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time poe"}
+else
+  typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time mpirun"}
+fi
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to true on ada
+PackDefault=true
+
+#====================================================
+#- Number of cores per node
+core_per_node=32
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on SCRATCHDIR hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST everything is stored on WORKDIR
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=$(echo ${HOME} | sed -e "s,/.*home/,/arch/home/,")
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${WORKDIR}
+  fi
+
+  if [ X${config_UserChoices_SpaceName} = XTEST ]; then
+    #====================================================
+    #- R_OUT
+    R_OUT=${WORKDIR}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${WORKDIR}/IGCM_OUT
+
+    IGCM_debug_Print 1 "SpaceName=TEST ==> OVERRULE destination path directories"
+
+  else
+    #====================================================
+    #- R_OUT
+    R_OUT=${ARCHIVE}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${ARCHIVE}/IGCM_OUT
+  fi
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${WORKDIR}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  DEBUG_sys=false IGCM_sys_IsFileArchived "$@"
+  if [ $? = 0 ] ; then
+    rsh ${STOREHOST} exec /bin/ksh <<-EOF
+    ${@}
+EOF
+    status=$?
+  else
+    /bin/ksh <<-EOF
+    ${@}
+EOF
+    status=$?
+  fi
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : rsh or command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  DEBUG_sys=false IGCM_sys_IsFileArchived "$@"
+  if [ $? = 0 ] ; then
+    rsh ${STOREHOST} exec /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  else
+    /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  DEBUG_sys=false IGCM_sys_IsFileArchived $1
+  if [ $? = 0 ] ; then
+    rsh ${STOREHOST} -n mkdir -p $1
+    status=$?
+  else
+    mkdir -p $1
+    status=$?
+  fi
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : rsh or mkdir failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  #Command depends on targeted file system
+  DEBUG_sys=false IGCM_sys_IsFileArchived $1
+  if [ $? = 0 ] ; then
+    ExistFlag=$( IGCM_sys_RshArchive "[ -d $1 ] && echo 0 || echo 1" )
+  else
+    ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  IsArchivedFlag=$( [ "X$( echo $@ | grep \/arch\/home )" != "X" ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( IGCM_sys_RshArchive "[ -f $1 ] && echo 0 || echo 1" )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  #Command depends on targeted file system
+  DEBUG_sys=false IGCM_sys_IsFileArchived $1
+  if [ $? = 0 ] ; then
+    IGCM_sys_RshArchive "ls ${@} 2>/dev/null | wc -l"
+    status=$?
+  else
+    ls ${@} 2>/dev/null | wc -l
+    status=$?
+  fi
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \mfls -R $@
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset status
+
+  # We have to change output/error file
+  [ ${#@} = 1 ] &&  REP_FOR_JOB=${SUBMIT_DIR}
+  [ ${#@} = 2 ] &&  REP_FOR_JOB=${2}
+  sed -e "s:\# \@ output *= .*:\# \@ output = ${Script_Output}:" \
+    -e "s:\# \@ error *= .*:\# \@ error = ${Script_Output}:"   \
+    $1 > ${REP_FOR_JOB}/JOB_FOR_IGCM
+  cd $REP_FOR_JOB ; /usr/bin/llsubmit JOB_FOR_IGCM > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 ; status=$? ; cd - ;
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ | tail -1 | sed -e s/\"//g )
+    IGCM_sys_Rm ${REP_FOR_JOB}/JOB_FOR_IGCM
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset status
+
+  # We have to change output/error file
+  [ ${#@} = 1 ] &&  REP_FOR_JOB=${POST_DIR}
+  [ ${#@} = 2 ] &&  REP_FOR_JOB=${2}
+
+  sed -e "s:\# \@ output *= .*:\# \@ output = ${Script_Post_Output}.out:" \
+    -e "s:\# \@ error *= .*:\# \@ error = ${Script_Post_Output}.out:"   \
+    ${libIGCM_POST}/$1.job > ${REP_FOR_JOB}/JOB_FOR_IGCM_$$
+
+  cd $REP_FOR_JOB ; /usr/bin/llsubmit JOB_FOR_IGCM_$$ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 ; status=$? ; cd - ;
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ | tail -1 | sed -e s/\"//g )
+    IGCM_sys_Rm ${REP_FOR_JOB}/JOB_FOR_IGCM_$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+    IGCM_debug_Print 1 "Dummy call, let the scheduler do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #Command depends on targeted file system
+    DEBUG_sys=false IGCM_sys_IsFileArchived $2
+    if [ $? = 0 ] ; then
+      \rcp -r $1 ${STOREHOST}:$2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    else
+      \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    fi
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : rcp or cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    # Command depends on targeted filesystem
+    DEBUG_sys=false IGCM_sys_IsFileArchived $1
+    if [ $? = 0 ] ; then
+      # add dmget (to demigrate all offline files) to reduce time of this command :
+      #IGCM_sys_RshArchive "dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget -q -n"
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        \rcp -rp ${STOREHOST}:$1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+        status=$?
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Get_Dir : rcp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+    else
+      \cp -rp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+        cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        IGCM_debug_Exit "IGCM_sys_Get_Dir"
+      else
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      fi
+    fi
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : (r)cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    if [ X${JobType} = XRUN ] ; then
+      IGCM_sys_Chmod 444 ${1}
+    fi
+    #
+    #
+    #Command depends on targeted file system
+    DEBUG_sys=false IGCM_sys_IsFileArchived $2
+    if [ $? = 0 ] ; then
+      mfput $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    else
+      IGCM_sys_MkdirArchive $( dirname $2 )
+      \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    fi
+
+#       #RSYNC WITH NETWORK RSH CALL
+#       IGCM_sys_MkdirArchive $( dirname $2 )
+#       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : mfput or cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset status
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    if [ X${JobType} = XRUN ] ; then
+      if [ X${3} = X ] ; then
+        IGCM_sys_Chmod 444 ${1}
+      fi
+    fi
+    #
+    #
+    #Command depends on targeted file system
+    DEBUG_sys=false IGCM_sys_IsFileArchived $2
+    if [ $? = 0 ] ; then
+      mfput $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    else
+      IGCM_sys_MkdirArchive $( dirname $2 )
+      \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    fi
+
+#       #RSYNC WITH NETWORK RSH CALL
+#       IGCM_sys_MkdirArchive $( dirname $2 )
+#       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : mfput or cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST status dm_liste
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      dm_liste=${1}
+    fi
+    eval DEST=\${${#}}
+
+    # test if the (first) file is present in the old computation :
+    DEBUG_sys=false IGCM_sys_IsFileArchived ${dm_liste[0]}
+    if [ $? = 0 ] ; then
+      IGCM_sys_TestFileArchive ${dm_liste[0]}
+      status=$?
+    else
+      IGCM_sys_TestFileBuffer ${dm_liste[0]}
+      status=$?
+    fi
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Get"
+      return
+    fi
+
+    #Command depends on targeted file system
+    DEBUG_sys=false IGCM_sys_IsFileArchived ${dm_liste[0]}
+    if [ $? = 0 ] ; then
+      mfget ${dm_liste[*]} ${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    else
+      \cp ${dm_liste[*]} ${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+    fi
+
+#       #RSYNC WITH NETWORK RSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} --rsync-path=${REMOTE_RSYNC} -e rsh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get : mfget or cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  IGCM_sys_Cd /tmp
+  # NASTY HACK. We force /tmp here. This function is called only from the front-end and interactively.
+  RUN_DIR_PATH=/tmp IGCM_sys_Get ${1} .
+  eval ${2}=$( cdo showyear $( basename ${1} ) 2> /dev/null | gawk '{ print $NF }' )
+  # Need to erase this file to avoid collision (permission denied getting file) between users on the front-end
+  IGCM_sys_Rm -f $( basename ${1} )
+  IGCM_sys_Cd -
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+    if [ "$#" -eq 1 ]; then
+      rsh ${STOREHOST} exec /bin/ksh <<EOF
+          cd ${R_SAVE}
+          /arch/local/bin/dods_rm DODS/pub/${LOGIN}/${R_DODS}/${1} > /dev/null 2>&1
+EOF
+      status=$?
+    else
+      rsh ${STOREHOST} exec /bin/ksh <<EOF
+          cd ${R_SAVE}
+          /arch/local/bin/dods_rm DODS/pub/${LOGIN}/${R_DODS} > /dev/null 2>&1
+EOF
+      status=$?
+    fi
+  fi
+
+  return ${status}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+    # We take our time on that
+    sleep 10
+    IGCM_sys_TestDirArchive ${R_SAVE}/${1}
+    if [ $? != 0 ] ; then
+      echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+
+    rsh ${STOREHOST} exec /bin/ksh <<EOF
+          cd ${R_SAVE}
+          /arch/local/bin/dods_rm DODS/pub/${LOGIN}/${R_DODS}/${1} > /dev/null 2>&1
+          /bin/chmod -R u+w ${R_SAVE}/${1}
+          /arch/local/bin/dods_cp ${1} DODS/pub/${LOGIN}/${R_DODS} > /dev/null 2>&1
+          /bin/chmod -R +rX ${R_SAVE}/${1}
+          /bin/chmod -R u+w ${R_SAVE}/${1}
+EOF
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Put_Dods : error."
+      IGCM_debug_Exit "IGCM_sys_Put_Dods"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk (dummy function on Ada)
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+    echo "Dummy call, let the system do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise a default file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Default modules will be used"
+      EnvFile=/smphome/rech/psl/rpsl035/.atlas_env_ada_intel_2013_0_bash > /dev/null 2>&1
+  fi
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+  IGCM_debug_Print 1 ${EnvFile}
+  . ${EnvFile}
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for Ada. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+## to be done only one time
+## export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/smplocal/pub/NetCDF/4.1.3/lib:/smplocal/pub/HDF5/1.8.9/seq/lib
+##  echo ${LD_LIBRARY_PATH} | grep -i netcdf >/dev/null 2>&1 || export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/smplocal/pub/NetCDF/4.1.3/lib:/smplocal/pub/HDF5/1.8.9/seq/lib
+  IGCM_debug_Print 1 "set LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
+
+  export MP_STDOUTMODE=combined
+  IGCM_debug_Print 1 "set MP_STDOUTMODE=${MP_STDOUTMODE}"
+
+  ## fix to reduce memory usage. Required since 2014/22/04. On ada IDRIS.
+  #export MP_EUILIBPATH=/smplocal/lib/ibmhpc/pe12012/ppe.pami/gnu/lib64/pami64
+  #IGCM_debug_Print 1 "set MP_EUILIBPATH=${MP_EUILIBPATH}"
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    if [ X${MPIEnvironment} = XIBM ] ; then
+      sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+        ${file} > ${file}.tmp
+    else
+      sed -e "/::openMPthreads::/d"                  \
+        -e "s/@ job_type = parallel/@ job_type = mpich/" \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+        ${file} > ${file}.tmp
+    fi
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP
+    if [ X${MPIEnvironment} = XIBM ] ; then
+      sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"    \
+        ${file} > ${file}.tmp
+    else
+      (( nodeNumber = coreNumber / core_per_node ))
+      [ $(( ${coreNumber} % ${core_per_node} )) -ne 0 ] && (( nodeNumber = nodeNumber + 1 ))
+      sed -e "/::openMPthreads::/d"                  \
+        -e "s/@ job_type = parallel/@ job_type = mpich/" \
+        -e "s/@ total_tasks = ::JobNumProcTot::/@ node = ${nodeNumber} /"    \
+        -e "/@ as_limit = 3.5gb/d"      \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        ${file} > ${file}.tmp
+    fi
+
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    if [ X${MPIEnvironment} = XIBM ] ; then
+      sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        ${file} > ${file}.tmp
+    else
+      sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/@ job_type = parallel/@ job_type = mpich/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        ${file} > ${file}.tmp
+    fi
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    if [ X${MPIEnvironment} = XIBM ] ; then
+      sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+        ${file} > ${file}.tmp
+    else
+      sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "s/@ job_type = parallel/@ job_type = mpich/" \
+        -e "/::openMPthreads::/d"                  \
+        ${file} > ${file}.tmp
+    fi
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/@ job_type = parallel/@ job_type = serial/" \
+        -e "/::JobNumProcTot::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "s/@ job_type = parallel/@ job_type = serial/" \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  # MPMD mode
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # MPI IBM Environment
+    if ( [ "X${LOADL_STEP_TYPE}" = "XPARALLEL" ] || [ "X${LOADL_STEP_TYPE}" = "XSERIAL" ] ) ; then
+      IGCM_debug_Print 1 "You use IBM MPI environment"
+      if [ -f run_file ] ; then
+        IGCM_sys_Rm -f run_file
+      fi
+      touch run_file
+
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+        if [ "X${comp}" = "XCPL" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          if ( ${OK_PARA_MPI} ) ; then
+            (( mpi_count = 1 ))
+            until [ ${mpi_count} -gt ${comp_proc_mpi_loc} ] ; do
+              echo "./${ExeNameOut}" >> run_file
+              (( mpi_count = mpi_count + 1 ))
+            done
+          else
+            echo "./${ExeNameOut} " >> run_file
+          fi
+        fi
+
+      done
+
+      # Then second loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+        if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          if ( ${OK_PARA_OMP} ) ; then
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            1|2|4)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads on IBM MPI Environment"
+              IGCM_debug_Print 1 "Beware : it may you use more CPU than needed."
+              ;;
+            8)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads on IBM MPI Environment"
+              IGCM_debug_Print 1 "Beware : it may you use more CPU than needed."
+              IGCM_debug_Print 1 "Beware : these settings should not be used for IPSLCM coupled model!"
+              ;;
+            16)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "Beware : ${comp_proc_omp_loc} is too much for MPMD mode"
+              IGCM_debug_Print 2 "You will use more CPU than needed : try to use Intel-MPI environment to do such a thing !"
+              IGCM_debug_Verif_Exit
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 1,2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+
+          fi
+
+          if ( ${OK_PARA_MPI} ) ; then
+            (( mpi_count = 1 ))
+            until [ ${mpi_count} -gt ${comp_proc_mpi_loc} ] ; do
+              if ( ${OK_PARA_OMP} ) ; then
+                echo "env OMP_NUM_THREADS=$comp_proc_omp_loc ./${ExeNameOut}" >> run_file
+              else
+                echo "./${ExeNameOut}" >> run_file
+              fi
+              (( mpi_count = mpi_count + 1 ))
+            done
+          else
+            echo "./${ExeNameOut} " >> run_file
+          fi
+        fi
+      done
+      if ( ${OK_PARA_OMP} ) ; then
+        export KMP_STACKSIZE=200m
+      fi
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -pgmmodel mpmd -cmdfile ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+
+    # MPI Intel Environment
+    else
+      IGCM_debug_Print 1 "You use Intel MPI environment"
+
+      # Only MPI (MPMD)
+      if  ( ! ${OK_PARA_OMP} ) ; then
+	init_exec=n
+  
+        # First loop on the components for the coupler ie oasis (only if oasis3)
+        # the coupler ie oasis3 must be the first one
+        for comp in ${config_ListOfComponents[*]} ; do
+
+          eval ExeNameIn=\${config_Executable_${comp}[0]}
+          eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+          # for CPL component only
+          if [ "X${comp}" = "XCPL"  ]  && [ "X${ExeNameOut}" != X\"\" ] ; then
+
+            eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+            eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+            echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+            echo ""  >> script_${ExeNameOut}.ksh
+            echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+            IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+        done
+        # Then second loop on the components
+        for comp in ${config_ListOfComponents[*]} ; do
+
+          eval ExeNameIn=\${config_Executable_${comp}[0]}
+          eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+          # Only if we really have an executable for the component and not the coupler ie oasis:
+          if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+            eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+            eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+            echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+            echo ""  >> script_${ExeNameOut}.ksh
+            echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+            IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+            if [ ${init_exec} = y ] ; then
+              EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            else
+              EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+              init_exec=y
+            fi
+          fi
+        done
+      # MPI-OpenMP (MPMD)
+      else
+
+        # Execution specifications
+        EXECUTION="${EXECUTION} -configfile run_file"
+        export KMP_STACKSIZE=200m
+        if [ -f run_file ] ; then
+          IGCM_sys_Rm -f run_file
+        fi
+        touch run_file
+
+        # Initialisation of variables
+        string_final=""
+        string_final_hexa=""
+        current_core=0
+        executable_nb=1
+
+        #  Hosts treatment
+        for nodes in `echo $LOADL_PROCESSOR_LIST`
+        do
+          host[$i]=$nodes
+          i=$((i+1))
+        done
+
+        # Loop on the components
+        for comp in ${config_ListOfComponents[*]} ; do
+
+          eval ExeNameIn=\${config_Executable_${comp}[0]}
+          eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+          # Not possible if oasis has an executable (i.e old version of oasis3)
+          if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+            IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+            IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+            IGCM_debug_Verif_Exit
+          fi
+
+          # Only if we really have an executable for the component :
+          if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+            eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+            eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            1|2|4|8|16)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 1,2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+
+
+            # Build run_file for Ada Intel-MPI environment : method used to assign cores and nodes for the MPI process by using hexadecimal mask
+            # Example of run_file :
+            #-host host0 -n 4 -env I_MPI_PIN_DOMAIN=[ff,ff00,ff0000,ff000000] ./a.out
+            #-host host1 -n 4 -env I_MPI_PIN_DOMAIN=[ff,ff00,ff0000,ff000000] ./a.out
+            #-host host2 -n 10 -env I_MPI_PIN_DOMAIN=[3,c,30,c0,300,c00,3000,c000,30000,c0000,100000,200000,400000,800000,1000000,2000000,4000000,8000000,10000000,20000000] ./b.out
+            #-host host2 -n 10 ./c.out
+            # Example of final command :
+            # mpirun -configfile run_file
+
+            rank=0
+            # For one specific executable, loop on mpi process
+            for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+              (( index_host = current_core / core_per_node ))
+              host_value=${host[${index_host}]}
+              (( slot =  current_core % core_per_node ))
+              # loop on omp threads for each mpi process (set the appropriate bit to 1 and append it to previous one)
+              for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+                string_final="1"$string_final
+              done
+              # convert binary mask to hexadecimal mask
+              if [ $rank -ne 0 ] ; then
+                string_final_hexa=$string_final_hexa","$( printf '%x\n' "$((2#$string_final))" )
+              else
+                string_final_hexa=$( printf '%x\n' "$((2#$string_final))" )
+              fi
+              # replace bit 1 by bit 0 in order to append next one (next one wil be 1)
+              string_final=$( echo $string_final | sed "s/1/0/g" )
+              # mpi rank = mpi_rank + 1
+              (( rank = rank + 1 ))
+              # current core takes into account the number of omp threads which was previously append
+              (( current_core = current_core + comp_proc_omp_loc ))
+              # We write to the configuration file either we switch to the next node or we switch to the next executable
+              if ( [ $(( current_core / core_per_node )) -ne $index_host ] || [ $nb_proc_mpi -eq $(($comp_proc_mpi_loc-1)) ] ) ; then
+                # I_MPI_PIN_DOMAIN variable must be given once per node
+                if [ $executable_nb -eq 1 ] ; then
+                  echo "-host $host_value -n $rank -env I_MPI_PIN_DOMAIN=[$string_final_hexa] ./$ExeNameOut" >> run_file
+                else
+                  sed -i "/$host_value/s/\]/\,$string_final_hexa\]/g" run_file
+                  echo "-host $host_value -n $rank ./$ExeNameOut" >> run_file
+                fi
+                # +1 for the number of executbale on the same node
+                if [ $nb_proc_mpi -eq $(($comp_proc_mpi_loc-1)) ] ; then
+                  (( executable_nb = executable_nb + 1 ))
+                fi
+                # Some initializations if we switch to the next node
+                if [ $(( current_core / core_per_node )) -ne $index_host ] ; then
+                  string_final=""
+                  string_final_hexa=""
+                  rank=0
+                  executable_nb=1
+                fi
+              fi
+            done
+
+          fi
+        done
+        IGCM_sys_Chmod u+x run_file
+        if ( $DEBUG_sys ) ; then
+          echo "run_file contains : "
+          cat run_file
+        fi
+      fi
+    fi
+
+  # Only one executable (SPMD mode).
+  else
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          export KMP_STACKSIZE=200m
+          #export KMP_LIBRARY=turnaround
+          #echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+          #echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+          #echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+        fi
+        if  ( ${OK_PARA_MPI} ) ; then
+          if ( [ "X${LOADL_STEP_TYPE}" = "XPARALLEL" ] || [ "X${LOADL_STEP_TYPE}" = "XSERIAL" ] ) ; then
+            EXECUTION="${HOST_MPIRUN_COMMAND} ./${ExeNameOut}"
+          else
+            eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+            EXECUTION="${HOST_MPIRUN_COMMAND} -np ${comp_proc_mpi_loc} ./${ExeNameOut}"
+          fi
+        else
+          EXECUTION="/usr/bin/time ./${ExeNameOut}"
+        fi
+      fi
+
+    done
+
+  fi
+
+  IGCM_debug_Print 1 "sys ada : execution command is "
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${WORKDIR} ] || [ X${RUN_DIR_PATH} = X${ARCHIVE} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+  # Limit of quota (in %)
+  limit_quota=90
+
+  # Check of the volume
+  volume_quota=$(quota_u -w 2>/dev/null| grep 'Quota soft' | gawk '{print $5}')
+  if [ ! X${volume_quota} = X ] ; then
+    quota_volume=${volume_quota%%\%}
+#    echo $quota_volume
+    if [ $(echo "${quota_volume} > ${limit_quota}" | bc) -eq 1 ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on workgpfs"
+      IGCM_debug_Print 1 "${quota_volume}% of your quota is used"
+      IGCM_debug_Print 1 "Use the quota_u -w command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  cpt > $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  eval ${1}=$( echo $LOADL_STEP_ID | awk -F. '{print $4}' )
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # Print only the full (-W) JobID (%id) and JobName (%jn)
+  ID=$( llq -u $2 -W -f %id %jn | \
+    gawk -v JobName=$1 '( $NF ~ JobName ) { print $1 }' )
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+
+  # Print only the full (-W) JobName (%jn)
+  NbRun=$( llq -W -f %jn | grep -c "$1" )
+
+  eval ${2}=${NbRun}
+
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ListJobInQueue
+#D-* Purpose: Produce a list of users jobs
+#D-* Examples: IGCM_sys_ListJobInQueue ${User} JobNameList
+#D-
+function IGCM_sys_ListJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_ListJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ListJobInQueue"
+  fi
+
+  # With -W option, column width is as large as necessary
+  set -A JobList $( llq -u $1 -W -f %jn | head -n -2 | tail -n +3 | \
+    gawk '( $1 != /TS/      && \
+                            $1 !~ /PACK/    && \
+                            $1 !~ /REBUILD/ && \
+                            $1 !~ /pack/ )     \
+                          { print $1 }' | sed -e "s/\(.*\)\.[0-9]*/\1/" )
+
+  eval set -A ${2} ${JobList[*]}
+
+  IGCM_debug_PopStack "IGCM_sys_ListJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with general rebuild
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  nemo_generic_restart_file_name_out=${1}
+  nemo_extension_out=${3}
+  shift ; shift ; shift
+
+  IGCM_sys_rebuild -o ${nemo_generic_restart_file_name_out}.${nemo_extension_out} $@
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_ciclad.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_ciclad.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_ciclad.ksh	(revision 5899)
@@ -0,0 +1,1295 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1541                                     $ Revision of last commit
+# $Author:: acosce                                     $ Author of last commit
+# $Date:: 2020-10-21 14:56:29 +0200 (Wed, 21 Oct 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for ciclad
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=${MASTER:=$( hostname )}
+# project name
+typeset PROJECT=NONE
+# jobWarningDelay in seconds
+typeset jobWarningDelay=${PBS_WALLTIME}
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=qsub}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+
+#====================================================
+# Access to module command
+#====================================================
+. /usr/share/Modules/init/ksh
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+    IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+else
+    if [ $CENTER == IPSL-ciclad ] ; then
+        # At ciclad
+        . /home/igcmg/MachineEnvironment/ciclad/atlas_env_ciclad 
+    else
+        # At climserv use the same files stored at ciclad but adapt the path
+	. /ciclad-home/igcmg/MachineEnvironment/climserv/atlas_env_climserv
+    fi
+fi
+
+# Load python
+module load python/2.7-anaconda > /dev/null 2>&1
+
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+# For rebuild
+if [ $CENTER == IPSL-ciclad ] ; then
+    export PATH=${PATH}:/home/igcmg/rebuild/src_X64_CICLAD/modipsl_v2_2_3_netcdf4.2/bin/
+else
+    export PATH=${PATH}:/ciclad-home/igcmg/rebuild/src_X64_CICLAD/modipsl_v2_2_3_netcdf4.2/bin/
+fi
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+if [ X${PBS_O_WORKDIR} != X ] ; then
+  typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${PBS_O_WORKDIR}}
+else
+  typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${PWD}}
+fi
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/projsu/igcmg/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+if [ X${PBS_JOBID} != X ] ; then
+    if [ $CENTER == IPSL-ciclad ] ; then
+	typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/data/${LOGIN}/RUN_DIR/${PBS_JOBID}_${$}}
+    else
+	typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/homedata/${LOGIN}/RUN_DIR/${PBS_JOBID}_${$}}
+    fi
+else
+  typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/tmp/tmp$$}
+fi
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="time mpirun"}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to false on ciclad
+PackDefault=false
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on STORAGE hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST nothing special will hapen
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    if [ $CENTER == IPSL-ciclad ] ; then
+	# At ciclad
+   	ARCHIVE=${ARCHIVE:=/data/${LOGIN}}
+    else
+	# At climserv
+	ARCHIVE=${ARCHIVE:=/homedata/${LOGIN}}
+    fi
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${ARCHIVE}
+  fi
+
+  # ON CICLAD NO SPECIAL CASE WHEN X${config_UserChoices_SpaceName} = XTEST
+
+  #====================================================
+  #- R_OUT
+  R_OUT=${ARCHIVE}/IGCM_OUT
+
+  #====================================================
+  #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+  R_FIG=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${STORAGE}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  # Never archived for this system
+  IsArchivedFlag=1
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset options status
+  options="-o ${SUBMIT_DIR}/${Script_Output}"
+  /usr/bin/qsub ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $1'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset options status
+  options="-o ${POST_DIR}/${Script_Post_Output}.out -v ${listVarEnv}"
+  /usr/bin/qsub ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $1'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_RmRunDir"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset status
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    if [ X${JobType} = XRUN ] ; then
+      if [ X${3} = X ] ; then
+        IGCM_sys_Chmod 444 ${1}
+      fi
+    fi
+    #
+
+    echo ${RSYNC} ${RSYNC_opt} $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    ${RSYNC} ${RSYNC_opt} $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    IGCM_sys_Rsync_out $status
+
+    ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : rsync failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST status dm_liste
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      dm_liste=${1}
+    fi
+    eval DEST=\${${#}}
+
+    # test if the (first) file is present in the old computation :
+    IGCM_sys_TestFileArchive ${dm_liste[0]}
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Get"
+      return
+    fi
+
+    #USUAL WAY
+    \cp ${dm_liste[*]} ${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole. Dummy function here
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk (dummy function on Ciclad)
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+    echo "Dummy call, let the system do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise a default file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Default modules will be used"
+      if [ $CENTER == IPSL-ciclad ] ; then
+          # At ciclad
+	  EnvFile=/home/igcmg/.atlas_env_ciclad_ksh 
+      else
+          # At climserv use the same files stored at ciclad but adapt the path
+	  EnvFile=/ciclad-home/igcmg/.atlas_env_ciclad_ksh
+      fi
+  fi
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+  IGCM_debug_Print 1 ${EnvFile}
+  . ${EnvFile}
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for ciclad/climserv. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  # MPMD mode
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+
+      if [ -f run_file ] ; then
+        IGCM_sys_Rm -f run_file
+      fi
+      touch run_file
+
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+        if [ "X${comp}" = "XCPL" ]  && [ "X${ExeNameOut}" != X\"\" ] ; then
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "-np ${comp_proc_mpi_loc} ./${ExeNameOut} " >> run_file
+        fi
+      done
+
+      # Then second loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+        if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "-np ${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+        fi
+      done
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} --app ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+ 
+    # MPI-OpenMP (MPMD)
+    else
+
+      #  Hosts treatment
+      ${HOST_MPIRUN_COMMAND} hostname | sort | uniq > hosts.tmp
+
+      i=0
+      rm -f hosts
+      IGCM_debug_Print 1 "sys Ciclad, Hosts available :"
+      for nodes in `cat hosts.tmp` ; do
+        host[$i]=$nodes
+        echo "${host[$i]} slots=1 max_slots=1" >> hosts
+        IGCM_debug_Print 1 ${host[$i]}
+        i=$((i+1))
+      done
+      rm -f hosts.tmp
+
+      listnodes=${host[*]}
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -hostfile hosts"
+
+      # Initialisation
+      rank=0
+      current_core=0
+      core_per_node=8
+      init_exec=n
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            #echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            #echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            #echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "export OMP_STACKSIZE=200M" >> script_${ExeNameOut}.ksh 
+            echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+          fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+	  echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+	  echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+	  echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          if [ ${init_exec} = y ] ; then
+            EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+          else
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export OMP_STACKSIZE=200M
+          #export OMP_NUM_THREADS=4
+          #./lmdz.x
+
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+            (( index_host = current_core / core_per_node ))
+            host_value=${host[${index_host}]}
+            (( slot =  current_core % core_per_node ))
+            virg=","
+            string_final=""
+            for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+              string=$index$virg
+              string_final=$string_final$string
+            done
+            string_final=$( echo $string_final | sed "s/.$//" )
+            echo "rank $rank=$host_value slot=$string_final" >> rankfile
+            (( rank = rank + 1 ))
+            (( current_core = current_core + comp_proc_omp_loc ))
+          done
+        fi
+      done
+    fi
+
+  # Only one executable (SPMD mode).
+  else
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "export OMP_STACKSIZE=200M" >> script_${ExeNameOut}.ksh
+          echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+        if  ( ${OK_PARA_MPI} ) ; then
+          # Default : mpirun used if nb_proc gt 1
+          # pour sortie out/err par process
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${OMPI_COMM_WORLD_RANK} 2>out_${ExeNameOut}.err.\${OMPI_COMM_WORLD_RANK}"  >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="${HOST_MPIRUN_COMMAND} ./script_${ExeNameOut}.ksh"
+        else
+          # Default : mpirun is NOT used if nb_proc eq 1
+          # pour sortie out/err par process
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="time ./script_${ExeNameOut}.ksh"
+        fi
+
+        IGCM_debug_Print 1 "sys Ciclad : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi
+
+  IGCM_debug_Print 1 "sys Ciclad : execution command is"
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${ARCHIVE} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota. Dummy call here
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  # TO BE IMPLEMENTED
+
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  touch $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  eval ${1}=$( echo ${PBS_JOBID} | awk -F. '{print $1}' )
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  ID="$( qstat -u $2 | grep -w $1 | gawk '-F ' '{print $10}' )"
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with general rebuild
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  nemo_generic_restart_file_name_out=${1}
+  nemo_extension_out=${3}
+  shift ; shift ; shift
+
+  IGCM_sys_rebuild -o ${nemo_generic_restart_file_name_out}.${nemo_extension_out} $@
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh	(revision 5899)
@@ -0,0 +1,1985 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip, Arnaud Caubel
+# Contact: Arnaud.Caubel__at__lsce.ipsl.fr
+# $Revision:: 1466                                     $ Revision of last commit
+# $Author:: aclsce                                     $ Author of last commit
+# $Date:: 2018-07-13 09:38:15 +0200 (Fri, 13 Jul 2018) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for Curie
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=curie
+# add default project on curie
+typeset PROJECT=$(echo ${BRIDGE_MSUB_PROJECT:=gen0826} | cut -d@ -f1 )
+# jobWarningDelay in seconds
+typeset jobWarningDelay=${BRIDGE_MSUB_MAXTIME}
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=ccc_msub}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+typeset -r REMOTE_RSYNC=/usr/bin/rsync
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+  IGCM_debug_Print 1 "Module will be loaded once we know the compiler version"
+else
+  module purge > /dev/null 2>&1
+  ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel17.0.2_curie   > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/curie/env_intel17.0.2_curie   > /dev/null 2>&1
+  ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1
+  ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_atlas_curie         > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/curie/env_atlas_curie         > /dev/null 2>&1
+  export PCMDI_MP=/ccc/work/cont003/igcmg/igcmg/PCMDI-MP
+  export UVCDAT_ANONYMOUS_LOG=FALSE
+fi
+
+# Use CMIP6 storage space when using CMIP6 cpu ressources
+[[ X"$( echo ${PROJECT} | grep cmip6 )" != "X" && ! $(module list --terse 2>&1 | grep dfldatadir/gencmip6) ]] && module switch dfldatadir dfldatadir/gencmip6
+
+# FYI
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+# for rebuild, AddNoise and AddPertu3DOCE
+export PATH=${PATH}:$(ccc_home -u igcmg)/Tools/curie/bin
+##export PATH=${PATH}:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin
+
+#====================================================
+# Specific for ocean additionnal diagnostic
+export FER_GO="$FER_GO /home/cont003/p86denv/IGCM_POST_UTIL/JNL /home/cont003/p86denv/GRAF /home/cont003/p86denv/GRAF/GO"
+export FER_PALETTE="$FER_PALETTE /home/cont003/p86denv/GRAF/PALET"
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+# ============ CESIUM START ============ #
+
+#====================================================
+#- Mirror libIGCM from titane to cesium if needed
+#ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' )
+#if [ ! ${ROOTSYS} = "home" ] ; then
+#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true}
+#else
+#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+#fi
+
+#====================================================
+#- libIGCM_POST
+#if ( ${MirrorlibIGCM} ) ; then
+#  PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" )
+#  typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM
+#else
+#  typeset -r libIGCM_POST=${libIGCM}
+#fi
+
+# ============ CESIUM  END  ============ #
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${BRIDGE_MSUB_PWD}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/ccc/work/cont003/igcmg/igcmg/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${SCRATCHDIR}/RUN_DIR/${BRIDGE_MSUB_JOBID}_${$}}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time ccc_mprun -E-K1 "}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to true on curie
+PackDefault=true
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#====================================================
+#- Number of computing cores per node 
+#-
+NB_CORE_PER_NODE=16
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on SCRATCHDIR hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST everything is stored on SCRATCHDIR
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${CCCSTOREDIR}
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${CCCWORKDIR}
+  fi
+
+  if [ X${config_UserChoices_SpaceName} = XTEST ]; then
+    #====================================================
+    #- R_OUT
+    R_OUT=${SCRATCHDIR}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${SCRATCHDIR}/IGCM_OUT
+
+    IGCM_debug_Print 1 "SpaceName=TEST ==> OVERRULE destination path directories"
+
+  else
+    #====================================================
+    #- R_OUT
+    R_OUT=${ARCHIVE}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${STORAGE}/IGCM_OUT
+  fi
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${SCRATCHDIR}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  IsArchivedFlag=$( [ X$( echo $@ | grep ^\/ccc\/store ) != X ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset options status
+  options="-o ${SUBMIT_DIR}/${Script_Output} -e ${SUBMIT_DIR}/${Script_Output}"
+
+  /usr/bin/ccc_msub ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset options status
+
+  # EASIER TO DO THIS INSTEAD OF DUPLICATING libIGCM_sys_curie.ksh
+  case $( hostname -s ) in
+  curie*)
+    options="-Q normal -A ${PROJECT} -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out";;
+  airain*)
+    options="-q ivybridge -A dsm -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out"
+  esac
+
+  /usr/bin/ccc_msub ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_RmRunDir"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    # add 'ccc_hsm get' (to demigrate all offline files) to reduce time of this command :
+    ccc_hsm get -r $1
+
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i exist skip
+  typeset fileDeviceNumberInHex directoryDeviceNumberInHex
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    exist=false
+    skip=false
+    if [ -f $2 ] ; then
+      IGCM_debug_Print 1 "$2 already exist"
+      ccc_hsm get $2
+      exist=true
+      if [ "X$( diff $1 $2 )" = X ] ; then
+        IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy"
+        skip=true
+      else
+        IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy"
+        skip=false
+      fi
+    fi
+    #
+    if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then
+      IGCM_sys_Chmod u+w $2
+    fi
+
+    if [ X${skip} = Xfalse ] ; then
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        # Identify file system
+        fileDeviceNumberInHex=$( stat -c %d $1 )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+        # Identify file system
+        directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+
+        if ( [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] || [ X$3 = XNOMOVE ] ) ; then
+          # They are not on the same device. USUAL WAY
+          \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        else
+          # They are on the same device. NOT SO USUAL WAY
+          \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        fi
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : sleep ${DELAI} seconds and try again."
+          [ -f ${1} ] && ls -l ${1}
+          [ -f ${2} ] && ls -l ${2}
+          [ -f ${2}/${1} ] && ls -l ${2}/${1}
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+    fi
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        if [ X${3} = X ] ; then
+          [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+          [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+        fi
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST dm_liste target file_work
+  typeset NB_ESSAI DELAI status i
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      eval set +A dm_liste ${1}
+    fi
+    eval DEST=\${${#}}
+    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "WARNING IGCM_sys_Get : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      echo "WARNING IGCM_sys_Get : will stop later if the cp fails."
+    fi
+
+    #if [ ${status} -gt 0 ] ; then
+    #  if [ ! "X$( grep "Lost dmusrcmd connection" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] ; then
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : "
+    #    sleep 30
+    #    echo "We try another time"
+    ##    dmget ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    status=$?
+    #    if [ ${status} -gt 0 ] ; then
+    #      echo "ERROR IGCM_sys_Get : again demigration error :"
+    #      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #      IGCM_debug_Exit "IGCM_sys_Get"
+    #    fi
+    #  else
+    #    echo "ERROR IGCM_sys_Get : demigration error :"
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    IGCM_debug_Exit "IGCM_sys_Get"
+    #  fi
+    #fi
+
+    #   #RSYNC WITH NETWORK SSH CALL
+    #   echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   #RSYNC WITH NFS USE
+    #   echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   status=$?
+    #   IGCM_sys_Rsync_out $status
+
+    #   ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #   (( status=status+$? ))
+
+    #USUAL WAY
+    if [ X${1} = X'/l' ] ; then
+      for target in ${dm_liste[*]} ; do
+        local_file=$( basename ${target} )
+        # test if the target file is present before the loop
+        IGCM_sys_TestFileArchive ${target}
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          echo "IGCM_sys_Get, ERROR : regular file ${target} DOES NOT EXIST ."
+          IGCM_debug_Exit "IGCM_sys_Get"
+        else
+          i=0
+          while [ $i -lt $NB_ESSAI ] ; do
+            #if [ X${DoLink} = Xtrue ] ; then
+            #  \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #  else
+            #  \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #fi
+            \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            status=$?
+            if [ ${status} -gt 0 ]; then
+              IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+              IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+              sleep $DELAI
+            else
+              break
+            fi
+            (( i = i + 1 ))
+          done
+          if [ ${status} -gt 0 ] ; then
+            echo "IGCM_sys_Get : error"
+            cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            IGCM_debug_Exit "IGCM_sys_Get"
+          else
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+          fi
+        fi
+      done
+    else
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        \cp ${dm_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+        status=$?
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+      if [ ${status} -gt 0 ] ; then
+        echo "IGCM_sys_Get : error"
+        cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        IGCM_debug_Exit "IGCM_sys_Get"
+      else
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      fi
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+    if [ "$#" -eq 1 ]; then
+      $(ccc_home -u igcmg)/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1
+      ## /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1
+      status=$?
+    else
+      $(ccc_home -u igcmg)/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1
+      ## /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1
+      status=$?
+    fi
+
+#    if [ ${status} -gt 0 ] ; then
+#      echo "IGCM_sys_Dods_Rm : error."
+#      cat out_dods_rm
+#      IGCM_debug_Exit "IGCM_sys_Dods_Rm"
+#    else
+#      rm out_dods_rm
+#    fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d ${R_SAVE}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+     $(ccc_home -u igcmg)/Tools/curie/bin/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1
+    ## /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1
+    status=$?
+
+#       if [ ${status} -gt 0 ] ; then
+#           echo "IGCM_sys_Dods_Cp : error."
+#           cat out_dods_cp
+#           IGCM_debug_Exit "IGCM_sys_Dods_Cp"
+#       else
+#           rm out_dods_cp
+#       fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+
+    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+    #
+    if [ -d ${R_SAVE}/${1} ] ; then
+      cd ${R_SAVE}
+    elif [ -d ${R_FIGR}/${1} ] ; then
+      cd ${R_FIGR}
+    fi
+
+    IGCM_sys_Dods_Rm ${1}
+    IGCM_sys_Dods_Cp ${1}
+    status=0
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Put_Dods : error."
+      IGCM_debug_Exit "IGCM_sys_Put_Dods"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+  fi
+
+  /bin/sync
+
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  module purge > /dev/null 2>&1 
+  if [ X${compilerVersion} = XV17 ] ; then
+      . $(ccc_home -u igcmg)/MachineEnvironment/curie/env_intel17.0.2_curie   > /dev/null 2>&1
+      ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel17.0.2_curie   > /dev/null 2>&1
+  elif [ X${compilerVersion} = XV14 ] ; then
+      . $(ccc_home -u igcmg)/MachineEnvironment/curie/env_intel14.0.3_curie   > /dev/null 2>&1
+      ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel14.0.3_curie   > /dev/null 2>&1
+  else
+    IGCM_debug_Exit "This compiler version is not yet supported : ${compilerVersion}"
+  fi
+  . $(ccc_home -u igcmg)/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1
+  ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1
+
+  # Keep track of this
+  [ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+  [ ! X${TaskType} = Xchecking ] && module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI : mpirun
+    if [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ; then
+	sed -e "/::openMPthreads::/d"                  \
+            -e "s/::JobNumProcTot::/${coreNumber}/"    \
+	     ${file} > ${file}.tmp
+    else
+	# MPMD + MPI : ccc_mprun
+	sed -e "/::openMPthreads::/d"                  \
+            -e "s/::JobNumProcTot::/${coreNumber}/"    \
+            -e "/#MSUB -x/d"                           \
+            -e "/--cpu_bind=none/d"                    \
+	    ${file} > ${file}.tmp
+    fi
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP : mpirun/ccc_mprun/error
+    if ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then
+      sed -e "/::openMPthreads::/d"                  \
+          -e "s/::JobNumProcTot::/${coreNumber}/"    \
+        ${file} > ${file}.tmp
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then
+      sed -e "/::openMPthreads::/d"                  \
+          -e "s/::JobNumProcTot::/${coreNumber}/"    \
+          -e "/--cpu_bind=none/d"                    \
+        ${file} > ${file}.tmp
+    else
+     IGCM_debug_Print 1 "You have to set ExecutionModeOnCurie=ccc_mprun or mpirun in config.card"
+     IGCM_debug_Exit "IGCM_sys_updateHeaders"
+    fi
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # MPMD mode
+    # 1 MPI only
+    # 2 MPI/OpenMP mpirun method
+    # 3 MPI/OpenMP ccc_mprun method
+
+    if [ -f run_file ] ; then
+      IGCM_sys_Rm -f run_file
+    fi
+    touch run_file
+
+    # case 1 : Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+
+	if ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then 
+      # use of ccc_mprun (default mode) 
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+	    for comp in ${config_ListOfComponents[*]} ; do
+
+		eval ExeNameIn=\${config_Executable_${comp}[0]}
+		eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+		if [ "X${comp}" = "XCPL" ] && [ "X${ExeNameOut}" != X\"\" ] ; then
+
+		    eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+		    eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+		    echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+		fi
+	    done
+
+      # Then second loop on the components
+	    for comp in ${config_ListOfComponents[*]} ; do
+
+		eval ExeNameIn=\${config_Executable_${comp}[0]}
+		eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+		if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+		    eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+		    eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+		    echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+		fi
+	    done
+
+	    EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file"
+
+	    IGCM_sys_Chmod u+x run_file
+	    if ( $DEBUG_sys ) ; then
+		echo "run_file contains : "
+		cat run_file
+	    fi
+
+	elif [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ; then
+	    # use of mpirun 
+
+	          # Use of mpirun instead of ccc_mprun
+	    EXECUTION="time mpirun"
+
+      #  Hosts treatment
+	    ${EXECUTION} hostname | sort | uniq > hosts.tmp
+
+	    i=0
+	    rm -f hosts rankfile
+	    IGCM_debug_Print 1 "sys Curie, Hosts available :"
+	    for nodes in `cat hosts.tmp`
+	    do
+		host[$i]=$nodes
+		echo "${host[$i]}" >> hosts
+		IGCM_debug_Print 1 ${host[$i]}
+		i=$((i+1))
+	    done
+	    rm -f hosts.tmp
+
+	    listnodes=${host[*]}
+
+	    EXECUTION="${EXECUTION} -hostfile hosts -rankfile rankfile"
+
+      # Initialisation
+	    rank=0
+	    current_core=0
+	    init_exec=n
+
+      # Loop on the components
+	    for comp in ${config_ListOfComponents[*]} ; do
+
+		eval ExeNameIn=\${config_Executable_${comp}[0]}
+		eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+		if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+		    IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+		    IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+		    IGCM_debug_Verif_Exit
+		fi
+
+        # Only if we really have an executable for the component :
+		if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+		    eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+		    eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+		    eval comp_proc_nod_loc=\${${comp}_PROC_NOD}
+
+		    echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+		    echo ""  >> script_${ExeNameOut}.ksh
+		    if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+			case ${comp_proc_omp_loc} in
+			    2|4|8|16)
+				IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+				;;
+			    *)
+				IGCM_debug_Exit "ERROR with OMP parameters !"
+				IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+				IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible "
+				IGCM_debug_Verif_Exit
+				;;
+			esac
+			echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+			echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+			echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+			echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+		    fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+		    echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+		    echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+		    echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+		    IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+		    if [ ${init_exec} = y ] ; then
+			EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+		    else
+			EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+			init_exec=y
+		    fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export KMP_STACKSIZE=3g
+          #export KMP_LIBRARY=turnaround
+          #export MKL_SERIAL=YES
+          #OMP_NUM_THREADS=4
+          #./lmdz.x
+		    if [ ${comp_proc_nod_loc} -gt 1 ] ; then
+			(( offset_comp_proc_loc =  NB_CORE_PER_NODE / (comp_proc_mpi_loc / comp_proc_nod_loc) ))
+		    else
+			(( offset_comp_proc_loc =  comp_proc_omp_loc ))
+		    fi
+		    for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+			(( index_host = current_core / NB_CORE_PER_NODE ))
+			host_value=${host[${index_host}]}
+			(( slot =  current_core % NB_CORE_PER_NODE ))
+			virg=","
+			string_final=""
+			for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+			    string=$index$virg
+			    string_final=$string_final$string
+			done
+			string_final=$( echo $string_final | sed "s/.$//" )
+			echo "rank $rank=$host_value slot=$string_final" >> rankfile
+			(( rank = rank + 1 ))
+			(( current_core = current_core + offset_comp_proc_loc ))
+		    done
+		fi
+	    done
+
+	fi
+
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then
+
+    # 2 MPI/OpenMP mpirun method
+
+      # Use of mpirun instead of ccc_mprun
+      EXECUTION="time mpirun"
+
+      #  Hosts treatment
+      ${EXECUTION} hostname | sort | uniq > hosts.tmp
+
+      i=0
+      rm -f hosts rankfile
+      IGCM_debug_Print 1 "sys Curie, Hosts available :"
+      for nodes in `cat hosts.tmp`
+      do
+        host[$i]=$nodes
+        echo "${host[$i]}" >> hosts
+        IGCM_debug_Print 1 ${host[$i]}
+        i=$((i+1))
+      done
+      rm -f hosts.tmp
+
+      listnodes=${host[*]}
+
+      EXECUTION="${EXECUTION} -hostfile hosts -rankfile rankfile"
+
+      # Initialisation
+      rank=0
+      current_core=0
+      init_exec=n
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+	  eval comp_proc_nod_loc=\${${comp}_PROC_NOD}
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8|16)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+          fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+          echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          if [ ${init_exec} = y ] ; then
+            EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+          else
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export KMP_STACKSIZE=3g
+          #export KMP_LIBRARY=turnaround
+          #export MKL_SERIAL=YES
+          #OMP_NUM_THREADS=4
+          #./lmdz.x
+	  if [ ${comp_proc_nod_loc} -gt 1 ] ; then
+              (( offset_comp_proc_loc =  NB_CORE_PER_NODE / (comp_proc_mpi_loc / comp_proc_nod_loc) ))
+	  else
+	      (( offset_comp_proc_loc =  comp_proc_omp_loc ))
+	  fi
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+	     (( index_host = current_core / NB_CORE_PER_NODE ))
+	     host_value=${host[${index_host}]}
+	     (( slot =  current_core % NB_CORE_PER_NODE ))
+	     virg=","
+	     string_final=""
+	     for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+	         string=$index$virg
+	         string_final=$string_final$string
+             done
+             string_final=$( echo $string_final | sed "s/.$//" )
+             echo "rank $rank=$host_value slot=$string_final" >> rankfile
+             (( rank = rank + 1 ))
+             (( current_core = current_core + offset_comp_proc_loc ))
+          done
+        fi
+      done
+
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then
+
+    # 3 MPI/OpenMP ccc_mprun method
+
+    # MPI-OpenMP (MPMD)
+    # example of run_file
+    # 71-8 env OMP_NUM_THREADS=8 ./script_lmdz.x.ksh
+    # 480-1 env OMP_NUM_THREADS=1 ./script_opa.xx.ksh
+    # 1-1 env OMP_NUM_THREADS=1 ./script_xios.x.ksh
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          # Build script files
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8|16)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            ### only for LMDZ?
+            echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+
+          fi
+
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          # Complete run_file
+
+          echo "${comp_proc_mpi_loc}-${comp_proc_omp_loc} env OMP_NUM_THREADS=${comp_proc_omp_loc} ./script_${ExeNameOut}.ksh " >>run_file
+
+        fi
+      done
+
+      ## variable added to stop after 60s instead of 600s by default. 
+      ## This is used when no error comes from executables and when something stopped an executable without notice. 
+      export SLURM_WAIT=60
+
+      ## module advised by TGCC (instead of 2 variables)
+      module load feature/bridge/heterogenous_mpmd
+
+      # set EXECUTION for ccc_mprun case (similar to #1 : MPI only MPMD method) 
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    else
+
+      IGCM_debug_Print 1 "sys Curie :  choose mpirun or ccc_mprun in config.card for ExecutionModeOnCurie"
+
+    fi # 1 2 or 3 if ${OK_PARA_MPMD}
+
+  else
+  # Only one executable (SPMD mode).
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        # Build script files
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo ""  >> script_${ExeNameOut}.ksh
+          echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+          echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+          echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+          echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+
+        if  ( ${OK_PARA_MPI} ) ; then
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          # Default : ccc_mprun used if nb_proc gt 1
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}"  >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          EXECUTION="${HOST_MPIRUN_COMMAND} -n ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+        else
+          # Default : ccc_mprun is NOT used if nb_proc eq 1
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          EXECUTION="/usr/bin/time ./script_${ExeNameOut}.ksh"
+        fi
+
+        IGCM_debug_Print 1 "sys Curie : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi # ${OK_PARA_MPMD}
+
+  IGCM_debug_Print 1 "sys Curie : execution command is "
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${WORKDIR} ] || [ X${RUN_DIR_PATH} = X${SCRATCHDIR} ] || [ X${RUN_DIR_PATH} = X${CCCWORKDIR} ] || [ X${RUN_DIR_PATH} = X${CCCSTOREDIR} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+  # Limit of quota (in %)
+  limit_quota=90
+
+  # Check of the volume
+  volume_quota=$(ccc_quota | grep ' scratch' | gawk '{print $2}')
+  volume_avail=$(ccc_quota | grep ' scratch' | gawk '{print $3}')
+
+  if ( [ ! X${volume_quota} = X ] && [ ! ${volume_quota} = "-" ] ) ; then
+
+    unit_avail=${volume_avail: -1}
+    unit_quota=${volume_quota: -1}
+
+    if [ "${unit_quota}" = "*" ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+      IGCM_debug_Print 1 "More than 100% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+    temp_avail=${volume_avail%%${volume_avail: -1}*}
+    temp_quota=${volume_quota%%${volume_quota: -1}*}
+
+    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+
+    # Convertion
+      if [ ${volume_avail: -1} = "T" ] ; then
+        (( temp_avail = temp_avail * 1000000000000 ))
+      elif [ ${volume_avail: -1} = "G" ] ; then
+        (( temp_avail = temp_avail * 1000000000 ))
+      elif [ ${volume_avail: -1} = "M" ] ; then
+        (( temp_avail = temp_avail * 1000000 ))
+      elif [ ${volume_avail: -1} = "k" ] ; then
+        (( temp_avail = temp_avail * 1000 ))
+      else
+        (( temp_avail = volume_avail ))
+      fi
+      if [ ${volume_quota: -1} = "T" ] ; then
+        (( temp_quota = temp_quota * 1000000000000 ))
+      elif [ ${volume_quota: -1} = "G" ] ; then
+        (( temp_quota = temp_quota * 1000000000 ))
+      elif [ ${volume_quota: -1} = "M" ] ; then
+        (( temp_quota = temp_quota * 1000000 ))
+      elif [ ${volume_quota: -1} = "k" ] ; then
+        (( temp_quota = temp_quota * 1000 ))
+      else
+        (( temp_quota = volume_quota ))
+      fi
+    fi
+
+    quota_volume=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+#    echo "volume ratio is " $quota_volume
+
+    if [ ${quota_volume} -ge ${limit_quota} ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+      IGCM_debug_Print 1 "${quota_volume}% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+  fi
+
+# Check of the number of inodes
+
+  inode_quota=$(ccc_quota | grep ' scratch' | gawk '{print $6}')
+  inode_avail=$(ccc_quota | grep ' scratch' | gawk '{print $7}')
+
+  if ( [ ! X${inode_quota} = X ] && [ ! ${inode_quota} = "-" ] ) ; then
+
+    unit_avail=${inode_avail: -1}
+    unit_quota=${inode_quota: -1}
+
+    if [ "${unit_quota}" = "*" ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+      IGCM_debug_Print 1 "More than 100% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+    temp_avail=${inode_avail%%${inode_avail: -1}*}
+    temp_quota=${inode_quota%%${inode_quota: -1}*}
+
+    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+
+    # Convertion
+      if [ ${inode_avail: -1} = "T" ] ; then
+        (( temp_avail = temp_avail * 1000000000000 ))
+      elif [ ${inode_avail: -1} = "G" ] ; then
+        (( temp_avail = temp_avail * 1000000000 ))
+      elif [ ${inode_avail: -1} = "M" ] ; then
+        (( temp_avail = temp_avail * 1000000 ))
+      elif [ ${inode_avail: -1} = "k" ] ; then
+        (( temp_avail = temp_avail * 1000 ))
+      else
+        (( temp_avail = inode_avail ))
+      fi
+
+      if [ ${inode_quota: -1} = "T" ] ; then
+        (( temp_quota = temp_quota * 1000000000000 ))
+      elif [ ${inode_quota: -1} = "G" ] ; then
+        (( temp_quota = temp_quota * 1000000000 ))
+      elif [ ${inode_quota: -1} = "M" ] ; then
+        (( temp_quota = temp_quota * 1000000 ))
+      elif [ ${inode_quota: -1} = "k" ] ; then
+        (( temp_quota = temp_quota * 1000 ))
+      else
+        (( temp_quota = inode_quota ))
+      fi
+    fi
+    quota_inode=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+#    echo "inode ratio is " $quota_inode
+
+    if [ ${quota_inode} -ge ${limit_quota} ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+      IGCM_debug_Print 1 "${quota_inode}% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  ssh curie91 /usr/bin/ccc_myproject > $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  eval ${1}=${BRIDGE_MSUB_JOBID}
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  ID=$( ccc_mstat -f -u $2 | \
+        gawk -v JobName=$1 '( $NF ~ JobName ) { print $1 }' )
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  NbRun=$( ccc_mstat -f | gawk -v JobName=$1 'BEGIN { x=0 } ( $NF ~ JobName ) { x=x+1 } END { print x }' )
+
+  eval ${2}=${NbRun}
+
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ListJobInQueue
+#D-* Purpose: Produce a list of users computing jobs (excluding post-processing)
+#D-* Examples: IGCM_sys_ListJobInQueue ${User} JobNameList
+#D-
+function IGCM_sys_ListJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_ListJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ListJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  set -A JobList $( ccc_mstat -f | gawk -v User=$1             \
+                                        '( $2  == User      && \
+                                           $NF != /TS/      && \
+                                           $NF !~ /PACK/    && \
+                                           $NF !~ /REBUILD/ && \
+                                           $NF !~ /pack/ )     \
+                                         { print $NF }' | sed -e "s/\(.*\)\.[0-9]*/\1/" )
+
+  eval set -A ${2} ${JobList[*]}
+
+  IGCM_debug_PopStack "IGCM_sys_ListJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \ccc_mprun atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with nemo specific rebuild on curie
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  $( ccc_home -u igcmg)/Tools/curie/bin/rebuild_nemo ${1} ${2}
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh	(revision 5899)
@@ -0,0 +1,1230 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1485                                     $ Revision of last commit
+# $Author:: jgipsl                                     $ Author of last commit
+# $Date:: 2019-06-17 17:41:07 +0200 (Mon, 17 Jun 2019) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys Default host
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=${MASTER:=$( hostname )}
+# project name
+typeset PROJECT=NONE
+# jobWarningDelay in seconds
+typeset jobWarningDelay=NONE
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=qsub}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+#. /home/${LOGIN}/.atlas_env_${HOST}_ksh
+#export PATH=${PATH}:/home/${LOGIN}/rebuild/bin/
+IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${PWD}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/home_local/${LOGIN}/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/home_local/${LOGIN}/RUN_DIR/tmp$$}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="time mpirun"}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to false on the default machine
+PackDefault=false
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on STORAGE hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST nothing special will hapen
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${ARCHIVE:=/home_local/${LOGIN}}
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${ARCHIVE}
+  fi
+
+  # ON DEFAULT MACHINE NO SPECIAL CASE WHEN X${config_UserChoices_SpaceName} = XTEST
+
+  #====================================================
+  #- R_OUT
+  R_OUT=${ARCHIVE}/IGCM_OUT
+
+  #====================================================
+  #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+  R_FIG=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${STORAGE}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  # Never archived for this system
+  IsArchivedFlag=1
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  echo "${@} > ${SUBMIT_DIR}/${Script_Output} 2>&1 &"
+  ${@} > ${SUBMIT_DIR}/${Script_Output} 2>&1 &
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_Qsub : erreur ${options} $1"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  echo "${libIGCM_POST}/$1.job > ${POST_DIR}/$1.${PeriodDateEnd}.out 2>&1 &"
+  ${libIGCM_POST}/$1.job > ${POST_DIR}/${Script_Post_Output}.out 2>&1 &
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_QsubPost : erreur " $@
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+    IGCM_debug_Print 1 "Dummy call, let the user do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset status
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    if [ X${JobType} = XRUN ] ; then
+      if [ X${3} = X ] ; then
+        IGCM_sys_Chmod 444 ${1}
+      fi
+    fi
+    #
+
+    echo ${RSYNC} ${RSYNC_opt} $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    ${RSYNC} ${RSYNC_opt} $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    IGCM_sys_Rsync_out $status
+
+    ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : rsync failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST status dm_liste
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      dm_liste=${1}
+    fi
+    eval DEST=\${${#}}
+
+    # test if the (first) file is present in the old computation :
+    IGCM_sys_TestFileArchive ${dm_liste[0]}
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Get"
+      return
+    fi
+
+    #USUAL WAY
+    \cp ${dm_liste[*]} ${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole. Dummy function here
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk (dummy function on Default machine)
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+    echo "Dummy call, let the system do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise at default host, no file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+      IGCM_debug_Print 1 ${EnvFile}
+      . ${EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : No modules will be loaded in default set up." 
+  fi
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for default system. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  # MPMD mode
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+
+      if [ -f run_file ] ; then
+        IGCM_sys_Rm -f run_file
+      fi
+      touch run_file
+
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+        if [ "X${comp}" = "XCPL" ]  && [ "X${ExeNameOut}" != X\"\" ] ; then
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "-np ${comp_proc_mpi_loc} ./${ExeNameOut} " >> run_file
+        fi
+      done
+
+      # Then second loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+        if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "-np ${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+        fi
+      done
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} --app ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+ 
+    # MPI-OpenMP (MPMD)
+    else
+
+      #  Hosts treatment
+      ${HOST_MPIRUN_COMMAND} hostname | sort | uniq > hosts.tmp
+
+      i=0
+      rm -f hosts
+      IGCM_debug_Print 1 "sys $( hostname ), Hosts available :"
+      for nodes in `cat hosts.tmp` ; do
+        host[$i]=$nodes
+        echo "${host[$i]} slots=1 max_slots=1" >> hosts
+        IGCM_debug_Print 1 ${host[$i]}
+        i=$((i+1))
+      done
+      rm -f hosts.tmp
+
+      listnodes=${host[*]}
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -hostfile hosts"
+
+      # Initialisation
+      rank=0
+      current_core=0
+      core_per_node=4
+      init_exec=n
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            #echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            #echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            #echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "export OMP_STACKSIZE=200M" >> script_${ExeNameOut}.ksh 
+            echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+          fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+	  echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+	  echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+	  echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          if [ ${init_exec} = y ] ; then
+            EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+          else
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export OMP_STACKSIZE=200M
+          #export OMP_NUM_THREADS=4
+          #./lmdz.x
+
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+            (( index_host = current_core / core_per_node ))
+            host_value=${host[${index_host}]}
+            (( slot =  current_core % core_per_node ))
+            virg=","
+            string_final=""
+            for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+              string=$index$virg
+              string_final=$string_final$string
+            done
+            string_final=$( echo $string_final | sed "s/.$//" )
+            echo "rank $rank=$host_value slot=$string_final" >> rankfile
+            (( rank = rank + 1 ))
+            (( current_core = current_core + comp_proc_omp_loc ))
+          done
+        fi
+      done
+    fi
+
+  # Only one executable (SPMD mode).
+  else
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "export OMP_STACKSIZE=200M" >> script_${ExeNameOut}.ksh
+          echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+        
+	if [ ${mpiTasks} -eq 1 ] && [ ${openMPthreads} -eq 1 ] ; then
+          # Case with only one proc
+          # mpirun should not be used at obelix for only one proc
+          # Output text per process
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="time ./script_${ExeNameOut}.ksh"
+        elif  ( ${OK_PARA_MPI} ) ; then
+          # Default : mpirun used if nb_proc gt 1
+          # Output text per process
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${OMPI_COMM_WORLD_RANK} 2>out_${ExeNameOut}.err.\${OMPI_COMM_WORLD_RANK}"  >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="${HOST_MPIRUN_COMMAND} ./script_${ExeNameOut}.ksh"
+	elif [ ${executionType} -eq 6 ] ; then
+          # Sequentiel case: this is the same as the first case.
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="time ./script_${ExeNameOut}.ksh"
+        else
+	  # Strange case. 
+          IGCM_debug_Exit "ERROR with OK_PARA_MPI"
+          IGCM_debug_Print 2 "sys Obelix : OK_PARA_MPI=False and mpiTask/openMPthreds different from 1"
+          IGCM_debug_Verif_Exit
+        fi
+
+
+        IGCM_debug_Print 1 "sys $( hostname ) : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi
+
+  IGCM_debug_Print 1 "sys $( hostname ) : execution command is"
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${ARCHIVE} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota. Dummy call here
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  # TO BE IMPLEMENTED
+
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  touch $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  # N/A content
+  eval ${1}="N/A"
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # N/A content
+  eval ${3}="N/A"
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with general rebuild
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  nemo_generic_restart_file_name_out=${1}
+  nemo_extension_out=${3}
+  shift ; shift ; shift
+
+  IGCM_sys_rebuild -o ${nemo_generic_restart_file_name_out}.${nemo_extension_out} $@
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_iitm.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_iitm.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_iitm.ksh	(revision 5899)
@@ -0,0 +1,1057 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sébastien Denvil
+# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
+# $Revision:: 1459                                     $ Revision of last commit
+# $Author:: jgipsl                                     $ Author of last commit
+# $Date:: 2018-06-22 11:42:05 +0200 (Fri, 22 Jun 2018) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for IITM IBM machine
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host and user names
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=iitm01
+# project name
+typeset PROJECT=NONE
+# jobWarningDelay in seconds
+typeset jobWarningDelay=NONE
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=/usr/lpp/LoadL/full/bin/llsubmit}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=iitm01
+typeset -r REMOTE_RSYNC=/usr/bin/rsync
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+# Not applicable here. Only rebuild path
+export export PATH=${PATH}:/gpfs1/home/sebastien/REBUILD/
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset SUBMIT_DIR=${SUBMIT_DIR:=${LOADL_STEP_INITDIR}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/gpfs1/home/sabin}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=$( echo ${HOME} | sed -e "s/gpfs1/gpfs3/" )/RUN/${LOADL_STEP_ID}}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time poe"}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to false on iitm
+PackDefault=false
+
+#====================================================
+#- Number of core per node (max number of OpenMP task)
+NUM_COREPERNODE=2
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on STORAGE hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST nothing special will hapen
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=$( echo ${HOME} | sed -e "s/gpfs1/gpfs3/" )
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${ARCHIVE}
+  fi
+
+  # ON OBELIX NO SPECIAL CASE WHEN X${config_UserChoices_SpaceName} = XTEST
+
+  #====================================================
+  #- R_OUT
+  R_OUT=${ARCHIVE}/IGCM_OUT
+
+  #====================================================
+  #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+  R_FIG=${WORKDIR}/IGCM_OUT
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${WORKDIR}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( IGCM_sys_RshArchive "[ -d $1 ] && echo 0 || echo 1" )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  IsArchivedFlag=$( [ "X$( echo $@ | grep \/gpfs3 )" != "X" ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( IGCM_sys_RshArchive "[ -f $1 ] && echo 0 || echo 1" )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  #Command depends on targeted file system
+  DEBUG_sys=false IGCM_sys_IsFileArchived $1
+  if [ $? = 0 ] ; then
+    IGCM_sys_RshArchive "ls ${@} 2>/dev/null | wc -l"
+    status=$?
+  else
+    ls ${@} 2>/dev/null | wc -l
+    status=$?
+  fi
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+
+  typeset status
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  # We have to change output/error file
+  [ ${#@} = 1 ] &&  REP_FOR_JOB=${SUBMIT_DIR}
+  [ ${#@} = 2 ] &&  REP_FOR_JOB=${2}
+  sed -e "s:\# \@ output *= .*:\# \@ output = ${Script_Output}:" \
+    -e "s:\# \@ error *= .*:\# \@ error = ${Script_Output}:"   \
+    $1 > ${REP_FOR_JOB}/JOB_FOR_IGCM
+  cd $REP_FOR_JOB ; /usr/lpp/LoadL/full/bin/llsubmit JOB_FOR_IGCM > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 ; status=$? ; cd - ;
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ | tail -1 | sed -e s/\"//g )
+    IGCM_sys_Rm ${REP_FOR_JOB}/JOB_FOR_IGCM
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+
+  typeset status
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  # We have to change output/error file
+  [ ${#@} = 1 ] &&  REP_FOR_JOB=${POST_DIR}
+  [ ${#@} = 2 ] &&  REP_FOR_JOB=${2}
+
+  sed -e "s:\# \@ output *= .*:\# \@ output = ${Script_Post_Output}.out:" \
+    -e "s:\# \@ error *= .*:\# \@ error = ${Script_Post_Output}.out:"   \
+    ${libIGCM_POST}/$1.job > ${REP_FOR_JOB}/JOB_FOR_IGCM
+
+  cd $REP_FOR_JOB ; /usr/lpp/LoadL/full/bin/llsubmit JOB_FOR_IGCM > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 ; status=$? ; cd - ;
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ | tail -1 | sed -e s/\"//g )
+    IGCM_sys_Rm ${REP_FOR_JOB}/JOB_FOR_IGCM
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_RmRunDir"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+      return
+    fi
+
+    typeset status
+
+    #USUAL WAY
+    \cp -ur $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    if [ X${JobType} = XRUN ] ; then
+      IGCM_sys_Chmod 444 ${1}
+    fi
+    #
+    # Only if we use rsync
+    #IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset status
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    if [ X${JobType} = XRUN ] ; then
+      if [ X${3} = X ] ; then
+        IGCM_sys_Chmod 444 ${1}
+      fi
+    fi
+    #
+    #USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST status dm_liste
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      dm_liste=${1}
+    fi
+    eval DEST=\${${#}}
+
+    # test if the (first) file is present in the old computation :
+    DEBUG_sys=false IGCM_sys_IsFileArchived ${dm_liste[0]}
+    if [ $? = 0 ] ; then
+      IGCM_sys_TestFileArchive ${dm_liste[0]}
+      status=$?
+    else
+      IGCM_sys_TestFileBuffer ${dm_liste[0]}
+      status=$?
+    fi
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Get"
+      return
+    fi
+
+    #USUAL WAY
+    \cp ${dm_liste[*]} ${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole. Dummy function here
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk (dummy function on Ada)
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+    echo "Dummy call, let the system do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  typeset NbNodes_Job NbProc_Job comp_proc_mpi_loc comp_proc_omp_loc mpi_count
+
+  if [ ! -f ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} ]  ; then
+    IGCM_debug_Exit "IGCM_sys_iitm build_execution_scripts : Job_${config_UserChoices_JobName} don't exist in SUBMIT_DIR : ${SUBMIT_DIR} "
+  fi
+
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    if [ -f run_file ] ; then
+      IGCM_sys_Rm -f run_file
+    fi
+    touch run_file
+
+    if ( ${OK_PARA_OMP} ) ; then
+# NEW : 2 Noeuds
+# @ task_geometry={(0)(1,2,3)}
+# Nombre de processus demandes
+      echo "Job_${config_UserChoices_JobName} includes task_geometry = \c"
+      cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "task_geometry" | sed -e "s/[^(]*([^(]*/(/g"
+      echo "Job_${config_UserChoices_JobName} includes task_geometry  with NbNodes = \c"
+      cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "task_geometry" | sed -e "s/[^(]*([^(]*/(/g" | wc -c
+      NbNodes_Job=$(( $( cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "task_geometry" | sed -e "s/[^(]*([^(]*/(/g" | wc -c ) - 1 ))
+
+      if [ ${NbNodes_Job} -eq 0 ] ; then
+        IGCM_debug_Print 2 "Error in Job_${config_UserChoices_JobName} ressources : no task_geometry defined with OpenMP run."
+        exit 1
+      fi
+    else
+
+# OLD :
+# @ total_tasks = 3
+# @ environment = "BATCH_NUM_PROC_TOT=3"
+# Pas d OpenMP
+# @ resources = ConsumableCpus(1)
+
+      echo "Job_${config_UserChoices_JobName} includes total_tasks = \c"
+      cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "total_tasks" | sed -e "s/.*total_tasks = //"
+      NbProc_Job=$( cat ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} | grep "total_tasks" | sed -e "s/.*total_tasks = //" )
+      NbProc_Job=${NbProc_Job:=0}
+      if [ ${NbProc_Job} -eq 0 ] ; then
+        IGCM_debug_Print 2 "Error in Job_${config_UserChoices_JobName} ressources : no total_tasks defined with MPI only run."
+        exit 1
+      fi
+      if ( $( egrep '^# *@ *resources *= *ConsumableCpus\(1\)' ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} >/dev/null 2>&1 ) ) ; then
+        IGCM_debug_Print 2 "ressources =  ConsumableCpus(1) line found into Job_${config_UserChoices_JobName}"
+      else
+        IGCM_debug_Print 2 "Error in Job_${config_UserChoices_JobName} ressources = line not found. Job should include resources = ConsumableCpus(1) "
+        exit 1
+      fi
+    fi
+
+# run_file construction
+
+# Then first loop on the components for the coupler ie oasis
+
+### the coupler ie oasis must be the first one
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      eval ExeNameIn=\${config_Executable_${comp}[0]}
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+      # for CPL component only
+      if [ "X${comp}" = "XCPL" ] ; then
+
+        eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+        eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+        if ( ${OK_PARA_MPI} ) ; then
+          (( mpi_count = 1 ))
+          until [ ${mpi_count} -gt ${comp_proc_mpi_loc} ] ; do
+            if ( ${OK_PARA_OMP} ) ; then
+              echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file
+            else
+              echo "./${ExeNameOut}" >> run_file
+            fi
+            (( mpi_count = mpi_count + 1 ))
+          done
+        else
+          if ( ${OK_PARA_OMP} ) ; then
+            echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file
+          else
+            echo "./${ExeNameOut} " >> run_file
+          fi
+        fi
+      fi
+    done
+
+# Then second loop on the components
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      eval ExeNameIn=\${config_Executable_${comp}[0]}
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+      # Only if we really have an executable for the component and not the coupler ie oasis:
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+        eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+        eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+        if ( ${OK_PARA_MPI} ) ; then
+          (( mpi_count = 1 ))
+          until [ ${mpi_count} -gt ${comp_proc_mpi_loc} ] ; do
+            if ( ${OK_PARA_OMP} ) ; then
+              echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file
+            else
+              echo "./${ExeNameOut}" >> run_file
+            fi
+            (( mpi_count = mpi_count + 1 ))
+          done
+        else
+          if ( ${OK_PARA_OMP} ) ; then
+            echo "env OMP_NUM_THREADS=${comp_proc_omp_loc} ./${ExeNameOut} " >> run_file
+          else
+                    # to be tested : no MPI only OpenMP into MPMD mode
+            echo "./${ExeNameOut} " >> run_file
+          fi
+        fi
+      fi
+    done
+
+    EXECUTION="${HOST_MPIRUN_COMMAND} -pgmmodel mpmd -cmdfile ./run_file"
+
+    IGCM_sys_Chmod u+x run_file
+    if ( $DEBUG_sys ) ; then
+      echo "run_file contains : "
+      cat run_file
+    fi
+
+  # Only one executable (SPMD mode).
+  else
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+        EXECUTION="${HOST_MPIRUN_COMMAND} ./${ExeNameOut}"
+      fi
+
+    done
+
+  fi
+
+  IGCM_debug_Print 1 "sys iitm : execution command is"
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${WORKDIR} ] || [ X${RUN_DIR_PATH} = X${ARCHIVE} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota. Dummy call here
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+
+  # Print only the full (-W) JobName (%jn)
+  NbRun=$( llq -W -f %jn | grep -c "$1" )
+
+  eval ${2}=${NbRun}
+
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with general rebuild
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  nemo_generic_restart_file_name_out=${1}
+  nemo_extension_out=${3}
+  shift ; shift ; shift
+
+  IGCM_sys_rebuild -o ${nemo_generic_restart_file_name_out}.${nemo_extension_out} $@
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_irene-amd.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_irene-amd.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_irene-amd.ksh	(revision 5899)
@@ -0,0 +1,1914 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip, Arnaud Caubel
+# Contact: Arnaud.Caubel__at__lsce.ipsl.fr
+# $Revision:: 1512                                     $ Revision of last commit
+# $Author:: acosce                                     $ Author of last commit
+# $Date:: 2020-01-14 18:52:20 +0100 (Tue, 14 Jan 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for Irene-amd
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=irene-amd
+# add default project on irene-amd
+typeset PROJECT=$(echo ${BRIDGE_MSUB_PROJECT:=::default_project::} | cut -d@ -f1 )
+# jobWarningDelay in seconds
+typeset jobWarningDelay=${BRIDGE_MSUB_MAXTIME}
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=ccc_msub}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+typeset -r REMOTE_RSYNC=/usr/bin/rsync
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+  IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+else
+  module purge > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/irene-amd/env_irene-amd > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/irene-amd/env_atlas_irene-amd > /dev/null 2>&1
+
+  export PCMDI_MP=/ccc/work/cont003/igcmg/igcmg/PCMDI-MP
+  export UVCDAT_ANONYMOUS_LOG=FALSE
+fi
+
+# FYI
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+# For AddNoise and AddPertu3DOCE
+export PATH=${PATH}:$(ccc_home -u igcmg)/Tools/irene-amd/bin
+
+# For rebuild
+export PATH=${PATH}:$(ccc_home -u igcmg)/Tools/irene-amd/rebuild/modipsl_IOIPSL_PLUS_v2_2_4/bin
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+# ============ CESIUM START ============ #
+
+#====================================================
+#- Mirror libIGCM from titane to cesium if needed
+#ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' )
+#if [ ! ${ROOTSYS} = "home" ] ; then
+#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true}
+#else
+#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+#fi
+
+#====================================================
+#- libIGCM_POST
+#if ( ${MirrorlibIGCM} ) ; then
+#  PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" )
+#  typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM
+#else
+#  typeset -r libIGCM_POST=${libIGCM}
+#fi
+
+# ============ CESIUM  END  ============ #
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${BRIDGE_MSUB_PWD}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/ccc/work/cont003/igcmg/igcmg/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${CCCSCRATCHDIR}/RUN_DIR/${BRIDGE_MSUB_JOBID}_${$}}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time ccc_mprun -E-K1 "}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to true on irene-amd
+PackDefault=true
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#====================================================
+#- Number of computing cores per node 
+#-
+NB_CORE_PER_NODE=128
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Load dfldatadir module : According to project used for submission (default) or set in config.card (optional)
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on CCCSCRATCHDIR hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST everything is stored on CCCSCRATCHDIR
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  # Load dfldatadir depending on the project used for submission (default) or set in config.card (optional)
+  if [ X${config_UserChoices_DataProject} = X ] || [ X${config_UserChoices_DataProject} = DEFAULT ]; then
+    # Default option: Change the dfldatadir according to the project used for submission
+    # The variable DataProject in section UserChoices in config.card is not set or is set to DEFAULT
+    if [ X"$( echo ${PROJECT} | grep cmip6 )" != "X" ] ; then
+      module switch dfldatadir dfldatadir/gencmip6
+      IGCM_debug_Print 1 "Load dfldatadir for forced gencmip6 project"
+    else 
+      module switch dfldatadir dfldatadir/${PROJECT}
+      IGCM_debug_Print 1 "Load dfldatadir for project ${PROJECT}"
+    fi
+  else
+    # Use the project set by the variable DataProject in section UserChoices in config.card
+    module switch dfldatadir dfldatadir/${config_UserChoices_DataProject}
+    IGCM_debug_Print 1 "Load dfldatadir for DataProject red in config.card : ${config_UserChoices_DataProject}"
+  fi
+
+ #====================================================
+ #- RUN_DIR_PATH : Temporary working directory (=> TMP)
+ typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${CCCSCRATCHDIR}/RUN_DIR/${BRIDGE_MSUB_JOBID}_${$}}
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${CCCSTOREDIR}
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${CCCWORKDIR}
+  fi
+
+  if [ X${config_UserChoices_SpaceName} = XTEST ]; then
+    #====================================================
+    #- R_OUT
+    R_OUT=${CCCSCRATCHDIR}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${CCCSCRATCHDIR}/IGCM_OUT
+
+    IGCM_debug_Print 1 "SpaceName=TEST ==> OVERRULE destination path directories"
+
+  else
+    #====================================================
+    #- R_OUT
+    R_OUT=${ARCHIVE}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${STORAGE}/IGCM_OUT
+  fi
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${CCCSCRATCHDIR}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  IsArchivedFlag=$( [ X$( echo $@ | grep ^\/ccc\/store ) != X ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset options status
+  options="-o ${SUBMIT_DIR}/${Script_Output} -e ${SUBMIT_DIR}/${Script_Output}"
+
+  /usr/bin/ccc_msub ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset options status
+  options="-Q normal -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out"
+
+  /usr/bin/ccc_msub ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_RmRunDir"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    # add 'ccc_hsm get' (to demigrate all offline files) to reduce time of this command :
+    ccc_hsm get -r $1
+
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i exist skip
+  typeset fileDeviceNumberInHex directoryDeviceNumberInHex
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    exist=false
+    skip=false
+    if [ -f $2 ] ; then
+      IGCM_debug_Print 1 "$2 already exist"
+      ccc_hsm get $2
+      exist=true
+      if [ "X$( diff $1 $2 )" = X ] ; then
+        IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy"
+        skip=true
+      else
+        IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy"
+        skip=false
+      fi
+    fi
+    #
+    if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then
+      IGCM_sys_Chmod u+w $2
+    fi
+
+    if [ X${skip} = Xfalse ] ; then
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        # Identify file system
+        fileDeviceNumberInHex=$( stat -c %d $1 )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+        # Identify file system
+        directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+
+        if ( [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] || [ X$3 = XNOMOVE ] ) ; then
+          # They are not on the same device. USUAL WAY
+          \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        else
+          # They are on the same device. NOT SO USUAL WAY
+          \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        fi
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : sleep ${DELAI} seconds and try again."
+          [ -f ${1} ] && ls -l ${1}
+          [ -f ${2} ] && ls -l ${2}
+          [ -f ${2}/${1} ] && ls -l ${2}/${1}
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+    fi
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        if [ X${3} = X ] ; then
+          [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+          [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+        fi
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST dm_liste target file_work
+  typeset NB_ESSAI DELAI status i
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      eval set +A dm_liste ${1}
+    fi
+    eval DEST=\${${#}}
+    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "WARNING IGCM_sys_Get : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      echo "WARNING IGCM_sys_Get : will stop later if the cp fails."
+    fi
+
+    #if [ ${status} -gt 0 ] ; then
+    #  if [ ! "X$( grep "Lost dmusrcmd connection" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] ; then
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : "
+    #    sleep 30
+    #    echo "We try another time"
+    ##    dmget ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    status=$?
+    #    if [ ${status} -gt 0 ] ; then
+    #      echo "ERROR IGCM_sys_Get : again demigration error :"
+    #      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #      IGCM_debug_Exit "IGCM_sys_Get"
+    #    fi
+    #  else
+    #    echo "ERROR IGCM_sys_Get : demigration error :"
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    IGCM_debug_Exit "IGCM_sys_Get"
+    #  fi
+    #fi
+
+    #   #RSYNC WITH NETWORK SSH CALL
+    #   echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   #RSYNC WITH NFS USE
+    #   echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   status=$?
+    #   IGCM_sys_Rsync_out $status
+
+    #   ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #   (( status=status+$? ))
+
+    #USUAL WAY
+    if [ X${1} = X'/l' ] ; then
+      for target in ${dm_liste[*]} ; do
+        local_file=$( basename ${target} )
+        # test if the target file is present before the loop
+        IGCM_sys_TestFileArchive ${target}
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          echo "IGCM_sys_Get, ERROR : regular file ${target} DOES NOT EXIST ."
+          IGCM_debug_Exit "IGCM_sys_Get"
+        else
+          i=0
+          while [ $i -lt $NB_ESSAI ] ; do
+            #if [ X${DoLink} = Xtrue ] ; then
+            #  \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #  else
+            #  \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #fi
+            \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            status=$?
+            if [ ${status} -gt 0 ]; then
+              IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+              IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+              sleep $DELAI
+            else
+              break
+            fi
+            (( i = i + 1 ))
+          done
+          if [ ${status} -gt 0 ] ; then
+            echo "IGCM_sys_Get : error"
+            cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            IGCM_debug_Exit "IGCM_sys_Get"
+          else
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+          fi
+        fi
+      done
+    else
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        \cp ${dm_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+        status=$?
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+      if [ ${status} -gt 0 ] ; then
+        echo "IGCM_sys_Get : error"
+        cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        IGCM_debug_Exit "IGCM_sys_Get"
+      else
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      fi
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+    if [ "$#" -eq 1 ]; then
+      $(ccc_home -u igcmg)/Tools/irene-amd/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1
+      status=$?
+    else
+      $(ccc_home -u igcmg)/Tools/irene-amd/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1
+      status=$?
+    fi
+
+#    if [ ${status} -gt 0 ] ; then
+#      echo "IGCM_sys_Dods_Rm : error."
+#      cat out_dods_rm
+#      IGCM_debug_Exit "IGCM_sys_Dods_Rm"
+#    else
+#      rm out_dods_rm
+#    fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d ${R_SAVE}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+    $(ccc_home -u igcmg)/Tools/irene-amd/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1
+    status=$?
+
+#       if [ ${status} -gt 0 ] ; then
+#           echo "IGCM_sys_Dods_Cp : error."
+#           cat out_dods_cp
+#           IGCM_debug_Exit "IGCM_sys_Dods_Cp"
+#       else
+#           rm out_dods_cp
+#       fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+
+    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+    #
+    if [ -d ${R_SAVE}/${1} ] ; then
+      cd ${R_SAVE}
+    elif [ -d ${R_FIGR}/${1} ] ; then
+      cd ${R_FIGR}
+    fi
+
+    IGCM_sys_Dods_Rm ${1}
+    IGCM_sys_Dods_Cp ${1}
+    status=0
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Put_Dods : error."
+      IGCM_debug_Exit "IGCM_sys_Put_Dods"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+  fi
+
+  /bin/sync
+
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise a default file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Default modules will be used"
+      module purge > /dev/null 2>&1 
+      if [ X${compilerVersion} = XV19 ] ; then
+	  IGCM_debug_Print 1 "IGCM_sys_active_variables : Using compiler version V19"
+	  EnvFile=$( ccc_home -u igcmg)/MachineEnvironment/irene-amd/env_irene-amd > /dev/null 2>&1
+      else
+	  IGCM_debug_Exit "This compiler version is not yet supported : ${compilerVersion}"
+      fi
+  fi
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+  IGCM_debug_Print 1 ${EnvFile}
+  . ${EnvFile}
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for Irene-amd. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+   # In case of use of DEDICATED option XIOS servers, do not share xios nodes with xios clients
+   # Compute the number of core to add to force the use of a new node for xios servers
+
+   if [ "X${IOS_OK_DEDICATED}" == "X" ] ; then
+       (( IOS_OK_DEDICATED = 0 ))
+   fi
+
+
+   if [ ${IOS_OK_DEDICATED} -eq 1 ] ; then
+      (( current_core_noxios = coreNumber - IOS_PROC_MPI * IOS_PROC_OMP * IOS_PROC_DEP ))
+      (( first_comp_proc_dep_loc = 1 + NB_CORE_PER_NODE - current_core_noxios % NB_CORE_PER_NODE ))
+      (( second_comp_proc_mpi_loc = IOS_PROC_MPI - 1 ))
+      (( coreNumber = current_core_noxios - 1 + first_comp_proc_dep_loc * 2 + second_comp_proc_mpi_loc * IOS_PROC_OMP * IOS_PROC_DEP ))
+   fi
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP :ccc_mprun
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/#MSUB -x/d"                           \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+        -e "/#MSUB -x/d"                           \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+        -e "/#MSUB -x/d"                           \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+        -e "/#MSUB -x/d"                           \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # MPMD mode
+    # 1 MPI only
+    # 2 MPI/OpenMP mpirun method
+    # 3 MPI/OpenMP ccc_mprun method
+
+    if [ -f run_file ] ; then
+      IGCM_sys_Rm -f run_file
+    fi
+    touch run_file
+
+    # case 1 : Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+        if [ "X${comp}" = "XCPL" ] && [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+        fi
+      done
+
+      # Then second loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+        if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          eval comp_proc_dep_loc=\${${comp}_PROC_DEP}
+
+          # In case of use of DEDICATED option XIOS servers, do not share xios nodes with xios clients
+          # Compute the number of core to add to force the use of a new node for xios servers
+         if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XIOS" ] ) ; then
+            if [ ${IOS_OK_DEDICATED} -eq 1 ] ; then
+              (( current_core_noxios = coreNumber - comp_proc_mpi_loc * comp_proc_dep_loc ))
+              (( first_comp_proc_dep_loc = 1 + NB_CORE_PER_NODE - current_core_noxios % NB_CORE_PER_NODE ))
+              (( second_comp_proc_mpi_loc = comp_proc_mpi_loc - 1 ))
+              if [ ${comp_proc_dep_loc} -lt ${first_comp_proc_dep_loc} ] ; then
+                 echo "1-${first_comp_proc_dep_loc} ./${ExeNameOut}" >>run_file
+                 if [ ${comp_proc_mpi_loc} -gt 1 ] ; then
+                    echo "${second_comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file
+                 fi
+              else
+                 echo "${comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file
+              fi
+           else
+              echo "${comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file
+           fi
+         else
+          echo "${comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file
+         fi
+
+
+        fi
+      done
+
+      ## module advised by TGCC (instead of 2 variables)
+      module load feature/bridge/heterogenous_mpmd
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then
+
+    # 2 MPI/OpenMP mpirun method
+
+      # Use of mpirun instead of ccc_mprun
+      EXECUTION="time mpirun"
+
+      #  Hosts treatment
+      ${EXECUTION} hostname | sort | uniq > hosts.tmp
+
+      i=0
+      rm -f hosts rankfile
+      IGCM_debug_Print 1 "sys Irene-amd, Hosts available :"
+      for nodes in `cat hosts.tmp`
+      do
+        host[$i]=$nodes
+        echo "${host[$i]}" >> hosts
+        IGCM_debug_Print 1 ${host[$i]}
+        i=$((i+1))
+      done
+      rm -f hosts.tmp
+
+      listnodes=${host[*]}
+
+      EXECUTION="${EXECUTION} -hostfile hosts -rankfile rankfile"
+
+      # Initialisation
+      rank=0
+      current_core=0
+      init_exec=n
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+	  eval comp_proc_nod_loc=\${${comp}_PROC_NOD}
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8|16)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+          fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+          echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          if [ ${init_exec} = y ] ; then
+            EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+          else
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export KMP_STACKSIZE=3g
+          #export KMP_LIBRARY=turnaround
+          #export MKL_SERIAL=YES
+          #OMP_NUM_THREADS=4
+          #./lmdz.x
+	  if [ ${comp_proc_nod_loc} -gt 1 ] ; then
+              (( offset_comp_proc_loc =  NB_CORE_PER_NODE / (comp_proc_mpi_loc / comp_proc_nod_loc) ))
+	  else
+	      (( offset_comp_proc_loc =  comp_proc_omp_loc ))
+	  fi
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+	     (( index_host = current_core / NB_CORE_PER_NODE ))
+	     host_value=${host[${index_host}]}
+	     (( slot =  current_core % NB_CORE_PER_NODE ))
+	     virg=","
+	     string_final=""
+	     for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+	         string=$index$virg
+	         string_final=$string_final$string
+             done
+             string_final=$( echo $string_final | sed "s/.$//" )
+             echo "rank $rank=$host_value slot=$string_final" >> rankfile
+             (( rank = rank + 1 ))
+             (( current_core = current_core + offset_comp_proc_loc ))
+          done
+        fi
+      done
+
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then
+
+    # 3 MPI/OpenMP ccc_mprun method
+
+    # MPI-OpenMP (MPMD)
+    # example of run_file
+    # 71-8 env OMP_NUM_THREADS=8 ./script_lmdz.x.ksh
+    # 480-1 env OMP_NUM_THREADS=1 ./script_opa.xx.ksh
+    # 1-1 env OMP_NUM_THREADS=1 ./script_xios.x.ksh
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          eval comp_proc_dep_loc=\${${comp}_PROC_DEP}
+
+          # Compute number of cores per process
+          (( comp_proc_omp_dep_loc = comp_proc_omp_loc * comp_proc_dep_loc )) 
+
+          # Build script files
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8|16)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            ### only for LMDZ?
+            echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+
+          fi
+
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          # Complete run_file
+
+          # In case of use of DEDICATED option XIOS servers, do not share xios nodes with xios clients
+          # Compute the number of core to add to force the use of a new node for xios servers
+         if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XIOS" ] ) ; then
+            if [ ${IOS_OK_DEDICATED} -eq 1 ] ; then
+              (( current_core_noxios = coreNumber - comp_proc_mpi_loc * comp_proc_omp_dep_loc )) 
+              (( first_comp_proc_dep_loc = 1 + NB_CORE_PER_NODE - current_core_noxios % NB_CORE_PER_NODE ))
+              (( second_comp_proc_mpi_loc = comp_proc_mpi_loc - 1 ))
+              if [ ${comp_proc_omp_dep_loc} -lt ${first_comp_proc_dep_loc} ] ; then 
+                 echo "1-${first_comp_proc_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file
+                  if [ ${comp_proc_mpi_loc} -gt 1 ] ; then
+                    echo "${second_comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file
+                  fi
+              else
+                 echo "${comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file
+              fi
+           else
+              echo "${comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file
+           fi
+         else
+          echo "${comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=${comp_proc_omp_loc} ./script_${ExeNameOut}.ksh " >>run_file
+         fi
+
+        fi
+      done
+
+      ## variable added to stop after 60s instead of 600s by default. 
+      ## This is used when no error comes from executables and when something stopped an executable without notice. 
+      export SLURM_WAIT=60
+
+      ## module advised by TGCC (instead of 2 variables)
+      module load feature/bridge/heterogenous_mpmd
+
+      # set EXECUTION for ccc_mprun case (similar to #1 : MPI only MPMD method) 
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    else
+
+      IGCM_debug_Print 1 "sys Curie :  choose mpirun or ccc_mprun in config.card for ExecutionModeOnCurie"
+
+    fi # 1 2 or 3 if ${OK_PARA_MPMD}
+
+  else
+  # Only one executable (SPMD mode).
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        # Build script files
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo ""  >> script_${ExeNameOut}.ksh
+          echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+          echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+          echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+          echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+
+        if  ( ${OK_PARA_MPI} ) ; then
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          # Default : ccc_mprun used if nb_proc gt 1
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}"  >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          EXECUTION="${HOST_MPIRUN_COMMAND} -n ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+        else
+          # Default : ccc_mprun is NOT used if nb_proc eq 1
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          EXECUTION="/usr/bin/time ./script_${ExeNameOut}.ksh"
+        fi
+
+        IGCM_debug_Print 1 "sys Irene-amd : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi # ${OK_PARA_MPMD}
+
+  IGCM_debug_Print 1 "sys Irene-amd : execution command is "
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${CCCWORKDIR} ] || [ X${RUN_DIR_PATH} = X${CCCSCRATCHDIR} ] || [ X${RUN_DIR_PATH} = X${CCCSTOREDIR} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+  # Limit of quota (in %)
+  limit_quota=90
+
+  # Check of the volume
+  volume_quota=$(ccc_quota | grep ' scratch' | gawk '{print $2}')
+  volume_avail=$(ccc_quota | grep ' scratch' | gawk '{print $3}')
+
+  if ( [ ! X${volume_quota} = X ] && [ ! ${volume_quota} = "-" ] ) ; then
+
+    unit_avail=${volume_avail: -1}
+    unit_quota=${volume_quota: -1}
+
+    if [ "${unit_quota}" = "*" ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+      IGCM_debug_Print 1 "More than 100% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+    temp_avail=${volume_avail%%${volume_avail: -1}*}
+    temp_quota=${volume_quota%%${volume_quota: -1}*}
+
+    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+
+    # Convertion
+      if [ ${volume_avail: -1} = "T" ] ; then
+        (( temp_avail = temp_avail * 1000000000000 ))
+      elif [ ${volume_avail: -1} = "G" ] ; then
+        (( temp_avail = temp_avail * 1000000000 ))
+      elif [ ${volume_avail: -1} = "M" ] ; then
+        (( temp_avail = temp_avail * 1000000 ))
+      elif [ ${volume_avail: -1} = "k" ] ; then
+        (( temp_avail = temp_avail * 1000 ))
+      else
+        (( temp_avail = volume_avail ))
+      fi
+      if [ ${volume_quota: -1} = "T" ] ; then
+        (( temp_quota = temp_quota * 1000000000000 ))
+      elif [ ${volume_quota: -1} = "G" ] ; then
+        (( temp_quota = temp_quota * 1000000000 ))
+      elif [ ${volume_quota: -1} = "M" ] ; then
+        (( temp_quota = temp_quota * 1000000 ))
+      elif [ ${volume_quota: -1} = "k" ] ; then
+        (( temp_quota = temp_quota * 1000 ))
+      else
+        (( temp_quota = volume_quota ))
+      fi
+    fi
+
+    quota_volume=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+#    echo "volume ratio is " $quota_volume
+
+    if [ ${quota_volume} -ge ${limit_quota} ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+      IGCM_debug_Print 1 "${quota_volume}% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+  fi
+
+# Check of the number of inodes
+
+  inode_quota=$(ccc_quota | grep ' scratch' | gawk '{print $6}')
+  inode_avail=$(ccc_quota | grep ' scratch' | gawk '{print $7}')
+
+  if ( [ ! X${inode_quota} = X ] && [ ! ${inode_quota} = "-" ] ) ; then
+
+    unit_avail=${inode_avail: -1}
+    unit_quota=${inode_quota: -1}
+
+    if [ "${unit_quota}" = "*" ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+      IGCM_debug_Print 1 "More than 100% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+    temp_avail=${inode_avail%%${inode_avail: -1}*}
+    temp_quota=${inode_quota%%${inode_quota: -1}*}
+
+    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+
+    # Convertion
+      if [ ${inode_avail: -1} = "T" ] ; then
+        (( temp_avail = temp_avail * 1000000000000 ))
+      elif [ ${inode_avail: -1} = "G" ] ; then
+        (( temp_avail = temp_avail * 1000000000 ))
+      elif [ ${inode_avail: -1} = "M" ] ; then
+        (( temp_avail = temp_avail * 1000000 ))
+      elif [ ${inode_avail: -1} = "k" ] ; then
+        (( temp_avail = temp_avail * 1000 ))
+      else
+        (( temp_avail = inode_avail ))
+      fi
+
+      if [ ${inode_quota: -1} = "T" ] ; then
+        (( temp_quota = temp_quota * 1000000000000 ))
+      elif [ ${inode_quota: -1} = "G" ] ; then
+        (( temp_quota = temp_quota * 1000000000 ))
+      elif [ ${inode_quota: -1} = "M" ] ; then
+        (( temp_quota = temp_quota * 1000000 ))
+      elif [ ${inode_quota: -1} = "k" ] ; then
+        (( temp_quota = temp_quota * 1000 ))
+      else
+        (( temp_quota = inode_quota ))
+      fi
+    fi
+    quota_inode=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+#    echo "inode ratio is " $quota_inode
+
+    if [ ${quota_inode} -ge ${limit_quota} ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+      IGCM_debug_Print 1 "${quota_inode}% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  ssh irene194 /usr/bin/ccc_myproject > $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+  eval ${1}=${BRIDGE_MSUB_JOBID}
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  ID=$( ccc_mstat -f -u $2 | \
+        gawk -v JobName=$1 '( $NF ~ JobName ) { print $1 }' )
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  NbRun=$( ccc_mstat -f | gawk -v JobName=$1 'BEGIN { x=0 } ( $NF ~ JobName ) { x=x+1 } END { print x }' )
+
+  eval ${2}=${NbRun}
+
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ListJobInQueue
+#D-* Purpose: Produce a list of users computing jobs (excluding post-processing)
+#D-* Examples: IGCM_sys_ListJobInQueue ${User} JobNameList
+#D-
+function IGCM_sys_ListJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_ListJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ListJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  set -A JobList $( ccc_mstat -f | gawk -v User=$1             \
+                                        '( $2  == User      && \
+                                           $NF != /TS/      && \
+                                           $NF !~ /PACK/    && \
+                                           $NF !~ /REBUILD/ && \
+                                           $NF !~ /pack/ )     \
+                                         { print $NF }' | sed -e "s/\(.*\)\.[0-9]*/\1/" )
+
+  eval set -A ${2} ${JobList[*]}
+
+  IGCM_debug_PopStack "IGCM_sys_ListJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \ccc_mprun atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with nemo specific rebuild on curie
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  $( ccc_home -u igcmg)/Tools/irene-amd/bin/rebuild_nemo ${1} ${2}
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_irene.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_irene.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_irene.ksh	(revision 5899)
@@ -0,0 +1,1872 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip, Arnaud Caubel
+# Contact: Arnaud.Caubel__at__lsce.ipsl.fr
+# $Revision:: 1512                                     $ Revision of last commit
+# $Author:: acosce                                     $ Author of last commit
+# $Date:: 2020-01-14 18:52:20 +0100 (Tue, 14 Jan 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for Irene
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=irene
+# add default project on irene
+typeset PROJECT=$(echo ${BRIDGE_MSUB_PROJECT:=::default_project::} | cut -d@ -f1 )
+# jobWarningDelay in seconds
+typeset jobWarningDelay=${BRIDGE_MSUB_MAXTIME}
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=ccc_msub}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+typeset -r REMOTE_RSYNC=/usr/bin/rsync
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+  IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+else
+  module purge > /dev/null 2>&1
+  ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/irene/env_irene > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/irene/env_irene > /dev/null 2>&1
+  ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/irene/env_atlas_irene > /dev/null 2>&1
+  . $( ccc_home -u igcmg)/MachineEnvironment/irene/env_atlas_irene > /dev/null 2>&1
+
+  export PCMDI_MP=/ccc/work/cont003/igcmg/igcmg/PCMDI-MP
+  export UVCDAT_ANONYMOUS_LOG=FALSE
+fi
+
+# FYI
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+# For AddNoise and AddPertu3DOCE
+##export PATH=${PATH}:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin
+export PATH=${PATH}:$(ccc_home -u igcmg)/Tools/irene/bin
+
+# For rebuild
+##export PATH=${PATH}:/ccc/cont003/home/igcmg/igcmg/Tools/irene/rebuild/modipsl_IOIPSL_PLUS_v2_2_4/bin
+export PATH=${PATH}:$(ccc_home -u igcmg)/Tools/irene/rebuild/modipsl_IOIPSL_PLUS_v2_2_4/bin
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+# ============ CESIUM START ============ #
+
+#====================================================
+#- Mirror libIGCM from titane to cesium if needed
+#ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' )
+#if [ ! ${ROOTSYS} = "home" ] ; then
+#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true}
+#else
+#  typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+#fi
+
+#====================================================
+#- libIGCM_POST
+#if ( ${MirrorlibIGCM} ) ; then
+#  PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" )
+#  typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM
+#else
+#  typeset -r libIGCM_POST=${libIGCM}
+#fi
+
+# ============ CESIUM  END  ============ #
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${BRIDGE_MSUB_PWD}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/ccc/work/cont003/igcmg/igcmg/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${CCCSCRATCHDIR}/RUN_DIR/${BRIDGE_MSUB_JOBID}_${$}}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time ccc_mprun -E-K1 "}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to true on irene
+PackDefault=true
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#====================================================
+#- Number of computing cores per node 
+#-
+NB_CORE_PER_NODE=48
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Load dfldatadir module : According to project used for submission (default) or set in config.card (optional)
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on CCCSCRATCHDIR hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST everything is stored on CCCSCRATCHDIR
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  # Load dfldatadir depending on the project used for submission (default) or set in config.card (optional)
+  if [ X${config_UserChoices_DataProject} = X ] || [ X${config_UserChoices_DataProject} = DEFAULT ]; then
+    # Default option: Change the dfldatadir according to the project used for submission
+    # The variable DataProject in section UserChoices in config.card is not set or is set to DEFAULT
+    if [ X"$( echo ${PROJECT} | grep cmip6 )" != "X" ] ; then
+      module switch dfldatadir dfldatadir/gencmip6
+      IGCM_debug_Print 1 "Load dfldatadir for forced gencmip6 project"
+    else 
+      module switch dfldatadir dfldatadir/${PROJECT}
+      IGCM_debug_Print 1 "Load dfldatadir for project ${PROJECT}"
+    fi
+  else
+    # Use the project set by the variable DataProject in section UserChoices in config.card
+    module switch dfldatadir dfldatadir/${config_UserChoices_DataProject}
+    IGCM_debug_Print 1 "Load dfldatadir for DataProject red in config.card : ${config_UserChoices_DataProject}"
+  fi
+
+ #====================================================
+ #- RUN_DIR_PATH : Temporary working directory (=> TMP)
+ typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${CCCSCRATCHDIR}/RUN_DIR/${BRIDGE_MSUB_JOBID}_${$}}
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${CCCSTOREDIR}
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${CCCWORKDIR}
+  fi
+
+  if [ X${config_UserChoices_SpaceName} = XTEST ]; then
+    #====================================================
+    #- R_OUT
+    R_OUT=${CCCSCRATCHDIR}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${CCCSCRATCHDIR}/IGCM_OUT
+
+    IGCM_debug_Print 1 "SpaceName=TEST ==> OVERRULE destination path directories"
+
+  else
+    #====================================================
+    #- R_OUT
+    R_OUT=${ARCHIVE}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${STORAGE}/IGCM_OUT
+  fi
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${CCCSCRATCHDIR}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  IsArchivedFlag=$( [ X$( echo $@ | grep ^\/ccc\/store ) != X ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset options status
+  options="-o ${SUBMIT_DIR}/${Script_Output} -e ${SUBMIT_DIR}/${Script_Output}"
+
+  /usr/bin/ccc_msub ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset options status
+  options="-Q normal -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out"
+
+  /usr/bin/ccc_msub ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_RmRunDir"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    # add 'ccc_hsm get' (to demigrate all offline files) to reduce time of this command :
+    ccc_hsm get -r $1
+
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i exist skip
+  typeset fileDeviceNumberInHex directoryDeviceNumberInHex
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    exist=false
+    skip=false
+    if [ -f $2 ] ; then
+      IGCM_debug_Print 1 "$2 already exist"
+      ccc_hsm get $2
+      exist=true
+      if [ "X$( diff $1 $2 )" = X ] ; then
+        IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy"
+        skip=true
+      else
+        IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy"
+        skip=false
+      fi
+    fi
+    #
+    if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then
+      IGCM_sys_Chmod u+w $2
+    fi
+
+    if [ X${skip} = Xfalse ] ; then
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        # Identify file system
+        fileDeviceNumberInHex=$( stat -c %d $1 )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+        # Identify file system
+        directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+
+        if ( [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] || [ X$3 = XNOMOVE ] ) ; then
+          # They are not on the same device. USUAL WAY
+          \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        else
+          # They are on the same device. NOT SO USUAL WAY
+          \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        fi
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : sleep ${DELAI} seconds and try again."
+          [ -f ${1} ] && ls -l ${1}
+          [ -f ${2} ] && ls -l ${2}
+          [ -f ${2}/${1} ] && ls -l ${2}/${1}
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+    fi
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        if [ X${3} = X ] ; then
+          [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+          [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+        fi
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST dm_liste target file_work
+  typeset NB_ESSAI DELAI status i
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      eval set +A dm_liste ${1}
+    fi
+    eval DEST=\${${#}}
+    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "WARNING IGCM_sys_Get : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      echo "WARNING IGCM_sys_Get : will stop later if the cp fails."
+    fi
+
+    #if [ ${status} -gt 0 ] ; then
+    #  if [ ! "X$( grep "Lost dmusrcmd connection" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] ; then
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : "
+    #    sleep 30
+    #    echo "We try another time"
+    ##    dmget ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    status=$?
+    #    if [ ${status} -gt 0 ] ; then
+    #      echo "ERROR IGCM_sys_Get : again demigration error :"
+    #      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #      IGCM_debug_Exit "IGCM_sys_Get"
+    #    fi
+    #  else
+    #    echo "ERROR IGCM_sys_Get : demigration error :"
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    IGCM_debug_Exit "IGCM_sys_Get"
+    #  fi
+    #fi
+
+    #   #RSYNC WITH NETWORK SSH CALL
+    #   echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   #RSYNC WITH NFS USE
+    #   echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   status=$?
+    #   IGCM_sys_Rsync_out $status
+
+    #   ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #   (( status=status+$? ))
+
+    #USUAL WAY
+    if [ X${1} = X'/l' ] ; then
+      for target in ${dm_liste[*]} ; do
+        local_file=$( basename ${target} )
+        # test if the target file is present before the loop
+        IGCM_sys_TestFileArchive ${target}
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          echo "IGCM_sys_Get, ERROR : regular file ${target} DOES NOT EXIST ."
+          IGCM_debug_Exit "IGCM_sys_Get"
+        else
+          i=0
+          while [ $i -lt $NB_ESSAI ] ; do
+            #if [ X${DoLink} = Xtrue ] ; then
+            #  \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #  else
+            #  \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #fi
+            \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            status=$?
+            if [ ${status} -gt 0 ]; then
+              IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+              IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+              sleep $DELAI
+            else
+              break
+            fi
+            (( i = i + 1 ))
+          done
+          if [ ${status} -gt 0 ] ; then
+            echo "IGCM_sys_Get : error"
+            cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            IGCM_debug_Exit "IGCM_sys_Get"
+          else
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+          fi
+        fi
+      done
+    else
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        \cp ${dm_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+        status=$?
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+      if [ ${status} -gt 0 ] ; then
+        echo "IGCM_sys_Get : error"
+        cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        IGCM_debug_Exit "IGCM_sys_Get"
+      else
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      fi
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+    if [ "$#" -eq 1 ]; then
+      ## /ccc/cont003/home/igcmg/igcmg/Tools/irene/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1
+      $(ccc_home -u igcmg)/Tools/irene/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1
+      status=$?
+    else
+      ## /ccc/cont003/home/igcmg/igcmg/Tools/irene/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1
+      $(ccc_home -u igcmg)/Tools/irene/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1
+      status=$?
+    fi
+
+#    if [ ${status} -gt 0 ] ; then
+#      echo "IGCM_sys_Dods_Rm : error."
+#      cat out_dods_rm
+#      IGCM_debug_Exit "IGCM_sys_Dods_Rm"
+#    else
+#      rm out_dods_rm
+#    fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d ${R_SAVE}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+    ## /ccc/cont003/home/igcmg/igcmg/Tools/irene/bin/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1
+    $(ccc_home -u igcmg)/Tools/irene/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1
+    status=$?
+
+#       if [ ${status} -gt 0 ] ; then
+#           echo "IGCM_sys_Dods_Cp : error."
+#           cat out_dods_cp
+#           IGCM_debug_Exit "IGCM_sys_Dods_Cp"
+#       else
+#           rm out_dods_cp
+#       fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+
+    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+    #
+    if [ -d ${R_SAVE}/${1} ] ; then
+      cd ${R_SAVE}
+    elif [ -d ${R_FIGR}/${1} ] ; then
+      cd ${R_FIGR}
+    fi
+
+    IGCM_sys_Dods_Rm ${1}
+    IGCM_sys_Dods_Cp ${1}
+    status=0
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Put_Dods : error."
+      IGCM_debug_Exit "IGCM_sys_Put_Dods"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+  fi
+
+  /bin/sync
+
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise a default file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Default modules will be used"
+      module purge > /dev/null 2>&1 
+      if [ X${compilerVersion} = XV17 ] ; then
+	  IGCM_debug_Print 1 "IGCM_sys_active_variables : Using compiler version V17"
+	  ## EnvFile=/ccc/cont003/home/igcmg/igcmg/MachineEnvironment/irene/env_irene > /dev/null 2>&1
+	  EnvFile=$( ccc_home -u igcmg)/MachineEnvironment/irene/env_irene > /dev/null 2>&1
+      else
+	  IGCM_debug_Exit "This compiler version is not yet supported : ${compilerVersion}"
+      fi
+  fi
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+  IGCM_debug_Print 1 ${EnvFile}
+  . ${EnvFile}
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for Irene. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP : mpirun/ccc_mprun/error
+    if ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then
+      sed -e "/::openMPthreads::/d"                  \
+          -e "s/::JobNumProcTot::/${coreNumber}/"    \
+        ${file} > ${file}.tmp
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then
+      sed -e "/::openMPthreads::/d"                  \
+          -e "s/::JobNumProcTot::/${coreNumber}/"    \
+          -e "/--cpu_bind=none/d"                    \
+        ${file} > ${file}.tmp
+    else
+     IGCM_debug_Print 1 "You have to set ExecutionModeOnCurie=ccc_mprun or mpirun in config.card"
+     IGCM_debug_Exit "IGCM_sys_updateHeaders"
+    fi
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+        -e "/#MSUB -x/d"                           \
+        -e "/--cpu_bind=none/d"                    \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # MPMD mode
+    # 1 MPI only
+    # 2 MPI/OpenMP mpirun method
+    # 3 MPI/OpenMP ccc_mprun method
+
+    if [ -f run_file ] ; then
+      IGCM_sys_Rm -f run_file
+    fi
+    touch run_file
+
+    # case 1 : Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+        if [ "X${comp}" = "XCPL" ] && [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+        fi
+      done
+
+      # Then second loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+        if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+        fi
+      done
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then
+
+    # 2 MPI/OpenMP mpirun method
+
+      # Use of mpirun instead of ccc_mprun
+      EXECUTION="time mpirun"
+
+      #  Hosts treatment
+      ${EXECUTION} hostname | sort | uniq > hosts.tmp
+
+      i=0
+      rm -f hosts rankfile
+      IGCM_debug_Print 1 "sys Irene, Hosts available :"
+      for nodes in `cat hosts.tmp`
+      do
+        host[$i]=$nodes
+        echo "${host[$i]}" >> hosts
+        IGCM_debug_Print 1 ${host[$i]}
+        i=$((i+1))
+      done
+      rm -f hosts.tmp
+
+      listnodes=${host[*]}
+
+      EXECUTION="${EXECUTION} -hostfile hosts -rankfile rankfile"
+
+      # Initialisation
+      rank=0
+      current_core=0
+      init_exec=n
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+	  eval comp_proc_nod_loc=\${${comp}_PROC_NOD}
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8|16)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+          fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+          echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          if [ ${init_exec} = y ] ; then
+            EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+          else
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export KMP_STACKSIZE=3g
+          #export KMP_LIBRARY=turnaround
+          #export MKL_SERIAL=YES
+          #OMP_NUM_THREADS=4
+          #./lmdz.x
+	  if [ ${comp_proc_nod_loc} -gt 1 ] ; then
+              (( offset_comp_proc_loc =  NB_CORE_PER_NODE / (comp_proc_mpi_loc / comp_proc_nod_loc) ))
+	  else
+	      (( offset_comp_proc_loc =  comp_proc_omp_loc ))
+	  fi
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+	     (( index_host = current_core / NB_CORE_PER_NODE ))
+	     host_value=${host[${index_host}]}
+	     (( slot =  current_core % NB_CORE_PER_NODE ))
+	     virg=","
+	     string_final=""
+	     for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+	         string=$index$virg
+	         string_final=$string_final$string
+             done
+             string_final=$( echo $string_final | sed "s/.$//" )
+             echo "rank $rank=$host_value slot=$string_final" >> rankfile
+             (( rank = rank + 1 ))
+             (( current_core = current_core + offset_comp_proc_loc ))
+          done
+        fi
+      done
+
+    elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then
+
+    # 3 MPI/OpenMP ccc_mprun method
+
+    # MPI-OpenMP (MPMD)
+    # example of run_file
+    # 71-8 env OMP_NUM_THREADS=8 ./script_lmdz.x.ksh
+    # 480-1 env OMP_NUM_THREADS=1 ./script_opa.xx.ksh
+    # 1-1 env OMP_NUM_THREADS=1 ./script_xios.x.ksh
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          # Build script files
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|8|12|16|24)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,8,12,16,24 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            ### only for LMDZ?
+            echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+
+          fi
+
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          # Complete run_file
+
+          echo "${comp_proc_mpi_loc}-${comp_proc_omp_loc} env OMP_NUM_THREADS=${comp_proc_omp_loc} ./script_${ExeNameOut}.ksh " >>run_file
+
+        fi
+      done
+
+      ## variable added to stop after 60s instead of 600s by default. 
+      ## This is used when no error comes from executables and when something stopped an executable without notice. 
+      export SLURM_WAIT=60
+
+      ## module advised by TGCC (instead of 2 variables)
+      module load feature/bridge/heterogenous_mpmd
+
+      # set EXECUTION for ccc_mprun case (similar to #1 : MPI only MPMD method) 
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    else
+
+      IGCM_debug_Print 1 "sys Curie :  choose mpirun or ccc_mprun in config.card for ExecutionModeOnCurie"
+
+    fi # 1 2 or 3 if ${OK_PARA_MPMD}
+
+  else
+  # Only one executable (SPMD mode).
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        # Build script files
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo ""  >> script_${ExeNameOut}.ksh
+          echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+          echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+          echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+          echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+
+        if  ( ${OK_PARA_MPI} ) ; then
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          # Default : ccc_mprun used if nb_proc gt 1
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}"  >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          EXECUTION="${HOST_MPIRUN_COMMAND} -n ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+        else
+          # Default : ccc_mprun is NOT used if nb_proc eq 1
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+          EXECUTION="/usr/bin/time ./script_${ExeNameOut}.ksh"
+        fi
+
+        IGCM_debug_Print 1 "sys Irene : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi # ${OK_PARA_MPMD}
+
+  IGCM_debug_Print 1 "sys Irene : execution command is "
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${CCCWORKDIR} ] || [ X${RUN_DIR_PATH} = X${CCCSCRATCHDIR} ] || [ X${RUN_DIR_PATH} = X${CCCSTOREDIR} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+  # Limit of quota (in %)
+  limit_quota=90
+
+  # Check of the volume
+  volume_quota=$(ccc_quota | grep ' scratch' | gawk '{print $2}')
+  volume_avail=$(ccc_quota | grep ' scratch' | gawk '{print $3}')
+
+  if ( [ ! X${volume_quota} = X ] && [ ! ${volume_quota} = "-" ] ) ; then
+
+    unit_avail=${volume_avail: -1}
+    unit_quota=${volume_quota: -1}
+
+    if [ "${unit_quota}" = "*" ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+      IGCM_debug_Print 1 "More than 100% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+    temp_avail=${volume_avail%%${volume_avail: -1}*}
+    temp_quota=${volume_quota%%${volume_quota: -1}*}
+
+    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+
+    # Convertion
+      if [ ${volume_avail: -1} = "T" ] ; then
+        (( temp_avail = temp_avail * 1000000000000 ))
+      elif [ ${volume_avail: -1} = "G" ] ; then
+        (( temp_avail = temp_avail * 1000000000 ))
+      elif [ ${volume_avail: -1} = "M" ] ; then
+        (( temp_avail = temp_avail * 1000000 ))
+      elif [ ${volume_avail: -1} = "k" ] ; then
+        (( temp_avail = temp_avail * 1000 ))
+      else
+        (( temp_avail = volume_avail ))
+      fi
+      if [ ${volume_quota: -1} = "T" ] ; then
+        (( temp_quota = temp_quota * 1000000000000 ))
+      elif [ ${volume_quota: -1} = "G" ] ; then
+        (( temp_quota = temp_quota * 1000000000 ))
+      elif [ ${volume_quota: -1} = "M" ] ; then
+        (( temp_quota = temp_quota * 1000000 ))
+      elif [ ${volume_quota: -1} = "k" ] ; then
+        (( temp_quota = temp_quota * 1000 ))
+      else
+        (( temp_quota = volume_quota ))
+      fi
+    fi
+
+    quota_volume=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+#    echo "volume ratio is " $quota_volume
+
+    if [ ${quota_volume} -ge ${limit_quota} ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+      IGCM_debug_Print 1 "${quota_volume}% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+  fi
+
+# Check of the number of inodes
+
+  inode_quota=$(ccc_quota | grep ' scratch' | gawk '{print $6}')
+  inode_avail=$(ccc_quota | grep ' scratch' | gawk '{print $7}')
+
+  if ( [ ! X${inode_quota} = X ] && [ ! ${inode_quota} = "-" ] ) ; then
+
+    unit_avail=${inode_avail: -1}
+    unit_quota=${inode_quota: -1}
+
+    if [ "${unit_quota}" = "*" ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+      IGCM_debug_Print 1 "More than 100% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+
+    temp_avail=${inode_avail%%${inode_avail: -1}*}
+    temp_quota=${inode_quota%%${inode_quota: -1}*}
+
+    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+
+    # Convertion
+      if [ ${inode_avail: -1} = "T" ] ; then
+        (( temp_avail = temp_avail * 1000000000000 ))
+      elif [ ${inode_avail: -1} = "G" ] ; then
+        (( temp_avail = temp_avail * 1000000000 ))
+      elif [ ${inode_avail: -1} = "M" ] ; then
+        (( temp_avail = temp_avail * 1000000 ))
+      elif [ ${inode_avail: -1} = "k" ] ; then
+        (( temp_avail = temp_avail * 1000 ))
+      else
+        (( temp_avail = inode_avail ))
+      fi
+
+      if [ ${inode_quota: -1} = "T" ] ; then
+        (( temp_quota = temp_quota * 1000000000000 ))
+      elif [ ${inode_quota: -1} = "G" ] ; then
+        (( temp_quota = temp_quota * 1000000000 ))
+      elif [ ${inode_quota: -1} = "M" ] ; then
+        (( temp_quota = temp_quota * 1000000 ))
+      elif [ ${inode_quota: -1} = "k" ] ; then
+        (( temp_quota = temp_quota * 1000 ))
+      else
+        (( temp_quota = inode_quota ))
+      fi
+    fi
+    quota_inode=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+#    echo "inode ratio is " $quota_inode
+
+    if [ ${quota_inode} -ge ${limit_quota} ] ; then
+      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+      IGCM_debug_Print 1 "${quota_inode}% of your quota is used"
+      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+      IGCM_debug_Print 1 "You must have more than 10% available to run"
+      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+      IGCM_debug_Verif_Exit
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  ssh irene191 /usr/bin/ccc_myproject > $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  eval ${1}=${BRIDGE_MSUB_JOBID}
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  ID=$( ccc_mstat -f -u $2 | \
+        gawk -v JobName=$1 '( $NF ~ JobName ) { print $1 }' )
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  NbRun=$( ccc_mstat -f | gawk -v JobName=$1 'BEGIN { x=0 } ( $NF ~ JobName ) { x=x+1 } END { print x }' )
+
+  eval ${2}=${NbRun}
+
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ListJobInQueue
+#D-* Purpose: Produce a list of users computing jobs (excluding post-processing)
+#D-* Examples: IGCM_sys_ListJobInQueue ${User} JobNameList
+#D-
+function IGCM_sys_ListJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_ListJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ListJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  set -A JobList $( ccc_mstat -f | gawk -v User=$1             \
+                                        '( $2  == User      && \
+                                           $NF != /TS/      && \
+                                           $NF !~ /PACK/    && \
+                                           $NF !~ /REBUILD/ && \
+                                           $NF !~ /pack/ )     \
+                                         { print $NF }' | sed -e "s/\(.*\)\.[0-9]*/\1/" )
+
+  eval set -A ${2} ${JobList[*]}
+
+  IGCM_debug_PopStack "IGCM_sys_ListJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \ccc_mprun atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with nemo specific rebuild on curie
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  $( ccc_home -u igcmg)/Tools/irene/bin/rebuild_nemo ${1} ${2}
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_jeanzay.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_jeanzay.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_jeanzay.ksh	(revision 5899)
@@ -0,0 +1,1785 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip, Arnaud Caubel
+# Contact: Arnaud.Caubel__at__lsce.ipsl.fr
+# $Revision:: 1534                                     $ Revision of last commit
+# $Author:: acosce                                     $ Author of last commit
+# $Date:: 2020-06-17 13:32:52 +0200 (Wed, 17 Jun 2020) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for Jean-Zay
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=jeanzay
+# add default project set by ins_job
+typeset PROJECT=$( echo ${SLURM_JOB_ACCOUNT:=::default_project::} | cut -c "1-3" ) 
+### jobWarningDelay in seconds
+##typeset jobWarningDelay=${BRIDGE_MSUB_MAXTIME}
+ 
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=sbatch}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+typeset -r REMOTE_RSYNC=/usr/bin/rsync
+
+#====================================================
+# Access to module command
+#====================================================
+# See ticket #348
+# Following path should be used according to assist IDRIS
+. /gpfslocalsup/spack_soft/environment-modules/current/init/ksh
+# Following old path gives error messages while loading modules but it still works
+#. /usr/share/Modules/init/ksh
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+  IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+else
+  module purge > /dev/null 2>&1
+  . /gpfswork/rech/psl/commun/MachineEnvironment/jeanzay/env_jeanzay > /dev/null 2>&1
+
+  . /gpfswork/rech/psl/commun/MachineEnvironment/jeanzay/env_atlas_jeanzay > /dev/null 2>&1
+
+#  export PCMDI_MP=/ccc/work/cont003/igcmg/igcmg/PCMDI-MP
+  export UVCDAT_ANONYMOUS_LOG=FALSE
+fi
+
+# FYI
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+# For AddNoise (not yet AddPertu3DOCE)
+export PATH=${PATH}:/gpfswork/rech/psl/commun/Tools/AddNoise/bin
+
+# For rebuild
+export PATH=${PATH}:/gpfswork/rech/psl/commun/Tools/rebuild/modipsl_IOIPSL_PLUS_v2_2_4/bin
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${SLURM_SUBMIT_DIR}}
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/gpfswork/rech/psl/commun/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${SCRATCH}/RUN_DIR/${SLURM_JOBID}_${$}}
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time srun "}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to true
+PackDefault=true
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#====================================================
+#- Number of computing cores per node 
+#-
+NB_CORE_PER_NODE=40
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Load dfldatadir module : According to project used for submission (default) or set in config.card (optional)
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monsitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on SCRATCH hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST everything is stored on SCRATCH
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  # Load dfldatadir depending on the project used for submission (default) or set in config.card (optional)
+  if [ X${config_UserChoices_DataProject} = X ] || [ X${config_UserChoices_DataProject} = DEFAULT ]; then
+    # The variable DataProject is not set in in section UserChoices in config.card or it is set to DEFAULT
+    # Default option: Set DataProject according to the project used for submission
+    DataProject=${PROJECT}
+  else
+    # Use the project set by the variable DataProject in section UserChoices in config.card
+    IGCM_debug_Print 1 "Use DataProject as set in config.card : ${config_UserChoices_DataProject}"
+    DataProject=${config_UserChoices_DataProject}
+  fi
+  IGCM_debug_Print 1 "Data project for output to be used: ${DataProject}"
+
+  #====================================================
+  #- RUN_DIR_PATH : Temporary working directory (=> TMP)
+  #- DataProject = for is the dataproject for Training account at Idris 
+  #- they are not store in rech but in another partition 
+  if [ X${DataProject} = Xfor  ]; then
+      typeset -r RUN_DIR_PATH=$SCRATCH/RUN_DIR/${SLURM_JOBID}_${$}
+  else
+      typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/gpfsscratch/rech/${DataProject}/${LOGIN}/RUN_DIR/${SLURM_JOBID}_${$}}
+  fi
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+      if [ X${DataProject} = Xfor  ]; then
+	  ARCHIVE=$STORE
+      else
+	  #====================================================
+	  #- ARCHIVE (dedicated to large files)
+	  ARCHIVE=/gpfsstore/rech/${DataProject}/${LOGIN}
+      fi
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+      if [ X${DataProject} = Xfor  ]; then
+	  STORAGE=$WORK
+      else
+	  STORAGE=/gpfswork/rech/${DataProject}/${LOGIN}
+      fi
+  fi
+
+  if [ X${config_UserChoices_SpaceName} = XTEST ]; then
+    #====================================================
+    #- R_OUT
+    if [ X${DataProject} = Xfor  ]; then
+	R_OUT=$SCRATCH/IGCM_OUT
+    else
+	R_OUT=/gpfsscratch/rech/${DataProject}/${LOGIN}/IGCM_OUT
+    fi
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${R_OUT}
+
+    IGCM_debug_Print 1 "SpaceName=TEST ==> OVERRULE destination path directories"
+
+  else
+    #====================================================
+    #- R_OUT
+    R_OUT=${ARCHIVE}/IGCM_OUT
+
+    #====================================================
+    #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+    R_FIG=${STORAGE}/IGCM_OUT
+  fi
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  
+  if [ X${DataProject} = Xfor  ]; then
+      R_BUF=$SCRATCH/IGCM_OUT
+  else
+      R_BUF=/gpfsscratch/rech/${DataProject}/${LOGIN}/IGCM_OUT
+  fi
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+# To be implemented on Jean Zay 
+#  IsArchivedFlag=$( [ X$( echo $@ | grep ^\/ccc\/store ) != X ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset options status
+  options="-o ${SUBMIT_DIR}/${Script_Output} -e ${SUBMIT_DIR}/${Script_Output}"
+
+  /usr/bin/time sbatch ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset options status
+  options="-o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out"
+
+  sbatch ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+  fi
+
+  typeset status
+
+  echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_Exit "IGCM_sys_RmRunDir"
+  else
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    # add here command to demigrate all offline files to reduce time of this command 
+    # actually on Jean Zay files are not archive on bands
+
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset NB_ESSAI DELAI status i exist skip
+  typeset fileDeviceNumberInHex directoryDeviceNumberInHex
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    exist=false
+    skip=false
+    if [ -f $2 ] ; then
+      IGCM_debug_Print 1 "$2 already exist"
+    # add here command to demigrate all offline files to reduce time of this command 
+    # actually on Jean Zay files are not archive on bands
+
+      exist=true
+      if [ "X$( diff $1 $2 )" = X ] ; then
+        IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy"
+        skip=true
+      else
+        IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy"
+        skip=false
+      fi
+    fi
+    #
+    if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then
+      IGCM_sys_Chmod u+w $2
+    fi
+
+    if [ X${skip} = Xfalse ] ; then
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        # Identify file system
+        fileDeviceNumberInHex=$( stat -c %d $1 )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+        # Identify file system
+        directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) )
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          IGCM_debug_Exit "IGCM_sys_Put_Out"
+        fi
+
+        if ( [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] || [ X$3 = XNOMOVE ] ) ; then
+          # They are not on the same device. USUAL WAY
+          \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        else
+          # They are on the same device. NOT SO USUAL WAY
+          \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+          status=$?
+        fi
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Put_Out : sleep ${DELAI} seconds and try again."
+          [ -f ${1} ] && ls -l ${1}
+          [ -f ${2} ] && ls -l ${2}
+          [ -f ${2}/${1} ] && ls -l ${2}/${1}
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+    fi
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        if [ X${3} = X ] ; then
+          [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+          [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+        fi
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST dm_liste target file_work
+  typeset NB_ESSAI DELAI status i
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      eval set +A dm_liste ${1}
+    fi
+    eval DEST=\${${#}}
+    # add here command to demigrate all offline files to reduce time of this command 
+    # actually on Jean Zay files are not archive on bands
+
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "WARNING IGCM_sys_Get : error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      echo "WARNING IGCM_sys_Get : will stop later if the cp fails."
+    fi
+
+    #if [ ${status} -gt 0 ] ; then
+    #  if [ ! "X$( grep "Lost dmusrcmd connection" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] ; then
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : "
+    #    sleep 30
+    #    echo "We try another time"
+    ##    dmget ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #    status=$?
+    #    if [ ${status} -gt 0 ] ; then
+    #      echo "ERROR IGCM_sys_Get : again demigration error :"
+    #      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #      IGCM_debug_Exit "IGCM_sys_Get"
+    #    fi
+    #  else
+    #    echo "ERROR IGCM_sys_Get : demigration error :"
+    #    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #    IGCM_debug_Exit "IGCM_sys_Get"
+    #  fi
+    #fi
+
+    #   #RSYNC WITH NETWORK SSH CALL
+    #   echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   #RSYNC WITH NFS USE
+    #   echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    #   ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+    #   status=$?
+    #   IGCM_sys_Rsync_out $status
+
+    #   ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    #   (( status=status+$? ))
+
+    #USUAL WAY
+    if [ X${1} = X'/l' ] ; then
+      for target in ${dm_liste[*]} ; do
+        local_file=$( basename ${target} )
+        # test if the target file is present before the loop
+        IGCM_sys_TestFileArchive ${target}
+        status=$?
+        if [ ${status} -gt 0 ] ; then
+          echo "IGCM_sys_Get, ERROR : regular file ${target} DOES NOT EXIST ."
+          IGCM_debug_Exit "IGCM_sys_Get"
+        else
+          i=0
+          while [ $i -lt $NB_ESSAI ] ; do
+            #if [ X${DoLink} = Xtrue ] ; then
+            #  \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #  else
+            #  \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            #  status=$?
+            #fi
+            \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+            status=$?
+            if [ ${status} -gt 0 ]; then
+              IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+              IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+              sleep $DELAI
+            else
+              break
+            fi
+            (( i = i + 1 ))
+          done
+          if [ ${status} -gt 0 ] ; then
+            echo "IGCM_sys_Get : error"
+            cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+            IGCM_debug_Exit "IGCM_sys_Get"
+          else
+            \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+          fi
+        fi
+      done
+    else
+      i=0
+      while [ $i -lt $NB_ESSAI ] ; do
+        \cp ${dm_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+        status=$?
+        if [ ${status} -gt 0 ]; then
+          IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}"
+          IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again."
+          sleep $DELAI
+        else
+          break
+        fi
+        (( i = i + 1 ))
+      done
+      if [ ${status} -gt 0 ] ; then
+        echo "IGCM_sys_Get : error"
+        cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+        IGCM_debug_Exit "IGCM_sys_Get"
+      else
+        \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      fi
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+    if [ "$#" -eq 1 ]; then
+      thredds_rm ${R_DODS}/${1}
+      status=$?
+    else
+	thredds_rm ${R_DODS}
+      status=$?
+    fi
+
+#    if [ ${status} -gt 0 ] ; then
+#      echo "IGCM_sys_Dods_Rm : error."
+#      cat out_dods_rm
+#      IGCM_debug_Exit "IGCM_sys_Dods_Rm"
+#    else
+#      rm out_dods_rm
+#    fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+
+#    if [ ! -d ${R_SAVE}/${1} ] ; then
+#      echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ."
+#      echo "Nothing has been done."
+#      return
+#    fi
+
+
+      thredds_cp ${1} ./${R_DODS}/.
+
+    status=$?
+
+#       if [ ${status} -gt 0 ] ; then
+#           echo "IGCM_sys_Dods_Cp : error."
+#           cat out_dods_cp
+#           IGCM_debug_Exit "IGCM_sys_Dods_Cp"
+#       else
+#           rm out_dods_cp
+#       fi
+
+  fi
+  return $status
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  typeset status
+  if [ $DRYRUN = 0 ]; then
+    if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+
+    if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then
+      echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS."
+      echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+      return
+    fi
+    #
+    if [ -d ${R_SAVE}/${1} ] ; then
+      cd ${R_SAVE}
+    elif [ -d ${R_FIGR}/${1} ] ; then
+      cd ${R_FIGR}
+    fi
+
+    IGCM_sys_Dods_Rm ${1}
+    IGCM_sys_Dods_Cp ${1}
+    status=0
+
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Put_Dods : error."
+      IGCM_debug_Exit "IGCM_sys_Put_Dods"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+  fi
+
+  /bin/sync
+
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise a default file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Default modules will be used"
+      module purge > /dev/null 2>&1 
+      EnvFile=/gpfswork/rech/psl/commun/MachineEnvironment/jeanzay/env_jeanzay
+  fi
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+  IGCM_debug_Print 1 ${EnvFile}
+  . ${EnvFile}
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for Jean-Zay. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+  if [ ${executionType} -eq 2 ] ; then
+    export SLURM_HOSTFILE=./hostlist
+  fi
+
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+  if [ ${executionType} -eq 2 ] ; then
+    unset SLURM_HOSTFILE
+  fi
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP
+      (( nodeNumber = coreNumber / NB_CORE_PER_NODE ))
+      [ $(( ${coreNumber} % ${NB_CORE_PER_NODE} )) -ne 0 ] && (( nodeNumber = nodeNumber + 1 ))
+      sed -e "/::openMPthreads::/d"                 \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"       \
+	-e "/ntasks/i\#SBATCH --nodes=${nodeNumber}"\
+        -e "/ntasks/i\#SBATCH --exclusive"          \
+         ${file} > ${file}.tmp
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+  IGCM_debug_Print 1 "executionType= ${executionType}"
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # MPMD mode
+    # 1 MPI only : executionType=1
+    # 2 MPI/OpenMP : executionType=2
+
+    if [ -f run_file ] ; then
+      IGCM_sys_Rm -f run_file
+    fi
+    touch run_file
+
+    # case 1 : Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+      # Build run_file
+      current_core=0
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if the component has an executable
+        if ( [ "X${ExeNameOut}" != X\"\" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          (( end_core = ${current_core} + ${comp_proc_mpi_loc} - 1 ))
+          echo "${current_core}-${end_core} ./${ExeNameOut}" >> run_file
+          (( current_core = ${end_core} + 1 ))
+        fi
+      done
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} --multi-prog ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    else 
+
+    # 2 MPI/OpenMP : executionType=2
+
+    # MPI-OpenMP (MPMD)
+    # export SLURM_HOSTFILE=./hostlist 
+    # srun --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file
+    # example of  hostlist file :
+    # r3i3n33
+    # r3i3n33
+    # ...
+    # example of run_file :
+    # 0-70 ./prog_lmdz.x.sh %o %t
+    # 71-430 ./prog_opa.xx.sh %o %t
+    # 431-431 ./prog_xios.x.sh %o %t
+    # examples of prog_file :
+    # prog_lmdz.x.sh :
+    # (( init = 0 + $1 ))
+    # (( index = init * 10 ))
+    # (( slot = index % 40 ))
+    # taskset -c $slot-$((slot + 10 - 1)) ./script_lmdz.x.ksh
+    # that will become
+    # taskset -c 0-9 ./script_lmdz.x.ksh
+    # ...
+    # with script_lmdz.x.ksh
+    # export OMP_STACKSIZE=3g
+    # export OMP_PLACES=cores
+    # export OMP_NUM_THREADS=10
+    # ./lmdz.x > out_lmdz.x.out.${SLURM_PROCID} 2>out_lmdz.x.err.${SLURM_PROCID}
+
+    #  Hosts treatment
+    _bkIFS=$IFS;
+	IFS=$'\n'; set -f
+	listnodes=($(< <( scontrol show hostnames $SLURM_JOB_NODELIST )))
+	IFS=$_bkIFS; set +f
+	rm -f hostlist
+
+     # Loop on the components to build run_file and script_exec files
+	rank=0
+	current_core=0
+        current_core_mpi=0
+
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          eval comp_proc_nod_loc=\${${comp}_PROC_NOD}
+     
+
+          # Build script files
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+          # Check if the number of threads is correct
+	      case ${comp_proc_omp_loc} in
+		  2|4|5|10|20)
+		      IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+		      ;;
+		  *)
+		      IGCM_debug_Exit "ERROR with OMP parameters !"
+		      IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+		      IGCM_debug_Print 2 "Only 2,4,5,10,20 as number of OMP threads are possible "
+		      IGCM_debug_Verif_Exit
+		      ;;
+	      esac
+            echo "export OMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export OMP_PLACES=cores"  >> script_${ExeNameOut}.ksh
+            echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}"  >> script_${ExeNameOut}.ksh
+
+          fi
+
+          # to have out/err per process on different files
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}" >> script_${ExeNameOut}.ksh
+
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+        # Build run_file
+        # Only if the component has an executable
+        if ( [ "X${ExeNameOut}" != X\"\" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          (( end_core = ${current_core_mpi} + ${comp_proc_mpi_loc} - 1 ))
+          echo "${current_core_mpi}-${end_core} ./prog_${ExeNameOut}.sh %o %t" >> run_file
+          (( current_core_mpi = ${end_core} + 1 ))
+        fi
+
+          if [ ${comp_proc_nod_loc} -gt 1 ] ; then
+              (( offset_comp_proc_loc =  NB_CORE_PER_NODE / (comp_proc_mpi_loc / comp_proc_nod_loc) ))
+          else
+              (( offset_comp_proc_loc =  comp_proc_omp_loc ))
+          fi
+
+          # Build configuration file
+ 
+	      echo "#!/bin/sh" > prog_${ExeNameOut}.sh
+          echo "(( init = $current_core + \$1 ))" >> prog_${ExeNameOut}.sh
+          echo "(( index = init * $comp_proc_omp_loc ))" >> prog_${ExeNameOut}.sh
+          echo "(( slot = index % 40 ))" >> prog_${ExeNameOut}.sh
+	      echo "echo ${ExeNameOut} taskset -c \$slot"-"\$((slot + $comp_proc_omp_loc - 1))" >> prog_${ExeNameOut}.sh
+          echo "taskset -c \$slot"-"\$((slot + $comp_proc_omp_loc - 1)) ./script_${ExeNameOut}.ksh" >> prog_${ExeNameOut}.sh
+
+          IGCM_sys_Chmod u+x prog_${ExeNameOut}.sh
+
+        # Build hostlist file
+
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+             (( index_host = current_core / NB_CORE_PER_NODE ))
+             host_value=${listnodes[${index_host}]}
+               echo "$host_value" >> hostlist
+             (( current_core = current_core + offset_comp_proc_loc ))
+          done
+        fi
+      done
+
+      ## variable added to stop after 60s instead of 600s by default. 
+      ## This is used when no error comes from executables and when something stopped an executable without notice. 
+      export SLURM_WAIT=60
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+
+    fi # if ${OK_PARA_MPMD}
+
+  else
+  # Only one executable (SPMD mode):  executionType=3, 4, 5 and 6
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        # Build script files
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+        if ( ${OK_PARA_OMP} ) ; then
+            eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+	    # Check if the number of threads is correct
+	    case ${comp_proc_omp_loc} in
+		2|4|5|10|20)
+		    IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+		    ;;
+		*)
+		    IGCM_debug_Exit "ERROR with OMP parameters !"
+		    IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+		    IGCM_debug_Print 2 "Only 2,4,5,10,20 as number of OMP threads are possible "
+		    IGCM_debug_Verif_Exit
+		    ;;
+	    esac 
+            echo ""  >> script_${ExeNameOut}.ksh
+            echo "export OMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            echo "export OMP_PLACES=cores"  >> script_${ExeNameOut}.ksh
+            echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+
+        eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+        
+        # To have out/err per process on different files
+        echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}"  >> script_${ExeNameOut}.ksh
+        EXECUTION="${HOST_MPIRUN_COMMAND} ./script_${ExeNameOut}.ksh"
+
+        IGCM_debug_Print 1 "sys Irene : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi # ${OK_PARA_MPMD}
+
+  IGCM_debug_Print 1 "sys Irene : execution command is "
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${WORK} ] || [ X${RUN_DIR_PATH} = X${SCRATCH} ] || [ X${RUN_DIR_PATH} = X${STORE} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  elif ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X/gpfswork/rech/${DataProject}/${LOGIN} ] || [ X${RUN_DIR_PATH} = X/gpfsscratch/rech/${DataProject}/${LOGIN} ] || [ X${RUN_DIR_PATH} = X/gpfsstore/rech/${DataProject}/${LOGIN} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  echo "IGCM_sys_check_quota is desactivated on JeanZay because there is actually no way to check scratch quota on this computing center (2019.11.19)"
+#  if ( $DEBUG_sys ) ; then
+#    echo "IGCM_sys_check_quota"
+#  fi
+#  # Limit of quota (in %)
+#  limit_quota=90
+#
+#  # Check of the volume
+#  volume_quota=$(ccc_quota | grep ' scratch' | gawk '{print $2}')
+#  volume_avail=$(ccc_quota | grep ' scratch' | gawk '{print $3}')
+#
+#  if ( [ ! X${volume_quota} = X ] && [ ! ${volume_quota} = "-" ] ) ; then
+#
+#    unit_avail=${volume_avail: -1}
+#    unit_quota=${volume_quota: -1}
+#
+#    if [ "${unit_quota}" = "*" ] ; then
+#      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+#      IGCM_debug_Print 1 "More than 100% of your quota is used"
+#      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+#      IGCM_debug_Print 1 "You must have more than 10% available to run"
+#      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+#      IGCM_debug_Verif_Exit
+#    fi
+#
+#    temp_avail=${volume_avail%%${volume_avail: -1}*}
+#    temp_quota=${volume_quota%%${volume_quota: -1}*}
+#
+#    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+#
+#    # Convertion
+#      if [ ${volume_avail: -1} = "T" ] ; then
+#        (( temp_avail = temp_avail * 1000000000000 ))
+#      elif [ ${volume_avail: -1} = "G" ] ; then
+#        (( temp_avail = temp_avail * 1000000000 ))
+#      elif [ ${volume_avail: -1} = "M" ] ; then
+#        (( temp_avail = temp_avail * 1000000 ))
+#      elif [ ${volume_avail: -1} = "k" ] ; then
+#        (( temp_avail = temp_avail * 1000 ))
+#      else
+#        (( temp_avail = volume_avail ))
+#      fi
+#      if [ ${volume_quota: -1} = "T" ] ; then
+#        (( temp_quota = temp_quota * 1000000000000 ))
+#      elif [ ${volume_quota: -1} = "G" ] ; then
+#        (( temp_quota = temp_quota * 1000000000 ))
+#      elif [ ${volume_quota: -1} = "M" ] ; then
+#        (( temp_quota = temp_quota * 1000000 ))
+#      elif [ ${volume_quota: -1} = "k" ] ; then
+#        (( temp_quota = temp_quota * 1000 ))
+#      else
+#        (( temp_quota = volume_quota ))
+#      fi
+#    fi
+#
+#    quota_volume=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+##    echo "volume ratio is " $quota_volume
+#
+#    if [ ${quota_volume} -ge ${limit_quota} ] ; then
+#      IGCM_debug_Print 1 "Please, check your quota of volume on scratch"
+#      IGCM_debug_Print 1 "${quota_volume}% of your quota is used"
+#      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+#      IGCM_debug_Print 1 "You must have more than 10% available to run"
+#      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+#      IGCM_debug_Verif_Exit
+#    fi
+#
+#  fi
+#
+## Check of the number of inodes
+#
+#  inode_quota=$(ccc_quota | grep ' scratch' | gawk '{print $6}')
+#  inode_avail=$(ccc_quota | grep ' scratch' | gawk '{print $7}')
+#
+#  if ( [ ! X${inode_quota} = X ] && [ ! ${inode_quota} = "-" ] ) ; then
+#
+#    unit_avail=${inode_avail: -1}
+#    unit_quota=${inode_quota: -1}
+#
+#    if [ "${unit_quota}" = "*" ] ; then
+#      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+#      IGCM_debug_Print 1 "More than 100% of your quota is used"
+#      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+#      IGCM_debug_Print 1 "You must have more than 10% available to run"
+#      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+#      IGCM_debug_Verif_Exit
+#    fi
+#
+#    temp_avail=${inode_avail%%${inode_avail: -1}*}
+#    temp_quota=${inode_quota%%${inode_quota: -1}*}
+#
+#    if [ ! ${unit_avail} = ${unit_quota} ] ; then
+#
+#    # Convertion
+#      if [ ${inode_avail: -1} = "T" ] ; then
+#        (( temp_avail = temp_avail * 1000000000000 ))
+#      elif [ ${inode_avail: -1} = "G" ] ; then
+#        (( temp_avail = temp_avail * 1000000000 ))
+#      elif [ ${inode_avail: -1} = "M" ] ; then
+#        (( temp_avail = temp_avail * 1000000 ))
+#      elif [ ${inode_avail: -1} = "k" ] ; then
+#        (( temp_avail = temp_avail * 1000 ))
+#      else
+#        (( temp_avail = inode_avail ))
+#      fi
+#
+#      if [ ${inode_quota: -1} = "T" ] ; then
+#        (( temp_quota = temp_quota * 1000000000000 ))
+#      elif [ ${inode_quota: -1} = "G" ] ; then
+#        (( temp_quota = temp_quota * 1000000000 ))
+#      elif [ ${inode_quota: -1} = "M" ] ; then
+#        (( temp_quota = temp_quota * 1000000 ))
+#      elif [ ${inode_quota: -1} = "k" ] ; then
+#        (( temp_quota = temp_quota * 1000 ))
+#      else
+#        (( temp_quota = inode_quota ))
+#      fi
+#    fi
+#    quota_inode=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc)
+##    echo "inode ratio is " $quota_inode
+#
+#    if [ ${quota_inode} -ge ${limit_quota} ] ; then
+#      IGCM_debug_Print 1 "Please, check your quota of inode on scratch"
+#      IGCM_debug_Print 1 "${quota_inode}% of your quota is used"
+#      IGCM_debug_Print 1 "Use the ccc_quota command to check"
+#      IGCM_debug_Print 1 "You must have more than 10% available to run"
+#      IGCM_debug_Exit "Not enough space to run ! STOP HERE"
+#      IGCM_debug_Verif_Exit
+#    fi
+#  fi
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+#need to implemented on Jean Zay 
+  touch $1
+#  ssh irene191 /usr/bin/ccc_myproject > $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  eval ${1}=${SLURM_JOBID}
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  ID=$( squeue -u $user | grep Job_${config_UserChoices_JobName} | gawk ' { print $1}' )
+
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  NbRun=$(squeue -u $user | \ 
+      grep -v JOBID | gawk 'BEGIN { x=0 } ( $NF ~ JobName ) { x=x+1 } END { print x }' )
+
+  eval ${2}=${NbRun}
+
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_ListJobInQueue
+#D-* Purpose: Produce a list of users computing jobs (excluding post-processing)
+#D-* Examples: IGCM_sys_ListJobInQueue ${User} JobNameList
+#D-
+function IGCM_sys_ListJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_ListJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_ListJobInQueue"
+  fi
+
+# to be implemented on Jean Zay 
+ set -A JobList $( squeue -u $user | gawk '{print $3}' | grep -v NAME)
+#  # With -f option, the full job name is given in the last column
+#  set -A JobList $( ccc_mstat -f | gawk -v User=$1             \
+#                                        '( $2  == User      && \
+#                                           $NF != /TS/      && \
+#                                           $NF !~ /PACK/    && \
+#                                           $NF !~ /REBUILD/ && \
+#                                           $NF !~ /pack/ )     \
+#                                         { print $NF }' | sed -e "s/\(.*\)\.[0-9]*/\1/" )
+#
+  eval set -A ${2} ${JobList[*]}
+
+  IGCM_debug_PopStack "IGCM_sys_ListJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+# To be implemented on Jean Zay 
+#
+#  \ccc_mprun atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#  status=$?
+#  if [ ${status} -gt 0 ] ; then
+#    echo "IGCM_sys_atlas : error code ${status}"
+#    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#    IGCM_debug_PopStack "IGCM_sys_atlas"
+#    return 1
+#  else
+#    IGCM_debug_PopStack "IGCM_sys_atlas"
+#    return 0
+#  fi
+#
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with nemo specific rebuild on curie
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  /gpfswork/rech/psl/commun/Tools/rebuild_nemo/bin/rebuild_nemo ${1} ${2}
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh	(revision 5899)
@@ -0,0 +1,1266 @@
+#!/bin/ksh
+
+#**************************************************************
+# Author: Sebastien Denvil, Martial Mancip, Christian Laguerre
+# Contact: Martial.Mancip__at__ipsl.jussieu.fr
+# $Revision:: 1487                                     $ Revision of last commit
+# $Author:: jgipsl                                     $ Author of last commit
+# $Date:: 2019-08-28 17:42:23 +0200 (Wed, 28 Aug 2019) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+#
+#**************************************************************
+
+#=========================================================
+# The documentation of this file can be automatically generated
+# if you use the prefix #D- for comments to be extracted.
+# Extract with command: cat lib* | grep "^#D-" | cut -c "4-"
+#=========================================================
+
+#D-#==================================================
+#D-LibIGCM_sys for obelix
+#D-#==================================================
+#D-
+#D- This ksh library if a layer under some usefull
+#D-environment variables and shell commands.
+#D-All those definitions depend on host particularities.
+#D-It manages a stack mechanism and test validity of operations.
+#D-All function described bellow must be prefixed by IGCM_sys.
+
+#====================================================
+# libIGCM_sys PARAMETERS
+#====================================================
+
+#====================================================
+# set DEBUG_sys to true to output calls of function
+typeset -r DEBUG_sys=${DEBUG_sys:=true}
+
+#====================================================
+# Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get)
+typeset -r DRYRUN=${DRYRUN:=0}
+
+# YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
+# -------------------------------------------------------------------------------------
+# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
+# |          |  Cp/Exe/param/files |            |         |                           |
+# |          |  Chmod Qsub         |            |         |                           |
+# -------------------------------------------------------------------------------------
+# |    0     |       yes           |    yes     |  yes    |      yes                  |
+# -------------------------------------------------------------------------------------
+# |    1     |       yes           |    yes     |  yes    |      no                   |
+# -------------------------------------------------------------------------------------
+# |    2     |       yes           |    yes     |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+# |    3     |       yes           |    no      |  no     |      no                   |
+# -------------------------------------------------------------------------------------
+
+#=====================================================
+# Global Variables :
+#=====================================================
+# Language : "fr" or "en"
+typeset -r MYLANG="fr"
+
+#=====================================================
+# Host user names project maxCpuTime
+# $hostname ou hostname
+typeset HOST=${HOST:=$( hostname )}
+# $username ou whoami
+typeset LOGIN=${LOGIN:=$( whoami )}
+# $hostname of the MASTER job
+typeset MASTER=${MASTER:=$( hostname )}
+# project name
+typeset PROJECT=NONE
+# jobWarningDelay in seconds
+typeset jobWarningDelay=${PBS_WALLTIME}
+
+#D-
+#D-#==================================================
+#D-Program used in libIGCM
+#D-#==================================================
+
+# Submit command
+typeset SUBMIT=${SUBMIT:=qsub}
+# rsync with path
+typeset -r RSYNC=/usr/bin/rsync
+# RSYNC_opt args to rsync
+typeset -r RSYNC_opt="-va"
+# ie storage filesystem
+typeset -r STOREHOST=${MASTER}
+
+#====================================================
+# Access to module command
+#====================================================
+. /usr/share/Modules/init/ksh
+
+#====================================================
+# Set environment tools (ferret, nco, cdo, rebuild, ...)
+#====================================================
+if [ X${TaskType} = Xcomputing ] ; then
+    IGCM_debug_Print 1 "Modules will be loaded later in IGCM_sys_activ_variables."
+else
+    . /home/orchideeshare/igcmg/MachineEnvironment/obelix/env_atlas_obelix
+fi
+
+[ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:"
+[ ! X${TaskType} = Xchecking ] && module list
+
+# Load python
+module load python/2.7.5
+
+#====================================================
+# Host specific DIRECTORIES
+#====================================================
+# For rebuild
+export PATH=${PATH}:/home/orchideeshare/igcmg/IOIPSL_PLUS/modipsl.tagv2_2_4.28082019/bin/
+
+#====================================================
+#- MirrorlibIGCM for frontend
+typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false}
+
+#====================================================
+#- libIGCM_POST for frontend
+typeset -r libIGCM_POST=${libIGCM}
+
+#====================================================
+#- R_EXE   (==> BIN_DIR = ${MODIPSL}/bin )
+typeset -r R_EXE="${MODIPSL}/bin"
+
+#====================================================
+#- SUBMIT_DIR : submission dir
+if [ X${PBS_O_WORKDIR} != X ] ; then
+  typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${PBS_O_WORKDIR}}
+else
+  typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${PWD}}
+fi
+
+#====================================================
+#- IN
+typeset -r R_IN=${R_IN:=/home/orchideeshare/igcmg/IGCM}
+
+#====================================================
+#- RUN_DIR_PATH : Temporary working directory (=> TMP)
+if [ X${PBS_JOBID} != X ] ; then
+  typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/scratch/$PBS_O_LOGNAME.$PBS_JOBID}
+else
+  typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=/tmp/tmp$$}
+fi
+
+#====================================================
+#- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs
+typeset -r OUTCOMMAND_PATH=/tmp
+
+#====================================================
+#- HOST_MPIRUN_COMMAND
+typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="time mpirun"}
+
+#====================================================
+#- Max number of arguments passed to nco operator or demigration command
+UNIX_MAX_LIMIT=360
+
+#====================================================
+#- set PackDefault to false on obelix
+PackDefault=false
+
+#====================================================
+#- Default number of MPI task for IPSL coupled model
+#- required for backward compatibility
+#-
+DEFAULT_NUM_PROC_OCE=5
+DEFAULT_NUM_PROC_CPL=1
+(( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL ))
+
+#D-#==================================================
+#D-function IGCM_sys_defineArchives
+#D-* Purpose:
+#D-* Define ARCHIVE : Dedicated to large files
+#D-* Define STORAGE : Dedicated to small/medium files
+#D-* Define R_OUT   : Output tree located on ARCHIVE
+#D-* Define R_FIG   : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files)
+#D-* Define R_BUF   : Output tree located on STORAGE hosting files waiting for rebuild or pack processes
+#D-* if SpaceName=TEST nothing special will hapen
+#D-* Examples:
+#D-
+function IGCM_sys_defineArchives {
+  IGCM_debug_PushStack "IGCM_sys_defineArchives"
+
+  if [ ! X${config_UserChoices_ARCHIVE} = X ]; then
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${config_UserChoices_ARCHIVE}
+  else
+    #====================================================
+    #- ARCHIVE (dedicated to large files)
+    ARCHIVE=${ARCHIVE:=/home/scratch01/${LOGIN}}
+  fi
+
+  if [ ! X${config_UserChoices_STORAGE} = X ]; then
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${config_UserChoices_STORAGE}
+  else
+    #====================================================
+    #- STORAGE (dedicated to small/medium files)
+    STORAGE=${ARCHIVE}
+  fi
+
+  # ON OBELIX NO SPECIAL CASE WHEN X${config_UserChoices_SpaceName} = XTEST
+
+  #====================================================
+  #- R_OUT
+  R_OUT=${ARCHIVE}/IGCM_OUT
+
+  #====================================================
+  #- R_FIG (hosting figures : monitoring and atlas, and/or small files)
+  R_FIG=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml)
+  CMIP6_BUF=${STORAGE}/IGCM_OUT
+
+  #====================================================
+  #- R_BUF (ONLY FOR double copy an scratch)
+  R_BUF=${STORAGE}/IGCM_OUT
+
+  IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}"
+  IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}"
+  IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}"
+
+  IGCM_debug_PopStack "IGCM_sys_defineArchives"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive
+#D-* Purpose: Archive rsh command
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive" $@
+  /bin/ksh <<-EOF
+    ${@}
+EOF
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_RshArchive"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RshArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_RshArchive_NoError
+#D-* Purpose: Archive rsh command, without error
+#D-*          used only in monitoring.job
+#D-* Examples:
+#D-
+function IGCM_sys_RshArchive_NoError {
+  IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@
+  /bin/ksh <<-EOF
+    ${@} 2> /dev/null
+EOF
+  IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_MkdirArchive
+#D-* Purpose: Mkdir on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_MkdirArchive {
+  IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_MkdirArchive :" $@
+  fi
+  #- creation de repertoire sur le serveur fichier
+  if [ ! -d ${1} ]; then
+    \mkdir -p $1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}"
+      IGCM_debug_Exit "IGCM_sys_MkdirArchive"
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_MkdirArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestDirArchive
+#D-* Purpose: Test Directory that must exists on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestDirArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_TestDirArchive :" $@
+  fi
+  typeset ExistFlag
+  ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestDirArchive"
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_IsFileArchived
+#D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only
+#D-* Examples:
+#D-
+function IGCM_sys_IsFileArchived {
+  IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_IsFileArchived :" $@
+  fi
+  typeset IsArchivedFlag
+  # Never archived for this system
+  IsArchivedFlag=1
+  IGCM_debug_PopStack "IGCM_sys_IsFileArchived"
+
+  return ${IsArchivedFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_TestFileArchive
+#D-* Purpose: Test file that must NOT EXISTS on Archive
+#D-* Examples:
+#D-
+function IGCM_sys_TestFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@
+  typeset ExistFlag
+  ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 )
+  IGCM_debug_PopStack "IGCM_sys_TestFileArchive"
+
+  return ${ExistFlag}
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountFileArchive
+#D-* Purpose: Count files on Archive filesystem
+#D-* Examples:
+#D-
+function IGCM_sys_CountFileArchive {
+  IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@
+  ls ${@} 2>/dev/null | wc -l
+  if [ $? -gt 0 ] ; then
+    echo "IGCM_sys_CountFileArchive : erreur."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountFileArchive"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Tree
+#D-* Purpose: Tree directories with files on ${ARCHIVE}
+#D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT}
+#D-
+function IGCM_sys_Tree {
+  IGCM_debug_PushStack "IGCM_sys_Tree" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Tree :" $@
+  fi
+
+  \ls -lR ${@}
+
+  IGCM_debug_PopStack "IGCM_sys_Tree"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Qsub
+#D-* Purpose: Qsub new job
+#D-* Examples:
+#D-
+function IGCM_sys_Qsub {
+  IGCM_debug_PushStack "IGCM_sys_Qsub" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Qsub :" $@
+  fi
+  typeset options status
+  options="-o ${SUBMIT_DIR}/${Script_Output}"
+  /usr/local/bin/qsub ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_Qsub"
+  else
+    JobID=$( gawk {'print $1'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Qsub"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_QsubPost
+#D-* Purpose: Qsub new job on scalaire
+#D-* Examples:
+#D-
+function IGCM_sys_QsubPost {
+  IGCM_debug_PushStack "IGCM_sys_QsubPost" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_QsubPost :" $@
+  fi
+  typeset options status
+  options="-o ${POST_DIR}/${Script_Post_Output}.out -v ${listVarEnv}"
+  /usr/local/bin/qsub ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+
+  cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+  if [ ${status} -gt 0 ] ; then
+    IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}"
+    IGCM_debug_Exit "IGCM_sys_QsubPost"
+  else
+    JobID=$( gawk {'print $1'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )
+  fi
+  IGCM_debug_PopStack "IGCM_sys_QsubPost"
+}
+
+#D-*************************
+#D- File transfer functions
+#D-*************************
+#D-
+
+#D-#==================================================
+#D-function IGCM_sys_RmRunDir
+#D-* Purpose: rm tmpdir (dummy function most of the time batch
+#D-                      scheduler will do the job)
+#D-* Examples:
+#D-
+function IGCM_sys_RmRunDir {
+  IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_RmRunDir :" $@
+    echo "Dummy call, let the scheduler do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_RmRunDir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dir
+#D-* Purpose: Copy a complete directory on $(ARCHIVE)
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -d ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+      return
+    fi
+
+    typeset status
+
+    # Only if we use rsync
+    #IGCM_sys_TestDirArchive $( dirname $2 )
+    #
+    #USUAL WAY
+    \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get_Dir
+#D-* Purpose: Copy a complete directory from ${ARCHIVE}
+#D-* Examples:
+#D-
+function IGCM_sys_Get_Dir {
+  IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get_Dir :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    typeset NB_ESSAI DELAI status i
+    # number of tentative
+    NB_ESSAI=3
+    # time delay between tentative
+    DELAI=2
+
+    #
+    # USUAL WAY
+    i=0
+    while [ $i -lt $NB_ESSAI ] ; do
+      \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+      status=$?
+      if [ ${status} -gt 0 ] ; then
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}"
+        IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again."
+        sleep $DELAI
+      else
+        break
+      fi
+      (( i = i + 1 ))
+    done
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get_Dir"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get_Dir"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Rest
+#D-* Purpose: Put computied restarts on ${ARCHIVE}.
+#D-           File and target directory must exist.
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Rest {
+  IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Rest :" $@
+  fi
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    fi
+
+    typeset status
+    #
+    # USUAL WAY
+    \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+#       #RSYNC WITH NETWORK SSH CALL
+#       echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       #RSYNC WITH NFS USE
+#       echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+#       ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+
+#       status=$?
+#       IGCM_sys_Rsync_out $status
+
+#       ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+#       (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}"
+      [ -f ${1} ] && ls -l ${1}
+      [ -f ${2} ] && ls -l ${2}
+      [ -f ${2}/${1} ] && ls -l ${2}/${1}
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Rest"
+    else
+
+      if [ X${JobType} = XRUN ] ; then
+        [ -f ${2} ] && IGCM_sys_Chmod 444 ${2}
+        [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1}
+      fi
+
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Rest"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Out
+#D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Out {
+  IGCM_debug_PushStack "IGCM_sys_Put_Out" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Out :" $@
+  fi
+
+  typeset status
+
+  if [ $DRYRUN = 0 ]; then
+    if [ ! -f ${1} ] ; then
+      echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ."
+      IGCM_debug_PopStack "IGCM_sys_Put_Out"
+      return 1
+    fi
+    #
+    IGCM_sys_MkdirArchive $( dirname $2 )
+    #
+    if [ X${JobType} = XRUN ] ; then
+      if [ X${3} = X ] ; then
+        IGCM_sys_Chmod 444 ${1}
+      fi
+    fi
+    #
+
+    echo ${RSYNC} ${RSYNC_opt} $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    ${RSYNC} ${RSYNC_opt} $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+    IGCM_sys_Rsync_out $status
+
+    ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    (( status=status+$? ))
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Put_Out : rsync failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Put_Out"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Out"
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Get
+#D-* Purpose: Get a file from ${ARCHIVE}
+#D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX
+#D-            IGCM_sys_Get /l Array_contain_myfiles /destpath/
+function IGCM_sys_Get {
+  IGCM_debug_PushStack "IGCM_sys_Get" $@
+
+  typeset DEST status dm_liste
+
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Get :" $@
+  fi
+  if [ $DRYRUN -le 2 ]; then
+    if [ X${1} = X'/l' ] ; then
+      eval set +A dm_liste \${${2}}
+    else
+      dm_liste=${1}
+    fi
+    eval DEST=\${${#}}
+
+    # test if the (first) file is present in the old computation :
+    IGCM_sys_TestFileArchive ${dm_liste[0]}
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ."
+      IGCM_debug_Exit "IGCM_sys_Get"
+      return
+    fi
+
+    #USUAL WAY
+    \cp ${dm_liste[*]} ${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+    status=$?
+
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status}"
+      cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+      IGCM_debug_Exit "IGCM_sys_Get"
+    else
+      \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    fi
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Get"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetDate_Monitoring
+#D-* Purpose: get the last year for which the monitoring has been computed
+#D-* Examples:
+#D-
+function IGCM_sys_GetDate_Monitoring {
+  IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetDate_Monitoring :" $@
+  fi
+
+  eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' )
+
+  IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Rm
+#D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Rm {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Rm :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Dods_Cp
+#D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole.
+#D-* Examples:
+#D-
+function IGCM_sys_Dods_Cp {
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Dods_Cp :" $@
+  fi
+  return 0
+}
+
+#D-#==================================================
+#D-function IGCM_sys_Put_Dods
+#D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole. Dummy function here
+#D-* Examples:
+#D-
+function IGCM_sys_Put_Dods {
+  IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_Put_Dods :" $@
+  fi
+  IGCM_debug_PopStack "IGCM_sys_Put_Dods"
+}
+
+##############################################################
+# REBUILD OPERATOR
+
+#D-#==================================================
+#D-function IGCM_sys_sync
+#D-* Purpose: flush buffer on disk (dummy function on Obelix)
+#D-* Examples:
+#D-
+function IGCM_sys_sync {
+  IGCM_debug_PushStack "IGCM_sys_sync" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_sync :" $@
+    echo "Dummy call, let the system do that."
+  fi
+  IGCM_debug_PopStack "IGCM_sys_sync"
+}
+
+############################################################
+# Activate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_activ_variables
+#D-* Purpose: set environement variables prior to execution
+#D-* Examples:
+#D-
+function IGCM_sys_activ_variables {
+  IGCM_debug_PushStack "IGCM_sys_activ_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_activ_variables"
+  fi
+
+# --------------------------------------------------------------------
+#D- MODULE specifications
+# --------------------------------------------------------------------
+  # Source the file EnvFile containing all module load needed to run the model.
+  # EnvFile can be specified in config.card. If this is the case and if the file exists, 
+  # it will be used. Otherwise a default file will be used.
+  if [ ! X${config_UserChoices_EnvFile} = X ] && [ -f ${config_UserChoices_EnvFile} ] ; then
+      # EnvFile is set in config.card and the file exists
+      IGCM_debug_Print 1 "EnvFile set in config.card will be used"
+      EnvFile=${config_UserChoices_EnvFile}
+  else
+      IGCM_debug_Print 1 "IGCM_sys_active_variables : Default modules will be used"
+      EnvFile=/home/orchideeshare/igcmg/MachineEnvironment/obelix/env_atlas_obelix
+  fi
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Following EnvFile will be used :" 
+  IGCM_debug_Print 1 ${EnvFile}
+  . ${EnvFile}
+
+  IGCM_debug_Print 1 "IGCM_sys_active_variables : Now loaded modules for obelix. "
+  module list
+
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  ulimit -s unlimited
+
+  IGCM_debug_PopStack "IGCM_sys_activ_variables"
+}
+
+############################################################
+# Desactivate Running Environnment Variables
+
+#D-#==================================================
+#D-function IGCM_sys_desactiv_variables
+#D-* Purpose: unset environement variables after execution
+#D-* Examples:
+#D-
+function IGCM_sys_desactiv_variables {
+  IGCM_debug_PushStack "IGCM_sys_desactiv_variables"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_desactiv_variables"
+  fi
+# --------------------------------------------------------------------
+#D- MPI specifications
+# --------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+#D- Other specifications
+# --------------------------------------------------------------------
+
+  IGCM_debug_PopStack "IGCM_sys_desactiv_variables"
+}
+
+############################################################
+# Update job headers to be used by the scheduler
+
+#D-#==================================================
+#D-function IGCM_sys_updateHeaders
+#D-* Purpose: Update job headers to be used by the scheduler
+#D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP
+#D-
+function IGCM_sys_updateHeaders {
+  IGCM_debug_PushStack "IGCM_sys_updateHeaders"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_updateHeaders"
+  fi
+  typeset file
+  file=$1
+
+  if [ ${executionType} -eq 1 ] ; then
+    # MPMD + MPI
+    sed -e "/::openMPthreads::/d"                  \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 2 ] ; then
+    # MPMD + MPI + OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${coreNumber}/"    \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 3 ] ; then
+    # SPMD + MPI/OMP
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 4 ] ; then
+    # SPMD + MPI only
+    sed -e "s/::JobNumProcTot::/${mpiTasks}/"      \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 5 ] ; then
+    # SPMD + OMP only
+    sed -e "s/::openMPthreads::/${openMPthreads}/" \
+        -e "/::JobNumProcTot::/d"                  \
+      ${file} > ${file}.tmp
+
+  elif [ ${executionType} -eq 6 ] ; then
+    # SEQUENTIAL THEN
+    sed -e "s/::JobNumProcTot::/1/"                \
+        -e "/::openMPthreads::/d"                  \
+      ${file} > ${file}.tmp
+
+  fi
+
+  IGCM_sys_Mv ${file}.tmp ${file}
+
+  IGCM_debug_PopStack "IGCM_sys_updateHeaders"
+}
+
+############################################################
+# Build MPI/OMP scripts run file (dummy function)
+
+#D-#==================================================
+#D-function IGCM_sys_build_run_file
+#D-* Purpose: build run file (deprecated)
+#D-* Examples:
+#D-
+function IGCM_sys_build_run_file {
+  IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file "
+}
+
+############################################################
+# Build MPI/OMP scripts
+
+#D-#==================================================
+#D-function IGCM_sys_build_execution_scripts
+#D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND}
+#D-* Examples:
+#D-
+function IGCM_sys_build_execution_scripts
+{
+  IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_build_execution_scripts " $@
+  fi
+
+  EXECUTION=${HOST_MPIRUN_COMMAND}
+
+  # MPMD mode
+  if ( ${OK_PARA_MPMD} ) ; then
+
+    # Only MPI (MPMD)
+    if  ( ! ${OK_PARA_OMP} ) ; then
+
+      if [ -f run_file ] ; then
+        IGCM_sys_Rm -f run_file
+      fi
+      touch run_file
+
+      # Build run_file
+
+      # First loop on the components for the coupler ie oasis (only if oasis3)
+      # the coupler ie oasis3 must be the first one
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # for CPL component only
+        if [ "X${comp}" = "XCPL" ]  && [ "X${ExeNameOut}" != X\"\" ] ; then
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "-np ${comp_proc_mpi_loc} ./${ExeNameOut} " >> run_file
+        fi
+      done
+
+      # Then second loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Only if we really have an executable for the component and not the coupler ie oasis:
+        if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "-np ${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file
+        fi
+      done
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} --app ./run_file"
+
+      IGCM_sys_Chmod u+x run_file
+      if ( $DEBUG_sys ) ; then
+        echo "run_file contains : "
+        cat run_file
+      fi
+ 
+    # MPI-OpenMP (MPMD)
+    else
+
+      #  Hosts treatment
+      ${HOST_MPIRUN_COMMAND} hostname | sort | uniq > hosts.tmp
+
+      i=0
+      rm -f hosts
+      IGCM_debug_Print 1 "sys Obelix, Hosts available :"
+      for nodes in `cat hosts.tmp` ; do
+        host[$i]=$nodes
+        echo "${host[$i]} slots=1 max_slots=1" >> hosts
+        IGCM_debug_Print 1 ${host[$i]}
+        i=$((i+1))
+      done
+      rm -f hosts.tmp
+
+      listnodes=${host[*]}
+
+      EXECUTION="${HOST_MPIRUN_COMMAND} -hostfile hosts"
+
+      # Initialisation
+      rank=0
+      current_core=0
+      core_per_node=6
+      init_exec=n
+
+      # Loop on the components
+      for comp in ${config_ListOfComponents[*]} ; do
+
+        eval ExeNameIn=\${config_Executable_${comp}[0]}
+        eval ExeNameOut=\${config_Executable_${comp}[1]}
+
+        # Not possible if oasis has an executable (i.e old version of oasis3)
+        if ( [ "X${ExeNameOut}" != X\"\" ] &&  [ "X${comp}" = "XCPL" ] ) ; then
+          IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version"
+          IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler"
+          IGCM_debug_Verif_Exit
+        fi
+
+        # Only if we really have an executable for the component :
+        if [ "X${ExeNameOut}" != X\"\" ] ; then
+
+          eval comp_proc_mpi_loc=\${${comp}_PROC_MPI}
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+
+          echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+          echo ""  >> script_${ExeNameOut}.ksh
+          if [ ${comp_proc_omp_loc} -gt 1 ] ; then
+
+            # Check if the number of threads is correct
+            case ${comp_proc_omp_loc} in
+            2|4|6)
+              IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads"
+              ;;
+            *)
+              IGCM_debug_Exit "ERROR with OMP parameters !"
+              IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads"
+              IGCM_debug_Print 2 "Only 2,4,6 as number of OMP threads are possible "
+              IGCM_debug_Verif_Exit
+              ;;
+            esac
+            #echo "export KMP_STACKSIZE=3g"  >> script_${ExeNameOut}.ksh
+            #echo "export KMP_LIBRARY=turnaround"  >> script_${ExeNameOut}.ksh
+            #echo "export MKL_SERIAL=YES"  >> script_${ExeNameOut}.ksh
+            echo "export OMP_STACKSIZE=200M" >> script_${ExeNameOut}.ksh 
+            echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+          fi
+
+          #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh
+	  echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh
+	  echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh
+	  echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+
+          if [ ${init_exec} = y ] ; then
+            EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+          else
+            EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh"
+            init_exec=y
+          fi
+
+          # Build rankfile : method used to assign cores and nodes for the MPI process
+          # Ex :
+          #rank 0=curie5296 slot=0,1,2,3
+          #rank 1=curie5296 slot=4,5,6,7
+          # Example of final command :
+          # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh
+          # with script_lmdz.x.ksh :
+          # #!/bin/ksh
+          #export OMP_STACKSIZE=200M
+          #export OMP_NUM_THREADS=4
+          #./lmdz.x
+
+          for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do
+            (( index_host = current_core / core_per_node ))
+            host_value=${host[${index_host}]}
+            (( slot =  current_core % core_per_node ))
+            virg=","
+            string_final=""
+            for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do
+              string=$index$virg
+              string_final=$string_final$string
+            done
+            string_final=$( echo $string_final | sed "s/.$//" )
+            echo "rank $rank=$host_value slot=$string_final" >> rankfile
+            (( rank = rank + 1 ))
+            (( current_core = current_core + comp_proc_omp_loc ))
+          done
+        fi
+      done
+    fi
+
+  # Only one executable (SPMD mode).
+  else
+
+    for comp in ${config_ListOfComponents[*]} ; do
+
+      # Only if we really have an executable for the component :
+      eval ExeNameOut=\${config_Executable_${comp}[1]}
+      if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then
+
+        echo "#!/bin/ksh" > script_${ExeNameOut}.ksh
+        echo ""  >> script_${ExeNameOut}.ksh
+        if ( ${OK_PARA_OMP} ) ; then
+          eval comp_proc_omp_loc=\${${comp}_PROC_OMP}
+          echo "export OMP_STACKSIZE=200M" >> script_${ExeNameOut}.ksh
+          echo "export OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh
+        fi
+
+	if [ ${mpiTasks} -eq 1 ] && [ ${openMPthreads} -eq 1 ] ; then
+          # Case with only one proc
+          # mpirun should not be used at obelix for only one proc
+          # Output text per process
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="time ./script_${ExeNameOut}.ksh"
+        elif  ( ${OK_PARA_MPI} ) ; then
+          # Default : mpirun used if nb_proc gt 1
+          # Output text per process
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${OMPI_COMM_WORLD_RANK} 2>out_${ExeNameOut}.err.\${OMPI_COMM_WORLD_RANK}"  >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="${HOST_MPIRUN_COMMAND} ./script_${ExeNameOut}.ksh"
+	elif [ ${executionType} -eq 6 ] ; then
+          # Sequentiel case: this is the same as the first case.
+          echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh
+          IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh
+          EXECUTION="time ./script_${ExeNameOut}.ksh"
+        else
+	  # Strange case. 
+          IGCM_debug_Exit "ERROR with OK_PARA_MPI"
+          IGCM_debug_Print 2 "sys Obelix : OK_PARA_MPI=False and mpiTask/openMPthreds different from 1"
+          IGCM_debug_Verif_Exit
+        fi
+
+        IGCM_debug_Print 1 "sys Obelix : script_${ExeNameOut}.ksh contains"
+        cat script_${ExeNameOut}.ksh
+
+      fi
+
+    done
+
+  fi
+
+  IGCM_debug_Print 1 "sys Obelix : execution command is"
+  IGCM_debug_Print 1 "$EXECUTION"
+
+  IGCM_debug_PopStack "IGCM_sys_build_execution_scripts"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_path
+#D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine
+#D-* do not point to an important use directory. Stop immediately in that case.
+#D-* Examples:
+#D-
+function IGCM_sys_check_path {
+  IGCM_debug_PushStack "IGCM_sys_check_path"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_path"
+  fi
+
+  if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${ARCHIVE} ] ) ; then
+    IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}"
+    IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}"
+    IGCM_debug_Exit "This will stop the job"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_check_path"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_check_quota. Dummy call here
+#D-* Purpose: check user quota. Stop the simulation if quota above 90%
+#D-* Examples:
+#D-
+function IGCM_sys_check_quota {
+  IGCM_debug_PushStack "IGCM_sys_check_quota"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  # TO BE IMPLEMENTED
+
+  IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_projectAccounting
+#D-* Purpose: store project accounting information in a file
+#D-* Examples:
+#D-
+function IGCM_sys_projectAccounting {
+  IGCM_debug_PushStack "IGCM_sys_projectAccounting"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_check_quota"
+  fi
+
+  touch $1
+
+  IGCM_debug_PopStack "IGCM_sys_projectAccounting"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_getJobSchedulerID
+#D-* Purpose: Get the job ID during execution
+#D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID
+#D-
+function IGCM_sys_getJobSchedulerID {
+  IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_getJobSchedulerID"
+  fi
+
+  eval ${1}=$( echo ${PBS_JOBID} | awk -F. '{print $1}' )
+
+  IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_GetJobID
+#D-* Purpose: Get the job ID from the JobName
+#D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID
+#D-
+function IGCM_sys_GetJobID {
+  IGCM_debug_PushStack "IGCM_sys_GetJobID"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_GetJobID"
+  fi
+
+  # With -f option, the full job name is given in the last column
+  ID="$( qstat -u $2 | grep -w $1 | gawk '-F ' '{print $10}' )"
+
+  eval ${3}=${ID}
+  IGCM_debug_PopStack "IGCM_sys_GetJobID"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_CountJobInQueue
+#D-* Purpose: Count number of users job
+#D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun
+#D-
+function IGCM_sys_CountJobInQueue {
+  IGCM_debug_PushStack "IGCM_sys_CountJobInQueue"
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_CountJobInQueue"
+  fi
+  IGCM_debug_PopStack "IGCM_sys_CountJobInQueue"
+}
+
+#D-#==================================================
+#D-function IGCM_sys_atlas
+#D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity
+#D-* Examples:
+#D-
+function IGCM_sys_atlas {
+  IGCM_debug_PushStack "IGCM_sys_atlas" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_atlas :" $@
+  fi
+
+  typeset status
+
+  \atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_atlas : error code ${status}"
+    cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 1
+  else
+    IGCM_debug_PopStack "IGCM_sys_atlas"
+    return 0
+  fi
+
+  IGCM_debug_PopStack "IGCM_sys_atlas"
+}
+
+
+#D-#==================================================
+#D-function IGCM_sys_rebuild_nemo
+#D-* Purpose: rebuild nemo parallel files with general rebuild
+#D-* Examples:
+#D-
+
+function IGCM_sys_rebuild_nemo {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_nemo :" $@
+  fi
+
+  nemo_generic_restart_file_name_out=${1}
+  nemo_extension_out=${3}
+  shift ; shift ; shift
+
+  IGCM_sys_rebuild -o ${nemo_generic_restart_file_name_out}.${nemo_extension_out} $@
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_nemo"
+}
+
Index: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/run.card.init
===================================================================
--- CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/run.card.init	(revision 5899)
+++ CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/libIGCM/run.card.init	(revision 5899)
@@ -0,0 +1,35 @@
+# $Revision:: 1052                                     $ Revision of last commit
+# $Author:: sdipsl                                     $ Author of last commit
+# $Date:: 2014-09-11 16:23:32 +0200 (Thu, 11 Sep 2014) $ Date of last commit
+# IPSL (2006)
+#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
+
+#========================================================================
+[Configuration]
+#Compute date of loop
+PeriodDateBegin=
+PeriodDateEnd=
+CumulPeriod=
+# State of Job "Start", "Running", "OnQueue", "Completed"
+PeriodState="Start"
+
+SubmitPath=
+simuid=
+#========================================================================
+[PostProcessing]
+
+#RebuildRunning=y/n
+#RebuildToComplete=number of dir to rebuild
+#RebuildDateID=PeriodDateEnd correspondant au dernier flag de RebuildFrequency=true
+
+TimeSeriesRunning=n
+TimeSeriesCompleted=
+
+#========================================================================
+[Log]
+# Executables Size
+LastExeSize=()
+
+#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+# CumulPeriod | PeriodDateBegin |   PeriodDateEnd |        RunDateBegin |          RunDateEnd |     RealCpuTime |     UserCpuTime |      SysCpuTime | ExeDate
+#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
