diff --git a/src/PHYEX/micro/mode_ice4_tendencies.f90 b/src/PHYEX/micro/mode_ice4_tendencies.f90 index b85db3a9861ddc67733f699a0042228b251f77a3..c2f59e5e198e902ebdf9fd1e71179780c60b5ed4 100644 --- a/src/PHYEX/micro/mode_ice4_tendencies.f90 +++ b/src/PHYEX/micro/mode_ice4_tendencies.f90 @@ -186,11 +186,21 @@ ELSE ! IF(PARAMI%CSNOWRIMING=='OLD ') THEN !$mnh_expand_where(JL=1:KSIZE) - WHERE(ZVART(1:KSIZE,IRS)>0.) - ZLBDAS(1:KSIZE) = MIN(ICED%XLBDAS_MAX, ICED%XLBS*(PRHODREF(1:KSIZE)*MAX(ZVART(1:KSIZE,IRS), ICED%XRTMIN(5)))**ICED%XLBEXS) - ELSEWHERE - ZLBDAS(1:KSIZE)=0. - END WHERE + IF (PARAMI%LSNOW_T) THEN + ZLBDAS(1:KSIZE)=0. + WHERE (ZVART(1:KSIZE,IRS)>0. .AND. ZT(1:KSIZE)>263.15) + ZLBDAS(1:KSIZE) = MAX(MIN(ICED%XLBDAS_MAX, 10**(14.554-0.0423*ZT(1:KSIZE))),ICED%XLBDAS_MIN)*ICED%XTRANS_MP_GAMMAS + END WHERE + WHERE (ZVART(1:KSIZE,IRS)>0. .AND. ZT(1:KSIZE)<=263.15) + ZLBDAS(1:KSIZE) = MAX(MIN(ICED%XLBDAS_MAX, 10**(6.226-0.0106*ZT(1:KSIZE))),ICED%XLBDAS_MIN)*ICED%XTRANS_MP_GAMMAS + END WHERE + ELSE + WHERE(ZVART(1:KSIZE,IRS)>0.) + ZLBDAS(1:KSIZE) = MIN(ICED%XLBDAS_MAX, ICED%XLBS*(PRHODREF(1:KSIZE)*MAX(ZVART(1:KSIZE,IRS), ICED%XRTMIN(5)))**ICED%XLBEXS) + ELSEWHERE + ZLBDAS(1:KSIZE)=0. + END WHERE + END IF !$mnh_end_expand_where(JL=1:KSIZE) CALL ICE4_RSRIMCG_OLD(CST, PARAMI, ICEP, ICED, KPROMA, KSIZE, ODSOFT, LDCOMPUTE, & &PRHODREF, & @@ -297,11 +307,21 @@ DO JL=1, KSIZE ELSE ZLBDAR_RF(JL)=ZLBDAR(JL) ENDIF - IF(ZVART(JL,IRS)>0.) THEN - ZLBDAS(JL)=MIN(ICED%XLBDAS_MAX, ICED%XLBS*(PRHODREF(JL)*MAX(ZVART(JL,IRS), ICED%XRTMIN(5)))**ICED%XLBEXS) + IF (PARAMI%LSNOW_T) THEN + IF (ZVART(JL,IRS)>0. .AND. ZT(JL)>263.15) THEN + ZLBDAS(:) = MAX(MIN(ICED%XLBDAS_MAX, 10**(14.554-0.0423*ZT(JL))),ICED%XLBDAS_MIN)*ICED%XTRANS_MP_GAMMAS + ELSE IF (ZVART(JL,IRS)>0. .AND. ZT(JL)<=263.15) THEN + ZLBDAS(:) = MAX(MIN(ICED%XLBDAS_MAX, 10**(6.226-0.0106*ZT(JL))),ICED%XLBDAS_MIN)*ICED%XTRANS_MP_GAMMAS + ELSE + ZLBDAS(JL)=0. + END IF ELSE + IF(ZVART(JL,IRS)>0.) THEN + ZLBDAS(JL)=MIN(ICED%XLBDAS_MAX, ICED%XLBS*(PRHODREF(JL)*MAX(ZVART(JL,IRS), ICED%XRTMIN(5)))**ICED%XLBEXS) + ELSE ZLBDAS(JL)=0. - ENDIF + ENDIF + END IF IF(ZVART(JL,IRG)>0.) THEN ZLBDAG(JL)=ICED%XLBG*(PRHODREF(JL)*MAX(ZVART(JL,IRG), ICED%XRTMIN(6)))**ICED%XLBEXG ELSE