Index: trunk/LMDZ.COMMON/libf/dyn3d_common/geopot.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d_common/geopot.F	(revision 2047)
+++ trunk/LMDZ.COMMON/libf/dyn3d_common/geopot.F	(revision 2048)
@@ -21,4 +21,7 @@
 c     .. ngrid,teta,pk,pks,phis sont des argum. d'entree pour le s-pg ..
 c              phi               est un  argum. de sortie pour le s-pg .
+c
+c  This computation (with teta = cp T / pk !) is identical to 
+c     delta phi = R/RMD T/p delta p         (r=R/RMD=cpp*kappa)
 c
 c=======================================================================
Index: trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90	(revision 2048)
@@ -307,5 +307,5 @@
 
 !	===============================================
-!	Initialisation TRIMODALE Knollenberg
+!	Initialisation TRIMODALE Knollenberg 
 !	===============================================
 
@@ -430,7 +430,10 @@
       END DO
 
+!      option: upper haze remplacee par extension upper cloud
+!         => 35 remplace par cloudmax et upper haze commentee
+!	===============================================
 
 !     Upper Cloud: mode 1
-      DO i_lev=29,35
+      DO i_lev=29,35 !cloudmax
       R_MEDIAN(:,i_lev,1)=0.2e-6
       PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,1)
@@ -442,5 +445,5 @@
 
 !     Upper Cloud: mode 2
-      DO i_lev=29,35
+      DO i_lev=29,35 !cloudmax
       R_MEDIAN(:,i_lev,2)=1.0e-6
       PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,2)
@@ -452,5 +455,5 @@
         
 !     Upper Cloud: mode 3
-      DO i_lev=29,35
+      DO i_lev=29,35 !cloudmax
       R_MEDIAN(:,i_lev,3)=3.65e-6
       PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,3)
@@ -677,4 +680,5 @@
 !      PRINT*,'level',i_lev,'Coeff Mass: k_mass',K_MASS(1,i_lev,3)
 !      END DO       
+
 !=============================================================
       PRINT*,'==============================='
Index: trunk/LMDZ.VENUS/libf/phyvenus/clmain.F
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/clmain.F	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/clmain.F	(revision 2048)
@@ -921,4 +921,8 @@
       use dimphy
       use cpdet_phy_mod, only: cpdet,t2tpot
+#ifdef CPP_XIOS      
+      use xios_output_mod, only: send_xios_field
+#endif
+
       IMPLICIT none
 c======================================================================
@@ -989,5 +993,5 @@
       REAL zt(klon,klev),ztvu(klon,klev),ztvd(klon,klev)
       real ztetav(klon,klev),ztetavu(klon,klev),ztetavd(klon,klev)
-      REAL zri(klon),z1(klon)
+      REAL zri(klon,klev),zri1(klon),z1(klon)
       REAL pcfm1(klon), pcfh1(klon)
 c
@@ -1135,5 +1139,5 @@
 c
             IF (tvirtu) THEN
-            zri(i) =(  zmgeom(i,k)*(ztetavd(i,k)-ztetavu(i,k))
+            zri(i,k) =(  zmgeom(i,k)*(ztetavd(i,k)-ztetavu(i,k))
      .            + zmgeom(i,k)*zmgeom(i,k)/RG*gamh(k))   ! contregradient
      .           /(zdu2*ztetav(i,k))
@@ -1155,21 +1159,21 @@
             zalh2=(0.5*ckap/rg*z2geomf
      .             /(1.+0.5*ckap/RG/(clam*SQRT(1.5*cd))*z2geomf))**2
-            IF (zri(i).LT.0.0) THEN  ! situation instable
+            IF (zri(i,k).LT.0.0) THEN  ! situation instable
                zscf = ((zgeop(i,k)/zgeop(i,k-1))**(1./3.)-1.)**3
      .                / (zmgeom(i,k)/RG)**3 / (zgeop(i,k-1)/RG)
-               zscf = SQRT(-zri(i)*zscf)
+               zscf = SQRT(-zri(i,k)*zscf)
                zscfm = 1.0 / (1.0+3.0*cb*cc*zalm2*zscf)
                zscfh = 1.0 / (1.0+3.0*cb*cc*zalh2*zscf)
-               pcfm(i,k)=zcdn*zalm2*(1.-2.0*cb*zri(i)*zscfm)
-               pcfh(i,k)=zcdn*zalh2*(1.-3.0*cb*zri(i)*zscfh)
+               pcfm(i,k)=zcdn*zalm2*(1.-2.0*cb*zri(i,k)*zscfm)
+               pcfh(i,k)=zcdn*zalh2*(1.-3.0*cb*zri(i,k)*zscfh)
             ELSE ! situation stable
-               zscf=SQRT(1.+cd*zri(i))
-               pcfm(i,k)=zcdn*zalm2/(1.+2.0*cb*zri(i)/zscf)
-               pcfh(i,k)=zcdn*zalh2/(1.+3.0*cb*zri(i)*zscf)
+               zscf=SQRT(1.+cd*zri(i,k))
+               pcfm(i,k)=zcdn*zalm2/(1.+2.0*cb*zri(i,k)/zscf)
+               pcfh(i,k)=zcdn*zalh2/(1.+3.0*cb*zri(i,k)*zscf)
             ENDIF
           ELSE
             zl2=(lmixmin*MAX(0.0,(paprs(i,k)-paprs(i,itop(i)+1))
      .                          /(paprs(i,2)-paprs(i,itop(i)+1)) ))**2
-            pcfm(i,k)=sqrt(max(zcdn*zcdn*(ric-zri(i))/ric, ksta))
+            pcfm(i,k)=sqrt(max(zcdn*zcdn*(ric-zri(i,k))/ric, ksta))
             pcfm(i,k)= zl2* pcfm(i,k)
             pcfh(i,k) = pcfm(i,k) /prandtl ! h et m different
@@ -1180,5 +1184,5 @@
       DO i = 1, knon
             zdu2=MAX(cepdu2,u(i,1)**2+v(i,1)**2)
-            zri(i) = zgeop(i,1)*(ztetavd(i,1)-ztetavu(i,1))
+            zri(i,1) = zgeop(i,1)*(ztetavd(i,1)-ztetavu(i,1))
      .              /(zdu2*ztetav(i,1))
       ENDDO
@@ -1189,8 +1193,9 @@
       DO i = 1, knon
        z1(i) = zgeop(i,1)
+       zri1(i) = zri(i,1)
       ENDDO
 c
       CALL clcdrag(klon, knon, zxli, 
-     $             z1, zri,
+     $             z1, zri1,
      $             pcfm1, pcfh1) 
 C
@@ -1218,4 +1223,8 @@
 c      pcfm(:,1)= pcfm(:,1)*20.
 c      pcfh(:,1)= pcfh(:,1)*20.
+
+c#ifdef CPP_XIOS      
+c     CALL send_xios_field("Ri",zri)
+c#endif
 
       RETURN
Index: trunk/LMDZ.VENUS/libf/phyvenus/flott_gwd_ran.F90
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/flott_gwd_ran.F90	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/flott_gwd_ran.F90	(revision 2048)
@@ -135,8 +135,8 @@
     DELTAT=24.*3600.    ! Time scale of the waves (first introduced in 9b)
 
-!!!! TEST GG. Values corresponding to min/max horizontal wavel 50-500 km
+!!!! TEST GG Values corresponding to min/max horizontal wavel 50-500 km
 !(similar to observations)
     KMIN = 1.E-5        ! Min horizontal wavenumber
-!   KMIN = 6.3E-6       ! Min horizontal wavenumber
+!    KMIN = 6.3E-6       ! Min horizontal wavenumber
     KMAX = 1.E-4        ! Max horizontal wavenumber
     !Online output: one value only
@@ -146,5 +146,5 @@
     endif
     CMIN = 1.           ! Min phase velocity
-    CMAX = 61.          ! Max phase speed velocity
+    CMAX = 111.          ! Max phase speed velocity
 !    XLAUNCH=0.6         ! Parameter that control launching altitude
     XLAUNCH=5e-3        ! Value for top of cloud convective region
Index: trunk/LMDZ.VENUS/libf/phyvenus/nlte_aux.F
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/nlte_aux.F	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/nlte_aux.F	(revision 2048)
@@ -202,4 +202,5 @@
       real*8          factor
       real*8    temperatura     ! para evitar valores ligeramnt out of limits
+      character(len=100) text
 
 c     ***********
@@ -227,5 +228,6 @@
 c     @           thist(1),thist(nhist)
 c	    write (*,*) ' HUNT/ location in grid:', xtemp(k)
-            stop ' INTERSHP/ Interpolation error. T out of Histogram.'
+            text='INTERSHP/ Interpolation error. T out of Histogram.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
          factor = 1.d0 /  (thist(i+1)-thist(i))
@@ -261,4 +263,5 @@
       real*8          factor
       real*8    temperatura
+      character(len=100) text
 
 c     ***********
@@ -286,5 +289,6 @@
 c     $           thist(1),thist(nhist)
 c	    write(*,*)'HUNT/ location in grid:',xtemp(k)
-            stop'INTERSTR/1/ Interpolation error. T out of Histogram.'
+            text='INTERSTR/1/ Interpolation error. T out of Histogram.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
          factor = 1.d0 /  (thist(i+1)-thist(i))
@@ -315,5 +319,6 @@
 c     @        thist(1),thist(nhist)
 c         write (*,*) ' HUNT/ location in grid:', ts
-         stop ' INTERSTR/2/ Interpolat error. T out of Histogram.'
+         text='INTERSTR/2/ Interpolat error. T out of Histogram.'
+         CALL abort_physic("nlte_aux",text, 1)
       endif
       factor = 1.d0 /  (thist(i+1)-thist(i))
@@ -1009,4 +1014,5 @@
       real    factor 
       real    zaux
+      character(len=100) text
 
 !!!!  
@@ -1027,5 +1033,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' interhunt2/ Interpolat error. zz out of limits.'
+            text='interhunt2/ Interpolat error. zz out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1072,4 +1079,5 @@
       real    factor 
       real    zaux
+      character(len=100) text
 
 !!!!  
@@ -1090,5 +1098,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' interhunt5/ Interpolat error. zz out of limits.'
+            text='interhunt5/ Interpolat error. zz out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1140,4 +1149,5 @@
       real*8    factor 
       real*8    zaux
+      character(len=100) text
 
 !!!!  
@@ -1158,5 +1168,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' INTERHUNTDP3/ Interpolat error. zz out of limits.'
+            text='INTERHUNTDP3/ Interpolat error. zz out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1206,4 +1217,5 @@
       real*8    factor 
       real*8    zaux
+      character(len=100) text
 
 !!!!  
@@ -1224,5 +1236,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' INTERHUNTDP4/ Interpolat error. zz out of limits.'
+            text='INTERHUNTDP4/ Interpolat error. zz out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1274,4 +1287,5 @@
       real*8    factor 
       real*8    zaux
+      character(len=100) text
 
 !!!!  
@@ -1292,5 +1306,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' INTERHUNT/ Interpolat error. zz out of limits.'
+            text='INTERHUNT/ Interpolat error. zz out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1336,4 +1351,5 @@
       real    factor 
       real    zaux
+      character(len=100) text
 
 !!!!  
@@ -1354,5 +1370,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' interhunt/ Interpolat error. z out of limits.'
+            text='interhunt/ Interpolat error. z out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1414,4 +1431,5 @@
       real    factor 
       real    zaux
+      character(len=100) text
 
 !!!!  
@@ -1432,5 +1450,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' interhuntlimits/ Interpolat error. z out of limits.'
+            text='interhuntlimits/ Interpolat error. z out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1504,4 +1523,5 @@
       real    factor 
       real    zaux
+      character(len=100) text
 
 !!!!  
@@ -1522,5 +1542,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' interhuntlimits/ Interpolat error. z out of limits.'
+            text='interhuntlimits/ Interpolat error. z out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
@@ -1604,4 +1625,5 @@
       real    factor 
       real    zaux
+      character(len=100) text
 
 !!!!  
@@ -1622,5 +1644,6 @@
 	    write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
 	    write (*,*) ' HUNT/ location in new grid:', zz(i)
-            stop ' interhuntlimits/ Interpolat error. z out of limits.'
+            text='interhuntlimits/ Interpolat error. z out of limits.'
+            CALL abort_physic("nlte_aux",text, 1)
          endif
 
Index: trunk/LMDZ.VENUS/libf/phyvenus/nlte_tcool.F
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/nlte_tcool.F	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/nlte_tcool.F	(revision 2048)
@@ -1410,4 +1410,6 @@
       real*8 varerr
       
+      character(len=100) text
+
 c***************
 
@@ -1647,8 +1649,7 @@
          write (*,*) '   Negative vibr.temp   xvt41 < 0 '
          
-
       endif
 
-
-      stop ' Stopped in NLTE scheme due to severe error.'
+      text='Stopped in NLTE scheme due to severe error'
+      CALL abort_physic("nlte_tcool",text, 1)
       end
Index: trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F	(revision 2048)
@@ -140,9 +140,10 @@
         trac_sum(:,:)=0.0
 c SEULEMENT LES GAZ
-        DO iq=2,nqmax-nmicro
-         trac_sum(:,:)= trac_sum(:,:) + trac(:,:,iq) 
+        DO iq=1,nqmax-nmicro
+         if (iq.ne.i_co2) trac_sum(:,:)= trac_sum(:,:) + trac(:,:,iq) 
         END DO
 
         trac(:,:,i_co2)= 1-trac_sum(:,:)
+
       else
         write(*,*) "Réinitialisation des traceurs avec chimie "
@@ -362,5 +363,5 @@
 
       IF (ok_cloud .AND. cl_scheme.eq.1) THEN
-c	  Passage de Rm a Rv pour les liq
+c	  Passage de Rv a Rm pour les liq
          trac(:,:,i_h2so4liq)=trac(:,:,i_h2so4liq)*M_tr(i_h2so4liq)
      &                          /mmean(:,:)
Index: trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F	(revision 2047)
+++ trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F	(revision 2048)
@@ -279,7 +279,17 @@
 c-----TEST-------
 c tayloring the solar flux...
+c        if ((PPB(j).gt.0.04).and.(PPB(j).le.0.1)) then
+c         PHEAT(j) = PHEAT(j)*1.5
+c        endif
+c        if ((PPB(j).gt.0.1).and.(PPB(j).le.0.5)) then
+c         PHEAT(j) = PHEAT(j)*2.
+c        endif
         if ((PPB(j).gt.1.4).and.(PPB(j).le.10.)) then
+c        if ((PPB(j).gt.1.4).and.(PPB(j).le.100.)) then
          PHEAT(j) = PHEAT(j)*3
         endif
+c        if ((PPB(j).gt.10.).and.(PPB(j).le.120.)) then
+c         PHEAT(j) = PHEAT(j)*2
+c        endif
 c----------------
       enddo
