diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90
index 156bba9a533f0a8552ab1cdf958d2e0796161059..80860dcca709fbad6ed3f731ddf2079d382b653c 100644
--- a/src/LIB/SURCOUCHE/src/modd_io.f90
+++ b/src/LIB/SURCOUCHE/src/modd_io.f90
@@ -45,6 +45,17 @@ TYPE TOUTBAK
   CHARACTER(LEN=28) :: CFILENAME    !Filename
   INTEGER           :: NOUTDAD = -1 !Index of the corresponding dad file (file with same time)
   CHARACTER(LEN=28) :: CDADFILENAME !Filename of dad
+  TYPE(TFILEDATA),POINTER :: TFILE => NULL() !Corresponding file
 END TYPE TOUTBAK
 
+!Structure describing the characteristics of a file
+TYPE TFILEDATA
+  CHARACTER(LEN=7)  :: CFILETYPE = "UNKNOWN" !Filetype (backup, output...)
+  TYPE(TFILEDATA),POINTER :: TFILE_PREV => NULL()
+  TYPE(TFILEDATA),POINTER :: TFILE_NEXT => NULL()
+END TYPE TFILEDATA
+
+TYPE(TFILEDATA),POINTER,SAVE :: TFILE_FIRST => NULL()
+TYPE(TFILEDATA),POINTER,SAVE :: TFILE_LAST  => NULL()
+
 END MODULE MODD_IO_ll
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 5d297c5ea1b35d24b6137af7b60e9f8bac05138e..83a552e05bed0de23de4aaf4eab3dfc6f479e597 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -915,7 +915,7 @@ IF (IOUT < NOUT_NUMB ) THEN
     YDESFM=ADJUSTL(ADJUSTR(YFMFILE)//'.des')
     !    
     CALL WRITE_DESFM_n(IMI,YDESFM,CLUOUT)
-    CALL WRITE_LFIFM_n(YFMFILE,YDADFILE)
+    CALL WRITE_LFIFM_n(YFMFILE,YDADFILE,TOUTBAKN(IOUT)%TFILE)
     COUTFMFILE = YFMFILE
     CALL MNHWRITE_ZS_DUMMY_n(CPROGRAM)
     IF (CSURF=='EXTE') THEN
diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90
index db683d82f7c2d138efec6b071ce27523633f76b6..9604e0be50fdfcbd6b271f363c11b788570c9b16 100644
--- a/src/MNH/set_grid.f90
+++ b/src/MNH/set_grid.f90
@@ -255,7 +255,7 @@ USE MODD_OUT_n,       ONLY : OUT_MODEL
 USE MODD_VAR_ll,      ONLY : IP,NPROC
 USE MODD_DYN_n,       ONLY : DYN_MODEL
 USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL
-USE MODD_IO_ll,       ONLY : TOUTBAK
+USE MODD_IO_ll
 !
 IMPLICIT NONE
 !
@@ -710,6 +710,16 @@ DO IMI = 1, NMODEL
         END IF
         WRITE (YNUMBER,FMT="('.',I3.3)") IPOS
         OUT_MODEL(IMI)%TOUTBAKN(IPOS)%CFILENAME=ADJUSTL(ADJUSTR(IO_SURF_MNH_MODEL(IMI)%COUTFILE)//YNUMBER)
+        IF (.NOT.ASSOCIATED(TFILE_FIRST)) THEN
+          ALLOCATE(TFILE_FIRST)
+          TFILE_LAST => TFILE_FIRST
+        ELSE
+          ALLOCATE(TFILE_LAST%TFILE_NEXT)
+          TFILE_LAST%TFILE_NEXT%TFILE_PREV => TFILE_LAST
+          TFILE_LAST => TFILE_LAST%TFILE_NEXT
+        ENDIF
+        OUT_MODEL(IMI)%TOUTBAKN(IPOS)%TFILE => TFILE_LAST
+        OUT_MODEL(IMI)%TOUTBAKN(IPOS)%TFILE%CFILETYPE="BACKUP"
     END IF
   END DO
   !
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index a52794462935d8fa20f9b358d06676195ccc3b2d..396d6c81eff29f4af2f2f1c52273609991bd13cb 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -470,8 +470,8 @@ IF (NVERB >= 5) THEN
     WRITE(UNIT=ILUOUT,FMT="(/,'********** NESTING **************************')")
     WRITE(UNIT=ILUOUT,NML=NAM_NESTING)
 !
-    WRITE(UNIT=ILUOUT,FMT="(/,'********** FMOUT ****************************')")
-    WRITE(UNIT=ILUOUT,NML=NAM_FMOUT)
+!    WRITE(UNIT=ILUOUT,FMT="(/,'********** FMOUT ****************************')")
+!    WRITE(UNIT=ILUOUT,NML=NAM_FMOUT)
 !    
     WRITE(UNIT=ILUOUT,FMT="('************ BUDGET ***************************')")
     WRITE(UNIT=ILUOUT,NML=NAM_BUDGET)
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index 3c199c84e03b1821997850afaf53d864221675b7..ae506e4692c42f305bb34fa117354f76691e8904 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -14,10 +14,16 @@
 !
 INTERFACE
 !
-SUBROUTINE WRITE_LFIFM_n(HFMFILE,HDADFILE)
+SUBROUTINE WRITE_LFIFM_n(HFMFILE,HDADFILE,TPFILE)
+!
+USE MODD_IO_ll, ONLY: TFILEDATA
+!
+IMPLICIT NONE
+!
 CHARACTER(LEN=28), INTENT(IN) :: HFMFILE      ! Name of FM-file to write
 CHARACTER(LEN=28), INTENT(IN) :: HDADFILE     ! corresponding FM-file name of 
                                               ! its DAD model
+TYPE(TFILEDATA),OPTIONAL,INTENT(IN) :: TPFILE ! File characteristics
 END SUBROUTINE WRITE_LFIFM_n
 !
 END INTERFACE
@@ -26,7 +32,7 @@ END MODULE MODI_WRITE_LFIFM_n
 !
 !
 !     ##########################################
-      SUBROUTINE WRITE_LFIFM_n(HFMFILE,HDADFILE)
+      SUBROUTINE WRITE_LFIFM_n(HFMFILE,HDADFILE,TPFILE)
 !     ##########################################
 !
 !!****  *WRITE_LFIFM_n* - routine to write a LFIFM file for model $n
@@ -234,6 +240,7 @@ USE MODD_LIMA_PRECIP_SCAVENGING_n
 !
 USE MODE_FMWRIT
 USE MODE_ll
+USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODE_IO_ll, ONLY: UPCASE,CLOSE_ll
 USE MODE_GRIDPROJ
 USE MODE_MODELN_HANDLER
@@ -266,6 +273,7 @@ IMPLICIT NONE
 CHARACTER(LEN=28), INTENT(IN) :: HFMFILE      ! Name of FM-file to write
 CHARACTER(LEN=28), INTENT(IN) :: HDADFILE     ! corresponding FM-file name of 
                                               ! its DAD model
+TYPE(TFILEDATA),OPTIONAL,INTENT(IN) :: TPFILE ! File characteristics
 !
 !*       0.2   Declarations of local variables
 !
@@ -363,6 +371,15 @@ IGRID=0
 ILENCH=LEN(YCOMMENT)
 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+YRECFM='FILETYPE'
+YCOMMENT=' '
+IGRID=0
+ILENCH=LEN(YCOMMENT)
+IF (PRESENT(TPFILE)) THEN
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,TPFILE%CFILETYPE,IGRID,ILENCH,YCOMMENT,IRESP)
+ELSE
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,"UNKNOWN",IGRID,ILENCH,YCOMMENT,IRESP)
+ENDIF
 !
 YRECFM='MY_NAME'
 YCOMMENT=' '