diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90
index 2ba86e49f8df640c8209b0bb1c0456d2d16171aa..3e62ade657a1cac172e5813b8d29ce76c2faf0b1 100644
--- a/src/LIB/SURCOUCHE/src/mode_field.f90
+++ b/src/LIB/SURCOUCHE/src/mode_field.f90
@@ -3338,6 +3338,7 @@ END IF
 IF (.NOT.ASSOCIATED(CSURF)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' CSURF was not associated')
   ALLOCATE(CHARACTER(LEN=4) :: CSURF)
+  CSURF = ''
 END IF
 !
 END SUBROUTINE ALLOC_FIELD_SCALARS
@@ -3426,6 +3427,7 @@ END IF
 IF (.NOT.ASSOCIATED(CSURF)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' CSURF was not associated')
   ALLOCATE(CHARACTER(LEN=4) :: CSURF)
+  CSURF = ''
 END IF
 CALL FIND_FIELD_ID_FROM_MNHNAME('SURF',IID,IRESP)
 TFIELDLIST(IID)%TFIELD_C0D(1)%DATA=>CSURF
diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 18fd44e58b0d24ce7577b0bacd914f97e6b1a09d..8134fb55b0c0e12e5ed69e752fa7ab4d0fddae45 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -79,6 +79,9 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','opening '//TRIM(TPFILE%CNAME)
 !
 IF (.NOT.ASSOCIATED(TPFILE)) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','TPFILE is not associated')
 !
+TZFILE_DES   => NULL()
+TZFILE_DUMMY => NULL()
+!
 TPFILE%NOPEN         = TPFILE%NOPEN + 1
 TPFILE%NOPEN_CURRENT = TPFILE%NOPEN_CURRENT + 1
 !
@@ -275,6 +278,7 @@ IF (.NOT. GCONFIO) THEN
    STOP
 END IF
 
+ININAR = 0
 INPRAR = TPFILE%NLFINPRAR
 IROWF  = 0
 IRESP  = 0
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index 29cd0f9b2e023142693c5757fe98c83aa4259fc0..8ed0d895bd9589b3e0a890cf1f136f5fd3141e55 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -322,8 +322,11 @@ SUBROUTINE WRITE_HOR_COORD(TDIM,HLONGNAME,HSTDNAME,HAXIS,PSHIFT,KBOUNDLOW,KBOUND
   END IF
 
   IF (.NOT.TPFILE%LMASTER) THEN
-    IF (PRESENT(PCOORDS)) &
+    IF (PRESENT(PCOORDS)) THEN
+      ALLOCATE(ZTAB(0)) !To prevent false positive with valgrind
+      GALLOC = .TRUE.
       CALL GATHER_XXFIELD(YDIR,PCOORDS,ZTAB,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM)
+    END IF
   ELSE !TPFILE%LMASTER
     ISIZE = TDIM%LEN
     YVARNAME = TRIM(TDIM%NAME)
@@ -401,6 +404,8 @@ SUBROUTINE WRITE_HOR_2DCOORD(PX,PY,HLAT,HLON)
                  ZLAT,ZLON)
 
   IF (.NOT.TPFILE%LMASTER) THEN
+    ALLOCATE(ZTAB1(0,0),ZTAB2(0,0)) !To prevent false positive with valgrind
+    GALLOC1 = .TRUE. ; GALLOC2 = .TRUE.
     CALL GATHER_XYFIELD(ZLAT,ZTAB1,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM)
     CALL GATHER_XYFIELD(ZLON,ZTAB2,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM)
   ELSE !TPFILE%LMASTER