From 275c8706b960f0bf4f732f2ab94ac0c8e72003e8 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Wed, 19 Jul 2023 16:37:56 +0200
Subject: [PATCH] Expand by hand functions COUNT() for ISIZE micro + add limits
 for ANY() on ice4_pack

---
 src/common/micro/mode_ice4_pack.F90 | 2 +-
 src/common/micro/rain_ice.F90       | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/common/micro/mode_ice4_pack.F90 b/src/common/micro/mode_ice4_pack.F90
index 60da0e31e..c434a4a2e 100644
--- a/src/common/micro/mode_ice4_pack.F90
+++ b/src/common/micro/mode_ice4_pack.F90
@@ -234,7 +234,7 @@ IF(PARAMI%LPACK_MICRO) THEN
   
       ! Setup packing parameters
       OUTER_LOOP: DO JK = ISTK, IKTE
-        IF (ANY(ODMICRO(:,JK))) THEN
+        IF (ANY(ODMICRO(IIJB:IIJE,JK))) THEN
           DO JIJ = ISTIJ, IIJE
             IF (ODMICRO(JIJ,JK)) THEN
               IC=IC+1
diff --git a/src/common/micro/rain_ice.F90 b/src/common/micro/rain_ice.F90
index 48a652e51..92a9ed01e 100644
--- a/src/common/micro/rain_ice.F90
+++ b/src/common/micro/rain_ice.F90
@@ -493,7 +493,12 @@ ENDIF
 !               ----------------------
 !
 IF(PARAMI%LPACK_MICRO) THEN
-  ISIZE=COUNT(LLMICRO) ! Number of points with active microphysics
+  ISIZE=0
+  DO JK=1,D%NKT
+    DO JIJ=1,D%NIJT
+      IF(LLMICRO(JIJ,JK)) ISIZE=ISIZE+1 ! Number of points with active microphysics
+    END DO
+  END DO
   !PARAMI%NPROMICRO is the requested size for cache_blocking loop
   !IPROMA is the effective size
   !This parameter must be computed here because it is used for array dimensioning in ice4_pack
-- 
GitLab