diff --git a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90
index 544a2bfee38904c370c9c8da097092936115335a..44354d56b8d0d0c0da98d9743637c12c23df1f73 100644
--- a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90
+++ b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90
@@ -16,6 +16,7 @@ program LFI2CDF
   USE mode_options
   USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll
   USE mode_util
+  USE MODI_VERSION
 
   USE MODN_CONFIO, ONLY: LCDF4, LLFIOUT, LLFIREAD
 
diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90
index 1de66f6373628a60955aca132255b9e22427e155..962c74684b5de3ee6e31574e274315c1662032cb 100644
--- a/src/LIB/SURCOUCHE/src/mode_field.f90
+++ b/src/LIB/SURCOUCHE/src/mode_field.f90
@@ -119,7 +119,9 @@ TYPE(TFIELDDATA),DIMENSION(MAXFIELDS),SAVE :: TFIELDLIST
 CONTAINS
 !
 SUBROUTINE INI_FIELD_LIST(KMODEL)
-!
+! Modif
+!  J.Escobar 25/04/2018: missing def of FRC
+!------------------------------------------------
 USE MODD_CONF, ONLY: NMODEL
 !
 INTEGER,INTENT(IN),OPTIONAL :: KMODEL
@@ -3249,6 +3251,20 @@ TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 IDX = IDX+1
 !
+IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
+TFIELDLIST(IDX)%CMNHNAME   = 'FRC'
+TFIELDLIST(IDX)%CSTDNAME   = ''
+TFIELDLIST(IDX)%CLONGNAME  = 'FRC'
+TFIELDLIST(IDX)%CUNITS     = ''
+TFIELDLIST(IDX)%CDIR       = '--'
+TFIELDLIST(IDX)%CCOMMENT   = 'Number of forcing profiles'
+TFIELDLIST(IDX)%NGRID      = 0
+TFIELDLIST(IDX)%NTYPE      = TYPEINT
+TFIELDLIST(IDX)%NDIMS      = 0
+TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
+IDX = IDX+1
+!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
 IF (TRIM(CPROGRAM)=='REAL' .OR. TRIM(CPROGRAM) == 'LFICDF') THEN
 !PW: not yet known: IF (LFILTERING) THEN
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index 3ef4567720ca2b306b8fd21623bb11fae59c0596..5af85e8d1869d24ade9f9abdcc70ad5d6e881702 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -2184,7 +2184,9 @@ KRESP = IRESP
 END SUBROUTINE IO_WRITE_FIELD_NC4_C0
 
 SUBROUTINE IO_WRITE_FIELD_NC4_C1(TPFILE,TPFIELD,HFIELD,KRESP)
-!
+!  Modif
+!    J.Escobar : 25/04/2018 : missing 'IF ALLOCATED(IVDIMSTMP)' DEALLOCATE
+!----------------------------------------------------------------
 TYPE(TFILEDATA),              INTENT(IN)  :: TPFILE
 TYPE(TFIELDDATA),             INTENT(IN)  :: TPFIELD
 CHARACTER(LEN=*),DIMENSION(:),INTENT(IN)  :: HFIELD
@@ -2244,7 +2246,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED)
 STATUS = NF90_PUT_VAR(INCID, IVARID, HFIELD(1:ISIZE)(1:ILEN), START=(/IONE,IONE/), COUNT=(/ILEN,ISIZE/))
 IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_C1[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP)
 
-DEALLOCATE(IVDIMSTMP)
+IF(ALLOCATED(IVDIMSTMP)) DEALLOCATE(IVDIMSTMP)
 
 KRESP = IRESP
 END SUBROUTINE IO_WRITE_FIELD_NC4_C1
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index 3bb3639a221f3b1a18b3295fe14f48ac24d71e35..0ddb6828df367c941a4fe5b0f62bde77df98cfdb 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -1775,6 +1775,7 @@ IF (CSURF =='EXTE') THEN
     TPGDFILE => TINIFILE
     CALL PGD_GRID_SURF_ATM(YSURF_CUR%UG, YSURF_CUR%U,YSURF_CUR%GCP,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.,HDIR='-')
     CALL PGD_SURF_ATM     (YSURF_CUR,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.)
+    CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB)
     TPGDFILE => TINIFILEPGD
   ELSE
   ! ... or read from file.
@@ -1794,7 +1795,11 @@ IF (CSURF =='EXTE') THEN
     !* writing of physiographic fields in the file
     CSTORAGE_TYPE='PG'
     !
-    CALL IO_FILE_ADD2LIST(TZINIFILEPGD,TRIM(CINIFILEPGD),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB)
+    IF (ASSOCIATED(TINIFILEPGD)) THEN
+       TZINIFILEPGD => TINIFILEPGD
+    ELSE
+       CALL IO_FILE_ADD2LIST(TZINIFILEPGD,TRIM(CINIFILEPGD),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB)
+    END IF
     !
     CALL IO_FILE_OPEN_ll(TZINIFILEPGD)
     !
diff --git a/src/SURFEX/sfx_xios_check_field.F90 b/src/SURFEX/sfx_xios_check_field.F90
index 3eab1eee3e95d55cc709bc9171c89da0f5f0ca8e..839a0c7841dff85625bd195d80515a835dbedb60 100644
--- a/src/SURFEX/sfx_xios_check_field.F90
+++ b/src/SURFEX/sfx_xios_check_field.F90
@@ -2,6 +2,21 @@
 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !SFX_LIC for details. version 1.
+MODULE MODI_SFX_XIOS_CHECK_FIELD
+INTERFACE
+SUBROUTINE SFX_XIOS_CHECK_FIELD(U, HREC, HCOMMENT, OWRITE, PFIELD1, PFIELD2, PFIELD3, HAXIS)
+USE MODD_SURF_ATM_n, ONLY     : SURF_ATM_t
+TYPE(SURF_ATM_t)  , INTENT(INOUT) :: U
+CHARACTER(LEN=*)      ,INTENT(IN) :: HREC     ! name of the field to check
+CHARACTER(LEN=100)    ,INTENT(IN) :: HCOMMENT ! Comment string
+LOGICAL               ,INTENT(OUT):: OWRITE   ! TRUE if no issue re. Xios for this field
+REAL,DIMENSION(:)     ,INTENT(IN) , OPTIONAL :: PFIELD1  ! value
+REAL,DIMENSION(:,:)   ,INTENT(IN) , OPTIONAL :: PFIELD2  ! value
+REAL,DIMENSION(:,:,:) ,INTENT(IN) , OPTIONAL :: PFIELD3  ! value
+CHARACTER(LEN=*)      ,INTENT(IN) , OPTIONAL :: HAXIS    ! name of the additional axis
+END SUBROUTINE SFX_XIOS_CHECK_FIELD
+END INTERFACE
+END MODULE MODI_SFX_XIOS_CHECK_FIELD
 SUBROUTINE SFX_XIOS_CHECK_FIELD(U, HREC, HCOMMENT, OWRITE, PFIELD1, PFIELD2, PFIELD3, HAXIS)
 !!
 !!