diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index 37d6dcbb36b0cfe46e05f26752c1136b6d50a200..70ef993128c8e200877b345ee7e86123124a663e 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -980,7 +980,7 @@ IF ( CPROGRAM == 'DIAG' .OR. GSTATPROF_SURF ) THEN
     XCURRENT_SWD  (:,:) = SUM( XDIRSRFSWD(:,:,:) + XSCAFLASWD(:,:,:), DIM=3 )
     XCURRENT_LWU  (:,:) = XLWU(:,:,IKB)
     XCURRENT_SWU  (:,:) = XSWU(:,:,IKB)
-    IF ( GSTATPROF_SURF ) THEN
+    IF ( GSTATPROF_SURF .AND. CPROGRAM /= 'DIAG' ) THEN
       XCURRENT_SWDIR(:,:)  = SUM( XDIRSRFSWD(:,:,:), DIM=3 )
       XCURRENT_SWDIFF(:,:) = SUM( XSCAFLASWD(:,:,:), DIM=3 )
       XCURRENT_DSTAOD(:,:) = 0.0
@@ -1005,7 +1005,7 @@ IF ( CPROGRAM == 'DIAG' .OR. GSTATPROF_SURF ) THEN
     CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWD,      'GROUND_PARAM_n::XCURRENT_SWD'    )
     CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LWU,      'GROUND_PARAM_n::XCURRENT_LWU'    )
     CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWU,      'GROUND_PARAM_n::XCURRENT_SWU'    )
-    IF ( GSTATPROF_SURF ) THEN
+    IF ( GSTATPROF_SURF .AND. CPROGRAM /= 'DIAG' ) THEN
       CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWDIR,  'GROUND_PARAM_n::XCURRENT_SWDIR'  )
       CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWDIFF, 'GROUND_PARAM_n::XCURRENT_SWDIFF' )
       CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_DSTAOD, 'GROUND_PARAM_n::XCURRENT_DSTAOD' )
@@ -1014,7 +1014,7 @@ IF ( CPROGRAM == 'DIAG' .OR. GSTATPROF_SURF ) THEN
   END IF
   CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_ZON10M,     'GROUND_PARAM_n::XCURRENT_ZON10M' )
   CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_MER10M,     'GROUND_PARAM_n::XCURRENT_MER10M' )
-  IF ( GSTATPROF_SURF ) THEN
+  IF ( GSTATPROF_SURF .AND. CPROGRAM /= 'DIAG' ) THEN
     CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_RN,       'GROUND_PARAM_n::XCURRENT_RN'     )
     CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_H,        'GROUND_PARAM_n::XCURRENT_H'      )
     CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LE,       'GROUND_PARAM_n::XCURRENT_LE'     )
@@ -1211,7 +1211,7 @@ IF(LBLOWSNOW) THEN
   END DO
 END IF
 !
-IF ( GSTATPROF_SURF ) THEN
+IF ( GSTATPROF_SURF .AND. CPROGRAM /= 'DIAG' ) THEN
   XCURRENT_RN      (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_RN(:),     ISHAPE_2)
   XCURRENT_H       (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_H (:),     ISHAPE_2)
   XCURRENT_LE      (IIB:IIE,IJB:IJE)  = RESHAPE(ZP_LE(:),     ISHAPE_2)