diff --git a/src/common/micro/mode_rain_ice_old_fast_rg.F90 b/src/common/micro/mode_rain_ice_old_fast_rg.F90
index 9f8887655cd78a5fa266c190dc764c39944f9cd3..9751e88b8401bc57894ceec291e4285b90ad19dc 100644
--- a/src/common/micro/mode_rain_ice_old_fast_rg.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_rg.F90
@@ -185,8 +185,8 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RG
 !
 !*       6.2.3  select the (PLBDAG,PLBDAS) couplet
 !
-      ZVEC1(:) = PACK( PLBDAG(:),MASK=GDRY(:) )
-      ZVEC2(:) = PACK( PLBDAS(:),MASK=GDRY(:) )
+      ZVEC1(1:IGDRY) = PACK( PLBDAG(:),MASK=GDRY(:) )
+      ZVEC2(1:IGDRY) = PACK( PLBDAS(:),MASK=GDRY(:) )
 !
 !*       6.2.4  find the next lower indice for the PLBDAG and for the PLBDAS
 !               in the geometrical set of (Lbda_g,Lbda_s) couplet use to
@@ -213,7 +213,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RG
                       - ICEP%XKER_SDRYG(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
                                                            * (ZVEC1(JJ) - 1.0)
       END DO
-      ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 )
+      ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGDRY),MASK=GDRY,FIELD=0.0 )
 !
       IF (OCND2) THEN
         ZZW1(:,3) = 0.
@@ -242,8 +242,8 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RG
 !
 !*       6.2.8  select the (PLBDAG,PLBDAR) couplet
 !
-      ZVEC1(:) = PACK( PLBDAG(:),MASK=GDRY(:) )
-      ZVEC2(:) = PACK( PLBDAR(:),MASK=GDRY(:) )
+      ZVEC1(1:IGDRY) = PACK( PLBDAG(:),MASK=GDRY(:) )
+      ZVEC2(1:IGDRY) = PACK( PLBDAR(:),MASK=GDRY(:) )
 !
 !*       6.2.9  find the next lower indice for the PLBDAG and for the PLBDAR
 !               in the geometrical set of (Lbda_g,Lbda_r) couplet use to
@@ -270,7 +270,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RG
                       - ICEP%XKER_RDRYG(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0)) &
                                                                 *(ZVEC1(JJ) - 1.0)
       END DO
-      ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 )
+      ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGDRY),MASK=GDRY,FIELD=0.0 )
 
       DO JK = 1, KSIZE
         IF (GDRY(JK)) THEN
diff --git a/src/common/micro/mode_rain_ice_old_fast_rh.F90 b/src/common/micro/mode_rain_ice_old_fast_rh.F90
index 45ef12888736e6149d348dd7046364289d546905..3610905cb1df7b25c4e2013713cd2e75ec093c0f 100644
--- a/src/common/micro/mode_rain_ice_old_fast_rh.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_rh.F90
@@ -149,8 +149,8 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RH
 !
 !*       7.2.3  select the (PLBDAH,PLBDAS) couplet
 !
-        ZVEC1(:) = PACK( PLBDAH(:),MASK=GWET(:) )
-        ZVEC2(:) = PACK( PLBDAS(:),MASK=GWET(:) )
+        ZVEC1(1:IGWET) = PACK( PLBDAH(:),MASK=GWET(:) )
+        ZVEC2(1:IGWET) = PACK( PLBDAS(:),MASK=GWET(:) )
 !
 !*       7.2.4  find the next lower indice for the PLBDAG and for the PLBDAS
 !               in the geometrical set of (Lbda_h,Lbda_s) couplet use to
@@ -177,7 +177,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RH
                        - ICEP%XKER_SWETH(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
                                                                 * (ZVEC1(JJ) - 1.0)
         END DO
-        ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GWET,FIELD=0.0 )
+        ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGWET),MASK=GWET,FIELD=0.0 )
 
         DO JK = 1, KSIZE
           IF (GWET(JK)) THEN
@@ -200,8 +200,8 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RH
 !
 !*       7.2.8  select the (PLBDAH,PLBDAG) couplet
 !
-        ZVEC1(:) = PACK( PLBDAH(:),MASK=GWET(:) )
-        ZVEC2(:) = PACK( PLBDAG(:),MASK=GWET(:) )
+        ZVEC1(1:IGWET) = PACK( PLBDAH(:),MASK=GWET(:) )
+        ZVEC2(1:IGWET) = PACK( PLBDAG(:),MASK=GWET(:) )
 !
 !*       7.2.9  find the next lower indice for the PLBDAH and for the PLBDAG
 !               in the geometrical set of (Lbda_h,Lbda_g) couplet use to
@@ -228,7 +228,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RH
                        - ICEP%XKER_GWETH(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
                                                                 * (ZVEC1(JJ) - 1.0)
         END DO
-        ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GWET,FIELD=0.0 )
+        ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGWET),MASK=GWET,FIELD=0.0 )
 
         DO JK = 1, KSIZE
           IF (GWET(JK)) THEN
diff --git a/src/common/micro/mode_rain_ice_old_fast_rs.F90 b/src/common/micro/mode_rain_ice_old_fast_rs.F90
index 58bceabd877eeae23e2bfbeed44a02455a02b028..9512d0473d4f997893e78c74570147b91d384f9b 100644
--- a/src/common/micro/mode_rain_ice_old_fast_rs.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_rs.F90
@@ -114,7 +114,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
 !
 !        5.1.1  select the ZLBDAS
 !
-      ZVEC1(:) = PACK( ZLBDAS(:),MASK=GMASK(:) )
+      ZVEC1(1:IGRIM) = PACK( ZLBDAS(:),MASK=GMASK(:) )
 !
 !        5.1.2  find the next lower indice for the ZLBDAS in the geometrical
 !               set of Lbda_s used to tabulate some moments of the incomplete
@@ -130,7 +130,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
 !
       ZVEC1(1:IGRIM) = ICEP%XGAMINC_RIM1(IVEC2(1:IGRIM)+1)* ZVEC2(1:IGRIM)      &
                    - ICEP%XGAMINC_RIM1(IVEC2(1:IGRIM)  )*(ZVEC2(1:IGRIM) - 1.0)
-      ZZW(:) = UNPACK(VECTOR=ZVEC1(:), MASK=GMASK, FIELD=0.0)
+      ZZW(:) = UNPACK(VECTOR=ZVEC1(1:IGRIM), MASK=GMASK, FIELD=0.0)
 !
 !        5.1.4  riming of the small sized aggregates
 !
@@ -151,7 +151,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
 !
       ZVEC1(1:IGRIM) = ICEP%XGAMINC_RIM2( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM)      &
                      - ICEP%XGAMINC_RIM2( IVEC2(1:IGRIM)   )*(ZVEC2(1:IGRIM) - 1.0)
-      ZZW(:) = UNPACK( VECTOR=ZVEC1(:),MASK=GMASK,FIELD=0.0 )
+      ZZW(:) = UNPACK( VECTOR=ZVEC1(1:IGRIM),MASK=GMASK,FIELD=0.0 )
 !
 !        5.1.6  riming-conversion of the large sized aggregates into graupeln
 !
@@ -200,8 +200,8 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
 !
 !        5.2.1  select the (ZLBDAS,ZLBDAR) couplet
 !
-      ZVEC1(:) = PACK( ZLBDAS(:),MASK=GMASK(:) )
-      ZVEC2(:) = PACK( ZLBDAR(:),MASK=GMASK(:) )
+      ZVEC1(1:IGACC) = PACK( ZLBDAS(:),MASK=GMASK(:) )
+      ZVEC2(1:IGACC) = PACK( ZLBDAR(:),MASK=GMASK(:) )
 !
 !        5.2.2  find the next lower indice for the ZLBDAS and for the ZLBDAR
 !               in the geometrical set of (Lbda_s,Lbda_r) couplet use to
@@ -228,7 +228,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
                     - ICEP%XKER_RACCSS(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0)) &
                                                                *(ZVEC1(JJ) - 1.0)
       END DO
-      ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GMASK,FIELD=0.0 )
+      ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGACC),MASK=GMASK,FIELD=0.0 )
 !
 !        5.2.4  raindrop accretion on the small sized aggregates
 !
@@ -257,7 +257,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
                    -  ICEP%XKER_RACCS(IVEC2(JJ)  ,IVEC1(JJ)  )*(ZVEC1(JJ) - 1.0) ) &
                                                               *(ZVEC2(JJ) - 1.0)
       END DO
-      ZZW1(:,2) = ZZW1(:,2)*UNPACK( VECTOR=ZVEC3(:),MASK=GMASK(:),FIELD=0.0 )
+      ZZW1(:,2) = ZZW1(:,2)*UNPACK( VECTOR=ZVEC3(1:IGACC),MASK=GMASK(:),FIELD=0.0 )
                                                                        !! RRACCS!
 !        5.2.5  perform the bilinear interpolation of the normalized
 !               SACCRG-kernel
@@ -270,7 +270,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
                       - ICEP%XKER_SACCRG(IVEC2(JJ)  ,IVEC1(JJ)  )*(ZVEC1(JJ) - 1.0) ) &
                                                           * (ZVEC2(JJ) - 1.0)
       END DO
-      ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GMASK,FIELD=0.0 )
+      ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGACC),MASK=GMASK,FIELD=0.0 )
 !
 !        5.2.6  raindrop accretion-conversion of the large sized aggregates
 !               into graupeln
diff --git a/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90 b/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90
index a83ebd6aadd0a4183b91f4e66981cab3fd35f808..edd1a6d36558c1afa249315fbff9df46887a4430 100644
--- a/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90
+++ b/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90
@@ -540,12 +540,17 @@ PURE SUBROUTINE NPROMIZE3(P_IN, P_OUT)
     DO K_OUT = 1, NBLOCKS
       DO J = 1, SIZE(P_OUT, 2)
 
-        ZLEV = 1.0 + REAL(J-1)*REAL(SIZE(P_IN,2))/REAL(SIZE(P_OUT,2))
-        JLEVB = MIN(CEILING(ZLEV), SIZE(P_OUT,2))
+        ZLEV = 1.0 + REAL(J-1)*REAL(SIZE(P_IN,2)-1)/REAL(SIZE(P_OUT,2)-1)
+        JLEVB = MIN(CEILING(ZLEV), SIZE(P_IN,2))
         JLEVA = MAX(FLOOR(ZLEV), 1)
 
-        ZWA = REAL(JLEVB) - ZLEV
-        ZWB = ZLEV - REAL(JLEVA)
+        IF (JLEVB == JLEVA) THEN
+          ZWA = 1.
+          ZWB = 0.
+        ELSE
+          ZWA = REAL(JLEVB) - ZLEV
+          ZWB = ZLEV - REAL(JLEVA)
+        ENDIF
 
         DO I_OUT = 1, NPROMA
   
@@ -616,12 +621,17 @@ PURE SUBROUTINE NPROMIZE4(P_IN, P_OUT)
       DO J2 = 1, SIZE(P_OUT, 3)
         DO J1 = 1, SIZE(P_OUT, 2)
 
-          ZLEV = 1.0 + REAL(J1-1)*REAL(SIZE(P_IN,2))/REAL(SIZE(P_OUT,2))
-          JLEVB = MIN(CEILING(ZLEV), SIZE(P_OUT,2))
+          ZLEV = 1.0 + REAL(J1-1)*REAL(SIZE(P_IN,2)-1)/REAL(SIZE(P_OUT,2)-1)
+          JLEVB = MIN(CEILING(ZLEV), SIZE(P_IN,2))
           JLEVA = MAX(FLOOR(ZLEV), 1)
 
-          ZWA = REAL(JLEVB) - ZLEV
-          ZWB = ZLEV - REAL(JLEVA)
+          IF (JLEVB == JLEVA) THEN
+            ZWA = 1.
+            ZWB = 0.
+          ELSE
+            ZWA = REAL(JLEVB) - ZLEV
+            ZWB = ZLEV - REAL(JLEVA)
+          ENDIF
 
           DO I_OUT = 1, NPROMA
   
diff --git a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 b/src/testprogs/rain_ice_old/main_rain_ice_old.F90
index f202b25ea2c18e6e6dc4185af9b4b980b5da6125..8de4c7cea04b98dc28ec7588e6e54420cd85d49c 100644
--- a/src/testprogs/rain_ice_old/main_rain_ice_old.F90
+++ b/src/testprogs/rain_ice_old/main_rain_ice_old.F90
@@ -389,7 +389,7 @@ subroutine init_rain_ice_old(kulout)
   call rain_ice_descr_goto_model(1, 1)
   call rain_ice_param_goto_model(1, 1)
 
-  call param_icen_init('AROME', 0, .false., kulout, &                                                                 
+  call param_icen_init('AROME ', 0, .false., kulout, &                                                                 
                       &.true., .false., .false., 0)
 
   call tbuconf_associate