From 6bdd37177dbd18dc940c251d8dba747464f217b9 Mon Sep 17 00:00:00 2001
From: Gaelle DELAUTIER <gaelle.delautier@meteo.fr>
Date: Tue, 3 Oct 2017 16:22:42 +0200
Subject: [PATCH] Christine 03/10/2017 : correction bug

---
 src/MNH/drag_veg.f90              | 26 ++++++++++++++++++++++----
 src/MNH/ecmwf_radiation_vers2.f90 |  5 +++--
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/MNH/drag_veg.f90 b/src/MNH/drag_veg.f90
index f6b63b707..a7446291b 100644
--- a/src/MNH/drag_veg.f90
+++ b/src/MNH/drag_veg.f90
@@ -72,6 +72,7 @@ SUBROUTINE DRAG_VEG(PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, &
 !!       C.Lac      07/2011 : Add budgets
 !!       S. Donier  06/2015 : bug surface aerosols
 !!       C.Lac      07/2016 : Add droplet deposition
+!!       C.Lac      10/2017 : Correction on deposition
 !!---------------------------------------------------------------
 !
 !
@@ -139,6 +140,7 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2)) ::           &
 REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: ZT,ZEXN,ZLV,ZCPH                              
 LOGICAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) &
             :: GDEP
+REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: ZWDEPR,ZWDEPS
 
 !
 !
@@ -239,15 +241,31 @@ IF (ODEPOTREE) THEN
   ZT(:,:,:)= PTHT(:,:,:)*ZEXN(:,:,:)
   ZLV(:,:,:)=XLVTT +(XCPV-XCL) *(ZT(:,:,:)-XTT)
   ZCPH(:,:,:)=XCPD +XCPV*PRT(:,:,:,1)
+  ZWDEPR(:,:,:)= 0.
+  ZWDEPS(:,:,:)= 0.
   WHERE (GDEP)
-   PRRS(:,:,:,2) = PRRS(:,:,:,2) - PVDEPOTREE * PRT(:,:,:,2) * PRHODJ(:,:,:)
+   ZWDEPR(:,:,:)= PVDEPOTREE * PRT(:,:,:,2) * PRHODJ(:,:,:)
   END WHERE
-  IF ((HCLOUD=='C2R2') .OR.  (HCLOUD=='KHKO')) THEN
+  IF ((HCLOUD=='C2R2') .OR.  (HCLOUD=='KHKO')  .OR.  (HCLOUD=='LIMA')) THEN
    WHERE (GDEP)
-    PSVS(:,:,:,NSV_C2R2BEG+1) =  PSVS(:,:,:,NSV_C2R2BEG+1)- PVDEPOTREE *  &
-     PSVT(:,:,:,NSV_C2R2BEG+1) * PRHODJ(:,:,:)
+   ZWDEPS(:,:,:)= PVDEPOTREE * PSVT(:,:,:,NSV_C2R2BEG+1) * PRHODJ(:,:,:)
    END WHERE
   END IF
+  DO JJ=2,(IJU-1)
+   DO JI=2,(IIU-1)
+     DO JK=2,(IKU-2) 
+       IF (GDEP(JI,JJ,JK)) THEN
+          PRRS(JI,JJ,JK,2) = PRRS(JI,JJ,JK,2) + (ZWDEPR(JI,JJ,JK+1)-ZWDEPR(JI,JJ,JK))/ &
+                             (PZZ(JI,JJ,JK+1)-PZZ(JI,JJ,JK))
+         IF ((HCLOUD=='C2R2') .OR.  (HCLOUD=='KHKO')) THEN
+          PSVS(JI,JJ,JK,NSV_C2R2BEG+1) =  PSVS(JI,JJ,JK,NSV_C2R2BEG+1) + &
+                   (ZWDEPS(JI,JJ,JK+1)-ZWDEPS(JI,JJ,JK))/(PZZ(JI,JJ,JK+1)-PZZ(JI,JJ,JK))
+         END IF
+       END IF
+     END DO
+    END DO
+   END DO
+!
 !
 END IF
 !
diff --git a/src/MNH/ecmwf_radiation_vers2.f90 b/src/MNH/ecmwf_radiation_vers2.f90
index 76c7a122e..e4e1c409d 100644
--- a/src/MNH/ecmwf_radiation_vers2.f90
+++ b/src/MNH/ecmwf_radiation_vers2.f90
@@ -737,9 +737,10 @@ DO JK = 1 , KLEV
                 IF (ZRADLP(JL)>1) then
                  ZTOL =ZFLWP(JL)*(XSWSAVIA(JSW)+(XSWSAVIB(JSW)/ZRADLP(JL)))/ZRADLP(JL)
                  ZGL  = RYFWCF(JSW)
+                 ZOL  = 1. - RASWCC(JSW)-RASWCD(JSW)*ZRADLP(JL)
+! Test for Sc and fog but not to generalize :
 ! M.Mazoyer, O.Thouron effective radius does not exceed 100 microns
-!                ZOL  = 1. - RASWCC(JSW)-RASWCD(JSW)*ZRADLP(JL)
-                 ZOL  = 1. - RASWCC(JSW)-RASWCD(JSW)*MIN(ZRADLP(JL),100.0)
+!                ZOL  = 1. - RASWCC(JSW)-RASWCD(JSW)*MIN(ZRADLP(JL),100.0)                 
                 ENDIF
               ELSE IF (ZRADLP(JL)>1.) THEN
                  write(*,*)'PROGRAM ERROR: STOP'
-- 
GitLab