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