Index: /trunk/LMDZ.MARS/README
===================================================================
--- /trunk/LMDZ.MARS/README	(revision 1466)
+++ /trunk/LMDZ.MARS/README	(revision 1467)
@@ -2190,2 +2190,7 @@
 - Moved "iniprint.h" back to dyn3d (and added link to it in dyn1d), as it
   is preferable to not share modules/commons between physics and dynamics.
+
+== 04/08/2015 == TN
+- New option supersat to allow for the supersaturation of water vapor.
+  Default value is True. The goal is to disable supersaturation even 
+  with microphysics for comparison purposes.
Index: /trunk/LMDZ.MARS/libf/phymars/callkeys.h
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/callkeys.h	(revision 1466)
+++ /trunk/LMDZ.MARS/libf/phymars/callkeys.h	(revision 1467)
@@ -12,6 +12,6 @@
      &   ,callg2d,linear,rayleigh,tracer,active,doubleq,submicron       &
      &   ,lifting,freedust,callddevil,scavenging,sedimentation          &
-     &   ,activice,water,tifeedback,microphys,caps,photochem,calltherm  &
-     &   ,callrichsl,callslope,tituscap,callyamada4
+     &   ,activice,water,tifeedback,microphys,supersat,caps,photochem   &
+     &   ,calltherm,callrichsl,callslope,tituscap,callyamada4
      
       COMMON/callkeys_i/iradia,iaervar,iddist,ilwd,ilwb,ilwn,ncouche    &
@@ -57,5 +57,5 @@
       logical active,doubleq,submicron,lifting,callddevil,scavenging
       logical sedimentation
-      logical water,activice,tifeedback,microphys,caps
+      logical water,activice,tifeedback,microphys,supersat,caps
       logical photochem
       integer nltemodel
Index: /trunk/LMDZ.MARS/libf/phymars/conf_phys.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/conf_phys.F	(revision 1466)
+++ /trunk/LMDZ.MARS/libf/phymars/conf_phys.F	(revision 1467)
@@ -477,4 +477,10 @@
          write(*,*)" microphys = ",microphys
 
+! supersat
+         write(*,*)"Allow super-saturation of water vapor?"
+         supersat=.true. ! default value
+         call getin("supersat",supersat)
+         write(*,*)"supersat = ",supersat
+
 ! microphysical parameter contact       
          write(*,*) "water contact parameter ?"
Index: /trunk/LMDZ.MARS/libf/phymars/physiq.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/physiq.F	(revision 1466)
+++ /trunk/LMDZ.MARS/libf/phymars/physiq.F	(revision 1467)
@@ -2162,4 +2162,6 @@
      &                       'Mean reff',
      &                       'm',2,rave)
+            call WRITEDIAGFI(ngrid,'saturation',
+     &           'h2o vap saturation ratio','dimless',3,satu)
             if (scavenging) then
               CALL WRITEDIAGFI(ngrid,"Nccntot",
Index: /trunk/LMDZ.MARS/libf/phymars/watercloud.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/watercloud.F	(revision 1466)
+++ /trunk/LMDZ.MARS/libf/phymars/watercloud.F	(revision 1467)
@@ -94,4 +94,7 @@
       REAL subpdt(ngrid,nlay)         ! cf. pdtcloud
 
+      ! no supersaturation when option supersat is false
+      REAL zt(ngrid,nlay)       ! local value of temperature
+      REAL zqsat(ngrid,nlay)    ! saturation
 
       INTEGER iq,ig,l
@@ -391,7 +394,27 @@
         ENDDO
       ENDIF
-        
-        
+
       IF(microphys) THEN
+
+       ! In case one does not want to allow supersatured water when using microphysics.
+       ! Not done by default.
+       IF(.not.supersat) THEN     
+        zt  = pt + (pdt+pdtcloud)*ptimestep
+        call watersat(ngrid*nlay,zt,pplay,zqsat)
+        DO l=1, nlay
+         DO ig=1,ngrid
+          IF (pq(ig,l,igcm_h2o_vap)
+     &      + (pdq(ig,l,igcm_h2o_vap) + pdqcloud(ig,l,igcm_h2o_vap))
+     &      * ptimestep .ge. zqsat(ig,l)) THEN
+             pdqcloud(ig,l,igcm_h2o_vap) = 
+     &         (zqsat(ig,l) - pq(ig,l,igcm_h2o_vap))/ptimestep
+     &        - pdq(ig,l,igcm_h2o_vap)
+             pdqcloud(ig,l,igcm_h2o_ice) = 
+     &         -pdqcloud(ig,l,igcm_h2o_vap)
+             ! no need to correct ccn_number, updaterad can handle this properly.
+          ENDIF
+         ENDDO
+        ENDDO        
+       ENDIF
        
        DO l=1, nlay
