diff --git a/src/arome/ext/apl_arome.F90 b/src/arome/ext/apl_arome.F90
index 0467649b260f778b817c8fb054c0884619d10074..3fd80fa343f5effa0790dcf0d4a56aaab2006774 100644
--- a/src/arome/ext/apl_arome.F90
+++ b/src/arome/ext/apl_arome.F90
@@ -1066,7 +1066,7 @@ ZINVG=1._JPRB/RG
 
 !set concentration for LIMA
 LLIMAINIT=.FALSE.
-IF (YDCPG_OPTS%KSTEP==0) THEN
+IF (YDCPG_OPTS%KSTEP==0 .AND. CMICRO=='LIMA') THEN
   LLIMAINIT=.TRUE.
   ZP1EZDIAG(:,:,1)=0._JPRB
   ZP1EZDIAG(:,:,2)=0._JPRB
@@ -1489,14 +1489,16 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
   ENDDO
 
   !initialisation de ZZI_THRAD
-  IF (YDCPG_OPTS%KSTEP==0) THEN
-     DO JLEV = 1, YDCPG_OPTS%KFLEVG 
-        ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
-     ENDDO
-  ELSE
-     DO JLEV = 1, YDCPG_OPTS%KFLEVG 
-        ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)
-     ENDDO
+  IF (CMICRO=='LIMA') THEN
+     IF (YDCPG_OPTS%KSTEP==0) THEN
+        DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+           ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+        ENDDO
+     ELSE
+        DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+           ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)
+        ENDDO
+     ENDIF
   ENDIF
 
 ENDIF
@@ -2242,13 +2244,15 @@ ENDIF
   ENDIF
 
   !initialisation de ZZI_THRAD
-  DO JLEV = 1, YDCPG_OPTS%KFLEVG
-     DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
-        ZDTHRAD_(JLON,JLEV)=ZTENT(JLON,JLEV)/ZEXNREFM_(JLON,JLEV)
-     END DO
-     ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)=ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
-  ENDDO
-
+  IF (CMICRO=='LIMA') THEN
+     DO JLEV = 1, YDCPG_OPTS%KFLEVG
+        DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+           ZDTHRAD_(JLON,JLEV)=ZTENT(JLON,JLEV)/ZEXNREFM_(JLON,JLEV)
+        END DO
+        ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)=ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+     ENDDO
+  ENDIF
+     
   DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
     ! update sunshine duration [s]
     !YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+ZSDUR(JLON)*TSTEP
diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index 2e00e3c0612ce24c313e7b1b3201b4ec5509f190..6e945e64a75096fe07c7c65072b845e83fa31591 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -218,3 +218,51 @@ phyex/micro/lima_mixed_slow_processes.F90
 phyex/micro/lima_mixed_fast_processes.F90
 phyex/micro/lima_adjust.F90
 phyex/micro/lima_phillips.F90
+phyex/micro/lima_bergeron.F90
+phyex/micro/lima_ccn_activation.F90
+phyex/micro/lima_ccn_hom_freezing.F90
+phyex/micro/lima_collisional_ice_breakup.F90
+phyex/micro/lima_compute_cloud_fractions.F90
+phyex/micro/lima_conversion_melting_snow.F90
+phyex/micro/lima_droplets_accretion.F90
+phyex/micro/lima_droplets_autoconversion.F90
+phyex/micro/lima_droplets_hom_freezing.F90
+phyex/micro/lima_droplets_riming_snow.F90
+phyex/micro/lima_droplets_self_collection.F90
+phyex/micro/lima_drops_break_up.F90
+phyex/micro/lima_drops_hom_freezing.F90
+phyex/micro/lima_drops_self_collection.F90
+phyex/micro/lima_drops_to_droplets_conv.F90
+phyex/micro/lima_functions.F90
+phyex/micro/lima_graupel.F90
+phyex/micro/lima_graupel_deposition.F90
+phyex/micro/lima_hail.F90
+phyex/micro/lima_hail_deposition.F90
+phyex/micro/lima_ice4_nucleation.F90
+phyex/micro/lima_ice_aggregation_snow.F90
+phyex/micro/lima_ice_deposition.F90
+phyex/micro/lima_ice_melting.F90
+phyex/micro/lima_init_ccn_activation_spectrum.F90
+phyex/micro/lima_inst_procs.F90
+phyex/micro/lima_meyers_nucleation.F90
+phyex/micro/lima_nucleation_procs.F90
+phyex/micro/lima_phillips_ifn_nucleation.F90
+phyex/micro/lima_phillips_integ.F90
+phyex/micro/lima_phillips_ref_spectrum.F90
+phyex/micro/lima_rain_accr_snow.F90
+phyex/micro/lima_rain_evaporation.F90
+phyex/micro/lima_rain_freezing.F90
+phyex/micro/lima_raindrop_shattering_freezing.F90
+phyex/micro/lima_read_xker_gweth.F90
+phyex/micro/lima_read_xker_raccs.F90
+phyex/micro/lima_read_xker_rdryg.F90
+phyex/micro/lima_read_xker_sdryg.F90
+phyex/micro/lima_read_xker_sweth.F90
+phyex/micro/lima_sedimentation.F90
+phyex/micro/lima_snow_deposition.F90
+phyex/micro/lima_snow_self_collection.F90
+phyex/micro/lima_tendencies.F90
+phyex/micro/nrcolss.f90
+phyex/micro/nscolrg.f90
+phyex/micro/nzcolx.f90
+phyex/micro/set_conc_lima.f90
diff --git a/src/arome/micro/set_conc_lima_lbc.F90 b/src/arome/micro/mode_set_conc_lima_lbc.F90
similarity index 65%
rename from src/arome/micro/set_conc_lima_lbc.F90
rename to src/arome/micro/mode_set_conc_lima_lbc.F90
index 99fe74a52891aac1083ddd1a271c9db67ae87049..f04d2c512d9a3972fa1d03923c960949f634c862 100644
--- a/src/arome/micro/set_conc_lima_lbc.F90
+++ b/src/arome/micro/mode_set_conc_lima_lbc.F90
@@ -78,7 +78,9 @@ USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, NMOD_CCN, NMOD_IFN, &
 USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI, XAS, XBS
 USE MODD_PARAM_LIMA_MIXED,ONLY : XAG, XBG, XAH, XBH
 USE MODD_NSV,             ONLY : NSV_LIMA_BEG_A, NSV_LIMA_NC_A, NSV_LIMA_NR_A, NSV_LIMA_CCN_ACTI_A, &
-                                 NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A
+                                 NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A, &
+                                 NSV_LIMA_BEG, NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, &
+                                 NSV_LIMA_NI, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH, NSV_LIMA_IFN_NUCL
 USE MODD_CST,             ONLY : XPI, XRHOLW, XRHOLI
 USE MODD_CONF,            ONLY : NVERB
 !
@@ -92,17 +94,27 @@ REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PRT     ! microphysical mixing ratios
 !
-REAL,  DIMENSION(:,:,:,NSV_LIMA_BEG_A(kmi):), INTENT(INOUT):: PSVT     ! microphys. concentrations
+REAL,  DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVT     ! microphys. concentrations
 !
 !
 !*       0.2   Declarations of local variables :
 !
 REAL       :: ZCONC
+INTEGER    :: ISV_LIMA_NC, ISV_LIMA_NR, ISV_LIMA_CCN_ACTI
+INTEGER    :: ISV_LIMA_NI, ISV_LIMA_NS, ISV_LIMA_NG, ISV_LIMA_NH, ISV_LIMA_IFN_NUCL
 !
 !-------------------------------------------------------------------------------
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
+ISV_LIMA_NC       = NSV_LIMA_NC       - NSV_LIMA_BEG + 1
+ISV_LIMA_NR       = NSV_LIMA_NR       - NSV_LIMA_BEG + 1
+ISV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI - NSV_LIMA_BEG + 1
+ISV_LIMA_NI       = NSV_LIMA_NI       - NSV_LIMA_BEG + 1
+ISV_LIMA_NS       = NSV_LIMA_NS       - NSV_LIMA_BEG + 1
+ISV_LIMA_NG       = NSV_LIMA_NG       - NSV_LIMA_BEG + 1
+ISV_LIMA_NH       = NSV_LIMA_NH       - NSV_LIMA_BEG + 1
+ISV_LIMA_IFN_NUCL = NSV_LIMA_IFN_NUCL - NSV_LIMA_BEG + 1
 !
 !*       2.    INITIALIZATION
 !              --------------
@@ -112,20 +124,20 @@ IF (NMOM_C.GE.2) THEN
 !  droplets
 !
    ZCONC = 300.E6 ! droplet concentration set at 300 cm-3
-   WHERE ( PRT(:,:,:,2) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11)
-      PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = ZCONC
+   WHERE ( PRT(:,:,:,2) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11)
+      PSVT(:,:,:,ISV_LIMA_NC) = ZCONC
    END WHERE
-   WHERE ( PRT(:,:,:,2) <= 1.E-11  .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11)
+   WHERE ( PRT(:,:,:,2) <= 1.E-11  .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11)
       PRT(:,:,:,2)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NC) = 0.0
    END WHERE
    
    IF (NMOD_CCN .GE. 1) THEN
-      WHERE ( PRT(:,:,:,2) > 1.E-11  .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11)
-         PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = ZCONC
+      WHERE ( PRT(:,:,:,2) > 1.E-11  .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11)
+         PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = ZCONC
       END WHERE
-      WHERE ( PRT(:,:,:,2) <= 1.E-11  .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11)
-         PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = 0.0
+      WHERE ( PRT(:,:,:,2) <= 1.E-11  .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11)
+         PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = 0.0
       END WHERE
    END IF
    
@@ -137,15 +149,15 @@ IF (NMOM_R.GE.2) THEN
 !
    ZCONC = (1.E7)**3/(XPI*XRHOLW) ! cf XCONCR_PARAM_INI in ini_rain_c2r2.f90
    IF (HGETCLOUD == 'INI1') THEN ! init from REVE scheme
-      PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NR) = 0.0
    ELSE ! init from KESS, ICE3...
-      WHERE ( PRT(:,:,:,3) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NR_A(kmi))<1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) &
+      WHERE ( PRT(:,:,:,3) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NR)<1.E-11 )
+         PSVT(:,:,:,ISV_LIMA_NR) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) &
               *ZCONC)),1. )
       END WHERE
-      WHERE ( PRT(:,:,:,3) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NR_A(kmi))<1.E-11 )
+      WHERE ( PRT(:,:,:,3) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NR)<1.E-11 )
          PRT(:,:,:,3)  = 0.0
-         PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0
+         PSVT(:,:,:,ISV_LIMA_NR) = 0.0
       END WHERE
    END IF
 END IF
@@ -155,69 +167,69 @@ IF (NMOM_I.GE.2) THEN
 ! ice crystals
 !
    ZCONC = 100.E3 ! maximum ice concentration set at 100/L
-   WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 )
+   WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 )
 !
 !      PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN( PRHODREF(:,:,:) /                                     &
 !           ( XRHOLI * XAI*(10.E-06)**XBI * PRT(:,:,:,4) ), &
 !           ZCONC )
 ! Correction
-      PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC )
+      PSVT(:,:,:,ISV_LIMA_NI) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC )
    END WHERE
-   WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 )
+   WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 )
       PRT(:,:,:,4)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NI) = 0.0
    END WHERE
 
    IF (NMOD_IFN .GE. 1) THEN
-      WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = PSVT(:,:,:,NSV_LIMA_NI_A(kmi))
+      WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 )
+         PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = PSVT(:,:,:,ISV_LIMA_NI)
       END WHERE
-      WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = 0.0
+      WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 )
+         PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = 0.0
       END WHERE
    END IF
 
 END IF
 !
-IF (NSV_LIMA_NS_A(KMI).GE.1) THEN
+IF (ISV_LIMA_NS.GE.1) THEN
 !
 !  snow
 !
    ZCONC = 1./ (XAS*0.001**XBS) ! 1mm particle size
-   WHERE ( PRT(:,:,:,5) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NS_A(kmi))<1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = PRT(:,:,:,5) * ZCONC
+   WHERE ( PRT(:,:,:,5) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NS)<1.E-11 )
+      PSVT(:,:,:,ISV_LIMA_NS) = PRT(:,:,:,5) * ZCONC
    END WHERE
-   WHERE ( PRT(:,:,:,5) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NS_A(kmi))<1.E-11 )
+   WHERE ( PRT(:,:,:,5) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NS)<1.E-11 )
       PRT(:,:,:,5)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NS) = 0.0
    END WHERE
 END IF
 !
-IF (NSV_LIMA_NG_A(KMI).GE.1) THEN
+IF (ISV_LIMA_NG.GE.1) THEN
 !
 !  graupel
 !
    ZCONC = 1./ (XAG*0.001**XBG) ! 1mm particle size
-   WHERE ( PRT(:,:,:,6) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NG_A(kmi))<1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = PRT(:,:,:,6) * ZCONC
+   WHERE ( PRT(:,:,:,6) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NG)<1.E-11 )
+      PSVT(:,:,:,ISV_LIMA_NG) = PRT(:,:,:,6) * ZCONC
    END WHERE
-   WHERE ( PRT(:,:,:,6) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NG_A(kmi))<1.E-11 )
+   WHERE ( PRT(:,:,:,6) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NG)<1.E-11 )
       PRT(:,:,:,6)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NG) = 0.0
    END WHERE
 END IF
 !
-IF (NSV_LIMA_NH_A(KMI).GE.1) THEN
+IF (ISV_LIMA_NH.GE.1) THEN
 !
 !  hail
 !
    ZCONC = 1./ (XAH*0.001**XBH) ! 1mm particle size
-   WHERE ( PRT(:,:,:,7) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NH_A(kmi))<1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = PRT(:,:,:,7) * ZCONC
+   WHERE ( PRT(:,:,:,7) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NH)<1.E-11 )
+      PSVT(:,:,:,ISV_LIMA_NH) = PRT(:,:,:,7) * ZCONC
    END WHERE
-   WHERE ( PRT(:,:,:,7) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NH_A(kmi))<1.E-11 )
+   WHERE ( PRT(:,:,:,7) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NH)<1.E-11 )
       PRT(:,:,:,7)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NH) = 0.0
    END WHERE
 END IF
 !
diff --git a/src/common/aux/modd_nsv.f90 b/src/common/aux/modd_nsv.F90
similarity index 100%
rename from src/common/aux/modd_nsv.f90
rename to src/common/aux/modd_nsv.F90
diff --git a/src/common/micro/mode_set_conc_lima.F90 b/src/common/micro/mode_set_conc_lima.F90
index 1a439bafcf36c03bb0f5afe28b8d639f4a823fe0..6c132a78edde92569f54a608e1d145f4ad1ebb8e 100644
--- a/src/common/micro/mode_set_conc_lima.F90
+++ b/src/common/micro/mode_set_conc_lima.F90
@@ -78,7 +78,9 @@ USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, NMOD_CCN, NMOD_IFN, &
 USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI, XAS, XBS
 USE MODD_PARAM_LIMA_MIXED,ONLY : XAG, XBG, XAH, XBH
 USE MODD_NSV,             ONLY : NSV_LIMA_BEG_A, NSV_LIMA_NC_A, NSV_LIMA_NR_A, NSV_LIMA_CCN_ACTI_A, &
-                                 NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A
+                                 NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A, &
+                                 NSV_LIMA_BEG, NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, &
+                                 NSV_LIMA_NI, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH, NSV_LIMA_IFN_NUCL
 USE MODD_CST,             ONLY : XPI, XRHOLW, XRHOLI
 USE MODD_CONF,            ONLY : NVERB
 !
@@ -92,17 +94,27 @@ REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PRT     ! microphysical mixing ratios
 !
-REAL,  DIMENSION(:,:,:,NSV_LIMA_BEG_A(kmi):), INTENT(INOUT):: PSVT     ! microphys. concentrations
+REAL,  DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVT     ! microphys. concentrations
 !
 !
 !*       0.2   Declarations of local variables :
 !
 REAL       :: ZCONC
+INTEGER    :: ISV_LIMA_NC, ISV_LIMA_NR, ISV_LIMA_CCN_ACTI
+INTEGER    :: ISV_LIMA_NI, ISV_LIMA_NS, ISV_LIMA_NG, ISV_LIMA_NH, ISV_LIMA_IFN_NUCL
 !
 !-------------------------------------------------------------------------------
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
+ISV_LIMA_NC       = NSV_LIMA_NC       - NSV_LIMA_BEG + 1
+ISV_LIMA_NR       = NSV_LIMA_NR       - NSV_LIMA_BEG + 1
+ISV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI - NSV_LIMA_BEG + 1
+ISV_LIMA_NI       = NSV_LIMA_NI       - NSV_LIMA_BEG + 1
+ISV_LIMA_NS       = NSV_LIMA_NS       - NSV_LIMA_BEG + 1
+ISV_LIMA_NG       = NSV_LIMA_NG       - NSV_LIMA_BEG + 1
+ISV_LIMA_NH       = NSV_LIMA_NH       - NSV_LIMA_BEG + 1
+ISV_LIMA_IFN_NUCL = NSV_LIMA_IFN_NUCL - NSV_LIMA_BEG + 1
 !
 !*       2.    INITIALIZATION
 !              --------------
@@ -113,19 +125,19 @@ IF (NMOM_C.GE.2) THEN
 !
    ZCONC = 300.E6 ! droplet concentration set at 300 cm-3
    WHERE ( PRT(:,:,:,2) > 1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = ZCONC
+      PSVT(:,:,:,ISV_LIMA_NC) = ZCONC
    END WHERE
    WHERE ( PRT(:,:,:,2) <= 1.E-11 )
       PRT(:,:,:,2)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NC) = 0.0
    END WHERE
    
    IF (NMOD_CCN .GE. 1) THEN
       WHERE ( PRT(:,:,:,2) > 1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = ZCONC
+         PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = ZCONC
       END WHERE
       WHERE ( PRT(:,:,:,2) <= 1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = 0.0
+         PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = 0.0
       END WHERE
    END IF
    
@@ -137,15 +149,15 @@ IF (NMOM_R.GE.2) THEN
 !
    ZCONC = (1.E7)**3/(XPI*XRHOLW) ! cf XCONCR_PARAM_INI in ini_rain_c2r2.f90
    IF (HGETCLOUD == 'INI1') THEN ! init from REVE scheme
-      PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NR) = 0.0
    ELSE ! init from KESS, ICE3...
       WHERE ( PRT(:,:,:,3) > 1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) &
+         PSVT(:,:,:,ISV_LIMA_NR) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) &
               *ZCONC)),1. )
       END WHERE
       WHERE ( PRT(:,:,:,3) <= 1.E-11 )
          PRT(:,:,:,3)  = 0.0
-         PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0
+         PSVT(:,:,:,ISV_LIMA_NR) = 0.0
       END WHERE
    END IF
 END IF
@@ -161,60 +173,60 @@ IF (NMOM_I.GE.2) THEN
 !           ( XRHOLI * XAI*(10.E-06)**XBI * PRT(:,:,:,4) ), &
 !           ZCONC )
 ! Correction
-      PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC )
+      PSVT(:,:,:,ISV_LIMA_NI) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC )
    END WHERE
    WHERE ( PRT(:,:,:,4) <= 1.E-11 )
       PRT(:,:,:,4)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NI) = 0.0
    END WHERE
 
    IF (NMOD_IFN .GE. 1) THEN
       WHERE ( PRT(:,:,:,4) > 1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = PSVT(:,:,:,NSV_LIMA_NI_A(kmi))
+         PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = PSVT(:,:,:,ISV_LIMA_NI)
       END WHERE
       WHERE ( PRT(:,:,:,4) <= 1.E-11 )
-         PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = 0.0
+         PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = 0.0
       END WHERE
    END IF
 
 END IF
 !
-IF (NSV_LIMA_NS_A(KMI).GE.1) THEN
+IF (ISV_LIMA_NS.GE.1) THEN
 !
 !  snow
 !
    ZCONC = 1./ (XAS*0.001**XBS) ! 1mm particle size
    WHERE ( PRT(:,:,:,5) > 1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = PRT(:,:,:,5) * ZCONC
+      PSVT(:,:,:,ISV_LIMA_NS) = PRT(:,:,:,5) * ZCONC
    ELSEWHERE
       PRT(:,:,:,5)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NS) = 0.0
    END WHERE
 END IF
 !
-IF (NSV_LIMA_NG_A(KMI).GE.1) THEN
+IF (ISV_LIMA_NG.GE.1) THEN
 !
 !  graupel
 !
    ZCONC = 1./ (XAG*0.001**XBG) ! 1mm particle size
    WHERE ( PRT(:,:,:,6) > 1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = PRT(:,:,:,6) * ZCONC
+      PSVT(:,:,:,ISV_LIMA_NG) = PRT(:,:,:,6) * ZCONC
    ELSEWHERE
       PRT(:,:,:,6)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NG) = 0.0
    END WHERE
 END IF
 !
-IF (NSV_LIMA_NH_A(KMI).GE.1) THEN
+IF (ISV_LIMA_NH.GE.1) THEN
 !
 !  hail
 !
    ZCONC = 1./ (XAH*0.001**XBH) ! 1mm particle size
    WHERE ( PRT(:,:,:,7) > 1.E-11 )
-      PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = PRT(:,:,:,7) * ZCONC
+      PSVT(:,:,:,ISV_LIMA_NH) = PRT(:,:,:,7) * ZCONC
    ELSEWHERE
       PRT(:,:,:,7)  = 0.0
-      PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = 0.0
+      PSVT(:,:,:,ISV_LIMA_NH) = 0.0
    END WHERE
 END IF
 !