From 40c89dded263e26e01a22e6b6f96fb94daef4d84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr>
Date: Tue, 22 Feb 2022 11:21:28 +0100
Subject: [PATCH] Bugfix: do not have CLDFR=1 and ICEFR=1 everywhere in LIMA

---
 src/MNH/lima.f90                | 18 ++++++------------
 src/MNH/lima_ccn_activation.f90 | 11 ++++++++---
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90
index c248f1acf..d5d566e84 100644
--- a/src/MNH/lima.f90
+++ b/src/MNH/lima.f90
@@ -768,18 +768,12 @@ IF ( LCOLD )             ZCIT(:,:,:)   = ZCIS(:,:,:) * PTSTEP
 !*       2.     Compute cloud, ice and precipitation fractions
 !               ----------------------------------------------
 !
-IF (LSUBG_COND) THEN
-   CALL LIMA_COMPUTE_CLOUD_FRACTIONS (IIB, IIE, IJB, IJE, IKB, IKE, KKL, &
-                                      ZCCT, ZRCT,                        &
-                                      ZCRT, ZRRT,                        &
-                                      ZCIT, ZRIT,                        &
-                                      ZRST, ZRGT, ZRHT,                  &
-                                      PCLDFR, PICEFR, PPRCFR             )
-ELSE
-   PCLDFR(:,:,:)=1.
-   PICEFR(:,:,:)=1.
-   PPRCFR(:,:,:)=1.
-END IF
+CALL LIMA_COMPUTE_CLOUD_FRACTIONS (IIB, IIE, IJB, IJE, IKB, IKE, KKL, &
+                                   ZCCT, ZRCT,                        &
+                                   ZCRT, ZRRT,                        &
+                                   ZCIT, ZRIT,                        &
+                                   ZRST, ZRGT, ZRHT,                  &
+                                   PCLDFR, PICEFR, PPRCFR             )
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90
index b7786ea4f..78d9e7c14 100644
--- a/src/MNH/lima_ccn_activation.f90
+++ b/src/MNH/lima_ccn_activation.f90
@@ -167,7 +167,7 @@ REAL, DIMENSION(:), ALLOCATABLE    :: ZZW1, ZZW2, ZZW3, ZZW4, ZZW5, ZZW6, &
 REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTMP, ZCHEN_MULTI
 !
 REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3))   &
-                                   :: ZTDT, ZDRC, ZRVSAT, ZW, ZW2  
+                                   :: ZTDT, ZDRC, ZRVSAT, ZW, ZW2, ZCLDFR  
 REAL, DIMENSION(SIZE(PNFT,1),SIZE(PNFT,2),SIZE(PNFT,3))               &
                                    :: ZCONC_TOT         ! total CCN C. available
 !
@@ -230,6 +230,11 @@ IF (.NOT. LSUBG_COND) GNUCT(IIB:IIE,IJB:IJE,IKB:IKE) = GNUCT(IIB:IIE,IJB:IJE,IKB
                                                  .AND. PRVT(IIB:IIE,IJB:IJE,IKB:IKE).GE.ZRVSAT(IIB:IIE,IJB:IJE,IKB:IKE)
 !
 
+IF (.NOT. LSUBG_COND) THEN
+   ZCLDFR(:,:,:) = 1.
+ELSE
+   ZCLDFR(:,:,:) = PCLDFR(:,:,:)
+END IF
 
 INUCT = COUNTJV( GNUCT(:,:,:),I1(:),I2(:),I3(:))
 !
@@ -255,8 +260,8 @@ IF( INUCT >= 1 ) THEN
    ALLOCATE(ZRHODREF(INUCT)) 
    ALLOCATE(ZEXNREF(INUCT)) 
    DO JL=1,INUCT
-      ZRCT(JL) = PRCT(I1(JL),I2(JL),I3(JL))/PCLDFR(I1(JL),I2(JL),I3(JL))
-      ZCCT(JL) = PCCT(I1(JL),I2(JL),I3(JL))/PCLDFR(I1(JL),I2(JL),I3(JL))
+      ZRCT(JL) = PRCT(I1(JL),I2(JL),I3(JL))/ZCLDFR(I1(JL),I2(JL),I3(JL))
+      ZCCT(JL) = PCCT(I1(JL),I2(JL),I3(JL))/ZCLDFR(I1(JL),I2(JL),I3(JL))
       ZZT(JL)  = PT(I1(JL),I2(JL),I3(JL))
       ZZW1(JL) = ZRVSAT(I1(JL),I2(JL),I3(JL))
       ZZW2(JL) = PW_NU(I1(JL),I2(JL),I3(JL))
-- 
GitLab