From 6f1d302121ec3e139f5ae756e4cb2fc861135130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr> Date: Wed, 7 Sep 2022 14:46:30 +0200 Subject: [PATCH] include latest bugfixes from personal folder --- src/MNH/ini_lima_cold_mixed.f90 | 2 +- src/MNH/lima_conversion_melting_snow.f90 | 2 +- src/MNH/lima_droplets_riming_snow.f90 | 8 +++----- src/MNH/lima_ice_aggregation_snow.f90 | 4 ++-- src/MNH/lima_ice_deposition.f90 | 3 +-- src/MNH/lima_snow_deposition.f90 | 11 +++++------ 6 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90 index 1de589480..cc0a3cbb8 100644 --- a/src/MNH/ini_lima_cold_mixed.f90 +++ b/src/MNH/ini_lima_cold_mixed.f90 @@ -771,7 +771,7 @@ XITAUTS_THRESHOLD = 7.5 !* 6.4 Constants for snow aggregation ! XCOLEXIS = 0.05 ! Temperature factor of the I+S collection efficiency -XFIAGGS = XNS*(XPI/4.0)*0.25*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0) +XFIAGGS = (XPI/4.0)*0.25*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0) XEXIAGGS = -XDS - 2.0 XAGGS_CLARGE1 = XKER_ZRNIC_A2*ZGAMI(2) XAGGS_CLARGE2 = XKER_ZRNIC_A2*ZGAMS(2) diff --git a/src/MNH/lima_conversion_melting_snow.f90 b/src/MNH/lima_conversion_melting_snow.f90 index 9b6bf0912..454df3eba 100644 --- a/src/MNH/lima_conversion_melting_snow.f90 +++ b/src/MNH/lima_conversion_melting_snow.f90 @@ -114,7 +114,7 @@ WHERE( (PRST(:)>XRTMIN(5)) .AND. (PT(:)>XTT) .AND. LDCOMPUTE(:) ) ! ZW(:) = XFSCVMG*MAX( 0.0,( -ZW(:) * PCST(:) * & ( X0DEPS*PLBDS(:)**XEX0DEPS + & - X1DEPS*PCJ(:)*PLBDS(:)**(XEX1DEPS+XBS)* & + X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS * & (1+0.5*(XFVELOS/PLBDS(:))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)) )) ! On ne tient pas compte de la collection de pluie et gouttelettes par la neige si T>0 !!!! ! Note that no heat is exchanged because the graupeln produced are still icy!!! diff --git a/src/MNH/lima_droplets_riming_snow.f90 b/src/MNH/lima_droplets_riming_snow.f90 index ae585bbf1..b9d765365 100644 --- a/src/MNH/lima_droplets_riming_snow.f90 +++ b/src/MNH/lima_droplets_riming_snow.f90 @@ -132,7 +132,7 @@ DO JI = 1, SIZE(PRCT) IF ( PRCT(JI)>XRTMIN(2) .AND. PRST(JI)>XRTMIN(5) .AND. PT(JI)<XTT .AND. LDCOMPUTE(JI) ) THEN ! ZVEC1(JI) = PLBDS(JI) - ZVEC1W(JI)= ( XFVELOS**XALPHAS + PLBDS(JI)**XALPHAS ) ** (1./XALPHAS) ! modified equivalent lambda + ZVEC1W(JI)= ( XFVELOS**XALPHAS + PLBDS(JI)**XALPHAS ) ** (1./XALPHAS) ! modified equivalent lambda ! ! 2. perform the linear interpolation of the normalized ! "2+XDS"-moment of the incomplete gamma function using the modified equivalent lambda @@ -142,9 +142,8 @@ DO JI = 1, SIZE(PRCT) IVEC2(JI) = INT( ZVEC2(JI) ) ZVEC2(JI) = ZVEC2(JI) - REAL( IVEC2(JI) ) ! - ZVEC1(JI) = XGAMINC_RIM1( IVEC2(JI)+1 )* ZVEC2(JI) & + ZZW1(JI) = XGAMINC_RIM1( IVEC2(JI)+1 )* ZVEC2(JI) & - XGAMINC_RIM1( IVEC2(JI) )*(ZVEC2(JI) - 1.0) - ZZW1(JI) = ZVEC1(JI) ! ! 3. perform the linear interpolation of the normalized ! "XBS"-moment of the incomplete gamma function @@ -154,9 +153,8 @@ DO JI = 1, SIZE(PRCT) IVEC2(JI) = INT( ZVEC2(JI) ) ZVEC2(JI) = ZVEC2(JI) - REAL( IVEC2(JI) ) ! - ZVEC1(JI) = XGAMINC_RIM2( IVEC2(JI)+1 )* ZVEC2(JI) & + ZZW2(JI) = XGAMINC_RIM2( IVEC2(JI)+1 )* ZVEC2(JI) & - XGAMINC_RIM2( IVEC2(JI) )*(ZVEC2(JI) - 1.0) - ZZW2(JI) = ZVEC1(JI) ! ! 4. riming ! diff --git a/src/MNH/lima_ice_aggregation_snow.f90 b/src/MNH/lima_ice_aggregation_snow.f90 index 8268c17d6..beb9ac95b 100644 --- a/src/MNH/lima_ice_aggregation_snow.f90 +++ b/src/MNH/lima_ice_aggregation_snow.f90 @@ -108,9 +108,9 @@ IF (NMOM_I.EQ.1) THEN WHERE ( PRIT(:)>XRTMIN(4) .AND. PRST(:)>XRTMIN(5) .AND. LDCOMPUTE(:) ) ZZW1(:) = XFIAGGS * EXP( XCOLEXIS*(PT(:)-XTT) ) & * PRIT(:) & - * PRST(:) * (1+(XFVELOS/PLBDS(:))**XALPHAS)**(-XNUS+XEXIAGGS/XALPHAS) & + * PCST(:) * (1+(XFVELOS/PLBDS(:))**XALPHAS)**(-XNUS+XEXIAGGS/XALPHAS) & * PRHODREF(:)**(-XCEXVT+1.) & - * ((PLBDS(:))**(XBS+XEXIAGGS)) + * PLBDS(:)**XEXIAGGS ! P_RI_AGGS(:) = - ZZW1(:) END WHERE diff --git a/src/MNH/lima_ice_deposition.f90 b/src/MNH/lima_ice_deposition.f90 index 2b46227b8..b9ca8ed75 100644 --- a/src/MNH/lima_ice_deposition.f90 +++ b/src/MNH/lima_ice_deposition.f90 @@ -78,8 +78,7 @@ USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, XALPHAI, XALPHAS, XNUI, XNUS,& USE MODD_PARAM_LIMA_COLD, ONLY : XCXS, XCCS, & XLBDAS_MAX, XDSCNVI_LIM, XLBDASCNVI_MAX, & XC0DEPSI, XC1DEPSI, XR0DEPSI, XR1DEPSI, & - XSCFAC, X1DEPS, X0DEPS, XEX1DEPS, XEX0DEPS, & - XDICNVS_LIM, XLBDAICNVS_LIM, & + XSCFAC, XDICNVS_LIM, XLBDAICNVS_LIM, & XC0DEPIS, XC1DEPIS, XR0DEPIS, XR1DEPIS, & XCOLEXIS, XAGGS_CLARGE1, XAGGS_CLARGE2, & XAGGS_RLARGE1, XAGGS_RLARGE2, & diff --git a/src/MNH/lima_snow_deposition.f90 b/src/MNH/lima_snow_deposition.f90 index 0531a3a4a..3bd8d0141 100644 --- a/src/MNH/lima_snow_deposition.f90 +++ b/src/MNH/lima_snow_deposition.f90 @@ -110,7 +110,6 @@ REAL, DIMENSION(:), INTENT(OUT) :: P_RS_DEPS LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GMICRO ! Computations only where necessary REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW, ZZW2, ZZX ! Work array ! -! !------------------------------------------------------------------------------- ! P_RI_CNVI(:) = 0. @@ -128,9 +127,9 @@ IF (NMOM_I.EQ.1) THEN ! ZZW(:) = 0.0 WHERE ( PRST(:)>XRTMIN(5) ) - ZZW(:) = PRST(:) * PSSI(:) / PAI(:) * & - ( X0DEPS*PLBDS(:)**XEX0DEPS + & - X1DEPS*PLBDS(:)**(XEX1DEPS+XBS)*PCJ(:) * & + ZZW(:) = PCST(:) * PSSI(:) / PAI(:) * & + ( X0DEPS*PLBDS(:)**XEX0DEPS + & + X1DEPS*PLBDS(:)**XEX1DEPS *PCJ(:) * & (1+0.5*(XFVELOS/PLBDS(:))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS) ) ZZW(:) = ZZW(:)*(0.5+SIGN(0.5,ZZW(:))) - ABS(ZZW(:))*(0.5-SIGN(0.5,ZZW(:))) END WHERE @@ -165,8 +164,8 @@ ELSE ! ZZW(:) = 0.0 WHERE ( PRST(:)>XRTMIN(5) .AND. PCST(:)>XCTMIN(5) ) - ZZW(:) = ( PCST(:)*PSSI(:)/(PAI(:)) ) * & - ( X0DEPS*PLBDS(:)**XEX0DEPS + & + ZZW(:) = ( PCST(:)*PSSI(:)/PAI(:) ) * & + ( X0DEPS*PLBDS(:)**XEX0DEPS + & ( X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS * & (1+0.5*(XFVELOS/PLBDS(:))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)) ) ZZW(:) = ZZW(:)*(0.5+SIGN(0.5,ZZW(:))) - ABS(ZZW(:))*(0.5-SIGN(0.5,ZZW(:))) -- GitLab