diff --git a/src/MNH/drag_veg.f90 b/src/MNH/drag_veg.f90 index 0e4268c2d535d0041efd4bf45c427ab28934e363..a2642f78c9f533b72aea992e0775a8fbeb9018a7 100644 --- a/src/MNH/drag_veg.f90 +++ b/src/MNH/drag_veg.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -71,6 +71,7 @@ SUBROUTINE DRAG_VEG(PTSTEP,PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, & !! C.Lac 10/2017 : Correction on deposition !! C.Lac 11/2019 : Correction in the drag formula and application to building in addition to tree !! C.Lac 02/2020 : Correction missing condition for budget on RC and SV + ! P. Wautelet 04/02/2021: budgets: bugfixes for LDRAGTREE if LIMA !!--------------------------------------------------------------- ! ! @@ -262,21 +263,28 @@ SUBROUTINE DRAG_VEG(PTSTEP,PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, & WHERE (GDEP) ZWDEPR(:,:,:)= PVDEPOTREE * PRT(:,:,:,2) * PRHODJ(:,:,:) END WHERE - IF ((HCLOUD=='C2R2') .OR. (HCLOUD=='KHKO') .OR. (HCLOUD=='LIMA')) THEN - WHERE (GDEP) - ZWDEPS(:,:,:)= PVDEPOTREE * PSVT(:,:,:,NSV_C2R2BEG+1) * PRHODJ(:,:,:) - END WHERE + IF ( HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' ) THEN + WHERE (GDEP) + ZWDEPS(:,:,:)= PVDEPOTREE * PSVT(:,:,:,NSV_C2R2BEG+1) * PRHODJ(:,:,:) + END WHERE + ELSE IF ( HCLOUD == 'LIMA' ) THEN + WHERE (GDEP) + ZWDEPS(:,:,:)= PVDEPOTREE * PSVT(:,:,:,NSV_LIMA_NC) * 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))/ & + 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').OR. (HCLOUD=='LIMA')) 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 + 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)) + ELSE IF ( HCLOUD == 'LIMA' ) THEN + PSVS(JI,JJ,JK,NSV_LIMA_NC) = PSVS(JI,JJ,JK,NSV_LIMA_NC) + & + (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 @@ -287,8 +295,11 @@ SUBROUTINE DRAG_VEG(PTSTEP,PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, & IF (LBUDGET_U) CALL BUDGET (PRUS,1,'DRAG_BU_RU') IF (LBUDGET_V) CALL BUDGET (PRVS,2,'DRAG_BU_RV') IF (ODEPOTREE) THEN - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'DEPOTR_BU_RRC') - IF (LBUDGET_SV) CALL BUDGET (PSVS(:,:,:,NSV_C2R2BEG+1),14+(NSV_C2R2BEG-1),'DEPOTR_BU_RSV') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'DEPOTRBU_RRC') + IF (LBUDGET_SV .AND. ( HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' ) ) & + CALL BUDGET (PSVS(:,:,:,NSV_C2R2BEG+1),12+NSV_C2R2BEG+1,'DEPOTRBU_RSV') + IF (LBUDGET_SV .AND. HCLOUD == 'LIMA' ) & + CALL BUDGET (PSVS(:,:,:,NSV_LIMA_NC),12+NSV_LIMA_NC,'DEPOTRBU_RSV') END IF ! !* 3. Computations of TKE tendency due to canopy drag diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index dc56711828dc9f406627c4ad3334d65fba56f2e9..a20c0d6879b1295c6a90c8140901d19439177748 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -2741,7 +2741,9 @@ IF (LBU_RSV) THEN IF ( (HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') .AND. OCHTRANS ) & IPROACTV(12+JSV,IPROC) = NDCONVSV IPROC=IPROC+1 - IF ( ODRAGTREE .AND. ODEPOTREE ) & + IF ( ODRAGTREE .AND. ODEPOTREE .AND. & + ( ( JSV == NSV_C2R2BEG+1 .AND. ( HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' ) ) & + .OR. ( JSV == NSV_LIMA_NC .AND. HCLOUD == 'LIMA' ) ) ) & IPROACTV(12+JSV,IPROC) = NDEPOTRSV IPROC=IPROC+1 IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,IPROC) = NVTURBSV