diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index d16443626cb67a93351f0ba18be1f269e33db194..d2776c6a8f8ce9a56d25af00c7827a9d5a8d6339 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -167,6 +167,7 @@ END MODULE MODI_INI_BUDGET ! 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 +! P. Wautelet 01/02/2021: add missing source: VISC !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -189,6 +190,7 @@ USE MODD_PARAM_LIMA, ONLY : OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI, & ODEPOC=>LDEPOC, OPTSPLIT=>LPTSPLIT, & NMOD_CCN USE MODD_PARAM_n, only: CELEC +USE MODD_VISCOSITY, only: LVISC ! USE MODE_ll USE MODE_IO_ll @@ -488,6 +490,8 @@ IF (LBU_RU) THEN IPROC=IPROC+1 IF ( HSCONV == 'EDKF' ) IPROACTV(1,IPROC) = NMAFLU IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCU + IPROC=IPROC+1 IPROACTV(1,IPROC) = NADVU IPROC=IPROC+1 IPROACTV(1,IPROC) = NPRESU @@ -590,7 +594,9 @@ IF (LBU_RV) THEN END IF IPROC=IPROC+1 IF ( HSCONV == 'EDKF' ) IPROACTV(2,IPROC) = NMAFLV - IPROC=IPROC+1 + IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCV + IPROC=IPROC+1 IPROACTV(2,IPROC) = NADVV IPROC=IPROC+1 IPROACTV(2,IPROC) = NPRESV @@ -690,6 +696,8 @@ IF (LBU_RW) THEN END IF END IF IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCW + IPROC=IPROC+1 IPROACTV(3,IPROC) = NGRAVW IPROC=IPROC+1 IPROACTV(3,IPROC) = NADVW @@ -1180,7 +1188,9 @@ IF (LBU_RRV) THEN IPROACTV(6,IPROC) = NNETURRV IPROC=IPROC+1 IF ( HSCONV == 'EDKF' ) IPROACTV(6,IPROC) = NMAFLRV - IPROC=IPROC+1 + IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRV + IPROC=IPROC+1 IPROACTV(6,IPROC) = NADVRV IPROC=IPROC+1 IF ( HCLOUD == 'KESS' .OR. HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2' & @@ -1374,6 +1384,8 @@ IF (LBU_RRC) THEN .OR. HCLOUD == 'ICE3' .OR. HCLOUD == 'ICE4' .OR. HCLOUD == 'LIMA' ) ) & IPROACTV(7,IPROC) = NNETURRC IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRC + IPROC=IPROC+1 IPROACTV(7,IPROC) = NADVRC IPROC=IPROC+1 IF ( HCLOUD == 'KESS' .OR. HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2' & @@ -1647,6 +1659,8 @@ IF (LBU_RRR) THEN IF ( HTURB /= 'NONE' .AND. ( HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2' .OR. HCLOUD == 'LIMA' ) ) & IPROACTV(8,IPROC) = NNETURRR IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRR + IPROC=IPROC+1 IPROACTV(8,IPROC) = NADVRR IPROC=IPROC+1 IF ( HCLOUD == 'KESS' .OR. HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2' & @@ -1902,6 +1916,8 @@ IF (LBU_RRI) THEN IF ( HTURB /= 'NONE' .AND. ( HCLOUD == 'ICE3' .OR. HCLOUD == 'ICE4' .OR. HCLOUD == 'LIMA' ) ) & IPROACTV(9,IPROC) = NNETURRI IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRI + IPROC=IPROC+1 IPROACTV(9,IPROC) = NADVRI IPROC=IPROC+1 IF ( HCLOUD == 'KESS' .OR. HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2' & @@ -2128,6 +2144,8 @@ IF (LBU_RRS) THEN ! IF (HTURB /= 'NONE' .AND. ( (HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2') & ! .OR. (HCLOUD == 'ICE3') .OR. (HCLOUD == 'ICE4') .OR. (HCLOUD == 'LIMA') )) & ! IPROACTV(10,IPROC) = NNETURRS + IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRS IPROC= IPROC+1 IPROACTV(10,IPROC) = NADVRS IPROC=IPROC+1 @@ -2316,6 +2334,8 @@ IF (LBU_RRG) THEN ! IF (HTURB /= 'NONE' .AND. ( (HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2') & ! .OR. (HCLOUD == 'ICE3') .OR. (HCLOUD == 'ICE4') .OR. (HCLOUD == 'LIMA') )) & ! IPROACTV(11,IPROC) = NNETURRG + IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRG IPROC=IPROC+1 IPROACTV(11,IPROC) = NADVRG IPROC=IPROC+1 @@ -2527,6 +2547,8 @@ IF (LBU_RRH) THEN ! IF (HTURB /= 'NONE' .AND. ( (HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2') & ! .OR. (HCLOUD == 'ICE3') .OR. (HCLOUD == 'ICE4') .OR. (HCLOUD == 'LIMA') )) & ! IPROACTV(12,IPROC) = NNETURRH + IPROC=IPROC+1 + IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRH IPROC=IPROC+1 IPROACTV(12,IPROC) = NADVRH IPROC=IPROC+1 @@ -2982,6 +3004,9 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV ! SELECT CASE(JSV) @@ -3012,6 +3037,9 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3039,6 +3067,9 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3082,6 +3113,9 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3123,6 +3157,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3237,6 +3274,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3338,6 +3378,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3377,6 +3420,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3397,6 +3443,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3418,6 +3467,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3522,6 +3574,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3556,6 +3611,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3577,6 +3635,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3598,6 +3659,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3624,6 +3688,9 @@ 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV @@ -3846,6 +3913,9 @@ ELSE IF (JSV >= NSV_CHEMBEG .AND. JSV <= NSV_CHEMEND) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3860,6 +3930,9 @@ ELSE IF (JSV >= NSV_AERBEG .AND. JSV <= NSV_AEREND) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + 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 @@ -3872,6 +3945,9 @@ ELSE IF (JSV >= NSV_AERBEG .AND. JSV <= NSV_AEREND) THEN 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)= 'VISC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV END IF diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index 40cb7c46c644a954bea2c4235d0cacfab014f9df..15d0bf3938f7e08bdcaad5669a6bf752c6b5bc68 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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. @@ -45,6 +45,7 @@ ! 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 +! P. Wautelet 01/02/2021: add missing source: VISC !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -181,7 +182,8 @@ LOGICAL, SAVE :: LBU_RU ! True when the budget of RU is performed ! INTEGER, SAVE :: NASSEU ! time filter INTEGER, SAVE :: NNESTU ! Efffect of 2way nesting on U -INTEGER, SAVE :: NADVU ! advection +INTEGER, SAVE :: NVISCU ! viscosity +INTEGER, SAVE :: NADVU ! advection INTEGER, SAVE :: NFRCU ! forcing INTEGER, SAVE :: NNUDU ! nudging INTEGER, SAVE :: NCURVU ! curvature @@ -202,7 +204,8 @@ LOGICAL, SAVE :: LBU_RV ! True when the budget of RV is performed ! INTEGER, SAVE :: NASSEV ! time filter INTEGER, SAVE :: NNESTV ! Efffect of 2way nesting on V -INTEGER, SAVE :: NADVV ! advection +INTEGER, SAVE :: NVISCV ! viscosity +INTEGER, SAVE :: NADVV ! advection INTEGER, SAVE :: NFRCV ! forcing INTEGER, SAVE :: NNUDV ! nudging INTEGER, SAVE :: NCURVV ! curvature @@ -223,6 +226,7 @@ LOGICAL, SAVE :: LBU_RW ! True when the budget of RW is performed ! INTEGER, SAVE :: NASSEW ! time filter INTEGER, SAVE :: NNESTW ! Efffect of 2way nesting on W +INTEGER, SAVE :: NVISCW ! viscosity INTEGER, SAVE :: NADVW ! advection INTEGER, SAVE :: NFRCW ! forcing INTEGER, SAVE :: NNUDW ! nudging @@ -243,6 +247,7 @@ LOGICAL, SAVE :: LBU_RTH ! True when the budget of RTH is performed ! INTEGER, SAVE :: NASSETH ! time filter INTEGER, SAVE :: NNESTTH ! Efffect of 2way nesting on Th +INTEGER, SAVE :: NVISCTH ! viscosity INTEGER, SAVE :: NADVTH ! Total advection for PPM INTEGER, SAVE :: NFRCTH ! forcing INTEGER, SAVE :: N2DADVTH ! 2d advecting forcing @@ -317,6 +322,7 @@ LOGICAL, SAVE :: LBU_RRV ! true when the budget of RRV is performed ! INTEGER, SAVE :: NASSERV ! time filter INTEGER, SAVE :: NNESTRV ! Effect of 2way nesting on Rv +INTEGER, SAVE :: NVISCRV ! viscosity INTEGER, SAVE :: NADVRV ! Total advection for PPM INTEGER, SAVE :: NFRCRV ! forcing INTEGER, SAVE :: N2DADVRV ! 2d advecting forcing @@ -352,6 +358,7 @@ LOGICAL, SAVE :: LBU_RRC ! True when the budget of RRC is performed ! INTEGER, SAVE :: NASSERC ! time filter INTEGER, SAVE :: NNESTRC ! Efffect of 2way nesting on Rc +INTEGER, SAVE :: NVISCRC ! viscosity INTEGER, SAVE :: NADVRC ! Total advection for PPM INTEGER, SAVE :: NFRCRC ! forcing INTEGER, SAVE :: NDIFRC ! numerical diffusion @@ -397,6 +404,7 @@ LOGICAL, SAVE :: LBU_RRR ! True when the budget of RRR is performed ! INTEGER, SAVE :: NASSERR ! time filter INTEGER, SAVE :: NNESTRR ! Efffect of 2way nesting on Rr +INTEGER, SAVE :: NVISCRR ! viscosity INTEGER, SAVE :: NADVRR ! Total advection for PPM INTEGER, SAVE :: NFRCRR ! forcing INTEGER, SAVE :: NDIFRR ! numerical diffusion @@ -432,6 +440,7 @@ LOGICAL, SAVE :: LBU_RRI ! True when the budget of RRI is performed ! INTEGER, SAVE :: NASSERI ! time filter INTEGER, SAVE :: NNESTRI ! Efffect of 2way nesting on Ri +INTEGER, SAVE :: NVISCRI ! viscosity INTEGER, SAVE :: NADVRI ! Total advection for PPM INTEGER, SAVE :: NFRCRI ! forcing INTEGER, SAVE :: NDIFRI ! numerical diffusion @@ -476,6 +485,7 @@ LOGICAL, SAVE :: LBU_RRS ! True when the budget of RRS is performed ! INTEGER, SAVE :: NASSERS ! time filter INTEGER, SAVE :: NNESTRS ! Efffect of 2way nesting on Rs +INTEGER, SAVE :: NVISCRS ! viscosity INTEGER, SAVE :: NADVRS ! Total advection for PPM INTEGER, SAVE :: NFRCRS ! forcing INTEGER, SAVE :: NDIFRS ! numerical diffusion @@ -508,6 +518,7 @@ LOGICAL, SAVE :: LBU_RRG ! True when the budget of RRG is performed ! INTEGER, SAVE :: NASSERG ! time filter INTEGER, SAVE :: NNESTRG ! Efffect of 2way nesting on Rg +INTEGER, SAVE :: NVISCRG ! viscosity INTEGER, SAVE :: NADVRG ! Total advection for PPM INTEGER, SAVE :: NFRCRG ! forcing INTEGER, SAVE :: NDIFRG ! numerical diffusion @@ -543,6 +554,7 @@ LOGICAL, SAVE :: LBU_RRH ! True when the budget of RRH is performed ! INTEGER, SAVE :: NASSERH ! time filter INTEGER, SAVE :: NNESTRH ! Efffect of 2way nesting on Rh +INTEGER, SAVE :: NVISCRH ! viscosity INTEGER, SAVE :: NADVRH ! Total advection for PPM INTEGER, SAVE :: NFRCRH ! forcing INTEGER, SAVE :: NDIFRH ! numerical diffusion @@ -567,6 +579,7 @@ LOGICAL, SAVE :: LBU_RSV ! True when the budget of RSVx is performed ! INTEGER, SAVE :: NASSESV ! Asselin-Robert time filter INTEGER, SAVE :: NNESTSV ! Efffect of 2way nesting on Sv +INTEGER, SAVE :: NVISCSV ! viscosity INTEGER, SAVE :: NADVSV ! Total advection for PPM INTEGER, SAVE :: NFRCSV ! forcing INTEGER, SAVE :: NDIFSV ! numerical diffusion diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90 index 52bc31721e72572a8efae724e3159f561ae41a17..81df8dd20fde37e75f754b257f02b1fb42222ddd 100644 --- a/src/MNH/modn_budget.f90 +++ b/src/MNH/modn_budget.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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. @@ -227,6 +227,7 @@ !! S. Riette 11/2016 New budgets for ICE3/ICE4 ! 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 +! P. Wautelet 01/02/2021: add missing source: VISC !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -239,16 +240,16 @@ IMPLICIT NONE NAMELIST/NAM_BUDGET/CBUTYPE, NBUMOD, XBULEN, NBUKL, NBUKH, LBU_KCP, XBUWRI, & NBUIL, NBUIH, NBUJL, NBUJH, LBU_ICP, LBU_JCP, NBUMASK ! -NAMELIST/NAM_BU_RU/LBU_RU, NASSEU, NNESTU, NADVU, NFRCU, NNUDU, & +NAMELIST/NAM_BU_RU/LBU_RU, NASSEU, NNESTU, NVISCU, NADVU, NFRCU, NNUDU, & NCURVU, NCORU, NDIFU, NRELU, NDRAGU, NHTURBU, NVTURBU, NMAFLU, NPRESU ! -NAMELIST/NAM_BU_RV/LBU_RV, NASSEV, NNESTV, NADVV, NFRCV, NNUDV, & +NAMELIST/NAM_BU_RV/LBU_RV, NASSEV, NNESTV, NVISCV, NADVV, NFRCV, NNUDV, & NCURVV, NCORV, NDIFV, NRELV, NDRAGV, NHTURBV, NVTURBV, NMAFLV, NPRESV -NAMELIST/NAM_BU_RW/LBU_RW, NASSEW, NNESTW, NADVW, NFRCW, NNUDW, & +NAMELIST/NAM_BU_RW/LBU_RW, NASSEW, NNESTW, NVISCW, NADVW, NFRCW, NNUDW, & NCURVW, NCORW, NGRAVW, NDIFW, NRELW, NHTURBW, NVTURBW, NPRESW ! -NAMELIST/NAM_BU_RTH/LBU_RTH, NASSETH, NNESTTH, NADVTH, NFRCTH, & +NAMELIST/NAM_BU_RTH/LBU_RTH, NASSETH, NNESTTH, NVISCTH, NADVTH, NFRCTH, & NNUDTH, NPREFTH, NDIFTH, NRELTH, NRADTH, NDCONVTH, NHTURBTH, & NVTURBTH, NDISSHTH, NNEGATH, NREVATH, NCONDTH, NHENUTH, NHONTH, & NSFRTH, NDEPSTH, NDEPGTH,NRIMTH, NACCTH, NCFRZTH, NWETGTH, & @@ -260,12 +261,12 @@ NAMELIST/NAM_BU_RTKE/LBU_RTKE, NASSETKE, NADVTKE, & NFRCTKE, NDIFTKE, NRELTKE, NDRAGTKE, & NDPTKE, NTPTKE, NDISSTKE, NTRTKE ! -NAMELIST/NAM_BU_RRV/LBU_RRV, NASSERV, NNESTRV, NADVRV, NFRCRV, & +NAMELIST/NAM_BU_RRV/LBU_RRV, NASSERV, NNESTRV, NVISCRV, NADVRV, NFRCRV, & NNUDRV, NDIFRV, NRELRV, NDCONVRV, NHTURBRV, NVTURBRV, NNEGARV, & NREVARV, NCONDRV, NHENURV, NDEPSRV, NDEPGRV, NCDEPIRV, NMAFLRV, & NNETURRV, NNEADVRV,NNECONRV, NADJURV, NCORRRV, NHINDRV, NHONHRV, NCEDSRV ! -NAMELIST/NAM_BU_RRC/LBU_RRC, NASSERC, NNESTRC, NADVRC, NFRCRC, & +NAMELIST/NAM_BU_RRC/LBU_RRC, NASSERC, NNESTRC, NVISCRC, NADVRC, NFRCRC, & NDIFRC, NRELRC, NDCONVRC, NHTURBRC, NVTURBRC, NNEGARC, NACCRRC, & NAUTORC, NCONDRC, NHONRC, NRIMRC, NWETGRC, NDRYGRC, NIMLTRC, & NBERFIRC, NCDEPIRC, NHENURC, NSEDIRC, NWETHRC, NNETURRC, & @@ -273,13 +274,13 @@ NAMELIST/NAM_BU_RRC/LBU_RRC, NASSERC, NNESTRC, NADVRC, NFRCRC, & NHINCRC, NHONCRC, NCEDSRC, NREVARC, NDEPORC,NDEPOTRRC, & NCORRRC, NR2C1RC, NCVRCRC ! -NAMELIST/NAM_BU_RRR/LBU_RRR, NASSERR, NNESTRR, NADVRR, NFRCRR, & +NAMELIST/NAM_BU_RRR/LBU_RRR, NASSERR, NNESTRR, NVISCRR, NADVRR, NFRCRR, & NDIFRR, NRELRR, NNEGARR, NACCRRR, NAUTORR, NREVARR, NSEDIRR, & NSFRRR, NACCRR, NCFRZRR, NWETGRR, NDRYGRR, NGMLTRR, NWETHRR, & NHMLTRR, NDRYHRR, NCORRRR, NCMELRR,NHONRRR, NCORRRR, NR2C1RR, NCVRCRR, & NNETURRR, NNEADVRR, NNECONRR ! -NAMELIST/NAM_BU_RRI/LBU_RRI, NASSERI, NNESTRI, NADVRI, NFRCRI, & +NAMELIST/NAM_BU_RRI/LBU_RRI, NASSERI, NNESTRI, NVISCRI, NADVRI, NFRCRI, & NDIFRI, NRELRI, NDCONVRI, NHTURBRI, NVTURBRI, NNEGARI, NSEDIRI, & NHENURI, NHONRI, NAGGSRI, NAUTSRI, NCFRZRI, NWETGRI, NDRYGRI, & NIMLTRI, NBERFIRI, NCDEPIRI, NWETHRI, NDRYHRI, NADJURI, NCORRRI, & @@ -287,24 +288,24 @@ NAMELIST/NAM_BU_RRI/LBU_RRI, NASSERI, NNESTRI, NADVRI, NFRCRI, & NHMSRI, NHMGRI, NCEDSRI, NCORRRI, & NNETURRI, NNEADVRI, NNECONRI ! -NAMELIST/NAM_BU_RRS/LBU_RRS, NASSERS, NNESTRS, NADVRS, NFRCRS, & +NAMELIST/NAM_BU_RRS/LBU_RRS, NASSERS, NNESTRS, NVISCRS, NADVRS, NFRCRS, & NDIFRS, NRELRS, NNEGARS, NSEDIRS, NDEPSRS, NAGGSRS, NAUTSRS, & NRIMRS, NACCRS, NCMELRS, NWETGRS, NDRYGRS, NWETHRS, NDRYHRS, & NCORRRS, NCNVIRS, NCNVSRS, NHMSRS, NCORRRS, & NNETURRS, NNEADVRS, NNECONRS ! -NAMELIST/NAM_BU_RRG/LBU_RRG, NASSERG, NNESTRG, NADVRG, NFRCRG, & +NAMELIST/NAM_BU_RRG/LBU_RRG, NASSERG, NNESTRG, NVISCRG, NADVRG, NFRCRG, & NDIFRG, NRELRG, NNEGARG, NSEDIRG, NSFRRG, NDEPGRG, NRIMRG, NACCRG, & NCMELRG, NCFRZRG, NWETGRG, NDRYGRG, NGMLTRG, NWETHRG, & NDRYHRG, NCORRRG, NHGCVRG, NGHCVRG,NHONRRG, NHMGRG, NCOHGRG, & NNETURRG, NNEADVRG, NNECONRG ! -NAMELIST/NAM_BU_RRH/LBU_RRH, NASSERH, NNESTRH, NADVRH, NFRCRH, & +NAMELIST/NAM_BU_RRH/LBU_RRH, NASSERH, NNESTRH, NVISCRH, NADVRH, NFRCRH, & NDIFRH, NRELRH, NNEGARH, NSEDIRH, NWETGRH, NWETHRH, NDRYHRH, NHMLTRH, & NCORRRH, NHGCVRH, NGHCVRH, NCOHGRH, NHMLTRH, & NNETURRH, NNEADVRH, NNECONRH ! -NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NADVSV, NFRCSV, & +NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NVISCSV, NADVSV, NFRCSV, & NDIFSV, NRELSV, NDCONVSV, NVTURBSV, NHTURBSV, NCHEMSV, NMAFLSV, & NNEGASV, NNETURSV, NNEADVSV, NNECONSV, & NDEPSQV, NDEPGQV, NREVAQV, NCDEPIQV, NNEUTQV, &