diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index e687622a5d963160ece1323f59cd51f7ad0b0772..925eb22fc2214d40f5e4d73dce595ba313a77606 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -220,6 +220,7 @@ END MODULE MODI_DEFAULT_DESFM_n
 !!                   10/2016  (R.Honnert and S.Riette) : Improvement of EDKF and adaptation to the grey zone
 !!                   10/2016  (F Brosse) add prod/loss terms computation for chemistry
 !!                   07/2017  (V. Masson) adds time step for output files writing.
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -979,6 +980,7 @@ IF (KMI == 1) THEN
   LGEOST_UV_FRC      = .FALSE.
   LGEOST_TH_FRC      = .FALSE.
   LTEND_THRV_FRC      = .FALSE.
+  LTEND_UV_FRC       = .FALSE. 
   LVERT_MOTION_FRC   = .FALSE.
   LRELAX_THRV_FRC    = .FALSE.
   LRELAX_UV_FRC      = .FALSE.
diff --git a/src/MNH/forcing.f90 b/src/MNH/forcing.f90
index 3aac75017d4fda72fe0973cd0a9254d3ba1b46c9..165bb966ec8a4901cc8ef121133a6219320a31dd 100644
--- a/src/MNH/forcing.f90
+++ b/src/MNH/forcing.f90
@@ -19,7 +19,7 @@ INTERFACE
                            PUFRC_PAST, PVFRC_PAST,                         &
                            PUT,  PVT,  PWT,  PTHT,  PTKET,  PRT,  PSVT,    &
                            PRUS, PRVS, PRWS, PRTHS, PRTKES, PRRS, PRSVS,   &
-                           KMI)
+                           KMI,PJ)
 !
 USE MODD_TIME, ONLY: DATE_TIME
 !
@@ -46,6 +46,8 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS ! moist variables at time t+1
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRSVS! scalar variables at time t+1
 !
 INTEGER,                  INTENT(IN)    :: KMI      ! Model index
+REAL, DIMENSION(:,:,:),   INTENT(IN) :: PJ
+
 !
 END SUBROUTINE FORCING
 !
@@ -59,7 +61,7 @@ END MODULE MODI_FORCING
                            PUFRC_PAST, PVFRC_PAST,                         &
                            PUT,  PVT,  PWT,  PTHT,  PTKET,  PRT,  PSVT,    &
                            PRUS, PRVS, PRWS, PRTHS, PRTKES, PRRS, PRSVS,   &
-                           KMI)
+                           KMI,PJ)
 !     ######################################################################
 !
 !!***  *FORCING* - routine to compute the forced terms 
@@ -145,6 +147,7 @@ END MODULE MODI_FORCING
 !!                                    forcing
 !!      06/2012  V. Masson            Adds tendency of geostrophic wind itself to wind tendency
 !!      01/2014  J. escobar           correction for // initialisation geostrophic ZUF,ZVF,ZWF 
+!!      09/2017 Q.Rodier add LTEND_UV_FRC
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -160,6 +163,7 @@ USE MODD_LUNIT
 USE MODD_PARAMETERS
 USE MODD_TIME
 USE MODD_BUDGET
+USE MODD_CST
 !
 USE MODI_SHUMAN
 USE MODI_UPSTREAM_Z
@@ -196,6 +200,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS ! moist variables at time t+1
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRSVS! scalar variables at time t+1
 !
 INTEGER,                  INTENT(IN)    :: KMI      ! Model index
+REAL, DIMENSION(:,:,:),   INTENT(IN) :: PJ
 !
 !*       0.2   Declarations of local variables
 !
@@ -207,6 +212,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWF, ZUF, ZVF  ! 3D forcing fields on
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTHF, ZRVF     !  the model grid mesh
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZGXTHF, ZGYTHF !          at
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTENDTHF, ZTENDRVF   !        time t
+REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTENDVF, ZTENDUF
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZDUF, ZDVF     ! evolution of geostrophic wind
 !                                                     ! during the time step
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZCOEF          ! coefficient to take into
@@ -223,7 +229,9 @@ REAL, DIMENSION(SIZE(PUT,3)) :: ZXWFRC, ZXUFRC, ZXVFRC! 1D forcing fields
 REAL, DIMENSION(SIZE(PUT,3)) :: ZXTHFRC, ZXRVFRC      !       after
 REAL, DIMENSION(SIZE(PUT,3)) :: ZXGXTHFRC, ZXGYTHFRC  !       time
 REAL, DIMENSION(SIZE(PUT,3)) :: ZXTENDTHFRC, ZXTENDRVFRC  !   interpolation 
+REAL, DIMENSION(SIZE(PUT,3)) :: ZXTENDUFRC, ZXTENDVFRC
 REAL                         :: ZXPGROUNDFRC          ! ground fields interpol.
+REAL,DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZOMEGA ! vertical velocity forcing (Pa/s)
 !
 LOGICAL, SAVE :: GSFIRSTCALL = .TRUE. ! control switch for the first call
 !
@@ -350,6 +358,20 @@ IF (GSFIRSTCALL) THEN
       WRITE(UNIT=ILUOUT0,FMT='(I10,99(/8E10.3))') &
            JK, (XTENDRVFRC(JK,JL), JL=1, NFRC)       
     END DO
+!    
+    WRITE(UNIT=ILUOUT0,FMT='(A)') &
+       "XTENDUFRC : wind advection tendency in X"
+    DO JK = 1, IKU
+     WRITE(UNIT=ILUOUT0,FMT='(I10,99(/8E10.3))') &
+         JK, (XTENDUFRC(JK,JL), JL=1, NFRC)
+    END DO
+!
+    WRITE(UNIT=ILUOUT0,FMT='(A)') &
+       "XTENDVFRC : wind advection tendency in Y"
+    DO JK = 1, IKU
+     WRITE(UNIT=ILUOUT0,FMT='(I10,99(/8E10.3))') &
+         JK, (XTENDVFRC(JK,JL), JL=1, NFRC)
+    END DO
 !
     WRITE(UNIT=ILUOUT0,FMT='(A)') &
          "XPGROUNDFRC: SURF PRESSURE FORCING"
@@ -373,6 +395,8 @@ IF( TEMPORAL_LT ( TPDTCUR, TDTFRC(1) ) ) THEN
   ZXTENDRVFRC(:) = XTENDRVFRC(:,1)
   ZXGXTHFRC(:) = XGXTHFRC(:,1)
   ZXGYTHFRC(:) = XGYTHFRC(:,1)
+  ZXTENDUFRC(:) = XTENDUFRC(:,1)
+  ZXTENDVFRC(:) = XTENDVFRC(:,1)
   ZXPGROUNDFRC  = XPGROUNDFRC(1)
 ELSE IF ( .NOT. TEMPORAL_LT ( TPDTCUR, TDTFRC(NFRC) ) ) THEN
   ZXUFRC(:)    = XUFRC(:,NFRC)
@@ -384,6 +408,8 @@ ELSE IF ( .NOT. TEMPORAL_LT ( TPDTCUR, TDTFRC(NFRC) ) ) THEN
   ZXTENDRVFRC(:) = XTENDRVFRC(:,NFRC)
   ZXGXTHFRC(:) = XGXTHFRC(:,NFRC)
   ZXGYTHFRC(:) = XGYTHFRC(:,NFRC)
+  ZXTENDUFRC(:) = XTENDUFRC(:,NFRC)
+  ZXTENDVFRC(:) = XTENDVFRC(:,NFRC)
   ZXPGROUNDFRC  = XPGROUNDFRC(NFRC)
 ELSE
   JXP = JSX + 1
@@ -415,6 +441,8 @@ ELSE
   ZXRVFRC(:)   = XRVFRC(:,JSX)  +(XRVFRC(:,JXP)-XRVFRC(:,JSX))*ZALPHA
   ZXTENDTHFRC(:) = XTENDTHFRC(:,JSX)+(XTENDTHFRC(:,JXP)-XTENDTHFRC(:,JSX))*ZALPHA
   ZXTENDRVFRC(:) = XTENDRVFRC(:,JSX)+(XTENDRVFRC(:,JXP)-XTENDRVFRC(:,JSX))*ZALPHA
+  ZXTENDUFRC(:) = XTENDUFRC(:,JSX)+(XTENDUFRC(:,JXP)-XTENDUFRC(:,JSX))*ZALPHA
+  ZXTENDVFRC(:) = XTENDVFRC(:,JSX)+(XTENDVFRC(:,JXP)-XTENDVFRC(:,JSX))*ZALPHA
   ZXGXTHFRC(:) = XGXTHFRC(:,JSX)+(XGXTHFRC(:,JXP)-XGXTHFRC(:,JSX))*ZALPHA
   ZXGYTHFRC(:) = XGYTHFRC(:,JSX)+(XGYTHFRC(:,JXP)-XGYTHFRC(:,JSX))*ZALPHA
   ZXPGROUNDFRC  = XPGROUNDFRC(JSX) +(XPGROUNDFRC(JXP)-XPGROUNDFRC(JSX))*ZALPHA
@@ -436,6 +464,8 @@ ALLOCATE(ZTENDTHF(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)))
 ALLOCATE(ZTENDRVF(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)))
 ALLOCATE(ZDUF(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)))
 ALLOCATE(ZDVF(SIZE(PVT,1),SIZE(PVT,2),SIZE(PVT,3)))
+ALLOCATE(ZTENDUF(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)))
+ALLOCATE(ZTENDVF(SIZE(PVT,1),SIZE(PVT,2),SIZE(PVT,3)))
 !
 IF (LFLAT) THEN
 !
@@ -448,6 +478,8 @@ IF (LFLAT) THEN
   ZRVF(:,:,:)   = SPREAD( SPREAD( ZXRVFRC(:),1,IIU ) ,2,IJU )
   ZTENDTHF(:,:,:)  = SPREAD( SPREAD( ZXTENDTHFRC(:),1,IIU ),2,IJU )
   ZTENDRVF(:,:,:)  = SPREAD( SPREAD( ZXTENDRVFRC(:),1,IIU ),2,IJU )
+  ZTENDUF(:,:,:)  = SPREAD( SPREAD( ZXTENDUFRC(:),1,IIU ),2,IJU )
+  ZTENDVF(:,:,:)  = SPREAD( SPREAD( ZXTENDVFRC(:),1,IIU ),2,IJU )
   ZGXTHF(:,:,:) = SPREAD( SPREAD( ZXGXTHFRC(:),1,IIU ),2,IJU )
   ZGYTHF(:,:,:) = SPREAD( SPREAD( ZXGYTHFRC(:),1,IIU ),2,IJU )
 ELSE
@@ -542,6 +574,8 @@ ELSE
             ZGYTHF(JI,JJ,JK) = ZXGYTHFRC(JL+1)*ZDZ + ZXGYTHFRC(JL)*(1-ZDZ)
             ZTENDTHF(JI,JJ,JK)  = ZXTENDTHFRC(JL+1)*ZDZ + ZXTENDTHFRC(JL)*(1-ZDZ)
             ZTENDRVF(JI,JJ,JK)  = ZXTENDRVFRC(JL+1)*ZDZ + ZXTENDRVFRC(JL)*(1-ZDZ)
+            ZTENDUF(JI,JJ,JK)  = ZXTENDUFRC(JL+1)*ZDZ + ZXTENDUFRC(JL)*(1-ZDZ)
+            ZTENDVF(JI,JJ,JK)  = ZXTENDVFRC(JL+1)*ZDZ + ZXTENDVFRC(JL)*(1-ZDZ)
           ELSE IF( ZZF(JI,JJ,JK) > PZHAT(IKU) ) THEN
             ZDZ = (ZZF(JI,JJ,JK)-PZHAT(IKU)) * ZDZHAT_INV_IKU
             ZTHF(JI,JJ,JK)   = ZXTHFRC(IKU)*ZDZ   + ZXTHFRC(IKU-1)*(1-ZDZ)
@@ -550,6 +584,8 @@ ELSE
             ZGYTHF(JI,JJ,JK) = ZXGYTHFRC(IKU)*ZDZ + ZXGYTHFRC(IKU-1)*(1-ZDZ)
             ZTENDTHF(JI,JJ,JK)  = ZXTENDTHFRC(IKU)*ZDZ + ZXTENDTHFRC(IKU-1)*(1-ZDZ)
             ZTENDRVF(JI,JJ,JK)  = ZXTENDRVFRC(IKU)*ZDZ + ZXTENDRVFRC(IKU-1)*(1-ZDZ)
+            ZTENDUF(JI,JJ,JK)  = ZXTENDUFRC(IKU)*ZDZ + ZXTENDUFRC(IKU-1)*(1-ZDZ)
+            ZTENDVF(JI,JJ,JK)  = ZXTENDVFRC(IKU)*ZDZ + ZXTENDVFRC(IKU-1)*(1-ZDZ)                  
           END IF
         END DO
       END DO
@@ -557,6 +593,15 @@ ELSE
   END DO
 END IF
 !
+!!============================
+!!
+!! Ligne to add if you want W in Pa/s in namelist instead of m/s (omega = - w/(rho*g))
+!!
+!ZWF(:,:,:) = - ZWF(:,:,:)/(XG*MZM(1,IKU,1,(PRHODJ(:,:,:)/PJ(:,:,:))))
+!
+!!============================
+!
+!
 !
 ! under the ground, forcings do not exist.
 !
@@ -570,6 +615,8 @@ DO JK=1,JPVEXT
   ZGYTHF(:,:,JK) = 0.
   ZTENDTHF(:,:,JK)  = 0.
   ZTENDRVF(:,:,JK)  = 0.
+  ZTENDUF(:,:,JK)  = 0.
+  ZTENDVF(:,:,JK)  = 0.
 END DO
 !
 ! store large scale w in module to be used later
@@ -658,6 +705,13 @@ IF ( LTEND_THRV_FRC ) THEN
   END IF
 END IF
 !
+!*       4.2.1    integration of the tendency forcing for uv
+!
+IF ( LTEND_UV_FRC ) THEN
+ PRUS(:,:,:) = PRUS(:,:,:) +  MXM(PRHODJ) * ZTENDUF(:,:,:)
+ PRVS(:,:,:) = PRVS(:,:,:) +  MYM(PRHODJ) * ZTENDVF(:,:,:)
+END IF
+!
 !*       4.3    integration of the thermal and geostrophic wind
 !
 IF( LCORIO ) THEN
@@ -681,27 +735,29 @@ IF( LCORIO ) THEN
     ! adds tendency of geostrophic wind to force wind in the free troposphere to
     ! follow the geostrophic wind when the latter changes. 
     ! When winds differs from the geotrophic wind, the impact of this tendency is reduced.
-    ALLOCATE(ZCOEF(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)))
-    ZCOEF(:,:,:) = (MXF(PUT       **2)+MYF(PVT       **2))        &
-               /MAX(MXF(PUFRC_PAST**2)+MYF(PVFRC_PAST**2), 1.E-3)
-    !
-    ZCOEF(:,:,:) = MIN(1.,SQRT(ZCOEF))
-    !
-    ZDUT(:,:,:) = ZDUF(:,:,:) * MXM(ZCOEF) 
-    ZDVT(:,:,:) = ZDVF(:,:,:) * MYM(ZCOEF) 
-    !
-    PRUS(:,:,:) = PRUS(:,:,:) + ZDUT(:,:,:) * MXM(PRHODJ) / PTSTEP
+    IF ( .NOT. LTEND_UV_FRC ) THEN
+      ALLOCATE(ZCOEF(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)))
+      ZCOEF(:,:,:) = (MXF(PUT       **2)+MYF(PVT       **2))        &
+                 /MAX(MXF(PUFRC_PAST**2)+MYF(PVFRC_PAST**2), 1.E-3)
+      !
+      ZCOEF(:,:,:) = MIN(1.,SQRT(ZCOEF))
+      !
+      ZDUT(:,:,:) = ZDUF(:,:,:) * MXM(ZCOEF) 
+      ZDVT(:,:,:) = ZDVF(:,:,:) * MYM(ZCOEF) 
+      !
+      PRUS(:,:,:) = PRUS(:,:,:) + ZDUT(:,:,:) * MXM(PRHODJ) / PTSTEP
+      !
+      PRVS(:,:,:) = PRVS(:,:,:) + ZDVT(:,:,:) * MYM(PRHODJ) / PTSTEP
+      !
+      !
+      ! Takes into acount the Coriolis force due to this evolution
+      PRUS(:,:,:) = PRUS(:,:,:)                                                    &
+                  + MXM( MYF(ZDVT(:,:,:))*PRHODJ(:,:,:)*SPREAD(PCORIOZ(:,:),3,IKU))
+      PRVS(:,:,:) = PRVS(:,:,:)                                                    &
+                  - MYM( MXF(ZDUT(:,:,:))*PRHODJ(:,:,:)*SPREAD(PCORIOZ(:,:),3,IKU))
     !
-    PRVS(:,:,:) = PRVS(:,:,:) + ZDVT(:,:,:) * MYM(PRHODJ) / PTSTEP
-    !
-    !
-    ! Takes into acount the Coriolis force due to this evolution
-    PRUS(:,:,:) = PRUS(:,:,:)                                                    &
-                + MXM( MYF(ZDVT(:,:,:))*PRHODJ(:,:,:)*SPREAD(PCORIOZ(:,:),3,IKU))
-    PRVS(:,:,:) = PRVS(:,:,:)                                                    &
-                - MYM( MXF(ZDUT(:,:,:))*PRHODJ(:,:,:)*SPREAD(PCORIOZ(:,:),3,IKU))
-    !
-    DEALLOCATE(ZCOEF)
+      DEALLOCATE(ZCOEF)
+    END IF
   END IF
 !
 END IF
@@ -818,6 +874,8 @@ DEALLOCATE(ZGXTHF)
 DEALLOCATE(ZGYTHF)
 DEALLOCATE(ZTENDTHF)
 DEALLOCATE(ZTENDRVF)
+DEALLOCATE(ZTENDUF)
+DEALLOCATE(ZTENDVF)
 DEALLOCATE(ZDZZ)
 DEALLOCATE(ZRWCF)
 DEALLOCATE(ZDUF)
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 9aafd74a8e655040abfe813fc9b504329f28695a..669404ea6ff70b4c90b7b624abe1d3fb6f6cc718 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -274,6 +274,7 @@ END MODULE MODI_INI_MODEL_n
 !!                   M.Leriche 2016 Chemistry
 !!                   M.Leriche 10/02/17 prevent negative values in LBX(Y)SVS 
 !!                   M.Leriche 01/07/2017 Add DIAG chimical surface fluxes
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -1394,6 +1395,8 @@ IF (KMI == 1) THEN
     ALLOCATE(XGXTHFRC(IKU,NFRC))
     ALLOCATE(XGYTHFRC(IKU,NFRC))
     ALLOCATE(XPGROUNDFRC(NFRC))
+    ALLOCATE(XTENDUFRC(IKU,NFRC))
+    ALLOCATE(XTENDVFRC(IKU,NFRC))    
   ELSE
     ALLOCATE(TDTFRC(0))
     ALLOCATE(XUFRC(0,0))
@@ -1406,6 +1409,8 @@ IF (KMI == 1) THEN
     ALLOCATE(XGXTHFRC(0,0))
     ALLOCATE(XGYTHFRC(0,0))
     ALLOCATE(XPGROUNDFRC(0))
+    ALLOCATE(XTENDUFRC(0,0))
+    ALLOCATE(XTENDVFRC(0,0))
   END IF
   IF ( LFORCING ) THEN
     ALLOCATE(XWTFRC(IIU,IJU,IKU))
@@ -1616,6 +1621,7 @@ CALL READ_FIELD(HINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP,                  &
                 NFRC,TDTFRC,XUFRC,XVFRC,XWFRC,XTHFRC,XRVFRC,                  &
                 XTENDTHFRC,XTENDRVFRC,XGXTHFRC,XGYTHFRC,                      &
                 XPGROUNDFRC, XATC,                                            &
+                XTENDUFRC, XTENDVFRC,                                         &
                 NADVFRC,TDTADVFRC,XDTHFRC,XDRVFRC,                            &
                 NRELFRC,TDTRELFRC,XTHREL,XRVREL,                              &
                 XVTH_FLUX_M,XWTH_FLUX_M,XVU_FLUX_M,                           &
diff --git a/src/MNH/modd_frc.f90 b/src/MNH/modd_frc.f90
index 82eeabe7eff36480d9b471019280924c1d1d2c4b..a2dfc1c56630e513f63397f422411fa00967675e 100644
--- a/src/MNH/modd_frc.f90
+++ b/src/MNH/modd_frc.f90
@@ -49,6 +49,7 @@
 !!      27/01/98 P. Bechtold   use tendency forcing
 !!                             add SST and surface pressure forcing
 !!      01/2004  V. Masson     surface externalization: removes SST forcing
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -79,6 +80,8 @@ REAL, SAVE                              :: XUTRANS, &! horizontal components of
                                            XVTRANS   !        a constant
                                                      !   Galilean TRANSlation
 REAL, SAVE, DIMENSION(:), ALLOCATABLE   :: XPGROUNDFRC! surf. pressure 
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XTENDUFRC   ! large scale U tendency
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XTENDVFRC   ! large scale V tendency
 !
 !*            control parameters for FORCING
 !             ------------------------------
@@ -86,6 +89,7 @@ REAL, SAVE, DIMENSION(:), ALLOCATABLE   :: XPGROUNDFRC! surf. pressure
 LOGICAL, SAVE     :: LGEOST_UV_FRC      ! enables geostrophic wind term
 LOGICAL, SAVE     :: LGEOST_TH_FRC      ! enables thermal wind advection
 LOGICAL, SAVE     :: LTEND_THRV_FRC     ! enables tendency forcing
+LOGICAL, SAVE     :: LTEND_UV_FRC     ! enables tendency forcing of the wind
 LOGICAL, SAVE     :: LVERT_MOTION_FRC   ! enables prescribed a forced vertical
 					                    ! transport for all prognostic variables
 LOGICAL, SAVE     :: LRELAX_THRV_FRC    ! enables temp. and humidity relaxation
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 5dca40ac1ee1dcc1745f4308fc4e73460c0892c7..c12f9d2b14a732650a173f38eebf05a6b1ac5292 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -245,6 +245,7 @@ END MODULE MODI_MODEL_n
 !!                                  _  Add OSPLIT_WENO
 !!                                  _ Add droplet deposition 
 !!                   10/2016 (M.Mazoyer) New KHKO output fields
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -372,6 +373,8 @@ USE MODI_TURB_CLOUD_INDEX
 USE MODI_INI_LG
 USE MODI_INI_MEAN_FIELD
 !
+USE MODE_GRIDCART         
+USE MODE_GRIDPROJ
 USE MODE_MODELN_HANDLER
 !
 USE MODD_2D_FRC
@@ -525,6 +528,7 @@ INTEGER             :: IGRID      ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 !
 REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZRUS,ZRVS,ZRWS
+REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZJ
 !
 ! for various testing
 INTEGER :: IK
@@ -1137,12 +1141,19 @@ XT_2WAY = XT_2WAY + ZTIME2 - ZTIME1 - XTIME_LES_BU_PROCESS - XTIME_BU_PROCESS
 ZTIME1 = ZTIME2
 XTIME_BU_PROCESS = 0.
 XTIME_LES_BU_PROCESS = 0.
+IF (LCARTESIAN) THEN
+  CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ)
+  XMAP=1.
+ELSE
+  CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
+                   XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ)
+END IF
 !
 IF ( LFORCING ) THEN
   CALL FORCING(XTSTEP,LUSERV,XRHODJ,XCORIOZ,XZHAT,XZZ,TDTCUR,&
                XUFRC_PAST, XVFRC_PAST,                &
                XUT,XVT,XWT,XTHT,XTKET,XRT,XSVT,       &
-               XRUS,XRVS,XRWS,XRTHS,XRTKES,XRRS,XRSVS,IMI)
+               XRUS,XRVS,XRWS,XRTHS,XRTKES,XRRS,XRSVS,IMI,ZJ)
 END IF
 !
 IF ( L2D_ADV_FRC ) THEN 
diff --git a/src/MNH/modn_frc.f90 b/src/MNH/modn_frc.f90
index 0207d75790f1525722aaec799fa08e326a645bd6..685ee4f243d5c526fed26540b16b1cabf6259430 100644
--- a/src/MNH/modn_frc.f90
+++ b/src/MNH/modn_frc.f90
@@ -47,6 +47,7 @@
 !!      27/01/98 (P. Bechtold) use tendency forcing
 !!                             add SST and surf pressure forcing
 !!      06/2003  (V. Masson)   removes SST forcing (externalisation of surface)
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !-------------------------------------------------------------------------------
 USE MODD_FRC
 !
@@ -55,6 +56,7 @@ IMPLICIT NONE
 NAMELIST /NAM_FRC/ LGEOST_UV_FRC      , &
                    LGEOST_TH_FRC      , &
                    LTEND_THRV_FRC     , &
+                   LTEND_UV_FRC       , &
                    LVERT_MOTION_FRC   , &
                    LRELAX_THRV_FRC    , &
                    LRELAX_UV_FRC      , &
diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index 2676b6c8ea3dc3958fcaf38d4ca0eae7994a35d8..4f9375a70b93a80aaccfaa74c4b88fb3cf7d5890 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -24,6 +24,7 @@ INTERFACE
             PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM,            &
             KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC,                    &
             PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC,PPGROUNDFRC,PATC,        &
+            PTENDUFRC,PTENDVFRC,                                             &            
             KADVFRC,TPDTADVFRC,PDTHFRC,PDRVFRC,                              &
             KRELFRC,TPDTRELFRC, PTHREL, PRVREL,                              &
             PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M,                              &
@@ -104,6 +105,7 @@ INTEGER,              INTENT(IN)  :: KFRC              ! number of forcing
 TYPE (DATE_TIME), DIMENSION(:), INTENT(OUT) :: TPDTFRC ! date of forcing profs.
 REAL, DIMENSION(:,:), INTENT(OUT) :: PUFRC,PVFRC,PWFRC ! forcing variables
 REAL, DIMENSION(:,:), INTENT(OUT) :: PTHFRC,PRVFRC
+REAL, DIMENSION(:,:), INTENT(OUT) :: PTENDUFRC,PTENDVFRC
 REAL, DIMENSION(:,:), INTENT(OUT) :: PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC
 REAL, DIMENSION(:),   INTENT(OUT) :: PPGROUNDFRC
 REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PATC
@@ -141,6 +143,7 @@ END MODULE MODI_READ_FIELD
             PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM,            &
             KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC,                    &
             PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC,PPGROUNDFRC,PATC,        &
+            PTENDUFRC,PTENDVFRC,                                             &            
             KADVFRC,TPDTADVFRC,PDTHFRC,PDRVFRC,                              &
             KRELFRC,TPDTRELFRC, PTHREL, PRVREL,                              &
             PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M,                              &
@@ -234,6 +237,7 @@ END MODULE MODI_READ_FIELD
 !!      Modification    01/2016  (JP Pinty) Add LIMA
 !!          M. Leriche  02/16     treat gas and aq. chemicals separately
 !!          C.Lac        10/16 CEN4TH with RKC4 + Correction on RK loop
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !!-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -356,6 +360,7 @@ INTEGER,              INTENT(IN)  :: KFRC              ! number of forcing
 TYPE (DATE_TIME), DIMENSION(:), INTENT(OUT) :: TPDTFRC ! date of forcing profs.
 REAL, DIMENSION(:,:), INTENT(OUT) :: PUFRC,PVFRC,PWFRC ! forcing variables
 REAL, DIMENSION(:,:), INTENT(OUT) :: PTHFRC,PRVFRC
+REAL, DIMENSION(:,:), INTENT(OUT) :: PTENDUFRC,PTENDVFRC
 REAL, DIMENSION(:,:), INTENT(OUT) :: PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC
 REAL, DIMENSION(:),   INTENT(OUT) :: PPGROUNDFRC
 REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PATC
@@ -1236,6 +1241,15 @@ IF ( LFORCING ) THEN
     YDIR='--'
     CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,PPGROUNDFRC(JT),IGRID,ILENCH,YCOMMENT,IRESP)
 !
+    YRECFM='TENDUFRC'//YFRC
+    YDIR='--'
+    CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,Z1D,IGRID,ILENCH,YCOMMENT,IRESP)
+    PTENDUFRC(:,JT)=Z1D(:)
+!
+    YRECFM='TENDVFRC'//YFRC
+    YDIR='--'
+    CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,Z1D,IGRID,ILENCH,YCOMMENT,IRESP)
+    PTENDVFRC(:,JT)=Z1D(:)
   END DO
 END IF
 !
diff --git a/src/MNH/set_frc.f90 b/src/MNH/set_frc.f90
index 1e5a1f2e4d5f3780cd1adb82634a9b313aa0f844..c219771b1e246be0710476e0fc06e88412380802 100644
--- a/src/MNH/set_frc.f90
+++ b/src/MNH/set_frc.f90
@@ -94,6 +94,7 @@ END MODULE MODI_SET_FRC
 !!                             add SST and ground pressure forcing
 !!         06/12    (Masson)   Removes extrapolations below or above forcing
 !!                             data. Reproduces the same data instead.
+!!                   09/2017 Q.Rodier add LTEND_UV_FRC
 !!
 !-------------------------------------------------------------------------------
 !
@@ -144,6 +145,7 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZWF,ZUF,ZVF ! Local variables for
 REAL, DIMENSION(:), ALLOCATABLE :: ZTHF,ZRVF   ! the data reading
 REAL, DIMENSION(:), ALLOCATABLE :: ZGXRF,ZGYRF !          "
 REAL, DIMENSION(:), ALLOCATABLE :: ZHEIGHTF    !          "
+REAL, DIMENSION(:), ALLOCATABLE :: ZTUF, ZTVF
 REAL, DIMENSION(:), ALLOCATABLE :: ZPRESSUF    !          "
 REAL, DIMENSION(:), ALLOCATABLE :: ZPRESSMF    !          "
 REAL, DIMENSION(:), ALLOCATABLE :: ZTHVUF      ! Thetav at wind levels
@@ -217,6 +219,8 @@ ALLOCATE(XTENDRVFRC(IKU,NFRC))
 ALLOCATE(XGXTHFRC(IKU,NFRC))
 ALLOCATE(XGYTHFRC(IKU,NFRC))
 ALLOCATE(XPGROUNDFRC(NFRC))
+ALLOCATE(XTENDUFRC(IKU,NFRC))
+ALLOCATE(XTENDVFRC(IKU,NFRC))
 !
 ! Reading the forcing sounding written in prep_idea1.nam
 !
@@ -244,6 +248,8 @@ DO JKT = 1,NFRC
       DEALLOCATE(ZRVF)
       DEALLOCATE(ZGXRF)
       DEALLOCATE(ZGYRF)
+      DEALLOCATE(ZTUF)
+      DEALLOCATE(ZTVF)
     ENDIF
     ALLOCATE(ZHEIGHTF(ILEVELF))
     ALLOCATE(ZUF(ILEVELF))
@@ -253,11 +259,15 @@ DO JKT = 1,NFRC
     ALLOCATE(ZRVF(ILEVELF))
     ALLOCATE(ZGXRF(ILEVELF))
     ALLOCATE(ZGYRF(ILEVELF))
+    ALLOCATE(ZTUF(ILEVELF))
+    ALLOCATE(ZTVF(ILEVELF))
 !
     DO JKU =1,ILEVELF
       READ(ILUPRE,*) ZHEIGHTF(JKU)                         &
                     ,ZUF(JKU),ZVF(JKU),ZTHF(JKU),ZRVF(JKU) &
-                    ,ZWF(JKU),ZGXRF(JKU),ZGYRF(JKU)
+                    ,ZWF(JKU),ZGXRF(JKU),ZGYRF(JKU),ZTUF(JKU)&
+                    ,ZTVF(JKU)
+
     END DO
   END IF
 !
@@ -390,6 +400,8 @@ DO JKT = 1,NFRC
       XRVFRC(JK,JKT) = ZRVF(1)
       XTENDTHFRC(JK,JKT) = ZGXRF(1)
       XTENDRVFRC(JK,JKT) = ZGYRF(1)
+      XTENDUFRC(JK,JKT) = ZTUF(1)
+      XTENDVFRC(JK,JKT) = ZTVF(1)        
     ELSE IF (ZZHATM(JK) > ZHEIGHTF(ILEVELF) ) THEN
 !
 ! copy above the last level
@@ -400,6 +412,8 @@ DO JKT = 1,NFRC
       XRVFRC(JK,JKT) = ZRVF(ILEVELF)
       XTENDTHFRC(JK,JKT)=ZGXRF(ILEVELF)
       XTENDRVFRC(JK,JKT)=ZGYRF(ILEVELF)
+      XTENDUFRC(JK,JKT)=ZTUF(ILEVELF)
+      XTENDVFRC(JK,JKT)=ZTVF(ILEVELF)
     ELSE
 !
 ! interpolation between first and last levels
@@ -416,6 +430,8 @@ DO JKT = 1,NFRC
           XRVFRC(JK,JKT) = ZRVF(JKLEV)*ZDZ2SDH + ZRVF(JKLEV+1)*ZDZ1SDH
           XTENDTHFRC(JK,JKT)=ZGXRF(JKLEV)*ZDZ2SDH + ZGXRF(JKLEV+1)*ZDZ1SDH
           XTENDRVFRC(JK,JKT)=ZGYRF(JKLEV)*ZDZ2SDH + ZGYRF(JKLEV+1)*ZDZ1SDH
+          XTENDUFRC(JK,JKT)=ZTUF(JKLEV)*ZDZ2SDH + ZTUF(JKLEV+1)*ZDZ1SDH    
+          XTENDVFRC(JK,JKT)=ZTVF(JKLEV)*ZDZ2SDH + ZTVF(JKLEV+1)*ZDZ1SDH
         END IF
       END DO
     END IF
@@ -583,6 +599,20 @@ IF (NVERB >= 10) THEN
     WRITE(UNIT=ILUOUT,FMT='(I10,99(/8E10.3))') &
          JK, (XTENDRVFRC(JK,JL), JL=1, NFRC)
   END DO
+!
+  WRITE(UNIT=ILUOUT,FMT='(A)') &
+       "XTENDUFRC : wind advection tendency in X"
+  DO JK = 1, IKU
+    WRITE(UNIT=ILUOUT,FMT='(I10,99(/8E10.3))') &
+         JK, (XTENDUFRC(JK,JL), JL=1, NFRC)
+  END DO
+!
+  WRITE(UNIT=ILUOUT,FMT='(A)') &
+       "XTENDVFRC : wind advection tendency in Y"
+  DO JK = 1, IKU
+    WRITE(UNIT=ILUOUT,FMT='(I10,99(/8E10.3))') &
+         JK, (XTENDVFRC(JK,JL), JL=1, NFRC)
+  END DO
 !
   WRITE(UNIT=ILUOUT,FMT='(A)') &
        "XPGROUNDFRC: SURF PRESSURE FORCING"