diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 934b3447a3e135da7947c7fb823d1907f91b83fa..a554e967f003a65d25b075efa39da3ead31f85cc 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -1,8 +1,7 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2020 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! _Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/default_desfmn.f90,v _ !----------------------------------------------------------------- ! ########################### MODULE MODI_DEFAULT_DESFM_n @@ -230,7 +229,8 @@ END MODULE MODI_DEFAULT_DESFM_n !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! 05/2019 F.Brient add tracer emission from the top of the boundary-layer !! 11/2019 C.Lac correction in the drag formula and application to building in addition to tree -!! +! P. Wautelet 30/06/2020: add NNETURSV, NNEADVSV and NNECONSV variables +! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -881,7 +881,10 @@ IF (KMI == 1) THEN NHTURBSV = 0 NCHEMSV = 0 NNEGASV = 0 - NDEPOTRSV = 0 + NNETURSV = 0 + NNEADVSV = 0 + NNECONSV = 0 + NDEPOTRSV = 0 ! ! END IF diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index f27ce802b632ac9e3904a8907a6325f2edd16758..15178bbfc50b46ab5cb21cbad0a566d1c285de6a 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -164,6 +164,7 @@ END MODULE MODI_INI_BUDGET ! P. Wautelet 25/03/2020: add missing ove_relax_grd ! 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 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -3006,13 +3007,13 @@ 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3026,25 +3027,25 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV IF (.NOT. LSUPSAT) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'HENU_' - END IF IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'SELF_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 @@ -3066,17 +3067,17 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3099,7 +3100,7 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV END SELECT ! ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN @@ -3108,13 +3109,13 @@ 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3213,19 +3214,19 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV ! ELSE IF (JSV == NSV_LIMA_NR) THEN ! Rain drops conc. ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3311,19 +3312,19 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NECON_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV ! ELSE IF (JSV.GE.NSV_LIMA_CCN_FREE .AND. JSV.LT.(NSV_LIMA_CCN_FREE+NMOD_CCN)) THEN ! Free CCN conc. ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3342,7 +3343,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV IF (OSCAV) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'SCAV_' @@ -3353,48 +3354,48 @@ 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 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)= 'NECON_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 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)= 'NECON_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV ELSE IF (JSV == NSV_LIMA_NI) 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3483,19 +3484,19 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV ! ELSE IF (JSV.GE.NSV_LIMA_IFN_FREE .AND. JSV.LT.(NSV_LIMA_IFN_FREE+NMOD_IFN)) THEN ! Free IFN conc. ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3509,7 +3510,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV IF (OSCAV) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'SCAV_' @@ -3520,49 +3521,49 @@ 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 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)= 'NECON_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV ELSE IF (JSV.GE.NSV_LIMA_IMM_NUCL .AND. JSV.LT.(NSV_LIMA_IMM_NUCL+NMOD_IMM)) THEN ! Nucleated IMM conc. ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NETUR_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 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)= 'NECON_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV ELSE IF (JSV == NSV_LIMA_HOM_HAZE) 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) = 1 + 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 ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEADV_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEADVSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV @@ -3573,7 +3574,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NECON_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNECONSV END IF diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index c39a3436d7a650e609d81ab92ee5980d08bbd581..6d0fe284b5547afc95e41824b4048567acbbcb7f 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2020 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ################## MODULE MODD_BUDGET ! ################## @@ -41,8 +42,9 @@ !! C. Barthe /16 add budget terms for LIMA !! C. LAc 10/2016 add droplets deposition !! S. Riette 11/2016 New budgets for ICE3/ICE4 -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! B.Vie 03/02/2020 : LIMA negativity checks after turbulence, advection and microphysics budgets +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! B. Vié 03/02/2020: LIMA negativity checks after turbulence, advection and microphysics budgets +! P. Wautelet 30/06/2020: add NNETURSV, NNEADVSV and NNECONSV variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -576,7 +578,10 @@ INTEGER, SAVE :: NHTURBSV ! horizontal turbulence INTEGER, SAVE :: NVTURBSV ! vertical turbulence INTEGER, SAVE :: NCHEMSV ! chemistry activity ! -INTEGER, SAVE :: NNEGASV +INTEGER, SAVE :: NNEGASV ! negative correction +INTEGER, SAVE :: NNETURSV ! negative correction +INTEGER, SAVE :: NNEADVSV ! negative correction +INTEGER, SAVE :: NNECONSV ! negative correction ! ! Allowed processes for the budget of electric charge carried by water vapor INTEGER, SAVE :: NDEPSQV diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90 index 2e0f1f4ec6433fd184ddcb835902edc3aebb13cc..257e023032c00b2e1bf54986b3845ff225422455 100644 --- a/src/MNH/modn_budget.f90 +++ b/src/MNH/modn_budget.f90 @@ -225,7 +225,8 @@ !! C. Barthe /16 add budget terms for LIMA !! C.Lac 10/2016 Add droplet deposition !! S. Riette 11/2016 New budgets for ICE3/ICE4 -!! B.Vie 03/02/2020 LIMA negativity checks after turbulence, advection and microphysics budgets +! B. Vié 03/02/2020: LIMA negativity checks after turbulence, advection and microphysics budgets +! P. Wautelet 30/06/2020: add NNETURSV, NNEADVSV and NNECONSV variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -305,7 +306,7 @@ NAMELIST/NAM_BU_RRH/LBU_RRH, NASSERH, NNESTRH, NADVRH, NFRCRH, & ! NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NADVSV, NFRCSV, & NDIFSV, NRELSV, NDCONVSV, NVTURBSV, NHTURBSV, NCHEMSV, NMAFLSV, & - NNEGASV, & + NNEGASV, NNETURSV, NNEADVSV, NNECONSV, & NDEPSQV, NDEPGQV, NREVAQV, NCDEPIQV, NNEUTQV, & NAUTOQC, NACCRQC, NRIMQC, NWETGQC, NDRYGQC, NIMLTQC, NBERFIQC, & NCDEPIQC, NSEDIQC, NNEUTQC, &