From 0037070ce784629f12263e782d5c7c90e482ecda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr> Date: Tue, 14 Jun 2022 13:05:15 +0200 Subject: [PATCH] S. Riette 14/06/2022 Bugfixes for unphysical points --- src/common/micro/mode_ice4_nucleation.F90 | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/common/micro/mode_ice4_nucleation.F90 b/src/common/micro/mode_ice4_nucleation.F90 index 8cf213442..3135a3a67 100644 --- a/src/common/micro/mode_ice4_nucleation.F90 +++ b/src/common/micro/mode_ice4_nucleation.F90 @@ -105,14 +105,16 @@ END WHERE !$mnh_end_expand_where(JI=1:KSIZE) ZZW(:)=0. -!$mnh_expand_where(JI=1:KSIZE) -WHERE(GNEGT(:) .AND. PT(:)<CST%XTT-5.0 .AND. ZSSI(:)>0.0 ) - ZZW(:)=ICEP%XNU20*EXP(ICEP%XALPHA2*ZSSI(:)-ICEP%XBETA2) -ELSEWHERE(GNEGT(:) .AND. PT(:)<=CST%XTT-2.0 .AND. PT(:)>=CST%XTT-5.0 .AND. ZSSI(:)>0.0) - ZZW(:)=MAX(ICEP%XNU20*EXP(-ICEP%XBETA2 ), & - ICEP%XNU10*EXP(-ICEP%XBETA1*(PT(:)-CST%XTT))*(ZSSI(:)/ZUSW(:))**ICEP%XALPHA1) -END WHERE -!$mnh_end_expand_where(JI=1:KSIZE) +DO JI=1,KSIZE + IF(GNEGT(JI)) THEN + IF(PT(JI)<CST%XTT-5.0 .AND. ZSSI(JI)>0.0) THEN + ZZW(JI)=ICEP%XNU20*EXP(ICEP%XALPHA2*ZSSI(JI)-ICEP%XBETA2) + ELSEIF(PT(JI)<=CST%XTT-2.0 .AND. PT(JI)>=CST%XTT-5.0 .AND. ZSSI(JI)>0.0) THEN + ZZW(JI)=MAX(ICEP%XNU20*EXP(-ICEP%XBETA2 ), & + ICEP%XNU10*EXP(-ICEP%XBETA1*(PT(JI)-CST%XTT))*(ZSSI(JI)/ZUSW(JI))**ICEP%XALPHA1) + ENDIF + ENDIF +ENDDO !$mnh_expand_where(JI=1:KSIZE) WHERE(GNEGT(:)) ZZW(:)=ZZW(:)-PCIT(:) @@ -144,7 +146,9 @@ IF(PARAMI%LFEEDBACKT) THEN !$mnh_end_expand_where(JI=1:KSIZE) ENDIF !$mnh_expand_where(JI=1:KSIZE) -PCIT(:)=MAX(ZZW(:)+PCIT(:), PCIT(:)) +WHERE(GNEGT(:)) + PCIT(:)=MAX(ZZW(:)+PCIT(:), PCIT(:)) +END WHERE !$mnh_end_expand_where(JI=1:KSIZE) ! IF (LHOOK) CALL DR_HOOK('ICE4_NUCLEATION', 1, ZHOOK_HANDLE) -- GitLab