diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
index 476113284d41cb37e187641014c16ce30d3ca88d..a83f493351c6e3cf6a49426323526efec5adc619 100644
--- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
+++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
@@ -326,7 +326,8 @@ CONTAINS
     ELSE IF (PRESENT(HDAD_NAME)) THEN
       YDAD_NAME = HDAD_NAME
     ELSE
-      CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_HEADER','TPFILE%TDADFILE not associated and HDAD_NAME not provided')
+      CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER',TRIM(TPFILE%CNAME)// &
+                     ': TPFILE%TDADFILE not associated and HDAD_NAME not provided')
       YDAD_NAME = ' '
     ENDIF
     CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME',YDAD_NAME)
diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index 676d7795b8431a8cce87fadc276786e08bc27245..7707fe94d801ab640abbf1d3b7624d2fee1ee597 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -803,7 +803,8 @@ SELECT CASE(TPFILE%CTYPE)
     END IF
     !
     IF(PRESENT(TPDADFILE)) THEN
-      IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','TPDADFILE provided but not associated')
+      IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST', &
+                                                     'TPDADFILE provided but not associated for file '//TRIM(HNAME))
       TPFILE%TDADFILE => TPDADFILE
     ELSE
       TPFILE%TDADFILE => NULL()
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index a274f072cd50304d505a89d752bfa14432d4180b..9e1e598bf1009a9a6fb4cde5eeba0c8640d744af 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -2090,7 +2090,12 @@ STATUS = NF90_INQUIRE_ATTRIBUTE(INCID, KVARID, 'comment', LEN=ILEN)
 IF (STATUS == NF90_NOERR) THEN
   ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE)
   STATUS = NF90_GET_ATT(INCID, KVARID, 'comment', YVALUE)
-  IF (TRIM(YVALUE)/=TRIM(TPFIELD%CCOMMENT)) THEN
+  IF (LEN_TRIM(TPFIELD%CCOMMENT)==0 .AND. LEN_TRIM(YVALUE)>0) THEN
+    !Expected comment is empty, read comment is not
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// &
+                   ': COMMENT  found (unexpected) in file for field '//TRIM(TPFIELD%CMNHNAME))
+    TPFIELD%CCOMMENT=TRIM(YVALUE)
+  ELSE IF (TRIM(YVALUE)/=TRIM(TPFIELD%CCOMMENT)) THEN
     CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// &
                    ': expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)//                    &
                    ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME))
@@ -2145,7 +2150,7 @@ IF (STATUS == NF90_NOERR) THEN
   ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE)
   STATUS = NF90_GET_ATT(INCID, KVARID, 'long_name', YVALUE)
   IF (TRIM(YVALUE)/=TRIM(TPFIELD%CLONGNAME)) THEN
-    CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// &
+    CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// &
                    ': expected LONGNAME ('//TRIM(TPFIELD%CLONGNAME)//                  &
                    ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME))
     TPFIELD%CLONGNAME=TRIM(YVALUE)
diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90
index 6082372e64375fb518ca5d431f1bfe1680dbf549..80cc349cb0f0e114a3295ebb9f376a2ed2aa2014 100644
--- a/src/MNH/goto_model_wrapper.f90
+++ b/src/MNH/goto_model_wrapper.f90
@@ -21,14 +21,15 @@
 MODULE MODI_GOTO_MODEL_WRAPPER
 
 INTERFACE 
-SUBROUTINE GOTO_MODEL_WRAPPER(KFROM, KTO)
-INTEGER,INTENT(IN) :: KFROM, KTO
+SUBROUTINE GOTO_MODEL_WRAPPER(KFROM, KTO, ONOFIELDLIST)
+INTEGER,           INTENT(IN) :: KFROM, KTO
+LOGICAL, OPTIONAL, INTENT(IN) :: ONOFIELDLIST
 END SUBROUTINE GOTO_MODEL_WRAPPER
 END INTERFACE
 
 END MODULE MODI_GOTO_MODEL_WRAPPER
 
-SUBROUTINE GOTO_MODEL_WRAPPER(KFROM, KTO)
+SUBROUTINE GOTO_MODEL_WRAPPER(KFROM, KTO, ONOFIELDLIST)
 ! all USE modd*_n modules
 USE MODD_ADV_n
 USE MODD_BIKHARDT_n
@@ -118,13 +119,22 @@ USE MODD_CH_BUDGET_n
 USE MODE_FIELD
 !
 IMPLICIT NONE 
-INTEGER,INTENT(IN) :: KFROM, KTO
+!
+INTEGER,           INTENT(IN) :: KFROM, KTO
+LOGICAL, OPTIONAL, INTENT(IN) :: ONOFIELDLIST
 !
 CHARACTER(LEN=64) :: YMSG
+LOGICAL           :: GNOFIELDLIST
 !
 WRITE(YMSG,'( I4,"->",I4 )') KFROM,KTO
 CALL PRINT_MSG(NVERB_DEBUG,'GEN','GOTO_MODEL_WRAPPER',TRIM(YMSG))
 !
+IF (PRESENT(ONOFIELDLIST)) THEN
+  GNOFIELDLIST = ONOFIELDLIST
+ELSE
+  GNOFIELDLIST = .FALSE.
+END IF
+!
 ! All calls to specific modd_*n goto_model routines
 !
 CALL ADV_GOTO_MODEL(KFROM, KTO)
@@ -211,6 +221,6 @@ CALL RELFRC_GOTO_MODEL(KFROM, KTO)
 CALL CH_PRODLOSSTOT_GOTO_MODEL(KFROM,KTO)
 CALL CH_BUDGET_GOTO_MODEL(KFROM,KTO)
 !
-CALL FIELDLIST_GOTO_MODEL(KFROM, KTO)
+IF (.NOT.GNOFIELDLIST) CALL FIELDLIST_GOTO_MODEL(KFROM, KTO)
 !
 END SUBROUTINE GOTO_MODEL_WRAPPER
diff --git a/src/MNH/mesonh.f90 b/src/MNH/mesonh.f90
index cbbf300875ea7a58292cc20516c23b25ba39c94c..a2cbb4fd6bb1cd86d3863b5c96fc6ea551538975 100644
--- a/src/MNH/mesonh.f90
+++ b/src/MNH/mesonh.f90
@@ -118,7 +118,7 @@ INTEGER       :: IINFO_ll                     ! return code of // routines
 !              --------------
 ! Switch to model 1 variables
 CALL MPPDB_INIT()
-CALL GOTO_MODEL(1)
+CALL GOTO_MODEL(1,ONOFIELDLIST=.TRUE.)
 !
 CALL INITIO_ll()
 !
diff --git a/src/MNH/mode_modeln_handler.f90 b/src/MNH/mode_modeln_handler.f90
index f97cfe1ea8d12319c8fbb3a7bd9bc68896301d62..2b3bec236d2cedb6680310a89b7c6fb02800b8bb 100644
--- a/src/MNH/mode_modeln_handler.f90
+++ b/src/MNH/mode_modeln_handler.f90
@@ -22,20 +22,21 @@ GET_CURRENT_MODEL_INDEX = ICURRENT_MODEL
 !!
 END FUNCTION GET_CURRENT_MODEL_INDEX
 
-SUBROUTINE GOTO_MODEL(KMI)
+SUBROUTINE GOTO_MODEL(KMI, ONOFIELDLIST)
 !JUAN
 USE MODI_GOTO_MODEL_WRAPPER
 !JUAN
-INTEGER, INTENT(IN) :: KMI
+INTEGER,           INTENT(IN) :: KMI
+LOGICAL, OPTIONAL, INTENT(IN) :: ONOFIELDLIST
 !!
 IF (ICURRENT_MODEL == -1) THEN
   ICURRENT_MODEL = 1 ! Default model index
-  CALL GOTO_MODEL_WRAPPER(ICURRENT_MODEL, KMI)
+  CALL GOTO_MODEL_WRAPPER(ICURRENT_MODEL, KMI, ONOFIELDLIST)
   ICURRENT_MODEL = KMI
 ELSE
   IF (ICURRENT_MODEL /= KMI) THEN
 !   Switch to model KMI, only if necessary
-    CALL GOTO_MODEL_WRAPPER(ICURRENT_MODEL, KMI)
+    CALL GOTO_MODEL_WRAPPER(ICURRENT_MODEL, KMI, ONOFIELDLIST)
     ICURRENT_MODEL = KMI 
   END IF
 END IF
diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90
index cde53086b1dfb3e731142e87167a76c901806d02..2ec5d200f222fff01afc8b006cdec11888498216 100644
--- a/src/MNH/open_nestpgd_files.f90
+++ b/src/MNH/open_nestpgd_files.f90
@@ -309,11 +309,13 @@ DO JPGD=1,NMODEL
   !
   IF (NDAD(JPGD)>=1) THEN
     TZDADFILE => TPFILENESTPGD(NDAD(JPGD))%TZFILE
+    CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PREPNESTPGD', &
+                          'WRITE',KLFITYPE=1,KLFIVERB=NVERB,TPDADFILE=TZDADFILE)
   ELSE
     NULLIFY(TZDADFILE)
+    CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PREPNESTPGD', &
+                          'WRITE',KLFITYPE=1,KLFIVERB=NVERB)
   END IF
-  CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PREPNESTPGD', &
-                        'WRITE',KLFITYPE=1,KLFIVERB=NVERB,TPDADFILE=TZDADFILE)
 END DO
 !
 CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD)
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 0d15c94ea3228d751f96ce65e2c2e2b75ba3db0a..0cc39c4408b4c967b3da5a274a8dd6a6eb0fffce 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -544,7 +544,7 @@ TYPE(LIST_ll), POINTER :: TZFIELDS_ll=>NULL()   ! list of fields to exchange
 !
 CALL MPPDB_INIT()
 !
-CALL GOTO_MODEL(1)
+CALL GOTO_MODEL(1,ONOFIELDLIST=.TRUE.)
 !
 ZDIAG = 0.
 CALL SECOND_MNH (ZSTART)
diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90
index 47becd55e7da29efe1616eb9547b5f2682a66b6e..1f41d499012acee3c3f56a29175b7f44a3dbf272 100644
--- a/src/MNH/read_surf_mnh.f90
+++ b/src/MNH/read_surf_mnh.f90
@@ -26,7 +26,8 @@ CALL FIND_FIELD_ID_FROM_MNHNAME(TRIM(HREC),IID,IRESP,ONOWARNING=.TRUE.)
 IF (IRESP==0) THEN
   TPFIELD = TFIELDLIST(IID)
   !Modify and check CLONGNAME
-  IF (TRIM(TPFIELD%CLONGNAME)/=TRIM(HREC)) THEN
+  IF (TRIM(TPFIELD%CLONGNAME)/=TRIM(HREC) &
+      .AND. TRIM(HREC)/='VERSION' .AND. TRIM(HREC)/='BUG') THEN
     CALL PRINT_MSG(NVERB_WARNING,'IO',TRIM(HSUBR),'CLONGNAME different ('//TRIM(TPFIELD%CLONGNAME) &
                    //'/'//TRIM(HREC)//') than expected for article '//TRIM(HREC))
     TPFIELD%CLONGNAME = TRIM(HREC)
diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90
index a0e5d65c6916d6680c638be7230db5469eba2d86..faedc7418e12a6e7fc041acf2335b7772440a0be 100644
--- a/src/MNH/spawning.f90
+++ b/src/MNH/spawning.f90
@@ -159,7 +159,7 @@ NAMELIST/NAM_CONF_SPAWN/JPHEXT, NHALO
 CALL MPPDB_INIT()
 !
 ! First Switch to model 1 variables
-CALL GOTO_MODEL(1)
+CALL GOTO_MODEL(1,ONOFIELDLIST=.TRUE.)
 !
 CALL VERSION
 CPROGRAM='SPAWN '
diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90
index 32d061917439cf76f7ec0d1156ae076ea57d807c..74ef2feb05c1ace64b1e0dc79400e276330fc4da 100644
--- a/src/MNH/write_surf_mnh.f90
+++ b/src/MNH/write_surf_mnh.f90
@@ -26,7 +26,8 @@ CHARACTER(LEN=*),       INTENT(IN)  :: HSUBR    ! name of the subroutine calling
 TYPE(TFIELDDATA),       INTENT(OUT) :: TPFIELD  ! metadata of field
 !
 CHARACTER(LEN=32) :: YTXT
-INTEGER           :: IID, IRESP
+INTEGER           :: IDX,IID, IRESP
+LOGICAL           :: GWARN
 !
 CALL FIND_FIELD_ID_FROM_MNHNAME(TRIM(HREC),IID,IRESP,ONOWARNING=.TRUE.)
 IF (IRESP==0) THEN
@@ -46,9 +47,23 @@ IF (IRESP==0) THEN
   !Modify and check CCOMMENT
   IF (LEN_TRIM(HCOMMENT)/=0) THEN
     IF (TRIM(TPFIELD%CCOMMENT)/=TRIM(HCOMMENT)) THEN
-      CALL PRINT_MSG(NVERB_WARNING,'IO',TRIM(HSUBR),'CCOMMENT different ('//TRIM(TPFIELD%CCOMMENT) &
-                      //'/'//TRIM(HCOMMENT)//') than expected for article '//TRIM(HREC))
-      TPFIELD%CCOMMENT = TRIM(HCOMMENT)
+      !Usually in SURFEX fields, units are given at the end of the comment and between parenthesis
+      !Neglect that part of the comment for comparison
+      IDX = INDEX(HCOMMENT,'(',BACK=.TRUE.)
+      IF (IDX/=0) THEN
+        IF (TRIM(TPFIELD%CCOMMENT)/=TRIM(HCOMMENT(1:IDX-1))) THEN
+          GWARN = .TRUE.
+        ELSE
+          GWARN = .FALSE.
+        END IF
+      ELSE
+        GWARN = .TRUE.
+      END IF
+      IF (GWARN) THEN
+        CALL PRINT_MSG(NVERB_INFO,'IO',TRIM(HSUBR),'CCOMMENT different ('//TRIM(TPFIELD%CCOMMENT) &
+                       //'/'//TRIM(HCOMMENT)//') than expected for article '//TRIM(HREC))
+        TPFIELD%CCOMMENT = TRIM(HCOMMENT)
+      END IF
     END IF
   ELSE
     CALL PRINT_MSG(NVERB_DEBUG,'IO',TRIM(HSUBR),'CCOMMENT was empty -> replaced by TPFIELD%CCOMMENT for article ' &