diff --git a/src/common/micro/mode_ice4_pack.F90 b/src/common/micro/mode_ice4_pack.F90
index 60da0e31e7a2cf12b82091ff56b7e99ad398b3a3..c434a4a2e4052032603e4bb144334e85320e6ace 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 48a652e514305cc6c94ba9a2e0a6ee3a2bf9875b..92a9ed01e90675c09fef4e17632f63c0380a5578 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