diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index 62c2a57f2ded20d222a00b38ac196f9be3807477..44ab4453a51533e5dd6308f1a0b1c88a900e333d 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -113,6 +113,7 @@ END MODULE MODI_GROUND_PARAM_n
 !  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !  P. Wautelet 09/02/2022: bugfix: add missing XCURRENT_LEI computation
 !  P. Wautelet 30/09/2022: bugfix: missing communications for SWDIFF, SWDIR and LEI
+!  P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -130,7 +131,7 @@ USE MODD_DYN_n,     ONLY : DYN_MODEL
 !
 USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_CST,        ONLY : XP00, XCPD, XRD, XRV,XRHOLW, XDAY, XPI, XLVTT, XMD, XAVOGADRO
-USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF
+USE MODD_PARAMETERS, ONLY : JPVEXT
 USE MODD_DYN_n,      ONLY : XTSTEP
 USE MODD_CH_MNHC_n,  ONLY : LUSECHEM
 USE MODD_FIELD_n,    ONLY : XUT, XVT, XWT, XTHT, XRT, XPABST, XSVT, XTKET, XZWS
@@ -162,6 +163,7 @@ USE MODD_CSTS_DUST,  ONLY : XMOLARWEIGHT_DUST
 USE MODD_CSTS_SALT,  ONLY : XMOLARWEIGHT_SALT
 USE MODD_CH_FLX_n, ONLY : XCHFLX
 USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG
+USE MODD_SURF_PAR,   ONLY: XUNDEF_SFX => XUNDEF
 !
 USE MODI_NORMAL_INTERPOL
 USE MODI_ROTATE_WIND
@@ -366,16 +368,16 @@ IKE=IKU-JPVEXT
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
-PSFTH    = XUNDEF
-PSFRV    = XUNDEF
-PSFSV    = XUNDEF
-PSFCO2   = XUNDEF
-PSFU     = XUNDEF
-PSFV     = XUNDEF
-PDIR_ALB = XUNDEF
-PSCA_ALB = XUNDEF
-PEMIS    = XUNDEF
-PTSRAD   = XUNDEF
+PSFTH    = XUNDEF_SFX
+PSFRV    = XUNDEF_SFX
+PSFSV    = XUNDEF_SFX
+PSFCO2   = XUNDEF_SFX
+PSFU     = XUNDEF_SFX
+PSFV     = XUNDEF_SFX
+PDIR_ALB = XUNDEF_SFX
+PSCA_ALB = XUNDEF_SFX
+PEMIS    = XUNDEF_SFX
+PTSRAD   = XUNDEF_SFX
 !
 !
 !-------------------------------------------------------------------------------
@@ -660,7 +662,7 @@ FF_TIME = FF_TIME + XTSTEP
 PSFU(:,:) = 0.
 PSFV(:,:) = 0.
 !
-WHERE (ZSFU(:,:)/=XUNDEF .AND. ZWIND(:,:)>0.)
+WHERE (ZSFU(:,:)/=XUNDEF_SFX .AND. ZWIND(:,:)>0.)
   PSFU(:,:) = - SQRT(ZSFU**2+ZSFV**2) * ZUA(:,:) / ZWIND(:,:) / XRHODREF(:,:,IKB)
   PSFV(:,:) = - SQRT(ZSFU**2+ZSFV**2) * ZVA(:,:) / ZWIND(:,:) / XRHODREF(:,:,IKB)
 END WHERE
@@ -943,12 +945,12 @@ ISHAPE_2 = (/KDIM1,KDIM2/)
 !
 ! Arguments in call to surface:
 !
-ZSFTH = XUNDEF
-ZSFTQ = XUNDEF
-IF (NSV>0) ZSFTS = XUNDEF
-ZSFCO2 = XUNDEF
-ZSFU = XUNDEF
-ZSFV = XUNDEF
+ZSFTH = XUNDEF_SFX
+ZSFTQ = XUNDEF_SFX
+IF (NSV>0) ZSFTS = XUNDEF_SFX
+ZSFCO2 = XUNDEF_SFX
+ZSFU = XUNDEF_SFX
+ZSFV = XUNDEF_SFX
 !
 ZSFTH   (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_SFTH(:),       ISHAPE_2)
 ZSFTQ   (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_SFTQ(:),       ISHAPE_2)
@@ -979,7 +981,7 @@ IF (LDIAG_IN_RUN) THEN
   XCURRENT_HU2M    (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_HU2M(:),   ISHAPE_2)
   XCURRENT_ZON10M  (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_ZON10M(:), ISHAPE_2)
   XCURRENT_MER10M  (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_MER10M(:), ISHAPE_2)
-  XCURRENT_ZWS  (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_ZWS(:), ISHAPE_2)
+  XCURRENT_ZWS     (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_ZWS(:),    ISHAPE_2)
 ENDIF
 !
 DO JLAYER=1,SIZE(PDIR_ALB,3)
diff --git a/src/MNH/ini_diag_in_run.f90 b/src/MNH/ini_diag_in_run.f90
index d44800cdcd9db3fe83ddd67555e70ae68b186440..6f39e805a357747f41972243e967fbdbd58700e1 100644
--- a/src/MNH/ini_diag_in_run.f90
+++ b/src/MNH/ini_diag_in_run.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2003-2022 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 profiler 2006/10/24 10:07:46
-!-----------------------------------------------------------------
 !      #########################
 MODULE MODI_INI_DIAG_IN_RUN
 !      #########################
@@ -61,18 +56,19 @@ END MODULE MODI_INI_DIAG_IN_RUN
 !!
 !!    MODIFICATIONS
 !!    -------------
-!!     Original 11/2003
-!!                   02/2018 Q.Libois ECRAD
-!!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
-!!
-!! --------------------------------------------------------------------------
-!       
+!     Original 11/2003
+!  Q. Libois      02/2018: ECRAD
+!  S. Bielli      02/2019: sea salt: significant sea wave height influences salt emission; 5 salt modes
+!  P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX
+! --------------------------------------------------------------------------
+!
 !*      0. DECLARATIONS
 !          ------------
 !
 USE MODD_CONF, ONLY : CPROGRAM
-USE MODD_PARAMETERS, ONLY : XUNDEF
 USE MODD_DIAG_IN_RUN
+USE MODD_PARAMETERS, ONLY : XUNDEF
+USE MODD_SURF_PAR,   ONLY: XUNDEF_SFX => XUNDEF
 !
 IMPLICIT NONE
 !
@@ -118,27 +114,27 @@ IF (LDIAG_IN_RUN) THEN
   ALLOCATE(XCURRENT_ZWS(KIU,KJU)) ! Significant height of waves
   !
   !
-  XCURRENT_RN    = XUNDEF
-  XCURRENT_H     = XUNDEF
-  XCURRENT_LE    = XUNDEF
-  XCURRENT_LEI   = XUNDEF  
-  XCURRENT_GFLUX = XUNDEF
+  XCURRENT_RN    = XUNDEF_SFX
+  XCURRENT_H     = XUNDEF_SFX
+  XCURRENT_LE    = XUNDEF_SFX
+  XCURRENT_LEI   = XUNDEF_SFX
+  XCURRENT_GFLUX = XUNDEF_SFX
   XCURRENT_LWD   = XUNDEF
   XCURRENT_LWU   = XUNDEF
   XCURRENT_SWD   = XUNDEF
   XCURRENT_SWU   = XUNDEF
   XCURRENT_SWDIR = XUNDEF
   XCURRENT_SWDIFF= XUNDEF  
-  XCURRENT_T2M   = XUNDEF
-  XCURRENT_Q2M   = XUNDEF
-  XCURRENT_HU2M  = XUNDEF
-  XCURRENT_ZON10M= XUNDEF
-  XCURRENT_MER10M= XUNDEF
+  XCURRENT_T2M   = XUNDEF_SFX
+  XCURRENT_Q2M   = XUNDEF_SFX
+  XCURRENT_HU2M  = XUNDEF_SFX
+  XCURRENT_ZON10M= XUNDEF_SFX
+  XCURRENT_MER10M= XUNDEF_SFX
   XCURRENT_DSTAOD= XUNDEF
-  XCURRENT_SFCO2 = XUNDEF
+  XCURRENT_SFCO2 = XUNDEF_SFX
   XCURRENT_TKE_DISS = XUNDEF
   XCURRENT_SLTAOD= XUNDEF
-  XCURRENT_ZWS = XUNDEF
+  XCURRENT_ZWS = XUNDEF_SFX
 ELSE
   ALLOCATE(XCURRENT_RN    (0,0))! net radiation
   ALLOCATE(XCURRENT_H     (0,0))! sensible heat flux
diff --git a/src/MNH/statprof_tools.f90 b/src/MNH/statprof_tools.f90
index 4a0ac4239da1e3e4b218781251bcb24ecaeae442..a1daff5695c836a6ee4e7913b0732052427c4898 100644
--- a/src/MNH/statprof_tools.f90
+++ b/src/MNH/statprof_tools.f90
@@ -8,6 +8,7 @@
 !  P. Wautelet 08/04/2022
 !-----------------------------------------------------------------
 ! Modifications:
+!  P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX
 !-----------------------------------------------------------------
 !      ###################
 MODULE MODE_STATPROF_TOOLS
@@ -41,6 +42,7 @@ SUBROUTINE PROFILER_ALLOCATE( TPPROFILER, KSTORE )
   USE MODD_PARAMETERS,   ONLY: JPVEXT, XUNDEF
   USE MODD_PARAM_n,      ONLY: CCLOUD, CRAD, CTURB
   USE MODD_RADIATIONS_n, ONLY: NAER
+  USE MODD_SURF_PAR,     ONLY: XUNDEF_SFX => XUNDEF
 
   IMPLICIT NONE
 
@@ -133,16 +135,16 @@ SUBROUTINE PROFILER_ALLOCATE( TPPROFILER, KSTORE )
   TPPROFILER%XZHD(:) = XUNDEF
 
 !   IF ( LDIAG_IN_RUN ) THEN
-    TPPROFILER%XT2M   (:) = XUNDEF
-    TPPROFILER%XQ2M   (:) = XUNDEF
-    TPPROFILER%XHU2M  (:) = XUNDEF
-    TPPROFILER%XZON10M(:) = XUNDEF
-    TPPROFILER%XMER10M(:) = XUNDEF
-    TPPROFILER%XRN    (:) = XUNDEF
-    TPPROFILER%XH     (:) = XUNDEF
-    TPPROFILER%XLE    (:) = XUNDEF
-    TPPROFILER%XLEI   (:) = XUNDEF
-    TPPROFILER%XGFLUX (:) = XUNDEF
+    TPPROFILER%XT2M   (:) = XUNDEF_SFX
+    TPPROFILER%XQ2M   (:) = XUNDEF_SFX
+    TPPROFILER%XHU2M  (:) = XUNDEF_SFX
+    TPPROFILER%XZON10M(:) = XUNDEF_SFX
+    TPPROFILER%XMER10M(:) = XUNDEF_SFX
+    TPPROFILER%XRN    (:) = XUNDEF_SFX
+    TPPROFILER%XH     (:) = XUNDEF_SFX
+    TPPROFILER%XLE    (:) = XUNDEF_SFX
+    TPPROFILER%XLEI   (:) = XUNDEF_SFX
+    TPPROFILER%XGFLUX (:) = XUNDEF_SFX
     IF ( CRAD /= 'NONE' ) THEN
       TPPROFILER%XSWD   (:) = XUNDEF
       TPPROFILER%XSWU   (:) = XUNDEF
@@ -163,6 +165,7 @@ SUBROUTINE STATION_ALLOCATE( TPSTATION, KSTORE )
   USE MODD_NSV,          ONLY: NSV
   USE MODD_PARAMETERS,   ONLY: XUNDEF
   USE MODD_PARAM_n,      ONLY: CRAD, CTURB
+  USE MODD_SURF_PAR,     ONLY: XUNDEF_SFX => XUNDEF
 
   IMPLICIT NONE
 
@@ -219,16 +222,16 @@ SUBROUTINE STATION_ALLOCATE( TPSTATION, KSTORE )
   TPSTATION%XSV(:,:)   = XUNDEF
   TPSTATION%XTSRAD(:)  = XUNDEF
   IF ( LDIAG_SURFRAD ) THEN
-    TPSTATION%XT2M(:)    = XUNDEF
-    TPSTATION%XQ2M(:)    = XUNDEF
-    TPSTATION%XHU2M(:)   = XUNDEF
-    TPSTATION%XZON10M(:) = XUNDEF
-    TPSTATION%XMER10M(:) = XUNDEF
-    TPSTATION%XRN(:)     = XUNDEF
-    TPSTATION%XH(:)      = XUNDEF
-    TPSTATION%XLE(:)     = XUNDEF
-    TPSTATION%XLEI(:)    = XUNDEF
-    TPSTATION%XGFLUX(:)  = XUNDEF
+    TPSTATION%XT2M(:)    = XUNDEF_SFX
+    TPSTATION%XQ2M(:)    = XUNDEF_SFX
+    TPSTATION%XHU2M(:)   = XUNDEF_SFX
+    TPSTATION%XZON10M(:) = XUNDEF_SFX
+    TPSTATION%XMER10M(:) = XUNDEF_SFX
+    TPSTATION%XRN(:)     = XUNDEF_SFX
+    TPSTATION%XH(:)      = XUNDEF_SFX
+    TPSTATION%XLE(:)     = XUNDEF_SFX
+    TPSTATION%XLEI(:)    = XUNDEF_SFX
+    TPSTATION%XGFLUX(:)  = XUNDEF_SFX
     IF ( CRAD /= 'NONE' ) THEN
       TPSTATION%XSWD(:)    = XUNDEF
       TPSTATION%XSWU(:)    = XUNDEF
@@ -238,7 +241,7 @@ SUBROUTINE STATION_ALLOCATE( TPSTATION, KSTORE )
       TPSTATION%XSWDIFF(:) = XUNDEF
       TPSTATION%XDSTAOD(:) = XUNDEF
     END IF
-    TPSTATION%XSFCO2(:)  = XUNDEF
+    TPSTATION%XSFCO2(:)  = XUNDEF_SFX
   END IF
 
 END SUBROUTINE STATION_ALLOCATE