diff --git a/src/MNH/aer2lima.f90 b/src/MNH/aer2lima.f90
index 885dc0dc0270f586dfa4ffedca88eb3f4345ad4f..eaf03fa5b74ef44d11d605c55c6d4f3e7d0a693f 100644
--- a/src/MNH/aer2lima.f90
+++ b/src/MNH/aer2lima.f90
@@ -278,29 +278,31 @@ END DO
 ELSE ! keep lima class intiatialization
   IF (CACTCCN=="ABRK") THEN
 ! only one CCN_FREE mode (activation is not performed upon aerosol class but by physical paramters)
-    IF (NMOD_CCN .GE. 2) &
-    ZCCN_SUM(:,:,:,1) = ZCCN_SUM(:,:,:,1) + &
-                        PSVT(:,:,:,NSV_LIMA_CCN_FREE+1) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI+1)
-    IF (NMOD_CCN .GE. 3) &
-     ZCCN_SUM(:,:,:,1) = ZCCN_SUM(:,:,:,1) + &
-                        PSVT(:,:,:,NSV_LIMA_CCN_FREE+2) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI+2)
-  
+     IF (NMOD_CCN .GE. 2) THEN
+        DO JI = 2, NMOD_CCN
+           ZCCN_SUM(:,:,:,1) = ZCCN_SUM(:,:,:,1) + &
+                        PSVT(:,:,:,NSV_LIMA_CCN_FREE+JI-1) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI+JI-1)
+        END DO
+     END IF
   ELSE
-    IF (NMOD_CCN .GE. 2) &
-     ZCCN_SUM(:,:,:,2) = PSVT(:,:,:,NSV_LIMA_CCN_FREE+1) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI+1)
-
-    IF (NMOD_CCN .GE. 3) &
-     ZCCN_SUM(:,:,:,3) = PSVT(:,:,:,NSV_LIMA_CCN_FREE+2) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI+2)
+     IF (NMOD_CCN .GE. 2) THEN
+        DO JI = 2, NMOD_CCN
+           ZCCN_SUM(:,:,:,JI) = PSVT(:,:,:,NSV_LIMA_CCN_FREE+JI-1) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI+JI-1)
+        END DO
+     END IF
   END IF 
 
-  IF (.NOT.(LDUST)) &
-   ZIFN_SUM(:,:,:,1) = PSVT(:,:,:,NSV_LIMA_IFN_FREE)   + PSVT(:,:,:,NSV_LIMA_IFN_NUCL)
-
-  IF (NMOD_IFN .GE. 2) &
-   ZIFN_SUM(:,:,:,2) = PSVT(:,:,:,NSV_LIMA_IFN_FREE+1) + PSVT(:,:,:,NSV_LIMA_IFN_NUCL+1)
+  IF (.NOT.(LDUST) .AND. NMOD_IFN.GE.1) &
+       ZIFN_SUM(:,:,:,1) = PSVT(:,:,:,NSV_LIMA_IFN_FREE)   + PSVT(:,:,:,NSV_LIMA_IFN_NUCL)
 
+  IF (NMOD_IFN .GE. 2) THEN
+     DO JI = 2, NMOD_IFN
+        ZIFN_SUM(:,:,:,JI) = PSVT(:,:,:,NSV_LIMA_IFN_FREE+JI-1) + PSVT(:,:,:,NSV_LIMA_IFN_NUCL+JI-1)
+     END DO
+  END IF
 END IF ! end if sur LORILAM
-
+!
+!
 ! Sea Salt part
 IF (LSALT) THEN
 !
@@ -329,7 +331,8 @@ ELSE ! keep lima class intiatialization for sea salt + ccn from orilam
 ZCCN_SUM(:,:,:,1) = PSVT(:,:,:,NSV_LIMA_CCN_FREE) + PSVT(:,:,:,NSV_LIMA_CCN_ACTI)
 
 END IF ! end if sur LSALT
-
+!
+!
 ! Dust part
 IF (LDUST) THEN
   ! initatialization of dust if not macc
@@ -352,24 +355,24 @@ IF (LDUST) THEN
   END DO
 
 ELSE ! keep lima class intiatialization
-
-    ZIFN_SUM(:,:,:,1) = PSVT(:,:,:,NSV_LIMA_IFN_FREE) + PSVT(:,:,:,NSV_LIMA_IFN_NUCL)
+   IF (NMOD_IFN.GE.1) &
+        ZIFN_SUM(:,:,:,1) = PSVT(:,:,:,NSV_LIMA_IFN_FREE) + PSVT(:,:,:,NSV_LIMA_IFN_NUCL)
 
 END IF  ! endif sur LDUST
-
-PSVT(:,:,:,NSV_LIMA_CCN_FREE)   = MAX(ZCCN_SUM(:,:,:,1) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI), 0.)
-
-IF (NMOD_CCN .GE. 2) &
-PSVT(:,:,:,NSV_LIMA_CCN_FREE+1) = MAX(ZCCN_SUM(:,:,:,2) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI+1), 0.)
-
-
-IF (NMOD_CCN .GE. 3) &
-PSVT(:,:,:,NSV_LIMA_CCN_FREE+2) = MAX(ZCCN_SUM(:,:,:,3) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI+2), 0.)
-
-PSVT(:,:,:,NSV_LIMA_IFN_FREE)   = MAX(ZIFN_SUM(:,:,:,1) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL), 0.)
-IF (NMOD_IFN .GE. 2) &
-PSVT(:,:,:,NSV_LIMA_IFN_FREE+1) = MAX(ZIFN_SUM(:,:,:,2) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL+1), 0.)
-
+!
+!
+!
+IF (NMOD_CCN .GE. 1) THEN
+   DO JI=1,NMOD_CCN
+      PSVT(:,:,:,NSV_LIMA_CCN_FREE+JI-1)   = MAX(ZCCN_SUM(:,:,:,JI) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI+JI-1), 0.)
+   END DO
+END IF
+!
+IF (NMOD_IFN .GE. 1) THEN
+   DO JI=1,NMOD_IFN
+      PSVT(:,:,:,NSV_LIMA_IFN_FREE+JI-1)   = MAX(ZIFN_SUM(:,:,:,JI) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL+JI-1), 0.)
+   END DO
+END IF
 !
 !
 END SUBROUTINE AER2LIMA
diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90
index e5cc933aadb2c1ea1fa6dae71670860155005d1a..2a59420e0d0029f87a8837da855080c88da52b10 100644
--- a/src/MNH/ini_lima_cold_mixed.f90
+++ b/src/MNH/ini_lima_cold_mixed.f90
@@ -800,7 +800,7 @@ XHMLINTP2 = 1.0 + XHMLINTP1*LOG( 25.E-6/(XGAMINC_HMC_BOUND_MIN)**(1.0/XALPHAC) )
 !
 !*       7.2    Constants for the accretion of raindrops onto aggregates
 !
-XFRACCSS = XNS*((XPI**2)/24.0)*XRHOLW*(ZRHO00**XCEXVT)
+XFRACCSS = XNS*XPI/4.0*XAR*(ZRHO00**XCEXVT)
 !
 XLBRACCS1   =    MOMG(XALPHAS,XNUS,2.)*MOMG(XALPHAR,XNUR,3.)
 XLBRACCS2   = 2.*MOMG(XALPHAS,XNUS,1.)*MOMG(XALPHAR,XNUR,4.)
diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90
index 22f5b399a6370ed00361e2cf4464976db277ec42..fa0a276ebcc591f7dc6dbdbdaf505f044d97c6ba 100644
--- a/src/MNH/lima_ccn_activation.f90
+++ b/src/MNH/lima_ccn_activation.f90
@@ -652,7 +652,7 @@ DO JL = 1, NPTS
             fl(JL)=fnew(JL)
          else if (PX2 .lt. 0.05) then
             PX2 = PX2 + 1.0E-2
-            PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
+!            PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
             fh(JL)   = SINGL_FUNCSMAX(PX2,PZZW3(JL),PZZW6(JL),JL)
             go to 100
          end if
@@ -673,7 +673,7 @@ DO JL = 1, NPTS
       PZRIDDR(JL)=PX2
    else if (PX2 .lt. 0.05) then
       PX2 = PX2 + 1.0E-2
-      PRINT*, 'PX2 too small, we put a greater one : PX2 =',PX2
+!      PRINT*, 'PX2 too small, we put a greater one : PX2 =',PX2
       fh(JL)   = SINGL_FUNCSMAX(PX2,PZZW3(JL),PZZW6(JL),JL)
       go to 100
    else
diff --git a/src/MNH/lima_init_ccn_activation_spectrum.f90 b/src/MNH/lima_init_ccn_activation_spectrum.f90
index 16a5617407f80b8bd99fd57dc25b5687ed6433db..4403f97025e2c04b8f823efd603eec3accbb28ef 100644
--- a/src/MNH/lima_init_ccn_activation_spectrum.f90
+++ b/src/MNH/lima_init_ccn_activation_spectrum.f90
@@ -287,7 +287,7 @@ fh     = DSDD(PX2,XDDRY,XKAPPA,XT)
             fl=fnew
          else if (PX2 .lt. 0.05) then
             PX2 = PX2 + 1.0E-2
-            PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
+!            PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
             fh   = DSDD(PX2,XDDRY,XKAPPA,XT)
             go to 100
             STOP
@@ -303,7 +303,7 @@ fh     = DSDD(PX2,XDDRY,XKAPPA,XT)
       PZRIDDR=PX2
    else if (PX2 .lt. 0.05) then
       PX2 = PX2 + 1.0E-2
-      PRINT*, 'PX2 too small, we put a greater one : PX2 =',PX2
+!      PRINT*, 'PX2 too small, we put a greater one : PX2 =',PX2
       fh   = DSDD(PX2,XDDRY,XKAPPA,XT)
       go to 100
    else
diff --git a/src/MNH/lima_mixed_fast_processes.f90 b/src/MNH/lima_mixed_fast_processes.f90
index b8a9fcc32d6cb5938ef38bcbcdb132103c1832ad..4ce1a80932b529416248070daee6e26af33c1e86 100644
--- a/src/MNH/lima_mixed_fast_processes.f90
+++ b/src/MNH/lima_mixed_fast_processes.f90
@@ -160,7 +160,7 @@ USE MODD_NSV
 USE MODD_PARAM_LIMA
 USE MODD_PARAM_LIMA_COLD
 USE MODD_PARAM_LIMA_MIXED
-USE MODD_PARAM_LIMA_WARM, ONLY : XDR
+USE MODD_PARAM_LIMA_WARM, ONLY : XBR, XDR
 
 use mode_budget,           only: Budget_store_init, Budget_store_end
 
@@ -826,10 +826,10 @@ IF( IGACC>0 .AND. LRAIN) THEN
 !
   WHERE ( GACC(:) )
     ZZW1(:,2) = PCRT1D(:) *                                           & !! coef of RRACCS
-              XFRACCSS*( PRST1D(:)*PLBDAS(:)**XBS )*( PRHODREF(:)**(-XCEXVT) ) &
+              XFRACCSS*( PRST1D(:)*PLBDAS(:)**XBS )*( PRHODREF(:)**(1-XCEXVT) ) &
          *( XLBRACCS1/((PLBDAS(:)**2)               ) +                  &
             XLBRACCS2/( PLBDAS(:)    * PLBDAR(:)    ) +                  &
-            XLBRACCS3/(               (PLBDAR(:)**2)) )/PLBDAR(:)**3
+            XLBRACCS3/(               (PLBDAR(:)**2)) )/PLBDAR(:)**XBR
     ZZW1(:,4) = MIN( PRRS1D(:),ZZW1(:,2)*ZZW(:) )           ! RRACCSS
     PRRS1D(:) = PRRS1D(:) - ZZW1(:,4)
     PRSS1D(:) = PRSS1D(:) + ZZW1(:,4)
@@ -870,7 +870,7 @@ IF( IGACC>0 .AND. LRAIN) THEN
   WHERE ( GACC(:) .AND. (PRSS1D(:)>XRTMIN(5)/PTSTEP) )
     ZZW1(:,2) = MAX( MIN( PRRS1D(:),ZZW1(:,2)-ZZW1(:,4) ) , 0. )      ! RRACCSG
     ZZW1(:,3) = MIN( PRSS1D(:),XFSACCRG*ZZW(:)*                     & ! RSACCRG
-            ( PRST1D(:) )*( PRHODREF(:)**(-XCEXVT) ) &
+            ( PRST1D(:) )*( PRHODREF(:)**(1-XCEXVT) ) &
            *( XLBSACCR1/((PLBDAR(:)**2)               ) +           &
               XLBSACCR2/( PLBDAR(:)    * PLBDAS(:)    ) +           &
               XLBSACCR3/(               (PLBDAS(:)**2)) ) )
diff --git a/src/MNH/lima_rain_accr_snow.f90 b/src/MNH/lima_rain_accr_snow.f90
index 264c98bb914139fa437951ddd15bb3595f302106..5ece49ac93b856337d711e5ac276a38bcb39fdfd 100644
--- a/src/MNH/lima_rain_accr_snow.f90
+++ b/src/MNH/lima_rain_accr_snow.f90
@@ -69,6 +69,7 @@ END MODULE MODI_LIMA_RAIN_ACCR_SNOW
 !
 USE MODD_CST,              ONLY : XTT
 USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCEXVT
+USE MODD_PARAM_LIMA_WARM,  ONLY : XBR
 USE MODD_PARAM_LIMA_COLD,  ONLY : XBS, XTRANS_MP_GAMMAS
 USE MODD_PARAM_LIMA_MIXED, ONLY : NACCLBDAS, XACCINTP1S, XACCINTP2S,         &
                                   NACCLBDAR, XACCINTP1R, XACCINTP2R,         &
@@ -211,21 +212,19 @@ WHERE( GACC )
 !
 !        1.3.4  raindrop accretion on the small sized aggregates
 !      
-! BVIE manque PCRT ???????????????????????????????????
-!      ZZW4(:) =                                            & !! coef of RRACCS and RRACCS
-   ZZW4(:) = PCRT(:)                                                       & !! coef of RRACCS and RRACCS
-         *  XFRACCSS *( PRST(:)*PLBDS(:)**XBS )*( PRHODREF(:)**(-XCEXVT) ) &
-         *( XLBRACCS1/( PLBDS(:)**2               ) +                      &
-            XLBRACCS2/( PLBDS(:)    * PLBDR(:)    ) +                      &
-            XLBRACCS3/(               PLBDR(:)**2 ) ) / PLBDR(:)**3
+   ZZW4(:) = PCRT(:) *                                                      & !! coef of RRACCS and RRACCS
+            XFRACCSS *( PRST(:)*PLBDS(:)**XBS )*( PRHODREF(:)**(1-XCEXVT) ) &
+         *( XLBRACCS1/( PLBDS(:)**2               ) +                       &
+            XLBRACCS2/( PLBDS(:)    * PLBDR(:)    ) +                       &
+            XLBRACCS3/(               PLBDR(:)**2 ) ) / PLBDR(:)**XBR
 
 !
 !        1.3.6  raindrop accretion-conversion of the large sized aggregates
 !               into graupeln
 !
-   ZZW5(:) = XFSACCRG*ZZW3(:) *                         & ! RSACCRG
-            ( PRST(:) )*( PRHODREF(:)**(-XCEXVT)    )   &
-           *( XLBSACCR1/( PLBDR(:)**2               ) + &
+   ZZW5(:) = XFSACCRG * ZZW3(:) * PCRT(:) *             & ! RSACCRG
+            ( PRST(:) )*( PRHODREF(:)**(1-XCEXVT)   ) * &
+            ( XLBSACCR1/( PLBDR(:)**2               ) + &
               XLBSACCR2/( PLBDR(:)    * PLBDS(:)    ) + &
               XLBSACCR3/(               PLBDS(:)**2 ) )
 !
diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90
index 549a5fc8460f4ac857a2171b64b324f9aec84b95..d62e4f790ca42ab792afdcfa66b970171f83b2e8 100644
--- a/src/MNH/lima_warm_nucl.f90
+++ b/src/MNH/lima_warm_nucl.f90
@@ -662,7 +662,7 @@ DO JL = 1, NPTS
             fl(JL)=fnew(JL)
          else if (PX2 .lt. 0.05) then
             PX2 = PX2 + 1.0E-2
-            PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
+!            PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
             fh(JL)   = SINGL_FUNCSMAX(PX2,PZZW3(JL),PZZW6(JL),JL)
             go to 100
          end if
@@ -683,7 +683,7 @@ DO JL = 1, NPTS
       PZRIDDR(JL)=PX2
    else if (PX2 .lt. 0.05) then
       PX2 = PX2 + 1.0E-2
-      PRINT*, 'PX2 too small, we put a greater one : PX2 =',PX2
+!      PRINT*, 'PX2 too small, we put a greater one : PX2 =',PX2
       fh(JL)   = SINGL_FUNCSMAX(PX2,PZZW3(JL),PZZW6(JL),JL)
       go to 100
    else
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 937990ac60b9f1ec2b644266849fbd9e917205d3..de986a0cd5eb891a956958436988b5cb6cc85432 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -534,8 +534,8 @@ END IF
 !
 !*        1.    From ORILAM to LIMA: 
 !
-IF (HCLOUD == 'LIMA') THEN
-!IF (HCLOUD == 'LIMA' .AND. ((LORILAM).OR.(LDUST).OR.(LSALT))) THEN
+!IF (HCLOUD == 'LIMA') THEN
+IF (HCLOUD == 'LIMA' .AND. ((LORILAM).OR.(LDUST).OR.(LSALT))) THEN
 ! ORILAM : tendance s --> variable instant t
 ALLOCATE(ZSVT(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3),NSV))
   DO II = 1, NSV