From 602ab31a32e2f647b42efdfdfb0d54d612c054bd Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 1 Feb 2021 10:51:21 +0100
Subject: [PATCH] Philippe 01/02/2021: bugfix: manage correctly MAFL and ADV
 source for SV budgets

(cherry picked from commit 713faee9cf707be3fe3b33ac02fc08267080d209)
---
 src/MNH/ini_budget.f90 | 40 +++++++++++++++++++++++++++++++++-------
 1 file changed, 33 insertions(+), 7 deletions(-)

diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 33615bd99..d16443626 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -166,6 +166,7 @@ END MODULE MODI_INI_BUDGET
 !  P. Wautelet 30/06/2020: use NADVSV when possible
 !  P. Wautelet 30/06/2020: add NNETURSV, NNEADVSV and NNECONSV variables
 !  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
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -2977,6 +2978,12 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
 !
   IF (JSV <= NSV_USER) THEN
     ! NSV_USER Case
+    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+    YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
+    IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
+    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+    YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
+    IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
 !   SELECT CASE(JSV)
 !   CASE (1)
 !     ILAST_PROC_NBR = ILAST_PROC_NBR + 1
@@ -3614,6 +3621,13 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
 
 
 ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN
+   ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+   YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
+   IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
+   ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+   YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
+   IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
+
    SELECT CASE(JSV-NSV_ELECBEG+1)
    CASE(1)  ! volumetric charge of water vapor
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
@@ -3827,27 +3841,39 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN
 !
 ELSE IF (JSV >= NSV_CHEMBEG .AND. JSV <= NSV_CHEMEND) THEN
     ! Chemical Case
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CHEM_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NCHEMSV
     ! other processes
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
+      IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CHEM_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = NCHEMSV
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV
 !
 ELSE IF (JSV >= NSV_AERBEG .AND. JSV <= NSV_AEREND) THEN
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
+      IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV
  !
   ELSE
-    ! other processes
-    ! ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-    ! YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
-    ! IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV      
+  ! other processes
+    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+    YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
+    IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
+    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+    YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
+    IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
   END IF
   !
   END SUBROUTINE BUDGET_OTHERPROC_SV
-- 
GitLab