Index: /LMDZ6/trunk/libf/phylmd/clesphys.h
===================================================================
--- /LMDZ6/trunk/libf/phylmd/clesphys.h	(revision 4061)
+++ /LMDZ6/trunk/libf/phylmd/clesphys.h	(revision 4062)
@@ -85,5 +85,6 @@
        LOGICAL :: ok_cosp,ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP
        LOGICAL :: ok_airs
-       INTEGER :: ip_ebil_phy, iflag_rrtm, iflag_ice_thermo, iflag_ice_sursat, NSW, iflag_albedo
+       INTEGER :: ip_ebil_phy, iflag_rrtm, iflag_ice_thermo, NSW, iflag_albedo
+       LOGICAL :: ok_ice_sursat, ok_plane_h2o, ok_plane_contrail
        LOGICAL :: ok_chlorophyll
        LOGICAL :: ok_strato
@@ -139,5 +140,6 @@
      &     , ok_lic_melt, ok_lic_cond, aer_type                         &
      &     , iflag_rrtm, ok_strato,ok_hines, ok_qch4                    &
-     &     , iflag_ice_thermo, iflag_ice_sursat                         & 
+     &     , iflag_ice_thermo, ok_ice_sursat                            & 
+     &     , ok_plane_h2o, ok_plane_contrail                            & 
      &     , ok_gwd_rando, NSW, iflag_albedo                            &
      &     , ok_chlorophyll,ok_conserv_q, adjust_tropopause             &
Index: /LMDZ6/trunk/libf/phylmd/conf_phys_m.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/conf_phys_m.F90	(revision 4061)
+++ /LMDZ6/trunk/libf/phylmd/conf_phys_m.F90	(revision 4062)
@@ -179,5 +179,6 @@
     INTEGER,SAVE :: iflag_pdf_omp
     INTEGER,SAVE :: iflag_ice_thermo_omp
-    INTEGER,SAVE :: iflag_ice_sursat_omp
+    LOGICAL,SAVE :: ok_ice_sursat_omp
+    LOGICAL,SAVE :: ok_plane_h2o_omp, ok_plane_contrail_omp
     INTEGER,SAVE :: iflag_t_glace_omp
     INTEGER,SAVE :: iflag_cloudth_vert_omp
@@ -1504,11 +1505,27 @@
 
     !
-    !Config Key  = iflag_ice_sursat
-    !Config Desc =
-    !Config Def  = 0
-    !Config Help =
-    !
-    iflag_ice_sursat_omp = 0
-    CALL getin('iflag_ice_sursat',iflag_ice_sursat_omp)
+    !Config Key  = ok_ice_sursat
+    !Config Desc =
+    !Config Def  = 0
+    !Config Help =
+    !
+    ok_ice_sursat_omp = 0
+    CALL getin('ok_ice_sursat',ok_ice_sursat_omp)
+
+    !Config Key  = ok_plane_h2o
+    !Config Desc =
+    !Config Def  = 0
+    !Config Help =
+    !
+    ok_plane_h2o_omp = .FALSE.
+    CALL getin('ok_plane_h2o',ok_plane_h2o_omp)
+
+    !Config Key  = ok_plane_contrail
+    !Config Desc =
+    !Config Def  = 0
+    !Config Help =
+    !
+    ok_plane_contrail_omp = .FALSE.
+    CALL getin('ok_plane_contrail',ok_plane_contrail_omp)
 
     !
@@ -2500,5 +2517,7 @@
     iflag_vice=iflag_vice_omp
     iflag_ice_thermo = iflag_ice_thermo_omp
-    iflag_ice_sursat = iflag_ice_sursat_omp
+    ok_ice_sursat = ok_ice_sursat_omp
+    ok_plane_h2o = ok_plane_h2o_omp
+    ok_plane_contrail = ok_plane_contrail_omp
     rei_min = rei_min_omp
     rei_max = rei_max_omp
@@ -2928,5 +2947,7 @@
     WRITE(lunout,*) ' iflag_vice = ',iflag_vice
     WRITE(lunout,*) ' iflag_ice_thermo = ',iflag_ice_thermo
-    WRITE(lunout,*) ' iflag_ice_sursat = ',iflag_ice_sursat
+    WRITE(lunout,*) ' ok_ice_sursat = ',ok_ice_sursat
+    WRITE(lunout,*) ' ok_plane_h2o = ',ok_plane_h2o
+    WRITE(lunout,*) ' ok_plane_contrail = ',ok_plane_contrail
     WRITE(lunout,*) ' rei_min = ',rei_min
     WRITE(lunout,*) ' rei_max = ',rei_max
Index: /LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90	(revision 4061)
+++ /LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90	(revision 4062)
@@ -24,7 +24,4 @@
 !--Parametres de tuning
 REAL, PARAMETER :: chi=1.1, l_turb=50.0, tun_N=1.3, tun_ratqs=3.0
-!
-! Contrail cirrus
-LOGICAL, PARAMETER :: contrail_cirrus=.FALSE., h2o_emissions=.FALSE.
 !
 !--contrail cross section, typical value found in Freudenthaler et al, GRL, 22, 3501-3504, 1995
@@ -257,4 +254,6 @@
   INCLUDE "FCTTRE.h"
   INCLUDE "fisrtilp.h"
+  INCLUDE "clesphys.h"
+
   !
   ! Input
@@ -335,5 +334,5 @@
      ! flight_h2O is in kg H2O / s / cell
      !
-     IF (h2o_emissions) THEN 
+     IF (ok_plane_h2o) THEN 
        q = ( M_cell*q + flight_h2o(i,k)*dtime*(1.-q) ) / (M_cell + flight_h2o(i,k)*dtime*(1.-q) ) 
      ENDIF
@@ -634,5 +633,5 @@
 
      !--add a source of cirrus from aviation contrails
-     IF (contrail_cirrus) THEN
+     IF (ok_plane_contrail) THEN
        drneb_avi(i,k) = rnebss*flight_m(i,k)*contrail_cross_section/V_cell    !--tendency rneb due to aviation [s-1]
        drneb_avi(i,k) = MIN(drneb_avi(i,k), rnebss/dtime)                     !--majoration
Index: /LMDZ6/trunk/libf/phylmd/lscp_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/lscp_mod.F90	(revision 4061)
+++ /LMDZ6/trunk/libf/phylmd/lscp_mod.F90	(revision 4062)
@@ -14,5 +14,5 @@
      prfl, psfl, rhcl, zqta, fraca,                     &
      ztv, zpspsk, ztla, zthl, iflag_cld_th,             &
-     iflag_ice_thermo, iflag_ice_sursat)
+     iflag_ice_thermo, ok_ice_sursat)
 
 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -126,5 +126,5 @@
   INTEGER,                         INTENT(IN)   :: iflag_ice_thermo! flag to activate the ice thermodynamics
                                                                    ! CR: if iflag_ice_thermo=2, only convection is active    
-  INTEGER,                         INTENT(IN)   :: iflag_ice_sursat ! 0 = sursat desativee, 1 = sursat activee
+  LOGICAL,                         INTENT(IN)   :: ok_ice_sursat   ! flag to determine if ice sursaturation is activated 
 
   LOGICAL, DIMENSION(klon,klev),   INTENT(IN)   :: ptconv          ! grid points where deep convection scheme is active
@@ -816,5 +816,5 @@
              
                         !--ice sursaturation by Audran
-                        IF ((iflag_ice_sursat.EQ.0).OR.(Tbef(i).GT.t_glace_min)) THEN
+                        IF ((.NOT.ok_ice_sursat).OR.(Tbef(i).GT.t_glace_min)) THEN
 
                           IF (zpdf_e1(i).LT.1.e-10) THEN
Index: /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 4061)
+++ /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 4062)
@@ -1842,6 +1842,10 @@
        CALL histwrite_phy(o_qsatl, zqsatl)
        CALL histwrite_phy(o_qsats, zqsats)
-       CALL histwrite_phy(o_flight_m, flight_m)
-       CALL histwrite_phy(o_flight_h2o, flight_h2o)
+       IF (ok_plane_contrail) THEN
+         CALL histwrite_phy(o_flight_m, flight_m)
+       ENDIF
+       IF (ok_plane_h2o) THEN
+         CALL histwrite_phy(o_flight_h2o, flight_h2o)
+       ENDIF
        CALL histwrite_phy(o_Tcontr, Tcontr)
        CALL histwrite_phy(o_qcontr, qcontr)
Index: /LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4061)
+++ /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4062)
@@ -1297,13 +1297,25 @@
        ENDIF
 
-       IF ((iflag_ice_sursat.GT.0).AND.(iflag_ice_thermo.EQ.0)) THEN
-          WRITE (lunout, *) ' iflag_ice_sursat=1 requires iflag_ice_thermo=1 as well'
+       IF (ok_ice_sursat.AND.(iflag_ice_thermo.EQ.0)) THEN
+          WRITE (lunout, *) ' ok_ice_sursat=y requires iflag_ice_thermo=1 as well'
           abort_message='see above'
           CALL abort_physic(modname,abort_message,1)
        ENDIF
 
-       IF ((iflag_ice_sursat.GT.0).AND.(nqo.NE.4)) THEN
-          WRITE (lunout, *) ' iflag_ice_sursat=1 requires 4 H2O tracers ', &
+       IF (ok_ice_sursat.AND.(nqo.NE.4)) THEN
+          WRITE (lunout, *) ' ok_ice_sursat=y requires 4 H2O tracers ', &
                '(H2Ov, H2Ol, H2Oi, rnebi) but nqo=', nqo, '. Might as well stop here.'
+          abort_message='see above'
+          CALL abort_physic(modname,abort_message,1)
+       ENDIF
+
+       IF (ok_plane_h2o.AND..NOT.ok_ice_sursat) THEN
+          WRITE (lunout, *) ' ok_plane_h2o=y requires ok_ice_sursat=y '
+          abort_message='see above'
+          CALL abort_physic(modname,abort_message,1)
+       ENDIF
+
+       IF (ok_plane_contrail.AND..NOT.ok_ice_sursat) THEN
+          WRITE (lunout, *) ' ok_plane_contrail=y requires ok_ice_sursat=y '
           abort_message='see above'
           CALL abort_physic(modname,abort_message,1)
@@ -3559,6 +3571,8 @@
     IF (ok_new_lscp) THEN
 
-    !--mise à jour de flight_m dans son module
-    CALL airplane(debut,pphis,pplay,paprs,t_seri)
+    !--mise à jour de flight_m et flight_h2o dans leur module
+    IF (ok_plane_h2o .OR. ok_plane_contrail) THEN
+      CALL airplane(debut,pphis,pplay,paprs,t_seri)
+    ENDIF
 
     CALL lscp(phys_tstep,missing_val,paprs,pplay, &
@@ -3570,5 +3584,5 @@
          prfl, psfl, rhcl,  &
          zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, &
-         iflag_ice_thermo, iflag_ice_sursat)
+         iflag_ice_thermo, ok_ice_sursat)
 
     ELSE
