From dc52e32e0bef9ec78b15a55e5356d4d621fb8cd1 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 1 Feb 2021 13:34:08 +0100
Subject: [PATCH] Philippe 01/02/2021: bugfix: add missing CEDS source terms
 for SV budgets

(cherry picked from commit f8464d61a3d7c1159af55aba278167274948773f)
---
 src/MNH/ini_budget.f90  | 17 +++++++++++++++++
 src/MNH/lima_adjust.f90 | 11 ++++++++++-
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index d2776c6a8..345745dfe 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -168,6 +168,7 @@ END MODULE MODI_INI_BUDGET
 !  P. Wautelet 06/07/2020: bugfix: add condition on HTURB for NETUR sources for SV budgets
 !  P. Wautelet 01/02/2021: bugfix: manage correctly MAFL and ADV source for SV budgets
 !  P. Wautelet 01/02/2021: add missing source: VISC
+!  P. Wautelet 01/02/2021: bugfix: add missing CEDS source terms for SV budgets
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -3432,6 +3433,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NECON_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV
 
@@ -3454,6 +3458,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV
+      IF ( OSCAV .AND. OAERO_MASS ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NECON_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV
@@ -3623,6 +3632,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NECON_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV
 
@@ -3646,6 +3658,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV
+      IF ( OCOLD ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NECON_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV
diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90
index 68bffde7f..5c0e09f62 100644
--- a/src/MNH/lima_adjust.f90
+++ b/src/MNH/lima_adjust.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-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.
@@ -137,6 +137,7 @@ END MODULE MODI_LIMA_ADJUST
 !!      JP Chaboureau *LA*   March 2014  fix the calculation of icy cloud fraction
 !  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 28/05/2020: bugfix: correct array start for PSVT and PSVS
+!  P. Wautelet 01/02/2021: bugfix: add missing CEDS source terms for SV budgets
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -1205,14 +1206,22 @@ IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN
   IF (LBUDGET_SV) THEN
     CALL BUDGET (PCCS(:,:,:)   * PRHODJ(:,:,:),12+NSV_LIMA_NC,'CEDS_BU_RSV') ! RCC
     CALL BUDGET (PCIS(:,:,:)   * PRHODJ(:,:,:),12+NSV_LIMA_NI,'CEDS_BU_RSV') ! RCI
+    IF ( LSCAV .AND. LAERO_MASS ) CALL BUDGET (PMAS(:,:,:) * PRHODJ(:,:,:),12+NSV_LIMA_SCAVMASS,'CEDS_BU_RSV')
     IF (NMOD_CCN .GE. 1) THEN
        DO JL = 1, NMOD_CCN
           CALL BUDGET (PNFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'CEDS_BU_RSV') ! RCC
+          CALL BUDGET (PNAS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_ACTI+JL-1,'CEDS_BU_RSV')
        END DO
     END IF
     IF (NMOD_IFN .GE. 1) THEN
        DO JL = 1, NMOD_IFN
           CALL BUDGET (PIFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'CEDS_BU_RSV') ! RCC
+          CALL BUDGET (PINS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_NUCL+JL-1,'CEDS_BU_RSV')
+       END DO
+    END IF
+    IF ( LCOLD .AND. NMOD_IMM .GE. 1 ) THEN
+       DO JL = 1, NMOD_IMM
+          CALL BUDGET (PNIS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IMM_NUCL+JL-1,'CEDS_BU_RSV') ! RCC
        END DO
     END IF
   END IF
-- 
GitLab