Index: LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4228)
+++ LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4229)
@@ -5043,17 +5043,16 @@
     ! Calculer le transport de l'eau et de l'energie (diagnostique)
     !
-    CALL transp (paprs,zxtsol, &
-         t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, &
-         ve, vq, ue, uq, vwat, uwat)
+    CALL transp (paprs,zxtsol, t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, &
+                 ue, ve, uq, vq, uwat, vwat)
     !
     !IM global posePB BEG
     IF(1.EQ.0) THEN
        !
-       CALL transp_lay (paprs,zxtsol, &
-            t_seri, q_seri, u_seri, v_seri, zphi, &
+       CALL transp_lay (paprs,zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, &
             ve_lay, vq_lay, ue_lay, uq_lay)
        !
     ENDIF !(1.EQ.0) THEN
     !IM global posePB END
+    !
     ! Accumuler les variables a stocker dans les fichiers histoire:
     !
Index: LMDZ6/trunk/libf/phylmd/transp.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/transp.F90	(revision 4228)
+++ LMDZ6/trunk/libf/phylmd/transp.F90	(revision 4229)
@@ -2,6 +2,6 @@
 ! $Id$
 
-SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, vtran_e, vtran_q, utran_e, &
-    utran_q, vtran_w, utran_w)
+SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, & 
+                  utran_e, vtran_e, utran_q, vtran_q, utran_w, vtran_w)
 
   USE dimphy
@@ -15,37 +15,43 @@
   include "YOMCST.h"
 
-  REAL paprs(klon, klev+1), tsol(klon)
-  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)
+  !--inputs
+  REAL, INTENT(IN)  :: paprs(klon, klev+1), tsol(klon), geom(klon, klev)
+  REAL, INTENT(IN)  :: t(klon, klev), q(klon, klev), ql(klon, klev), qs(klon, klev)
+  REAL, INTENT(IN)  :: u(klon, klev), v(klon, klev)
+  !--outputs
+  REAL, INTENT(OUT) :: utran_e(klon), vtran_e(klon) !--lateral flux of dry static energy (J m-1 s-1)
+  REAL, INTENT(OUT) :: utran_q(klon), vtran_q(klon) !--lateral flux of water vapour (kg m-1 s-1)
+  REAL, INTENT(OUT) :: utran_w(klon), vtran_w(klon) !--lateral flux of total water (kg m-1 s-1)
+  !--local variables
+  INTEGER i, l
+  REAL e, dm
+  ! ------------------------------------------------------------------
 
-  INTEGER i, l
-  ! ------------------------------------------------------------------
-  REAL geom(klon, klev), e
-  ! ------------------------------------------------------------------
-  DO i = 1, klon
-    utran_e(i) = 0.0
-    utran_q(i) = 0.0
-    vtran_e(i) = 0.0
-    vtran_q(i) = 0.0
-    utran_w(i) = 0.0
-    vtran_w(i) = 0.0
-  END DO
+  !--initialisations
+  utran_e(:) = 0.0
+  utran_q(:) = 0.0
+  vtran_e(:) = 0.0
+  vtran_q(:) = 0.0
+  utran_w(:) = 0.0
+  vtran_w(:) = 0.0
 
+  !--vertical integration of diagnostics
   DO l = 1, klev
     DO i = 1, klon
+      dm= (paprs(i,l)-paprs(i,l+1))/RG  !--mass of layer kg m-2
+      !--moist static energy
 !      e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l)
+      !--dry static energy
       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
+      utran_e(i) = utran_e(i) + u(i, l)*e*dm
+      vtran_e(i) = vtran_e(i) + v(i, l)*e*dm
+      !--water vapour
+      utran_q(i) = utran_q(i) + u(i, l)*q(i,l)*dm 
+      vtran_q(i) = vtran_q(i) + v(i, l)*q(i,l)*dm
+      !--total water
+      utran_w(i) = utran_w(i) + u(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm 
+      vtran_w(i) = vtran_w(i) + v(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm
+    ENDDO
+  ENDDO
 
   RETURN
Index: LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 4228)
+++ LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 4229)
@@ -6362,7 +6362,6 @@
     ! Calculer le transport de l'eau et de l'energie (diagnostique)
     !
-    CALL transp (paprs,zxtsol, &
-         t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, &
-         ve, vq, ue, uq, vwat, uwat)
+    CALL transp (paprs, zxtsol, t_seri, q_seri, ql_seri, qs_seri, u_seri, v_seri, zphi, &
+                 ue, ve, uq, vq, uwat, vwat)
     !
     !IM global posePB BEG
@@ -6375,4 +6374,5 @@
     ENDIF !(1.EQ.0) THEN
     !IM global posePB END
+    !
     ! Accumuler les variables a stocker dans les fichiers histoire:
     !
