diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 5690d0ecf6b9d3b9e9e8f0c0dddba89e76429300..cf0d4add07297236744ada12f155d31a76e70d79 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -17,7 +17,7 @@ INTERFACE
       SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV,                &
                    OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH,               &
                    OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT,         &
-                   ODEPOS_SLT, ODUST,ODEPOS_DST,                                   &
+                   ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS,                         &
                    OORILAM,ODEPOS_AER, OLG,OPASPOL,                                &
 #ifdef MNH_FOREFIRE
                    OFOREFIRE,                                                      &
@@ -53,6 +53,7 @@ LOGICAL,            INTENT(IN) :: OPASPOL        ! Passive pollutant FLAG in FMF
 LOGICAL,            INTENT(IN) :: OFOREFIRE      ! ForeFire FLAG in FMFILE
 #endif
 LOGICAL,            INTENT(IN) :: OCONDSAMP      ! Conditional sampling FLAG in FMFILE
+LOGICAL,            INTENT(IN) :: OCHTRANS       ! LCHTRANS FLAG in FMFILE
 
 LOGICAL,            INTENT(IN) :: OLG            ! lagrangian FLAG in FMFILE
 INTEGER,            INTENT(IN) :: KRIMX, KRIMY   ! number of points for the
@@ -84,7 +85,7 @@ END MODULE MODI_READ_EXSEG_n
       SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV,                &
                    OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH,               &
                    OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT,         &
-                   ODEPOS_SLT, ODUST,ODEPOS_DST,                                   &
+                   ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS,                         &
                    OORILAM,ODEPOS_AER, OLG,OPASPOL,                                &
 #ifdef MNH_FOREFIRE
                    OFOREFIRE,                                                      &
@@ -382,6 +383,7 @@ LOGICAL,            INTENT(IN) :: OPASPOL        ! Passive pollutant FLAG in FMF
 LOGICAL,            INTENT(IN) :: OFOREFIRE      ! ForeFire FLAG in FMFILE
 #endif
 LOGICAL,            INTENT(IN) :: OCONDSAMP      ! Conditional sampling FLAG in FMFILE
+LOGICAL,            INTENT(IN) :: OCHTRANS       ! LCHTRANS FLAG in FMFILE
 
 LOGICAL,            INTENT(IN) :: OLG            ! lagrangian FLAG in FMFILE
 INTEGER,            INTENT(IN) :: KRIMX, KRIMY   ! number of points for the
@@ -1198,7 +1200,7 @@ IF (LUSERC.AND. (.NOT.OUSERC)) THEN
 ELSE
   IF ( LUSERC ) THEN
     CGETCLDFR = 'READ'
-!   IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETCLDFR='INIT' 
+    IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETCLDFR='INIT' 
   ELSE
     CGETCLDFR = 'SKIP'
   END IF
@@ -1274,7 +1276,7 @@ END IF
 IF (NSV_USER == KSV_USER) THEN
   DO  JS = 1,KSV_USER             ! to read all the variables in initial file 
     CGETSVT(JS)='READ'            ! and to initialize them 
-    IF(CCONF=='START')CGETSVT(JS)='INIT'       ! with  these values  
+!   IF(CCONF=='START')CGETSVT(JS)='INIT'       ! with  these values  
   END DO
 ELSEIF (NSV_USER > KSV_USER) THEN
  IF (KSV_USER == 0) THEN
@@ -1286,7 +1288,7 @@ ELSEIF (NSV_USER > KSV_USER) THEN
   & "THE SUPPLEMENTARY VARIABLES HAVE BEEN INITIALIZED TO ZERO ")') 
   DO  JS = 1,KSV_USER             ! to read all the variables in initial file 
     CGETSVT(JS)='READ'            ! and to initialize them
-    IF(CCONF=='START')CGETSVT(JS)='INIT'        ! with  these values
+!   IF(CCONF=='START')CGETSVT(JS)='INIT'        ! with  these values
   END DO
   DO JS = KSV_USER+1, NSV_USER    ! to initialize to zero supplementary
     CGETSVT(JS)='INIT'            ! initial file)
@@ -1298,7 +1300,7 @@ ELSE
   &" VARIABLES THAN THERE ARE IN INITIAL FMFILE")')
   DO  JS = 1,NSV_USER             ! to read the first NSV_USER variables in initial file 
     CGETSVT(JS)='READ'            ! and to initialize with these values
-    IF(CCONF=='START') CGETSVT(JS)='INIT'  
+!   IF(CCONF=='START') CGETSVT(JS)='INIT'  
   END DO 
   DO  JS = NSV_USER + 1, KSV_USER ! to skip the last (KSV_USER-NSV_USER) variables
     CGETSVT(JS)='SKIP' 
@@ -1310,7 +1312,7 @@ END IF
 IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN 
   IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
     CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR C2R2 &
@@ -1325,7 +1327,7 @@ END IF
 IF (CCLOUD == 'C3R5') THEN 
   IF (HCLOUD == 'C3R5') THEN
     CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR C3R5 &
@@ -1340,7 +1342,7 @@ END IF
 IF (CELEC /= 'NONE') THEN 
   IF (HELEC /= 'NONE') THEN
     CGETSVT(NSV_ELECBEG:NSV_ELECEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_ELECBEG:NSV_ELECEND)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_ELECBEG:NSV_ELECEND)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR ELECTRICAL &
@@ -1368,7 +1370,7 @@ END IF
 IF (LUSECHIC) THEN
   IF (OUSECHIC) THEN
     CGETSVT(NSV_CHICBEG:NSV_CHICEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_CHICBEG:NSV_CHICEND)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_CHICBEG:NSV_CHICEND)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR CHEMICAL &
@@ -1404,7 +1406,7 @@ END IF
 IF (LDUST) THEN
   IF (ODUST) THEN
     CGETSVT(NSV_DSTBEG:NSV_DSTEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_DSTBEG:NSV_DSTEND)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_DSTBEG:NSV_DSTEND)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR DUST &
@@ -1427,7 +1429,7 @@ IF (LDUST) THEN
 
    IF (ODEPOS_DST(KMI) ) THEN
     CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='INIT'    
+!   IF(CCONF=='START') CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='INIT'    
    ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR RAIN and CLOUD DUST &
@@ -1489,7 +1491,7 @@ END IF
 IF (LSALT) THEN
   IF (OSALT) THEN
     CGETSVT(NSV_SLTBEG:NSV_SLTEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR SALT &
@@ -1512,7 +1514,7 @@ IF (LSALT) THEN
 
    IF (ODEPOS_SLT(KMI) ) THEN
     CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='INIT'    
+!   IF(CCONF=='START') CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='INIT'    
    ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR RAIN and CLOUD SEA SALT &
@@ -1572,7 +1574,7 @@ END IF
 IF (LORILAM) THEN
   IF (OORILAM) THEN
     CGETSVT(NSV_AERBEG:NSV_AEREND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_AERBEG:NSV_AEREND)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_AERBEG:NSV_AEREND)='INIT'
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR AEROSOL &
@@ -1595,7 +1597,7 @@ IF (LORILAM) THEN
 
    IF (ODEPOS_AER(KMI) ) THEN
     CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='INIT'    
+!   IF(CCONF=='START') CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='INIT'    
    ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR RAIN and IN CLOUD  &
@@ -1623,7 +1625,7 @@ ENDIF
 IF (LLG) THEN
   IF (OLG .AND. .NOT.(LINIT_LG .AND. CPROGRAM=='MESONH')) THEN
     CGETSVT(NSV_LGBEG:NSV_LGEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_LGBEG:NSV_LGEND)='INIT'
+!   IF(CCONF=='START') CGETSVT(NSV_LGBEG:NSV_LGEND)='INIT'
   ELSE
     IF(.NOT.(LINIT_LG) .AND. CPROGRAM=='MESONH') THEN
       WRITE(UNIT=ILUOUT,FMT=9001) KMI
@@ -1655,7 +1657,7 @@ END IF
 IF (LPASPOL) THEN
   IF (OPASPOL) THEN
     CGETSVT(NSV_PPBEG:NSV_PPEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_PPBEG:NSV_PPEND)='INIT'    
+!   IF(CCONF=='START') CGETSVT(NSV_PPBEG:NSV_PPEND)='INIT'    
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO PASSIVE SCALAR VARIABLES IN INITIAL FMFILE",/,&
@@ -1669,17 +1671,14 @@ END IF
 !
 IF (LFOREFIRE) THEN
   IF (OFOREFIRE) THEN
-!!$    CGETSVM(NSV_FFBEG:NSV_FFEND)='READ'
     CGETSVT(NSV_FFBEG:NSV_FFEND)='READ'
     IF(HSTORAGE_TYPE=='TT') THEN
       CGETSVT(NSV_FFBEG:NSV_FFEND)='INIT'
-!!$      CGETSVM(NSV_FFBEG:NSV_FFEND)='INIT'
     END IF
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO FOREFIRE SCALAR VARIABLES IN INITIAL FMFILE",/,&
                        & "THE VARIABLES HAVE BEEN INITIALIZED TO ZERO")')
-!!$    CGETSVM(NSV_FFBEG:NSV_FFEND)='INIT'
     CGETSVT(NSV_FFBEG:NSV_FFEND)='INIT'
   END IF
 END IF
@@ -1690,7 +1689,7 @@ END IF
 IF (LCONDSAMP) THEN
   IF (OCONDSAMP) THEN
     CGETSVT(NSV_CSBEG:NSV_CSEND)='READ'
-    IF(CCONF=='START') CGETSVT(NSV_CSBEG:NSV_CSEND)='INIT'       
+!   IF(CCONF=='START') CGETSVT(NSV_CSBEG:NSV_CSEND)='INIT'       
   ELSE
     WRITE(UNIT=ILUOUT,FMT=9001) KMI
     WRITE(UNIT=ILUOUT,FMT='("THERE IS NO PASSIVE SCALAR VARIABLES IN INITIAL FMFILE",/,&
@@ -1828,6 +1827,14 @@ SELECT CASE ( CDCONV )
     END IF
 END SELECT
 !
+IF ( CDCONV == 'KAFR' .AND. LCHTRANS .AND. NSV > 0 ) THEN
+  IF( OCHTRANS ) THEN
+    CGETSVCONV='READ'
+  ELSE  
+    CGETSVCONV='INIT'
+  END IF
+END IF
+!
 SELECT CASE ( CSCONV )
   CASE( 'KAFR' )
     IF (.NOT. ( LUSERV ) ) THEN