From a05270d199f7d6e2aa344efd3018242bf40126e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr>
Date: Wed, 20 Dec 2023 15:08:12 +0100
Subject: [PATCH] add namelist switch LTURB_PRECIP

---
 src/PHYEX/turb/modd_turbn.f90 |  6 +++++-
 src/PHYEX/turb/turb.f90       | 12 +++++++-----
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/PHYEX/turb/modd_turbn.f90 b/src/PHYEX/turb/modd_turbn.f90
index a3f2c6e9d..ef3ad4cbe 100644
--- a/src/PHYEX/turb/modd_turbn.f90
+++ b/src/PHYEX/turb/modd_turbn.f90
@@ -122,6 +122,7 @@ REAL               :: XCEI_MAX  !< maximum threshold for the instability index C
                                      !(beginning of the saturation of the amplification)
 REAL, DIMENSION(:,:,:), POINTER  :: XCEI !< Cloud Entrainment instability index to emphasize localy 
                                          ! turbulent fluxes
+  LOGICAL            :: LTURB_PRECIP ! switch to apply turbulence to precipitating hydrometeor mixing ratios
 
 !  
 END TYPE TURB_t
@@ -180,6 +181,7 @@ REAL, POINTER :: XCOEF_AMPL_SAT=>NULL()
 REAL, POINTER :: XCEI_MIN=>NULL()
 REAL, POINTER :: XCEI_MAX =>NULL()
 REAL, DIMENSION(:,:,:), POINTER  :: XCEI=>NULL()
+LOGICAL, POINTER :: LTURB_PRECIP=>NULL()
 !
 NAMELIST/NAM_TURBn/XIMPL,CTURBLEN,CTURBDIM,LTURB_FLX,LTURB_DIAG,  &
                    LSIG_CONV,LRMC01,CTOM,&
@@ -188,7 +190,7 @@ NAMELIST/NAM_TURBn/XIMPL,CTURBLEN,CTURBDIM,LTURB_FLX,LTURB_DIAG,  &
                    XALTHGRAD, XCLDTHOLD, XLINI, LHARAT, &
                    LPROJQITURB, LSMOOTH_PRANDTL, XMINSIGS, NTURBSPLIT, &
                    LCLOUDMODIFLM, CTURBLEN_CLOUD, &
-                   XCOEF_AMPL_SAT, XCEI_MIN, XCEI_MAX
+                   XCOEF_AMPL_SAT, XCEI_MIN, XCEI_MAX, LTURB_PRECIP
 !
 !-------------------------------------------------------------------------------
 !
@@ -276,6 +278,7 @@ XCOEF_AMPL_SAT=>TURB_MODEL(KTO)%XCOEF_AMPL_SAT
 XCEI_MIN=>TURB_MODEL(KTO)%XCEI_MIN
 XCEI_MAX =>TURB_MODEL(KTO)%XCEI_MAX
 XCEI=>TURB_MODEL(KTO)%XCEI
+LTURB_PRECIP=>TURB_MODEL(KTO)%LTURB_PRECIP
 !
 ENDIF
 !
@@ -386,6 +389,7 @@ IF(LLDEFAULTVAL) THEN
   XCOEF_AMPL_SAT = 5.
   XCEI_MIN = 0.001E-06
   XCEI_MAX = 0.01E-06
+  LTURB_PRECIP =.FALSE.
   !
   IF(HPROGRAM=='AROME') THEN
     XTKEMIN=1.E-6
diff --git a/src/PHYEX/turb/turb.f90 b/src/PHYEX/turb/turb.f90
index 79eb73fe6..e333635ea 100644
--- a/src/PHYEX/turb/turb.f90
+++ b/src/PHYEX/turb/turb.f90
@@ -1346,11 +1346,13 @@ IF ( KRRL >= 1 ) THEN
 END IF!
 !
 PRSVS(:,:,:)=ZWORKS(:,:,1:KSV)
-IF (KRR.GE.3) PRRS(:,:,3)=ZWORKS(:,:,KSV+3)
-IF (KRR.GE.5) PRRS(:,:,5)=ZWORKS(:,:,KSV+5)
-IF (KRR.GE.6) PRRS(:,:,6)=ZWORKS(:,:,KSV+6)
-IF (KRR.GE.7) PRRS(:,:,7)=ZWORKS(:,:,KSV+7)
-IF (OFLYER)   PWSV(:,:,:)=ZWORKWSV(:,:,1:KSV)
+IF (TURBN%LTURB_PRECIP) THEN
+   IF (KRR.GE.3) PRRS(:,:,3)=ZWORKS(:,:,KSV+3)
+   IF (KRR.GE.5) PRRS(:,:,5)=ZWORKS(:,:,KSV+5)
+   IF (KRR.GE.6) PRRS(:,:,6)=ZWORKS(:,:,KSV+6)
+   IF (KRR.GE.7) PRRS(:,:,7)=ZWORKS(:,:,KSV+7)
+END IF
+   IF (OFLYER)   PWSV(:,:,:)=ZWORKWSV(:,:,1:KSV)
 !
 ! Remove non-physical negative values (unnecessary in a perfect world) + corresponding budgets
 CALL SOURCES_NEG_CORRECT_PHY(D,KSV,HCLOUD,HELEC,'NETUR',KRR,PTSTEP,PPABST,PTHLT,PRT,PRTHLS,PRRS,PRSVS)
-- 
GitLab