From 6f825c5aec872118b2b119807ed6515ae176fd68 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 6 Jul 2020 16:12:46 +0200
Subject: [PATCH] Philippe 06/07/2020: bugfix: budgets: add condition on HTURB
 for NETUR sources for SV budgets

(cherry picked from commit d7dfd2109504401fe641b11c725bcf6838eb242d)
---
 src/MNH/ini_budget.f90 | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 907a8d1d6..011ef3d27 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -166,6 +166,7 @@ END MODULE MODI_INI_BUDGET
 !  P. Wautelet + Benoit ViƩ 11/06/2020: improve removal of negative scalar variables + adapt the corresponding budgets
 !  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
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -3003,7 +3004,7 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
     CASE (1)                               ! Concentration of activated nuclei
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3027,7 +3028,7 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
     CASE (2)                               ! Concentration of cloud droplets
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3067,7 +3068,7 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
     CASE (3)                               ! Concentration of raindrops
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3105,7 +3106,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Cloud droplets conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3216,7 +3217,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Rain drops conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3314,7 +3315,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Free CCN conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3350,7 +3351,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Activated CCN conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3367,7 +3368,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
    ELSE IF (JSV == NSV_LIMA_SCAVMASS) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3385,7 +3386,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Pristine ice crystals conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3486,7 +3487,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Free IFN conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3517,7 +3518,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Nucleated IFN conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3535,7 +3536,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Nucleated IMM conc.
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3553,7 +3554,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ! Homogeneous freezing of CCN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
+      IF ( HTURB /= 'NONE' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NNETURSV
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
-- 
GitLab