diff --git a/src/LIB/SURCOUCHE/src/fmread_ll.f90 b/src/LIB/SURCOUCHE/src/fmread_ll.f90
index 956f95e6a581e566935e3c32d3f2423693d0ac1a..cae9e5e85388e7897a03ff66cd5effe8c7cbb9eb 100644
--- a/src/LIB/SURCOUCHE/src/fmread_ll.f90
+++ b/src/LIB/SURCOUCHE/src/fmread_ll.f90
@@ -1320,14 +1320,14 @@ TZFD=>GETFD(TRIM(ADJUSTL(TPFILE%CNAME))//'.lfi')
 IF (ASSOCIATED(TZFD)) THEN
   IF (GSMONOPROC) THEN ! sequential execution
       IF (ASSOCIATED(TZFD%CDF)) THEN
-         CALL NCREAD(TZFD%CDF%NCID,TPFIELD%CMNHNAME,KFIELD,TZFMH,IRESP)
+         CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,TZFMH,IRESP)
       ELSE
          CALL FM_READ_ll(TZFD%FLU,TPFIELD%CMNHNAME,.FALSE.,1,KFIELD,TZFMH,IRESP)
       END IF
   ELSE
     IF (ISP == TZFD%OWNER)  THEN
       IF (ASSOCIATED(TZFD%CDF)) THEN
-         CALL NCREAD(TZFD%CDF%NCID,TPFIELD%CMNHNAME,KFIELD,TZFMH,IRESP)
+         CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,TZFMH,IRESP)
       ELSE
          CALL FM_READ_ll(TZFD%FLU,TPFIELD%CMNHNAME,.FALSE.,1,KFIELD,TZFMH,IRESP)
       END IF
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index 4079e0d34965796eb884dbfef92205de68f1aa25..802eea843b7bd123e92e2eda14f97bc4da66a29f 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -34,6 +34,19 @@ INTERFACE IO_WRITE_FIELD_NC4
                     IO_WRITE_FIELD_NC4_T0
 END INTERFACE IO_WRITE_FIELD_NC4
 
+INTERFACE IO_READ_FIELD_NC4
+   MODULE PROCEDURE IO_READ_FIELD_NC4_N0
+!                     IO_READ_FIELD_NC4_X0,IO_READ_FIELD_NC4_X1, &
+!                     IO_READ_FIELD_NC4_X2,IO_READ_FIELD_NC4_X3, &
+!                     IO_READ_FIELD_NC4_X4,IO_READ_FIELD_NC4_X5, &
+!                     IO_READ_FIELD_NC4_X6,                      &
+!                     IO_READ_FIELD_NC4_N1,                      &
+!                     IO_READ_FIELD_NC4_L0,IO_READ_FIELD_NC4_L1, &
+!                     IO_READ_FIELD_NC4_N2,IO_READ_FIELD_NC4_N3, &
+!                     IO_READ_FIELD_NC4_C0,IO_READ_FIELD_NC4_C1, &
+!                     IO_READ_FIELD_NC4_T0
+END INTERFACE IO_READ_FIELD_NC4
+
 INTERFACE NCWRIT
    MODULE PROCEDURE NCWRITX0, NCWRITX1, NCWRITX2, NCWRITX3, &
         & NCWRITX4, NCWRITX5, NCWRITX6, &
@@ -51,7 +64,7 @@ END INTERFACE NCREAD
 ! Public from module netcdf
 PUBLIC NF90_OPEN,NF90_CREATE,NF90_NOWRITE,NF90_CLOBBER,NF90_NETCDF4,NF90_NOERR,NF90_STRERROR
 ! Public from this module :
-PUBLIC NEWIOCDF,CLEANIOCDF,NCWRIT,NCREAD,IO_WRITE_FIELD_NC4,IO_WRITE_HEADER_NC4
+PUBLIC NEWIOCDF,CLEANIOCDF,NCWRIT,NCREAD,IO_WRITE_FIELD_NC4,IO_READ_FIELD_NC4,IO_WRITE_HEADER_NC4
 
 CONTAINS
 
@@ -2575,6 +2588,64 @@ KRESP = IRESP
 
 END SUBROUTINE NCREADN0
 
+SUBROUTINE IO_READ_FIELD_NC4_N0(TPFILE, TPFIELD, KFIELD, TPFMH, KRESP)
+USE MODD_FM, ONLY : FMHEADER, JPXKRK
+TYPE(TFILEDATA),  INTENT(IN) :: TPFILE
+TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD
+INTEGER,          INTENT(OUT):: KFIELD
+TYPE(FMHEADER),   INTENT(OUT):: TPFMH
+INTEGER,          INTENT(OUT):: KRESP  ! return-code
+
+INTEGER(KIND=IDCDF_KIND) :: STATUS
+INTEGER(KIND=IDCDF_KIND) :: INCID
+INTEGER(KIND=IDCDF_KIND) :: IVARID
+INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
+INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
+INTEGER(KIND=IDCDF_KIND) :: ICOMLEN ! comment length
+CHARACTER(LEN=30)        :: YVARNAME
+INTEGER                  :: IRESP
+
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
+
+IRESP = 0
+! Get the Netcdf file ID
+INCID = TPFILE%NNCID
+
+CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
+
+! Get variable ID, NDIMS and TYPE
+STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
+IF (STATUS /= NF90_NOERR) THEN
+   CALL HANDLE_ERR(status,__LINE__,'IO_READ_FIELD_NC4_N0[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP)
+   GOTO 1000
+END IF
+STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS)
+IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'IO_READ_FIELD_NC4_N0[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME))
+
+!NF90_INT1 is for the case a boolean was written
+#ifndef MNH_INT8
+IF (IDIMS == 0 .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT1) ) THEN
+#else
+IF (IDIMS == 0 .AND. (ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN
+#endif
+   ! Read variable
+   STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD)
+   IF (STATUS /= NF90_NOERR) THEN
+      CALL HANDLE_ERR(status,__LINE__,'IO_READ_FIELD_NC4_N0[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP)
+      GOTO 1000
+   END IF
+   ! Read variables attributes (GRID and COMMENT)
+   CALL READATTR(INCID, IVARID, YVARNAME, TPFMH)
+ELSE
+   PRINT *, 'IO_READ_FIELD_NC4_N0: '//TRIM(YVARNAME)//' not READ (wrong size or type).'
+   IRESP = -3
+END IF
+
+1000 CONTINUE
+KRESP = IRESP
+
+END SUBROUTINE IO_READ_FIELD_NC4_N0
+
 SUBROUTINE NCREADN1(KNCID, HVARNAME, KFIELD, TPFMH, KRESP)
 USE MODD_FM, ONLY : FMHEADER, JPXKRK
 INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KNCID
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 36ea691c59958820dfd0e2adbb0f93a43c8326e6..7e50f17f8e2d6aa5f89ceb0751b4b075c05b7d00 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -180,6 +180,7 @@ USE MODD_PARAM_n, ONLY : CSURF
 USE MODD_PARAMETERS
 USE MODD_REF,   ONLY : LBOUSS
 !
+USE MODE_FD_ll, ONLY : GETFD,FD_LL
 USE MODE_FIELD
 USE MODE_FMREAD
 USE MODE_FM
@@ -259,6 +260,7 @@ CHARACTER (LEN=4)  :: YCLOUD
 CHARACTER (LEN=4)  :: YELEC
 CHARACTER (LEN=3)  :: YEQNSYS
 TYPE(TFILEDATA)    :: TZFILE
+TYPE(FD_ll), POINTER         :: TZFD
 !
 !-------------------------------------------------------------------------------
 !
@@ -395,11 +397,15 @@ END IF
 TZFILE%CNAME  = HINIFILE
 !TZFILE%CTYPE  = ''
 CALL PRINT_MSG(NVERB_WARNING,'IO','INI_SEG_n','filetype not (yet) set')
+TZFD=>GETFD(TRIM(ADJUSTL(TZFILE%CNAME))//'.lfi')
+IF (.NOT.ASSOCIATED(TZFD)) CALL PRINT_MSG(NVERB_FATAL,'IO','INI_SEG_n','file '//TRIM(TZFILE%CNAME)//' not found')
 IF (LIOCDF4 .AND. .NOT.LLFIREAD) THEN
   TZFILE%CFORMAT = 'NETCDF4'
+  TZFILE%NNCID = TZFD%CDF%NCID
 ELSE
   TZFILE%CFORMAT   = 'LFI'
   TZFILE%NLFINPRAR = 0
+  TZFILE%NLFIFLU = TZFD%FLU
 ENDIF
 TZFILE%CMODE    = 'READ'
 TZFILE%NLFITYPE = 2