From d7ac06a029ca585af505e616e446855e0ee222b7 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 25 Mar 2020 11:30:32 +0100 Subject: [PATCH] Philippe 25/03/2020: budgets: add missing ove_relax_grd conditions in ini_budget --- src/MNH/ini_budget.f90 | 51 ++++++++++++++++++++++++------------------ src/MNH/ini_modeln.f90 | 3 ++- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index bae23231d..911ab2fe0 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -11,7 +11,8 @@ INTERFACE ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & - OHORELAX_SV,OVE_RELAX,OCHTRANS,ONUDGING,ODRAGTREE,ODEPOTREE, & + OHORELAX_SV, OVE_RELAX, ove_relax_grd, OCHTRANS, & + ONUDGING,ODRAGTREE,ODEPOTREE, & HRAD,HDCONV,HSCONV,HTURB,HTURBDIM,HCLOUD ) ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints @@ -44,7 +45,9 @@ LOGICAL,DIMENSION(:),INTENT(IN):: OHORELAX_SV ! switch for the ! horizontal relaxation for scalar variables LOGICAL, INTENT(IN) :: OVE_RELAX ! switch to activate the vertical ! relaxation -LOGICAL, INTENT(IN) :: OCHTRANS ! switch to activate convective +logical, intent(in) :: ove_relax_grd ! switch to activate the vertical + ! relaxation to the lowest verticals +LOGICAL, INTENT(IN) :: OCHTRANS ! switch to activate convective !transport for SV LOGICAL, INTENT(IN) :: ONUDGING ! switch to activate nudging LOGICAL, INTENT(IN) :: ODRAGTREE ! switch to activate vegetation drag @@ -70,7 +73,8 @@ END MODULE MODI_INI_BUDGET ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & - OHORELAX_SV,OVE_RELAX,OCHTRANS,ONUDGING,ODRAGTREE,ODEPOTREE, & + OHORELAX_SV, OVE_RELAX, ove_relax_grd, OCHTRANS, & + ONUDGING,ODRAGTREE,ODEPOTREE, & HRAD,HDCONV,HSCONV,HTURB,HTURBDIM,HCLOUD ) ! ################################################################# ! @@ -156,7 +160,8 @@ END MODULE MODI_INI_BUDGET ! P. Wautelet 24/02/2020: bugfix: corrected condition for budget NCDEPITH ! P. Wautelet 26/02/2020: bugfix: rename CEVA->REVA for budget for raindrop evaporation in C2R2 (necessary after commit 4ed805fc) ! P. Wautelet 26/02/2020: bugfix: add missing condition on OCOLD for NSEDIRH budget in LIMA case -! B. Vie 02/03/2020 : LIMA negativity checks after turbulence, advection and microphysics budgets +! B. Vie 02/03/2020: LIMA negativity checks after turbulence, advection and microphysics budgets +! P. Wautelet 25/03/2020: add missing ove_relax_grd !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -218,7 +223,9 @@ LOGICAL,DIMENSION(:),INTENT(IN):: OHORELAX_SV ! switch for the ! horizontal relaxation for scalar variables LOGICAL, INTENT(IN) :: OVE_RELAX ! switch to activate the vertical ! relaxation -LOGICAL, INTENT(IN) :: OCHTRANS ! switch to activate convective +logical, intent(in) :: ove_relax_grd ! switch to activate the vertical + ! relaxation to the lowest verticals +LOGICAL, INTENT(IN) :: OCHTRANS ! switch to activate convective !transport for SV LOGICAL, INTENT(IN) :: ONUDGING ! switch to activate nudging LOGICAL, INTENT(IN) :: ODRAGTREE ! switch to activate vegetation drag @@ -447,10 +454,10 @@ IF (LBU_RU) THEN IPROC=IPROC+1 IF ( ONUMDIFU ) IPROACTV(1,IPROC) = NDIFU IPROC=IPROC+1 - IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN + IF ( OHORELAX_UVWTH .OR. OVE_RELAX .or. ove_relax_grd) THEN IPROACTV(1,IPROC) = NRELU ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(1,IPROC) = 4 @@ -550,10 +557,10 @@ IF (LBU_RV) THEN IPROC=IPROC+1 IF ( ONUMDIFU ) IPROACTV(2,IPROC) = NDIFV IPROC=IPROC+1 - IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN + IF ( OHORELAX_UVWTH .OR. OVE_RELAX .or. ove_relax_grd ) THEN IPROACTV(2,IPROC) = NRELV ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(2,IPROC) = 4 @@ -653,10 +660,10 @@ IF (LBU_RW) THEN IPROC=IPROC+1 IF ( ONUMDIFU ) IPROACTV(3,IPROC) = NDIFW IPROC=IPROC+1 - IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN + IF ( OHORELAX_UVWTH .OR. OVE_RELAX .or. ove_relax_grd ) THEN IPROACTV(3,IPROC) = NRELW ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(3,IPROC) = 4 @@ -750,10 +757,10 @@ IF (LBU_RTH) THEN IPROC=IPROC+1 IF ( ONUMDIFTH ) IPROACTV(4,IPROC) = NDIFTH IPROC=IPROC+1 - IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN + IF ( OHORELAX_UVWTH .OR. OVE_RELAX .or. ove_relax_grd ) THEN IPROACTV(4,IPROC) = NRELTH ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(4,IPROC) = 4 @@ -1062,7 +1069,7 @@ IF (LBU_RTKE) THEN IF ( OHORELAX_TKE ) THEN IPROACTV(5,IPROC) = NRELTKE ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(5,IPROC) = 4 @@ -1141,7 +1148,7 @@ IF (LBU_RRV) THEN IF ( OHORELAX_RV .OR. OVE_RELAX ) THEN IPROACTV(6,IPROC) = NRELRV ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD.OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(6,IPROC) = 4 @@ -1336,7 +1343,7 @@ IF (LBU_RRC) THEN IF ( OHORELAX_RC ) THEN IPROACTV(7,IPROC) = NRELRC ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(7,IPROC) = 4 @@ -1629,7 +1636,7 @@ IF (LBU_RRR) THEN IF ( OHORELAX_RR ) THEN IPROACTV(8,IPROC) = NRELRR ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD.OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(8,IPROC) = 4 @@ -1871,7 +1878,7 @@ IF (LBU_RRI) THEN IF ( OHORELAX_RI ) THEN IPROACTV(9,IPROC) = NRELRI ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(9,IPROC) = 4 @@ -2113,7 +2120,7 @@ IF (LBU_RRS) THEN IF ( OHORELAX_RS ) THEN IPROACTV(10,IPROC) = NRELRS ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(10,IPROC) = 4 @@ -2302,7 +2309,7 @@ IF (LBU_RRG) THEN IF ( OHORELAX_RG ) THEN IPROACTV(11,IPROC) = NRELRG ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(11,IPROC) = 4 @@ -2514,7 +2521,7 @@ IF (LBU_RRH) THEN IF ( OHORELAX_RH ) THEN IPROACTV(12,IPROC) = NRELRH ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(12,IPROC) = 4 @@ -2661,7 +2668,7 @@ IF (LBU_RSV) THEN IF ( OHORELAX_SV(JSV) ) THEN IPROACTV(12+JSV,IPROC) = NRELSV ELSE - IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & + IF(OVE_RELAX .OR. OVE_RELAX_GRD .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR. & OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR. & OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN IPROACTV(12+JSV,IPROC) = 4 diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index d9b1a256e..161742b5b 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -1660,7 +1660,8 @@ IF ( CBUTYPE /= "NONE" .AND. NBUMOD == KMI ) THEN LNUMDIFU,LNUMDIFTH,LNUMDIFSV, & LHORELAX_UVWTH,LHORELAX_RV, LHORELAX_RC,LHORELAX_RR, & LHORELAX_RI,LHORELAX_RS,LHORELAX_RG, LHORELAX_RH,LHORELAX_TKE, & - LHORELAX_SV,LVE_RELAX,LCHTRANS,LNUDGING,LDRAGTREE,LDEPOTREE, & + LHORELAX_SV,LVE_RELAX,LVE_RELAX_GRD, & + LCHTRANS,LNUDGING,LDRAGTREE,LDEPOTREE, & CRAD,CDCONV,CSCONV,CTURB,CTURBDIM,CCLOUD ) END IF ! -- GitLab