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