Index: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_local_var_mod.F90
===================================================================
--- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_local_var_mod.F90	(revision 3248)
+++ LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_local_var_mod.F90	(revision 3250)
@@ -319,6 +319,6 @@
       REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: slab_wfbils
 !$OMP THREADPRIVATE(slab_wfbils)
-      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: tpot, tpote, ue, uq, ve, vq, zxffonte
-!$OMP THREADPRIVATE(tpot, tpote, ue, uq, ve, vq, zxffonte)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte
+!$OMP THREADPRIVATE(tpot, tpote, ue, uq, uwat, ve, vq, vwat, zxffonte)
       REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfqcalving
 !$OMP THREADPRIVATE(zxfqcalving)
@@ -712,4 +712,5 @@
       ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon))
       ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon))
+      ALLOCATE(uwat(klon), vwat(klon))
       ALLOCATE(zxfqcalving(klon), zxfluxlat(klon))
       ALLOCATE(zxtsol(klon), snow_lsc(klon), zxfqfonte(klon), zxqsurf(klon))
@@ -1004,4 +1005,5 @@
       DEALLOCATE(slab_wfbils, tpot, tpote, ue)
       DEALLOCATE(uq, ve, vq, zxffonte)
+      DEALLOCATE(uwat, vwat)
       DEALLOCATE(zxfqcalving, zxfluxlat)
       DEALLOCATE(zxrunofflic)
Index: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_ctrlout_mod.F90
===================================================================
--- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_ctrlout_mod.F90	(revision 3248)
+++ LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_ctrlout_mod.F90	(revision 3250)
@@ -679,11 +679,15 @@
     'iwp', 'Cloud ice water path', 'kg/m2', (/ ('', i=1, 10) /))
   TYPE(ctrl_out), SAVE :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
-    'ue', 'Zonal energy transport', '-', (/ ('', i=1, 10) /))
+    'ue', 'Zonal dry static energy transport', '-', (/ ('', i=1, 10) /))
   TYPE(ctrl_out), SAVE :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
-    've', 'Merid energy transport', '-', (/ ('', i=1, 10) /))
+    've', 'Merid dry static energy transport', '-', (/ ('', i=1, 10) /))
   TYPE(ctrl_out), SAVE :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
     'uq', 'Zonal humidity transport', '-', (/ ('', i=1, 10) /))
   TYPE(ctrl_out), SAVE :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
     'vq', 'Merid humidity transport', '-', (/ ('', i=1, 10) /))
+  TYPE(ctrl_out), SAVE :: o_uwat = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
+    'uwat', 'Zonal total water transport', '-', (/ ('', i=1, 10) /))
+  TYPE(ctrl_out), SAVE :: o_vwat = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
+    'vwat', 'Merid total water transport', '-', (/ ('', i=1, 10) /))
   TYPE(ctrl_out), SAVE :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
     'cape', 'Conv avlbl pot ener', 'J/kg', (/ ('', i=1, 10) /))
Index: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_write_mod.F90
===================================================================
--- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_write_mod.F90	(revision 3248)
+++ LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_write_mod.F90	(revision 3250)
@@ -70,4 +70,5 @@
          o_cldhjn, o_cldtjn, o_cldq, o_lwp, o_iwp, &
          o_ue, o_ve, o_uq, o_vq, o_cape, o_pbase, &
+         o_uwat, o_vwat, &
          o_ptop, o_fbase, o_plcl, o_plfc, &
          o_wbeff, o_convoccur, o_cape_max, o_upwd, o_ep,o_epmax_diag, o_Ma, &
@@ -254,4 +255,5 @@
          cldh, cldt, JrNt, cldljn, cldmjn, cldhjn, &
          cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, &
+         uwat, vwat, &
          plcl, plfc, wbeff, convoccur, upwd, dnwd, dnwd0, prw, prlw, prsw, &
          s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, &
@@ -960,4 +962,6 @@
        CALL histwrite_phy(o_uq, uq)
        CALL histwrite_phy(o_vq, vq)
+       CALL histwrite_phy(o_uwat, uwat)
+       CALL histwrite_phy(o_vwat, vwat)
        IF (iflag_con.GE.3) THEN ! sb
           CALL histwrite_phy(o_cape, cape)
Index: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90
===================================================================
--- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90	(revision 3248)
+++ LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90	(revision 3250)
@@ -127,4 +127,5 @@
        slab_wfbils, tpot, tpote,               &
        ue, uq, ve, vq, zxffonte,               &
+       uwat, vwat,                             &
        zxfqcalving, zxfluxlat,                 &
        zxrunofflic,                            &
@@ -4503,6 +4504,6 @@
     !
     CALL transp (paprs,zxtsol, &
-         t_seri, q_seri, u_seri, v_seri, zphi, &
-         ve, vq, ue, uq)
+         t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, &
+         ve, vq, ue, uq, vwat, uwat)
     !
     !IM global posePB BEG
Index: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/transp.F90
===================================================================
--- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/transp.F90	(revision 3248)
+++ LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/transp.F90	(revision 3250)
@@ -1,7 +1,7 @@
 
-! $Header$
+! $Id$
 
-SUBROUTINE transp(paprs, tsol, t, q, u, v, geom, vtran_e, vtran_q, utran_e, &
-    utran_q)
+SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, vtran_e, vtran_q, utran_e, &
+    utran_q, vtran_w, utran_w)
 
   USE dimphy
@@ -16,6 +16,8 @@
 
   REAL paprs(klon, klev+1), tsol(klon)
-  REAL t(klon, klev), q(klon, klev), u(klon, klev), v(klon, klev)
+  REAL t(klon, klev), q(klon, klev), ql(klon, klev), qs(klon, klev)
+  REAL u(klon, klev), v(klon, klev)
   REAL utran_e(klon), utran_q(klon), vtran_e(klon), vtran_q(klon)
+  REAL utran_w(klon), vtran_w(klon)
 
   INTEGER i, l
@@ -28,13 +30,20 @@
     vtran_e(i) = 0.0
     vtran_q(i) = 0.0
+    utran_w(i) = 0.0
+    vtran_w(i) = 0.0
   END DO
 
   DO l = 1, klev
     DO i = 1, klon
-      e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l)
+!      e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l)
+      e = rcpd*t(i, l) + geom(i, l)
       utran_e(i) = utran_e(i) + u(i, l)*e*(paprs(i,l)-paprs(i,l+1))/rg
       utran_q(i) = utran_q(i) + u(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1))/rg
+      utran_w(i) = utran_w(i) + u(i, l)*(q(i, l)+ql(i, l)+qs(i, l))           &
+                                       *(paprs(i,l)-paprs(i,l+1))/rg
       vtran_e(i) = vtran_e(i) + v(i, l)*e*(paprs(i,l)-paprs(i,l+1))/rg
       vtran_q(i) = vtran_q(i) + v(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1))/rg
+      vtran_w(i) = vtran_w(i) + v(i, l)*(q(i, l)+ql(i, l)+qs(i, l))           &
+                                       *(paprs(i,l)-paprs(i,l+1))/rg
     END DO
   END DO
