diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90
index 2ae121fe4c37fc2778650abeceae4a9da46c7899..74e1e4e8140ed65a3b34dbe6e4c23fe5a1b54ae3 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_file.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90
@@ -565,7 +565,7 @@ SELECT CASE(TPFILE%CTYPE)
   CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD')
     !Try to close '.des' file only if it should exist
     IF ( ( TPFILE%CTYPE=='MNH' .OR. TPFILE%CTYPE=='MNHBACKUP' .OR. TPFILE%CTYPE=='MNHDIACHRONIC' ) &
-         .and. .not.associated(tpfile%tmainfile)                                                   ) THEN
+         .and. .not.associated(tpfile%tmainfile) .and. cprogram /= 'LFICDF'                        ) THEN
       IF ( .NOT.ASSOCIATED(TPFILE%TDESFILE) ) THEN
         CALL PRINT_MSG( NVERB_ERROR, 'IO', 'IO_File_close','DES file for '//TRIM(TPFILE%CNAME)//' not associated' )
       ELSE
diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90
index ba3cffa8d8f93e838635ccf2c79581c59c0515bc..9129167d33085bc9cc8ee9d3b3cd3801e4c5966f 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90
@@ -465,6 +465,10 @@ subroutine IO_Subfile_check_nc4( tpfile )
       else if (tpfile%nsubfiles_ioz == 0 .and. iatt == 0 ) then
         ! Nothing to do: no subfiles
         !call Print_msg( NVERB_DEBUG, 'IO', 'IO_Subfile_check_nc4', trim(tpfile%cname)//': no subfiles detected', olocal = .true. )
+      else if (tpfile%nsubfiles_ioz == iatt ) then
+        ! Nothing to do: number of subfiles is as expected
+        !call Print_msg( NVERB_DEBUG, 'IO', 'IO_Subfile_check_nc4', trim(tpfile%cname)//&
+        !                ': number of subfiles is as expected', olocal = .true. )
       else
         ! Unknown error
         call Print_msg( NVERB_ERROR, 'IO', 'IO_Subfile_check_nc4', trim(tpfile%cname)//': unexpected situation', olocal = .true. )