diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index 43cab9ac901b4752c7356fb9065625063441901a..aa0a13bf2ffc514375f355960a1fe6d750e5d481 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -154,6 +154,7 @@ USE MODD_PARAM_LIMA_MIXED, ONLY: XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,& XBC_L=>XBC,XAC_L=>XAC USE MODD_PARAM_n, ONLY: CCLOUD, CSURF +USE MODD_PARAM_ICE, ONLY: LSNOW_T_I=>LSNOW_T USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,& XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,& XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,& @@ -1179,7 +1180,8 @@ IF ( TPFLYER%FLY) THEN ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX) ENDIF END SELECT - IF (JLOOP.EQ.5 .AND. CCLOUD=='LIMA' .AND. LSNOW_T_L) THEN + IF (JLOOP.EQ.5 .AND. ( (CCLOUD=='LIMA'.AND.LSNOW_T_L).OR. & + (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) ) THEN IF (ZTEMPZ(JK)>-10.) THEN ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN) ELSE diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index f4bd710aef357565cfb643fc017db7b7068baeb5..758eebf0f943d56b148782520062b060910e8d81 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -872,7 +872,8 @@ IF (KMI == 1) THEN CFRAC_ICE_SHALLOW_MF = 'S' LSEDIM_AFTER = .FALSE. LDEPOSC = .FALSE. - XVDEPOSC= 0.02 ! 2 cm/s + XVDEPOSC= 0.02 ! 2 cm/s + LSNOW_T=.FALSE. END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ice4_tendencies.f90 b/src/MNH/ice4_tendencies.f90 index f012b218457c4d71c3b38153c6baa048d9d3eaf4..c4ec3d69c0b26966c7b4e6f0a226a8e28bcd91db 100644 --- a/src/MNH/ice4_tendencies.f90 +++ b/src/MNH/ice4_tendencies.f90 @@ -181,7 +181,7 @@ SUBROUTINE ICE4_TENDENCIES(KSIZE, KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, K ! ------------ ! USE MODD_CST, ONLY: XALPI,XBETAI,XCI,XCPV,XEPSILO,XGAMI,XLSTT,XMD,XMV,XP00,XRV,XTT -USE MODD_PARAM_ICE, ONLY: CSNOWRIMING +USE MODD_PARAM_ICE, ONLY: CSNOWRIMING,LSNOW_T USE MODD_RAIN_ICE_DESCR, ONLY: XLBDAS_MAX,XLBEXG,XLBEXH,XLBEXR,XLBEXS,XLBG,XLBH,XLBR,XLBS,XRTMIN USE MODD_RAIN_ICE_PARAM, ONLY: XSCFAC ! diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90 index 1bee4acda2df0fdadc0b7db79d7b24dc5679c0eb..a7b0bf94d598c56b4f72a3acd6480f51138a99fe 100644 --- a/src/MNH/lidar.f90 +++ b/src/MNH/lidar.f90 @@ -99,6 +99,7 @@ USE MODD_RAIN_C2R2_DESCR, ONLY : XLBEXC, XLBEXR, & XRTMIN, XCTMIN USE MODD_PARAM_C2R2, ONLY : YALPHAC=>XALPHAC,YNUC=>XNUC, & YALPHAR=>XALPHAR,YNUR=>XNUR +USE MODD_PARAM_ICE, ONLY: WSNOW_T=>LSNOW_T USE MODD_RAIN_ICE_DESCR, ONLY : XCCR, WLBEXR=>XLBEXR, XLBR, & XCCS, XCXS, XLBEXS, XLBS, & XCCG, XCXG, XLBEXG, XLBG, & @@ -527,7 +528,8 @@ SELECT CASE ( HCLOUD ) ! YDSD = 'MONOD' ZIWC = PRHO(JI,JJ,JK)*PRT(JI,JJ,JK,5) - IF (HCLOUD=='LIMA' .AND. USNOW_T) THEN + IF ( (HCLOUD=='LIMA' .AND. USNOW_T) .OR. & + (HCLOUD=='ICE3' .AND. WSNOW_T) ) THEN IF (PT(JI,JJ,JK)>-10.) THEN ZLBDAS = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PT(JI,JJ,JK)+273.15))),XLBDAS_MIN) ELSE diff --git a/src/MNH/modd_param_ice.f90 b/src/MNH/modd_param_ice.f90 index ddafd7516ed3313d0295d5c0b69fed2851f71783..ade107121eeb6c60d406147a6a09d104b67b59f6 100644 --- a/src/MNH/modd_param_ice.f90 +++ b/src/MNH/modd_param_ice.f90 @@ -78,6 +78,7 @@ LOGICAL, SAVE :: LSEDIM_AFTER ! sedimentation done before (.FALSE.) or after (.T ! REAL, SAVE :: XSPLIT_MAXCFL ! Maximum CFL number allowed for SPLIT scheme ! +LOGICAL,SAVE :: LSNOW_T ! Snow parameterization from Wurtz (2021) !------------------------------------------------------------------------------- ! END MODULE MODD_PARAM_ICE diff --git a/src/MNH/modd_rain_ice_descr.f90 b/src/MNH/modd_rain_ice_descr.f90 index e754d5a8fac2aad39b74863d924df9df760a27a6..789a251c87e825c19bdcd08119d12b1ed97795b1 100644 --- a/src/MNH/modd_rain_ice_descr.f90 +++ b/src/MNH/modd_rain_ice_descr.f90 @@ -76,7 +76,6 @@ REAL,SAVE :: XALPHAS,XNUS,XLBEXS,XLBS ! Snow/agg. distribution parameters REAL,SAVE :: XALPHAG,XNUG,XLBEXG,XLBG ! Graupel distribution parameters REAL,SAVE :: XALPHAH,XNUH,XLBEXH,XLBH ! Hail distribution parameters ! -LOGICAL,SAVE :: LSNOW_T ! Snow parameterization from Wurtz (2021) REAL,SAVE :: XFVELOS ! factor for snow fall speed after Thompson (2008) REAL,SAVE :: XTRANS_MP_GAMMAS ! coefficient to convert lambdas for gamma function ! diff --git a/src/MNH/modn_param_ice.f90 b/src/MNH/modn_param_ice.f90 index 0c7379b3b0f75b233ba679e0d2469ce3a759e0cd..085f74d7381939312012e03d5f1cf082779e233d 100644 --- a/src/MNH/modn_param_ice.f90 +++ b/src/MNH/modn_param_ice.f90 @@ -26,6 +26,6 @@ NAMELIST/NAM_PARAM_ICE/LWARM,LSEDIC,LCONVHG,CPRISTINE_ICE,CSEDIM,LDEPOSC,XVDEPOS LEVLIMIT,LNULLWETG,LWETGPOST,LNULLWETH,LWETHPOST, & CSNOWRIMING,XFRACM90,NMAXITER,XMRSTEP,XTSTEP_TS, & LADJ_BEFORE, LADJ_AFTER, CFRAC_ICE_ADJUST, LCRFLIMIT, & - XSPLIT_MAXCFL, CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER + XSPLIT_MAXCFL, CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER, LSNOW_T ! END MODULE MODN_PARAM_ICE diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90 index e2025c5784c58355b198a1fe13c185e5c1513a1f..997562e4fca562d22a6875e636244257abfc050d 100644 --- a/src/MNH/profilern.f90 +++ b/src/MNH/profilern.f90 @@ -121,6 +121,7 @@ USE MODD_PARAM_LIMA_MIXED, ONLY: XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,& XBC_L=>XBC,XAC_L=>XAC +USE MODD_PARAM_ICE, ONLY: LSNOW_T_I=>LSNOW_T USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,& XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,& XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,& @@ -726,7 +727,8 @@ IF (GSTORE) THEN ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX) ENDIF END SELECT - IF (JLOOP.EQ.5 .AND. CCLOUD=='LIMA' .AND. LSNOW_T_L) THEN + IF (JLOOP.EQ.5 .AND. ( (CCLOUD=='LIMA'.AND.LSNOW_T_L).OR. & + (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) ) THEN IF (ZTEMPZ(JK)>-10.) THEN ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN) ELSE diff --git a/src/MNH/radar_rain_ice.f90 b/src/MNH/radar_rain_ice.f90 index b42848f56435fe5c695e7e015d2498379abe4ac1..bd892a45293a32fc6296d13677bf88c111230fa3 100644 --- a/src/MNH/radar_rain_ice.f90 +++ b/src/MNH/radar_rain_ice.f90 @@ -96,6 +96,7 @@ END MODULE MODI_RADAR_RAIN_ICE ! USE MODD_CST USE MODD_REF +USE MODD_PARAM_ICE, ONLY: LSNOW_T_I=>LSNOW_T USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,& XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,& XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,& @@ -328,7 +329,8 @@ END IF ! --------------- ! IF (SIZE(PRT,4) >= 5) THEN - IF (CCLOUD=='LIMA' .AND. LSNOW_T_L) THEN + IF ( (CCLOUD=='LIMA' .AND. LSNOW_T_L) .OR. & + (CCLOUD=='ICE3' .AND. LSNOW_T_I) ) THEN ZDMELT_FACT = ( (6.0*XAS_L)/(XPI*XRHOLW) )**(2.0) ZEXP = 2.0*XBS_L WHERE(PTEMP(:,:,:)>-10. .AND. PRT(:,:,:,5).GT.XRTMIN_L(5)) diff --git a/src/MNH/radar_scattering.f90 b/src/MNH/radar_scattering.f90 index 413bbbb92e5c520ecce803e2b9dfd9e45a4ded9e..4d6537af5ea199b904980a1ae2b8c694b40817c6 100644 --- a/src/MNH/radar_scattering.f90 +++ b/src/MNH/radar_scattering.f90 @@ -105,6 +105,7 @@ USE MODD_CST USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS +USE MODD_PARAM_ICE, ONLY: LSNOW_T_I=>LSNOW_T USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XDR_I=>XDR,XLBEXR_I=>XLBEXR,& XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XCR_I=>XCR,& XALPHAS_I=>XALPHAS,XNUS_I=>XNUS,XDS_I=>XDS,XLBEXS_I=>XLBEXS,& @@ -1284,7 +1285,7 @@ DO JI=1,INBRAD ZDMELT_FACT=6.*ZAS/(XPI*.92*XRHOLW) ZEXP=2.*ZBS !XBS = 1.9 in ini_radar.f90 (bj tab 2.1 p24) !dans ini_rain_ice.f90 : - IF (GLIMA .AND. LSNOW_T_L) THEN + IF ( (GLIMA .AND. LSNOW_T_L) .OR. (.NOT.GLIMA .AND. LSNOW_T_I) ) THEN IF (PT_RAY(JI,JEL,JAZ,JL,JH,JV)>-10.) THEN ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PT_RAY(JI,JEL,JAZ,JL,JH,JV)+273.15))),XLBDAS_MIN) ELSE diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index a44c3af43c419dd7b329d586e7dafffc1b1cb709..4e378d3aa53e609eb766d432d34ca501166db8c7 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -273,8 +273,8 @@ use modd_budget, only: lbu_enable, USE MODD_CST, ONLY: XCI,XCL,XCPD,XCPV,XLSTT,XLVTT,XTT USE MODD_PARAMETERS, ONLY: JPVEXT,XUNDEF USE MODD_PARAM_ICE, ONLY: CSUBG_PR_PDF,CSUBG_RC_RR_ACCR,CSUBG_RR_EVAP,LDEPOSC,LFEEDBACKT,LSEDIM_AFTER, & - NMAXITER,XMRSTEP,XTSTEP_TS,XVDEPOSC -USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN,XLBDAS_MIN,XLBDAS_MAX,XTRANS_MP_GAMMAS,LSNOW_T + NMAXITER,XMRSTEP,XTSTEP_TS,XVDEPOSC,LSNOW_T +USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN,XLBDAS_MIN,XLBDAS_MAX,XTRANS_MP_GAMMAS USE MODD_VAR_ll, ONLY: IP use mode_budget, only: Budget_store_add, Budget_store_init, Budget_store_end