From 40a5f1f7bff056b091ded6bc3cc1e6eb4dc0ca78 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 2 Oct 2017 15:55:15 +0200
Subject: [PATCH] Philippe 02/10/2017: IO: split NAM_OUTPUT in NAM_BACKUP and
 NAM_OUTPUT

---
 .../KTEST/001_2Drelief/002_mesonh/EXSEG1.nam  |  2 +-
 .../001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH |  2 +-
 .../001_2Drelief/002_mesonh/EXSEG1.nam_WENO   |  2 +-
 .../001_2Drelief/002_mesonh/README.namelist   |  2 +-
 .../KTEST/002_3Drelief/002_mesonh/EXSEG1.nam  |  2 +-
 .../002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH |  2 +-
 .../002_3Drelief/002_mesonh/EXSEG1.nam_WENO   |  2 +-
 .../002_3Drelief/002_mesonh/README.namelist   |  2 +-
 MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam   |  2 +-
 .../003_KW78/002_mesonh/EXSEG1.nam_CEN4TH     |  2 +-
 .../KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO |  2 +-
 .../KTEST/003_KW78/002_mesonh/README.namelist |  2 +-
 .../KTEST/004_Reunion/003_mesonh/EXSEG1.nam   |  2 +-
 .../004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH  |  2 +-
 .../004_Reunion/003_mesonh/EXSEG1.nam_WENO    |  2 +-
 .../004_Reunion/003_mesonh/README.namelist    |  2 +-
 .../007_16janvier/008_run2/EXSEG1.nam.src     |  6 +-
 .../008_run2/EXSEG1.nam.src_CEN4TH            |  2 +-
 .../008_run2/EXSEG1.nam.src_WENO              |  2 +-
 .../007_16janvier/008_run2/EXSEG2.nam.src     |  4 +-
 .../007_16janvier/008_run2/README.namelist    |  2 +-
 .../007_16janvier/008_run2/run_mesonh_xyz     |  2 +-
 .../KTEST/007_16janvier/009_diag/DIAG1.nam1   |  5 +-
 .../KTEST/007_16janvier/009_diag/DIAG1.nam2   |  1 +
 .../008_run2/run_mesonh_xyz.ihm               |  2 +-
 .../009_ICARTT/003_mesonh/EXSEG1.nam.src      |  2 +-
 .../KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam  |  2 +-
 MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam      |  2 +-
 MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam  |  2 +-
 MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam   |  2 +-
 .../SURCOUCHE/src/mode_io_manage_struct.f90   |  4 +-
 src/MNH/default_desfmn.f90                    |  8 +--
 src/MNH/{modd_output.f90 => modd_bakout.f90}  | 13 ++--
 src/MNH/modeln.f90                            |  2 +-
 src/MNH/modn_backup.f90                       | 54 ++++++++++++++++
 src/MNH/modn_output.f90                       | 12 ++--
 src/MNH/read_desfmn.f90                       | 61 ++++++++++++++----
 src/MNH/read_exsegn.f90                       | 64 +++++++++++++++----
 src/MNH/write_desfmn.f90                      |  9 ++-
 39 files changed, 212 insertions(+), 83 deletions(-)
 rename src/MNH/{modd_output.f90 => modd_bakout.f90} (91%)
 create mode 100644 src/MNH/modn_backup.f90

diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam
index e9ee7ee30..aa9fbf128 100644
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam
@@ -16,4 +16,4 @@
           /
 &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, 
          XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.T. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. /
+&NAM_BACKUP XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. /
diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH
index e9ee7ee30..aa9fbf128 100644
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH
@@ -16,4 +16,4 @@
           /
 &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, 
          XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.T. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. /
+&NAM_BACKUP XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. /
diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO
index 701945300..2bb366fb8 100644
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO
@@ -16,4 +16,4 @@
           /
 &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, 
          XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.F. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. /
+&NAM_BACKUP XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. /
diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist b/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist
index 1f8db2472..d8d2e14a6 100644
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist
@@ -78,7 +78,7 @@ XALKTOP 	= 0.005 	; maximum value of the Rayleigh damping (in s-1)
 XALZBOT 	= 12570. 	; height (in meter) in the physical space of the upper absorbing layer base
 LNUMDIFU 	=.T. 		; switch to activate the numerical diffusion for momentum
 
-&NAM_OUTPUT 
+&NAM_BACKUP 
 XBAK_TIME(1,1) 	= 360.		; an array of increments (in second) from the beginning of the segment 
 				to the instant where the i-th fields output on FM-files is realized by model "m" 
 XBAK_TIME(1,2) 	= 720. 
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam
index 4bb950b09..f90475dbd 100644
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam
@@ -18,5 +18,5 @@
 &NAM_DYN  XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F,
           XALKTOP = 0.005, XALZBOT = 12570.,
           LNUMDIFU =.F. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. /
+&NAM_BACKUP XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. /
 
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH
index 152069116..a4f1b3e83 100644
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH
@@ -18,5 +18,5 @@
 &NAM_DYN  XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F,
           XALKTOP = 0.005, XALZBOT = 12570.,
           LNUMDIFU =.F. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. /
+&NAM_BACKUP XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. /
 
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO
index e23da91df..b91886883 100644
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO
@@ -18,5 +18,5 @@
 &NAM_DYN  XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F,
           XALKTOP = 0.005, XALZBOT = 12570.,
           LNUMDIFU =.F. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. /
+&NAM_BACKUP XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. /
 
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist b/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist
index 9c9405520..618d1223c 100644
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist
@@ -69,7 +69,7 @@ XALKTOP 	= 0.005 	; maximum value of the Rayleigh damping (in s-1)
 XALZBOT 	= 12570. 	; height (in meter) in the physical space of the upper absorbing layer base
 LNUMDIFU 	=.F. 		; switch to activate the numerical diffusion for momentum
 
-&NAM_OUTPUT 
+&NAM_BACKUP 
 XBAK_TIME(1,1) 	= 500.		; an array of increments (in second) from the beginning of the segment 
 				to the instant where the i-th fields output on FM-files is realized by model "m" 
 XBAK_TIME(1,2) 	= 1000. 
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
index 7105c9ab4..5f08f00ca 100644
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
@@ -22,6 +22,6 @@
 &NAM_DYN  XSEGLEN = 1800.,
           XASSELIN = 0.2, LCORIO = F,
           LNUMDIFU = T /
-&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
+&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
            XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. /
 
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH
index d976f57c8..6e937b30e 100644
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH
@@ -22,6 +22,6 @@
 &NAM_DYN  XSEGLEN = 1800.,
           XASSELIN = 0.2, LCORIO = F,
           LNUMDIFU = T /
-&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
+&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
            XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. /
 
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO
index d1e0fde4f..da63bfedc 100644
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO
@@ -23,6 +23,6 @@
 &NAM_DYN  XSEGLEN = 1800.,
           XASSELIN = 0.2, LCORIO = F,
           LNUMDIFU = T /
-&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
+&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
            XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. /
 
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist b/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist
index aafe6d768..3e19ad6e3 100644
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist
@@ -87,7 +87,7 @@ LCORIO 		= F 		; switch for the Coriolis parameters
 				   .TRUE. the Earth rotation is taken into account )
 LNUMDIFU 	=.T. 		; switch to activate the numerical diffusion for momentum
 
-&NAM_OUTPUT 
+&NAM_BACKUP 
 XBAK_TIME(1,1) 	= 450.		; an array of increments (in second) from the beginning of the segment 
 				to the instant where the i-th fields output on FM-files is realized by model "m" 
 XBAK_TIME(1,2) 	= 900. 
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
index 506c6feb9..b36eacb5e 100644
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
@@ -26,7 +26,7 @@
 &NAM_DYN  XSEGLEN = 40.,
           LCORIO = F, LNUMDIFU = F,
           XALKTOP = 0.01, XALZBOT = 14000. /
-&NAM_OUTPUT
+&NAM_BACKUP
            XBAK_TIME(1,1) = 40.,  XBAK_TIME(1,2) = 10., 
            XBAK_TIME(1,3) = 20.,  XBAK_TIME(1,4) = 30.  /
 &NAM_BUDGET CBUTYPE='CART', XBULEN=200.,
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH
index 59373a59e..31400d93d 100644
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH
@@ -25,7 +25,7 @@
 &NAM_DYN  XSEGLEN = 40.,
           LCORIO = F, LNUMDIFU = T,
           XALKTOP = 0.01, XALZBOT = 14000. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20.,
+&NAM_BACKUP XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20.,
            XBAK_TIME(1,3) = 30., XBAK_TIME(1,4) = 40.  /
 &NAM_BUDGET CBUTYPE='CART', XBULEN=200.,
             NBUKL=2, NBUKH=51, NBUIL=15, NBUIH=64, NBUJL=15, NBUJH=68,
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO
index 9976fce0a..a0b4e4ebe 100644
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO
@@ -25,7 +25,7 @@
 &NAM_DYN  XSEGLEN = 40.,
           LCORIO = F, LNUMDIFU = F,
           XALKTOP = 0.01, XALZBOT = 14000. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20.,
+&NAM_BACKUP XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20.,
            XBAK_TIME(1,3) = 30., XBAK_TIME(1,4) = 40.  /
 &NAM_BUDGET CBUTYPE='CART', XBULEN=200.,
             NBUKL=2, NBUKH=51, NBUIL=15, NBUIH=64, NBUJL=15, NBUJH=68,
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist b/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist
index e8abf401b..76b1e4e22 100644
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist
@@ -121,7 +121,7 @@ LCORIO 		= F 		; switch for the Coriolis parameters
 				   .TRUE. the Earth rotation is taken into account )
 LNUMDIFU 	=.T. 		; switch to activate the numerical diffusion for momentum
 
-&NAM_OUTPUT 
+&NAM_BACKUP 
 XBAK_TIME(1,1) 	= 10.		; an array of increments (in second) from the beginning of the segment 
 				to the instant where the i-th fields output on FM-files is realized by model "m" 
 XBAK_TIME(1,2) 	= 20. 
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
index 18d95d283..7a2af571c 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
@@ -1,4 +1,4 @@
-&NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
+&NAM_CONFIO  LCDF4=T, LLFIOUT=F, LLFIREAD=F, NIO_VERB=5, NGEN_VERB=5 /
 &NAM_CONFZ
  ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=8 
 /
@@ -11,7 +11,7 @@
 &NAM_ADVn  CUVW_ADV_SCHEME="CEN4TH",CMET_ADV_SCHEME = "PPM_01", CSV_ADV_SCHEME = "PPM_01" CTEMP_SCHEME="LEFR"/
 &NAM_PARAMn  CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW",
              CDCONV = "KAFR",CSCONV="KAFR" /
-&NAM_PARAM_RADn  XDTRAD = 3600., XDTRAD_CLONLY = 3600., NRAD_COLNBR = 400 /
+&NAM_PARAM_RADn  XDTRAD = 300., XDTRAD_CLONLY = 300., NRAD_COLNBR = 400  NRAD_DIAG=5 /
 &NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1 LREFRESH_ALL = T,LDOWN = T /
 &NAM_LBCn  CLBCX = 2*"OPEN", CLBCY = 2*"OPEN" /
 &NAM_TURBn  CTURBLEN = "BL89", CTURBDIM = "1DIM", LSUBG_COND = F /
@@ -24,7 +24,7 @@
 &NAM_DYN  XSEGLEN = 300., LCORIO = T, LNUMDIFU = T,
            XALKTOP = 0.001, XALZBOT = 14500. /
 &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 300. /
+&NAM_BACKUP XBAK_TIME(1,1) = 300. /
 &NAM_DIAG_SURFn  /
 &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY",CROUGH='NONE', 
        CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH
index 6d20751b4..72ebbc3a2 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH
@@ -25,7 +25,7 @@
 &NAM_DYN  XSEGLEN = 300., LCORIO = T, LNUMDIFU = T,
            XALKTOP = 0.001, XALZBOT = 14500. /
 &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 300. /
+&NAM_BACKUP XBAK_TIME(1,1) = 300. /
 &NAM_DIAG_SURFn  /
 &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY",CROUGH='NONE', 
        CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO
index 4a27fcadb..485184ee3 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO
@@ -26,7 +26,7 @@
 &NAM_DYN  XSEGLEN = 300., LCORIO = T, LNUMDIFU = F,
            XALKTOP = 0.001, XALZBOT = 14500. /
 &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 3, XWAY(2) = 2. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 300. /
+&NAM_BACKUP XBAK_TIME(1,1) = 300. /
 &NAM_DIAG_SURFn  /
 &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY",CROUGH='NONE', 
        CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src
index 4a936109a..3039ec4e9 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src
@@ -5,8 +5,8 @@
            NRIMX = 0, NRIMY = 0, LVE_RELAX = T, XT4DIFU = 1500. /
 &NAM_ADVn CUVW_ADV_SCHEME="CEN4TH",CMET_ADV_SCHEME = "PPM_01", CSV_ADV_SCHEME = "PPM_01" CTEMP_SCHEME="LEFR"/
 &NAM_PARAMn  CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW", CDCONV = "KAFR" /
-&NAM_PARAM_RADn  XDTRAD = 1800., XDTRAD_CLONLY = 1800., LCLEAR_SKY = F,
-             NRAD_COLNBR = 400 /
+&NAM_PARAM_RADn  XDTRAD = 300., XDTRAD_CLONLY = 300., LCLEAR_SKY = F,
+             NRAD_COLNBR = 400 NRAD_DIAG=5 /
 &NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1, LREFRESH_ALL = T,
               LDOWN = T /
 &NAM_LBCn  CLBCX = 2*"OPEN", CLBCY = 2*"OPEN", XCPHASE = 20. /
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist b/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist
index 601cbd062..0104c6444 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist
@@ -134,7 +134,7 @@ NDAD(2) 	= 1 		; model number of the father of each model (here the father of mo
 NDTRATIO(2) 	= 4 		; ratio between time step of model 2 and its father (model 1)
 XWAY(2) 	= 2. 		; interactive nesting level for model 2 and its father 
 
-&NAM_OUTPUT 
+&NAM_BACKUP 
 XBAK_TIME(1,1) 	= 300.		; an array of increments (in second) from the beginning of the segment 
 				to the instant where the i-th fields output on FM-files is realized by model "m" 
 
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
index 720c732e8..9037483ec 100755
--- a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
@@ -5,7 +5,7 @@
 #MNH_LIC for details. version 1.
 set -x
 set -e
-rm -f 16JAN* OUT*  EXSEG?.nam 
+#rm -f 16JAN* OUT*  EXSEG?.nam 
 cp EXSEG1.nam.src EXSEG1.nam
 cp EXSEG2.nam.src EXSEG2.nam
 ln -sf  ../004_arp2lfi/16JAN_06_MNH.{des,lfi,nc} .
diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1
index c9b6e568d..0d4afe94a 100644
--- a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1
+++ b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1
@@ -2,13 +2,14 @@
 &NAM_CONFZ
  ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=1
 /
-&NAM_DIAG             
+&NAM_DIAG 
+LHU_FLX=T,LTRAJ=T,            
   CISO='TKPREV',
   LVAR_RS=T, 
   LVAR_TURB=F,
   NCONV_KF=1, 
   LVAR_MRW=T,
-  LVAR_MRSV=F,
+  LVAR_MRSV=T,
   LTRAJ=F,
   LTPZH=T,
   LBLTOP=T,
diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2
index 982826290..ec8dccd9d 100644
--- a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2
+++ b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2
@@ -3,6 +3,7 @@
  ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=1
 /
 &NAM_DIAG             
+LHU_FLX=T,LTRAJ=T,
   CISO='TKPREV',
   LVAR_RS=T, 
   LVAR_TURB=F,
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm
index a46b16667..a777ed883 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm
@@ -110,7 +110,7 @@ cat <<EOF > EXSEG1.nam
 &NAM_DYN  XSEGLEN = 300., LCORIO = T, LNUMDIFU = T,
            XALKTOP = 0.001, XALZBOT = 14500. /
 &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. /
-&NAM_OUTPUT XBAK_TIME(1,1) = 300. /
+&NAM_BACKUP XBAK_TIME(1,1) = 300. /
 &NAM_DIAG_SURFn  /
 &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY", CROUGH='Z01D',
        CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src b/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src
index 28c3218b2..5d534b528 100644
--- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src
+++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src
@@ -53,7 +53,7 @@
 &NAM_DYN  XSEGLEN = 7200, XASSELIN = 0.2, LCORIO = T, LNUMDIFU = F,
           XALKTOP = 0.005, XALZBOT = 14000. /
 &NAM_NESTING   /
-&NAM_OUTPUT XBAK_TIME(1,1)=3600., XBAK_TIME(1,2)=7200. /
+&NAM_BACKUP XBAK_TIME(1,1)=3600., XBAK_TIME(1,2)=7200. /
 &NAM_BUDGET  CBUTYPE='NONE' /
 &NAM_ISBAn /
 &NAM_SEAFLUXn /
diff --git a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam
index 23f90e751..31cad3c13 100644
--- a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam
@@ -43,6 +43,6 @@
 &NAM_DYN  XSEGLEN = 1800.,
           XASSELIN = 0.2, LCORIO = F,
           LNUMDIFU = F/
-&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
+&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900.,
            XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. /
 
diff --git a/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam b/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam
index 7c39262ce..fc7b49333 100644
--- a/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam
+++ b/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam
@@ -65,7 +65,7 @@
             LNUMDIFU = T,
             XALKTOP = 0.001, 
             XALZBOT = 16000. /
-&NAM_OUTPUT 
+&NAM_BACKUP 
             XBAK_TIME(1,1)=10800. ,
             XBAK_TIME(1,2)=21600. ,
             XBAK_TIME(1,3)=32400. ,
diff --git a/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam b/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam
index eef13b52a..49534a5d9 100644
--- a/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam
+++ b/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam
@@ -63,7 +63,7 @@
             LNUMDIFU = T,
             XALKTOP = 0.001, 
             XALZBOT = 16000. /
-&NAM_OUTPUT 
+&NAM_BACKUP 
             XBAK_TIME(1,1)=10800. ,
             XBAK_TIME(1,2)=21600. ,
             XBAK_TIME(1,3)=32400. ,
diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam
index 29f347e01..ee3b30710 100644
--- a/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam
@@ -62,7 +62,7 @@
                 LNUMDIFTH = .F.,
                 LNUMDIFSV = .F. /
 
-&NAM_OUTPUT     XBAK_TIME(1,1) = 1800., XBAK_TIME(1,2) = 3600. /
+&NAM_BACKUP     XBAK_TIME(1,1) = 1800., XBAK_TIME(1,2) = 3600. /
 
 &NAM_BUDGET     CBUTYPE = 'CART',
                 NBUMOD = 1,
diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index db50a9e88..545ffa494 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -22,6 +22,7 @@ CONTAINS
 SUBROUTINE IO_PREPARE_BAKOUT_STRUCT(KSUP,PTSTEP,PSEGLEN)
 !#########################################################################
 !
+USE MODD_BAKOUT
 USE MODD_CONF
 USE MODD_CONF_n
 USE MODD_DYN,        ONLY : XSEGLEN
@@ -30,7 +31,6 @@ USE MODD_IO_SURF_MNH,ONLY : IO_SURF_MNH_MODEL
 USE MODD_NESTING,    ONLY : CDAD_NAME,NDAD
 USE MODD_NSV,        ONLY: NSV
 USE MODD_OUT_n,      ONLY : OUT_MODEL
-USE MODD_OUTPUT
 USE MODD_VAR_ll,     ONLY : IP
 USE MODE_FIELD
 !
@@ -574,8 +574,8 @@ END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT
 !
 SUBROUTINE IO_FILE_ADD2LIST(TPFILE,HNAME,HTYPE,HMODE,KLFINPRAR,KLFITYPE,KLFIVERB,TPDADFILE,OOLD)
 !
+USE MODD_BAKOUT,         ONLY : LOUT_COMPRESS,LOUT_REDUCE_FLOAT_PRECISION,NOUT_COMPRESS_LEVEL
 USE MODE_MODELN_HANDLER, ONLY : GET_CURRENT_MODEL_INDEX
-USE MODD_OUTPUT,         ONLY : LOUT_COMPRESS,LOUT_REDUCE_FLOAT_PRECISION,NOUT_COMPRESS_LEVEL
 !
 TYPE(TFILEDATA),POINTER,         INTENT(INOUT) :: TPFILE    !File structure to return
 CHARACTER(LEN=*),                INTENT(IN)    :: HNAME     !Filename
diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index 0abb32643..0e5a2c839 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -60,7 +60,7 @@ END MODULE MODI_DEFAULT_DESFM_n
 !!      Module MODD_DYN        : XSEGLEN,XASSELIN,LCORIO,LNUMDIFF
 !!                               XALKTOP,XALZBOT
 !!
-!!      Module MODD_OUTPUT     : XOUT
+!!      Module MODD_BAKOUT
 !!
 !!      Module MODD_NESTING    : NDAD(m),NDTRATIO(m),XWAY(m)
 !!
@@ -174,7 +174,7 @@ END MODULE MODI_DEFAULT_DESFM_n
 !!      Modifications 24/11/96  (Masson)  add LREFRESH_ALL in deep convection
 !!      Modifications 12/02/96  (Lafore) transformation to DEFAULT_DESFM_n for spawning
 !!      Modifications 22/07/96  (Lafore) gridnesting implementation
-!!      Modifications 29/07/96  (Lafore) add the module MODD_FMOUT (renamed MODD_OUTPUT)
+!!      Modifications 29/07/96  (Lafore) add the module MODD_FMOUT (renamed MODD_BAKOUT)
 !!      Modifications 23/06/97  (Stein)  add the equation system name
 !!      Modifications 10/07/97  (Masson) add MODD_PARAM_GROUNDn : CROUGH
 !!      Modifications 28/07/97  (Masson) remove LREFRESH_ALL and LSTEADY_DMASS
@@ -228,7 +228,7 @@ USE MODD_CONF             !        For INIT only DEFAULT_DESFM1
 USE MODD_CONFZ
 USE MODD_DYN
 USE MODD_NESTING
-USE MODD_OUTPUT
+USE MODD_BAKOUT
 USE MODD_SERIES
 USE MODD_CONF_n           ! modules used to set the default values is only
 USE MODD_LUNIT_n          ! the one corresponding to model 1. These memory
@@ -489,7 +489,7 @@ XTNUDGING = 21600.
 !
 !-------------------------------------------------------------------------------
 !
-!*      9.    SET DEFAULT VALUES FOR MODD_OUTPUT and MODD_OUT_n :
+!*      9.    SET DEFAULT VALUES FOR MODD_BAKOUT and MODD_OUT_n :
 !             ------------------------------------------------
 !
 !
diff --git a/src/MNH/modd_output.f90 b/src/MNH/modd_bakout.f90
similarity index 91%
rename from src/MNH/modd_output.f90
rename to src/MNH/modd_bakout.f90
index cef31e97c..2bf52e915 100644
--- a/src/MNH/modd_output.f90
+++ b/src/MNH/modd_bakout.f90
@@ -9,16 +9,17 @@
 ! MASDEV4_7 modd 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##################
-      MODULE MODD_OUTPUT
+      MODULE MODD_BAKOUT
 !     ##################
 !
-!!****  *MODD_OUTPUT* - declaration of informations on the instants for the
-!!      outputs of all models
+!!****  *MODD_BAKOUT* - declaration of informations on the instants for the
+!!      outputs and backups of all models
 !!
 !!    PURPOSE
 !!    -------
 !       The purpose of this  module is to declare the instants and some parameters
-!       (compression and precision reduction) of the outputs realized by all models.
+!       (compression and precision reduction) of the outputs and backups realized by
+!       all models.
 !       Introduced to facilitate the output FM-file managment in case of nesting
 !     
 !!**  IMPLICIT ARGUMENTS
@@ -29,7 +30,7 @@
 !!
 !!    REFERENCE
 !!    ---------
-!!      Book2 of Meso-NH documentation (module MODD_OUTPUT)
+!!      Book2 of Meso-NH documentation (module MODD_BAKOUT)
 !!          
 !!    AUTHOR
 !!    ------
@@ -75,4 +76,4 @@ REAL,SAVE,DIMENSION(JPMODELMAX) :: XBAK_TIME_FREQ_FIRST = 0., XOUT_TIME_FREQ_FIR
 CHARACTER(LEN=NMNHNAMELGTMAX),SAVE,ALLOCATABLE,DIMENSION(:,:) :: COUT_VAR ! Name of the fields to output
 !
 !
-END MODULE MODD_OUTPUT
+END MODULE MODD_BAKOUT
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index ce079b293..ab9729afb 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -264,7 +264,7 @@ USE MODD_DYN
 USE MODD_DYNZD
 USE MODD_CONF
 USE MODD_NESTING
-USE MODD_OUTPUT
+USE MODD_BAKOUT
 USE MODD_BUDGET
 USE MODD_PARAMETERS
 USE MODD_PARAM_ICE,        ONLY : LWARM,LSEDIC,LCONVHG,LDEPOSC
diff --git a/src/MNH/modn_backup.f90 b/src/MNH/modn_backup.f90
new file mode 100644
index 000000000..0339ee4c3
--- /dev/null
+++ b/src/MNH/modn_backup.f90
@@ -0,0 +1,54 @@
+!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
+!--------------- special set of characters for RCS information
+!-----------------------------------------------------------------
+! $Source$ $Revision$
+! MASDEV4_7 modn 2006/05/18 13:07:25
+!-----------------------------------------------------------------
+!     ##################
+      MODULE MODN_BACKUP
+!     ##################
+!
+!!****  *MODN_BACKUP* - declaration of namelist NAM_OUTPUT
+!!
+!!    PURPOSE
+!!    -------
+!       The purpose of this  module is to specify the namelist  NAM_OUTPUT
+!       which concerns the instants and some parameters (compression and precision reduction)
+!       of the backups realized by all models.
+!
+!!**  IMPLICIT ARGUMENTS
+!!    ------------------
+!!      Module MODD_BAKOUT : contains declaration of the variables describing
+!!                           the instants of the backups
+!!
+!!    REFERENCE
+!!    ---------
+!!      Book2 of Meso-NH documentation (module MODD_BACKUP)
+!!
+!!    AUTHOR
+!!    ------
+!!	J.P. Lafore      *Meteo France*
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original    26/07/96
+!!      Ph. Wautelet : 2016: new structures for outputs/backups
+!-------------------------------------------------------------------------------
+!
+!*       0.   DECLARATIONS
+!             ------------
+!
+USE MODD_BAKOUT
+!
+IMPLICIT NONE
+!
+NAMELIST/NAM_BACKUP/LBAK_BEG,LBAK_END,&
+                   XBAK_TIME,NBAK_STEP,&
+                   NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST,&
+                   XBAK_TIME_FREQ,XBAK_TIME_FREQ_FIRST
+!
+END MODULE MODN_BACKUP
diff --git a/src/MNH/modn_output.f90 b/src/MNH/modn_output.f90
index 78946acdf..242514428 100644
--- a/src/MNH/modn_output.f90
+++ b/src/MNH/modn_output.f90
@@ -22,13 +22,13 @@
 !
 !!**  IMPLICIT ARGUMENTS
 !!    ------------------
-!!      Module MODD_OUTPUT : contains declaration of the variables describing
+!!      Module MODD_BAKOUT : contains declaration of the variables describing
 !!                           the instants and some parameters (compression and
 !!                           precision reduction) of the outputs
 !!
 !!    REFERENCE
 !!    ---------
-!!      Book2 of Meso-NH documentation (module MODD_OUTPUT)
+!!      Book2 of Meso-NH documentation (module MODD_BAKOUT)
 !!          
 !!    AUTHOR
 !!    ------
@@ -43,15 +43,11 @@
 !*       0.   DECLARATIONS
 !             ------------
 !
-USE MODD_OUTPUT
+USE MODD_BAKOUT
 !
 IMPLICIT NONE
 !
-NAMELIST/NAM_OUTPUT/LBAK_BEG,LBAK_END,&
-                   XBAK_TIME,NBAK_STEP,&
-                   NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST,&
-                   XBAK_TIME_FREQ,XBAK_TIME_FREQ_FIRST, &
-                   LOUT_BEG,LOUT_END,&
+NAMELIST/NAM_OUTPUT/LOUT_BEG,LOUT_END,&
                    XOUT_TIME,NOUT_STEP,&
                    NOUT_STEP_FREQ,NOUT_STEP_FREQ_FIRST,&
                    XOUT_TIME_FREQ,XOUT_TIME_FREQ_FIRST, &
diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90
index 7611de06a..662a7ae19 100644
--- a/src/MNH/read_desfmn.f90
+++ b/src/MNH/read_desfmn.f90
@@ -199,6 +199,7 @@ END MODULE MODI_READ_DESFM_n
 USE MODD_IO_ll, ONLY : NVERB_FATAL
 USE MODD_PARAMETERS
 !
+USE MODN_BACKUP
 USE MODN_BUDGET
 USE MODN_CONF
 USE MODN_DYN
@@ -426,22 +427,56 @@ IF (KMI == 1) THEN
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_DYN)
   CALL POSNAM(ILUDES,'NAM_NESTING',GFOUND)
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_NESTING)
-  CALL POSNAM(ILUDES,'NAM_OUTPUT',GFOUND)
+  CALL POSNAM(ILUDES,'NAM_BACKUP',GFOUND)
   IF (GFOUND) THEN
-    IF (.NOT.ALLOCATED(XBAK_TIME)) ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(XOUT_TIME)) ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(NBAK_STEP)) ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(NOUT_STEP)) ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(COUT_VAR))  ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX))
-    READ(UNIT=ILUDES,NML=NAM_OUTPUT)
-    XBAK_TIME(:,:) = XNEGUNDEF
-    XOUT_TIME(:,:) = XNEGUNDEF
-    NBAK_STEP(:,:) = NNEGUNDEF
-    NOUT_STEP(:,:) = NNEGUNDEF
-    COUT_VAR(:,:)  = ''
+    IF (.NOT.ALLOCATED(XBAK_TIME)) THEN
+      ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX))
+      XBAK_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(XOUT_TIME)) THEN
+      ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) !Allocate *OUT* variables to prevent
+      XOUT_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NBAK_STEP)) THEN
+      ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX))
+      NBAK_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NOUT_STEP)) THEN
+      ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) !problems if NAM_OUTPUT does not exist
+      NOUT_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(COUT_VAR)) THEN
+      ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX))
+      COUT_VAR(:,:)  = ''
+    END IF
+    READ(UNIT=ILUDES,NML=NAM_BACKUP)
   ELSE
     CALL POSNAM(ILUDES,'NAM_FMOUT',GFOUND)
-    IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_DESFM_n','use namelist NAM_OUTPUT instead of namelist NAM_FMOUT')
+    IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_DESFM_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT')
+  END IF
+  CALL POSNAM(ILUDES,'NAM_OUTPUT',GFOUND)
+  IF (GFOUND) THEN
+    IF (.NOT.ALLOCATED(XBAK_TIME)) THEN
+      ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) !Allocate *BAK* variables to prevent
+      XBAK_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(XOUT_TIME)) THEN
+      ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX))
+      XOUT_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NBAK_STEP)) THEN
+      ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) !problems if NAM_BACKUP does not exist
+      NBAK_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NOUT_STEP)) THEN
+      ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX))
+      NOUT_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(COUT_VAR)) THEN
+      ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX))
+      COUT_VAR(:,:)  = ''
+    END IF
+    READ(UNIT=ILUDES,NML=NAM_OUTPUT)
   END IF
   CALL POSNAM(ILUDES,'NAM_BUDGET',GFOUND)
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_BUDGET)
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 67968617e..fdea69147 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -299,6 +299,7 @@ USE MODD_CONF_n, ONLY : CSTORAGE_TYPE
 USE MODD_IO_ll,  ONLY : NVERB_FATAL
 USE MODD_VAR_ll,    ONLY:  NPROC
 !
+USE MODN_BACKUP
 USE MODN_BUDGET
 USE MODN_LES
 USE MODN_CONF
@@ -498,23 +499,58 @@ IF (KMI == 1) THEN
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_DYN)
   CALL POSNAM(ILUSEG,'NAM_NESTING',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_NESTING)
-  CALL POSNAM(ILUSEG,'NAM_OUTPUT',GFOUND,ILUOUT)
+  CALL POSNAM(ILUSEG,'NAM_BACKUP',GFOUND,ILUOUT)
   IF (GFOUND) THEN
-    !Should have been allocated before in READ_DESFM_n 
-    IF (.NOT.ALLOCATED(XBAK_TIME)) ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(XOUT_TIME)) ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(NBAK_STEP)) ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(NOUT_STEP)) ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX))
-    IF (.NOT.ALLOCATED(COUT_VAR))  ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX))
-    XBAK_TIME(:,:) = XNEGUNDEF
-    XOUT_TIME(:,:) = XNEGUNDEF
-    NBAK_STEP(:,:) = NNEGUNDEF
-    NOUT_STEP(:,:) = NNEGUNDEF
-    COUT_VAR(:,:)  = ''
-    READ(UNIT=ILUSEG,NML=NAM_OUTPUT)
+    !Should have been allocated before in READ_DESFM_n
+    IF (.NOT.ALLOCATED(XBAK_TIME)) THEN
+      ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX))
+      XBAK_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(XOUT_TIME)) THEN
+      ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) !Allocate *OUT* variables to prevent
+      XOUT_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NBAK_STEP)) THEN
+      ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX))
+      NBAK_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NOUT_STEP)) THEN
+      ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) !problems if NAM_OUTPUT does not exist
+      NOUT_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(COUT_VAR)) THEN
+      ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX))
+      COUT_VAR(:,:)  = ''
+    END IF
+    READ(UNIT=ILUSEG,NML=NAM_BACKUP)
   ELSE
     CALL POSNAM(ILUSEG,'NAM_FMOUT',GFOUND)
-    IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_OUTPUT instead of namelist NAM_FMOUT')
+    IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT')
+  END IF
+  CALL POSNAM(ILUSEG,'NAM_OUTPUT',GFOUND,ILUOUT)
+  IF (GFOUND) THEN
+    !Should have been allocated before in READ_DESFM_n
+    IF (.NOT.ALLOCATED(XBAK_TIME)) THEN
+      ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) !Allocate *BAK* variables to prevent
+      XBAK_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(XOUT_TIME)) THEN
+      ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX))
+      XOUT_TIME(:,:) = XNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NBAK_STEP)) THEN
+      ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) !problems if NAM_BACKUP does not exist
+      NBAK_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(NOUT_STEP)) THEN
+      ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX))
+      NOUT_STEP(:,:) = NNEGUNDEF
+    END IF
+    IF (.NOT.ALLOCATED(COUT_VAR)) THEN
+      ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX))
+      COUT_VAR(:,:)  = ''
+    END IF
+    READ(UNIT=ILUSEG,NML=NAM_OUTPUT)
   END IF
   CALL POSNAM(ILUSEG,'NAM_BUDGET',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_BUDGET)
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index c3db884ae..1fc803357 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -133,7 +133,7 @@ END MODULE MODI_WRITE_DESFM_n
 !!      Temporary Modification (Masson 06/09/96) manual write of the first and
 !!                              third namelists because of compiler version.
 !!      Modifications  J.-P. Lafore   22/07/96 gridnesting implementation
-!!      Modifications  J.-P. Lafore   29/07/96 add NAM_FMOUT (renamed in NAM_OUTPUT)
+!!      Modifications  J.-P. Lafore   29/07/96 add NAM_FMOUT (renamed in NAM_OUTPUT/NAM_BACKUP)
 !!      Modifications  V. Masson      10/07/97 add NAM_PARAM_GROUNDn
 !!      Modifications  V. Masson      28/07/97 supress LSTEADY_DMASS
 !!      Modifications  P. Jabouille   03/10/01 LHORELAX_ modifications
@@ -153,6 +153,7 @@ USE MODD_PARAMETERS
 USE MODD_CONF
 USE MODD_DYN_n, ONLY : LHORELAX_SVLIMA
 !
+USE MODN_BACKUP
 USE MODN_CONF
 USE MODN_DYN
 USE MODN_NESTING
@@ -368,6 +369,7 @@ END IF
 WRITE(UNIT=ILUSEG,NML=NAM_CONF)
 WRITE(UNIT=ILUSEG,NML=NAM_DYN)
 WRITE(UNIT=ILUSEG,NML=NAM_NESTING)
+!WRITE(UNIT=ILUSEG,NML=NAM_BACKUP)
 !WRITE(UNIT=ILUSEG,NML=NAM_OUTPUT)
 IF(CBUTYPE /= 'NONE') THEN
   IF(CBUTYPE=='SKIP') CBUTYPE='CART'
@@ -470,9 +472,12 @@ IF (NVERB >= 5) THEN
     WRITE(UNIT=ILUOUT,FMT="(/,'********** NESTING **************************')")
     WRITE(UNIT=ILUOUT,NML=NAM_NESTING)
 !
+!    WRITE(UNIT=ILUOUT,FMT="(/,'********** BACKUP ***************************')")
+!    WRITE(UNIT=ILUOUT,NML=NAM_BACKUP)
+!
 !    WRITE(UNIT=ILUOUT,FMT="(/,'********** OUTPUT ***************************')")
 !    WRITE(UNIT=ILUOUT,NML=NAM_OUTPUT)
-!    
+!
     WRITE(UNIT=ILUOUT,FMT="('************ BUDGET ***************************')")
     WRITE(UNIT=ILUOUT,NML=NAM_BUDGET)
 !    
-- 
GitLab