Index: LMDZ5/trunk/libf/phylmd/ener_conserv.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/ener_conserv.F90	(revision 2894)
+++ LMDZ5/trunk/libf/phylmd/ener_conserv.F90	(revision 2895)
@@ -127,8 +127,18 @@
    ELSEIF (iflag_ener_conserv==11) THEN
       d_t(:,:)=d_t_vdf(:,:)
-      d_u(:,:)=d_u_vdf(:,:)+d_u_ajs(:,:)+d_u_con(:,:)+d_u_oro(:,:)+d_u_lif(:,:) &
-   &  +du_gwd_hines(:,:)+du_gwd_front(:,:)+du_gwd_rando(:,:)
-      d_v(:,:)=d_v_vdf(:,:)+d_v_ajs(:,:)+d_v_con(:,:)+d_v_oro(:,:)+d_v_lif(:,:) &
-   &     +dv_gwd_hines(:,:)+dv_gwd_front(:,:)+dv_gwd_rando(:,:)
+      d_u(:,:)=d_u_vdf(:,:)+d_u_ajs(:,:)+d_u_con(:,:)+d_u_oro(:,:)+d_u_lif(:,:)
+      d_v(:,:)=d_v_vdf(:,:)+d_v_ajs(:,:)+d_v_con(:,:)+d_v_oro(:,:)+d_v_lif(:,:) 
+      IF (ok_hines) THEN
+         d_u_vdf(:,:)=d_u_vdf(:,:)+du_gwd_hines(:,:)
+         d_v_vdf(:,:)=d_v_vdf(:,:)+dv_gwd_hines(:,:)
+      ENDIF
+      IF (.not. ok_hines .and. ok_gwd_rando) THEN
+         d_u_vdf(:,:)=d_u_vdf(:,:)+du_gwd_front(:,:)
+         d_v_vdf(:,:)=d_v_vdf(:,:)+dv_gwd_front(:,:)
+      ENDIF
+      IF (ok_gwd_rando) THEN
+         d_u_vdf(:,:)=d_u_vdf(:,:)+du_gwd_rando(:,:)
+         d_v_vdf(:,:)=d_v_vdf(:,:)+dv_gwd_rando(:,:)
+      ENDIF
    ELSE
       abort_message = 'iflag_ener_conserv non prevu'
