diff --git a/src/arome/ext/aro_adjust_lima.F90 b/src/arome/ext/aro_adjust_lima.F90
index 2efdc62daa500bcc7b0d75bbe6c2786eb7517680..755dc0360f121b801602e784fe2b45ad8774317f 100644
--- a/src/arome/ext/aro_adjust_lima.F90
+++ b/src/arome/ext/aro_adjust_lima.F90
@@ -163,16 +163,6 @@ LOGICAL,                  INTENT(IN)    :: LLIMAINIT
 !
 !*       0.2   Declarations of local variables :
 
-CHARACTER(LEN=4)          :: HCLOUD   ! kind of cloud
-                                                   ! paramerization
-
-INTEGER                   :: KMI      ! Model index
-CHARACTER(LEN=4)          :: HFMFILE  ! Name of the output FM-file
-CHARACTER(LEN=4)          :: HLUOUT   ! Output-listing name for
-                                                   ! model n
-CHARACTER*4               :: HRAD     ! Radiation scheme name
-CHARACTER*4               :: HTURBDIM ! Dimensionality of the
-                                                   ! turbulence scheme
 !
 INTEGER :: JRR           ! Loop index for the moist and scalar variables
 !
@@ -198,13 +188,6 @@ TYPE(DIMPHYEX_t) :: YLDIMPHYEX
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ARO_ADJUST_LIMA',0,ZHOOK_HANDLE)
 
-HCLOUD='LIMA'
-HFMFILE=' '
-HLUOUT= ' '
-HRAD='NONE'
-HTURBDIM='1DIM'
-KMI=1
-
 CALL FILL_DIMPHYEX(YLDIMPHYEX, KLON, 1, KLEV, 0, KFDIA)
 
 !
@@ -350,7 +333,7 @@ ENDDO
     ZZZ =  PZZF
 
     CALL LIMA_ADJUST_SPLIT(D=YLDIMPHYEX, CST=PHYEX%CST, BUCONF=TBUCONF, TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), &
-         KRR=KRR, KMI=KMI, HCONDENS=PHYEX%NEBN%CCONDENS, HLAMBDA3=PHYEX%NEBN%CLAMBDA3, &
+         KRR=KRR, KMI=PHYEX%MISC%KMI, HCONDENS=PHYEX%NEBN%CCONDENS, HLAMBDA3=PHYEX%NEBN%CLAMBDA3, &
          OSUBG_COND=OSUBG_COND, OSIGMAS=OSIGMAS, PTSTEP=2*PTSTEP, PSIGQSAT=PSIGQSAT, &
          PRHODREF=PRHODREF, PRHODJ=PRHODJ, PEXNREF=PEXNREF, PSIGS=PSIGS, PMFCONV=PMFCONV, &
          PPABST=PPABSM, PPABSTT=PPABSM, PZZ=ZZZ, PDTHRAD=PDTHRAD, PW_NU=PW_NU, &
diff --git a/src/arome/ext/aro_lima.F90 b/src/arome/ext/aro_lima.F90
index de92b72acb49130026cf3f766daaf932ead9074e..7b5351b2daa16da82ef8837093e50790df644021 100644
--- a/src/arome/ext/aro_lima.F90
+++ b/src/arome/ext/aro_lima.F90
@@ -115,11 +115,6 @@ TYPE(TMDDH), INTENT(IN), TARGET :: YDMDDH
 !
 !*       0.2   Declarations of local variables :
 
-CHARACTER(LEN=4)            :: HCLOUD   ! kind of cloud
-                                                   ! paramerization
-
-INTEGER                   :: KMI      ! Model index
-
 !
 INTEGER :: JRR, JL           ! Loop index for the moist and scalar variables
 !
@@ -154,8 +149,6 @@ IF (LHOOK) CALL DR_HOOK('ARO_LIMA',0,ZHOOK_HANDLE)
 !Dimensions
 CALL FILL_DIMPHYEX(YLDIMPHYEX, KLON, 1, KLEV, 0, KFDIA)
 
-HCLOUD='LIMA'
-KMI=1
 ZINPRC=0.
 ZDUM3DC=0.
 ZDUM3DR=0.
diff --git a/src/common/aux/ini_phyex.F90 b/src/common/aux/ini_phyex.F90
index 67a2400a8420ae13b9183bddb692e8b5aa9a381c..0c4a7e8eb58bacdedfa264e880a6f6082f12925d 100644
--- a/src/common/aux/ini_phyex.F90
+++ b/src/common/aux/ini_phyex.F90
@@ -15,9 +15,11 @@ USE MODD_PARAM_MFSHALL_N,ONLY: PARAM_MFSHALLN, PARAM_MFSHALLN_INIT, PARAM_MFSHAL
 USE MODD_TURB_N,         ONLY: TURBN, TURBN_INIT, TURB_GOTO_MODEL, LHARAT
 USE MODD_CTURB,          ONLY: CSTURB, CTURB_ASSOCIATE
 USE MODD_NEB_N,          ONLY: NEBN, NEBN_INIT, NEB_GOTO_MODEL, CCONDENS, LSTATNW, LSUBG_COND
-USE MODD_PARAM_LIMA,     ONLY: PARAM_LIMA, PARAM_LIMA_INIT, PARAM_LIMA_ASSOCIATE
+USE MODD_PARAM_LIMA,     ONLY: PARAM_LIMA, PARAM_LIMA_INIT, PARAM_LIMA_ASSOCIATE, LPTSPLIT, LADJ
+USE MODD_PARAM_LIMA_WARM, ONLY: PARAM_LIMA_WARM
+USE MODD_PARAM_LIMA_COLD, ONLY: PARAM_LIMA_COLD
+USE MODD_PARAM_LIMA_MIXED, ONLY: PARAM_LIMA_MIXED
 USE MODD_NSV,            ONLY: TNSV, NSV_ASSOCIATE
-USE MODD_PARAM_LIMA,     ONLY: PARAM_LIMA_ASSOCIATE, PARAM_LIMA, LPTSPLIT, LADJ
 !
 USE MODE_INI_CST, ONLY: INI_CST
 USE MODE_INI_RAIN_ICE, ONLY: INI_RAIN_ICE
@@ -124,6 +126,9 @@ IF(CMICRO=='ICE3' .OR. CMICRO=='ICE4' .OR. CMICRO=='LIMA') THEN
     RAIN_ICE_PARAMN=PHYEX_IN%RAIN_ICE_PARAMN
     CLOUDPARN=PHYEX_IN%CLOUDPARN
     PARAM_LIMA=PHYEX_IN%PARAM_LIMA
+    PARAM_LIMA_WARM=PHYEX_IN%PARAM_LIMA_WARM
+    PARAM_LIMA_COLD=PHYEX_IN%PARAM_LIMA_COLD
+    PARAM_LIMA_MIXED=PHYEX_IN%PARAM_LIMA_MIXED
   ENDIF
 
   CALL PARAM_ICEN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, &
@@ -153,6 +158,9 @@ IF(CMICRO=='ICE3' .OR. CMICRO=='ICE4' .OR. CMICRO=='LIMA') THEN
     PHYEX_OUT%RAIN_ICE_PARAMN=RAIN_ICE_PARAMN
     PHYEX_OUT%CLOUDPARN=CLOUDPARN
     PHYEX_OUT%PARAM_LIMA=PARAM_LIMA
+    PHYEX_OUT%PARAM_LIMA_WARM=PARAM_LIMA_WARM
+    PHYEX_OUT%PARAM_LIMA_COLD=PARAM_LIMA_COLD
+    PHYEX_OUT%PARAM_LIMA_MIXED=PARAM_LIMA_MIXED
   ENDIF
 ENDIF
 !
diff --git a/src/common/aux/modd_phyex.F90 b/src/common/aux/modd_phyex.F90
index 668f3ad26dc0643e66a5d238bfb20f10a403fdc9..6b8ddb985f6e7736b12ae3c805788d684e4c377a 100644
--- a/src/common/aux/modd_phyex.F90
+++ b/src/common/aux/modd_phyex.F90
@@ -29,6 +29,9 @@ USE MODD_TURB_n, ONLY: TURB_t
 USE MODD_CTURB, ONLY: CSTURB_t
 USE MODD_NEB_n, ONLY: NEB_t
 USE MODD_PARAM_LIMA, ONLY: PARAM_LIMA_t
+USE MODD_PARAM_LIMA_WARM, ONLY: PARAM_LIMA_WARM_t
+USE MODD_PARAM_LIMA_COLD, ONLY: PARAM_LIMA_COLD_t
+USE MODD_PARAM_LIMA_MIXED, ONLY: PARAM_LIMA_MIXED_t
 USE MODD_NSV, ONLY: NSV_t
 USE MODD_MISC, ONLY: MISC_t
 !
@@ -46,6 +49,9 @@ TYPE PHYEX_t
   TYPE(TURB_t)           :: TURBN            !< Turbulence scheme constants set by namelist
   TYPE(NEB_t)            :: NEBN             !< Cloud scheme constants
   TYPE(PARAM_LIMA_t)     :: PARAM_LIMA       !< Control parameters for LIMA microphysics
+  TYPE(PARAM_LIMA_WARM_t):: PARAM_LIMA_WARM  !< Microphysical factors for LIMA (warm processes)
+  TYPE(PARAM_LIMA_COLD_t):: PARAM_LIMA_COLD  !< Microphysical factors for LIMA (cold processes)
+  TYPE(PARAM_LIMA_MIXED_t):: PARAM_LIMA_MIXED !< Microphysical factors for LIMA (mixed processes)
   TYPE(NSV_t)            :: TNSV             !< NSV indexes
   !
   ! Supplementary strucuture to hold model specific values
diff --git a/src/common/micro/modd_param_lima.F90 b/src/common/micro/modd_param_lima.F90
index bbf622a100013cb08bf7f31fb9b7ac91225830e8..22baffab5b5b80a63808dc967e8d5cf63492fdf7 100644
--- a/src/common/micro/modd_param_lima.F90
+++ b/src/common/micro/modd_param_lima.F90
@@ -486,7 +486,7 @@ END SUBROUTINE PARAM_LIMA_DEALLOCATE
 !
 SUBROUTINE PARAM_LIMA_ALLOCATE(HNAME, KDIM1, KDIM2, KDIM3)
   IMPLICIT NONE
-  CHARACTER(LEN=*), INTENT(IN) :: HNAME
+  CHARACTER(LEN=*), INTENT(IN)  :: HNAME
   INTEGER, INTENT(IN)           :: KDIM1
   INTEGER, OPTIONAL, INTENT(IN) :: KDIM2
   INTEGER, OPTIONAL, INTENT(IN) :: KDIM3
diff --git a/src/common/micro/modd_param_lima_cold.F90 b/src/common/micro/modd_param_lima_cold.F90
index 337480312280e054f1abdaabadfa4ca829fda3ae..3134e583f585419a5121808a9ac0fd302a1b9e89 100644
--- a/src/common/micro/modd_param_lima_cold.F90
+++ b/src/common/micro/modd_param_lima_cold.F90
@@ -6,9 +6,9 @@
 !     ###########################
       MODULE MODD_PARAM_LIMA_COLD
 !     ###########################
-!
+!> @file
 !!****  *MODD_PARAM_LIMA_COLD* - declaration of some descriptive parameters and
-!!                               microphysical factors extensively used in 
+!!                               microphysical factors extensively used in
 !!                               the LIMA cold scheme.
 !!    AUTHOR
 !!    ------
@@ -18,7 +18,7 @@
 !!
 !!    MODIFICATIONS
 !!    -------------
-!!      Original             ??/??/13 
+!!      Original             ??/??/13
 !!      C. Barthe            14/03/2022  add CIBU and RDSF
 !       J. Wurtz                03/2022: new snow characteristics
 !       M. Taufour              07/2022: add concentration for snow, graupel, hail
@@ -26,13 +26,13 @@
 !-------------------------------------------------------------------------------
 USE MODD_PARAMETERS, ONLY: JPSVNAMELGTMAX
 !
-IMPLICIT NONE 
+IMPLICIT NONE
 !
 !*       1.   DESCRIPTIVE PARAMETERS
 !             ----------------------
 !
 !     Declaration of microphysical constants, including the descriptive
-!     parameters for the raindrop and the ice crystal habits, and the 
+!     parameters for the raindrop and the ice crystal habits, and the
 !     parameters relevant of the dimensional distributions.
 !
 !         m(D)    = XAx * D**XBx      : Mass-MaxDim relationship
@@ -43,109 +43,379 @@ IMPLICIT NONE
 !
 !              and
 !
-!         XALPHAx, XNUx                        : Generalized GAMMA law 
-!         Lbda = XLBx * (r_x*rho_dref)**XLBEXx : Slope parameter of the 
+!         XALPHAx, XNUx                        : Generalized GAMMA law
+!         Lbda = XLBx * (r_x*rho_dref)**XLBEXx : Slope parameter of the
 !                                                distribution law
 !
-REAL,SAVE :: XLBEXI,XLBI              ! Prist. ice     distribution parameters
-REAL,SAVE :: XLBEXS,XLBS,XNS          ! Snow/agg.      distribution parameters
+TYPE PARAM_LIMA_COLD_t
+REAL      :: XLBEXI,XLBI              ! Prist. ice     distribution parameters
+REAL      :: XLBEXS,XLBS,XNS          ! Snow/agg.      distribution parameters
 !
-REAL,SAVE :: XAI,XBI,XC_I,XDI         ,XF0I,XF2I,XC1I ! Cloud ice      charact.
-REAL,SAVE ::                           XF0IS,XF1IS    ! (large Di vent. coef.)
-REAL,SAVE :: XAS,XBS,XCS,XDS,XCCS,XCXS,XF0S,XF1S,XC1S ! Snow/agg.      charact.
+REAL      :: XAI,XBI,XC_I,XDI         ,XF0I,XF2I,XC1I ! Cloud ice      charact.
+REAL      ::                           XF0IS,XF1IS    ! (large Di vent. coef.)
+REAL      :: XAS,XBS,XCS,XDS,XCCS,XCXS,XF0S,XF1S,XC1S ! Snow/agg.      charact.
 !
-REAL,SAVE :: XLBDAS_MIN, XLBDAS_MAX   ! Max values allowed for the shape parameter of snow
-REAL,SAVE :: XFVELOS                  ! Wurtz - snow fall speed parameterizaed after Thompson 2008
-REAL,SAVE :: XTRANS_MP_GAMMAS         ! Wurtz - change between lambda value for MP and gen. gamma
+REAL      :: XLBDAS_MIN, XLBDAS_MAX   ! Max values allowed for the shape parameter of snow
+REAL      :: XFVELOS                  ! Wurtz - snow fall speed parameterizaed after Thompson 2008
+REAL      :: XTRANS_MP_GAMMAS         ! Wurtz - change between lambda value for MP and gen. gamma
 !
-CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(8),PARAMETER &
-                              :: CLIMA_COLD_NAMES=(/'CICE    ','CSNOW   ','CGRAUPEL','CHAIL   ',&
-                                                        'CIFNFREE','CIFNNUCL', &
-                                                        'CCNINIMM','CCCNNUCL'/)
-                                 ! basenames of the SV articles stored
-                                 ! in the binary files
-                                 !with IF:Ice-nuclei Free (nonactivated IFN by Dep/Cond)
-                                 !     IN:Ice-nuclei Nucleated (activated IFN by Dep/Cond)
-                                 !     NI:Nuclei Immersed (activated IFN by Imm)
-                                 !     HF:Homogeneous Freezing
-CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(8),PARAMETER &
-                              :: CLIMA_COLD_CONC=(/'NI ','NS ','NG ','NH ','NIF','NIN','NNI','NNH'/)!for DIAG
 !
 !-------------------------------------------------------------------------------
 !
 !*       2.   MICROPHYSICAL FACTORS
 !             ---------------------
 !
-REAL,SAVE :: XFSEDRI,XFSEDCI,                  & ! Constants for sedimentation
-             XFSEDRS,XFSEDCS,                  & !         
-    	     XFSEDS, XEXSEDS                     ! fluxes of ice and snow
+REAL      :: XFSEDRI,XFSEDCI,                  & ! Constants for sedimentation
+             XFSEDRS,XFSEDCS,                  & !
+             XFSEDS, XEXSEDS                     ! fluxes of ice and snow
 !
-REAL,SAVE :: XNUC_DEP,XEXSI_DEP,XEX_DEP,       & ! Constants for heterogeneous
+REAL      :: XNUC_DEP,XEXSI_DEP,XEX_DEP,       & ! Constants for heterogeneous
              XNUC_CON,XEXTT_CON,XEX_CON,       & ! ice nucleation : DEP et CON
              XMNU0                               ! mass of nucleated ice crystal
 !
-REAL,SAVE :: XRHOI_HONH,XCEXP_DIFVAP_HONH,     & ! Constants for homogeneous
+REAL      :: XRHOI_HONH,XCEXP_DIFVAP_HONH,     & ! Constants for homogeneous
              XCOEF_DIFVAP_HONH,XRCOEF_HONH,    & ! haze freezing : HHONI
              XCRITSAT1_HONH,XCRITSAT2_HONH,    &
              XTMIN_HONH,XTMAX_HONH,            &
              XDLNJODT1_HONH,XDLNJODT2_HONH,    &
              XC1_HONH,XC2_HONH,XC3_HONH
 !
-REAL,SAVE :: XC_HONC,XR_HONC,                  & ! Constants for homogeneous
+REAL      :: XC_HONC,XR_HONC,                  & ! Constants for homogeneous
              XTEXP1_HONC,XTEXP2_HONC,          & ! droplet freezing : CHONI
              XTEXP3_HONC,XTEXP4_HONC,          &
              XTEXP5_HONC
 !
-REAL,SAVE :: XCSCNVI_MAX, XLBDASCNVI_MAX,      &
+REAL      :: XCSCNVI_MAX, XLBDASCNVI_MAX,      &
              XRHORSMIN,                        &
              XDSCNVI_LIM, XLBDASCNVI_LIM,      & ! Constants for snow
              XC0DEPSI,XC1DEPSI,                & ! sublimation conversion to
              XR0DEPSI,XR1DEPSI                   ! pristine ice : SCNVI
 !
-REAL,SAVE :: XSCFAC,                           & ! Constants for the Bergeron
+REAL      :: XSCFAC,                           & ! Constants for the Bergeron
              X0DEPI,X2DEPI,                    & ! Findeisen process and
              X0DEPS,X1DEPS,XEX0DEPS,XEX1DEPS     ! deposition
 !
-REAL,SAVE :: XDICNVS_LIM, XLBDAICNVS_LIM,      & ! Constants for pristine ice
+REAL      :: XDICNVS_LIM, XLBDAICNVS_LIM,      & ! Constants for pristine ice
              XC0DEPIS,XC1DEPIS,                & ! deposition conversion to
              XR0DEPIS,XR1DEPIS                   ! snow : ICNVS
 !
-REAL,SAVE :: XCOLEXIS,                         & ! Constants for snow 
-    	     XAGGS_CLARGE1,XAGGS_CLARGE2,      & ! aggregation : AGG
+REAL      :: XCOLEXIS,                         & ! Constants for snow
+             XAGGS_CLARGE1,XAGGS_CLARGE2,      & ! aggregation : AGG
              XAGGS_RLARGE1,XAGGS_RLARGE2,      &
              XFIAGGS,XEXIAGGS
 !
-REAL,SAVE :: XACCS1, XSPONBUDS1, XSPONBUDS2,   & ! Constant for snow
+REAL      :: XACCS1, XSPONBUDS1, XSPONBUDS2,   & ! Constant for snow
              XSPONBUDS3, XSPONCOEFS2             ! spontaneous break-up
 !
 !??????????????????
-REAL,SAVE :: XKER_ZRNIC_A1,XKER_ZRNIC_A2         ! Long-Zrnic Kernels (ini_ice_coma)
+REAL      :: XKER_ZRNIC_A1,XKER_ZRNIC_A2         ! Long-Zrnic Kernels (ini_ice_coma)
 !
-REAL,SAVE :: XSELFI,XCOLEXII                     ! Constants for pristine ice
+REAL      :: XSELFI,XCOLEXII                     ! Constants for pristine ice
                                                  ! self-collection (ini_ice_coma)
 !
-REAL,DIMENSION(:,:), SAVE, ALLOCATABLE :: XKER_N_SSCS
-REAL,SAVE :: XCOLSS,XCOLEXSS,XFNSSCS,          & !
+REAL,DIMENSION(:,:), ALLOCATABLE :: XKER_N_SSCS
+REAL      :: XCOLSS,XCOLEXSS,XFNSSCS,          & !
              XLBNSSCS1,XLBNSSCS2,              & ! Constants for snow self collection
-             XSCINTP1S,XSCINTP2S                 ! 
-INTEGER,SAVE :: NSCLBDAS                         !
+             XSCINTP1S,XSCINTP2S                 !
+INTEGER      :: NSCLBDAS                         !
 
-REAL,SAVE :: XAUTO3, XAUTO4,                   & ! Constants for pristine ice
+REAL      :: XAUTO3, XAUTO4,                   & ! Constants for pristine ice
              XLAUTS,   XLAUTS_THRESHOLD,       & ! autoconversion : AUT
-             XITAUTS, XITAUTS_THRESHOLD,       & ! (ini_ice_com) 
+             XITAUTS, XITAUTS_THRESHOLD,       & ! (ini_ice_com)
              XTEXAUTI
 !
-REAL,SAVE :: XCONCI_MAX                          ! Limitation of the pristine 
-                                   ! ice concentration (init and grid-nesting) 
-REAL,SAVE :: XFREFFI  ! Factor to compute the cloud ice effective radius
+REAL      :: XCONCI_MAX                          ! Limitation of the pristine
+                                   ! ice concentration (init and grid-nesting)
+REAL      :: XFREFFI  ! Factor to compute the cloud ice effective radius
 !
 ! For ICE4 nucleation
-REAL, SAVE :: XALPHA1
-REAL, SAVE :: XALPHA2
-REAL, SAVE :: XBETA1
-REAL, SAVE :: XBETA2
-REAL, SAVE :: XNU10
-REAL, SAVE :: XNU20
+REAL      :: XALPHA1
+REAL      :: XALPHA2
+REAL      :: XBETA1
+REAL      :: XBETA2
+REAL      :: XNU10
+REAL      :: XNU20
+END TYPE PARAM_LIMA_COLD_t
+!
+TYPE(PARAM_LIMA_COLD_t), TARGET, SAVE :: PARAM_LIMA_COLD
+!
+REAL, POINTER :: XLBEXI => NULL(), &
+                 XLBI => NULL(), &
+                 XLBEXS => NULL(), &
+                 XLBS => NULL(), &
+                 XNS => NULL(), &
+                 XAI => NULL(), &
+                 XBI => NULL(), &
+                 XC_I => NULL(), &
+                 XDI => NULL(), &
+                 XF0I => NULL(), &
+                 XF2I => NULL(), &
+                 XC1I => NULL(), &
+                 XF0IS => NULL(), &
+                 XF1IS => NULL(), &
+                 XAS => NULL(), &
+                 XBS => NULL(), &
+                 XCS => NULL(), &
+                 XDS => NULL(), &
+                 XCCS => NULL(), &
+                 XCXS => NULL(), &
+                 XF0S => NULL(), &
+                 XF1S => NULL(), &
+                 XC1S => NULL(), &
+                 XLBDAS_MIN => NULL(), &
+                 XLBDAS_MAX => NULL(), &
+                 XFVELOS => NULL(), &
+                 XTRANS_MP_GAMMAS => NULL(), &
+                 XFSEDRI => NULL(), &
+                 XFSEDCI => NULL(), &
+                 XFSEDRS => NULL(), &
+                 XFSEDCS => NULL(), &
+                 XFSEDS => NULL(), &
+                 XEXSEDS => NULL(), &
+                 XNUC_DEP => NULL(), &
+                 XEXSI_DEP => NULL(), &
+                 XEX_DEP => NULL(), &
+                 XNUC_CON => NULL(), &
+                 XEXTT_CON => NULL(), &
+                 XEX_CON => NULL(), &
+                 XMNU0 => NULL(), &
+                 XRHOI_HONH => NULL(), &
+                 XCEXP_DIFVAP_HONH => NULL(), &
+                 XCOEF_DIFVAP_HONH => NULL(), &
+                 XRCOEF_HONH => NULL(), &
+                 XCRITSAT1_HONH => NULL(), &
+                 XCRITSAT2_HONH => NULL(), &
+                 XTMIN_HONH => NULL(), &
+                 XTMAX_HONH => NULL(), &
+                 XDLNJODT1_HONH => NULL(), &
+                 XDLNJODT2_HONH => NULL(), &
+                 XC1_HONH => NULL(), &
+                 XC2_HONH => NULL(), &
+                 XC3_HONH => NULL(), &
+                 XC_HONC => NULL(), &
+                 XR_HONC => NULL(), &
+                 XTEXP1_HONC => NULL(), &
+                 XTEXP2_HONC => NULL(), &
+                 XTEXP3_HONC => NULL(), &
+                 XTEXP4_HONC => NULL(), &
+                 XTEXP5_HONC => NULL(), &
+                 XCSCNVI_MAX => NULL(), &
+                 XLBDASCNVI_MAX => NULL(), &
+                 XRHORSMIN => NULL(), &
+                 XDSCNVI_LIM => NULL(), &
+                 XLBDASCNVI_LIM => NULL(), &
+                 XC0DEPSI => NULL(), &
+                 XC1DEPSI => NULL(), &
+                 XR0DEPSI => NULL(), &
+                 XR1DEPSI => NULL(), &
+                 XSCFAC => NULL(), &
+                 X0DEPI => NULL(), &
+                 X2DEPI => NULL(), &
+                 X0DEPS => NULL(), &
+                 X1DEPS => NULL(), &
+                 XEX0DEPS => NULL(), &
+                 XEX1DEPS => NULL(), &
+                 XDICNVS_LIM => NULL(), &
+                 XLBDAICNVS_LIM => NULL(), &
+                 XC0DEPIS => NULL(), &
+                 XC1DEPIS => NULL(), &
+                 XR0DEPIS => NULL(), &
+                 XR1DEPIS => NULL(), &
+                 XCOLEXIS => NULL(), &
+                 XAGGS_CLARGE1 => NULL(), &
+                 XAGGS_CLARGE2 => NULL(), &
+                 XAGGS_RLARGE1 => NULL(), &
+                 XAGGS_RLARGE2 => NULL(), &
+                 XFIAGGS => NULL(), &
+                 XEXIAGGS => NULL(), &
+                 XACCS1 => NULL(), &
+                 XSPONBUDS1 => NULL(), &
+                 XSPONBUDS2 => NULL(), &
+                 XSPONBUDS3 => NULL(), &
+                 XSPONCOEFS2 => NULL(), &
+                 XKER_ZRNIC_A1 => NULL(), &
+                 XKER_ZRNIC_A2 => NULL(), &
+                 XSELFI => NULL(), &
+                 XCOLEXII => NULL(), &
+                 XCOLSS => NULL(), &
+                 XCOLEXSS => NULL(), &
+                 XFNSSCS => NULL(), &
+                 XLBNSSCS1 => NULL(), &
+                 XLBNSSCS2 => NULL(), &
+                 XSCINTP1S => NULL(), &
+                 XSCINTP2S  => NULL(), &
+                 XAUTO3 => NULL(), &
+                 XAUTO4 => NULL(), &
+                 XLAUTS => NULL(), &
+                 XLAUTS_THRESHOLD => NULL(), &
+                 XITAUTS => NULL(), &
+                 XITAUTS_THRESHOLD => NULL(), &
+                 XTEXAUTI => NULL(), &
+                 XCONCI_MAX => NULL(), &
+                 XFREFFI => NULL(), &
+                 XALPHA1 => NULL(), &
+                 XALPHA2 => NULL(), &
+                 XBETA1 => NULL(), &
+                 XBETA2 => NULL(), &
+                 XNU10 => NULL(), &
+                 XNU20 => NULL()
+INTEGER, POINTER :: NSCLBDAS => NULL()
+REAL,DIMENSION(:,:),POINTER :: XKER_N_SSCS => NULL()
+CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(8),PARAMETER &
+                              :: CLIMA_COLD_NAMES=(/'CICE    ','CSNOW   ','CGRAUPEL','CHAIL   ',&
+                                                        'CIFNFREE','CIFNNUCL', &
+                                                        'CCNINIMM','CCCNNUCL'/)
+                                 ! basenames of the SV articles stored
+                                 ! in the binary files
+                                 !with IF:Ice-nuclei Free (nonactivated IFN by Dep/Cond)
+                                 !     IN:Ice-nuclei Nucleated (activated IFN by Dep/Cond)
+                                 !     NI:Nuclei Immersed (activated IFN by Imm)
+                                 !     HF:Homogeneous Freezing
+CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(8),PARAMETER &
+                              :: CLIMA_COLD_CONC=(/'NI ','NS ','NG ','NH ','NIF','NIN','NNI','NNH'/)!for DIAG
+
+!
+CONTAINS
+SUBROUTINE PARAM_LIMA_COLD_ASSOCIATE()
+IMPLICIT NONE
+IF(.NOT. ASSOCIATED(XLBEXI)) THEN
+  XLBEXI             => PARAM_LIMA_COLD%XLBEXI
+  XLBI               => PARAM_LIMA_COLD%XLBI
+  XLBEXS             => PARAM_LIMA_COLD%XLBEXS
+  XLBS               => PARAM_LIMA_COLD%XLBS
+  XNS                => PARAM_LIMA_COLD%XNS
+  XAI                => PARAM_LIMA_COLD%XAI
+  XBI                => PARAM_LIMA_COLD%XBI
+  XC_I               => PARAM_LIMA_COLD%XC_I
+  XDI                => PARAM_LIMA_COLD%XDI
+  XF0I               => PARAM_LIMA_COLD%XF0I
+  XF2I               => PARAM_LIMA_COLD%XF2I
+  XC1I               => PARAM_LIMA_COLD%XC1I
+  XF0IS              => PARAM_LIMA_COLD%XF0IS
+  XF1IS              => PARAM_LIMA_COLD%XF1IS
+  XAS                => PARAM_LIMA_COLD%XAS
+  XBS                => PARAM_LIMA_COLD%XBS
+  XCS                => PARAM_LIMA_COLD%XCS
+  XDS                => PARAM_LIMA_COLD%XDS
+  XCCS               => PARAM_LIMA_COLD%XCCS
+  XCXS               => PARAM_LIMA_COLD%XCXS
+  XF0S               => PARAM_LIMA_COLD%XF0S
+  XF1S               => PARAM_LIMA_COLD%XF1S
+  XC1S               => PARAM_LIMA_COLD%XC1S
+  XLBDAS_MIN         => PARAM_LIMA_COLD%XLBDAS_MIN
+  XLBDAS_MAX         => PARAM_LIMA_COLD%XLBDAS_MAX
+  XFVELOS            => PARAM_LIMA_COLD%XFVELOS
+  XTRANS_MP_GAMMAS   => PARAM_LIMA_COLD%XTRANS_MP_GAMMAS
+  XFSEDRI            => PARAM_LIMA_COLD%XFSEDRI
+  XFSEDCI            => PARAM_LIMA_COLD%XFSEDCI
+  XFSEDRS            => PARAM_LIMA_COLD%XFSEDRS
+  XFSEDCS            => PARAM_LIMA_COLD%XFSEDCS
+  XFSEDS             => PARAM_LIMA_COLD%XFSEDS
+  XEXSEDS            => PARAM_LIMA_COLD%XEXSEDS
+  XNUC_DEP           => PARAM_LIMA_COLD%XNUC_DEP
+  XEXSI_DEP          => PARAM_LIMA_COLD%XEXSI_DEP
+  XEX_DEP            => PARAM_LIMA_COLD%XEX_DEP
+  XNUC_CON           => PARAM_LIMA_COLD%XNUC_CON
+  XEXTT_CON          => PARAM_LIMA_COLD%XEXTT_CON
+  XEX_CON            => PARAM_LIMA_COLD%XEX_CON
+  XMNU0              => PARAM_LIMA_COLD%XMNU0
+  XRHOI_HONH         => PARAM_LIMA_COLD%XRHOI_HONH
+  XCEXP_DIFVAP_HONH  => PARAM_LIMA_COLD%XCEXP_DIFVAP_HONH
+  XCOEF_DIFVAP_HONH  => PARAM_LIMA_COLD%XCOEF_DIFVAP_HONH
+  XRCOEF_HONH        => PARAM_LIMA_COLD%XRCOEF_HONH
+  XCRITSAT1_HONH     => PARAM_LIMA_COLD%XCRITSAT1_HONH
+  XCRITSAT2_HONH     => PARAM_LIMA_COLD%XCRITSAT2_HONH
+  XTMIN_HONH         => PARAM_LIMA_COLD%XTMIN_HONH
+  XTMAX_HONH         => PARAM_LIMA_COLD%XTMAX_HONH
+  XDLNJODT1_HONH     => PARAM_LIMA_COLD%XDLNJODT1_HONH
+  XDLNJODT2_HONH     => PARAM_LIMA_COLD%XDLNJODT2_HONH
+  XC1_HONH           => PARAM_LIMA_COLD%XC1_HONH
+  XC2_HONH           => PARAM_LIMA_COLD%XC2_HONH
+  XC3_HONH           => PARAM_LIMA_COLD%XC3_HONH
+  XC_HONC            => PARAM_LIMA_COLD%XC_HONC
+  XR_HONC            => PARAM_LIMA_COLD%XR_HONC
+  XTEXP1_HONC        => PARAM_LIMA_COLD%XTEXP1_HONC
+  XTEXP2_HONC        => PARAM_LIMA_COLD%XTEXP2_HONC
+  XTEXP3_HONC        => PARAM_LIMA_COLD%XTEXP3_HONC
+  XTEXP4_HONC        => PARAM_LIMA_COLD%XTEXP4_HONC
+  XTEXP5_HONC        => PARAM_LIMA_COLD%XTEXP5_HONC
+  XCSCNVI_MAX        => PARAM_LIMA_COLD%XCSCNVI_MAX
+  XLBDASCNVI_MAX     => PARAM_LIMA_COLD%XLBDASCNVI_MAX
+  XRHORSMIN          => PARAM_LIMA_COLD%XRHORSMIN
+  XDSCNVI_LIM        => PARAM_LIMA_COLD%XDSCNVI_LIM
+  XLBDASCNVI_LIM     => PARAM_LIMA_COLD%XLBDASCNVI_LIM
+  XC0DEPSI           => PARAM_LIMA_COLD%XC0DEPSI
+  XC1DEPSI           => PARAM_LIMA_COLD%XC1DEPSI
+  XR0DEPSI           => PARAM_LIMA_COLD%XR0DEPSI
+  XR1DEPSI           => PARAM_LIMA_COLD%XR1DEPSI
+  XSCFAC             => PARAM_LIMA_COLD%XSCFAC
+  X0DEPI             => PARAM_LIMA_COLD%X0DEPI
+  X2DEPI             => PARAM_LIMA_COLD%X2DEPI
+  X0DEPS             => PARAM_LIMA_COLD%X0DEPS
+  X1DEPS             => PARAM_LIMA_COLD%X1DEPS
+  XEX0DEPS           => PARAM_LIMA_COLD%XEX0DEPS
+  XEX1DEPS           => PARAM_LIMA_COLD%XEX1DEPS
+  XDICNVS_LIM        => PARAM_LIMA_COLD%XDICNVS_LIM
+  XLBDAICNVS_LIM     => PARAM_LIMA_COLD%XLBDAICNVS_LIM
+  XC0DEPIS           => PARAM_LIMA_COLD%XC0DEPIS
+  XC1DEPIS           => PARAM_LIMA_COLD%XC1DEPIS
+  XR0DEPIS           => PARAM_LIMA_COLD%XR0DEPIS
+  XR1DEPIS           => PARAM_LIMA_COLD%XR1DEPIS
+  XCOLEXIS           => PARAM_LIMA_COLD%XCOLEXIS
+  XAGGS_CLARGE1      => PARAM_LIMA_COLD%XAGGS_CLARGE1
+  XAGGS_CLARGE2      => PARAM_LIMA_COLD%XAGGS_CLARGE2
+  XAGGS_RLARGE1      => PARAM_LIMA_COLD%XAGGS_RLARGE1
+  XAGGS_RLARGE2      => PARAM_LIMA_COLD%XAGGS_RLARGE2
+  XFIAGGS            => PARAM_LIMA_COLD%XFIAGGS
+  XEXIAGGS           => PARAM_LIMA_COLD%XEXIAGGS
+  XACCS1             => PARAM_LIMA_COLD%XACCS1
+  XSPONBUDS1         => PARAM_LIMA_COLD%XSPONBUDS1
+  XSPONBUDS2         => PARAM_LIMA_COLD%XSPONBUDS2
+  XSPONBUDS3         => PARAM_LIMA_COLD%XSPONBUDS3
+  XSPONCOEFS2        => PARAM_LIMA_COLD%XSPONCOEFS2
+  XKER_ZRNIC_A1      => PARAM_LIMA_COLD%XKER_ZRNIC_A1
+  XKER_ZRNIC_A2      => PARAM_LIMA_COLD%XKER_ZRNIC_A2
+  XSELFI             => PARAM_LIMA_COLD%XSELFI
+  XCOLEXII           => PARAM_LIMA_COLD%XCOLEXII
+  XCOLSS             => PARAM_LIMA_COLD%XCOLSS
+  XCOLEXSS           => PARAM_LIMA_COLD%XCOLEXSS
+  XFNSSCS            => PARAM_LIMA_COLD%XFNSSCS
+  XLBNSSCS1          => PARAM_LIMA_COLD%XLBNSSCS1
+  XLBNSSCS2          => PARAM_LIMA_COLD%XLBNSSCS2
+  XSCINTP1S          => PARAM_LIMA_COLD%XSCINTP1S
+  XSCINTP2S          => PARAM_LIMA_COLD%XSCINTP2S
+  XAUTO3             => PARAM_LIMA_COLD%XAUTO3
+  XAUTO4             => PARAM_LIMA_COLD%XAUTO4
+  XLAUTS             => PARAM_LIMA_COLD%XLAUTS
+  XLAUTS_THRESHOLD   => PARAM_LIMA_COLD%XLAUTS_THRESHOLD
+  XITAUTS            => PARAM_LIMA_COLD%XITAUTS
+  XITAUTS_THRESHOLD  => PARAM_LIMA_COLD%XITAUTS_THRESHOLD
+  XTEXAUTI           => PARAM_LIMA_COLD%XTEXAUTI
+  XCONCI_MAX         => PARAM_LIMA_COLD%XCONCI_MAX
+  XFREFFI            => PARAM_LIMA_COLD%XFREFFI
+  XALPHA1            => PARAM_LIMA_COLD%XALPHA1
+  XALPHA2            => PARAM_LIMA_COLD%XALPHA2
+  XBETA1             => PARAM_LIMA_COLD%XBETA1
+  XBETA2             => PARAM_LIMA_COLD%XBETA2
+  XNU10              => PARAM_LIMA_COLD%XNU10
+  XNU20              => PARAM_LIMA_COLD%XNU20
+
+  NSCLBDAS           => PARAM_LIMA_COLD%NSCLBDAS
+ENDIF
+END SUBROUTINE PARAM_LIMA_COLD_ASSOCIATE
+!
+SUBROUTINE PARAM_LIMA_COLD_ALLOCATE(HNAME, KDIM1, KDIM2)
+  IMPLICIT NONE
+  CHARACTER(LEN=*), INTENT(IN) :: HNAME
+  INTEGER, INTENT(IN)          :: KDIM1
+  INTEGER, INTENT(IN)          :: KDIM2
+
+  SELECT CASE(TRIM(HNAME))
+    CASE('XKER_N_SSCS')
+      ALLOCATE(PARAM_LIMA_COLD%XKER_N_SSCS(KDIM1, KDIM2))
+      XKER_N_SSCS => PARAM_LIMA_COLD%XKER_N_SSCS
+  END SELECT
+END SUBROUTINE PARAM_LIMA_COLD_ALLOCATE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/modd_param_lima_mixed.F90 b/src/common/micro/modd_param_lima_mixed.F90
index 6a9c763dc3fef2905f7767731bfb151e6356bfe6..66b0d047876808d415b4530583aa19feb576eaf0 100644
--- a/src/common/micro/modd_param_lima_mixed.F90
+++ b/src/common/micro/modd_param_lima_mixed.F90
@@ -3,17 +3,17 @@
 !     ###########################{
 !
 !!****  *MODD_PARAM_LIMA_MIXED* - declaration of some descriptive parameters and
-!!                                microphysical factors extensively used in 
+!!                                microphysical factors extensively used in
 !!                                the LIMA mixed scheme.
 !!    AUTHOR
 !!    ------
-!!  	J.-P. Pinty  *Laboratoire d'Aerologie*
+!!      J.-P. Pinty  *Laboratoire d'Aerologie*
 !!      S.    Berthet    * Laboratoire d'Aerologie*
 !!      B.    Vié        * Laboratoire d'Aerologie*
 !!
 !!    MODIFICATIONS
 !!    -------------
-!!      Original             ??/??/13 
+!!      Original             ??/??/13
 !!      C. Barthe            14/03/2022  add CIBU and RDSF
 !       J. Wurtz                03/2022: new snow characteristics
 !       M. Taufour              07/2022: add concentration for snow, graupel, hail
@@ -21,12 +21,13 @@
 !-------------------------------------------------------------------------------
 !
 IMPLICIT NONE
+TYPE PARAM_LIMA_MIXED_t
 !
 !*       1.   DESCRIPTIVE PARAMETERS
 !             ----------------------
 !
 !     Declaration of microphysical constants, including the descriptive
-!     parameters for the raindrop and the ice crystal habits, and the 
+!     parameters for the raindrop and the ice crystal habits, and the
 !     parameters relevant of the dimensional distributions.
 !
 !         m(D)    = XAx * D**XBx      : Mass-MaxDim relationship
@@ -37,17 +38,17 @@ IMPLICIT NONE
 !
 !              and
 !
-!         XALPHAx, XNUx                        : Generalized GAMMA law 
-!         Lbda = XLBx * (r_x*rho_dref)**XLBEXx : Slope parameter of the 
+!         XALPHAx, XNUx                        : Generalized GAMMA law
+!         Lbda = XLBx * (r_x*rho_dref)**XLBEXx : Slope parameter of the
 !                                                distribution law
 !
-REAL,SAVE :: XAG,XBG,XCG,XDG,XCCG,XCXG,XF0G,XF1G,XC1G ! Graupel        charact.
-REAL,SAVE :: XLBEXG,XLBG,XNG          ! Graupel        distribution parameters 
-REAL,SAVE :: XLBDAG_MAX               ! Max values allowed for the shape
+REAL      :: XAG,XBG,XCG,XDG,XCCG,XCXG,XF0G,XF1G,XC1G ! Graupel        charact.
+REAL      :: XLBEXG,XLBG,XNG          ! Graupel        distribution parameters
+REAL      :: XLBDAG_MAX               ! Max values allowed for the shape
                                       ! parameter of graupeln
 !
-REAL,SAVE :: XAH,XBH,XCH,XDH,XCCH,XCXH,XF0H,XF1H,XC1H ! Hail           charact.
-REAL,SAVE :: XALPHAH,XNUH,XLBEXH,XLBH ! Hail           distribution parameters
+REAL      :: XAH,XBH,XCH,XDH,XCCH,XCXH,XF0H,XF1H,XC1H ! Hail           charact.
+REAL      :: XALPHAH,XNUH,XLBEXH,XLBH ! Hail           distribution parameters
 !
 !-------------------------------------------------------------------------------
 !
@@ -56,7 +57,7 @@ REAL,SAVE :: XALPHAH,XNUH,XLBEXH,XLBH ! Hail           distribution parameters
 !
 ! Constants for ice-ice collision : CIBU
 !
-REAL, SAVE :: XDCSLIM_CIBU_MIN,                & ! aggregates min diam. : 0.2 mm
+REAL       :: XDCSLIM_CIBU_MIN,                & ! aggregates min diam. : 0.2 mm
               XDCSLIM_CIBU_MAX,                & ! aggregates max diam. : 1.0 mm
               XDCGLIM_CIBU_MIN,                & ! graupel min diam. : 2 mm
               XGAMINC_BOUND_CIBU_SMIN,         & ! Min val. of Lbda_s*dlim
@@ -71,136 +72,136 @@ REAL, SAVE :: XDCSLIM_CIBU_MIN,                & ! aggregates min diam. : 0.2 mm
               XMOMGS_CIBU_1,XMOMGS_CIBU_2,     &
               XMOMGS_CIBU_3
 !
-REAL, DIMENSION(:,:), SAVE, ALLOCATABLE        &
+REAL, DIMENSION(:,:)      , ALLOCATABLE        &
                        :: XGAMINC_CIBU_S,      & ! Tab.incomplete Gamma function
                           XGAMINC_CIBU_G         ! Tab.incomplete Gamma function
 !
 ! Constants for raindrop shattering : RDSF
 !
-REAL, SAVE :: XDCRLIM_RDSF_MIN,                & ! Raindrops min diam. : 0.2 mm
+REAL       :: XDCRLIM_RDSF_MIN,                & ! Raindrops min diam. : 0.2 mm
               XGAMINC_BOUND_RDSF_RMIN,         & ! Min val. of Lbda_r*dlim
               XGAMINC_BOUND_RDSF_RMAX,         & ! Max val. of Lbda_r*dlim
               XRDSFINTP_R,XRDSFINTP1_R,        & !
               XFACTOR_RDSF_NI,                 & ! Factor for final RDSF Eq.
               XMOMGR_RDSF
 !
-REAL, DIMENSION(:), SAVE, ALLOCATABLE          &
+REAL, DIMENSION(:)      , ALLOCATABLE          &
                        :: XGAMINC_RDSF_R         ! Tab.incomplete Gamma function
 !
 !
 !*       3.   MICROPHYSICAL FACTORS - Graupel
 !             -------------------------------
 !
-REAL,SAVE :: XFSEDG, XEXSEDG, XFSEDRG, XFSEDCG   ! Sedimentation fluxes of Graupel
+REAL      :: XFSEDG, XEXSEDG, XFSEDRG, XFSEDCG   ! Sedimentation fluxes of Graupel
 !
-REAL,SAVE :: X0DEPG,X1DEPG,XEX0DEPG,XEX1DEPG     ! Deposition on graupel
+REAL      :: X0DEPG,X1DEPG,XEX0DEPG,XEX1DEPG     ! Deposition on graupel
 !
-REAL,SAVE :: XHMTMIN,XHMTMAX,XHM1,XHM2,        & ! Constants for the
+REAL      :: XHMTMIN,XHMTMAX,XHM1,XHM2,        & ! Constants for the
              XHM_YIELD,XHM_COLLCS,XHM_FACTS,   & !      revised
                        XHM_COLLCG,XHM_FACTG,   & ! Hallett-Mossop process
-    	     XGAMINC_HMC_BOUND_MIN,            & ! Min val. of Lbda_c for HMC
-    	     XGAMINC_HMC_BOUND_MAX,            & ! Max val. of Lbda_c for HMC
+             XGAMINC_HMC_BOUND_MIN,            & ! Min val. of Lbda_c for HMC
+             XGAMINC_HMC_BOUND_MAX,            & ! Max val. of Lbda_c for HMC
              XHMSINTP1,XHMSINTP2,              & ! (this is no more used !)
              XHMLINTP1,XHMLINTP2
 !
-REAL,SAVE :: XDCSLIM,XCOLCS,                   & ! Constants for the riming of
-    	     XEXCRIMSS,XCRIMSS,                & ! the aggregates : RIM
-    	     XEXCRIMSG,XCRIMSG,                & !
-    	     XEXSRIMCG,XSRIMCG,                & !
+REAL      :: XDCSLIM,XCOLCS,                   & ! Constants for the riming of
+             XEXCRIMSS,XCRIMSS,                & ! the aggregates : RIM
+             XEXCRIMSG,XCRIMSG,                & !
+             XEXSRIMCG,XSRIMCG,                & !
              XSRIMCG2, XSRIMCG3, XEXSRIMCG2,   & ! Murakami 1990
-    	     XGAMINC_BOUND_MIN,                & ! Min val. of Lbda_s for RIM
-    	     XGAMINC_BOUND_MAX,                & ! Max val. of Lbda_s for RIM
-    	     XRIMINTP1,XRIMINTP2                 ! Csts for lin. interpol. of 
+             XGAMINC_BOUND_MIN,                & ! Min val. of Lbda_s for RIM
+             XGAMINC_BOUND_MAX,                & ! Max val. of Lbda_s for RIM
+             XRIMINTP1,XRIMINTP2                 ! Csts for lin. interpol. of
                                                  ! the tab. incomplete Gamma law
-INTEGER,SAVE :: NGAMINC                          ! Number of tab. Lbda_s
-REAL, DIMENSION(:), SAVE, ALLOCATABLE          &
+INTEGER      :: NGAMINC                          ! Number of tab. Lbda_s
+REAL, DIMENSION(:)      , ALLOCATABLE          &
                        :: XGAMINC_RIM1,        & ! Tab. incomplete Gamma funct.
                           XGAMINC_RIM2,        & ! for XDS+2 and for XBS
                           XGAMINC_RIM4,        & ! Murakami
                           XGAMINC_HMC            ! and for the HM process
 !
-REAL,SAVE :: XFRACCSS,                         & ! Constants for the accretion 
-             XFNRACCSS,                        & ! Constants for the accretion 
+REAL      :: XFRACCSS,                         & ! Constants for the accretion
+             XFNRACCSS,                        & ! Constants for the accretion
              XLBRACCS1,XLBRACCS2,XLBRACCS3,    & ! raindrops onto the aggregates
-             XLBNRACCS1,XLBNRACCS2,XLBNRACCS3, & ! raindrops onto the aggregates 
+             XLBNRACCS1,XLBNRACCS2,XLBNRACCS3, & ! raindrops onto the aggregates
              XFSACCRG,                         & ! ACC (processes RACCSS and
-             XFNSACCRG,                        & ! ACC (processes RACCSS and 
+             XFNSACCRG,                        & ! ACC (processes RACCSS and
              XLBSACCR1,XLBSACCR2,XLBSACCR3,    & !                SACCRG)
-             XLBNSACCR1,XLBNSACCR2,XLBNSACCR3, & !                SACCRG)             
+             XLBNSACCR1,XLBNSACCR2,XLBNSACCR3, & !                SACCRG)
              XSCLBDAS_MIN,                     & ! Min val. of Lbda_s for ACC
-    	     XSCLBDAS_MAX,                     & ! Max val. of Lbda_s for ACC   
-    	     XACCLBDAS_MIN,                    & ! Min val. of Lbda_s for ACC
-    	     XACCLBDAS_MAX,                    & ! Max val. of Lbda_s for ACC
-    	     XACCLBDAR_MIN,                    & ! Min val. of Lbda_r for ACC
-    	     XACCLBDAR_MAX,                    & ! Max val. of Lbda_r for ACC
-    	     XACCINTP1S,XACCINTP2S,            & ! Csts for bilin. interpol. of 
-    	     XACCINTP1R,XACCINTP2R               !   Lbda_s and Lbda_r in the 
-                        			 ! XKER_RACCSS and XKER_SACCRG
-                          			 !            tables
-INTEGER,SAVE :: NACCLBDAS,                     & ! Number of Lbda_s values and
-    	        NACCLBDAR                        !   of Lbda_r values in the
-                        			 ! XKER_RACCSS and XKER_SACCRG
-                        			 !            tables
-REAL,DIMENSION(:,:), SAVE, ALLOCATABLE         &
-       			 :: XKER_RACCSS,       & ! Normalized kernel for RACCSS
-       			    XKER_RACCS,        & ! Normalized kernel for RACCS
-       			    XKER_SACCRG,        & ! Normalized kernel for SACCRG 
-       			    XKER_N_RACCSS,     & ! Normalized kernel for RACCSS  
-       			    XKER_N_RACCS,      & ! Normalized kernel for RACCS   
-       			    XKER_N_SACCRG        ! Normalized kernel for SACCRG
-REAL,SAVE :: XFSCVMG                             ! Melting-conversion factor of
+             XSCLBDAS_MAX,                     & ! Max val. of Lbda_s for ACC
+             XACCLBDAS_MIN,                    & ! Min val. of Lbda_s for ACC
+             XACCLBDAS_MAX,                    & ! Max val. of Lbda_s for ACC
+             XACCLBDAR_MIN,                    & ! Min val. of Lbda_r for ACC
+             XACCLBDAR_MAX,                    & ! Max val. of Lbda_r for ACC
+             XACCINTP1S,XACCINTP2S,            & ! Csts for bilin. interpol. of
+             XACCINTP1R,XACCINTP2R               !   Lbda_s and Lbda_r in the
+                                                 ! XKER_RACCSS and XKER_SACCRG
+                                                 !            tables
+INTEGER      :: NACCLBDAS,                     & ! Number of Lbda_s values and
+                NACCLBDAR                        !   of Lbda_r values in the
+                                                 ! XKER_RACCSS and XKER_SACCRG
+                                                 !            tables
+REAL,DIMENSION(:,:)      , ALLOCATABLE         &
+                    :: XKER_RACCSS,       & ! Normalized kernel for RACCSS
+                       XKER_RACCS,        & ! Normalized kernel for RACCS
+                       XKER_SACCRG,       & ! Normalized kernel for SACCRG
+                       XKER_N_RACCSS,     & ! Normalized kernel for RACCSS
+                       XKER_N_RACCS,      & ! Normalized kernel for RACCS
+                       XKER_N_SACCRG        ! Normalized kernel for SACCRG
+REAL      :: XFSCVMG                             ! Melting-conversion factor of
                                                  ! the aggregates
 !
-REAL,SAVE :: XCOLIR,                           & ! Constants for rain contact
-    	     XEXRCFRI,XRCFRI,                  & ! freezing : CFR
-    	     XEXICFRR,XICFRR                     !
+REAL      :: XCOLIR,                           & ! Constants for rain contact
+             XEXRCFRI,XRCFRI,                  & ! freezing : CFR
+             XEXICFRR,XICFRR                     !
 !
-REAL,SAVE :: XFCDRYG,                          & ! Constants for the dry growth
+REAL      :: XFCDRYG,                          & ! Constants for the dry growth
              XCOLCG,                           & ! of the graupeln :
-             XCOLIG,XCOLEXIG,XFIDRYG,          & ! 
+             XCOLIG,XCOLEXIG,XFIDRYG,          & !
              XCOLSG,XCOLEXSG,XFSDRYG,XFNSDRYG, & !             RCDRYG
              XLBSDRYG1,XLBSDRYG2,XLBSDRYG3,    & !             RIDRYG
-             XLBNSDRYG1,XLBNSDRYG2,XLBNSDRYG3, & !             RIDRYG  
+             XLBNSDRYG1,XLBNSDRYG2,XLBNSDRYG3, & !             RIDRYG
              XFRDRYG,XFNRDRYG,                 & !             RSDRYG
              XLBRDRYG1,XLBRDRYG2,XLBRDRYG3,    & !             RRDRYG
-             XLBNRDRYG1,XLBNRDRYG2,XLBNRDRYG3, & !             RRDRYG         
+             XLBNRDRYG1,XLBNRDRYG2,XLBNRDRYG3, & !             RRDRYG
              XDRYLBDAR_MIN,                    & ! Min val. of Lbda_r for DRY
-    	     XDRYLBDAR_MAX,                    & ! Max val. of Lbda_r for DRY
+             XDRYLBDAR_MAX,                    & ! Max val. of Lbda_r for DRY
              XDRYLBDAS_MIN,                    & ! Min val. of Lbda_s for DRY
-    	     XDRYLBDAS_MAX,                    & ! Max val. of Lbda_s for DRY
-    	     XDRYLBDAG_MIN,                    & ! Min val. of Lbda_g for DRY
-    	     XDRYLBDAG_MAX,                    & ! Max val. of Lbda_g for DRY
-    	     XDRYINTP1R,XDRYINTP2R,            & ! Csts for bilin. interpol. of 
-    	     XDRYINTP1S,XDRYINTP2S,            & ! Lbda_r, Lbda_s and Lbda_g in
-    	     XDRYINTP1G,XDRYINTP2G               ! the XKER_SDRYG and XKER_RDRYG
+             XDRYLBDAS_MAX,                    & ! Max val. of Lbda_s for DRY
+             XDRYLBDAG_MIN,                    & ! Min val. of Lbda_g for DRY
+             XDRYLBDAG_MAX,                    & ! Max val. of Lbda_g for DRY
+             XDRYINTP1R,XDRYINTP2R,            & ! Csts for bilin. interpol. of
+             XDRYINTP1S,XDRYINTP2S,            & ! Lbda_r, Lbda_s and Lbda_g in
+             XDRYINTP1G,XDRYINTP2G               ! the XKER_SDRYG and XKER_RDRYG
+                                                 !            tables
+INTEGER      :: NDRYLBDAR,                     & ! Number of Lbda_r,
+                NDRYLBDAS,                     & !        of Lbda_s and
+                NDRYLBDAG                        !        of Lbda_g values in
+                                                 ! the XKER_SDRYG and XKER_RDRYG
                                                  !            tables
-INTEGER,SAVE :: NDRYLBDAR,                     & ! Number of Lbda_r,
-    	        NDRYLBDAS,                     & !        of Lbda_s and
-    	        NDRYLBDAG                        !        of Lbda_g values in
-    	                                         ! the XKER_SDRYG and XKER_RDRYG
-                        			 !            tables
-REAL,DIMENSION(:,:), SAVE, ALLOCATABLE         &
+REAL,DIMENSION(:,:)      , ALLOCATABLE         &
                          :: XKER_SDRYG,        & ! Normalized kernel for SDRYG
-       			    XKER_RDRYG,        & ! Normalized kernel for RDRYG 
-       			    XKER_N_SDRYG,      & ! Normalized kernel for RDRYG    
-       			    XKER_N_RDRYG         ! Normalized kernel for RDRYG 
+                            XKER_RDRYG,        & ! Normalized kernel for RDRYG
+                            XKER_N_SDRYG,      & ! Normalized kernel for RDRYG
+                            XKER_N_RDRYG         ! Normalized kernel for RDRYG
 !
 !-------------------------------------------------------------------------------
 !
 !*       4.   MICROPHYSICAL FACTORS - Hail
 !             ----------------------------
 !
-REAL,SAVE :: XFSEDH,XEXSEDH,XFSEDRH,XFSEDCH      ! Constants for sedimentation
+REAL      :: XFSEDH,XEXSEDH,XFSEDRH,XFSEDCH      ! Constants for sedimentation
 !
 !
-REAL,SAVE :: X0DEPH,X1DEPH,XEX0DEPH,XEX1DEPH     ! Constants for deposition
+REAL      :: X0DEPH,X1DEPH,XEX0DEPH,XEX1DEPH     ! Constants for deposition
 !
-REAL,SAVE :: XFWETH,XFSWETH,XFNSWETH,          & ! Constants for the wet growth
+REAL      :: XFWETH,XFSWETH,XFNSWETH,          & ! Constants for the wet growth
              XLBSWETH1,XLBSWETH2,XLBSWETH3,    & ! of the hailstones : WET
-             XLBNSWETH1,XLBNSWETH2,XLBNSWETH3, & ! of the hailstones : WET 
+             XLBNSWETH1,XLBNSWETH2,XLBNSWETH3, & ! of the hailstones : WET
              XFGWETH, XFNGWETH,                & !   processes RSWETH
              XLBGWETH1,XLBGWETH2,XLBGWETH3,    & !             RGWETH
-             XLBNGWETH1,XLBNGWETH2,XLBNGWETH3, & !             RGWETH   
+             XLBNGWETH1,XLBNGWETH2,XLBNGWETH3, & !             RGWETH
              XWETLBDAS_MIN,                    & ! Min val. of Lbda_s for WET
              XWETLBDAS_MAX,                    & ! Max val. of Lbda_s for WET
              XWETLBDAG_MIN,                    & ! Min val. of Lbda_g for WET
@@ -211,17 +212,530 @@ REAL,SAVE :: XFWETH,XFSWETH,XFNSWETH,          & ! Constants for the wet growth
              XWETINTP1G,XWETINTP2G,            & ! Lbda_r, Lbda_s and Lbda_g in
              XWETINTP1H,XWETINTP2H               ! the XKER_SWETH and XKER_GWETH
                                                  !            tables
-INTEGER,SAVE :: NWETLBDAS,                     & ! Number of Lbda_s,
+INTEGER      :: NWETLBDAS,                     & ! Number of Lbda_s,
                 NWETLBDAG,                     & !        of Lbda_g and
                 NWETLBDAH                        !        of Lbda_h values in
                                                  ! the XKER_SWETH and XKER_GWETH
                                                  !            tables
-REAL,DIMENSION(:,:), SAVE, ALLOCATABLE         &
+REAL,DIMENSION(:,:), ALLOCATABLE               &
                          :: XKER_SWETH,        & ! Normalized kernel for SWETH
                             XKER_GWETH,        & ! Normalized kernel for GWETH
-                            XKER_N_SWETH,      & ! Normalized kernel for GWETH 
+                            XKER_N_SWETH,      & ! Normalized kernel for GWETH
                             XKER_N_GWETH         ! Normalized kernel for GWETH
+END TYPE PARAM_LIMA_MIXED_t
+!
+TYPE(PARAM_LIMA_MIXED_t), TARGET       :: PARAM_LIMA_MIXED
+!
+REAL, POINTER :: XAG => NULL(), &
+                 XBG => NULL(), &
+                 XCG => NULL(), &
+                 XDG => NULL(), &
+                 XCCG => NULL(), &
+                 XCXG => NULL(), &
+                 XF0G => NULL(), &
+                 XF1G => NULL(), &
+                 XC1G => NULL(), &
+                 XLBEXG => NULL(), &
+                 XLBG => NULL(), &
+                 XNG => NULL(), &
+                 XLBDAG_MAX => NULL(), &
+                 XAH => NULL(), &
+                 XBH => NULL(), &
+                 XCH => NULL(), &
+                 XDH => NULL(), &
+                 XCCH => NULL(), &
+                 XCXH => NULL(), &
+                 XF0H => NULL(), &
+                 XF1H => NULL(), &
+                 XC1H => NULL(), &
+                 XALPHAH => NULL(), &
+                 XNUH => NULL(), &
+                 XLBEXH => NULL(), &
+                 XLBH => NULL(), &
+                 XDCSLIM_CIBU_MIN => NULL(), &
+                 XDCSLIM_CIBU_MAX => NULL(), &
+                 XDCGLIM_CIBU_MIN => NULL(), &
+                 XGAMINC_BOUND_CIBU_SMIN => NULL(), &
+                 XGAMINC_BOUND_CIBU_SMAX => NULL(), &
+                 XGAMINC_BOUND_CIBU_GMIN => NULL(), &
+                 XGAMINC_BOUND_CIBU_GMAX => NULL(), &
+                 XCIBUINTP_S => NULL(), &
+                 XCIBUINTP1_S => NULL(), &
+                 XCIBUINTP2_S => NULL(), &
+                 XCIBUINTP_G => NULL(), &
+                 XCIBUINTP1_G => NULL(), &
+                 XFACTOR_CIBU_NI => NULL(), &
+                 XFACTOR_CIBU_RI => NULL(), &
+                 XMOMGG_CIBU_1 => NULL(), &
+                 XMOMGG_CIBU_2 => NULL(), &
+                 XMOMGS_CIBU_1 => NULL(), &
+                 XMOMGS_CIBU_2 => NULL(), &
+                 XMOMGS_CIBU_3 => NULL(), &
+                 XDCRLIM_RDSF_MIN => NULL(), &
+                 XGAMINC_BOUND_RDSF_RMIN => NULL(), &
+                 XGAMINC_BOUND_RDSF_RMAX => NULL(), &
+                 XRDSFINTP_R => NULL(), &
+                 XRDSFINTP1_R => NULL(), &
+                 XFACTOR_RDSF_NI => NULL(), &
+                 XMOMGR_RDSF => NULL(), &
+                 XFSEDG => NULL(), &
+                 XEXSEDG => NULL(), &
+                 XFSEDRG => NULL(), &
+                 XFSEDCG => NULL(), &
+                 X0DEPG => NULL(), &
+                 X1DEPG => NULL(), &
+                 XEX0DEPG => NULL(), &
+                 XEX1DEPG => NULL(), &
+                 XHMTMIN => NULL(), &
+                 XHMTMAX => NULL(), &
+                 XHM1 => NULL(), &
+                 XHM2 => NULL(), &
+                 XHM_YIELD => NULL(), &
+                 XHM_COLLCS => NULL(), &
+                 XHM_FACTS => NULL(), &
+                 XHM_COLLCG => NULL(), &
+                 XHM_FACTG => NULL(), &
+                 XGAMINC_HMC_BOUND_MIN => NULL(), &
+                 XGAMINC_HMC_BOUND_MAX => NULL(), &
+                 XHMSINTP1 => NULL(), &
+                 XHMSINTP2 => NULL(), &
+                 XHMLINTP1 => NULL(), &
+                 XHMLINTP2 => NULL(), &
+                 XDCSLIM => NULL(), &
+                 XCOLCS => NULL(), &
+                 XEXCRIMSS => NULL(), &
+                 XCRIMSS => NULL(), &
+                 XEXCRIMSG => NULL(), &
+                 XCRIMSG => NULL(), &
+                 XEXSRIMCG => NULL(), &
+                 XSRIMCG => NULL(), &
+                 XSRIMCG2 => NULL(), &
+                 XSRIMCG3 => NULL(), &
+                 XEXSRIMCG2 => NULL(), &
+                 XGAMINC_BOUND_MIN => NULL(), &
+                 XGAMINC_BOUND_MAX => NULL(), &
+                 XRIMINTP1 => NULL(), &
+                 XRIMINTP2 => NULL(), &
+                 XFRACCSS => NULL(), &
+                 XFNRACCSS => NULL(), &
+                 XLBRACCS1 => NULL(), &
+                 XLBRACCS2 => NULL(), &
+                 XLBRACCS3 => NULL(), &
+                 XLBNRACCS1 => NULL(), &
+                 XLBNRACCS2 => NULL(), &
+                 XLBNRACCS3 => NULL(), &
+                 XFSACCRG => NULL(), &
+                 XFNSACCRG => NULL(), &
+                 XLBSACCR1 => NULL(), &
+                 XLBSACCR2 => NULL(), &
+                 XLBSACCR3 => NULL(), &
+                 XLBNSACCR1 => NULL(), &
+                 XLBNSACCR2 => NULL(), &
+                 XLBNSACCR3 => NULL(), &
+                 XSCLBDAS_MIN => NULL(), &
+                 XSCLBDAS_MAX => NULL(), &
+                 XACCLBDAS_MIN => NULL(), &
+                 XACCLBDAS_MAX => NULL(), &
+                 XACCLBDAR_MIN => NULL(), &
+                 XACCLBDAR_MAX => NULL(), &
+                 XACCINTP1S => NULL(), &
+                 XACCINTP2S => NULL(), &
+                 XACCINTP1R => NULL(), &
+                 XACCINTP2R => NULL(), &
+                 XFSCVMG => NULL(), &
+                 XCOLIR => NULL(), &
+                 XEXRCFRI => NULL(), &
+                 XRCFRI => NULL(), &
+                 XEXICFRR => NULL(), &
+                 XICFRR => NULL(), &
+                 XFCDRYG => NULL(), &
+                 XCOLCG => NULL(), &
+                 XCOLIG => NULL(), &
+                 XCOLEXIG => NULL(), &
+                 XFIDRYG => NULL(), &
+                 XCOLSG => NULL(), &
+                 XCOLEXSG => NULL(), &
+                 XFSDRYG => NULL(), &
+                 XFNSDRYG => NULL(), &
+                 XLBSDRYG1 => NULL(), &
+                 XLBSDRYG2 => NULL(), &
+                 XLBSDRYG3 => NULL(), &
+                 XLBNSDRYG1 => NULL(), &
+                 XLBNSDRYG2 => NULL(), &
+                 XLBNSDRYG3 => NULL(), &
+                 XFRDRYG => NULL(), &
+                 XFNRDRYG => NULL(), &
+                 XLBRDRYG1 => NULL(), &
+                 XLBRDRYG2 => NULL(), &
+                 XLBRDRYG3 => NULL(), &
+                 XLBNRDRYG1 => NULL(), &
+                 XLBNRDRYG2 => NULL(), &
+                 XLBNRDRYG3 => NULL(), &
+                 XDRYLBDAR_MIN => NULL(), &
+                 XDRYLBDAR_MAX => NULL(), &
+                 XDRYLBDAS_MIN => NULL(), &
+                 XDRYLBDAS_MAX => NULL(), &
+                 XDRYLBDAG_MIN => NULL(), &
+                 XDRYLBDAG_MAX => NULL(), &
+                 XDRYINTP1R => NULL(), &
+                 XDRYINTP2R => NULL(), &
+                 XDRYINTP1S => NULL(), &
+                 XDRYINTP2S => NULL(), &
+                 XDRYINTP1G => NULL(), &
+                 XDRYINTP2G => NULL(), &
+                 XFSEDH => NULL(), &
+                 XEXSEDH => NULL(), &
+                 XFSEDRH => NULL(), &
+                 XFSEDCH => NULL(), &
+                 X0DEPH => NULL(), &
+                 X1DEPH => NULL(), &
+                 XEX0DEPH => NULL(), &
+                 XEX1DEPH => NULL(), &
+                 XFWETH => NULL(), &
+                 XFSWETH => NULL(), &
+                 XFNSWETH => NULL(), &
+                 XLBSWETH1 => NULL(), &
+                 XLBSWETH2 => NULL(), &
+                 XLBSWETH3 => NULL(), &
+                 XLBNSWETH1 => NULL(), &
+                 XLBNSWETH2 => NULL(), &
+                 XLBNSWETH3 => NULL(), &
+                 XFGWETH => NULL(), &
+                 XFNGWETH => NULL(), &
+                 XLBGWETH1 => NULL(), &
+                 XLBGWETH2 => NULL(), &
+                 XLBGWETH3 => NULL(), &
+                 XLBNGWETH1 => NULL(), &
+                 XLBNGWETH2 => NULL(), &
+                 XLBNGWETH3 => NULL(), &
+                 XWETLBDAS_MIN => NULL(), &
+                 XWETLBDAS_MAX => NULL(), &
+                 XWETLBDAG_MIN => NULL(), &
+                 XWETLBDAG_MAX => NULL(), &
+                 XWETLBDAH_MIN => NULL(), &
+                 XWETLBDAH_MAX => NULL(), &
+                 XWETINTP1S => NULL(), &
+                 XWETINTP2S => NULL(), &
+                 XWETINTP1G => NULL(), &
+                 XWETINTP2G => NULL(), &
+                 XWETINTP1H => NULL(), &
+                 XWETINTP2H => NULL()
+
+INTEGER, POINTER :: NGAMINC => NULL(), &
+                    NACCLBDAS => NULL(), &
+                    NACCLBDAR => NULL(), &
+                    NDRYLBDAR => NULL(), &
+                    NDRYLBDAS => NULL(), &
+                    NDRYLBDAG => NULL(), &
+                    NWETLBDAS => NULL(), &
+                    NWETLBDAG => NULL(), &
+                    NWETLBDAH => NULL()
+
+REAL, DIMENSION(:), POINTER :: XGAMINC_RDSF_R => NULL(), &
+                               XGAMINC_RIM1 => NULL(), &
+                               XGAMINC_RIM2 => NULL(), &
+                               XGAMINC_RIM4 => NULL(), &
+                               XGAMINC_HMC => NULL()
+REAL, DIMENSION(:,:), POINTER :: XGAMINC_CIBU_S => NULL(), &
+                                 XGAMINC_CIBU_G => NULL(), &
+                                 XKER_RACCSS => NULL(), &
+                                 XKER_RACCS => NULL(), &
+                                 XKER_SACCRG => NULL(), &
+                                 XKER_N_RACCSS => NULL(), &
+                                 XKER_N_RACCS => NULL(), &
+                                 XKER_N_SACCRG => NULL(), &
+                                 XKER_SDRYG => NULL(), &
+                                 XKER_RDRYG => NULL(), &
+                                 XKER_N_SDRYG => NULL(), &
+                                 XKER_N_RDRYG => NULL(), &
+                                 XKER_SWETH => NULL(), &
+                                 XKER_GWETH => NULL(), &
+                                 XKER_N_SWETH => NULL(), &
+                                 XKER_N_GWETH => NULL()
+CONTAINS
+SUBROUTINE PARAM_LIMA_MIXED_ASSOCIATE()
+IF(.NOT. ASSOCIATED(XAG)) THEN
+  XAG                      => PARAM_LIMA_MIXED%XAG
+  XBG                      => PARAM_LIMA_MIXED%XBG
+  XCG                      => PARAM_LIMA_MIXED%XCG
+  XDG                      => PARAM_LIMA_MIXED%XDG
+  XCCG                     => PARAM_LIMA_MIXED%XCCG
+  XCXG                     => PARAM_LIMA_MIXED%XCXG
+  XF0G                     => PARAM_LIMA_MIXED%XF0G
+  XF1G                     => PARAM_LIMA_MIXED%XF1G
+  XC1G                     => PARAM_LIMA_MIXED%XC1G
+  XLBEXG                   => PARAM_LIMA_MIXED%XLBEXG
+  XLBG                     => PARAM_LIMA_MIXED%XLBG
+  XNG                      => PARAM_LIMA_MIXED%XNG
+  XLBDAG_MAX               => PARAM_LIMA_MIXED%XLBDAG_MAX
+  XAH                      => PARAM_LIMA_MIXED%XAH
+  XBH                      => PARAM_LIMA_MIXED%XBH
+  XCH                      => PARAM_LIMA_MIXED%XCH
+  XDH                      => PARAM_LIMA_MIXED%XDH
+  XCCH                     => PARAM_LIMA_MIXED%XCCH
+  XCXH                     => PARAM_LIMA_MIXED%XCXH
+  XF0H                     => PARAM_LIMA_MIXED%XF0H
+  XF1H                     => PARAM_LIMA_MIXED%XF1H
+  XC1H                     => PARAM_LIMA_MIXED%XC1H
+  XALPHAH                  => PARAM_LIMA_MIXED%XALPHAH
+  XNUH                     => PARAM_LIMA_MIXED%XNUH
+  XLBEXH                   => PARAM_LIMA_MIXED%XLBEXH
+  XLBH                     => PARAM_LIMA_MIXED%XLBH
+  XDCSLIM_CIBU_MIN         => PARAM_LIMA_MIXED%XDCSLIM_CIBU_MIN
+  XDCSLIM_CIBU_MAX         => PARAM_LIMA_MIXED%XDCSLIM_CIBU_MAX
+  XDCGLIM_CIBU_MIN         => PARAM_LIMA_MIXED%XDCGLIM_CIBU_MIN
+  XGAMINC_BOUND_CIBU_SMIN  => PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMIN
+  XGAMINC_BOUND_CIBU_SMAX  => PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMAX
+  XGAMINC_BOUND_CIBU_GMIN  => PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMIN
+  XGAMINC_BOUND_CIBU_GMAX  => PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMAX
+  XCIBUINTP_S              => PARAM_LIMA_MIXED%XCIBUINTP_S
+  XCIBUINTP1_S             => PARAM_LIMA_MIXED%XCIBUINTP1_S
+  XCIBUINTP2_S             => PARAM_LIMA_MIXED%XCIBUINTP2_S
+  XCIBUINTP_G              => PARAM_LIMA_MIXED%XCIBUINTP_G
+  XCIBUINTP1_G             => PARAM_LIMA_MIXED%XCIBUINTP1_G
+  XFACTOR_CIBU_NI          => PARAM_LIMA_MIXED%XFACTOR_CIBU_NI
+  XFACTOR_CIBU_RI          => PARAM_LIMA_MIXED%XFACTOR_CIBU_RI
+  XMOMGG_CIBU_1            => PARAM_LIMA_MIXED%XMOMGG_CIBU_1
+  XMOMGG_CIBU_2            => PARAM_LIMA_MIXED%XMOMGG_CIBU_2
+  XMOMGS_CIBU_1            => PARAM_LIMA_MIXED%XMOMGS_CIBU_1
+  XMOMGS_CIBU_2            => PARAM_LIMA_MIXED%XMOMGS_CIBU_2
+  XMOMGS_CIBU_3            => PARAM_LIMA_MIXED%XMOMGS_CIBU_3
+  XDCRLIM_RDSF_MIN         => PARAM_LIMA_MIXED%XDCRLIM_RDSF_MIN
+  XGAMINC_BOUND_RDSF_RMIN  => PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMIN
+  XGAMINC_BOUND_RDSF_RMAX  => PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMAX
+  XRDSFINTP_R              => PARAM_LIMA_MIXED%XRDSFINTP_R
+  XRDSFINTP1_R             => PARAM_LIMA_MIXED%XRDSFINTP1_R
+  XFACTOR_RDSF_NI          => PARAM_LIMA_MIXED%XFACTOR_RDSF_NI
+  XMOMGR_RDSF              => PARAM_LIMA_MIXED%XMOMGR_RDSF
+  XFSEDG                   => PARAM_LIMA_MIXED%XFSEDG
+  XEXSEDG                  => PARAM_LIMA_MIXED%XEXSEDG
+  XFSEDRG                  => PARAM_LIMA_MIXED%XFSEDRG
+  XFSEDCG                  => PARAM_LIMA_MIXED%XFSEDCG
+  X0DEPG                   => PARAM_LIMA_MIXED%X0DEPG
+  X1DEPG                   => PARAM_LIMA_MIXED%X1DEPG
+  XEX0DEPG                 => PARAM_LIMA_MIXED%XEX0DEPG
+  XEX1DEPG                 => PARAM_LIMA_MIXED%XEX1DEPG
+  XHMTMIN                  => PARAM_LIMA_MIXED%XHMTMIN
+  XHMTMAX                  => PARAM_LIMA_MIXED%XHMTMAX
+  XHM1                     => PARAM_LIMA_MIXED%XHM1
+  XHM2                     => PARAM_LIMA_MIXED%XHM2
+  XHM_YIELD                => PARAM_LIMA_MIXED%XHM_YIELD
+  XHM_COLLCS               => PARAM_LIMA_MIXED%XHM_COLLCS
+  XHM_FACTS                => PARAM_LIMA_MIXED%XHM_FACTS
+  XHM_COLLCG               => PARAM_LIMA_MIXED%XHM_COLLCG
+  XHM_FACTG                => PARAM_LIMA_MIXED%XHM_FACTG
+  XGAMINC_HMC_BOUND_MIN    => PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MIN
+  XGAMINC_HMC_BOUND_MAX    => PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MAX
+  XHMSINTP1                => PARAM_LIMA_MIXED%XHMSINTP1
+  XHMSINTP2                => PARAM_LIMA_MIXED%XHMSINTP2
+  XHMLINTP1                => PARAM_LIMA_MIXED%XHMLINTP1
+  XHMLINTP2                => PARAM_LIMA_MIXED%XHMLINTP2
+  XDCSLIM                  => PARAM_LIMA_MIXED%XDCSLIM
+  XCOLCS                   => PARAM_LIMA_MIXED%XCOLCS
+  XEXCRIMSS                => PARAM_LIMA_MIXED%XEXCRIMSS
+  XCRIMSS                  => PARAM_LIMA_MIXED%XCRIMSS
+  XEXCRIMSG                => PARAM_LIMA_MIXED%XEXCRIMSG
+  XCRIMSG                  => PARAM_LIMA_MIXED%XCRIMSG
+  XEXSRIMCG                => PARAM_LIMA_MIXED%XEXSRIMCG
+  XSRIMCG                  => PARAM_LIMA_MIXED%XSRIMCG
+  XSRIMCG2                 => PARAM_LIMA_MIXED%XSRIMCG2
+  XSRIMCG3                 => PARAM_LIMA_MIXED%XSRIMCG3
+  XEXSRIMCG2               => PARAM_LIMA_MIXED%XEXSRIMCG2
+  XGAMINC_BOUND_MIN        => PARAM_LIMA_MIXED%XGAMINC_BOUND_MIN
+  XGAMINC_BOUND_MAX        => PARAM_LIMA_MIXED%XGAMINC_BOUND_MAX
+  XRIMINTP1                => PARAM_LIMA_MIXED%XRIMINTP1
+  XRIMINTP2                => PARAM_LIMA_MIXED%XRIMINTP2
+  XFRACCSS                 => PARAM_LIMA_MIXED%XFRACCSS
+  XFNRACCSS                => PARAM_LIMA_MIXED%XFNRACCSS
+  XLBRACCS1                => PARAM_LIMA_MIXED%XLBRACCS1
+  XLBRACCS2                => PARAM_LIMA_MIXED%XLBRACCS2
+  XLBRACCS3                => PARAM_LIMA_MIXED%XLBRACCS3
+  XLBNRACCS1               => PARAM_LIMA_MIXED%XLBNRACCS1
+  XLBNRACCS2               => PARAM_LIMA_MIXED%XLBNRACCS2
+  XLBNRACCS3               => PARAM_LIMA_MIXED%XLBNRACCS3
+  XFSACCRG                 => PARAM_LIMA_MIXED%XFSACCRG
+  XFNSACCRG                => PARAM_LIMA_MIXED%XFNSACCRG
+  XLBSACCR1                => PARAM_LIMA_MIXED%XLBSACCR1
+  XLBSACCR2                => PARAM_LIMA_MIXED%XLBSACCR2
+  XLBSACCR3                => PARAM_LIMA_MIXED%XLBSACCR3
+  XLBNSACCR1               => PARAM_LIMA_MIXED%XLBNSACCR1
+  XLBNSACCR2               => PARAM_LIMA_MIXED%XLBNSACCR2
+  XLBNSACCR3               => PARAM_LIMA_MIXED%XLBNSACCR3
+  XSCLBDAS_MIN             => PARAM_LIMA_MIXED%XSCLBDAS_MIN
+  XSCLBDAS_MAX             => PARAM_LIMA_MIXED%XSCLBDAS_MAX
+  XACCLBDAS_MIN            => PARAM_LIMA_MIXED%XACCLBDAS_MIN
+  XACCLBDAS_MAX            => PARAM_LIMA_MIXED%XACCLBDAS_MAX
+  XACCLBDAR_MIN            => PARAM_LIMA_MIXED%XACCLBDAR_MIN
+  XACCLBDAR_MAX            => PARAM_LIMA_MIXED%XACCLBDAR_MAX
+  XACCINTP1S               => PARAM_LIMA_MIXED%XACCINTP1S
+  XACCINTP2S               => PARAM_LIMA_MIXED%XACCINTP2S
+  XACCINTP1R               => PARAM_LIMA_MIXED%XACCINTP1R
+  XACCINTP2R               => PARAM_LIMA_MIXED%XACCINTP2R
+  XFSCVMG                  => PARAM_LIMA_MIXED%XFSCVMG
+  XCOLIR                   => PARAM_LIMA_MIXED%XCOLIR
+  XEXRCFRI                 => PARAM_LIMA_MIXED%XEXRCFRI
+  XRCFRI                   => PARAM_LIMA_MIXED%XRCFRI
+  XEXICFRR                 => PARAM_LIMA_MIXED%XEXICFRR
+  XICFRR                   => PARAM_LIMA_MIXED%XICFRR
+  XFCDRYG                  => PARAM_LIMA_MIXED%XFCDRYG
+  XCOLCG                   => PARAM_LIMA_MIXED%XCOLCG
+  XCOLIG                   => PARAM_LIMA_MIXED%XCOLIG
+  XCOLEXIG                 => PARAM_LIMA_MIXED%XCOLEXIG
+  XFIDRYG                  => PARAM_LIMA_MIXED%XFIDRYG
+  XCOLSG                   => PARAM_LIMA_MIXED%XCOLSG
+  XCOLEXSG                 => PARAM_LIMA_MIXED%XCOLEXSG
+  XFSDRYG                  => PARAM_LIMA_MIXED%XFSDRYG
+  XFNSDRYG                 => PARAM_LIMA_MIXED%XFNSDRYG
+  XLBSDRYG1                => PARAM_LIMA_MIXED%XLBSDRYG1
+  XLBSDRYG2                => PARAM_LIMA_MIXED%XLBSDRYG2
+  XLBSDRYG3                => PARAM_LIMA_MIXED%XLBSDRYG3
+  XLBNSDRYG1               => PARAM_LIMA_MIXED%XLBNSDRYG1
+  XLBNSDRYG2               => PARAM_LIMA_MIXED%XLBNSDRYG2
+  XLBNSDRYG3               => PARAM_LIMA_MIXED%XLBNSDRYG3
+  XFRDRYG                  => PARAM_LIMA_MIXED%XFRDRYG
+  XFNRDRYG                 => PARAM_LIMA_MIXED%XFNRDRYG
+  XLBRDRYG1                => PARAM_LIMA_MIXED%XLBRDRYG1
+  XLBRDRYG2                => PARAM_LIMA_MIXED%XLBRDRYG2
+  XLBRDRYG3                => PARAM_LIMA_MIXED%XLBRDRYG3
+  XLBNRDRYG1               => PARAM_LIMA_MIXED%XLBNRDRYG1
+  XLBNRDRYG2               => PARAM_LIMA_MIXED%XLBNRDRYG2
+  XLBNRDRYG3               => PARAM_LIMA_MIXED%XLBNRDRYG3
+  XDRYLBDAR_MIN            => PARAM_LIMA_MIXED%XDRYLBDAR_MIN
+  XDRYLBDAR_MAX            => PARAM_LIMA_MIXED%XDRYLBDAR_MAX
+  XDRYLBDAS_MIN            => PARAM_LIMA_MIXED%XDRYLBDAS_MIN
+  XDRYLBDAS_MAX            => PARAM_LIMA_MIXED%XDRYLBDAS_MAX
+  XDRYLBDAG_MIN            => PARAM_LIMA_MIXED%XDRYLBDAG_MIN
+  XDRYLBDAG_MAX            => PARAM_LIMA_MIXED%XDRYLBDAG_MAX
+  XDRYINTP1R               => PARAM_LIMA_MIXED%XDRYINTP1R
+  XDRYINTP2R               => PARAM_LIMA_MIXED%XDRYINTP2R
+  XDRYINTP1S               => PARAM_LIMA_MIXED%XDRYINTP1S
+  XDRYINTP2S               => PARAM_LIMA_MIXED%XDRYINTP2S
+  XDRYINTP1G               => PARAM_LIMA_MIXED%XDRYINTP1G
+  XDRYINTP2G               => PARAM_LIMA_MIXED%XDRYINTP2G
+  XFSEDH                   => PARAM_LIMA_MIXED%XFSEDH
+  XEXSEDH                  => PARAM_LIMA_MIXED%XEXSEDH
+  XFSEDRH                  => PARAM_LIMA_MIXED%XFSEDRH
+  XFSEDCH                  => PARAM_LIMA_MIXED%XFSEDCH
+  X0DEPH                   => PARAM_LIMA_MIXED%X0DEPH
+  X1DEPH                   => PARAM_LIMA_MIXED%X1DEPH
+  XEX0DEPH                 => PARAM_LIMA_MIXED%XEX0DEPH
+  XEX1DEPH                 => PARAM_LIMA_MIXED%XEX1DEPH
+  XFWETH                   => PARAM_LIMA_MIXED%XFWETH
+  XFSWETH                  => PARAM_LIMA_MIXED%XFSWETH
+  XFNSWETH                 => PARAM_LIMA_MIXED%XFNSWETH
+  XLBSWETH1                => PARAM_LIMA_MIXED%XLBSWETH1
+  XLBSWETH2                => PARAM_LIMA_MIXED%XLBSWETH2
+  XLBSWETH3                => PARAM_LIMA_MIXED%XLBSWETH3
+  XLBNSWETH1               => PARAM_LIMA_MIXED%XLBNSWETH1
+  XLBNSWETH2               => PARAM_LIMA_MIXED%XLBNSWETH2
+  XLBNSWETH3               => PARAM_LIMA_MIXED%XLBNSWETH3
+  XFGWETH                  => PARAM_LIMA_MIXED%XFGWETH
+  XFNGWETH                 => PARAM_LIMA_MIXED%XFNGWETH
+  XLBGWETH1                => PARAM_LIMA_MIXED%XLBGWETH1
+  XLBGWETH2                => PARAM_LIMA_MIXED%XLBGWETH2
+  XLBGWETH3                => PARAM_LIMA_MIXED%XLBGWETH3
+  XLBNGWETH1               => PARAM_LIMA_MIXED%XLBNGWETH1
+  XLBNGWETH2               => PARAM_LIMA_MIXED%XLBNGWETH2
+  XLBNGWETH3               => PARAM_LIMA_MIXED%XLBNGWETH3
+  XWETLBDAS_MIN            => PARAM_LIMA_MIXED%XWETLBDAS_MIN
+  XWETLBDAS_MAX            => PARAM_LIMA_MIXED%XWETLBDAS_MAX
+  XWETLBDAG_MIN            => PARAM_LIMA_MIXED%XWETLBDAG_MIN
+  XWETLBDAG_MAX            => PARAM_LIMA_MIXED%XWETLBDAG_MAX
+  XWETLBDAH_MIN            => PARAM_LIMA_MIXED%XWETLBDAH_MIN
+  XWETLBDAH_MAX            => PARAM_LIMA_MIXED%XWETLBDAH_MAX
+  XWETINTP1S               => PARAM_LIMA_MIXED%XWETINTP1S
+  XWETINTP2S               => PARAM_LIMA_MIXED%XWETINTP2S
+  XWETINTP1G               => PARAM_LIMA_MIXED%XWETINTP1G
+  XWETINTP2G               => PARAM_LIMA_MIXED%XWETINTP2G
+  XWETINTP1H               => PARAM_LIMA_MIXED%XWETINTP1H
+  XWETINTP2H               => PARAM_LIMA_MIXED%XWETINTP2H
+
+  NGAMINC                  => PARAM_LIMA_MIXED%NGAMINC
+  NACCLBDAS                => PARAM_LIMA_MIXED%NACCLBDAS
+  NACCLBDAR                => PARAM_LIMA_MIXED%NACCLBDAR
+  NDRYLBDAR                => PARAM_LIMA_MIXED%NDRYLBDAR
+  NDRYLBDAS                => PARAM_LIMA_MIXED%NDRYLBDAS
+  NDRYLBDAG                => PARAM_LIMA_MIXED%NDRYLBDAG
+  NWETLBDAS                => PARAM_LIMA_MIXED%NWETLBDAS
+  NWETLBDAG                => PARAM_LIMA_MIXED%NWETLBDAG
+  NWETLBDAH                => PARAM_LIMA_MIXED%NWETLBDAH
+ENDIF
+END SUBROUTINE PARAM_LIMA_MIXED_ASSOCIATE
+!
+SUBROUTINE PARAM_LIMA_MIXED_ALLOCATE(HNAME, KDIM1, KDIM2)
+  IMPLICIT NONE
+  CHARACTER(LEN=*), INTENT(IN) :: HNAME
+  INTEGER, INTENT(IN)          :: KDIM1
+  INTEGER, OPTIONAL, INTENT(IN):: KDIM2
 
+  SELECT CASE(TRIM(HNAME))
+    !1d
+    CASE('XGAMINC_RDSF_R')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_RDSF_R(KDIM1))
+      XGAMINC_RDSF_R => PARAM_LIMA_MIXED%XGAMINC_RDSF_R
+    CASE('XGAMINC_RIM1')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_RIM1(KDIM1))
+      XGAMINC_RIM1 => PARAM_LIMA_MIXED%XGAMINC_RIM1
+    CASE('XGAMINC_RIM2')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_RIM2(KDIM1))
+      XGAMINC_RIM2 => PARAM_LIMA_MIXED%XGAMINC_RIM2
+    CASE('XGAMINC_RIM4')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_RIM4(KDIM1))
+      XGAMINC_RIM4 => PARAM_LIMA_MIXED%XGAMINC_RIM4
+    CASE('XGAMINC_HMC')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_HMC(KDIM1))
+      XGAMINC_HMC => PARAM_LIMA_MIXED%XGAMINC_HMC
+   !2d
+   CASE('XGAMINC_CIBU_S')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_CIBU_S(KDIM1, KDIM2))
+      XGAMINC_CIBU_S => PARAM_LIMA_MIXED%XGAMINC_CIBU_S
+   CASE('XGAMINC_CIBU_G')
+      ALLOCATE(PARAM_LIMA_MIXED%XGAMINC_CIBU_G(KDIM1, KDIM2))
+      XGAMINC_CIBU_G => PARAM_LIMA_MIXED%XGAMINC_CIBU_G
+   CASE('XKER_RACCSS')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_RACCSS(KDIM1, KDIM2))
+      XKER_RACCSS => PARAM_LIMA_MIXED%XKER_RACCSS
+  CASE('XKER_RACCS')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_RACCS(KDIM1, KDIM2))
+      XKER_RACCS => PARAM_LIMA_MIXED%XKER_RACCS
+  CASE('XKER_SACCRG')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_SACCRG(KDIM1, KDIM2))
+      XKER_SACCRG => PARAM_LIMA_MIXED%XKER_SACCRG
+  CASE('XKER_N_RACCSS')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_RACCSS(KDIM1, KDIM2))
+      XKER_N_RACCSS => PARAM_LIMA_MIXED%XKER_N_RACCSS
+  CASE('XKER_N_RACCS')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_RACCS(KDIM1, KDIM2))
+      XKER_N_RACCS => PARAM_LIMA_MIXED%XKER_N_RACCS
+  CASE('XKER_N_SACCRG')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_SACCRG(KDIM1, KDIM2))
+      XKER_N_SACCRG => PARAM_LIMA_MIXED%XKER_N_SACCRG
+  CASE('XKER_SDRYG')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_SDRYG(KDIM1, KDIM2))
+      XKER_SDRYG => PARAM_LIMA_MIXED%XKER_SDRYG
+  CASE('XKER_RDRYG')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_RDRYG(KDIM1, KDIM2))
+      XKER_RDRYG => PARAM_LIMA_MIXED%XKER_RDRYG
+  CASE('XKER_N_SDRYG')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_SDRYG(KDIM1, KDIM2))
+      XKER_N_SDRYG => PARAM_LIMA_MIXED%XKER_N_SDRYG
+  CASE('XKER_N_RDRYG')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_RDRYG(KDIM1, KDIM2))
+      XKER_N_RDRYG => PARAM_LIMA_MIXED%XKER_N_RDRYG
+  CASE('XKER_SWETH')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_SWETH(KDIM1, KDIM2))
+      XKER_SWETH => PARAM_LIMA_MIXED%XKER_SWETH
+  CASE('XKER_GWETH')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_GWETH(KDIM1, KDIM2))
+      XKER_GWETH => PARAM_LIMA_MIXED%XKER_GWETH
+  CASE('XKER_N_SWETH')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_SWETH(KDIM1, KDIM2))
+      XKER_N_SWETH => PARAM_LIMA_MIXED%XKER_N_SWETH
+  CASE('XKER_N_GWETH')
+      ALLOCATE(PARAM_LIMA_MIXED%XKER_N_GWETH(KDIM1, KDIM2))
+      XKER_N_GWETH => PARAM_LIMA_MIXED%XKER_N_GWETH
+  END SELECT
+END SUBROUTINE PARAM_LIMA_MIXED_ALLOCATE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/modd_param_lima_warm.F90 b/src/common/micro/modd_param_lima_warm.F90
index cf555286d5cf4f3b6a402abb08dd2276d9c5a988..dceef01470aa8824b0edb130585b766ab956fad9 100644
--- a/src/common/micro/modd_param_lima_warm.F90
+++ b/src/common/micro/modd_param_lima_warm.F90
@@ -8,119 +8,369 @@
 !     ###########################
 !
 !!****  *MODD_PARAM_LIMA_WARM* - declaration of some descriptive parameters and
-!!                               microphysical factors extensively used in 
+!!                               microphysical factors extensively used in
 !!                               the LIMA warm scheme.
 !!    AUTHOR
 !!    ------
-!!  	J.-P. Pinty  *Laboratoire d'Aerologie*
+!!      J.-P. Pinty      * Laboratoire d'Aerologie*
 !!      S.    Berthet    * Laboratoire d'Aerologie*
 !!      B.    Vié        * Laboratoire d'Aerologie*
 !!
 !!    MODIFICATIONS
 !!    -------------
-!!      Original             ??/??/13 
+!!      Original             ??/??/13
 !!
 !-------------------------------------------------------------------------------
 USE MODD_PARAMETERS, ONLY: JPSVNAMELGTMAX
 !
-IMPLICIT NONE 
+IMPLICIT NONE
 !
 !*       1.   DESCRIPTIVE PARAMETERS
 !             ----------------------
 !
-REAL,SAVE ::  XLBC, XLBEXC,          & ! shape parameters of the cloud droplets
+TYPE PARAM_LIMA_WARM_t
+REAL      ::  XLBC, XLBEXC,          & ! shape parameters of the cloud droplets
               XLBR, XLBEXR, XNR        ! shape parameters of the raindrops
 !
-REAL,SAVE :: XAR,XBR,XCR,XDR,XF0R,XF1R,     & ! Raindrop       charact.
+REAL      :: XAR,XBR,XCR,XDR,XF0R,XF1R,     & ! Raindrop       charact.
                              XCCR,XCXR,     & !For diagnostics
              XAC,XBC,XCC,XDC,XF0C,XF2C,XC1C   ! Cloud droplet  charact.
 !
 !
-CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(5),PARAMETER &
-                     :: CLIMA_WARM_NAMES=(/'CCLOUD  ','CRAIN   ','CCCNFREE','CCCNACTI','SPRO    '/)
-                                       ! basenames of the SV articles stored
-                                       ! in the binary files
-CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(5),PARAMETER &
-                     :: CLIMA_WARM_CONC=(/'NC   ','NR   ','NFREE','NCCN ','SS   '/)
-!                                       ! basenames of the SV articles stored
-!                                       ! in the binary files for DIAG
-!
-!* Special issue for Below-Cloud SCAVenging of Aerosol particles 
-CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(2) :: CAERO_MASS =(/'MASSAP', 'MAP   '/)
 !
 !-------------------------------------------------------------------------------
 !
 !*       2.   MICROPHYSICAL FACTORS
 !             ---------------------
 !
-REAL,SAVE :: XFSEDRR,XFSEDCR,                  & ! Constants for sedimentation
+REAL      :: XFSEDRR,XFSEDCR,                  & ! Constants for sedimentation
              XFSEDRC,XFSEDCC                     ! fluxes of R, C
 !
 !
-REAL,SAVE :: XDIVA,                            & ! Diffusivity of water vapor
-	     XTHCO                               ! Thermal conductivity
-REAL,SAVE :: XWMIN                               ! Min value of updraft velocity
-				                 ! to enable nucleation process
-REAL,SAVE :: XTMIN                               ! Min value of
+REAL      :: XDIVA,                            & ! Diffusivity of water vapor
+             XTHCO                               ! Thermal conductivity
+REAL      :: XWMIN                               ! Min value of updraft velocity
+                                                 ! to enable nucleation process
+REAL      :: XTMIN                               ! Min value of
                                                  ! temperature evolution
-				                 ! to enable nucleation process
-REAL,SAVE :: XCSTHEN,XCSTDCRIT                   ! Cst for HEN precalculations
-INTEGER, SAVE :: NHYP                            ! Number of value of the HYP
-						 !    functions
-REAL,SAVE :: XHYPINTP1, XHYPINTP2                ! Factors defining the
-						 ! supersaturation log scale
-REAL, DIMENSION(:,:), SAVE, ALLOCATABLE        & ! Tabulated HYPgeometric
-	  :: XHYPF12, XHYPF32                    !   functions used in HEN
-INTEGER, SAVE :: NAHEN                           ! Number of value of the AHEN
-		                        	 !    functions
-REAL,SAVE :: XAHENINTP1, XAHENINTP2              ! Factors defining the
-						 ! temperatures in lin scale
-REAL, DIMENSION(:), SAVE, ALLOCATABLE          & ! 
+                                                 ! to enable nucleation process
+REAL      :: XCSTHEN,XCSTDCRIT                   ! Cst for HEN precalculations
+INTEGER   :: NHYP                                ! Number of value of the HYP
+                                                 !    functions
+REAL      :: XHYPINTP1, XHYPINTP2                ! Factors defining the
+                                                 ! supersaturation log scale
+REAL, DIMENSION(:,:), ALLOCATABLE              & ! Tabulated HYPgeometric
+          :: XHYPF12, XHYPF32                    !   functions used in HEN
+INTEGER   :: NAHEN                               ! Number of value of the AHEN
+                                                 !    functions
+REAL      :: XAHENINTP1, XAHENINTP2              ! Factors defining the
+                                                 ! temperatures in lin scale
+REAL, DIMENSION(:), ALLOCATABLE                & !
           :: XAHENG,XAHENG2,XAHENG3,XPSI1, XPSI3,      & ! Twomey-CPB98 and
-	     XAHENF,XAHENY                       ! Feingold-Heymsfield
-	                                         ! parameterization to compute Smax
-REAL,SAVE :: XWCOEF_F1, XWCOEF_F2, XWCOEF_F3,  & ! COEF_F of the polynomial temp.
+             XAHENF,XAHENY                       ! Feingold-Heymsfield
+                                                 ! parameterization to compute Smax
+REAL      :: XWCOEF_F1, XWCOEF_F2, XWCOEF_F3,  & ! COEF_F of the polynomial temp.
              XWCOEF_Y1, XWCOEF_Y2, XWCOEF_Y3     ! COEF_Y of the polynomial temp.
-						 ! function powering W
+                                                 ! function powering W
 !
 !
-REAL,SAVE :: XKERA1, XKERA2                      ! Constants to define the lin
-						 ! and parabolic kernel param. 
-REAL,SAVE :: XSELFC                              ! Constants for cloud droplet
+REAL      :: XKERA1, XKERA2                      ! Constants to define the lin
+                                                 ! and parabolic kernel param.
+REAL      :: XSELFC                              ! Constants for cloud droplet
                                                  ! selfcollection : SELF
 !
-REAL,SAVE :: XAUTO1, XAUTO2, XCAUTR,           & ! Constants for cloud droplet
-    	     XLAUTR, XLAUTR_THRESHOLD,         & ! autoconversion : AUT
-    	     XITAUTR, XITAUTR_THRESHOLD, XR0     ! XR0 for KHKO autoconversion
+REAL      :: XAUTO1, XAUTO2, XCAUTR,           & ! Constants for cloud droplet
+                 XLAUTR, XLAUTR_THRESHOLD,         & ! autoconversion : AUT
+                 XITAUTR, XITAUTR_THRESHOLD, XR0     ! XR0 for KHKO autoconversion
 !
-REAL,SAVE :: XACCR1, XACCR2, XACCR3,           & ! Constants for the accretion
-	     XACCR4, XACCR5, XACCR6,           & ! process
+REAL      :: XACCR1, XACCR2, XACCR3,           & ! Constants for the accretion
+             XACCR4, XACCR5, XACCR6,           & ! process
              XACCR_CLARGE1, XACCR_CLARGE2, XACCR_RLARGE1, XACCR_RLARGE2, &
              XACCR_CSMALL1, XACCR_CSMALL2, XACCR_RSMALL1, XACCR_RSMALL2, &
              XFCACCR, XEXCACCR
 !
-REAL,SAVE :: XSCBU2, XSCBU3,                   & ! Constants for the raindrop
+REAL      :: XSCBU2, XSCBU3,                   & ! Constants for the raindrop
              XSCBU_EFF1, XSCBU_EFF2, XSCBUEXP1   ! breakup-selfcollection: SCBU
 !
-REAL,SAVE :: XSPONBUD1,XSPONBUD2,XSPONBUD3,    & ! Spontaneous Break-up
+REAL      :: XSPONBUD1,XSPONBUD2,XSPONBUD3,    & ! Spontaneous Break-up
              XSPONCOEF2                          ! (drop size limiter)
 !
-REAL,SAVE :: X0EVAR, X1EVAR,                   & ! Constants for raindrop
-	     XEX0EVAR, XEX1EVAR, XEX2EVAR,     & ! evaporation: EVA 
+REAL      :: X0EVAR, X1EVAR,                   & ! Constants for raindrop
+             XEX0EVAR, XEX1EVAR, XEX2EVAR,     & ! evaporation: EVA
              XCEVAP                              ! for KHKO
 !
-REAL,DIMENSION(:,:,:,:), SAVE, ALLOCATABLE :: XCONCC_INI
-REAL,SAVE                                  :: XCONCR_PARAM_INI        
-                                      ! Used to initialize the 
+REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: XCONCC_INI
+REAL                                 :: XCONCR_PARAM_INI
+                                      ! Used to initialize the
                                       ! concentrations from mixing ratios
                                       ! (init and grid-nesting from Kessler)
 !
-REAL,SAVE :: X0CNDC, X2CNDC                   ! Constants for cloud droplet
+REAL      :: X0CNDC, X2CNDC                   ! Constants for cloud droplet
                                               ! condensation/evaporation
-REAL,SAVE :: XFREFFC  ! Factor to compute the cloud droplet effective radius
-REAL,SAVE :: XFREFFR  ! Factor to compute the rain drop     effective radius
-REAL,SAVE :: XCREC, XCRER
+REAL      :: XFREFFC  ! Factor to compute the cloud droplet effective radius
+REAL      :: XFREFFR  ! Factor to compute the rain drop     effective radius
+REAL      :: XCREC, XCRER
                       ! Factors to compute reff when cloud and rain are present
+END TYPE PARAM_LIMA_WARM_t
+!
+TYPE(PARAM_LIMA_WARM_t), TARGET, SAVE :: PARAM_LIMA_WARM
+!
+REAL, POINTER :: XLBC => NULL(), &
+                 XLBEXC => NULL(), &
+                 XLBR => NULL(), &
+                 XLBEXR => NULL(), &
+                 XNR => NULL(), &
+                 XAR => NULL(), &
+                 XBR => NULL(), &
+                 XCR => NULL(), &
+                 XDR => NULL(), &
+                 XF0R => NULL(), &
+                 XF1R => NULL(), &
+                 XCCR => NULL(), &
+                 XCXR => NULL(), &
+                 XAC => NULL(), &
+                 XBC => NULL(), &
+                 XCC => NULL(), &
+                 XDC => NULL(), &
+                 XF0C => NULL(), &
+                 XF2C => NULL(), &
+                 XC1C => NULL(), &
+                 XFSEDRR => NULL(), &
+                 XFSEDCR => NULL(), &
+                 XFSEDRC => NULL(), &
+                 XFSEDCC => NULL(), &
+                 XDIVA => NULL(), &
+                 XTHCO => NULL(), &
+                 XWMIN => NULL(), &
+                 XTMIN => NULL(), &
+                 XCSTHEN => NULL(), &
+                 XCSTDCRIT => NULL(), &
+                 XHYPINTP1 => NULL(), &
+                 XHYPINTP2 => NULL(), &
+                 XAHENINTP1 => NULL(), &
+                 XAHENINTP2 => NULL(), &
+                 XWCOEF_F1 => NULL(), &
+                 XWCOEF_F2 => NULL(), &
+                 XWCOEF_F3 => NULL(), &
+                 XWCOEF_Y1 => NULL(), &
+                 XWCOEF_Y2 => NULL(), &
+                 XWCOEF_Y3 => NULL(), &
+                 XKERA1 => NULL(), &
+                 XKERA2 => NULL(), &
+                 XSELFC => NULL(), &
+                 XAUTO1 => NULL(), &
+                 XAUTO2 => NULL(), &
+                 XCAUTR => NULL(), &
+                 XLAUTR => NULL(), &
+                 XLAUTR_THRESHOLD => NULL(), &
+                 XITAUTR => NULL(), &
+                 XITAUTR_THRESHOLD => NULL(), &
+                 XR0 => NULL(), &
+                 XACCR1 => NULL(), &
+                 XACCR2 => NULL(), &
+                 XACCR3 => NULL(), &
+                 XACCR4 => NULL(), &
+                 XACCR5 => NULL(), &
+                 XACCR6 => NULL(), &
+                 XACCR_CLARGE1 => NULL(), &
+                 XACCR_CLARGE2 => NULL(), &
+                 XACCR_RLARGE1 => NULL(), &
+                 XACCR_RLARGE2 => NULL(), &
+                 XACCR_CSMALL1 => NULL(), &
+                 XACCR_CSMALL2 => NULL(), &
+                 XACCR_RSMALL1 => NULL(), &
+                 XACCR_RSMALL2 => NULL(), &
+                 XFCACCR => NULL(), &
+                 XEXCACCR => NULL(), &
+                 XSCBU2 => NULL(), &
+                 XSCBU3 => NULL(), &
+                 XSCBU_EFF1 => NULL(), &
+                 XSCBU_EFF2 => NULL(), &
+                 XSCBUEXP1 => NULL(), &
+                 XSPONBUD1 => NULL(), &
+                 XSPONBUD2 => NULL(), &
+                 XSPONBUD3 => NULL(), &
+                 XSPONCOEF2 => NULL(), &
+                 X0EVAR => NULL(), &
+                 X1EVAR => NULL(), &
+                 XEX0EVAR => NULL(), &
+                 XEX1EVAR => NULL(), &
+                 XEX2EVAR => NULL(), &
+                 XCEVAP => NULL(), &
+                 XCONCR_PARAM_INI => NULL(), &
+                 X0CNDC => NULL(), &
+                 X2CNDC => NULL(), &
+                 XFREFFC => NULL(), &
+                 XFREFFR => NULL(), &
+                 XCREC => NULL(), &
+                 XCRER => NULL()
+
+INTEGER, POINTER :: NHYP => NULL(), &
+                    NAHEN => NULL()
+
+REAL, DIMENSION(:,:), POINTER :: XHYPF12 => NULL(), &
+                                 XHYPF32 => NULL()
+REAL, DIMENSION(:), POINTER :: XAHENG => NULL(), &
+                               XAHENG2 => NULL(), &
+                               XAHENG3 => NULL(), &
+                               XPSI1 => NULL(), &
+                               XPSI3 => NULL(), &
+                               XAHENF => NULL(), &
+                               XAHENY => NULL()
+REAL,DIMENSION(:,:,:,:), POINTER :: XCONCC_INI => NULL()
+!
+CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(5),PARAMETER &
+                     :: CLIMA_WARM_NAMES=(/'CCLOUD  ','CRAIN   ','CCCNFREE','CCCNACTI','SPRO    '/)
+                                       ! basenames of the SV articles stored
+                                       ! in the binary files
+CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(5),PARAMETER &
+                     :: CLIMA_WARM_CONC=(/'NC   ','NR   ','NFREE','NCCN ','SS   '/)
+!                                       ! basenames of the SV articles stored
+!                                       ! in the binary files for DIAG
+!
+!* Special issue for Below-Cloud SCAVenging of Aerosol particles
+CHARACTER(LEN=JPSVNAMELGTMAX),DIMENSION(2),PARAMETER :: CAERO_MASS =(/'MASSAP', 'MAP   '/)
+!
+CONTAINS
+SUBROUTINE PARAM_LIMA_WARM_ASSOCIATE()
+IMPLICIT NONE
+IF(.NOT. ASSOCIATED(XLBC)) THEN
+  XLBC              => PARAM_LIMA_WARM%XLBC
+  XLBEXC            => PARAM_LIMA_WARM%XLBEXC
+  XLBR              => PARAM_LIMA_WARM%XLBR
+  XLBEXR            => PARAM_LIMA_WARM%XLBEXR
+  XNR               => PARAM_LIMA_WARM%XNR
+  XAR               => PARAM_LIMA_WARM%XAR
+  XBR               => PARAM_LIMA_WARM%XBR
+  XCR               => PARAM_LIMA_WARM%XCR
+  XDR               => PARAM_LIMA_WARM%XDR
+  XF0R              => PARAM_LIMA_WARM%XF0R
+  XF1R              => PARAM_LIMA_WARM%XF1R
+  XCCR              => PARAM_LIMA_WARM%XCCR
+  XCXR              => PARAM_LIMA_WARM%XCXR
+  XAC               => PARAM_LIMA_WARM%XAC
+  XBC               => PARAM_LIMA_WARM%XBC
+  XCC               => PARAM_LIMA_WARM%XCC
+  XDC               => PARAM_LIMA_WARM%XDC
+  XF0C              => PARAM_LIMA_WARM%XF0C
+  XF2C              => PARAM_LIMA_WARM%XF2C
+  XC1C              => PARAM_LIMA_WARM%XC1C
+  XFSEDRR           => PARAM_LIMA_WARM%XFSEDRR
+  XFSEDCR           => PARAM_LIMA_WARM%XFSEDCR
+  XFSEDRC           => PARAM_LIMA_WARM%XFSEDRC
+  XFSEDCC           => PARAM_LIMA_WARM%XFSEDCC
+  XDIVA             => PARAM_LIMA_WARM%XDIVA
+  XTHCO             => PARAM_LIMA_WARM%XTHCO
+  XWMIN             => PARAM_LIMA_WARM%XWMIN
+  XTMIN             => PARAM_LIMA_WARM%XTMIN
+  XCSTHEN           => PARAM_LIMA_WARM%XCSTHEN
+  XCSTDCRIT         => PARAM_LIMA_WARM%XCSTDCRIT
+  XHYPINTP1         => PARAM_LIMA_WARM%XHYPINTP1
+  XHYPINTP2         => PARAM_LIMA_WARM%XHYPINTP2
+  XAHENINTP1        => PARAM_LIMA_WARM%XAHENINTP1
+  XAHENINTP2        => PARAM_LIMA_WARM%XAHENINTP2
+  XWCOEF_F1         => PARAM_LIMA_WARM%XWCOEF_F1
+  XWCOEF_F2         => PARAM_LIMA_WARM%XWCOEF_F2
+  XWCOEF_F3         => PARAM_LIMA_WARM%XWCOEF_F3
+  XWCOEF_Y1         => PARAM_LIMA_WARM%XWCOEF_Y1
+  XWCOEF_Y2         => PARAM_LIMA_WARM%XWCOEF_Y2
+  XWCOEF_Y3         => PARAM_LIMA_WARM%XWCOEF_Y3
+  XKERA1            => PARAM_LIMA_WARM%XKERA1
+  XKERA2            => PARAM_LIMA_WARM%XKERA2
+  XSELFC            => PARAM_LIMA_WARM%XSELFC
+  XAUTO1            => PARAM_LIMA_WARM%XAUTO1
+  XAUTO2            => PARAM_LIMA_WARM%XAUTO2
+  XCAUTR            => PARAM_LIMA_WARM%XCAUTR
+  XLAUTR            => PARAM_LIMA_WARM%XLAUTR
+  XLAUTR_THRESHOLD  => PARAM_LIMA_WARM%XLAUTR_THRESHOLD
+  XITAUTR           => PARAM_LIMA_WARM%XITAUTR
+  XITAUTR_THRESHOLD => PARAM_LIMA_WARM%XITAUTR_THRESHOLD
+  XR0               => PARAM_LIMA_WARM%XR0
+  XACCR1            => PARAM_LIMA_WARM%XACCR1
+  XACCR2            => PARAM_LIMA_WARM%XACCR2
+  XACCR3            => PARAM_LIMA_WARM%XACCR3
+  XACCR4            => PARAM_LIMA_WARM%XACCR4
+  XACCR5            => PARAM_LIMA_WARM%XACCR5
+  XACCR6            => PARAM_LIMA_WARM%XACCR6
+  XACCR_CLARGE1     => PARAM_LIMA_WARM%XACCR_CLARGE1
+  XACCR_CLARGE2     => PARAM_LIMA_WARM%XACCR_CLARGE2
+  XACCR_RLARGE1     => PARAM_LIMA_WARM%XACCR_RLARGE1
+  XACCR_RLARGE2     => PARAM_LIMA_WARM%XACCR_RLARGE2
+  XACCR_CSMALL1     => PARAM_LIMA_WARM%XACCR_CSMALL1
+  XACCR_CSMALL2     => PARAM_LIMA_WARM%XACCR_CSMALL2
+  XACCR_RSMALL1     => PARAM_LIMA_WARM%XACCR_RSMALL1
+  XACCR_RSMALL2     => PARAM_LIMA_WARM%XACCR_RSMALL2
+  XFCACCR           => PARAM_LIMA_WARM%XFCACCR
+  XEXCACCR          => PARAM_LIMA_WARM%XEXCACCR
+  XSCBU2            => PARAM_LIMA_WARM%XSCBU2
+  XSCBU3            => PARAM_LIMA_WARM%XSCBU3
+  XSCBU_EFF1        => PARAM_LIMA_WARM%XSCBU_EFF1
+  XSCBU_EFF2        => PARAM_LIMA_WARM%XSCBU_EFF2
+  XSCBUEXP1         => PARAM_LIMA_WARM%XSCBUEXP1
+  XSPONBUD1         => PARAM_LIMA_WARM%XSPONBUD1
+  XSPONBUD2         => PARAM_LIMA_WARM%XSPONBUD2
+  XSPONBUD3         => PARAM_LIMA_WARM%XSPONBUD3
+  XSPONCOEF2        => PARAM_LIMA_WARM%XSPONCOEF2
+  X0EVAR            => PARAM_LIMA_WARM%X0EVAR
+  X1EVAR            => PARAM_LIMA_WARM%X1EVAR
+  XEX0EVAR          => PARAM_LIMA_WARM%XEX0EVAR
+  XEX1EVAR          => PARAM_LIMA_WARM%XEX1EVAR
+  XEX2EVAR          => PARAM_LIMA_WARM%XEX2EVAR
+  XCEVAP            => PARAM_LIMA_WARM%XCEVAP
+  XCONCR_PARAM_INI  => PARAM_LIMA_WARM%XCONCR_PARAM_INI
+  X0CNDC            => PARAM_LIMA_WARM%X0CNDC
+  X2CNDC            => PARAM_LIMA_WARM%X2CNDC
+  XFREFFC           => PARAM_LIMA_WARM%XFREFFC
+  XFREFFR           => PARAM_LIMA_WARM%XFREFFR
+  XCREC             => PARAM_LIMA_WARM%XCREC
+  XCRER             => PARAM_LIMA_WARM%XCRER
+
+  NHYP              => PARAM_LIMA_WARM%NHYP
+  NAHEN             => PARAM_LIMA_WARM%NAHEN
+ENDIF
+END SUBROUTINE PARAM_LIMA_WARM_ASSOCIATE
+!
+SUBROUTINE PARAM_LIMA_WARM_ALLOCATE(HNAME, KDIM1, KDIM2, KDIM3, KDIM4)
+  IMPLICIT NONE
+  CHARACTER(LEN=*), INTENT(IN) :: HNAME
+  INTEGER, INTENT(IN)          :: KDIM1
+  INTEGER, OPTIONAL, INTENT(IN):: KDIM2
+  INTEGER, OPTIONAL, INTENT(IN):: KDIM3
+  INTEGER, OPTIONAL, INTENT(IN):: KDIM4
+
+  SELECT CASE(TRIM(HNAME))
+    CASE('XHYPF12')
+      ALLOCATE(PARAM_LIMA_WARM%XHYPF12(KDIM1, KDIM2))
+      XHYPF12 => PARAM_LIMA_WARM%XHYPF12
+    CASE('XHYPF32')
+      ALLOCATE(PARAM_LIMA_WARM%XHYPF32(KDIM1, KDIM2))
+      XHYPF32 => PARAM_LIMA_WARM%XHYPF32
+    CASE('XAHENG')
+      ALLOCATE(PARAM_LIMA_WARM%XAHENG(KDIM1))
+      XAHENG => PARAM_LIMA_WARM%XAHENG
+    CASE('XAHENG2')
+      ALLOCATE(PARAM_LIMA_WARM%XAHENG2(KDIM1))
+      XAHENG2 => PARAM_LIMA_WARM%XAHENG2
+    CASE('XAHENG3')
+      ALLOCATE(PARAM_LIMA_WARM%XAHENG3(KDIM1))
+      XAHENG3 => PARAM_LIMA_WARM%XAHENG3
+    CASE('XPSI1')
+      ALLOCATE(PARAM_LIMA_WARM%XPSI1(KDIM1))
+      XPSI1 => PARAM_LIMA_WARM%XPSI1
+    CASE('XPSI3')
+      ALLOCATE(PARAM_LIMA_WARM%XPSI3(KDIM1))
+      XPSI3 => PARAM_LIMA_WARM%XPSI3
+    CASE('XAHENF')
+      ALLOCATE(PARAM_LIMA_WARM%XAHENF(KDIM1))
+      XAHENF => PARAM_LIMA_WARM%XAHENF
+    CASE('XAHENY')
+      ALLOCATE(PARAM_LIMA_WARM%XAHENY(KDIM1))
+      XAHENY => PARAM_LIMA_WARM%XAHENY
+    CASE('XCONCC_INI')
+      ALLOCATE(PARAM_LIMA_WARM%XCONCC_INI(KDIM1,KDIM2,KDIM3,KDIM4))
+      XCONCC_INI => PARAM_LIMA_WARM%XCONCC_INI
+  END SELECT
+END SUBROUTINE PARAM_LIMA_WARM_ALLOCATE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/mode_ini_lima_cold_mixed.F90 b/src/common/micro/mode_ini_lima_cold_mixed.F90
index 0de66454718e7ff0a41977c4a553a7b80cebc2ed..88f340867f5965ea1b7d79e0c8d7db5780c27e25 100644
--- a/src/common/micro/mode_ini_lima_cold_mixed.F90
+++ b/src/common/micro/mode_ini_lima_cold_mixed.F90
@@ -141,6 +141,8 @@ REAL :: ZRHOIW ! ice density
 !
 !
 !ILUOUT0 = TLUOUT0%NLU
+CALL PARAM_LIMA_COLD_ASSOCIATE()
+CALL PARAM_LIMA_MIXED_ASSOCIATE()
 !
 !
 !*       1.     CHARACTERISTICS OF THE SPECIES
@@ -806,17 +808,17 @@ XEXSRIMCG2=XBG
 !!$  WRITE(UNIT=ILUOUT0,FMT='(" Coll. efficiency          XCOLCS=",E13.6)') XCOLCS
 !!$END IF
 !!$!
-NGAMINC = 80
-XGAMINC_BOUND_MIN = (1000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E-1 ! Minimal value of (Lbda * D_cs^lim)**alpha
-XGAMINC_BOUND_MAX = (50000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E7 ! Maximal value of (Lbda * D_cs^lim)**alpha
-ZRATE = EXP(LOG(XGAMINC_BOUND_MAX/XGAMINC_BOUND_MIN)/FLOAT(NGAMINC-1))
+PARAM_LIMA_MIXED%NGAMINC = 80
+PARAM_LIMA_MIXED%XGAMINC_BOUND_MIN = (1000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E-1 ! Minimal value of (Lbda * D_cs^lim)**alpha
+PARAM_LIMA_MIXED%XGAMINC_BOUND_MAX = (50000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E7 ! Maximal value of (Lbda * D_cs^lim)**alpha
+ZRATE = EXP(LOG(PARAM_LIMA_MIXED%XGAMINC_BOUND_MAX/PARAM_LIMA_MIXED%XGAMINC_BOUND_MIN)/FLOAT(PARAM_LIMA_MIXED%NGAMINC-1))
 !
-ALLOCATE( XGAMINC_RIM1(NGAMINC) )
-ALLOCATE( XGAMINC_RIM2(NGAMINC) )
-ALLOCATE( XGAMINC_RIM4(NGAMINC) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_RIM1', NGAMINC)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_RIM2', NGAMINC)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_RIM4', NGAMINC)
 !
 DO J1=1,NGAMINC
-  ZBOUND = XGAMINC_BOUND_MIN*ZRATE**(J1-1)
+  ZBOUND = PARAM_LIMA_MIXED%XGAMINC_BOUND_MIN*ZRATE**(J1-1)
   XGAMINC_RIM1(J1) = GAMMA_INC(XNUS+(2.0+XDS)/XALPHAS,ZBOUND)
   XGAMINC_RIM2(J1) = GAMMA_INC(XNUS+XBS/XALPHAS      ,ZBOUND)
   XGAMINC_RIM4(J1) = GAMMA_INC(XNUS+XBG/XALPHAS      ,ZBOUND) ! Pour Murakami 1990
@@ -838,14 +840,14 @@ XHM_FACTS = XHM_YIELD*(XHM_COLLCS/XCOLCS)
 !
 ! Notice: One magnitude of lambda discretized over 10 points for the droplets 
 !
-XGAMINC_HMC_BOUND_MIN = 1.0E-3 ! Min value of (Lbda * (12,25) microns)**alpha
-XGAMINC_HMC_BOUND_MAX = 1.0E5  ! Max value of (Lbda * (12,25) microns)**alpha
-ZRATE = EXP(LOG(XGAMINC_HMC_BOUND_MAX/XGAMINC_HMC_BOUND_MIN)/REAL(NGAMINC-1))
+PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MIN = 1.0E-3 ! Min value of (Lbda * (12,25) microns)**alpha
+PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MAX = 1.0E5  ! Max value of (Lbda * (12,25) microns)**alpha
+ZRATE = EXP(LOG(PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MAX/PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MIN)/REAL(PARAM_LIMA_MIXED%NGAMINC-1))
 !
-ALLOCATE( XGAMINC_HMC(NGAMINC) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_HMC', NGAMINC)
 !
 DO J1=1,NGAMINC
-  ZBOUND = XGAMINC_HMC_BOUND_MIN*ZRATE**(J1-1)
+  ZBOUND = PARAM_LIMA_MIXED%XGAMINC_HMC_BOUND_MIN*ZRATE**(J1-1)
   XGAMINC_HMC(J1) = GAMMA_INC(XNUC,ZBOUND)
 END DO
 !
@@ -882,18 +884,18 @@ XLBNSACCR3  =                          MOMG(XALPHAS,XNUS,2.)
 ! Notice: One magnitude of lambda discretized over 10 points for rain
 ! Notice: One magnitude of lambda discretized over 10 points for snow
 !
-NACCLBDAS = 40
-XACCLBDAS_MIN = 5.0E1*XTRANS_MP_GAMMAS !5.0E1*XTRANS_MP_GAMMAS ! Minimal value of Lbda_s to tabulate XKER_RACCS
-XACCLBDAS_MAX = 5.0E5*XTRANS_MP_GAMMAS !5.0E5*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_RACCS
+PARAM_LIMA_MIXED%NACCLBDAS = 40
+PARAM_LIMA_MIXED%XACCLBDAS_MIN = 5.0E1*XTRANS_MP_GAMMAS !5.0E1*XTRANS_MP_GAMMAS ! Minimal value of Lbda_s to tabulate XKER_RACCS
+PARAM_LIMA_MIXED%XACCLBDAS_MAX = 5.0E5*XTRANS_MP_GAMMAS !5.0E5*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_RACCS
 ZRATE = LOG(XACCLBDAS_MAX/XACCLBDAS_MIN)/FLOAT(NACCLBDAS-1)
-XACCINTP1S = 1.0 / ZRATE
-XACCINTP2S = 1.0 - LOG( XACCLBDAS_MIN ) / ZRATE
-NACCLBDAR = 40
-XACCLBDAR_MIN = 1.0E3 ! Minimal value of Lbda_r to tabulate XKER_RACCS
-XACCLBDAR_MAX = 1.0E7 ! Maximal value of Lbda_r to tabulate XKER_RACCS
-ZRATE = LOG(XACCLBDAR_MAX/XACCLBDAR_MIN)/REAL(NACCLBDAR-1)
+PARAM_LIMA_MIXED%XACCINTP1S = 1.0 / ZRATE
+PARAM_LIMA_MIXED%XACCINTP2S = 1.0 - LOG( XACCLBDAS_MIN ) / ZRATE
+PARAM_LIMA_MIXED%NACCLBDAR = 40
+PARAM_LIMA_MIXED%XACCLBDAR_MIN = 1.0E3 ! Minimal value of Lbda_r to tabulate XKER_RACCS
+PARAM_LIMA_MIXED%XACCLBDAR_MAX = 1.0E7 ! Maximal value of Lbda_r to tabulate XKER_RACCS
+ZRATE = LOG(PARAM_LIMA_MIXED%XACCLBDAR_MAX/PARAM_LIMA_MIXED%XACCLBDAR_MIN)/REAL(NACCLBDAR-1)
 XACCINTP1R = 1.0 / ZRATE
-XACCINTP2R = 1.0 - LOG( XACCLBDAR_MIN ) / ZRATE
+XACCINTP2R = 1.0 - LOG( PARAM_LIMA_MIXED%XACCLBDAR_MIN ) / ZRATE
 !
 !*       7.2.2  Computations of the tabulated normalized kernels
 !
@@ -901,12 +903,12 @@ IND      = 50    ! Interval number, collection efficiency and infinite diameter
 ZESR     = 1.0   ! factor used to integrate the dimensional distributions when
 ZFDINFTY = 20.0  ! computing the kernels XKER_RACCSS, XKER_RACCS and XKER_SACCRG
 !
-ALLOCATE( XKER_RACCSS(NACCLBDAS,NACCLBDAR) )
-ALLOCATE( XKER_RACCS (NACCLBDAS,NACCLBDAR) )
-ALLOCATE( XKER_SACCRG(NACCLBDAR,NACCLBDAS) )
-ALLOCATE( XKER_N_RACCSS(NACCLBDAS,NACCLBDAR) )
-ALLOCATE( XKER_N_RACCS (NACCLBDAS,NACCLBDAR) )
-ALLOCATE( XKER_N_SACCRG(NACCLBDAR,NACCLBDAS) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_RACCSS', NACCLBDAS,NACCLBDAR)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_RACCS', NACCLBDAS,NACCLBDAR)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_SACCRG', NACCLBDAR,NACCLBDAS)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_RACCSS', NACCLBDAS,NACCLBDAR)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_RACCS', NACCLBDAS,NACCLBDAR)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_SACCRG', NACCLBDAR,NACCLBDAS)
 CALL NRCOLSS ( IND, XALPHAS, XNUS, XALPHAR, XNUR,                        & 
                ZESR, XCS, XDS, XFVELOS, XCR, XDR,                        & 
                XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & 
@@ -1054,10 +1056,10 @@ END IF
 !
 ! Notice: One magnitude of lambda discretized over 10 points for snow
 !
-NSCLBDAS = 80
-XSCLBDAS_MIN = 1.0E0*XTRANS_MP_GAMMAS  ! Minimal value of Lbda_s to tabulate XKER_RSCS
-XSCLBDAS_MAX = 5.0E10*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_RSCS
-ZRATE = LOG(XSCLBDAS_MAX/XSCLBDAS_MIN)/FLOAT(NSCLBDAS-1)
+PARAM_LIMA_COLD%NSCLBDAS = 80
+PARAM_LIMA_MIXED%XSCLBDAS_MIN = 1.0E0*XTRANS_MP_GAMMAS  ! Minimal value of Lbda_s to tabulate XKER_RSCS
+PARAM_LIMA_MIXED%XSCLBDAS_MAX = 5.0E10*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_RSCS
+ZRATE = LOG(PARAM_LIMA_MIXED%XSCLBDAS_MAX/PARAM_LIMA_MIXED%XSCLBDAS_MIN)/FLOAT(PARAM_LIMA_COLD%NSCLBDAS-1)
 XSCINTP1S = 1.0 / ZRATE
 XSCINTP2S = 1.0 - LOG( XSCLBDAS_MIN ) / ZRATE
 !
@@ -1066,7 +1068,7 @@ XSCINTP2S = 1.0 - LOG( XSCLBDAS_MIN ) / ZRATE
   ZESS     = 1.0   ! factor used to integrate the dimensional distributions when
   ZFDINFTY = 20.0  ! computing the kernels XKER_SSCSS
 !
-  ALLOCATE( XKER_N_SSCS(NSCLBDAS,NSCLBDAS) )
+  CALL PARAM_LIMA_COLD_ALLOCATE('XKER_N_SSCS', NSCLBDAS,NSCLBDAS)
 !
   CALL NZCOLX  ( IND, XALPHAS, XNUS, XALPHAS, XNUS,                          & 
                ZESS, XCS, XDS, XFVELOS, XCS, XDS, XFVELOS,                   & 
@@ -1133,23 +1135,25 @@ XDCGLIM_CIBU_MIN = 2.0E-3 ! D_cg lim min
 !!$  WRITE(UNIT=ILUOUT0,FMT='(" D_cg^lim min     =",E13.6)') XDCGLIM_CIBU_MIN
 !!$END IF
 !
-NGAMINC = 80
+PARAM_LIMA_MIXED%NGAMINC = 80
 !
 !Note : Boundaries are rounded at 5.0 or 1.0 (down for Bound_min and up for Bound_max)
-XGAMINC_BOUND_CIBU_SMIN = 1.0E-5 * XTRANS_MP_GAMMAS**XALPHAS ! Minimal value of (Lbda_s * D_cs^lim)**alpha) 0.2 mm
-XGAMINC_BOUND_CIBU_SMAX = 5.0E+2 * XTRANS_MP_GAMMAS**XALPHAS ! Maximal value of (Lbda_s * D_cs^lim)**alpha) 1 mm
-ZRATE_S = EXP(LOG(XGAMINC_BOUND_CIBU_SMAX/XGAMINC_BOUND_CIBU_SMIN)/FLOAT(NGAMINC-1))
+PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMIN = 1.0E-5 * XTRANS_MP_GAMMAS**XALPHAS ! Minimal value of (Lbda_s * D_cs^lim)**alpha) 0.2 mm
+PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMAX = 5.0E+2 * XTRANS_MP_GAMMAS**XALPHAS ! Maximal value of (Lbda_s * D_cs^lim)**alpha) 1 mm
+ZRATE_S = EXP(LOG(PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMAX/PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMIN)/&
+              FLOAT(PARAM_LIMA_MIXED%NGAMINC-1))
 !
-XGAMINC_BOUND_CIBU_GMIN = 1.0E-1 ! Minimal value of (Lbda_g * D_cg^lim)**alpha) 2 mm
-XGAMINC_BOUND_CIBU_GMAX = 5.0E+1 ! Maximal value of (Lbda_g * D_cg^lim)**alpha) 2 mm
-ZRATE_G = EXP(LOG(XGAMINC_BOUND_CIBU_GMAX/XGAMINC_BOUND_CIBU_GMIN)/FLOAT(NGAMINC-1))
+PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMIN = 1.0E-1 ! Minimal value of (Lbda_g * D_cg^lim)**alpha) 2 mm
+PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMAX = 5.0E+1 ! Maximal value of (Lbda_g * D_cg^lim)**alpha) 2 mm
+ZRATE_G = EXP(LOG(PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMAX/PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMIN)/&
+              FLOAT(PARAM_LIMA_MIXED%NGAMINC-1))
 !
-ALLOCATE( XGAMINC_CIBU_S(4,NGAMINC) )
-ALLOCATE( XGAMINC_CIBU_G(2,NGAMINC) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_CIBU_S', 4,PARAM_LIMA_MIXED%NGAMINC)
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_CIBU_G', 2,PARAM_LIMA_MIXED%NGAMINC)
 !
 DO J1 = 1, NGAMINC
-  ZBOUND_CIBU_SMIN = XGAMINC_BOUND_CIBU_SMIN * ZRATE_S**(J1-1)
-  ZBOUND_CIBU_GMIN = XGAMINC_BOUND_CIBU_GMIN * ZRATE_G**(J1-1)
+  ZBOUND_CIBU_SMIN = PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_SMIN * ZRATE_S**(J1-1)
+  ZBOUND_CIBU_GMIN = PARAM_LIMA_MIXED%XGAMINC_BOUND_CIBU_GMIN * ZRATE_G**(J1-1)
 !
 ! For ZNI_CIBU
   XGAMINC_CIBU_S(1,J1) = GAMMA_INC(XNUS,ZBOUND_CIBU_SMIN)
@@ -1192,16 +1196,17 @@ XDCRLIM_RDSF_MIN = 0.1E-3 ! D_cr lim min
 !!$  WRITE(UNIT=ILUOUT0,FMT='(" D_cr^lim min     =",E13.6)') XDCRLIM_RDSF_MIN
 !!$END IF
 !
-NGAMINC = 80
+PARAM_LIMA_MIXED%NGAMINC = 80
 !
-XGAMINC_BOUND_RDSF_RMIN = 1.0E-5    ! Minimal value of (Lbda_r * D_cr^lim)**alpha) 0.1 mm
-XGAMINC_BOUND_RDSF_RMAX = 5.0E-3    ! Maximal value of (Lbda_r * D_cr^lim)**alpha) 1 mm
-ZRATE_R = EXP(LOG(XGAMINC_BOUND_RDSF_RMAX/XGAMINC_BOUND_RDSF_RMIN)/FLOAT(NGAMINC-1))
+PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMIN = 1.0E-5    ! Minimal value of (Lbda_r * D_cr^lim)**alpha) 0.1 mm
+PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMAX = 5.0E-3    ! Maximal value of (Lbda_r * D_cr^lim)**alpha) 1 mm
+ZRATE_R = EXP(LOG(PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMAX/PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMIN)/&
+              FLOAT(PARAM_LIMA_MIXED%NGAMINC-1))
 !
-ALLOCATE( XGAMINC_RDSF_R(NGAMINC) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XGAMINC_RDSF_R', NGAMINC)
 !
 DO J1 = 1, NGAMINC
-  ZBOUND_RDSF_RMIN = XGAMINC_BOUND_RDSF_RMIN * ZRATE_R**(J1-1)
+  ZBOUND_RDSF_RMIN = PARAM_LIMA_MIXED%XGAMINC_BOUND_RDSF_RMIN * ZRATE_R**(J1-1)
 !
 ! For ZNI_RDSF
   XGAMINC_RDSF_R(J1) = GAMMA_INC(XNUR+((6.0+XDR)/XALPHAR),ZBOUND_RDSF_RMIN)
@@ -1310,24 +1315,24 @@ XLBNRDRYG3  =                          MOMG(XALPHAR,XNUR,2.)
 !
 ! Notice: One magnitude of lambda discretized over 10 points
 !
-NDRYLBDAR = 40
-XDRYLBDAR_MIN = 1.0E3 ! Minimal value of Lbda_r to tabulate XKER_RDRYG
-XDRYLBDAR_MAX = 1.0E7 ! Maximal value of Lbda_r to tabulate XKER_RDRYG
-ZRATE = LOG(XDRYLBDAR_MAX/XDRYLBDAR_MIN)/REAL(NDRYLBDAR-1)
+PARAM_LIMA_MIXED%NDRYLBDAR = 40
+PARAM_LIMA_MIXED%XDRYLBDAR_MIN = 1.0E3 ! Minimal value of Lbda_r to tabulate XKER_RDRYG
+PARAM_LIMA_MIXED%XDRYLBDAR_MAX = 1.0E7 ! Maximal value of Lbda_r to tabulate XKER_RDRYG
+ZRATE = LOG(PARAM_LIMA_MIXED%XDRYLBDAR_MAX/PARAM_LIMA_MIXED%XDRYLBDAR_MIN)/REAL(PARAM_LIMA_MIXED%NDRYLBDAR-1)
 XDRYINTP1R = 1.0 / ZRATE
 XDRYINTP2R = 1.0 - LOG( XDRYLBDAR_MIN ) / ZRATE
-NDRYLBDAS = 80
-XDRYLBDAS_MIN = 5.0E1*XTRANS_MP_GAMMAS ! Minimal value of Lbda_s to tabulate XKER_SDRYG
-XDRYLBDAS_MAX = 5.0E8*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_SDRYG
-ZRATE = LOG(XDRYLBDAS_MAX/XDRYLBDAS_MIN)/REAL(NDRYLBDAS-1)
+PARAM_LIMA_MIXED%NDRYLBDAS = 80
+PARAM_LIMA_MIXED%XDRYLBDAS_MIN = 5.0E1*XTRANS_MP_GAMMAS ! Minimal value of Lbda_s to tabulate XKER_SDRYG
+PARAM_LIMA_MIXED%XDRYLBDAS_MAX = 5.0E8*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_SDRYG
+ZRATE = LOG(PARAM_LIMA_MIXED%XDRYLBDAS_MAX/PARAM_LIMA_MIXED%XDRYLBDAS_MIN)/REAL(PARAM_LIMA_MIXED%NDRYLBDAS-1)
 XDRYINTP1S = 1.0 / ZRATE
 XDRYINTP2S = 1.0 - LOG( XDRYLBDAS_MIN ) / ZRATE
-NDRYLBDAG = 40
-XDRYLBDAG_MIN = 1.0E3 ! Min value of Lbda_g to tabulate XKER_SDRYG,XKER_RDRYG
-XDRYLBDAG_MAX = 1.0E7 ! Max value of Lbda_g to tabulate XKER_SDRYG,XKER_RDRYG
-ZRATE = LOG(XDRYLBDAG_MAX/XDRYLBDAG_MIN)/REAL(NDRYLBDAG-1)
+PARAM_LIMA_MIXED%NDRYLBDAG = 40
+PARAM_LIMA_MIXED%XDRYLBDAG_MIN = 1.0E3 ! Min value of Lbda_g to tabulate XKER_SDRYG,XKER_RDRYG
+PARAM_LIMA_MIXED%XDRYLBDAG_MAX = 1.0E7 ! Max value of Lbda_g to tabulate XKER_SDRYG,XKER_RDRYG
+ZRATE = LOG(PARAM_LIMA_MIXED%XDRYLBDAG_MAX/PARAM_LIMA_MIXED%XDRYLBDAG_MIN)/REAL(PARAM_LIMA_MIXED%NDRYLBDAG-1)
 XDRYINTP1G = 1.0 / ZRATE
-XDRYINTP2G = 1.0 - LOG( XDRYLBDAG_MIN ) / ZRATE
+XDRYINTP2G = 1.0 - LOG( PARAM_LIMA_MIXED%XDRYLBDAG_MIN ) / ZRATE
 !
 !*       8.2.5  Computations of the tabulated normalized kernels
 !
@@ -1335,9 +1340,9 @@ IND      = 50    ! Interval number, collection efficiency and infinite diameter
 ZEGS     = 1.0   ! factor used to integrate the dimensional distributions when
 ZFDINFTY = 20.0  ! computing the kernels XKER_SDRYG
 !
-ALLOCATE( XKER_SDRYG(NDRYLBDAG,NDRYLBDAS) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_SDRYG', NDRYLBDAG,NDRYLBDAS)
 !if (NMOM_S.GE.2) then
-  ALLOCATE( XKER_N_SDRYG(NDRYLBDAG,NDRYLBDAS) )
+  CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_SDRYG', NDRYLBDAG,NDRYLBDAS)
   CALL NZCOLX  ( IND, XALPHAG, XNUG, XALPHAS, XNUS,                         & 
               ZEGS, XCG, XDG, 0., XCS, XDS, XFVELOS,                        & 
               XDRYLBDAG_MAX, XDRYLBDAS_MAX, XDRYLBDAG_MIN, XDRYLBDAS_MIN, & 
@@ -1418,9 +1423,9 @@ IND      = 50    ! Number of interval used to integrate the dimensional
 ZEGR     = 1.0   ! distributions when computing the kernel XKER_RDRYG
 ZFDINFTY = 20.0
 !
-ALLOCATE( XKER_RDRYG(NDRYLBDAG,NDRYLBDAR) )
+CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_RDRYG', NDRYLBDAG,NDRYLBDAR)
 !if ( NMOM_R.GE.2 ) then
-  ALLOCATE( XKER_N_RDRYG(NDRYLBDAG,NDRYLBDAR) ) 
+  CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_RDRYG', NDRYLBDAG,NDRYLBDAR)
   CALL NZCOLX  ( IND, XALPHAS, XNUS, XALPHAR, XNUR,                          & 
                ZEGR, XCG, XDG, 0., XCR, XDR, 0.,                            & 
                XDRYLBDAG_MAX, XDRYLBDAR_MAX, XDRYLBDAG_MIN, XDRYLBDAR_MIN, &
@@ -1534,24 +1539,24 @@ XLBNGWETH3  =                          MOMG(XALPHAG,XNUG,2.)
 !
 ! Notice: One magnitude of lambda discretized over 10 points
 !
-NWETLBDAS = 80
-XWETLBDAS_MIN = 5.0E1*XTRANS_MP_GAMMAS ! Minimal value of Lbda_s to tabulate XKER_SWETH
-XWETLBDAS_MAX = 5.0E8*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_SWETH
-ZRATE = LOG(XWETLBDAS_MAX/XWETLBDAS_MIN)/REAL(NWETLBDAS-1)
+PARAM_LIMA_MIXED%NWETLBDAS = 80
+PARAM_LIMA_MIXED%XWETLBDAS_MIN = 5.0E1*XTRANS_MP_GAMMAS ! Minimal value of Lbda_s to tabulate XKER_SWETH
+PARAM_LIMA_MIXED%XWETLBDAS_MAX = 5.0E8*XTRANS_MP_GAMMAS ! Maximal value of Lbda_s to tabulate XKER_SWETH
+ZRATE = LOG(PARAM_LIMA_MIXED%XWETLBDAS_MAX/PARAM_LIMA_MIXED%XWETLBDAS_MIN)/REAL(PARAM_LIMA_MIXED%NWETLBDAS-1)
 XWETINTP1S = 1.0 / ZRATE
-XWETINTP2S = 1.0 - LOG( XWETLBDAS_MIN ) / ZRATE
-NWETLBDAG = 40
-XWETLBDAG_MIN = 1.0E3 ! Min value of Lbda_g to tabulate XKER_GWETH
-XWETLBDAG_MAX = 1.0E7 ! Max value of Lbda_g to tabulate XKER_GWETH
-ZRATE = LOG(XWETLBDAG_MAX/XWETLBDAG_MIN)/REAL(NWETLBDAG-1)
+XWETINTP2S = 1.0 - LOG( PARAM_LIMA_MIXED%XWETLBDAS_MIN ) / ZRATE
+PARAM_LIMA_MIXED%NWETLBDAG = 40
+PARAM_LIMA_MIXED%XWETLBDAG_MIN = 1.0E3 ! Min value of Lbda_g to tabulate XKER_GWETH
+PARAM_LIMA_MIXED%XWETLBDAG_MAX = 1.0E7 ! Max value of Lbda_g to tabulate XKER_GWETH
+ZRATE = LOG(PARAM_LIMA_MIXED%XWETLBDAG_MAX/PARAM_LIMA_MIXED%XWETLBDAG_MIN)/REAL(PARAM_LIMA_MIXED%NWETLBDAG-1)
 XWETINTP1G = 1.0 / ZRATE
 XWETINTP2G = 1.0 - LOG( XWETLBDAG_MIN ) / ZRATE
-NWETLBDAH = 40
-XWETLBDAH_MIN = 1.0E3 ! Min value of Lbda_h to tabulate XKER_SWETH,XKER_GWETH
-XWETLBDAH_MAX = 1.0E7 ! Max value of Lbda_h to tabulate XKER_SWETH,XKER_GWETH
-ZRATE = LOG(XWETLBDAH_MAX/XWETLBDAH_MIN)/REAL(NWETLBDAH-1)
+PARAM_LIMA_MIXED%NWETLBDAH = 40
+PARAM_LIMA_MIXED%XWETLBDAH_MIN = 1.0E3 ! Min value of Lbda_h to tabulate XKER_SWETH,XKER_GWETH
+PARAM_LIMA_MIXED%XWETLBDAH_MAX = 1.0E7 ! Max value of Lbda_h to tabulate XKER_SWETH,XKER_GWETH
+ZRATE = LOG(PARAM_LIMA_MIXED%XWETLBDAH_MAX/PARAM_LIMA_MIXED%XWETLBDAH_MIN)/REAL(PARAM_LIMA_MIXED%NWETLBDAH-1)
 XWETINTP1H = 1.0 / ZRATE
-XWETINTP2H = 1.0 - LOG( XWETLBDAH_MIN ) / ZRATE
+XWETINTP2H = 1.0 - LOG( PARAM_LIMA_MIXED%XWETLBDAH_MIN ) / ZRATE
 !
 !*       9.2.4  Computations of the tabulated normalized kernels
 !
@@ -1560,7 +1565,7 @@ ZEHS     = 1.0   ! factor used to integrate the dimensional distributions when
 ZFDINFTY = 20.0  ! computing the kernels XKER_SWETH
 !
 !if ( NMOM_S.GE.2 ) then
-  IF( .NOT.ALLOCATED(XKER_N_SWETH) ) ALLOCATE( XKER_N_SWETH(NWETLBDAH,NWETLBDAS) )
+  IF( .NOT.ASSOCIATED(XKER_N_SWETH) ) CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_SWETH', NWETLBDAH,NWETLBDAS)
   CALL NZCOLX ( IND, XALPHAH, XNUH, XALPHAS, XNUS,                          &  
               ZEHS, XCH, XDH, 0., XCS, XDS, XFVELOS,                       &  ! 
               XWETLBDAH_MAX, XWETLBDAS_MAX, XWETLBDAH_MIN, XWETLBDAS_MIN, &  ! 
@@ -1575,7 +1580,7 @@ ZFDINFTY = 20.0  ! computing the kernels XKER_SWETH
 !!$  END DO                                                                   
 !!$  WRITE(UNIT=ILUOUT0,FMT='("!")') 
 !end  if
-IF( .NOT.ALLOCATED(XKER_SWETH) ) ALLOCATE( XKER_SWETH(NWETLBDAH,NWETLBDAS) )
+IF( .NOT.ASSOCIATED(XKER_SWETH) ) CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_SWETH', NWETLBDAH,NWETLBDAS)
 !
 CALL LIMA_READ_XKER_SWETH (KWETLBDAH,KWETLBDAS,KND,                                    &
                            PALPHAH,PNUH,PALPHAS,PNUS,PEHS,PBS,PCH,PDH,PCS,PDS,PFVELOS, &
@@ -1643,7 +1648,7 @@ ZEHG     = 1.0   ! distributions when computing the kernel XKER_GWETH
 ZFDINFTY = 20.0
 !
 !if ( NMOM_G.GE.2 ) then
-  IF( .NOT.ALLOCATED(XKER_N_GWETH) ) ALLOCATE( XKER_N_GWETH(NWETLBDAH,NWETLBDAG) )
+  IF( .NOT.ASSOCIATED(XKER_N_GWETH) ) CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_N_GWETH', NWETLBDAH,NWETLBDAG)
   CALL NZCOLX ( IND, XALPHAH, XNUH, XALPHAG, XNUG,                          & 
               ZEHG, XCH, XDH, 0., XCG, XDG, 0.,                            & 
               XWETLBDAH_MAX, XWETLBDAG_MAX, XWETLBDAH_MIN, XWETLBDAG_MIN, & 
@@ -1658,7 +1663,7 @@ ZFDINFTY = 20.0
 !!$  END DO                                                                   
 !!$  WRITE(UNIT=ILUOUT0,FMT='("!")') 
 !end if
-IF( .NOT.ALLOCATED(XKER_GWETH) ) ALLOCATE( XKER_GWETH(NWETLBDAH,NWETLBDAG) )
+IF( .NOT.ASSOCIATED(XKER_GWETH) ) CALL PARAM_LIMA_MIXED_ALLOCATE('XKER_GWETH', NWETLBDAH,NWETLBDAG)
 !
 CALL LIMA_READ_XKER_GWETH (KWETLBDAH,KWETLBDAG,KND,                                 &
                            PALPHAH,PNUH,PALPHAG,PNUG,PEHG,PBG,PCH,PDH,PCG,PDG,      &
diff --git a/src/common/micro/mode_ini_lima_warm.F90 b/src/common/micro/mode_ini_lima_warm.F90
index d46bd2d6bba9eb7754d79d5439e5d68d39db9fc1..47ed2c23b011c1bc00ba83b9c00e65138218e790 100644
--- a/src/common/micro/mode_ini_lima_warm.F90
+++ b/src/common/micro/mode_ini_lima_warm.F90
@@ -83,6 +83,7 @@ REAL :: ZSMIN, ZSMAX          ! Minimal and maximal supersaturation used to
 !  
 !-------------------------------------------------------------------------------
 !
+CALL PARAM_LIMA_WARM_ASSOCIATE()
 !
 !*       1.     CHARACTERISTICS OF THE SPECIES
 !   	        ------------------------------
@@ -240,8 +241,8 @@ XCSTDCRIT = (XPI/6.)*XRHOLW*( (8.0*ZSURF_TEN )/( 3.0*XRV*XRHOLW ) )**3
 !               using a logarithmic scale for S
 !
 NHYP = 500 ! Number of points for the tabulation
-ALLOCATE (XHYPF12( NHYP, NMOD_CCN ))
-ALLOCATE (XHYPF32( NHYP, NMOD_CCN ))
+CALL PARAM_LIMA_WARM_ALLOCATE('XHYPF12', NHYP, NMOD_CCN)
+CALL PARAM_LIMA_WARM_ALLOCATE('XHYPF32', NHYP, NMOD_CCN)
 !
 ZSMIN = 1.0E-5  ! Minimum supersaturation set at 0.001 % 
 ZSMAX = 5.0E-2  ! Maximum supersaturation set at 5 %
@@ -276,11 +277,11 @@ XAHENINTP2 = 0.5*REAL(NAHEN-1) - XTT
 !            Lv
 !            G
 !
-ALLOCATE (XAHENG(NAHEN))
-ALLOCATE (XAHENG2(NAHEN))
-ALLOCATE (XAHENG3(NAHEN))
-ALLOCATE (XPSI1(NAHEN))
-ALLOCATE (XPSI3(NAHEN))
+CALL PARAM_LIMA_WARM_ALLOCATE('XAHENG', NAHEN)
+CALL PARAM_LIMA_WARM_ALLOCATE('XAHENG2', NAHEN)
+CALL PARAM_LIMA_WARM_ALLOCATE('XAHENG3', NAHEN)
+CALL PARAM_LIMA_WARM_ALLOCATE('XPSI1', NAHEN)
+CALL PARAM_LIMA_WARM_ALLOCATE('XPSI3', NAHEN)
 XCSTHEN = 1.0 / ( XRHOLW*2.0*XPI )
 DO J1 = 1,NAHEN
    ZTT = XTT + REAL(J1-(NAHEN-1)/2)                                          ! T