diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90
index d1ac4a1a677008440dbdc542935e1b083af2a00c..6e817aa0f12bc2c3c1aba44cdd08c812eabc000e 100644
--- a/src/MNH/ch_monitorn.f90
+++ b/src/MNH/ch_monitorn.f90
@@ -609,10 +609,15 @@ ZDTSOLVER = PTSTEP / NCH_SUBSTEPS
 !
 IF (LORILAM) THEN
   ALLOCATE( ZSVT(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),SIZE(XSVT,4)) )
-
-  DO JSV = 1, SIZE(XSVT,4)
-    ZSVT(:,:,:,JSV) =  XRSVS(:,:,:,JSV) *PTSTEP / XRHODJ(:,:,:) 
-  END DO
+  IF (CPROGRAM /='DIAG  ') THEN
+    DO JSV = 1, SIZE(XSVT,4)
+      ZSVT(:,:,:,JSV) =  XRSVS(:,:,:,JSV) *PTSTEP / XRHODJ(:,:,:)
+    END DO
+  ELSE
+    DO JSV = 1, SIZE(XSVT,4)
+      ZSVT(:,:,:,JSV) =  XSVT(:,:,:,JSV)
+    END DO
+  END IF
   ZSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND) = MAX(ZSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND), XMNH_TINY)
   ZSVT(:,:,:,NSV_AERBEG:NSV_AEREND)   = MAX(ZSVT(:,:,:,NSV_AERBEG:NSV_AEREND), XMNH_TINY)
 !
@@ -640,9 +645,7 @@ SELECT CASE (CCH_TDISCRETIZATION)
 END SELECT
 !
 !
-IF (CPROGRAM=='DIAG  ') THEN
-  IF (LEN_TRIM(CSPEC_BU_DIAG)/=0.OR.LEN_TRIM(CSPEC_DIAG)/=0) GSPLIT=.FALSE.  ! Modif. for DIAG
-END IF
+IF (CPROGRAM=='DIAG  ') GSPLIT=.FALSE.  ! Modif. for DIAG
 !
 !
 !*       1.6   allocate tables