From d6f4bee351030c9e5283b2b3e8a12582219ea1aa Mon Sep 17 00:00:00 2001
From: Gaelle Tanguy <gaelle.tanguy@meteo.fr>
Date: Thu, 12 Dec 2013 16:17:51 +0000
Subject: [PATCH] Christine 12/12/13 : WENO

---
 src/MNH/version.f90                    |   2 +-
 src/MNH/write_budget.f90               |  70 +--
 src/MNH/write_desfmn.f90               |  25 +-
 src/MNH/write_hgrid.f90                |   2 +-
 src/MNH/write_hgridn.f90               |   2 +-
 src/MNH/write_lfifm1_for_diag.f90      | 286 +++++-----
 src/MNH/write_lfifm1_for_diag_supp.f90 |  80 +--
 src/MNH/write_lfin.f90                 | 730 +++++++++----------------
 src/MNH/write_phys_param.f90           |   4 +-
 9 files changed, 487 insertions(+), 714 deletions(-)

diff --git a/src/MNH/version.f90 b/src/MNH/version.f90
index 6ddac0f74..8d2c60c6f 100644
--- a/src/MNH/version.f90
+++ b/src/MNH/version.f90
@@ -38,7 +38,7 @@ USE MODD_CONF, ONLY : NMASDEV,NBUGFIX,CBIBUSER
 !
 IMPLICIT NONE
 !
-NMASDEV=50 
+NMASDEV=51 
 NBUGFIX=0
 CBIBUSER=''
 !
diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90
index f7cd41a2d..5d1ff5213 100644
--- a/src/MNH/write_budget.f90
+++ b/src/MNH/write_budget.f90
@@ -12,8 +12,7 @@
 INTERFACE
 !
       SUBROUTINE WRITE_BUDGET(HFILEDIA,HLUOUT,TPDTCUR,                 &
-                              TPDTMOD,PTSTEP,                          &
-                              PTSTEP_UVW,PTSTEP_MET,PTSTEP_SV,KSV      )
+                              TPDTMOD,PTSTEP, KSV                      )
 !
 USE MODD_TYPE_DATE
 !
@@ -22,12 +21,6 @@ CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT       ! name of output listing
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTCUR      ! Current date and time
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTMOD      ! Creation date and time
 REAL,               INTENT(IN) :: PTSTEP       ! time step
-REAL,               INTENT(IN) :: PTSTEP_UVW !  Effective time step for
-                                             !  momentum advection
-REAL,               INTENT(IN) :: PTSTEP_MET !  Effective time step for
-                                             !  meteorological variables advection
-REAL,               INTENT(IN) :: PTSTEP_SV  !  Effective time step for
-                                             !  scalar variables advection
 INTEGER,            INTENT(IN) :: KSV          ! Number of Scalar Variables
 !
 END SUBROUTINE WRITE_BUDGET  
@@ -40,8 +33,7 @@ END MODULE MODI_WRITE_BUDGET
 !
 !     ##################################################################
       SUBROUTINE WRITE_BUDGET(HFILEDIA,HLUOUT,TPDTCUR,                 &
-                              TPDTMOD,PTSTEP,                          &
-                              PTSTEP_UVW,PTSTEP_MET,PTSTEP_SV,KSV      )
+                              TPDTMOD,PTSTEP, KSV                      )
 !     ##################################################################
 !
 !!****  *WRITE_BUDGET* - routine to write a LFIFM file for the budget. 
@@ -158,12 +150,6 @@ CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT       ! name of output listing
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTCUR      ! Current date and time
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTMOD      ! Creation date and time
 REAL,               INTENT(IN) :: PTSTEP       ! time step
-REAL,               INTENT(IN) :: PTSTEP_UVW !  Effective time step for
-                                             !  momentum advection
-REAL,               INTENT(IN) :: PTSTEP_MET !  Effective time step for
-                                             !  meteorological variables advection
-REAL,               INTENT(IN) :: PTSTEP_SV  !  Effective time step for
-                                             !  scalar variables advection
 INTEGER,            INTENT(IN) :: KSV          ! Number of Scalar Variables
 !  
 !*       0.2   Declarations of local variables :
@@ -268,7 +254,7 @@ SELECT CASE (CBUTYPE)
       IP=1
 ! unit conversion for  RU budgets 
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_UVW * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -341,7 +327,7 @@ SELECT CASE (CBUTYPE)
 !
       IP=2
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_UVW * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -413,7 +399,7 @@ SELECT CASE (CBUTYPE)
 ! 
       IP=3
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_UVW * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -520,7 +506,7 @@ SELECT CASE (CBUTYPE)
 !  RTH budgets storage
       IP=4
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -566,7 +552,7 @@ SELECT CASE (CBUTYPE)
 !  RTKE budgets storage
       IP=5
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -612,7 +598,7 @@ SELECT CASE (CBUTYPE)
 !  RRV budgets storage
       IP=6
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -658,7 +644,7 @@ SELECT CASE (CBUTYPE)
 !  RRV budgets storage
       IP=7
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -703,7 +689,7 @@ SELECT CASE (CBUTYPE)
     IF (LBU_RRR) THEN
       IP=8
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -748,7 +734,7 @@ SELECT CASE (CBUTYPE)
     IF (LBU_RRI) THEN
       IP=9
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -793,7 +779,7 @@ SELECT CASE (CBUTYPE)
     IF (LBU_RRS) THEN
       IP=10
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -838,7 +824,7 @@ SELECT CASE (CBUTYPE)
     IF (LBU_RRG) THEN
       IP=11
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -883,7 +869,7 @@ SELECT CASE (CBUTYPE)
     IF (LBU_RRH) THEN
       IP=12
       ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -929,7 +915,7 @@ SELECT CASE (CBUTYPE)
       DO JSV = 1,KSV
         IP=12+JSV
         ALLOCATE(ZCONVERT(NBUPROCNBR(IP)))
-        ZCONVERT(1:2)     = PTSTEP_SV * REAL(NBUSTEP)
+        ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
         ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
         ZCONVERT(4:NBUPROCNBR(IP)) = 2.
 ! 
@@ -1071,7 +1057,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(1)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(1)))
-      ZCONVERT(1:2)     = PTSTEP_UVW * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(1)) = 2.
       DO JPROC=1,NBUPROCNBR(1)
@@ -1128,7 +1114,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(2)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(2)))
-      ZCONVERT(1:2)     = PTSTEP_UVW * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(2)) = 2.
       DO JPROC=1,NBUPROCNBR(2)
@@ -1184,7 +1170,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(3)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(3)))
-      ZCONVERT(1:2)     = PTSTEP_UVW * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(3)) = 2.
       DO JPROC=1,NBUPROCNBR(3)
@@ -1242,7 +1228,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(4)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(4)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(4)) = 2.
       DO JPROC=1,NBUPROCNBR(4)
@@ -1273,7 +1259,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(5)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(5)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(5)) = 2.
       DO JPROC=1,NBUPROCNBR(5)
@@ -1304,7 +1290,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(6)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(6)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(6)) = 2.
       DO JPROC=1,NBUPROCNBR(6)
@@ -1335,7 +1321,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(7)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(7)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(7)) = 2.
       DO JPROC=1,NBUPROCNBR(7)
@@ -1366,7 +1352,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(8)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(8)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(8)) = 2.
       DO JPROC=1,NBUPROCNBR(8)
@@ -1397,7 +1383,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(9)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(9)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(9)) = 2.
       DO JPROC=1,NBUPROCNBR(9)
@@ -1428,7 +1414,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(10)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(10)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(10)) = 2.
       DO JPROC=1,NBUPROCNBR(10)
@@ -1459,7 +1445,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(11)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(11)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(11)) = 2.
       DO JPROC=1,NBUPROCNBR(11)
@@ -1490,7 +1476,7 @@ SELECT CASE (CBUTYPE)
       ALLOCATE(IWORKGRID(NBUPROCNBR(12)))
 !
       ALLOCATE(ZCONVERT(NBUPROCNBR(12)))
-      ZCONVERT(1:2)     = PTSTEP_MET * REAL(NBUSTEP)
+      ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
       ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
       ZCONVERT(4:NBUPROCNBR(12)) = 2.
       DO JPROC=1,NBUPROCNBR(12)
@@ -1522,7 +1508,7 @@ SELECT CASE (CBUTYPE)
         ALLOCATE(IWORKGRID(NBUPROCNBR(12+JSV)))
 !
         ALLOCATE(ZCONVERT(NBUPROCNBR(12+JSV)))
-        ZCONVERT(1:2)     = PTSTEP_SV * REAL(NBUSTEP)
+        ZCONVERT(1:2)     = PTSTEP * REAL(NBUSTEP)
         ZCONVERT(3)       = 2. * PTSTEP * REAL(NBUSTEP)
         ZCONVERT(4:NBUPROCNBR(12+JSV)) = 2.
         DO JPROC=1,NBUPROCNBR(12+JSV)
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index 71f6077e9..c16b10541 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -219,6 +219,7 @@ CALL INIT_NAM_LUNITn
 WRITE(UNIT=ILUSEG,NML=NAM_LUNITn)
 IF (CPROGRAM/='MESONH') THEN
   LUSECI=.FALSE.
+  NSV_USER = 0      
 ENDIF
 CALL INIT_NAM_CONFn
 WRITE(UNIT=ILUSEG,NML=NAM_CONFn)
@@ -274,6 +275,15 @@ WRITE(UNIT=ILUSEG,NML=NAM_DYNn)
 !
 CALL INIT_NAM_ADVn
 WRITE(UNIT=ILUSEG,NML=NAM_ADVn)
+IF (CPROGRAM/='MESONH') THEN
+  CTURB   = 'NONE'
+  CRAD    = 'NONE'
+  CCLOUD  = 'NONE'
+  CDCONV  = 'NONE'
+  CSCONV  = 'NONE'
+  CELEC   = 'NONE'
+  CACTCCN = 'NONE'
+END IF
 CALL INIT_NAM_PARAMn
 WRITE(UNIT=ILUSEG,NML=NAM_PARAMn)
 !
@@ -296,6 +306,17 @@ WRITE(UNIT=ILUSEG,NML=NAM_NUDGINGn)
 CALL INIT_NAM_TURBn
 IF(CTURB /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_TURBn)
 !
+IF (CPROGRAM/='MESONH') THEN
+  LUSECHEM   = .FALSE.
+  LORILAM    = .FALSE.
+  LDEPOS_AER = .FALSE.
+  LDUST      = .FALSE.
+  LDEPOS_DST = .FALSE.
+  LSALT      = .FALSE.
+  LDEPOS_SLT = .FALSE.
+  LPASPOL    = .FALSE.
+  LCONDSAMP  = .FALSE.
+END IF
 CALL INIT_NAM_CH_MNHCn
 IF(LUSECHEM .OR. LCH_CONV_LINOX .OR. LCH_CONV_SCAV) &
  WRITE(UNIT=ILUSEG,NML=NAM_CH_MNHCn)
@@ -314,8 +335,10 @@ IF(LSERIES) WRITE(UNIT=ILUSEG,NML=NAM_SERIESn)
 IF(L2D_ADV_FRC .OR. L2D_REL_FRC) WRITE(UNIT=ILUSEG,NML=NAM_2D_FRC)
 !
 IF (LUV_FLX .OR. LTH_FLX) WRITE(UNIT=ILUSEG,NML=NAM_LATZ_EDFLX)
-
 !
+IF (CPROGRAM/='MESONH') THEN
+  LLG  = .FALSE.
+END IF
 WRITE(UNIT=ILUSEG,NML=NAM_CONF)
 WRITE(UNIT=ILUSEG,NML=NAM_DYN)
 WRITE(UNIT=ILUSEG,NML=NAM_NESTING)
diff --git a/src/MNH/write_hgrid.f90 b/src/MNH/write_hgrid.f90
index 54ed3f3bf..49789a1fc 100644
--- a/src/MNH/write_hgrid.f90
+++ b/src/MNH/write_hgrid.f90
@@ -143,7 +143,7 @@ CALL FMWRIT(HOUTFILE,'XHAT',CLUOUT0,'XX',XPGDXHAT,2,LEN(YCOMMENT),YCOMMENT,IRESP
 YCOMMENT='METERS'
 CALL FMWRIT(HOUTFILE,'YHAT',CLUOUT0,'YY',XPGDYHAT,3,LEN(YCOMMENT),YCOMMENT,IRESP)
 !
-IF (CSTORAGE_TYPE=='MT' .OR. CSTORAGE_TYPE=='TT') THEN
+IF (CSTORAGE_TYPE=='TT') THEN
   YCOMMENT=' '
   CALL FMWRIT(HOUTFILE,'THINSHELL',CLUOUT0,'--',LTHINSHELL,0,LEN(YCOMMENT),YCOMMENT,IRESP)
   YCOMMENT=' '
diff --git a/src/MNH/write_hgridn.f90 b/src/MNH/write_hgridn.f90
index 0018ab70b..61fcee0ba 100644
--- a/src/MNH/write_hgridn.f90
+++ b/src/MNH/write_hgridn.f90
@@ -137,7 +137,7 @@ CALL FMWRIT(HOUTFILE,'XHAT',CLUOUT,'XX',XXHAT,2,LEN(YCOMMENT),YCOMMENT,IRESP)
 YCOMMENT='METERS'
 CALL FMWRIT(HOUTFILE,'YHAT',CLUOUT,'YY',XYHAT,3,LEN(YCOMMENT),YCOMMENT,IRESP)
 !
-IF (CSTORAGE_TYPE=='MT' .OR. CSTORAGE_TYPE=='TT') THEN
+IF (CSTORAGE_TYPE=='TT') THEN
   YCOMMENT=' '
   CALL FMWRIT(HOUTFILE,'THINSHELL',CLUOUT,'--',LTHINSHELL,0,LEN(YCOMMENT),YCOMMENT,IRESP)
   YCOMMENT=' '
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 9bc485cdb..2021402ce 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -270,9 +270,9 @@ REAL,DIMENSION(:,:,:), ALLOCATABLE                      :: ZPHI,ZTHETAE,ZTHETAV
 INTEGER, DIMENSION(:,:), ALLOCATABLE                    :: IWORK1
 integer :: ICURR,INBOUT
 !
-REAL,DIMENSION(SIZE(XSVM,1),SIZE(XSVM,2),SIZE(XSVM,3),NSP+NCARB+NSOA,JPMODE):: ZPTOTA
-REAL,DIMENSION(SIZE(XSVM,1),SIZE(XSVM,2),SIZE(XSVM,3),NMODE_DST*2):: ZSDSTDEP
-REAL,DIMENSION(SIZE(XSVM,1),SIZE(XSVM,2),SIZE(XSVM,3),NMODE_SLT*2):: ZSSLTDEP
+REAL,DIMENSION(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),NSP+NCARB+NSOA,JPMODE):: ZPTOTA
+REAL,DIMENSION(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),NMODE_DST*2):: ZSDSTDEP
+REAL,DIMENSION(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),NMODE_SLT*2):: ZSSLTDEP
 REAL,DIMENSION(:,:,:,:), ALLOCATABLE  :: ZSIG_DST, ZRG_DST, ZN0_DST
 REAL,DIMENSION(:,:,:,:), ALLOCATABLE  :: ZSIG_SLT, ZRG_SLT, ZN0_SLT
 REAL,DIMENSION(:,:,:), ALLOCATABLE  :: ZRHOT, ZTMP ! work array
@@ -610,36 +610,36 @@ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHVREF,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !*       1.5    Variables necessary for plots
 !
-! PABSM,THM,POVOM for cross sections at constant pressure 
+! PABST,THT,POVOM for cross sections at constant pressure 
 ! level or constant theta level or constant PV level
 !
 IF (INDEX(CISO,'PR') /= 0) THEN
-  YRECFM='PABSM'
+  YRECFM='PABST'
   YCOMMENT='X_Y_Z_ABSolute Pressure (Pa)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XPABSM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XPABST,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 IF (INDEX(CISO,'TK') /= 0) THEN
-  YRECFM='THM'
+  YRECFM='THT'
   YCOMMENT='X_Y_Z_potential temperature (K)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHT,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 ZCORIOZ(:,:,:)=SPREAD( XCORIOZ(:,:),DIM=3,NCOPIES=IKU )
-ZVOX(:,:,:)=GY_W_VW(1,IKU,1,XWM,XDYY,XDZZ,XDZY)-GZ_V_VW(1,IKU,1,XVM,XDZZ)
+ZVOX(:,:,:)=GY_W_VW(1,IKU,1,XWT,XDYY,XDZZ,XDZY)-GZ_V_VW(1,IKU,1,XVT,XDZZ)
 ZVOX(:,:,2)=ZVOX(:,:,3)
-ZVOY(:,:,:)=GZ_U_UW(1,IKU,1,XUM,XDZZ)-GX_W_UW(1,IKU,1,XWM,XDXX,XDZZ,XDZX)
+ZVOY(:,:,:)=GZ_U_UW(1,IKU,1,XUT,XDZZ)-GX_W_UW(1,IKU,1,XWT,XDXX,XDZZ,XDZX)
 ZVOY(:,:,2)=ZVOY(:,:,3)
-ZVOZ(:,:,:)=GX_V_UV(1,IKU,1,XVM,XDXX,XDZZ,XDZX)-GY_U_UV(1,IKU,1,XUM,XDYY,XDZZ,XDZY)
+ZVOZ(:,:,:)=GX_V_UV(1,IKU,1,XVT,XDXX,XDZZ,XDZX)-GY_U_UV(1,IKU,1,XUT,XDYY,XDZZ,XDZY)
 ZVOZ(:,:,2)=ZVOZ(:,:,3)
 ZVOZ(:,:,1)=ZVOZ(:,:,3)
-ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHM,XDXX,XDZZ,XDZX)
-ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHM,XDYY,XDZZ,XDZY)
-ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHM,XDZZ)
+ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHT,XDXX,XDZZ,XDZX)
+ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHT,XDYY,XDZZ,XDZY)
+ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHT,XDZZ)
 ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
              + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
              + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
@@ -656,38 +656,38 @@ END IF
 !
 !
 IF (LVAR_RS) THEN
-  YRECFM='UM'
+  YRECFM='UT'
   YCOMMENT='X_Y_Z_U component of wind (m/s)'
   IGRID=2
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XUM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XUT,IGRID,ILENCH,YCOMMENT,IRESP)
   !
-  YRECFM='VM'
+  YRECFM='VT'
   YCOMMENT='X_Y_Z_V component of wind (m/s)'
   IGRID=3
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XVM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XVT,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (LWIND_ZM) THEN
     YCOMMENT='X_Y_Z_Zonal and Meridian components of horizontal wind (M/S)'
-    CALL UV_TO_ZONAL_AND_MERID(XUM,XVM,23, &
+    CALL UV_TO_ZONAL_AND_MERID(XUT,XVT,23, &
             HFMFILE=HFMFILE,HRECU='UM_ZM',HRECV='VM_ZM',HCOMMENT=YCOMMENT)
   END IF
   !
-  YRECFM='WM'
+  YRECFM='WT'
   YCOMMENT='X_Y_Z_vertical wind (m/s)'
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   !   write mixing ratio for water vapor required to plot radio-soundings
   !
   IF (LUSERV) THEN
-    YRECFM='RVM' 
+    YRECFM='RVT' 
     YCOMMENT='X_Y_Z_Vapor mixing Ratio (KG/KG)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XRM(:,:,:,1),IGRID,ILENCH,  &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XRT(:,:,:,1),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
   END IF
 END IF
@@ -711,22 +711,22 @@ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !*       1.6    Other pronostic variables
 !
-ZTEMP(:,:,:)=XTHM(:,:,:)*(XPABSM(:,:,:)/ XP00) **(XRD/XCPD)
+ZTEMP(:,:,:)=XTHT(:,:,:)*(XPABST(:,:,:)/ XP00) **(XRD/XCPD)
 !
 IF (LVAR_TURB) THEN
   IF (CTURB /= 'NONE') THEN
-    YRECFM='TKEM'
+    YRECFM='TKET'
     YCOMMENT='X_Y_Z_Turbulent Kinetic Energy (M**2/S**2)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTKEM,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTKET,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     IF( NRR > 1 ) THEN
-      YRECFM='SRCM'
+      YRECFM='SRCT'
       YCOMMENT='X_Y_Z_normalized 2nd_order moment s_r_c/2Sigma_s2 (KG/KG**2)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSRCM,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSRCT,IGRID,ILENCH,YCOMMENT,IRESP)
       !
       YRECFM='SIGS'
       YCOMMENT='X_Y_Z_Sigma_s from turbulence scheme (KG/KG**2)'
@@ -905,12 +905,12 @@ IF (LVAR_PR ) THEN
   DO JK = IKB,IKE
     !* Calcul de qtot
     IF  (CCLOUD(1:3) == 'ICE' ) THEN
-      ZWORK23(IIB:IIE,IJB:IJE) = XRM(IIB:IIE,IJB:IJE,JK,1) + &
-      XRM(IIB:IIE,IJB:IJE,JK,2) + XRM(IIB:IIE,IJB:IJE,JK,3) + &
-      XRM(IIB:IIE,IJB:IJE,JK,4) + XRM(IIB:IIE,IJB:IJE,JK,5) + &
-      XRM(IIB:IIE,IJB:IJE,JK,6)
+      ZWORK23(IIB:IIE,IJB:IJE) = XRT(IIB:IIE,IJB:IJE,JK,1) + &
+      XRT(IIB:IIE,IJB:IJE,JK,2) + XRT(IIB:IIE,IJB:IJE,JK,3) + &
+      XRT(IIB:IIE,IJB:IJE,JK,4) + XRT(IIB:IIE,IJB:IJE,JK,5) + &
+      XRT(IIB:IIE,IJB:IJE,JK,6)
     ELSE
-      ZWORK23(IIB:IIE,IJB:IJE) = XRM(IIB:IIE,IJB:IJE,JK,1)
+      ZWORK23(IIB:IIE,IJB:IJE) = XRT(IIB:IIE,IJB:IJE,JK,1)
     ENDIF
     !* Calcul de l'eau precipitable
     ZWORK21(IIB:IIE,IJB:IJE)=XRHODREF(IIB:IIE,IJB:IJE,JK)* &
@@ -931,14 +931,14 @@ ENDIF
 !
 !* Flux d'humidité et d'hydrométéores
 IF (LHU_FLX) THEN
-  ZWORK35(:,:,:) = XRHODREF(:,:,:) * XRM(:,:,:,1)
-  ZWORK31(:,:,:) = MXM(ZWORK35(:,:,:)) * XUM(:,:,:)
-  ZWORK32(:,:,:) = MYM(ZWORK35(:,:,:)) * XVM(:,:,:)
+  ZWORK35(:,:,:) = XRHODREF(:,:,:) * XRT(:,:,:,1)
+  ZWORK31(:,:,:) = MXM(ZWORK35(:,:,:)) * XUT(:,:,:)
+  ZWORK32(:,:,:) = MYM(ZWORK35(:,:,:)) * XVT(:,:,:)
   IF  (CCLOUD(1:3) == 'ICE' ) THEN
-    ZWORK36(:,:,:) = ZWORK35(:,:,:) + XRHODREF(:,:,:) * (XRM(:,:,:,2) + &
-    XRM(:,:,:,3) + XRM(:,:,:,4) + XRM(:,:,:,5) + XRM(:,:,:,6))
-    ZWORK33(:,:,:) = MXM(ZWORK36(:,:,:)) * XUM(:,:,:)
-    ZWORK34(:,:,:) = MYM(ZWORK36(:,:,:)) * XVM(:,:,:)
+    ZWORK36(:,:,:) = ZWORK35(:,:,:) + XRHODREF(:,:,:) * (XRT(:,:,:,2) + &
+    XRT(:,:,:,3) + XRT(:,:,:,4) + XRT(:,:,:,5) + XRT(:,:,:,6))
+    ZWORK33(:,:,:) = MXM(ZWORK36(:,:,:)) * XUT(:,:,:)
+    ZWORK34(:,:,:) = MYM(ZWORK36(:,:,:)) * XVT(:,:,:)
   ENDIF
   ZWORK35(:,:,:) = GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY)
   ZWORK36(:,:,:) = GX_U_M(1,IKU,1,ZWORK33,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK34,XDYY,XDZZ,XDZY)
@@ -1086,7 +1086,7 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRV'
       YCOMMENT='X_Y_Z_MRV (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
                  
@@ -1096,13 +1096,13 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRC'
       YCOMMENT='X_Y_Z_MRC (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
       YRECFM= 'VRC'
       YCOMMENT='X_Y_Z_VRC (vol/vol)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
@@ -1111,13 +1111,13 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRR'
       YCOMMENT='X_Y_Z_MRR (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
       YRECFM= 'VRR'
       YCOMMENT='X_Y_Z_VRR (vol/vol)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
@@ -1126,7 +1126,7 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRI'
       YCOMMENT='X_Y_Z_MRI (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
       IF (LUSECI) THEN
@@ -1142,7 +1142,7 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRS'
       YCOMMENT='X_Y_Z_MRS (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
@@ -1151,7 +1151,7 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRG'
       YCOMMENT='X_Y_Z_RG (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
@@ -1160,7 +1160,7 @@ IF (LVAR_MRW) THEN
       YRECFM= 'MRH'
       YCOMMENT='X_Y_Z_RH (G/KG)'
       ILENCH=LEN(YCOMMENT)
-      ZWORK31(:,:,:)=XRM(:,:,:,IRR)*1.E3
+      ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
     END IF
@@ -1177,7 +1177,7 @@ IF (LVAR_MRSV) THEN
     WRITE(YRECFM,'(A4,I3.3)')'MRSV',JSV
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','MRSV',JSV,' (G/KG)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E3
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E3
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
@@ -1185,13 +1185,13 @@ END IF
 ! microphysical C2R2 scheme scalar variables
 IF(LVAR_MRW) THEN
   DO JSV = NSV_C2R2BEG,NSV_C2R2END
-    YRECFM=TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'M'
+    YRECFM=TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T'
     IF (JSV < NSV_C2R2END) THEN
       WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','MRSV',JSV,' (/CM3)'
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E-6
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-6
     ELSE
       WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','MRSV',JSV,' (/L)'
-      ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E-3
+      ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3
     ENDIF
     ILENCH=LEN(YCOMMENT)
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
@@ -1199,10 +1199,10 @@ IF(LVAR_MRW) THEN
   END DO
   ! microphysical C3R5 scheme additional scalar variables
   DO JSV = NSV_C1R3BEG,NSV_C1R3END
-    YRECFM=TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'M'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (/L)'
+    YRECFM=TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T'
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/L)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E-3
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)   
   END DO
@@ -1211,10 +1211,10 @@ END IF
 ! chemical scalar variables in gas phase PPBV
 IF (LCHEMDIAG) THEN
   DO JSV = NSV_CHGSBEG,NSV_CHGSEND
-    YRECFM=TRIM(UPCASE(CNAMES(JSV-NSV_CHGSBEG+1)))//'M'
+    YRECFM=TRIM(UPCASE(CNAMES(JSV-NSV_CHGSBEG+1)))//'T'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','CHIM',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E9
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
@@ -1225,8 +1225,8 @@ IF (LCHAQDIAG) THEN    !aqueous concentration in M
     YRECFM=TRIM(CNAMES(JSV-NSV_CHACBEG+NSV_CHGS+1))//'M'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A4)')'X_Y_Z_','CHAQ',JSV,' (M)'
     ILENCH=LEN(YCOMMENT)
-    WHERE(((XRM(:,:,:,2)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
-      ZWORK31(:,:,:)=(XSVM(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRM(:,:,:,2))
+    WHERE(((XRT(:,:,:,2)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
+      ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,2))
     ENDWHERE
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
@@ -1236,19 +1236,19 @@ IF (LCHAQDIAG) THEN    !aqueous concentration in M
     YRECFM=TRIM(CNAMES(JSV-NSV_CHACBEG+NSV_CHGS+1))//'M'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A4)')'X_Y_Z_','CHAQ',JSV,' (M)'
     ILENCH=LEN(YCOMMENT)
-    WHERE(((XRM(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
-      ZWORK31(:,:,:)=(XSVM(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRM(:,:,:,3))
+    WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
+      ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3))
     ENDWHERE
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 !  ZWORK31(:,:,:)=0.
 !  DO JSV = NSV_CHICBEG,NSV_CHICEND   ! ice phase
-!    YRECFM=TRIM(CICNAMES(JSV-NSV_CHICBEG+1))//'M'
+!    YRECFM=TRIM(CICNAMES(JSV-NSV_CHICBEG+1))//'T'
 !    WRITE(YCOMMENT,'(A6,A4,I3.3,A4)')'X_Y_Z_','CHIC',JSV,' (M)'
 !    ILENCH=LEN(YCOMMENT)
-!    WHERE(((XRM(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
-!      ZWORK31(:,:,:)=(XSVM(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRM(:,:,:,3))
+!    WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
+!      ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3))
 !    ENDWHERE
 !    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
 !         YCOMMENT,IRESP)
@@ -1286,7 +1286,7 @@ IF (LCONDSAMP) THEN
     WRITE(YRECFM,'(A3,I3.3)')'CST',JSV
     WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','CST',JSV,' () '
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVM(:,:,:,JSV),IGRID,ILENCH,       &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH,       &
      YCOMMENT,IRESP)
     !
   END DO
@@ -1296,10 +1296,10 @@ END IF
 ! Lagrangian variables
 IF (LTRAJ) THEN
   DO JSV = NSV_LGBEG,NSV_LGEND
-    YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'M'
+    YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T'
     WRITE(YCOMMENT,'(A6,A20,I3.3,A7)')'X_Y_Z_','Lagrangian variable ',JSV,' (M)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVM(:,:,:,JSV),IGRID,ILENCH,   &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH,   &
                 YCOMMENT,IRESP)
   END DO
   ! X coordinate
@@ -1337,21 +1337,21 @@ IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN
     YRECFM='LINOXM'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','LNOX',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E9
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 END IF
 IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN
   DO JSV = NSV_ELECBEG,NSV_ELECEND
-    YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'M'
+    YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'T'
     IF (JSV .GT. NSV_ELECBEG .AND. JSV .LT. NSV_ELECEND) THEN
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (C/m3)'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (C/m3)'
     ELSE
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (nb ions/m3)'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)'
     END IF
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV) * XRHODREF(:,:,:)  ! C/kg --> C/m3
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV) * XRHODREF(:,:,:)  ! C/kg --> C/m3
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
@@ -1359,22 +1359,22 @@ END IF
 ! Sea Salt variables
 IF (LSALT) THEN
   IF(.NOT.ALLOCATED(ZSIG_SLT)) &
-    ALLOCATE(ZSIG_SLT(SIZE(XSVM,1), SIZE(XSVM,2), SIZE(XSVM,3), NMODE_SLT))
+    ALLOCATE(ZSIG_SLT(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), NMODE_SLT))
   IF(.NOT.ALLOCATED(ZRG_SLT))  &
-    ALLOCATE(ZRG_SLT(SIZE(XSVM,1), SIZE(XSVM,2), SIZE(XSVM,3), NMODE_SLT))
+    ALLOCATE(ZRG_SLT(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), NMODE_SLT))
   IF(.NOT.ALLOCATED(ZN0_SLT))  &
-    ALLOCATE(ZN0_SLT(SIZE(XSVM,1), SIZE(XSVM,2), SIZE(XSVM,3), NMODE_SLT))
+    ALLOCATE(ZN0_SLT(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), NMODE_SLT))
   !
   DO JSV = NSV_SLTBEG,NSV_SLTEND
-    YRECFM=TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1)))//'M'
+    YRECFM=TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1)))//'T'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','SALT',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E9
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   END DO
   !
-  CALL PPP2SALT(XSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND),XRHODREF,&
+  CALL PPP2SALT(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND),XRHODREF,&
                PSIG3D=ZSIG_SLT, PRG3D=ZRG_SLT, PN3D=ZN0_SLT)
   DO JJ=1,NMODE_SLT
     WRITE(YRECFM,'(A6,I1)')'SLTRGA',JJ
@@ -1435,9 +1435,9 @@ IF (LSALT) THEN
 END IF
 IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
     ! 
-     ZSSLTDEP=XSVM(:,:,:,NSV_SLTDEPBEG:NSV_SLTDEPEND)
+     ZSSLTDEP=XSVT(:,:,:,NSV_SLTDEPBEG:NSV_SLTDEPEND)
      DO JSV = 1,NSV_SLTDEP   
-      YRECFM=TRIM(UPCASE(CDESLTNAMES(JSV)))//'M'
+      YRECFM=TRIM(UPCASE(CDESLTNAMES(JSV)))//'T'
        WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','SALTDEP',JSV,' (ppbv)'
        ILENCH=LEN(YCOMMENT)
        ZWORK31(:,:,:)=ZSSLTDEP(:,:,:,JSV)*1.E9
@@ -1529,22 +1529,22 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
 ! Dust variables
 IF (LDUST) THEN
   IF(.NOT.ALLOCATED(ZSIG_DST)) &
-    ALLOCATE(ZSIG_DST(SIZE(XSVM,1), SIZE(XSVM,2), SIZE(XSVM,3), NMODE_DST))
+    ALLOCATE(ZSIG_DST(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), NMODE_DST))
   IF(.NOT.ALLOCATED(ZRG_DST))  &
-    ALLOCATE(ZRG_DST(SIZE(XSVM,1), SIZE(XSVM,2), SIZE(XSVM,3), NMODE_DST))
+    ALLOCATE(ZRG_DST(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), NMODE_DST))
   IF(.NOT.ALLOCATED(ZN0_DST))  &
-    ALLOCATE(ZN0_DST(SIZE(XSVM,1), SIZE(XSVM,2), SIZE(XSVM,3), NMODE_DST))
+    ALLOCATE(ZN0_DST(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), NMODE_DST))
   !
   DO JSV = NSV_DSTBEG,NSV_DSTEND
-    YRECFM=TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1)))//'M'
+    YRECFM=TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1)))//'T'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','DUST',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E9
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   END DO
   !
-  CALL PPP2DUST(XSVM(:,:,:,NSV_DSTBEG:NSV_DSTEND),XRHODREF,&
+  CALL PPP2DUST(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND),XRHODREF,&
                PSIG3D=ZSIG_DST, PRG3D=ZRG_DST, PN3D=ZN0_DST)
   DO JJ=1,NMODE_DST
     WRITE(YRECFM,'(A6,I1)')'DSTRGA',JJ
@@ -1605,9 +1605,9 @@ IF (LDUST) THEN
 END IF
 IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
     ! 
-     ZSDSTDEP=XSVM(:,:,:,NSV_DSTDEPBEG:NSV_DSTDEPEND)
+     ZSDSTDEP=XSVT(:,:,:,NSV_DSTDEPBEG:NSV_DSTDEPEND)
      DO JSV = 1,NSV_DSTDEP   
-      YRECFM=TRIM(UPCASE(CDEDSTNAMES(JSV)))//'M'
+      YRECFM=TRIM(UPCASE(CDEDSTNAMES(JSV)))//'T'
        WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','DUSTDEP',JSV,' (ppbv)'
        ILENCH=LEN(YCOMMENT)
        ZWORK31(:,:,:)=ZSDSTDEP(:,:,:,JSV)*1.E9
@@ -1699,22 +1699,22 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
 ! Aerosol
 IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN
   DO JSV = NSV_AERBEG,NSV_AEREND
-    YRECFM=TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'M'
+    YRECFM=TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T'
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','AERO',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
-    ZWORK31(:,:,:)=XSVM(:,:,:,JSV)*1.E9
+    ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
   !
   IF (.NOT.(ASSOCIATED(XN3D)))   &
-    ALLOCATE(XN3D(SIZE(XSVM,1),SIZE(XSVM,2),SIZE(XSVM,3),JPMODE))
+    ALLOCATE(XN3D(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),JPMODE))
   IF (.NOT.(ASSOCIATED(XRG3D)))  &
-    ALLOCATE(XRG3D(SIZE(XSVM,1),SIZE(XSVM,2),SIZE(XSVM,3),JPMODE))
+    ALLOCATE(XRG3D(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),JPMODE))
   IF (.NOT.(ASSOCIATED(XSIG3D))) &
-    ALLOCATE(XSIG3D(SIZE(XSVM,1),SIZE(XSVM,2),SIZE(XSVM,3),JPMODE))
+    ALLOCATE(XSIG3D(SIZE(XSVT,1),SIZE(XSVT,2),SIZE(XSVT,3),JPMODE))
   !
-  CALL  PPP2AERO(XSVM(:,:,:,NSV_AERBEG:NSV_AEREND), XRHODREF, &
+  CALL  PPP2AERO(XSVT(:,:,:,NSV_AERBEG:NSV_AEREND), XRHODREF, &
                  PSIG3D=XSIG3D, PRG3D=XRG3D, PN3D=XN3D, PCTOTA=ZPTOTA) 
   DO JJ=1,JPMODE
     WRITE(YRECFM,'(A3,I1)')'RGA',JJ
@@ -2003,7 +2003,7 @@ IF (LTPZH .OR. LCOREF) THEN
   YCOMMENT='X_Y_Z_PRESsure (hPa)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  ZWORK31(:,:,:)=XPABSM(:,:,:)*1E-2
+  ZWORK31(:,:,:)=XPABST(:,:,:)*1E-2
   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !* Geopotential in meters
@@ -2017,15 +2017,15 @@ IF (LTPZH .OR. LCOREF) THEN
   IF (LUSERV) THEN
     ZWORK31(:,:,:)=SM_FOES(ZTEMP(:,:,:))
     ZWORK33(:,:,:)=ZWORK31(:,:,:)
-    ZWORK31(:,:,:)=(XMV/XMD)*ZWORK31(:,:,:)/(XPABSM(:,:,:)-ZWORK31(:,:,:))
-    ZWORK32(:,:,:)=100.*XRM(:,:,:,1)/ZWORK31(:,:,:)
+    ZWORK31(:,:,:)=(XMV/XMD)*ZWORK31(:,:,:)/(XPABST(:,:,:)-ZWORK31(:,:,:))
+    ZWORK32(:,:,:)=100.*XRT(:,:,:,1)/ZWORK31(:,:,:)
     IF (CCLOUD(1:3) =='ICE' .OR. CCLOUD =='C3R5')  THEN
       WHERE ( ZTEMP(:,:,:)< XTT)
         ZWORK31(:,:,:) = EXP( XALPI - XBETAI/ZTEMP(:,:,:) &
                        - XGAMI*ALOG(ZTEMP(:,:,:)) ) !saturation over ice
         ZWORK33(:,:,:)=ZWORK31(:,:,:)
-        ZWORK31(:,:,:)=(XMV/XMD)*ZWORK31(:,:,:)/(XPABSM(:,:,:)-ZWORK31(:,:,:))
-        ZWORK32(:,:,:)=100.*XRM(:,:,:,1)/ZWORK31(:,:,:)
+        ZWORK31(:,:,:)=(XMV/XMD)*ZWORK31(:,:,:)/(XPABST(:,:,:)-ZWORK31(:,:,:))
+        ZWORK32(:,:,:)=100.*XRT(:,:,:,1)/ZWORK31(:,:,:)
       END WHERE
     END IF
     YRECFM='REHU'
@@ -2042,7 +2042,7 @@ IF (LTPZH .OR. LCOREF) THEN
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     IF (LCOREF) THEN
-      ZWORK33(:,:,:)=(77.6*( XPABSM(:,:,:)*1E-2                &
+      ZWORK33(:,:,:)=(77.6*( XPABST(:,:,:)*1E-2                &
                             +ZWORK33(:,:,:)*4810/ZTEMP(:,:,:)) &
                       -6*ZWORK33(:,:,:)                        )/ZTEMP(:,:,:)
       YRECFM='COREF'
@@ -2074,15 +2074,15 @@ IF ( LMOIST_V .OR. LMSLP .OR. LBLTOP ) THEN
   IF(NRR > 0) THEN
 !   compute the ratio : 1 + total water mass / dry air mass
     ZRV_OV_RD = XRV / XRD
-    ZTHETAV(:,:,:) = 1. + XRM(:,:,:,1)
+    ZTHETAV(:,:,:) = 1. + XRT(:,:,:,1)
     DO JLOOP = 2,1+NRRL+NRRI                
-      ZTHETAV(:,:,:) = ZTHETAV(:,:,:) + XRM(:,:,:,JLOOP)
+      ZTHETAV(:,:,:) = ZTHETAV(:,:,:) + XRT(:,:,:,JLOOP)
     END DO
 ! compute the virtual potential temperature when water is present in any form
-    ZTHETAV(:,:,:) = XTHM(:,:,:) * (1.+XRM(:,:,:,1)*ZRV_OV_RD) / ZTHETAV(:,:,:)
+    ZTHETAV(:,:,:) = XTHT(:,:,:) * (1.+XRT(:,:,:,1)*ZRV_OV_RD) / ZTHETAV(:,:,:)
   ELSE
 ! compute the virtual potential temperature when water is absent
-    ZTHETAV(:,:,:) = XTHM(:,:,:)
+    ZTHETAV(:,:,:) = XTHT(:,:,:)
   END IF
 !
   IF (LMOIST_V .AND. NRR > 0) THEN
@@ -2103,12 +2103,12 @@ END IF
 IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN
   ALLOCATE(ZTHETAE(IIU,IJU,IKU))
   !
-  ZWORK31(:,:,:) = MAX(XRM(:,:,:,1),1.E-10)
+  ZWORK31(:,:,:) = MAX(XRT(:,:,:,1),1.E-10)
   ZTHETAE(:,:,:)= (    2840./                                          &
-         (3.5*ALOG(XTHM(:,:,:)*( XPABSM(:,:,:)/XP00 )**(XRD/XCPD)  )   &
-         - ALOG( XPABSM(:,:,:)*0.01*ZWORK31(:,:,:) / ( 0.622+ZWORK31(:,:,:) ) ) &
+         (3.5*ALOG(XTHT(:,:,:)*( XPABST(:,:,:)/XP00 )**(XRD/XCPD)  )   &
+         - ALOG( XPABST(:,:,:)*0.01*ZWORK31(:,:,:) / ( 0.622+ZWORK31(:,:,:) ) ) &
          -4.805   )    ) + 55.
-  ZTHETAE(:,:,:)= XTHM(:,:,:) * EXP( (3376. / ZTHETAE(:,:,:) - 2.54)  &
+  ZTHETAE(:,:,:)= XTHT(:,:,:) * EXP( (3376. / ZTHETAE(:,:,:) - 2.54)  &
                  *ZWORK31(:,:,:) *(1. +0.81 *ZWORK31(:,:,:)) )
 !
   IF (LMOIST_E) THEN
@@ -2177,7 +2177,7 @@ IF ( LMEAN_POVO ) THEN
     ZX0D          = XMEAN_POVO(2)
   END IF
   DO JK=IKB,IKE
-    WHERE((XPABSM(:,:,JK)>XMEAN_POVO(1)).AND.(XPABSM(:,:,JK)<XMEAN_POVO(2)))
+    WHERE((XPABST(:,:,JK)>XMEAN_POVO(1)).AND.(XPABST(:,:,JK)<XMEAN_POVO(2)))
       ZWORK21(:,:)=ZWORK21(:,:)+ZPOVO(:,:,JK)
       IWORK1(:,:)=IWORK1(:,:)+1
     END WHERE
@@ -2209,7 +2209,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN
     IWORK1(:,:)=0
     ZWORK21(:,:)=0.
     DO JK=IKB,IKE
-      WHERE((XPABSM(:,:,JK)>XMEAN_POVO(1)).AND.(XPABSM(:,:,JK)<XMEAN_POVO(2)))
+      WHERE((XPABST(:,:,JK)>XMEAN_POVO(1)).AND.(XPABST(:,:,JK)<XMEAN_POVO(2)))
           ZWORK21(:,:)=ZWORK21(:,:)+ZWORK34(:,:,JK)
           IWORK1(:,:)=IWORK1(:,:)+1
       END WHERE
@@ -2243,7 +2243,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN
     IWORK1(:,:)=0
     ZWORK21(:,:)=0.
     DO JK=IKB,IKE
-      WHERE((XPABSM(:,:,JK)>XMEAN_POVO(1)).AND.(XPABSM(:,:,JK)<XMEAN_POVO(2)))
+      WHERE((XPABST(:,:,JK)>XMEAN_POVO(1)).AND.(XPABST(:,:,JK)<XMEAN_POVO(2)))
         ZWORK21(:,:)=ZWORK21(:,:)+ZWORK34(:,:,JK)
         IWORK1(:,:)=IWORK1(:,:)+1
       END WHERE
@@ -2265,7 +2265,7 @@ END IF
 !
 IF (LDIV) THEN
 !
-  ZWORK31=GX_U_M(1,IKU,1,XUM,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,XVM,XDYY,XDZZ,XDZY)
+  ZWORK31=GX_U_M(1,IKU,1,XUT,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,XVT,XDYY,XDZZ,XDZY)
   YRECFM='HDIV'
   YCOMMENT='X_Y_Z_Horizontal DIVergence (/S)'
   YCOMMENT='(1/s)'
@@ -2277,8 +2277,8 @@ IF (LDIV) THEN
    YRECFM= 'HMDIV'
    YCOMMENT='X_Y_Z_Horizontal Moisture DIVergence HMDIV (KG/M3/S)'
    ILENCH=LEN(YCOMMENT)
-   ZWORK31=MXM(XRHODREF*XRM(:,:,:,1))*XUM
-   ZWORK32=MYM(XRHODREF*XRM(:,:,:,1))*XVM
+   ZWORK31=MXM(XRHODREF*XRT(:,:,:,1))*XUT
+   ZWORK32=MYM(XRHODREF*XRT(:,:,:,1))*XVT
    ZWORK33=GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY)
    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,  &
         YCOMMENT,IRESP)
@@ -2293,7 +2293,7 @@ ENDIF
 IF (LGEO .OR. LAGEO) THEN
   ALLOCATE(ZPHI(IIU,IJU,IKU))
   IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
-    ZPHI(:,:,:)=(XPABSM(:,:,:)/XP00)**(XRD/XCPD)-XEXNREF(:,:,:)
+    ZPHI(:,:,:)=(XPABST(:,:,:)/XP00)**(XRD/XCPD)-XEXNREF(:,:,:)
     !
     ZPHI(1,1,:)=2*ZPHI(1,2,:)-ZPHI(1,3,:)
     ZPHI(1,IJU,:)=2*ZPHI(1,IJU-1,:)-ZPHI(1,IJU-2,:)
@@ -2308,7 +2308,7 @@ IF (LGEO .OR. LAGEO) THEN
     ZWORK32(:,:,:)=MYM(GX_M_M(1,IKU,1,ZPHI,XDXX,XDZZ,XDZX)*XCPD*XTHVREF/ZCORIOZ)
   !
   ELSE IF(CEQNSYS=='LHE') THEN
-    ZPHI(:,:,:)= ((XPABSM(:,:,:)/XP00)**(XRD/XCPD)-XEXNREF(:,:,:))   &
+    ZPHI(:,:,:)= ((XPABST(:,:,:)/XP00)**(XRD/XCPD)-XEXNREF(:,:,:))   &
                * XCPD * XTHVREF(:,:,:)
     !
     ZPHI(1,1,:)=2*ZPHI(1,2,:)-ZPHI(1,3,:)
@@ -2350,18 +2350,18 @@ IF (LGEO .OR. LAGEO) THEN
     YCOMMENT='(M/S)'
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWM,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 !
   IF (LAGEO) THEN
-    ZWORK31(:,:,:)=XUM(:,:,:)-ZWORK31(:,:,:)
+    ZWORK31(:,:,:)=XUT(:,:,:)-ZWORK31(:,:,:)
     YRECFM='UM89'
     YCOMMENT='X_Y_Z_U component of AGEOstrophic wind (m/s)'
     IGRID=2
     ILENCH=LEN(YCOMMENT)
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
-    ZWORK32(:,:,:)=XVM(:,:,:)-ZWORK32(:,:,:)
+    ZWORK32(:,:,:)=XVT(:,:,:)-ZWORK32(:,:,:)
     YRECFM='VM89'
     YCOMMENT='X_Y_Z_V component of AGEOstrophic wind (m/s)'
     IGRID=3
@@ -2379,7 +2379,7 @@ IF (LGEO .OR. LAGEO) THEN
     YCOMMENT='X_Y_Z_vertical wind (m/s)'
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWM,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 !
 END IF
@@ -2391,7 +2391,7 @@ END IF
 IF (LMSLP) THEN
   ZGAMREF=-6.5E-3
 !  Exner function at the first mass point
-  ZWORK21(:,:) = (XPABSM(:,:,IKB) /XP00)**(XRD/XCPD)
+  ZWORK21(:,:) = (XPABST(:,:,IKB) /XP00)**(XRD/XCPD)
 !  virtual temperature at the first mass point
   ZWORK21(:,:) = ZWORK21(:,:) * ZTHETAV(:,:,IKB)
 !  virtual temperature at ground level
@@ -2401,7 +2401,7 @@ IF (LMSLP) THEN
 !  average underground virtual temperature
   ZWORK22(:,:) = 0.5*(ZWORK21(:,:)+ZWORK22(:,:))
 !  surface pressure
-  ZWORK21(:,:) = ( XPABSM(:,:,IKB) + XPABSM(:,:,IKB-1) )*.5
+  ZWORK21(:,:) = ( XPABST(:,:,IKB) + XPABST(:,:,IKB-1) )*.5
 !  sea level pressure (hPa)
   ZWORK22(:,:) = 1.E-2*ZWORK21(:,:)*EXP(XG*XZS(:,:)/(XRD*ZWORK22(:,:)))
 !
@@ -2418,9 +2418,9 @@ END IF
 IF (LTHW) THEN
 !
   ZWORK21(:,:) = 0.
-  IF(SIZE(XRM,4)>=1)THEN
+  IF(SIZE(XRT,4)>=1)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,1) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,1) * &
                      (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000. ! vapor water in mm unit
@@ -2432,9 +2432,9 @@ IF (LTHW) THEN
   END IF
   !
   ZWORK21(:,:) = 0.
-  IF(SIZE(XRM,4)>=2)THEN
+  IF(SIZE(XRT,4)>=2)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,2) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,2) * &
                      (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000. ! cloud water in mm unit
@@ -2446,9 +2446,9 @@ IF (LTHW) THEN
   END IF
   !
   ZWORK21(:,:) = 0.
-  IF(SIZE(XRM,4)>=3)THEN
+  IF(SIZE(XRT,4)>=3)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,3) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,3) * &
                      (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000. ! rain water in mm unit
@@ -2460,9 +2460,9 @@ IF (LTHW) THEN
   END IF
   !
   ZWORK21(:,:)   = 0.
-  IF(SIZE(XRM,4)>=4)THEN
+  IF(SIZE(XRT,4)>=4)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,4) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,4) * &
                    (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000.   ! ice thickness in mm unit
@@ -2474,9 +2474,9 @@ IF (LTHW) THEN
   END IF
   !
   ZWORK21(:,:)   = 0.
-  IF(SIZE(XRM,4)>=5)THEN
+  IF(SIZE(XRT,4)>=5)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,5) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,5) * &
                    (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000.   ! snow thickness in mm unit
@@ -2488,9 +2488,9 @@ IF (LTHW) THEN
   END IF
   !
   ZWORK21(:,:)   = 0.
-  IF(SIZE(XRM,4)>=6)THEN
+  IF(SIZE(XRT,4)>=6)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,6) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,6) * &
                    (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000.   ! graupel thickness in mm unit
@@ -2502,9 +2502,9 @@ IF (LTHW) THEN
   END IF
   !
   ZWORK21(:,:)   = 0.
-  IF(SIZE(XRM,4)>=7)THEN
+  IF(SIZE(XRT,4)>=7)THEN
     DO JK = IKB,IKE
-      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRM(:,:,JK,7) * &
+      ZWORK21(:,:) = ZWORK21(:,:)+XRHODREF(:,:,JK)*XRT(:,:,JK,7) * &
                    (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW
     END DO
     ZWORK21(:,:) = ZWORK21(:,:)*1000.   ! hail thickness in mm unit
@@ -2621,11 +2621,11 @@ END IF
 !* CAPEMAX, CINMAX (corresponding to CAPEMAX), CAPE, CIN, DCAPE, VKE in J/kg
 !
 IF (NCAPE >=0 .AND. LUSERV) THEN
-   ZWORK31(:,:,:) = XRM(:,:,:,1) * 1000.  ! vapour mixing ratio in g/kg
+   ZWORK31(:,:,:) = XRT(:,:,:,1) * 1000.  ! vapour mixing ratio in g/kg
    ZWORK32(:,:,:)=0.0
    ZWORK33(:,:,:)=0.0
    ZWORK34(:,:,:)=0.0
-   CALL CALCSOUND( XPABSM(:,:,IKB:IKE)* 0.01 ,ZTEMP(:,:,IKB:IKE)- XTT, &
+   CALL CALCSOUND( XPABST(:,:,IKB:IKE)* 0.01 ,ZTEMP(:,:,IKB:IKE)- XTT, &
                    ZWORK31(:,:,IKB:IKE),                               &
                    ZWORK32(:,:,IKB:IKE),ZWORK33(:,:,IKB:IKE),          &
                    ZWORK34(:,:,IKB:IKE),ZWORK21,ZWORK22                )
@@ -2663,7 +2663,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN
   END IF
   !
   IF (NCAPE >=2) THEN
-    ZWORK31(:,:,1:IKU-1)= 0.5*(XWM(:,:,1:IKU-1)+XWM(:,:,2:IKU))
+    ZWORK31(:,:,1:IKU-1)= 0.5*(XWT(:,:,1:IKU-1)+XWT(:,:,2:IKU))
     ZWORK31(:,:,IKU)    = 0.
     ZWORK31=0.5*ZWORK31**2
     !
@@ -2680,7 +2680,7 @@ ENDIF
 !* B-V frequency to assess thermal tropopause
 !
 IF (LBV_FR) THEN
-  ZWORK32(:,:,:)=DZM(1,IKU,1,XTHM(:,:,:))/ MZM(1,IKU,1,XTHM(:,:,:))
+  ZWORK32(:,:,:)=DZM(1,IKU,1,XTHT(:,:,:))/ MZM(1,IKU,1,XTHT(:,:,:))
   DO JK=1,IKU
    DO JJ=1,IJU
     DO JI=1,IIU
@@ -2732,7 +2732,7 @@ IF ( NGPS>=0 ) THEN
   ZWORK21(:,:) = ZTEMP(:,:,IKB) - ZGAMREF*((XZZ(:,:,IKB)+XZZ(:,:,IKB+1))/2.-XZS(:,:))
   !
   YFGRI=ADJUSTL(ADJUSTR(HFMFILE)//'GPS')
-  CALL GPS_ZENITH (YFGRI,XRM(:,:,:,1),ZTEMP,XPABSM,ZWORK21,ZWORK22,ZWORK23,ZWORK24)    
+  CALL GPS_ZENITH (YFGRI,XRT(:,:,:,1),ZTEMP,XPABST,ZWORK21,ZWORK22,ZWORK23,ZWORK24)    
   !
   YRECFM       ='ZTD'
   YCOMMENT     ='X_Y_Z_Zenithal Total Delay (m)'
@@ -2865,7 +2865,7 @@ IF(LRADAR .AND. LUSERR) THEN
          ALLOCATE(ZWORK42(NBRAD,IIELV,NBAZIM,NBSTEPMAX+1,INBOUT))
       END IF
       !
-      CALL RADAR_SIMULATOR(XUM,XVM,XWM,XRT,XCIT,XRHODREF,ZTEMP,XPABSM,ZWORK42,ZWORK43)
+      CALL RADAR_SIMULATOR(XUT,XVT,XWT,XRT,XCIT,XRHODREF,ZTEMP,XPABST,ZWORK42,ZWORK43)
       ALLOCATE(YRAD(INBOUT))
       YRAD(1:9)=(/"ZHH","ZDR","KDP","CSR","ZER","ZEI","ZES","ZEG","VRU"/)
       ICURR=10
diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90
index e08f87940..d0c723c29 100644
--- a/src/MNH/write_lfifm1_for_diag_supp.f90
+++ b/src/MNH/write_lfifm1_for_diag_supp.f90
@@ -1,3 +1,4 @@
+!-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$ $Date$
@@ -96,9 +97,9 @@ USE MODD_TIME_n
 USE MODD_TURB_n
 USE MODD_REF_n, ONLY: XRHODREF
 USE MODD_DIAG_FLAG
-USE MODD_NSV,   ONLY : NSV,NSV_USER,NSV_C2R2BEG,NSV_C2R2END,             &
-                       NSV_C1R3BEG, NSV_C1R3END,NSV_ELECBEG,NSV_ELECEND, &
-                       NSV_CHEMBEG, NSV_CHEMEND,NSV_LGBEG,  NSV_LGEND
+USE MODD_NSV, ONLY : NSV,NSV_USER,NSV_C2R2BEG,NSV_C2R2END,             &
+                     NSV_C1R3BEG, NSV_C1R3END,NSV_ELECBEG,NSV_ELECEND, &
+                     NSV_CHEMBEG, NSV_CHEMEND,NSV_LGBEG,  NSV_LGEND
 USE MODD_CH_M9_n,         ONLY: CNAMES
 USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES
 USE MODD_ICE_C1R3_DESCR,  ONLY: C1R3NAMES
@@ -174,7 +175,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZIRBT, ZWVBT
 REAL  :: ZUNDEF ! undefined value in SURFEX
 !
 ! variables needed for 10m wind                                 
-INTEGER :: ILEVEL    
+INTEGER :: ILEVEL
 !
 INTEGER :: IPRES, ITH
 CHARACTER(LEN=4) :: YCAR4
@@ -202,7 +203,7 @@ IKE=IKU-JPVEXT
 ALLOCATE(ZWORK21(IIU,IJU))
 ALLOCATE(ZWORK31(IIU,IJU,IKU))
 ALLOCATE(ZTEMP(IIU,IJU,IKU))
-ZTEMP(:,:,:)=XTHM(:,:,:)*(XPABSM(:,:,:)/ XP00) **(XRD/XCPD)
+ZTEMP(:,:,:)=XTHT(:,:,:)*(XPABST(:,:,:)/ XP00) **(XRD/XCPD)
 !
 #ifdef MNH_NCWRIT
 IF (LNETCDF.AND..NOT.LCARTESIAN) THEN
@@ -705,12 +706,12 @@ IF (CSURF=='EXTE') THEN
                    ( XZHAT(ILEVEL+1) + XZHAT(ILEVEL+2)) /2. >10.)
 
       !Interpolation between ILEVEL and ILEVEL+1
-      XCURRENT_ZON10M(IIB:IIE,IJB:IJE)=XUM(IIB:IIE,IJB:IJE,ILEVEL) + &
-            (XUM(IIB:IIE,IJB:IJE,ILEVEL+1)-XUM(IIB:IIE,IJB:IJE,ILEVEL)) * &
+      XCURRENT_ZON10M(IIB:IIE,IJB:IJE)=XUT(IIB:IIE,IJB:IJE,ILEVEL) + &
+            (XUT(IIB:IIE,IJB:IJE,ILEVEL+1)-XUT(IIB:IIE,IJB:IJE,ILEVEL)) * &
             ( 10.- (XZHAT(ILEVEL)+XZHAT(ILEVEL+1))/2. ) / &
            ( (XZHAT(ILEVEL+2)-XZHAT(ILEVEL)) /2.)
-      XCURRENT_MER10M(IIB:IIE,IJB:IJE)=XVM(IIB:IIE,IJB:IJE,ILEVEL) + &
-            (XVM(IIB:IIE,IJB:IJE,ILEVEL+1)-XVM(IIB:IIE,IJB:IJE,ILEVEL)) * &
+      XCURRENT_MER10M(IIB:IIE,IJB:IJE)=XVT(IIB:IIE,IJB:IJE,ILEVEL) + &
+            (XVT(IIB:IIE,IJB:IJE,ILEVEL+1)-XVT(IIB:IIE,IJB:IJE,ILEVEL)) * &
             (10.- (XZHAT(ILEVEL)+XZHAT(ILEVEL+1))/2. ) / &                                    
            ( (XZHAT(ILEVEL+2)-XZHAT(ILEVEL)) /2.)
     END WHERE
@@ -722,15 +723,14 @@ IF (CSURF=='EXTE') THEN
     IGRID=0
     ! in this case (argument IGRID=0), input winds are ZONal and MERidien 
     !          and, output ones are in MesoNH grid   
-    IF (.NOT. LCARTESIAN) THEN
-      CALL UV_TO_ZONAL_AND_MERID(XCURRENT_ZON10M,XCURRENT_MER10M,IGRID,     &
+    IF (.NOT. LCARTESIAN)                                                 &
+    CALL UV_TO_ZONAL_AND_MERID(XCURRENT_ZON10M,XCURRENT_MER10M,IGRID,     &
             HFMFILE=HFMFILE,HRECU='UM10',HRECV='VM10',HCOMMENT=YCOMMENT)
-    END IF
       !
-    IF (SIZE(XTKEM)>0) THEN
+    IF (SIZE(XTKET)>0) THEN
      ZWORK21(:,:)= 0.    
      ZWORK21(:,:) = SQRT(XCURRENT_ZON10M(:,:)**2+XCURRENT_MER10M(:,:)**2)
-     ZWORK21(:,:) =ZWORK21(:,:) + 4. * SQRT(XTKEM(:,:,IKB))
+     ZWORK21(:,:) =ZWORK21(:,:) + 4. * SQRT(XTKET(:,:,IKB))
      YRECFM      ='FF10MAX'
      YCOMMENT    ='X_Y_FF10MAX (m/s)'
      IGRID       =1
@@ -805,11 +805,11 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! *********************
 ! Potential Temperature
 ! *********************
-  CALL PINTER(XTHM, XPABSM, XZZ, ZTEMP, ZWRES, ZPRES, &
+  CALL PINTER(XTHT, XPABST, XZZ, ZTEMP, ZWRES, ZPRES, &
          IIU, IJU, IKU, IKB, IPRES, 'LOG', 'RHU.')
   DO JK=1,IPRES
     ZWORK21(:,:) = ZWRES(:,:,JK)
-    YRECFM='THM'//TRIM(YPRES(JK))//'HPA'
+    YRECFM='THT'//TRIM(YPRES(JK))//'HPA'
     YCOMMENT='X_Y_potential temperature '//TRIM(YPRES(JK))//'hPa (K)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
@@ -818,24 +818,24 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! *********************
 ! Wind
 ! *********************
-  ZWORK31(:,:,:) = MXF(XUM(:,:,:))
-  CALL PINTER(ZWORK31, XPABSM, XZZ, ZTEMP, ZWRES, ZPRES, &
+  ZWORK31(:,:,:) = MXF(XUT(:,:,:))
+  CALL PINTER(ZWORK31, XPABST, XZZ, ZTEMP, ZWRES, ZPRES, &
          IIU, IJU, IKU, IKB, IPRES, 'LOG', 'RHU.')
   DO JK=1,IPRES
     ZWORK21(:,:) = ZWRES(:,:,JK)
-    YRECFM='UM'//TRIM(YPRES(JK))//'HPA'
+    YRECFM='UT'//TRIM(YPRES(JK))//'HPA'
     YCOMMENT='X_Y_U component of wind '//TRIM(YPRES(JK))//'hPa (m/s)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END DO
   !
-  ZWORK31(:,:,:) = MYF(XVM(:,:,:))
-  CALL PINTER(ZWORK31, XPABSM, XZZ, ZTEMP, ZWRES, ZPRES, &
+  ZWORK31(:,:,:) = MYF(XVT(:,:,:))
+  CALL PINTER(ZWORK31, XPABST, XZZ, ZTEMP, ZWRES, ZPRES, &
           IIU, IJU, IKU, IKB, IPRES, 'LOG', 'RHU.')
   DO JK=1,IPRES
     ZWORK21(:,:) = ZWRES(:,:,JK)
-    YRECFM='VM'//TRIM(YPRES(JK))//'HPA'
+    YRECFM='VT'//TRIM(YPRES(JK))//'HPA'
     YCOMMENT='X_Y_V component of wind '//TRIM(YPRES(JK))//'hPa (m/s)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
@@ -844,7 +844,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! *********************
 ! Water Vapour Mixing Ratio
 ! *********************
-  CALL PINTER(XRM(:,:,:,1), XPABSM, XZZ, ZTEMP, ZWRES, ZPRES, &
+  CALL PINTER(XRT(:,:,:,1), XPABST, XZZ, ZTEMP, ZWRES, ZPRES, &
          IIU, IJU, IKU, IKB, IPRES, 'LOG', 'RHU.')
   DO JK=1,IPRES
     ZWORK21(:,:) = 1.E+3*ZWRES(:,:,JK)
@@ -858,7 +858,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! Geopotential in meters
 ! *********************
   ZWORK31(:,:,:) = MZF(1,IKU,1,XZZ(:,:,:))
-  CALL PINTER(ZWORK31, XPABSM, XZZ, ZTEMP, ZWRES, ZPRES, &
+  CALL PINTER(ZWORK31, XPABST, XZZ, ZTEMP, ZWRES, ZPRES, &
            IIU, IJU, IKU, IKB, IPRES, 'LOG', 'RHU.')
   DO JK=1,IPRES
     ZWORK21(:,:) = ZWRES(:,:,JK)
@@ -907,10 +907,10 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! *********************
 ! Pressure
 ! *********************
-  CALL ZINTER(XPABSM, XTHM, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
+  CALL ZINTER(XPABST, XTHT, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
   DO JK=1,ITH
     ZWORK21(:,:) = ZWTH(:,:,JK)
-    YRECFM='PABSM'//TRIM(YTH(JK))//'K'
+    YRECFM='PABST'//TRIM(YTH(JK))//'K'
     YCOMMENT='X_Y_pressure '//TRIM(YTH(JK))//'K (Pa)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
@@ -920,26 +920,26 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! Potential Vorticity
 ! *********************
   ZCORIOZ(:,:,:)=SPREAD( XCORIOZ(:,:),DIM=3,NCOPIES=IKU )
-  ZVOX(:,:,:)=GY_W_VW(1,IKU,1,XWM,XDYY,XDZZ,XDZY)-GZ_V_VW(1,IKU,1,XVM,XDZZ)
+  ZVOX(:,:,:)=GY_W_VW(1,IKU,1,XWT,XDYY,XDZZ,XDZY)-GZ_V_VW(1,IKU,1,XVT,XDZZ)
   ZVOX(:,:,2)=ZVOX(:,:,3)
-  ZVOY(:,:,:)=GZ_U_UW(1,IKU,1,XUM,XDZZ)-GX_W_UW(1,IKU,1,XWM,XDXX,XDZZ,XDZX)
+  ZVOY(:,:,:)=GZ_U_UW(1,IKU,1,XUT,XDZZ)-GX_W_UW(1,IKU,1,XWT,XDXX,XDZZ,XDZX)
   ZVOY(:,:,2)=ZVOY(:,:,3)
-  ZVOZ(:,:,:)=GX_V_UV(1,IKU,1,XVM,XDXX,XDZZ,XDZX)-GY_U_UV(1,IKU,1,XUM,XDYY,XDZZ,XDZY)
+  ZVOZ(:,:,:)=GX_V_UV(1,IKU,1,XVT,XDXX,XDZZ,XDZX)-GY_U_UV(1,IKU,1,XUT,XDYY,XDZZ,XDZY)
   ZVOZ(:,:,2)=ZVOZ(:,:,3)
   ZVOZ(:,:,1)=ZVOZ(:,:,3)
-  ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHM,XDXX,XDZZ,XDZX)
-  ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHM,XDYY,XDZZ,XDZY)
-  ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHM,XDZZ)
+  ZWORK31(:,:,:)=GX_M_M(1,IKU,1,XTHT,XDXX,XDZZ,XDZX)
+  ZWORK32(:,:,:)=GY_M_M(1,IKU,1,XTHT,XDYY,XDZZ,XDZY)
+  ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,XTHT,XDZZ)
   ZPOVO(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:)))     &
   + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:)))     &
    + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:))
   ZPOVO(:,:,:)= ZPOVO(:,:,:)*1E6/XRHODREF(:,:,:)
   ZPOVO(:,:,1)  =-1.E+11
   ZPOVO(:,:,IKU)=-1.E+11
-  CALL ZINTER(ZPOVO, XTHM, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
+  CALL ZINTER(ZPOVO, XTHT, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
   DO JK=1,ITH
    ZWORK21(:,:) = ZWTH(:,:,JK)
-   YRECFM='POVOM'//TRIM(YTH(JK))//'K'
+   YRECFM='POVOT'//TRIM(YTH(JK))//'K'
    YCOMMENT='X_Y_POtential VOrticity '//TRIM(YTH(JK))//'K (PVU)'
    IGRID=1
    ILENCH=LEN(YCOMMENT)
@@ -948,22 +948,22 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU))
 ! *********************
 ! Wind
 ! *********************
-  ZWORK31(:,:,:) = MXF(XUM(:,:,:))
-  CALL ZINTER(ZWORK31, XTHM, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
+  ZWORK31(:,:,:) = MXF(XUT(:,:,:))
+  CALL ZINTER(ZWORK31, XTHT, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
   DO JK=1,ITH
     ZWORK21(:,:) = ZWTH(:,:,JK)
-    YRECFM='UM'//TRIM(YTH(JK))//'K'
+    YRECFM='UT'//TRIM(YTH(JK))//'K'
     YCOMMENT='X_Y_U component of wind '//TRIM(YTH(JK))//'K (m/s)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END DO
   !
-  ZWORK31(:,:,:) = MYF(XVM(:,:,:))
-  CALL ZINTER(ZWORK31, XTHM, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
+  ZWORK31(:,:,:) = MYF(XVT(:,:,:))
+  CALL ZINTER(ZWORK31, XTHT, ZWTH, ZTH, IIU, IJU, IKU, IKB, ITH, XUNDEF)
   DO JK=1,ITH
     ZWORK21(:,:) = ZWTH(:,:,JK)
-    YRECFM='VM'//TRIM(YTH(JK))//'K'
+    YRECFM='VT'//TRIM(YTH(JK))//'K'
     YCOMMENT='X_Y_V component of wind '//TRIM(YTH(JK))//'K (m/s)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index 3b4112ae0..7a7f65e3f 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -4,7 +4,6 @@
 ! $Source$ $Revision$
 ! masdev4_7 BUG1 2007/06/20 16:58:20
 !-----------------------------------------------------------------
-
 !     #########################
       MODULE MODI_WRITE_LFIFM_n
 !     #########################
@@ -173,7 +172,7 @@ USE MODD_LUNIT_n
 USE MODD_TURB_n
 USE MODD_RADIATIONS_n,   ONLY : XDTHRAD, NCLEARCOL_TM1, XFLALWD, &
                                 XZENITH, XDIR_ALB, XSCA_ALB, XEMIS, XTSRAD, &
-                                XDIRSRFSWD, XSCAFLASWD, XDIRFLASWD, XAZIM, XAER
+                                XDIRSRFSWD, XSCAFLASWD, XDIRFLASWD, XAZIM
 USE MODD_REF_n,  ONLY : XRHODREF
 USE MODD_FRC
 USE MODD_PRECIP_n
@@ -289,8 +288,8 @@ IMI = GET_CURRENT_MODEL_INDEX()
 !
 CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
 !
-ALLOCATE(ZWORK2D(SIZE(XTHM,1),SIZE(XTHM,2)))
-ALLOCATE(ZWORK3D(SIZE(XTHM,1),SIZE(XTHM,2),SIZE(XTHM,3)))
+ALLOCATE(ZWORK2D(SIZE(XTHT,1),SIZE(XTHT,2)))
+ALLOCATE(ZWORK3D(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)))
 !
 !
 !*       0.2     ARRAYS BOUNDS INITIALIZATION
@@ -597,31 +596,31 @@ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LCPL_AROME,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YDIR='XY'
 !
-!*       1.4.1  Time t-dt:
+!*       1.4.1  Time t:
 !   
-YRECFM='UM'
+YRECFM='UT'
 YCOMMENT='X_Y_Z_U component of wind (m/s)'
 IGRID=2
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUM,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
-YRECFM='VM'
+YRECFM='VT'
 YCOMMENT='X_Y_Z_V component of wind (m/s)'
 IGRID=3
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVM,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
-YRECFM='WM'
+YRECFM='WT'
 YCOMMENT='X_Y_Z_vertical wind (m/s)'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWM,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
-YRECFM='THM'
+YRECFM='THT'
 YCOMMENT='X_Y_Z_potential temperature (K)'
 IGRID=1
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHM,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 IF (MEAN_COUNT /= 0) THEN
 !
@@ -720,83 +719,90 @@ END IF
 !
 !
 IF (CTURB /= 'NONE') THEN
-  YRECFM='TKEM'
+  YRECFM='TKET'
   YCOMMENT='X_Y_Z_Turbulent Kinetic Energy (M**2/S**2)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTKEM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTKET,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 !
 !
-YRECFM='PABSM'
+YRECFM='PABST'
 YCOMMENT='X_Y_Z_ABSolute Pressure (Pa)'
 IGRID=1
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPABSM,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPABST,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 IF (NRR >=1) THEN
   IRR=0
   IGRID=1                                    ! individually in file 
   IF (LUSERV) THEN
     IRR   = IRR+1 
-    YRECFM= 'RVM'
+    YRECFM= 'RVT'
     YCOMMENT='X_Y_Z_Vapor mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH,  &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
   END IF 
   IF (LUSERC) THEN
     IRR   = IRR+1 
-    YRECFM= 'RCM'
+    YRECFM= 'RCT'
     YCOMMENT='X_Y_Z_Cloud mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH,  &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
-    WRITE (ILUOUT,*) IRR,' RC min-max ',MIN_ll(XRM(:,:,:,IRR),INFO_ll),MAX_ll(XRM(:,:,:,IRR),INFO_ll)
+    WRITE (ILUOUT,*) IRR,' RC min-max ',MIN_ll(XRT(:,:,:,IRR),INFO_ll),MAX_ll(XRT(:,:,:,IRR),INFO_ll)
   END IF
   IF (LUSERR) THEN
     IRR   = IRR+1 
-    YRECFM= 'RRM'
+    YRECFM= 'RRT'
     YCOMMENT='X_Y_Z_Rain mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH,  &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
-    WRITE (ILUOUT,*) IRR,' RR min-max ',MIN_ll(XRM(:,:,:,IRR),INFO_ll),MAX_ll(XRM(:,:,:,IRR),INFO_ll)
+    WRITE (ILUOUT,*) IRR,' RR min-max ',MIN_ll(XRT(:,:,:,IRR),INFO_ll),MAX_ll(XRT(:,:,:,IRR),INFO_ll)
   END IF 
   IF (LUSERI) THEN
     IRR   = IRR+1 
-    YRECFM= 'RIM'
+    YRECFM= 'RIT'
     YCOMMENT='X_Y_Z_Ice mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH, &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, &
                 YCOMMENT,IRESP)
-    WRITE (ILUOUT,*) IRR,' RI min-max ',MIN_ll(XRM(:,:,:,IRR),INFO_ll),MAX_ll(XRM(:,:,:,IRR),INFO_ll)
+    WRITE (ILUOUT,*) IRR,' RI min-max ',MIN_ll(XRT(:,:,:,IRR),INFO_ll),MAX_ll(XRT(:,:,:,IRR),INFO_ll)
+    IF ( CPROGRAM == 'MESONH' .AND. CCLOUD(1:3) == 'ICE') THEN
+      YRECFM= 'CIT'
+      YCOMMENT='X_Y_Z_Cloud Ice concentration (/M3)'
+      ILENCH=LEN(YCOMMENT)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XCIT(:,:,:),   IGRID,ILENCH,  &
+                  YCOMMENT,IRESP)
+    END IF
   END IF 
   IF (LUSERS) THEN
     IRR   = IRR+1 
-    YRECFM= 'RSM'
+    YRECFM= 'RST'
     YCOMMENT='X_Y_Z_Snow mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH, &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH, &
                 YCOMMENT,IRESP)
-    WRITE (ILUOUT,*) IRR,' RS min-max ',MIN_ll(XRM(:,:,:,IRR),INFO_ll),MAX_ll(XRM(:,:,:,IRR),INFO_ll)
+    WRITE (ILUOUT,*) IRR,' RS min-max ',MINVAL(XRT(:,:,:,IRR)),MAXVAL(XRT(:,:,:,IRR))
   END IF
   IF (LUSERG) THEN
     IRR   = IRR+1 
-    YRECFM= 'RGM'
+    YRECFM= 'RGT'
     YCOMMENT='X_Y_Z_Graupel mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH,  &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
-    WRITE (ILUOUT,*) IRR,' RG min-max ',MIN_ll(XRM(:,:,:,IRR),INFO_ll),MAX_ll(XRM(:,:,:,IRR),INFO_ll)
+    WRITE (ILUOUT,*) IRR,' RG min-max ',MINVAL(XRT(:,:,:,IRR)),MAXVAL(XRT(:,:,:,IRR))
   END IF 
   IF (LUSERH) THEN
     IRR   = IRR+1 
-    YRECFM= 'RHM'
+    YRECFM= 'RHT'
     YCOMMENT='X_Y_Z_Hail mixing Ratio (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRM(:,:,:,IRR),IGRID,ILENCH,  &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
   END IF 
 END IF
@@ -806,42 +812,42 @@ IF (NSV >=1) THEN
   IGRID=1                                       ! individually in the file
   ! User scalar variables
   DO JSV = 1,NSV_USER
-    WRITE(YRECFM,'(A3,I3.3)')'SVM',JSV
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (KG/KG)'
+    WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     JSA=JSA+1
   END DO
   ! microphysical C2R2 scheme scalar variables
   DO JSV = NSV_C2R2BEG,NSV_C2R2END
-    YRECFM=TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'M'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (/M3)'
+    YRECFM=TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T'
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/M3)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     JSA=JSA+1
   END DO
   ! microphysical C3R5 scheme additional scalar variables
   DO JSV = NSV_C1R3BEG,NSV_C1R3END
-    YRECFM=TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'M'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (/M3)'
+    YRECFM=TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T'
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/M3)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     JSA=JSA+1
   END DO
   ! electrical scalar variables
   DO JSV = NSV_ELECBEG,NSV_ELECEND
-    YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'M'
+    YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'T'
     IF (JSV .GT. NSV_ELECBEG .AND. JSV .LT. NSV_ELECEND) THEN 
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (C/m3)'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (C/m3)'
     ELSE
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (nb ions/m3)'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)'
     END IF
     ILENCH=LEN(YCOMMENT)
     ZWORK3D(:,:,:) = 0.
-    ZWORK3D(:,:,:) = XSVM(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3
+    ZWORK3D(:,:,:) = XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     JSA=JSA+1
@@ -907,31 +913,32 @@ IF (NSV >=1) THEN
   END IF
   ! lagrangian variables
   DO JSV = NSV_LGBEG,NSV_LGEND
-    YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'M'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (M)'
+    YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T'
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (M)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     JSA=JSA+1
   END DO
   ! Passive scalar variables        
  IF (LPASPOL) THEN
   DO JSV = NSV_PPBEG,NSV_PPEND
-      WRITE(YRECFM,'(A3,I3.3)')'SVM',JSV
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (KG/KG)'
-      ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
-                  YCOMMENT,IRESP)
-      JSA=JSA+1
-    END DO
-  END IF
+    WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
+                YCOMMENT,IRESP)
+    JSA=JSA+1
+  END DO
+ END IF
+!
   ! Conditional sampling variables  
  IF (LCONDSAMP) THEN
   DO JSV = NSV_CSBEG,NSV_CSEND
-    WRITE(YRECFM,'(A3,I3.3)')'SVM',JSV
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (KG/KG)'
+    WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     JSA=JSA+1
   END DO
@@ -953,29 +960,41 @@ IF (NSV >=1) THEN
   ! chemical scalar variables
   IF (LUSECHEM) THEN
     DO JSV = NSV_CHEMBEG,NSV_CHEMEND
-      YRECFM=TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1)))//'M'
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+      YRECFM=TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1)))//'T'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
-      YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) ! without M
+      YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) ! without T
     END DO
     IF (LUSECHIC) THEN
       DO JSV = NSV_CHICBEG,NSV_CHICEND
-        YRECFM=TRIM(UPCASE(CICNAMES(JSV-NSV_CHICBEG+1)))//'M'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+        YRECFM=TRIM(UPCASE(CICNAMES(JSV-NSV_CHICBEG+1)))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                     YCOMMENT,IRESP)
         YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) ! without M
       END DO
     ENDIF
+    IF (LUSECHAQ.AND.LCH_PH) THEN  ! pH values in cloud
+      YRECFM = 'PHC'
+      YCOMMENT='X_Y_Z_PHC'
+      ILENCH=LEN(YCOMMENT)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPHC,IGRID,ILENCH,YCOMMENT,IRESP)
+      IF (NRR>=3) THEN
+        YRECFM = 'PHR'
+        YCOMMENT='X_Y_Z_PHR'
+        ILENCH=LEN(YCOMMENT)
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPHR,IGRID,ILENCH,YCOMMENT,IRESP)
+      ENDIF
+    ENDIF
   ELSE IF (LCH_CONV_LINOX) THEN
     DO JSV = NSV_LNOXBEG,NSV_LNOXEND
-      YRECFM='LINOXM'
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A)') 'X_Y_Z_','SVM',JSV,' (ppp)'
+      YRECFM='LINOXT'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A)') 'X_Y_Z_','SVT',JSV,' (ppp)'
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH, &
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, &
                   YCOMMENT,IRESP)
       YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1)
     END DO
@@ -983,14 +1002,14 @@ IF (NSV >=1) THEN
   ! aerosol scalar variables
   IF (LORILAM) THEN
     IF ((CPROGRAM == 'REAL  ').AND.(NSV_AER > 1).AND.(IMI==1).AND.(LAERINIT))  &
-      CALL CH_AER_REALLFI_n(XSVM(:,:,:,NSV_AERBEG:NSV_AEREND),XSVM(:,:,:,NSV_CHEMBEG-1+JP_CH_CO), XRHODREF)
+      CALL CH_AER_REALLFI_n(XSVT(:,:,:,NSV_AERBEG:NSV_AEREND),XSVT(:,:,:,NSV_CHEMBEG-1+JP_CH_CO), XRHODREF)
     IF ((CPROGRAM == 'IDEAL ').AND.(NSV_AER > 1).AND.(IMI==1))  &
-      CALL CH_AER_REALLFI_n(XSVM(:,:,:,NSV_AERBEG:NSV_AEREND),XSVM(:,:,:,NSV_CHEMBEG-1+JP_CH_CO),  XRHODREF)
+      CALL CH_AER_REALLFI_n(XSVT(:,:,:,NSV_AERBEG:NSV_AEREND),XSVT(:,:,:,NSV_CHEMBEG-1+JP_CH_CO),  XRHODREF)
     DO JSV = NSV_AERBEG,NSV_AEREND
-      YRECFM=TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'M'
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+      YRECFM=TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T'
+      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,    &
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       IF (JSV==NSV_AERBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERBEG ',JSV
       IF (JSV==NSV_AEREND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AEREND ',JSV
@@ -998,10 +1017,10 @@ IF (NSV >=1) THEN
     END DO
      IF (LDEPOS_AER(IMI)) THEN        
       DO JSV = NSV_AERDEPBEG,NSV_AERDEPEND
-        YRECFM=TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'M'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+        YRECFM=TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,  &
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
                     YCOMMENT,IRESP)
         IF (JSV==NSV_AERDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPBEG ',JSV
         IF (JSV==NSV_AERDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPEND ',JSV
@@ -1012,11 +1031,11 @@ IF (NSV >=1) THEN
   ! dust scalar variables
   IF (LDUST) THEN
     IF ((CPROGRAM == 'REAL  ').AND.(NSV_DST > 1).AND.(IMI==1).AND.(LDSTINIT)) &
-      CALL DUSTLFI_n(XSVM(:,:,:,NSV_DSTBEG:NSV_DSTEND), XRHODREF)
+      CALL DUSTLFI_n(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND), XRHODREF)
     IF ((CPROGRAM == 'IDEAL ').AND.(NSV_DST > 1).AND.(IMI==1)) &
-      CALL DUSTLFI_n(XSVM(:,:,:,NSV_DSTBEG:NSV_DSTEND), XRHODREF)
+      CALL DUSTLFI_n(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND), XRHODREF)
     !At this point, we have the tracer array in order of importance, i.e.
-    !if mode 2 is most important it will occupy place 1-3 of XSVM  
+    !if mode 2 is most important it will occupy place 1-3 of XSVT  
    IF ((CPROGRAM == 'REAL  ').AND.((LDSTINIT).OR.(LDSTPRES)).OR.&
        (CPROGRAM == 'IDEAL ')               ) THEN
       ! In this case CDUSTNAMES is not allocated. We will use YPDUST_INI,
@@ -1040,10 +1059,10 @@ IF (IMOMENTS == 1) THEN
      JSV = (JMODE-1)*IMOMENTS  & !Number of moments previously counted
                 +  1              & !Number of moments in this mode
                 + (NSV_DSTBEG -1)      !Previous list of tracers
-     YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'M'  
-     WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+     YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T'  
+     WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
      ILENCH=LEN(YCOMMENT)
-     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,&
+     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,&
                      YCOMMENT,IRESP)
 
           YDSTNAMES((JMODE-1)*IMOMENTS+1)=YRECFM(1:LEN_TRIM(YRECFM)-1)
@@ -1055,10 +1074,10 @@ ELSE
     JSV = (JMODE-1)*IMOMENTS  & !Number of moments previously counted
                 + JMOM               & !Number of moments in this mode
                 + (NSV_DSTBEG -1)
-    YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'M'  !The refererence which will be written to file
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+    YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T'  !The refererence which will be written to file
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH, &
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, &
                      YCOMMENT,IRESP)
     YDSTNAMES((JMODE-1)*IMOMENTS+JMOM)=YRECFM(1:LEN_TRIM(YRECFM)-1)
    END DO ! Loop on moment
@@ -1071,12 +1090,12 @@ END IF ! Valeur IMOMENTS
       DEALLOCATE(YDSTNAMES)
     ELSE 
       ! We are in the subprogram MESONH, CDUSTNAMES are allocated and are 
-      !in the same order as the variables in XSVM (i.e. following JPDUSTORDER)
+      !in the same order as the variables in XSVT (i.e. following JPDUSTORDER)
       DO JSV = NSV_DSTBEG,NSV_DSTEND
-        YRECFM=TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'M'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+        YRECFM=TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,  &
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
                     YCOMMENT,IRESP)
         IF (JSV==NSV_DSTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTBEG ',JSV
         IF (JSV==NSV_DSTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTEND ',JSV
@@ -1085,10 +1104,10 @@ END IF ! Valeur IMOMENTS
     END IF 
      IF (LDEPOS_DST(IMI)) THEN        
       DO JSV = NSV_DSTDEPBEG,NSV_DSTDEPEND
-        YRECFM=TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'M'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+        YRECFM=TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,  &
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
                     YCOMMENT,IRESP)
         IF (JSV==NSV_DSTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPBEG ',JSV
         IF (JSV==NSV_DSTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPEND ',JSV
@@ -1099,11 +1118,11 @@ END IF ! Valeur IMOMENTS
   ! sea salt scalar variables
   IF (LSALT) THEN
     IF ((CPROGRAM == 'REAL  ').AND.(NSV_SLT > 1).AND.(IMI==1).AND.(LSLTINIT)) &
-      CALL SALTLFI_n(XSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF)
+      CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF)
     IF ((CPROGRAM == 'IDEAL ').AND.(NSV_SLT > 1).AND.(IMI==1)) &
-      CALL SALTLFI_n(XSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF)
+      CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF)
     !At this point, we have the tracer array in order of importance, i.e.
-    !if mode 2 is most important it will occupy place 1-3 of XSVM  
+    !if mode 2 is most important it will occupy place 1-3 of XSVT  
     IF (((CPROGRAM == 'REAL  ').AND.(LSLTINIT)).OR.&
         (CPROGRAM == 'IDEAL ')           ) THEN
       ! In this case CSALTNAMES is not allocated. We will use YPSALT_INI,
@@ -1123,14 +1142,14 @@ END IF ! Valeur IMOMENTS
         DO JMOM = 1, IMOMENTS
           !Index from which names are picked
           ISV_NAME_IDX = (JPSALTORDER(JMODE)-1)*IMOMENTS + JMOM 
-          !Index which counts in the XSVM
+          !Index which counts in the XSVT
           JSV = (JMODE-1)*IMOMENTS      & !Number of moments previously counted
                + JMOM                   & !Number of moments in this mode
                + (NSV_SLTBEG -1)          !Previous list of tracers 
-          YRECFM = TRIM(YPSALT_INI(ISV_NAME_IDX))//'M'  !The refererence which will be written to file
-          WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+          YRECFM = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T'  !The refererence which will be written to file
+          WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
           ILENCH=LEN(YCOMMENT)
-          CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH, &
+          CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, &
                      YCOMMENT,IRESP)
           YSLTNAMES((JMODE-1)*IMOMENTS+JMOM)=YRECFM(1:LEN_TRIM(YRECFM)-1)
         END DO ! Loop on moments
@@ -1142,12 +1161,12 @@ END IF ! Valeur IMOMENTS
       DEALLOCATE(YSLTNAMES)
     ELSE 
       ! We are in the subprogram MESONH, CSALTNAMES are allocated and are 
-      !in the same order as the variables in XSVM (i.e. following JPSALTORDER)
+      !in the same order as the variables in XSVT (i.e. following JPSALTORDER)
       DO JSV = NSV_SLTBEG,NSV_SLTEND
-        YRECFM=TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'M'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+        YRECFM=TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,  &
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
                     YCOMMENT,IRESP)
         IF (JSV==NSV_SLTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTBEG ',JSV
         IF (JSV==NSV_SLTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTEND ',JSV
@@ -1156,10 +1175,10 @@ END IF ! Valeur IMOMENTS
     END IF 
      IF (LDEPOS_SLT(IMI)) THEN        
       DO JSV = NSV_SLTDEPBEG,NSV_SLTDEPEND
-        YRECFM=TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'M'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVM',JSV,' (ppp)'
+        YRECFM=TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVM(:,:,:,JSV),IGRID,ILENCH,  &
+        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
                     YCOMMENT,IRESP)
         IF (JSV==NSV_SLTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPBEG ',JSV
         IF (JSV==NSV_SLTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPEND ',JSV
@@ -1194,6 +1213,14 @@ END IF ! Valeur IMOMENTS
     DEALLOCATE(YCHNAMES,ICH_NAMES)
   END IF 
   !
+  ! lagrangian variables
+  DO JSV = NSV_LGBEG,NSV_LGEND
+    YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T'
+    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (M)'
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
+                YCOMMENT,IRESP)
+  END DO
 END IF
 !
 !
@@ -1232,368 +1259,6 @@ END IF
 CALL WRITE_LB_n(HFMFILE)
 !
 !
-IF (CSTORAGE_TYPE/='TT') THEN
-!
-!*       1.4.2  Time t:
-!   
-YRECFM='UT'
-YCOMMENT='X_Y_Z_U component of wind (m/s)'
-IGRID=2
-ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XUT,IGRID,ILENCH,YCOMMENT,IRESP)
-!
-YRECFM='VT'
-YCOMMENT='X_Y_Z_V component of wind (m/s)'
-IGRID=3
-ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XVT,IGRID,ILENCH,YCOMMENT,IRESP)
-!
-YRECFM='WT'
-YCOMMENT='X_Y_Z_vertical wind (m/s)'
-IGRID=4
-ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWT,IGRID,ILENCH,YCOMMENT,IRESP)
-!
-YRECFM='THT'
-YCOMMENT='X_Y_Z_potential temperature (K)'
-IGRID=1
-ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTHT,IGRID,ILENCH,YCOMMENT,IRESP)
-!
-IF(CTURB/='NONE') THEN
-  YRECFM='TKET'
-  YCOMMENT='X_Y_Z_Turbulent Kinetic Energy (M**2/S**2)'
-  IGRID=1
-  ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XTKET,IGRID,ILENCH,YCOMMENT,IRESP)
-END IF
-!
-!
-YRECFM='PABST'
-YCOMMENT='X_Y_Z_ABSolute Pressure (Pa)'
-IGRID=1
-ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPABST,IGRID,ILENCH,YCOMMENT,IRESP)
-!
-IF (NRR >=1) THEN
-IRR=0
-  IGRID=1                                    ! individually in file 
-  IF (LUSERV) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RVT'
-    YCOMMENT='X_Y_Z_Vapor mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-  END IF 
-  IF (LUSERC) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RCT'
-    YCOMMENT='X_Y_Z_Cloud mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-  END IF
-  IF (LUSERR) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RRT'
-    YCOMMENT='X_Y_Z_Rain mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-  END IF 
-  IF (LUSERI) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RIT'
-    YCOMMENT='X_Y_Z_Ice mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-    IF ( CPROGRAM == 'MESONH' .AND. CCLOUD(1:3) == 'ICE') THEN
-      YRECFM= 'CIT'
-      YCOMMENT='X_Y_Z_Cloud Ice concentration (/M3)'
-      ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XCIT(:,:,:),   IGRID,ILENCH,  &
-                  YCOMMENT,IRESP)
-    END IF
- END IF 
-  IF (LUSERS) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RST'
-    YCOMMENT='X_Y_Z_Snow mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-  END IF
-  IF (LUSERG) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RGT'
-    YCOMMENT='X_Y_Z_Graupel mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-  END IF 
-  IF (LUSERH) THEN
-    IRR   = IRR+1 
-    YRECFM= 'RHT'
-    YCOMMENT='X_Y_Z_Hail mixing Ratio (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRT(:,:,:,IRR),IGRID,ILENCH,  &
-                YCOMMENT,IRESP)
-  END IF 
-END IF
-!
-IF (NSV >=1) THEN
-  IGRID=1                                       ! individually in the file
-  ! User scalar variables
-  DO JSV = 1,NSV_USER
-    WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
-  ! microphysical C2R2 scheme scalar variables
-  DO JSV = NSV_C2R2BEG,NSV_C2R2END
-    YRECFM=TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
-  ! microphysical C3R5 scheme additional scalar variables
-  DO JSV = NSV_C1R3BEG,NSV_C1R3END
-    YRECFM=TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/M3)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
-  ! electrical scalar variables
-  DO JSV = NSV_ELECBEG,NSV_ELECEND
-    YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'T'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (C/m3)'
-    ILENCH=LEN(YCOMMENT)
-    ZWORK3D(:,:,:) = 0.
-    ZWORK3D(:,:,:) = XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK3D(:,:,:),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
-
-  ! Passive scalar variables        
- IF (LPASPOL) THEN
-  DO JSV = NSV_PPBEG,NSV_PPEND
-    WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
- END IF
-  ! Conditional sampling variables        
- IF (LCONDSAMP) THEN
-  DO JSV = NSV_CSBEG,NSV_CSEND
-    WRITE(YRECFM,'(A3,I3.3)')'SVT',JSV
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (KG/KG)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
- END IF
-  ! chemical scalar variables
-  IF (LUSECHEM) THEN
-    DO JSV = NSV_CHEMBEG,NSV_CHEMEND
-      YRECFM=TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1)))//'T'
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A)') 'X_Y_Z_','SVT',JSV,' (ppp)'
-      ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                  YCOMMENT,IRESP)
-    END DO
-    IF (LUSECHIC) THEN
-      DO JSV = NSV_CHICBEG,NSV_CHICEND
-        YRECFM=TRIM(UPCASE(CICNAMES(JSV-NSV_CHICBEG+1)))//'T'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                    YCOMMENT,IRESP)
-      END DO
-    ENDIF
-    IF (LUSECHAQ.AND.LCH_PH) THEN  ! pH values in cloud
-      YRECFM = 'PHC'
-      YCOMMENT='X_Y_Z_PHC'
-      ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPHC,IGRID,ILENCH,YCOMMENT,IRESP)
-      IF (NRR>=3) THEN
-        YRECFM = 'PHR'
-        YCOMMENT='X_Y_Z_PHR'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XPHR,IGRID,ILENCH,YCOMMENT,IRESP)
-      ENDIF
-    ENDIF
-   ! linox scalar variables
-  ELSE IF (LCH_CONV_LINOX) THEN
-    DO JSV = NSV_LNOXBEG,NSV_LNOXEND
-      YRECFM='LINOXT'
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A)') 'X_Y_Z_','SVT',JSV,' (ppp)'
-      ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, &
-                  YCOMMENT,IRESP)
-    END DO
-  ENDIF  
-  ! aerosol scalar variables
-  IF (LORILAM) THEN
-    IF ((CPROGRAM == 'REAL  ').AND.(NSV_AER > 1).AND.(IMI==1))  &
-      CALL CH_AER_REALLFI_n(XSVT(:,:,:,NSV_AERBEG:NSV_AEREND),XSVT(:,:,:,NSV_CHEMBEG-1+JP_CH_CO), XRHODREF)
-    IF ((CPROGRAM == 'IDEAL ').AND.(NSV_AER > 1).AND.(IMI==1))  &
-      CALL CH_AER_REALLFI_n(XSVT(:,:,:,NSV_AERBEG:NSV_AEREND),XSVT(:,:,:,NSV_CHEMBEG-1+JP_CH_CO),  XRHODREF)
-    DO JSV = NSV_AERBEG,NSV_AEREND
-      YRECFM=TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T'
-      WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-      ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                  YCOMMENT,IRESP)
-    END DO
-    IF (LDEPOS_AER(IMI)) THEN
-      DO JSV = NSV_AERDEPBEG,NSV_AERDEPEND
-        YRECFM=TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
-                    YCOMMENT,IRESP)
-      END DO   ! Loop on aq dust scalar variables        
-    ENDIF
-  END IF
-   ! dust scalar variables
-  IF (LDUST) THEN
-    IF ((CPROGRAM == 'REAL  ').AND.(NSV_DST > 1).AND.(IMI==1).AND.(LDSTINIT)) &
-      CALL DUSTLFI_n(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND), XRHODREF)
-    IF ((CPROGRAM == 'IDEAL ').AND.(NSV_DST > 1).AND.(IMI==1)) &
-      CALL DUSTLFI_n(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND), XRHODREF)
-    !At this point, we have the tracer array in order of importance, i.e.
-    !if mode 2 is most important it will occupy place 1-3 of XSVM  
-    IF ((CPROGRAM == 'REAL  ').OR.(CPROGRAM == 'IDEAL ')) THEN
-      ! In this case CDUSTNAMES is not allocated. We will use YPDUST_INI,
-      !but remember that this variable does not follow JPDUSTORDER
-      IMOMENTS = INT(NSV_DSTEND - NSV_DSTBEG+1)/NMODE_DST  
-      !Should equal 3 at this point
-      IF (IMOMENTS > 3) THEN
-        WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be 3'
-        WRITE(ILUOUT,*) NSV_DSTBEG, NSV_DSTEND,NMODE_DST,IMOMENTS
- !callabortstop
-        CALL CLOSE_ll(CLUOUT,IOSTAT=IRESP)
-        CALL ABORT
-        STOP
-      END IF
-      DO JMODE=1, NMODE_DST
-        DO JMOM = 1, IMOMENTS
-          !Index from which names are picked
-          ISV_NAME_IDX = (JPDUSTORDER(JMODE)-1)*IMOMENTS + JMOM 
-          !Index which counts in the XSVT
-          JSV = (JMODE-1)*IMOMENTS      & !Number of moments previously counted
-               + JMOM                   & !Number of moments in this mode
-               + (NSV_DSTBEG -1)          !Previous list of tracers 
-          YRECFM = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T'  !The refererence which will be written to file
-          WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-          ILENCH=LEN(YCOMMENT)
-          CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, &
-                      YCOMMENT,IRESP)
-        END DO ! Loop on moments
-      END DO   ! Loop on modes
-      !
-    ELSE 
-      ! We are in the subprogram MESONH, CDUSTNAMES are allocated and are 
-      !in the same order as the variables in XSVM (i.e. following JPDUSTORDER)
-      DO JSV = NSV_DSTBEG,NSV_DSTEND
-        YRECFM=TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
-                    YCOMMENT,IRESP)
-      END DO   ! Loop on dust scalar variables
-    END IF 
-  ! Loop on aq dust scalar variables
-    IF (LDEPOS_DST(IMI)) THEN
-      DO JSV = NSV_DSTDEPBEG,NSV_DSTDEPEND
-        YRECFM=TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
-                    YCOMMENT,IRESP)
-      END DO   ! Loop on aq dust scalar variables        
-    ENDIF
-  ENDIF  
-  !
-   ! sea salt scalar variables
-  IF (LSALT) THEN
-    IF ((CPROGRAM == 'REAL  ').AND.(NSV_SLT > 1).AND.(IMI==1)) &
-      CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF)
-    IF ((CPROGRAM == 'IDEAL ').AND.(NSV_SLT > 1).AND.(IMI==1)) &
-      CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF)
-    !At this point, we have the tracer array in order of importance, i.e.
-    !if mode 2 is most important it will occupy place 1-3 of XSVM  
-    IF ((CPROGRAM == 'REAL  ').OR.(CPROGRAM == 'IDEAL ')) THEN
-      ! In this case CSALTNAMES is not allocated. We will use YPSALT_INI,
-      !but remember that this variable does not follow JPSALTORDER
-      IMOMENTS = INT(NSV_SLTEND - NSV_SLTBEG+1)/NMODE_SLT  
-      !Should equal 3 at this point
-      IF (IMOMENTS .NE. 3) THEN
-        WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be 3'
-        WRITE(ILUOUT,*) NSV_SLTBEG, NSV_SLTEND,NMODE_SLT,IMOMENTS
- !callabortstop
-        CALL CLOSE_ll(CLUOUT,IOSTAT=IRESP)
-        CALL ABORT
-        STOP
-      END IF
-      DO JMODE=1, NMODE_SLT
-        DO JMOM = 1, IMOMENTS
-          !Index from which names are picked
-          ISV_NAME_IDX = (JPSALTORDER(JMODE)-1)*IMOMENTS + JMOM 
-          !Index which counts in the XSVT
-          JSV = (JMODE-1)*IMOMENTS      & !Number of moments previously counted
-               + JMOM                   & !Number of moments in this mode
-               + (NSV_SLTBEG -1)          !Previous list of tracers 
-          YRECFM = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T'  !The refererence which will be written to file
-          WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-          ILENCH=LEN(YCOMMENT)
-          CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH, &
-                      YCOMMENT,IRESP)
-        END DO ! Loop on moments
-      END DO   ! Loop on modes
-      !
-    ELSE 
-      ! We are in the subprogram MESONH, CSALTNAMES are allocated and are 
-      !in the same order as the variables in XSVM (i.e. following JPSALTORDER)
-      DO JSV = NSV_SLTBEG,NSV_SLTEND
-        YRECFM=TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
-                    YCOMMENT,IRESP)
-      END DO   ! Loop on sea salt scalar variables
-    END IF 
-    IF (LDEPOS_SLT(IMI)) THEN
-      DO JSV = NSV_SLTDEPBEG,NSV_SLTDEPEND
-        YRECFM=TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T'
-        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (ppp)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,  &
-                    YCOMMENT,IRESP)
-      END DO   ! Loop on aq dust scalar variables        
-    ENDIF
-  ENDIF  
-  !
-   ! lagrangian variables
-  DO JSV = NSV_LGBEG,NSV_LGEND
-    YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T'
-    WRITE(YCOMMENT,'(A6,A3,I3.3,A)') 'X_Y_Z_','SVT',JSV,' (M)'
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
-                YCOMMENT,IRESP)
-  END DO
-END IF
-!
-END IF ! test on CSTORAGE_TYPE
-!
 YRECFM='DRYMASST'
 YDIR='--'
 YCOMMENT='Total Dry Mass (KG)'
@@ -1627,20 +1292,13 @@ IF( CTURB /= 'NONE' .AND. (CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN
   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XWTHVMF,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
+!
 IF( NRR > 1 .AND. CTURB /= 'NONE' ) THEN
-  YRECFM='SRCM'
+  YRECFM='SRCT'
   YCOMMENT='X_Y_Z_normalized 2nd_order moment s_r_c/2Sigma_s2 (KG/KG**2)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSRCM,IGRID,ILENCH,YCOMMENT,IRESP)
-!
-  IF (CSTORAGE_TYPE/='TT') THEN
-    YRECFM='SRCT'
-    YCOMMENT='X_Y_Z_normalized 2nd_order moment s_r_c/2Sigma_s2 (KG/KG**2)'
-    IGRID=1
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSRCT,IGRID,ILENCH,YCOMMENT,IRESP)
-  END IF
+  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSRCT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM='SIGS'
   YCOMMENT='X_Y_Z_Sigma_s from turbulence scheme (KG/KG**2)'
@@ -1672,7 +1330,113 @@ IGRID=4
 ILENCH=LEN(YCOMMENT)
 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+!*       1.6  Tendencies                                         
+!
+IF (CPROGRAM == 'MESONH') THEN
+ YRECFM='US_PRES'
+ YCOMMENT='X_Y_Z_US_PRES'                 
+ IGRID=2
+ ILENCH=LEN(YCOMMENT)
+ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRUS_PRES,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+ YRECFM='VS_PRES'
+ YCOMMENT='X_Y_Z_VS_PRES'                       
+ IGRID=3
+ ILENCH=LEN(YCOMMENT)
+ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRVS_PRES,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+ YRECFM='WS_PRES'
+ YCOMMENT='X_Y_Z_WS_PRES'             
+ IGRID=4
+ ILENCH=LEN(YCOMMENT)
+ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRWS_PRES,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+ YRECFM='THS_CLD'
+ YCOMMENT='X_Y_Z_THS_CLD'                 
+ IGRID=1
+ ILENCH=LEN(YCOMMENT)
+ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRTHS_CLD,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+ IF (NRR >=1) THEN
+   IRR=0
+   IGRID=1               
+   IF (LUSERV) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RVS_CLD'
+    YCOMMENT='X_Y_Z_RVS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+   IF (LUSERC) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RCS_CLD'
+    YCOMMENT='X_Y_Z_RCS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+   IF (LUSERR) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RRS_CLD'
+    YCOMMENT='X_Y_Z_RCS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+   IF (LUSERI) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RIS_CLD'
+    YCOMMENT='X_Y_Z_RIS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+   IF (LUSERS) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RSS_CLD'
+    YCOMMENT='X_Y_Z_RSS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+   IF (LUSERG) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RGS_CLD'
+    YCOMMENT='X_Y_Z_RGS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+   IF (LUSERH) THEN
+    IRR   = IRR+1 
+    YRECFM= 'RHS_CLD'
+    YCOMMENT='X_Y_Z_RHS_CLD'                        
+    ILENCH=LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+   END IF 
+ END IF 
+END IF 
+!
+IF (NSV >=1) THEN
+   DO JSV = NSV_C2R2BEG,NSV_C2R2END
+    IF (JSV == NSV_C2R2BEG ) THEN
+      YRECFM='RSVS_CLD1'
+      YCOMMENT='X_Y_Z_RHS_CLD'                        
+      ILENCH=LEN(YCOMMENT)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+    END IF
+    IF (JSV == NSV_C2R2END ) THEN
+      YRECFM='RSVS_CLD2'
+      YCOMMENT='X_Y_Z_RHS_CLD'                        
+      ILENCH=LEN(YCOMMENT)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XRRS_CLD(:,:,:,IRR),IGRID,ILENCH,  &
+                YCOMMENT,IRESP)
+    END IF
+   END DO
+END IF
 !
 !*       1.8    Diagnostic variables related to the radiations
 !
diff --git a/src/MNH/write_phys_param.f90 b/src/MNH/write_phys_param.f90
index 17bec850b..8809fca44 100644
--- a/src/MNH/write_phys_param.f90
+++ b/src/MNH/write_phys_param.f90
@@ -801,8 +801,8 @@ IF ( LTURB_FLX ) THEN
   END IF
 END IF
 !!!! turb_ver_sv_flux
-IF (SIZE(XSVM,4)>0)  THEN
-  DO JSV=1, SIZE(XSVM,4)
+IF (SIZE(XSVT,4)>0)  THEN
+  DO JSV=1, SIZE(XSVT,4)
     IF (LTURB_FLX ) THEN
       ! stores the JSVth vertical flux
       WRITE(YRECFM,'("WSV_FLX_",I3.3)') JSV
-- 
GitLab