diff --git a/src/MNH/modd_fmout.f90 b/src/MNH/modd_fmout.f90
index ef8b218403f97c6a963b4b469ea3e95dfaa53c7c..df8ddd54ecabc5030aa2c1c5c3d33aabcf6163a0 100644
--- a/src/MNH/modd_fmout.f90
+++ b/src/MNH/modd_fmout.f90
@@ -63,6 +63,10 @@ INTEGER,SAVE,DIMENSION(JPMODELMAX) :: NBAK_STEP_FREQ = NNEGUNDEF ! Number
 ! of timesteps between 2 backups for each model
 INTEGER,SAVE,DIMENSION(JPMODELMAX) :: NBAK_STEP_FREQ_FIRST = 1   ! First
 ! timestep numbers between 2 backups for each model (if NBAK_STEP_FREQ is set)
+REAL,SAVE,DIMENSION(JPMODELMAX) :: XBAK_TIME_FREQ = XNEGUNDEF ! Time between
+! 2 backups for each model
+REAL,SAVE,DIMENSION(JPMODELMAX) :: XBAK_TIME_FREQ_FIRST = 0.   ! Time for first
+! backup for each model (if XBAK_TIME_FREQ is set)
 !
 !
 END MODULE MODD_FMOUT
diff --git a/src/MNH/modn_fmout.f90 b/src/MNH/modn_fmout.f90
index 07bd48ca1ea71dcba6f3887c3f396b087c81819f..eba6b91ccbceac39f00d95ec296e646e0158820a 100644
--- a/src/MNH/modn_fmout.f90
+++ b/src/MNH/modn_fmout.f90
@@ -48,6 +48,9 @@ USE MODD_FMOUT
 !
 IMPLICIT NONE
 !
-NAMELIST/NAM_FMOUT/LBAK_BEG,LBAK_END,XBAK_TIME,NBAK_STEP,NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST
+NAMELIST/NAM_FMOUT/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_FMOUT
diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90
index 34c138d0e19f83dc21e7081673f42413f69f2ec8..564184109fee3529b55ff6c0e34345d408a79bb8 100644
--- a/src/MNH/set_grid.f90
+++ b/src/MNH/set_grid.f90
@@ -528,6 +528,27 @@ DO IMI = 1, NMODEL
   ISTEP_MAX = NINT(XSEGLEN/DYN_MODEL(IMI)%XTSTEP)+1
   IF (IMI == 1) ISTEP_MAX = ISTEP_MAX - ISUP
   !
+  !*       2.3.1a0 Insert regular backups into XBAK_TIME array
+  !
+  IF (XBAK_TIME_FREQ(IMI)>0.) THEN
+    IDX = 1
+    ZOUT = XBAK_TIME_FREQ_FIRST(IMI)
+    ZOUTMAX = PSEGLEN - PTSTEP*ISUP
+    DO WHILE ( ZOUT <= ZOUTMAX )
+      !Find first non 'allocated' element
+      DO WHILE ( XBAK_TIME(IMI,IDX) >= 0. )
+        IDX = IDX + 1
+        IF (IDX > JPOUTMAX) THEN
+          PRINT *,'Error in SET_GRID when treating output list (JPOUTMAX too small)'
+          CALL ABORT
+          STOP
+        END IF
+      END DO
+      XBAK_TIME(IMI,IDX) = ZOUT
+      ZOUT = ZOUT + XBAK_TIME_FREQ(IMI)
+    END DO
+  END IF
+  !
   !*       2.3.1a  Synchronization between nested models through XBAK_TIME arrays (MODD_FMOUT)
   !
   DO JOUT = 1,JPOUTMAX
@@ -699,7 +720,8 @@ DO IMI = 1, NMODEL
   END IF
   IF (NDAD(IMI) == IMI .OR.  IMI == 1) THEN
     OUT_MODEL(IMI)%TOUTBAKN(:)%NOUTDAD = 0
-    OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CDADFILENAME = OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CFILENAME
+    !Check IPOS>0 because TOUTBAKN(0) does not exist (IPOS=0 only if no backups)
+    IF(IPOS>0) OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CDADFILENAME = OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CFILENAME
   ELSE
     DO IPOS = 1,OUT_MODEL(IMI)%NOUT_NUMB
       IDX = 0