diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index 452113c95439e64ed6de56aec3ca1d3d1aa3bebe..2db58775a1df9264f96549ce0c598725d5a69932 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -148,7 +148,7 @@ USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALP USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,& XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,& XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS,XNS_L=>XNS, & - XLBDAS_MAX,XLBDAS_MIN + XLBDAS_MAX_L=>XLBDAS_MAX,XLBDAS_MIN_L=>XLBDAS_MIN,XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS USE MODD_PARAM_LIMA_MIXED, ONLY: XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,& 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,& @@ -166,7 +166,8 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEX XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,& XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,& XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,& - XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA + XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA, & + XLBDAS_MAX_I=>XLBDAS_MAX,XLBDAS_MIN_I=>XLBDAS_MIN,XTRANS_MP_GAMMAS_I=>XTRANS_MP_GAMMAS USE MODD_REF_n, ONLY: XRHODREF USE MODD_TIME, only: tdtexp USE MODD_TIME_n, only: tdtcur @@ -1182,14 +1183,21 @@ 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).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) + IF (JLOOP.EQ.5 .AND. (CCLOUD=='LIMA'.AND.LSNOW_T_L) ) THEN + IF (ZTEMPZ(JK)>XTT-10.) THEN + ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L ELSE - ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN) + ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L END IF ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB + ELSE IF (JLOOP.EQ.5 .AND. (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) THEN + IF (ZTEMPZ(JK)>XTT-10.) THEN + ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I + ELSE + ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I + END IF + ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB + ELSE ZLBDA=ZLB*(ZRHODREFZ(JK)*ZRZ(JK,JLOOP))**ZLBEX ZN=ZCC*ZLBDA**ZCX diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90 index be6756c48b54a2549553ce70e6dc6b068d66b30a..e838af284ef178dbc183326e7d8163ecd2e515be 100644 --- a/src/MNH/lidar.f90 +++ b/src/MNH/lidar.f90 @@ -17,7 +17,7 @@ REAL, INTENT(IN) :: PALT ! Altitude of the lidar source REAL, INTENT(IN) :: PWVL ! Wavelength of the lidar source REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Altitude REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! Air density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Air temperature (C) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Air temperature REAL, DIMENSION(:,:,:), INTENT(IN) :: PCLDFR ! Cloud fraction REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! Moist variables at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLIDAROUT ! Lidar output @@ -101,10 +101,11 @@ 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, XNS, & + XCCS, XCXS, XLBEXS, XLBS, WNS=>XNS, WBS=>XBS, & XCCG, XCXG, XLBEXG, XLBG, & XCCH, XCXH, XLBEXH, XLBH, & - WRTMIN=>XRTMIN + WRTMIN=>XRTMIN, & + WLBDAS_MAX=>XLBDAS_MAX,WLBDAS_MIN=>XLBDAS_MIN,WTRANS_MP_GAMMAS=>XTRANS_MP_GAMMAS USE MODD_ICE_C1R3_DESCR, ONLY : XLBEXI, & YRTMIN=>XRTMIN, YCTMIN=>XCTMIN ! @@ -114,8 +115,8 @@ USE MODD_PARAM_LIMA, ONLY : URTMIN=>XRTMIN, UCTMIN=>XCTMIN, & UALPHAI=>XALPHAI,UNUI=>XNUI, & USNOW_T=>LSNOW_T USE MODD_PARAM_LIMA_COLD, ONLY : UCCS=>XCCS, UCXS=>XCXS, ULBEXS=>XLBEXS, & - ULBS=>XLBS, UNS=>XNS, & - XLBDAS_MAX,XLBDAS_MIN, UBS=>XBS + ULBS=>XLBS, UNS=>XNS, UBS=>XBS, & + ULBDAS_MAX=>XLBDAS_MAX,ULBDAS_MIN=>XLBDAS_MIN,UTRANS_MP_GAMMAS=>XTRANS_MP_GAMMAS USE MODD_PARAM_LIMA_MIXED,ONLY : UCCG=>XCCG, UCXG=>XCXG, ULBEXG=>XLBEXG, & ULBG=>XLBG @@ -134,7 +135,7 @@ REAL, INTENT(IN) :: PALT ! Altitude of the lidar source REAL, INTENT(IN) :: PWVL ! Wavelength of the lidar source REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Altitude REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! Air density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Air temperature (C) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Air temperature REAL, DIMENSION(:,:,:), INTENT(IN) :: PCLDFR ! Cloud fraction REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! Moist variables at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLIDAROUT ! Lidar output @@ -273,7 +274,7 @@ SELECT CASE ( HCLOUD ) ZCXS = XCXS ZLBEXS = XLBEXS ZLBS = XLBS - ZNS = XNS + ZNS = WNS ZCCG = XCCG ZCXG = XCXG ZLBEXG = XLBEXG @@ -530,14 +531,20 @@ SELECT CASE ( HCLOUD ) ! YDSD = 'MONOD' ZIWC = PRHO(JI,JJ,JK)*PRT(JI,JJ,JK,5) - 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) + IF (HCLOUD=='LIMA' .AND. USNOW_T) THEN + IF (PT(JI,JJ,JK)>263.15) THEN + ZLBDAS = MAX(MIN(ULBDAS_MAX, 10**(14.554-0.0423*PT(JI,JJ,JK))),ULBDAS_MIN)*UTRANS_MP_GAMMAS ELSE - ZLBDAS = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PT(JI,JJ,JK)+273.15))),XLBDAS_MIN) + ZLBDAS = MAX(MIN(ULBDAS_MAX, 10**(6.226-0.0106*PT(JI,JJ,JK))),ULBDAS_MIN)*UTRANS_MP_GAMMAS END IF ZCONC=ZNS*ZIWC*ZLBDAS**UBS + ELSE IF (HCLOUD=='ICE3' .AND. WSNOW_T) THEN + IF (PT(JI,JJ,JK)>263.15) THEN + ZLBDAS = MAX(MIN(WLBDAS_MAX, 10**(14.554-0.0423*PT(JI,JJ,JK))),WLBDAS_MIN)*WTRANS_MP_GAMMAS + ELSE + ZLBDAS = MAX(MIN(WLBDAS_MAX, 10**(6.226-0.0106*PT(JI,JJ,JK))),WLBDAS_MIN)*WTRANS_MP_GAMMAS + END IF + ZCONC=ZNS*ZIWC*ZLBDAS**WBS ELSE ZLBDAS = ZLBS*(ZIWC)**ZLBEXS ZCONC = ZCCS*(ZLBDAS)**ZCXS diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90 index 1e307b9eaa5f86571552630438a476abab2cc7c7..72b30a9b8e66030154a40c738e0ef9644af37ffe 100644 --- a/src/MNH/profilern.f90 +++ b/src/MNH/profilern.f90 @@ -120,7 +120,7 @@ USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALP USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,& XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,XNS_L=>XNS,& XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS, & - XLBDAS_MIN,XLBDAS_MAX + XLBDAS_MAX_L=>XLBDAS_MAX,XLBDAS_MIN_L=>XLBDAS_MIN,XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS USE MODD_PARAM_LIMA_MIXED, ONLY: XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,& 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,& @@ -137,7 +137,8 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEX XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,& XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,& XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,& - XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA + XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA, & + XLBDAS_MAX_I=>XLBDAS_MAX,XLBDAS_MIN_I=>XLBDAS_MIN,XTRANS_MP_GAMMAS_I=>XTRANS_MP_GAMMAS ! ! IMPLICIT NONE @@ -746,12 +747,18 @@ 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).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) + IF (JLOOP.EQ.5 .AND. (CCLOUD=='LIMA'.AND.LSNOW_T_L) ) THEN + IF (ZTEMPZ(JK)>263.15) THEN + ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L ELSE - ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN) + ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L + END IF + ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB + ELSE IF (JLOOP.EQ.5 .AND. (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) THEN + IF (ZTEMPZ(JK)>263.15) THEN + ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I + ELSE + ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I END IF ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB ELSE diff --git a/src/MNH/radar_scattering.f90 b/src/MNH/radar_scattering.f90 index 2aa752e759dc9864de5a4b3cb350e0e26b833a25..6af42ddea74de97ccd581df49cb45635f5ff88eb 100644 --- a/src/MNH/radar_scattering.f90 +++ b/src/MNH/radar_scattering.f90 @@ -116,12 +116,14 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XDR_I=>XDR,XLBEXR XLBH_I=>XLBH,XCCH_I=>XCCH,XAH_I=>XAH,XBH_I=>XBH,XCXH_I=>XCXH,XCH_I=>XCH,& XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,& XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,& - XRTMIN_I=>XRTMIN + XRTMIN_I=>XRTMIN, & + XLBDAS_MAX_I=>XLBDAS_MAX,XLBDAS_MIN_I=>XLBDAS_MIN,XTRANS_MP_GAMMAS_I=>XTRANS_MP_GAMMAS !!LIMA USE MODD_PARAM_LIMA_WARM, ONLY: XDR_L=>XDR,XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XCR_L=>XCR USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,& XDS_L=>XDS,XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,XNS_L=>XNS,XAS_L=>XAS,XBS_L=>XBS,& - XCXS_L=>XCXS,XCS_L=>XCS,XLBDAS_MIN,XLBDAS_MAX + XCXS_L=>XCXS,XCS_L=>XCS,& + XLBDAS_MAX_L=>XLBDAS_MAX,XLBDAS_MIN_L=>XLBDAS_MIN,XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,& @@ -1287,11 +1289,18 @@ 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) .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) + IF (GLIMA .AND. LSNOW_T_L) THEN + IF (PT_RAY(JI,JEL,JAZ,JL,JH,JV)>263.15) THEN + ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L ELSE - ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PT_RAY(JI,JEL,JAZ,JL,JH,JV)+273.15))),XLBDAS_MIN) + ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(6.226-0.0106*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L + END IF + ZN=ZNS*ZM*ZLBDA**ZBS + ELSE IF (.NOT.GLIMA .AND. LSNOW_T_I) THEN + IF (PT_RAY(JI,JEL,JAZ,JL,JH,JV)>263.15) THEN + ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I + ELSE + ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(6.226-0.0106*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I END IF ZN=ZNS*ZM*ZLBDA**ZBS ELSE diff --git a/src/PHYEX/micro/radar_rain_ice.f90 b/src/PHYEX/micro/radar_rain_ice.f90 index c8ff0e2d5852f8aa36322e6ea2ae6718cf2ee9be..cf97a981ade422f5d257a46c93a48cf234056ce1 100644 --- a/src/PHYEX/micro/radar_rain_ice.f90 +++ b/src/PHYEX/micro/radar_rain_ice.f90 @@ -112,13 +112,14 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR, XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,XCS_I=>XCS,XDS_I=>XDS,& XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA,XCR_I=>XCR,XDR_I=>XDR,& XAH_I=>XAH,XLBH_I=>XLBH,XLBEXH_I=>XLBEXH,XCCH_I=>XCCH,& - XALPHAH_I=>XALPHAH,XNUH_I=>XNUH,XCXH_I=>XCXH,XDH_I=>XDH,XCH_I=>XCH,XBH_I=>XBH + XALPHAH_I=>XALPHAH,XNUH_I=>XNUH,XCXH_I=>XCXH,XDH_I=>XDH,XCH_I=>XCH,XBH_I=>XBH, & + XLBDAS_MAX_I=>XLBDAS_MAX,XLBDAS_MIN_I=>XLBDAS_MIN,XTRANS_MP_GAMMAS_I=>XTRANS_MP_GAMMAS USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,& XBC_L=>XBC,XAC_L=>XAC,XCR_L=>XCR,XDR_L=>XDR USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,& XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,XNS_L=>XNS,& XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS,XCS_L=>XCS,XDS_L=>XDS,& - XLBDAS_MIN,XLBDAS_MAX + XLBDAS_MAX_L=>XLBDAS_MAX,XLBDAS_MIN_L=>XLBDAS_MIN,XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,& XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG,& @@ -335,41 +336,43 @@ END IF ! IF (SIZE(PRT,4) >= 5) THEN IF ( (CCLOUD=='LIMA' .AND. LSNOW_T_L) ) 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)) - ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN) - END WHERE - WHERE(PTEMP(:,:,:)<=-10 .AND. PRT(:,:,:,5).GT.XRTMIN_L(5)) - ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN) - END WHERE - IF (NMOM_S.GE.2) THEN - ZN(:,:,:)=PCST(:,:,:) - ELSE - ZN(:,:,:)=XNS_L*PRHODREF(:,:,:)*PRT(:,:,:,5)*ZLBDA(:,:,:)**XBS_L - END IF - WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) ) - ZW(:,:,:) = ZEQICE*ZDMELT_FACT & - *1.E18*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_L,XNUS_L,ZEXP) - PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_L,XNUS_L,ZEXP+XDS_L) & - *1.E18*ZN(:,:,:)*XCS_L*(ZLBDA(:,:,:)**(-ZEXP-XDS_L)) - PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:) - END WHERE + ZDMELT_FACT = ( (6.0*XAS_L)/(XPI*XRHOLW) )**(2.0) + ZEXP = 2.0*XBS_L + WHERE(PTEMP(:,:,:)>263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_L(5)) + ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*PTEMP(:,:,:))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L + END WHERE + WHERE(PTEMP(:,:,:)<=263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_L(5)) + ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_L, 10**(6.226 -0.0106*PTEMP(:,:,:))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L + END WHERE + IF (NMOM_S.GE.2) THEN + ZN(:,:,:)=PCST(:,:,:) + ELSE + WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) ) + ZN(:,:,:)=XNS_L*PRHODREF(:,:,:)*PRT(:,:,:,5)*ZLBDA(:,:,:)**XBS_L + END WHERE + END IF + WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) ) + ZW(:,:,:) = ZEQICE*ZDMELT_FACT & + *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_L,XNUS_L,ZEXP) + PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_L,XNUS_L,ZEXP+XDS_L) & + *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*XCS_L*(ZLBDA(:,:,:)**(-ZEXP-XDS_L)) + PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:) + END WHERE ELSEIF ( (CCLOUD=='ICE3' .AND. LSNOW_T_I) ) THEN ZDMELT_FACT = ( (6.0*XAS_I)/(XPI*XRHOLW) )**(2.0) ZEXP = 2.0*XBS_I - WHERE(PTEMP(:,:,:)>-10. .AND. PRT(:,:,:,5).GT.XRTMIN_I(5)) - ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN) + WHERE(PTEMP(:,:,:)>263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_I(5)) + ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*PTEMP(:,:,:))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I END WHERE - WHERE(PTEMP(:,:,:)<=-10 .AND. PRT(:,:,:,5).GT.XRTMIN_I(5)) - ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN) + WHERE(PTEMP(:,:,:)<=263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_I(5)) + ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_I, 10**(6.226- 0.0106*PTEMP(:,:,:))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I END WHERE ZN(:,:,:)=XNS_I*PRHODREF(:,:,:)*PRT(:,:,:,5)*ZLBDA(:,:,:)**XBS_I WHERE( PRT(:,:,:,5).GT.XRTMIN_I(5) ) ZW(:,:,:) = ZEQICE*ZDMELT_FACT & - *1.E18*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_I,XNUS_I,ZEXP) + *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_I,XNUS_I,ZEXP) PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_I,XNUS_I,ZEXP+XDS_I) & - *1.E18*ZN(:,:,:)*XCS_I*(ZLBDA(:,:,:)**(-ZEXP-XDS_I)) + *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*XCS_I*(ZLBDA(:,:,:)**(-ZEXP-XDS_I)) PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:) END WHERE ELSEIF (CCLOUD=='LIMA') THEN