From 518209e3c9e7bfbfc6d32c0ff575495dda7aceb0 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 4 Feb 2021 09:31:33 +0100
Subject: [PATCH] Philippe 04/02/2021: budgets: add IMLT source for IFN_NUCL
 budgets

(cherry picked from commit 17e8e415dd6fd8011a99aa5136e9f37a17ee572d)
---
 src/MNH/ini_budget.f90 |  2 +-
 src/MNH/lima.f90       | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 9fac5a81c..3bae859ef 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -3733,7 +3733,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
          YWORK2(12+JSV,ILAST_PROC_NBR)= 'HIND_'
          IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
       END IF
-      IF (OPTSPLIT .OR. (OCOLD .AND. OWARM)) THEN
+      IF (OPTSPLIT .OR. (.NOT.OPTSPLIT .AND. OCOLD .AND. OWARM)) THEN
          ILAST_PROC_NBR = ILAST_PROC_NBR + 1
          YWORK2(12+JSV,ILAST_PROC_NBR)= 'IMLT_'
          IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90
index a4ae853bb..97974b1d1 100644
--- a/src/MNH/lima.f90
+++ b/src/MNH/lima.f90
@@ -293,6 +293,7 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) ::                 &
      ZTOT_RR_CVRC, ZTOT_CR_CVRC,                                           & ! conversion of rain into cloud droplets if diameter too small
      ZTOT_RV_CORR2, ZTOT_RC_CORR2, ZTOT_RR_CORR2, ZTOT_RI_CORR2,           &
      ZTOT_CC_CORR2, ZTOT_CR_CORR2, ZTOT_CI_CORR2
+REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),NIFN) :: ZTOT_IFNN_IMLT
 
 !
 !For mixing-ratio splitting
@@ -314,7 +315,7 @@ INTEGER                                                 :: INB_ITER_MAX
 INTEGER :: KRR
 INTEGER :: IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, IKTB, IKTE
 ! loops and packing
-INTEGER :: II, IPACK
+INTEGER :: II, IPACK, JI
 INTEGER, DIMENSION(:), ALLOCATABLE :: I1, I2, I3
 ! Inverse ov PTSTEP
 REAL :: ZINV_TSTEP
@@ -390,6 +391,7 @@ IF(LBU_ENABLE) THEN
      ZTOT_TH_IMLT(:,:,:) = 0.
      ZTOT_RC_IMLT(:,:,:) = 0.
      ZTOT_CC_IMLT(:,:,:) = 0.
+     ZTOT_IFNN_IMLT(:,:,:,:) = 0.
      ZTOT_TH_HONC(:,:,:) = 0.
      ZTOT_RC_HONC(:,:,:) = 0.
      ZTOT_CC_HONC(:,:,:) = 0.
@@ -1243,6 +1245,10 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP))
             ZTOT_TH_IMLT(I1(II),I2(II),I3(II)) =   ZTOT_TH_IMLT(I1(II),I2(II),I3(II))   + Z_TH_IMLT(II)
             ZTOT_RC_IMLT(I1(II),I2(II),I3(II)) =   ZTOT_RC_IMLT(I1(II),I2(II),I3(II))   + Z_RC_IMLT(II)
             ZTOT_CC_IMLT(I1(II),I2(II),I3(II)) =   ZTOT_CC_IMLT(I1(II),I2(II),I3(II))   + Z_CC_IMLT(II)
+            DO JI = 1, NMOD_IFN
+              ZTOT_IFNN_IMLT(I1(II),I2(II),I3(II),JI) = ZTOT_IFNN_IMLT(I1(II),I2(II),I3(II),JI) + ZB_IFNN(II,JI)
+            END DO
+
             ! Tendencies
             ZTOT_TH_HONC(I1(II),I2(II),I3(II)) =   ZTOT_TH_HONC(I1(II),I2(II),I3(II))   + Z_TH_HONC(II)  * ZMAXTIME(II)
             ZTOT_RC_HONC(I1(II),I2(II),I3(II)) =   ZTOT_RC_HONC(I1(II),I2(II),I3(II))   + Z_RC_HONC(II)  * ZMAXTIME(II)
@@ -1767,6 +1773,11 @@ IF(LBU_ENABLE) THEN
       CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI  , 'HMG_BU_RSV')
       ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_CORR2(:,:,:)/PTSTEP
       CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI  , 'CORR2_BU_RSV')
+
+      DO II=1,NMOD_IFN
+        ZIFNNS(:,:,:,II) = ZIFNNS(:,:,:,II) + ZTOT_IFNN_IMLT(:,:,:,II)/PTSTEP
+        CALL BUDGET (ZIFNNS(:,:,:,II)*PRHODJ(:,:,:), 12+NSV_LIMA_IFN_NUCL+II-1, 'IMLT_BU_RSV')
+      END DO
    END IF
 !!$            ZTOT_RC_EVAP(I1(II),I2(II),I3(II)) =   ZTOT_RC_EVAP(I1(II),I2(II),I3(II))   + Z_RC_EVAP(II)  * ZMAXTIME(II)
 !!$            ZTOT_CC_EVAP(I1(II),I2(II),I3(II)) =   ZTOT_CC_EVAP(I1(II),I2(II),I3(II))   + Z_CC_EVAP(II)  * ZMAXTIME(II)
-- 
GitLab