diff --git a/docs/TODO b/docs/TODO
index 6146bf71d91118dfc05759a0b16550c7e21f79d3..32bfd81be2f219b3dd33705f9dcc4b8557fde4ac 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -13,6 +13,7 @@ Dependencies:
 Clé de compilation REPRO48 ajoutée pour permettre de reproduire le cycle 48, elle:
 - contourne des corrections de bug
 - modifie l'organisation de calculs
+- reproduit les résultats obtenus avant l'introduction de la fraction précipitante froide dans l'ajustement
 Cette clé devra être supprimée
 
 Merge pb:
@@ -39,7 +40,6 @@ Etape 2: array syntax -> loop
 
 Pb identifiés à corriger plus tard:
 - deposition devrait être déplacée dans ice4_tendencies
-- non reproduction en changeant le nombre de procs
 - avec les optimisations de Ryad, les tableaux 3D de precip passés à ice4_tendencies
   lorsque HSUBG_RC_RR_ACCR=='PRFR' ne sont  pas utilisables puisque les K1, K2 et K3
   sont relatifs à la boucle IMICRO et que les calculs faits en debut de routine ne
diff --git a/src/arome/ext/aroini_micro.F90 b/src/arome/ext/aroini_micro.F90
new file mode 100644
index 0000000000000000000000000000000000000000..1b4f963a8722864f234cc045c57427d0ae211d12
--- /dev/null
+++ b/src/arome/ext/aroini_micro.F90
@@ -0,0 +1,178 @@
+!     ######spl
+SUBROUTINE AROINI_MICRO(KULOUT,PTSTEP,LDWARM,CMICRO,KSPLITR,CCSEDIM,LDCRIAUTI,&
+              PCRIAUTI,PT0CRIAUTI,PCRIAUTC,PTSTEP_TS, CCSNOWRIMING, PMRSTEP, KMAXITER, &
+              LDFEEDBACKT, LDEVLIMIT, LDNULLWETG, LDWETGPOST, LDNULLWETH, LDWETHPOST, &
+              PFRACM90, LDCONVHG, CCSUBG_RC_RR_ACCR, CCSUBG_RR_EVAP, CCSUBG_PR_PDF, &
+              LDCRFLIMIT, CCFRAC_ICE_ADJUST, PSPLIT_MAXCFL,&
+              CCFRAC_ICE_SHALLOW_MF, LDSEDIM_AFTER,LDDEPOSC,PVDEPOSC )
+
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+!**** *INI_MICRO*   - Initialize common meso_NH MODD_ used in microphysics for AROME
+
+!     Purpose.
+!     --------
+!           Initialize 
+!           MODD_RAIN_ICE_DESCR, MODD_RAIN_ICE_PARAM and MODD_PARAM_ICE  
+!           parameters used in AROME microphysics 
+
+!**   Interface.
+!     ----------
+!        *CALL* *INI_MICRO (KULOUT,KSTEP,KSPLITR)
+
+!        Explicit arguments :
+!        --------------------
+!        KULOUT : Logical unit for the output
+!        PTSTEP  : Time step
+!        KSPLITR : Number of small time step interation for rain sedimentation 
+!        LDWARM : value assigned to LWARM       
+
+!        Implicit arguments :
+!        --------------------
+!        
+
+!     Method.
+!     -------
+!        See documentation
+
+!     Externals.
+!     ----------
+
+!     Reference.
+!     ----------
+!        Documentation AROME 
+
+!     Author.
+!     -------
+!        Y. Seity 
+
+!     Modifications.
+!     --------------
+!        Original : 03-12-12
+!        05-08-25 Kovacic  added LDWARM
+!        Jan 2015 S. Riette: LFEEDBACKT, LEVLIMIT, LNULLWETG, LWETGPOST, CSNOWRIMING,
+!                            XFRACM90, NMRSITER, XMRSTEP, LSIMULSG, XTSTEP_TS
+!                            LNULLWETH, LWETHPOST added
+!        Oct 2016 S. Riette: LDCRFLIMIT, CCFRAC_ICE_ADJUST
+!                            and CCFRAC_ICE_SHALLOW_MF added
+!        Dec 2020 Y. Seity : Add Fog deposition term
+!     ------------------------------------------------------------------
+
+USE MODD_RAIN_ICE_DESCR
+USE MODD_RAIN_ICE_PARAM
+USE MODD_PARAM_ICE
+USE MODD_PARAM_C1R3
+
+USE MODI_INI_RAIN_ICE
+
+IMPLICIT NONE
+! -----------------------------------------------------------------------
+!     DUMMY INTEGER SCALARS
+INTEGER, INTENT (IN) :: KULOUT
+REAL, INTENT (IN) :: PTSTEP
+LOGICAL, INTENT (IN) :: LDWARM
+CHARACTER(4), INTENT (IN) :: CMICRO 
+CHARACTER(4), INTENT (IN) :: CCSEDIM
+INTEGER, INTENT (OUT) :: KSPLITR
+LOGICAL, INTENT (IN) :: LDCRIAUTI
+REAL, INTENT (IN) :: PCRIAUTI
+REAL, INTENT (IN) :: PT0CRIAUTI
+REAL, INTENT (IN) :: PCRIAUTC
+REAL, INTENT (IN) :: PTSTEP_TS
+CHARACTER(4), INTENT (IN) :: CCSNOWRIMING
+REAL, INTENT (IN) :: PMRSTEP
+INTEGER, INTENT (IN) :: KMAXITER
+LOGICAL, INTENT (IN) :: LDFEEDBACKT
+LOGICAL, INTENT (IN) :: LDEVLIMIT
+LOGICAL, INTENT (IN) :: LDNULLWETG
+LOGICAL, INTENT (IN) :: LDWETGPOST
+LOGICAL, INTENT (IN) :: LDNULLWETH
+LOGICAL, INTENT (IN) :: LDWETHPOST
+REAL, INTENT (IN) :: PFRACM90
+LOGICAL, INTENT (IN) :: LDCONVHG
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_RC_RR_ACCR
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_RR_EVAP
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_PR_PDF
+LOGICAL, INTENT (IN) :: LDCRFLIMIT
+CHARACTER(LEN=1), INTENT(IN) :: CCFRAC_ICE_ADJUST
+REAL, INTENT (IN) :: PSPLIT_MAXCFL
+CHARACTER(LEN=1), INTENT(IN) :: CCFRAC_ICE_SHALLOW_MF
+LOGICAL, INTENT (IN) :: LDSEDIM_AFTER
+LOGICAL, INTENT (IN) :: LDDEPOSC
+REAL, INTENT(IN):: PVDEPOSC
+
+!-----------------------------------------------------------------------
+!    LOCAL VARIABLES
+REAL :: ZCRI0, ZTCRI0
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+! -----------------------------------------------------------------------
+!        1. Set implicit default values for MODD_PARAM_ICE
+
+IF (LHOOK) CALL DR_HOOK('AROINI_MICRO',0,ZHOOK_HANDLE)
+CALL PARAM_ICE_ASSOCIATE()
+!
+LWARM=LDWARM
+CPRISTINE_ICE='PLAT'
+CPRISTINE_ICE_C1R3='PLAT'
+CHEVRIMED_ICE_C1R3='GRAU'
+CSEDIM=CCSEDIM
+CSUBG_RC_RR_ACCR=CCSUBG_RC_RR_ACCR
+CSUBG_RR_EVAP=CCSUBG_RR_EVAP
+CSUBG_PR_PDF=CCSUBG_PR_PDF
+LFEEDBACKT=LDFEEDBACKT ! When .TRUE. feed back on temperature is taken into account
+LEVLIMIT=LDEVLIMIT   ! When .TRUE. water vapour pressure is limited by saturation
+LNULLWETG=LDNULLWETG  ! When .TRUE. graupel wet growth is activated with null rate (to allow water shedding)
+LWETGPOST=LDWETGPOST  ! When .TRUE. graupel wet growth is activated with positive temperature (to allow water shedding)
+LNULLWETH=LDNULLWETH  ! Same as LNULLWETG but for hail
+LWETHPOST=LDWETHPOST  ! Same as LWETGPOST but for hail
+CSNOWRIMING=CCSNOWRIMING ! OLD or M90 for Murakami 1990 formulation
+XFRACM90=PFRACM90 ! Fraction used for the Murakami 1990 formulation
+NMAXITER=KMAXITER ! Maximum number of iterations for mixing ratio  or time splitting
+XMRSTEP=PMRSTEP ! maximum mixing ratio step for mixing ratio splitting
+LCONVHG=LDCONVHG ! TRUE to allow the conversion from hail to graupel
+LCRFLIMIT=LDCRFLIMIT !True to limit rain contact freezing to possible heat exchange
+CFRAC_ICE_ADJUST=CCFRAC_ICE_ADJUST !Choice of solid/liquid partition in adjustements
+CFRAC_ICE_SHALLOW_MF=CCFRAC_ICE_SHALLOW_MF !Choice of solid/liquid partition in shallow_mf
+XSPLIT_MAXCFL=PSPLIT_MAXCFL
+LSEDIM_AFTER=LDSEDIM_AFTER ! sedimentation done before or after microphysics
+!
+XTSTEP_TS=PTSTEP_TS ! Approximative time step for time-splitting (0 for no time-splitting)
+!
+!        2. Set implicit default values for MODD_RAIN_ICE_DESCR 
+!                     et MODD_RAIN_ICE_PARAM
+
+CALL INI_RAIN_ICE (KULOUT, PTSTEP, 20.,KSPLITR,CMICRO)
+!update values from namparar
+LDEPOSC=LDDEPOSC
+XVDEPOSC=PVDEPOSC
+IF (LDCRIAUTI) THEN
+
+  XCRIAUTI=PCRIAUTI
+  XCRIAUTC=PCRIAUTC
+  XT0CRIAUTI=PT0CRIAUTI
+  !second point to determine 10**(aT+b) law
+  ZTCRI0=-40.0
+  ZCRI0=1.25E-6
+  
+  XBCRIAUTI=-( LOG10(XCRIAUTI) - LOG10(ZCRI0)*PT0CRIAUTI/ZTCRI0 )&
+                   *ZTCRI0/(XT0CRIAUTI-ZTCRI0)
+  XACRIAUTI=(LOG10(ZCRI0)-XBCRIAUTI)/ZTCRI0
+  
+  !        3. Write NSPLITR,updated CRIAUTI  
+      
+  WRITE(UNIT=KULOUT,FMT='('' NSPLITR = '',I8.4)')KSPLITR
+  WRITE(UNIT=KULOUT,FMT='('' UPDATED VALUES FROM NAMPARAR :'')')
+  WRITE(UNIT=KULOUT,FMT='('' LCRIAUTI = '',L5)')LDCRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XCRIAUTI = '',E13.6)')XCRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XACRIAUTI = '',E13.6)')XACRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XBCRIAUTI = '',E13.6)')XBCRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XT0CRIAUTI = '',E13.6)')XT0CRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XCRIAUTC = '',E13.6)')XCRIAUTC
+  WRITE(UNIT=KULOUT,FMT='('' XVDEPOSC = '',E13.6)')XVDEPOSC
+  WRITE(UNIT=KULOUT,FMT='('' LDEPOSC = '',L5)')LDEPOSC
+ENDIF
+! -----------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('AROINI_MICRO',1,ZHOOK_HANDLE)
+RETURN
+END SUBROUTINE AROINI_MICRO
diff --git a/src/arome/micro/ini_rain_ice.F90 b/src/arome/micro/ini_rain_ice.F90
index 406588a4a2733cf129f060c9cf8f4f3deb2397ad..8be837892a224c87c437878a0f0a42207113580a 100644
--- a/src/arome/micro/ini_rain_ice.F90
+++ b/src/arome/micro/ini_rain_ice.F90
@@ -170,6 +170,9 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('INI_RAIN_ICE',0,ZHOOK_HANDLE)
 !
+IF(.NOT.ASSOCIATED(XCEXVT)) CALL RAIN_ICE_DESCR_ASSOCIATE()
+IF(.NOT.ASSOCIATED(XFSEDC)) CALL RAIN_ICE_PARAM_ASSOCIATE()
+!
 !
 !*       0.     FUNCTION STATEMENTS
 !               -------------------
@@ -432,7 +435,6 @@ ZRHO00 = 101325.*(1.+ZRV)/(XRD+ZRV*XRV)/293.15
 !
 !*       4.2    Constants for sedimentation
 !
-IF(.NOT.ASSOCIATED(XFSEDC)) CALL RAIN_ICE_PARAM_INIT()
 XFSEDC(1)  = GAMMA(XNUC+(XDC+3.)/XALPHAC)/GAMMA(XNUC+3./XALPHAC)*     &
             (ZRHO00)**XCEXVT
 XFSEDC(2)  = GAMMA(XNUC2+(XDC+3.)/XALPHAC2)/GAMMA(XNUC2+3./XALPHAC2)*     &
diff --git a/src/arome/micro/modd_param_ice.F90 b/src/arome/micro/modd_param_ice.F90
index e07a2001e2a2f4da573a12a80c8ede09baa9bc53..f35cb367d83d9111f84944b5d3e2bce93c747928 100644
--- a/src/arome/micro/modd_param_ice.F90
+++ b/src/arome/micro/modd_param_ice.F90
@@ -81,38 +81,73 @@ END TYPE PARAM_ICE_t
 !
 TYPE(PARAM_ICE_t), SAVE, TARGET :: PARAM_ICE
 !
-LOGICAL, POINTER :: LWARM => PARAM_ICE%LWARM, &
-                    LSEDIC => PARAM_ICE%LSEDIC, &
-                    LDEPOSC => PARAM_ICE%LDEPOSC, &
-                    LFEEDBACKT => PARAM_ICE%LFEEDBACKT, &
-                    LEVLIMIT => PARAM_ICE%LEVLIMIT, &
-                    LNULLWETG => PARAM_ICE%LNULLWETG, &
-                    LWETGPOST => PARAM_ICE%LWETGPOST, &
-                    LNULLWETH => PARAM_ICE%LNULLWETH, &
-                    LWETHPOST => PARAM_ICE%LWETHPOST, &
-                    LCONVHG => PARAM_ICE%LCONVHG, &
-                    LCRFLIMIT => PARAM_ICE%LCRFLIMIT, &
-                    LADJ_BEFORE => PARAM_ICE%LADJ_BEFORE, &
-                    LADJ_AFTER => PARAM_ICE%LADJ_AFTER, &
-                    LSEDIM_AFTER => PARAM_ICE%LSEDIM_AFTER
+LOGICAL, POINTER :: LWARM => NULL(), &
+                    LSEDIC => NULL(), &
+                    LDEPOSC => NULL(), &
+                    LFEEDBACKT => NULL(), &
+                    LEVLIMIT => NULL(), &
+                    LNULLWETG => NULL(), &
+                    LWETGPOST => NULL(), &
+                    LNULLWETH => NULL(), &
+                    LWETHPOST => NULL(), &
+                    LCONVHG => NULL(), &
+                    LCRFLIMIT => NULL(), &
+                    LADJ_BEFORE => NULL(), &
+                    LADJ_AFTER => NULL(), &
+                    LSEDIM_AFTER => NULL()
 
-REAL, POINTER :: XVDEPOSC => PARAM_ICE%XVDEPOSC, &
-                 XFRACM90 => PARAM_ICE%XFRACM90, &
-                 XMRSTEP => PARAM_ICE%XMRSTEP, &
-                 XTSTEP_TS => PARAM_ICE%XTSTEP_TS, &
-                 XSPLIT_MAXCFL => PARAM_ICE%XSPLIT_MAXCFL
+REAL, POINTER :: XVDEPOSC => NULL(), &
+                 XFRACM90 => NULL(), &
+                 XMRSTEP => NULL(), &
+                 XTSTEP_TS => NULL(), &
+                 XSPLIT_MAXCFL => NULL()
 
-INTEGER, POINTER :: NMAXITER => PARAM_ICE%NMAXITER
+INTEGER, POINTER :: NMAXITER => NULL()
 
-CHARACTER(LEN=1), POINTER :: CFRAC_ICE_ADJUST => PARAM_ICE%CFRAC_ICE_ADJUST
-CHARACTER(LEN=1), POINTER :: CFRAC_ICE_SHALLOW_MF => PARAM_ICE%CFRAC_ICE_SHALLOW_MF
-CHARACTER(LEN=4), POINTER :: CPRISTINE_ICE => PARAM_ICE%CPRISTINE_ICE
-CHARACTER(LEN=4), POINTER :: CSEDIM => PARAM_ICE%CSEDIM
-CHARACTER(LEN=4), POINTER :: CSNOWRIMING => PARAM_ICE%CSNOWRIMING
-CHARACTER(LEN=80),POINTER :: CSUBG_RC_RR_ACCR => PARAM_ICE%CSUBG_RC_RR_ACCR
-CHARACTER(LEN=80),POINTER :: CSUBG_RR_EVAP => PARAM_ICE%CSUBG_RR_EVAP
-CHARACTER(LEN=80),POINTER :: CSUBG_PR_PDF => PARAM_ICE%CSUBG_PR_PDF
+CHARACTER(LEN=1), POINTER :: CFRAC_ICE_ADJUST => NULL()
+CHARACTER(LEN=1), POINTER :: CFRAC_ICE_SHALLOW_MF => NULL()
+CHARACTER(LEN=4), POINTER :: CPRISTINE_ICE => NULL()
+CHARACTER(LEN=4), POINTER :: CSEDIM => NULL()
+CHARACTER(LEN=4), POINTER :: CSNOWRIMING => NULL()
+CHARACTER(LEN=80),POINTER :: CSUBG_RC_RR_ACCR => NULL()
+CHARACTER(LEN=80),POINTER :: CSUBG_RR_EVAP => NULL()
+CHARACTER(LEN=80),POINTER :: CSUBG_PR_PDF => NULL()
 !
 !-------------------------------------------------------------------------------
 !
+CONTAINS
+SUBROUTINE PARAM_ICE_ASSOCIATE()
+  IMPLICIT NONE
+  LWARM => PARAM_ICE%LWARM
+  LSEDIC => PARAM_ICE%LSEDIC
+  LDEPOSC => PARAM_ICE%LDEPOSC
+  LFEEDBACKT => PARAM_ICE%LFEEDBACKT
+  LEVLIMIT => PARAM_ICE%LEVLIMIT
+  LNULLWETG => PARAM_ICE%LNULLWETG
+  LWETGPOST => PARAM_ICE%LWETGPOST
+  LNULLWETH => PARAM_ICE%LNULLWETH
+  LWETHPOST => PARAM_ICE%LWETHPOST
+  LCONVHG => PARAM_ICE%LCONVHG
+  LCRFLIMIT => PARAM_ICE%LCRFLIMIT
+  LADJ_BEFORE => PARAM_ICE%LADJ_BEFORE
+  LADJ_AFTER => PARAM_ICE%LADJ_AFTER
+  LSEDIM_AFTER => PARAM_ICE%LSEDIM_AFTER
+  !
+  XVDEPOSC => PARAM_ICE%XVDEPOSC
+  XFRACM90 => PARAM_ICE%XFRACM90
+  XMRSTEP => PARAM_ICE%XMRSTEP
+  XTSTEP_TS => PARAM_ICE%XTSTEP_TS
+  XSPLIT_MAXCFL => PARAM_ICE%XSPLIT_MAXCFL
+  !
+  NMAXITER => PARAM_ICE%NMAXITER
+  !
+  CFRAC_ICE_ADJUST => PARAM_ICE%CFRAC_ICE_ADJUST
+  CFRAC_ICE_SHALLOW_MF => PARAM_ICE%CFRAC_ICE_SHALLOW_MF
+  CPRISTINE_ICE => PARAM_ICE%CPRISTINE_ICE
+  CSEDIM => PARAM_ICE%CSEDIM
+  CSNOWRIMING => PARAM_ICE%CSNOWRIMING
+  CSUBG_RC_RR_ACCR => PARAM_ICE%CSUBG_RC_RR_ACCR
+  CSUBG_RR_EVAP => PARAM_ICE%CSUBG_RR_EVAP
+  CSUBG_PR_PDF => PARAM_ICE%CSUBG_PR_PDF
+END SUBROUTINE PARAM_ICE_ASSOCIATE
 END MODULE MODD_PARAM_ICE
diff --git a/src/common/aux/ini_cst.F90 b/src/common/aux/ini_cst.F90
index 69b4c998b2605848b8f631a3209fe07b321fdb9c..c51e7149fe22b573f6e8ee1e3d048c155d86c059 100644
--- a/src/common/aux/ini_cst.F90
+++ b/src/common/aux/ini_cst.F90
@@ -64,13 +64,14 @@ USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
 IMPLICIT NONE
 !  
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('INI_CST',0,ZHOOK_HANDLE)
+CALL CST_ASSOCIATE()
 !
 !*	 1.     FUNDAMENTAL CONSTANTS
 !	        ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-IF (LHOOK) CALL DR_HOOK('INI_CST',0,ZHOOK_HANDLE)
 XPI         = 2.*ASIN(1.)
 XKARMAN     = 0.4
 XLIGHTSPEED = 299792458.
diff --git a/src/common/aux/modd_cst.F90 b/src/common/aux/modd_cst.F90
index 2c09737ee088de855eb929f8bace2fca6f8acb52..7e647e4e64c6f958991a5e49f1800fab3ade77f2 100644
--- a/src/common/aux/modd_cst.F90
+++ b/src/common/aux/modd_cst.F90
@@ -121,55 +121,121 @@ END TYPE CST_t
 
 TYPE(CST_t), TARGET, SAVE :: CST
 
-REAL, POINTER :: XPI=>CST%XPI
-REAL, POINTER :: XDAY=>CST%XDAY, XSIYEA=>CST%XSIYEA, XSIDAY=>CST%XSIDAY
-REAL, POINTER :: XKARMAN=>CST%XKARMAN
-REAL, POINTER :: XLIGHTSPEED=>CST%XLIGHTSPEED
-REAL, POINTER :: XPLANCK=>CST%XPLANCK
-REAL, POINTER :: XBOLTZ=>CST%XBOLTZ
-REAL, POINTER :: XAVOGADRO=>CST%XAVOGADRO
-REAL, POINTER :: XRADIUS=>CST%XRADIUS, XOMEGA=>CST%XOMEGA
-REAL, POINTER :: XG=>CST%XG
-REAL, POINTER :: XP00=>CST%XP00
-REAL, POINTER :: XP00OCEAN=>CST%XP00OCEAN
-REAL, POINTER :: XRH00OCEAN=>CST%XRH00OCEAN
-REAL, POINTER :: XSTEFAN=>CST%XSTEFAN, XI0=>CST%XI0
-REAL, POINTER :: XMD=>CST%XMD, XMV=>CST%XMV
-REAL, POINTER :: XRD=>CST%XRD, XRV=>CST%XRV
-REAL, POINTER :: XEPSILO=>CST%XEPSILO
-REAL, POINTER :: XCPD=>CST%XCPD, XCPV=>CST%XCPV
-REAL, POINTER :: XRHOLW=>CST%XRHOLW
-REAL, POINTER :: XCL=>CST%XCL, XCI=>CST%XCI
-REAL, POINTER :: XTT=>CST%XTT
-REAL, POINTER :: XLVTT=>CST%XLVTT
-REAL, POINTER :: XLSTT=>CST%XLSTT
-REAL, POINTER :: XLMTT=>CST%XLMTT
-REAL, POINTER :: XESTT=>CST%XESTT
-REAL, POINTER :: XALPW=>CST%XALPW, XBETAW=>CST%XBETAW, XGAMW=>CST%XGAMW
-REAL, POINTER :: XALPI=>CST%XALPI, XBETAI=>CST%XBETAI, XGAMI=>CST%XGAMI
-REAL, POINTER :: XCONDI=>CST%XCONDI
-REAL, POINTER :: XALPHAOC=>CST%XALPHAOC
-REAL, POINTER :: XBETAOC=>CST%XBETAOC
-REAL, POINTER :: XTH00=>CST%XTH00
-REAL, POINTER :: XTH00OCEAN=>CST%XTH00OCEAN
-REAL, POINTER :: XSA00OCEAN=>CST%XSA00OCEAN
-REAL, POINTER :: XROC=>CST%XROC
-REAL, POINTER :: XD1=>CST%XD1
-REAL, POINTER :: XD2=>CST%XD2
-REAL, POINTER :: XRHOLI=>CST%XRHOLI
-INTEGER, POINTER :: NDAYSEC=>CST%NDAYSEC
-REAL, POINTER :: RDSRV=>CST%RDSRV
-REAL, POINTER :: RDSCPD=>CST%RDSCPD
-REAL, POINTER :: RINVXP00=>CST%RINVXP00
-REAL, POINTER :: XMNH_TINY=>CST%XMNH_TINY
-REAL, POINTER :: XMNH_TINY_12=>CST%XMNH_TINY_12
-REAL, POINTER :: XMNH_EPSILON=>CST%XMNH_EPSILON
-REAL, POINTER :: XMNH_HUGE=>CST%XMNH_HUGE
-REAL, POINTER :: XMNH_HUGE_12_LOG=>CST%XMNH_HUGE_12_LOG
-REAL, POINTER :: XEPS_DT=>CST%XEPS_DT
-REAL, POINTER :: XRES_FLAT_CART=>CST%XRES_FLAT_CART
-REAL, POINTER :: XRES_OTHER=>CST%XRES_OTHER
-REAL, POINTER :: XRES_PREP=>CST%XRES_PREP
+REAL, POINTER :: XPI=>NULL()
+REAL, POINTER :: XDAY=>NULL(), XSIYEA=>NULL(), XSIDAY=>NULL()
+REAL, POINTER :: XKARMAN=>NULL()
+REAL, POINTER :: XLIGHTSPEED=>NULL()
+REAL, POINTER :: XPLANCK=>NULL()
+REAL, POINTER :: XBOLTZ=>NULL()
+REAL, POINTER :: XAVOGADRO=>NULL()
+REAL, POINTER :: XRADIUS=>NULL(), XOMEGA=>NULL()
+REAL, POINTER :: XG=>NULL()
+REAL, POINTER :: XP00=>NULL()
+REAL, POINTER :: XP00OCEAN=>NULL()
+REAL, POINTER :: XRH00OCEAN=>NULL()
+REAL, POINTER :: XSTEFAN=>NULL(), XI0=>NULL()
+REAL, POINTER :: XMD=>NULL(), XMV=>NULL()
+REAL, POINTER :: XRD=>NULL(), XRV=>NULL()
+REAL, POINTER :: XEPSILO=>NULL()
+REAL, POINTER :: XCPD=>NULL(), XCPV=>NULL()
+REAL, POINTER :: XRHOLW=>NULL()
+REAL, POINTER :: XCL=>NULL(), XCI=>NULL()
+REAL, POINTER :: XTT=>NULL()
+REAL, POINTER :: XLVTT=>NULL()
+REAL, POINTER :: XLSTT=>NULL()
+REAL, POINTER :: XLMTT=>NULL()
+REAL, POINTER :: XESTT=>NULL()
+REAL, POINTER :: XALPW=>NULL(), XBETAW=>NULL(), XGAMW=>NULL()
+REAL, POINTER :: XALPI=>NULL(), XBETAI=>NULL(), XGAMI=>NULL()
+REAL, POINTER :: XCONDI=>NULL()
+REAL, POINTER :: XALPHAOC=>NULL()
+REAL, POINTER :: XBETAOC=>NULL()
+REAL, POINTER :: XTH00=>NULL()
+REAL, POINTER :: XTH00OCEAN=>NULL()
+REAL, POINTER :: XSA00OCEAN=>NULL()
+REAL, POINTER :: XROC=>NULL()
+REAL, POINTER :: XD1=>NULL()
+REAL, POINTER :: XD2=>NULL()
+REAL, POINTER :: XRHOLI=>NULL()
+INTEGER, POINTER :: NDAYSEC=>NULL()
+REAL, POINTER :: RDSRV=>NULL()
+REAL, POINTER :: RDSCPD=>NULL()
+REAL, POINTER :: RINVXP00=>NULL()
+REAL, POINTER :: XMNH_TINY=>NULL()
+REAL, POINTER :: XMNH_TINY_12=>NULL()
+REAL, POINTER :: XMNH_EPSILON=>NULL()
+REAL, POINTER :: XMNH_HUGE=>NULL()
+REAL, POINTER :: XMNH_HUGE_12_LOG=>NULL()
+REAL, POINTER :: XEPS_DT=>NULL()
+REAL, POINTER :: XRES_FLAT_CART=>NULL()
+REAL, POINTER :: XRES_OTHER=>NULL()
+REAL, POINTER :: XRES_PREP=>NULL()
+!
+CONTAINS
+SUBROUTINE CST_ASSOCIATE()
+  IMPLICIT NONE
+  XPI=>CST%XPI
+  XDAY=>CST%XDAY
+  XSIYEA=>CST%XSIYEA
+  XSIDAY=>CST%XSIDAY
+  XKARMAN=>CST%XKARMAN
+  XLIGHTSPEED=>CST%XLIGHTSPEED
+  XPLANCK=>CST%XPLANCK
+  XBOLTZ=>CST%XBOLTZ
+  XAVOGADRO=>CST%XAVOGADRO
+  XRADIUS=>CST%XRADIUS
+  XOMEGA=>CST%XOMEGA
+  XG=>CST%XG
+  XP00=>CST%XP00
+  XP00OCEAN=>CST%XP00OCEAN
+  XRH00OCEAN=>CST%XRH00OCEAN
+  XSTEFAN=>CST%XSTEFAN
+  XI0=>CST%XI0
+  XMD=>CST%XMD
+  XMV=>CST%XMV
+  XRD=>CST%XRD
+  XRV=>CST%XRV
+  XEPSILO=>CST%XEPSILO
+  XCPD=>CST%XCPD
+  XCPV=>CST%XCPV
+  XRHOLW=>CST%XRHOLW
+  XCL=>CST%XCL
+  XCI=>CST%XCI
+  XTT=>CST%XTT
+  XLVTT=>CST%XLVTT
+  XLSTT=>CST%XLSTT
+  XLMTT=>CST%XLMTT
+  XESTT=>CST%XESTT
+  XALPW=>CST%XALPW
+  XBETAW=>CST%XBETAW
+  XGAMW=>CST%XGAMW
+  XALPI=>CST%XALPI
+  XBETAI=>CST%XBETAI
+  XGAMI=>CST%XGAMI
+  XCONDI=>CST%XCONDI
+  XALPHAOC=>CST%XALPHAOC
+  XBETAOC=>CST%XBETAOC
+  XTH00=>CST%XTH00
+  XTH00OCEAN=>CST%XTH00OCEAN
+  XSA00OCEAN=>CST%XSA00OCEAN
+  XROC=>CST%XROC
+  XD1=>CST%XD1
+  XD2=>CST%XD2
+  XRHOLI=>CST%XRHOLI
+  NDAYSEC=>CST%NDAYSEC
+  RDSRV=>CST%RDSRV
+  RDSCPD=>CST%RDSCPD
+  RINVXP00=>CST%RINVXP00
+  XMNH_TINY=>CST%XMNH_TINY
+  XMNH_TINY_12=>CST%XMNH_TINY_12
+  XMNH_EPSILON=>CST%XMNH_EPSILON
+  XMNH_HUGE=>CST%XMNH_HUGE
+  XMNH_HUGE_12_LOG=>CST%XMNH_HUGE_12_LOG
+  XEPS_DT=>CST%XEPS_DT
+  XRES_FLAT_CART=>CST%XRES_FLAT_CART
+  XRES_OTHER=>CST%XRES_OTHER
+  XRES_PREP=>CST%XRES_PREP
+END SUBROUTINE CST_ASSOCIATE
 !
 END MODULE MODD_CST
 
diff --git a/src/common/micro/ini_neb.F90 b/src/common/micro/ini_neb.F90
index ba090da315cdb70773c13331d2428e50e4178dd7..0a36664e96fdd44e8fd287d9bd48bb39af288a15 100644
--- a/src/common/micro/ini_neb.F90
+++ b/src/common/micro/ini_neb.F90
@@ -53,6 +53,9 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !         1. SETTING THE NUMERICAL VALUES
 !
 IF (LHOOK) CALL DR_HOOK('INI_NEB',0,ZHOOK_HANDLE)
+!
+CALL NEB_ASSOCIATE()
+!
 !Freezing between 0 and -20. Other possibilities are 0/-40 or -5/-25
 XTMAXMIX    = 273.16
 XTMINMIX    = 253.16
diff --git a/src/common/micro/modd_neb.F90 b/src/common/micro/modd_neb.F90
index 03fa2ecc04c72fc2572ed7c30a7c5cc7dd06afb5..ebca8d22354bb6009ad39ce5a5ba7abe5440485b 100644
--- a/src/common/micro/modd_neb.F90
+++ b/src/common/micro/modd_neb.F90
@@ -43,7 +43,14 @@ END TYPE NEB_t
 
 TYPE(NEB_t), SAVE, TARGET :: NEB
 
-REAL, POINTER :: XTMINMIX=>NEB%XTMINMIX, XTMAXMIX=>NEB%XTMAXMIX
+REAL, POINTER :: XTMINMIX=>NULL(), &
+                 XTMAXMIX=>NULL()
 !
+CONTAINS
+SUBROUTINE NEB_ASSOCIATE()
+  IMPLICIT NONE
+  XTMINMIX => NEB%XTMINMIX
+  XTMAXMIX => NEB%XTMAXMIX
+END SUBROUTINE NEB_ASSOCIATE
 !
 END MODULE MODD_NEB
diff --git a/src/common/micro/modd_rain_ice_descr.F90 b/src/common/micro/modd_rain_ice_descr.F90
index 2d73bbdb51e893f3f05393f1772a377b723c482a..d46a9c1b8779e2f6a7c24499b5d758d4e088cc33 100644
--- a/src/common/micro/modd_rain_ice_descr.F90
+++ b/src/common/micro/modd_rain_ice_descr.F90
@@ -83,86 +83,168 @@ END TYPE RAIN_ICE_DESCR_t
 TYPE(RAIN_ICE_DESCR_t), SAVE, TARGET :: RAIN_ICE_DESCR
 !
 REAL,DIMENSION(:),POINTER :: XLBC=>NULL(), XRTMIN=>NULL()
-REAL, POINTER :: XCEXVT => RAIN_ICE_DESCR%XCEXVT ,&
-                 XAC => RAIN_ICE_DESCR%XAC ,&
-                 XBC => RAIN_ICE_DESCR%XBC ,&
-                 XCC => RAIN_ICE_DESCR%XCC ,&
-                 XDC => RAIN_ICE_DESCR%XDC ,&
-                 XAR => RAIN_ICE_DESCR%XAR ,&
-                 XBR => RAIN_ICE_DESCR%XBR ,&
-                 XCR => RAIN_ICE_DESCR%XCR ,&
-                 XDR => RAIN_ICE_DESCR%XDR ,&
-                 XCCR => RAIN_ICE_DESCR%XCCR ,&
-                 XF0R => RAIN_ICE_DESCR%XF0R ,&
-                 XF1R => RAIN_ICE_DESCR%XF1R ,&
-                 XC1R => RAIN_ICE_DESCR%XC1R ,&
-                 XAI => RAIN_ICE_DESCR%XAI ,&
-                 XBI => RAIN_ICE_DESCR%XBI ,&
-                 XC_I => RAIN_ICE_DESCR%XC_I ,&
-                 XDI => RAIN_ICE_DESCR%XDI ,&
-                 XF0I => RAIN_ICE_DESCR%XF0I ,&
-                 XF2I => RAIN_ICE_DESCR%XF2I ,&
-                 XC1I => RAIN_ICE_DESCR%XC1I ,&
-                 XAS => RAIN_ICE_DESCR%XAS ,&
-                 XBS => RAIN_ICE_DESCR%XBS ,&
-                 XCS => RAIN_ICE_DESCR%XCS ,&
-                 XDS => RAIN_ICE_DESCR%XDS ,&
-                 XCCS => RAIN_ICE_DESCR%XCCS ,&
-                 XCXS => RAIN_ICE_DESCR%XCXS ,&
-                 XF0S => RAIN_ICE_DESCR%XF0S ,&
-                 XF1S => RAIN_ICE_DESCR%XF1S ,&
-                 XC1S => RAIN_ICE_DESCR%XC1S ,&
-                 XAG => RAIN_ICE_DESCR%XAG ,&
-                 XBG => RAIN_ICE_DESCR%XBG ,&
-                 XCG => RAIN_ICE_DESCR%XCG ,&
-                 XDG => RAIN_ICE_DESCR%XDG ,&
-                 XCCG => RAIN_ICE_DESCR%XCCG ,&
-                 XCXG => RAIN_ICE_DESCR%XCXG ,&
-                 XF0G => RAIN_ICE_DESCR%XF0G ,&
-                 XF1G => RAIN_ICE_DESCR%XF1G ,&
-                 XC1G => RAIN_ICE_DESCR%XC1G ,&
-                 XAH => RAIN_ICE_DESCR%XAH ,&
-                 XBH => RAIN_ICE_DESCR%XBH ,&
-                 XCH => RAIN_ICE_DESCR%XCH ,&
-                 XDH => RAIN_ICE_DESCR%XDH ,&
-                 XCCH => RAIN_ICE_DESCR%XCCH ,&
-                 XCXH => RAIN_ICE_DESCR%XCXH ,&
-                 XF0H => RAIN_ICE_DESCR%XF0H ,&
-                 XF1H => RAIN_ICE_DESCR%XF1H ,&
-                 XC1H => RAIN_ICE_DESCR%XC1H ,&
-                 XALPHAC => RAIN_ICE_DESCR%XALPHAC ,&
-                 XNUC => RAIN_ICE_DESCR%XNUC ,&
-                 XALPHAC2 => RAIN_ICE_DESCR%XALPHAC2 ,&
-                 XNUC2 => RAIN_ICE_DESCR%XNUC2 ,&
-                 XLBEXC => RAIN_ICE_DESCR%XLBEXC ,&
-                 XALPHAR => RAIN_ICE_DESCR%XALPHAR ,&
-                 XNUR => RAIN_ICE_DESCR%XNUR ,&
-                 XLBEXR => RAIN_ICE_DESCR%XLBEXR ,&
-                 XLBR => RAIN_ICE_DESCR%XLBR ,&
-                 XALPHAI => RAIN_ICE_DESCR%XALPHAI ,&
-                 XNUI => RAIN_ICE_DESCR%XNUI ,&
-                 XLBEXI => RAIN_ICE_DESCR%XLBEXI ,&
-                 XLBI => RAIN_ICE_DESCR%XLBI ,&
-                 XALPHAS => RAIN_ICE_DESCR%XALPHAS ,&
-                 XNUS => RAIN_ICE_DESCR%XNUS ,&
-                 XLBEXS => RAIN_ICE_DESCR%XLBEXS ,&
-                 XLBS => RAIN_ICE_DESCR%XLBS ,&
-                 XALPHAG => RAIN_ICE_DESCR%XALPHAG ,&
-                 XNUG => RAIN_ICE_DESCR%XNUG ,&
-                 XLBEXG => RAIN_ICE_DESCR%XLBEXG ,&
-                 XLBG => RAIN_ICE_DESCR%XLBG ,&
-                 XALPHAH => RAIN_ICE_DESCR%XALPHAH ,&
-                 XNUH => RAIN_ICE_DESCR%XNUH ,&
-                 XLBEXH => RAIN_ICE_DESCR%XLBEXH ,&
-                 XLBH => RAIN_ICE_DESCR%XLBH ,&
-                 XLBDAR_MAX => RAIN_ICE_DESCR%XLBDAR_MAX ,&
-                 XLBDAS_MAX => RAIN_ICE_DESCR%XLBDAS_MAX ,&
-                 XLBDAG_MAX => RAIN_ICE_DESCR%XLBDAG_MAX ,&
-                 XCONC_SEA => RAIN_ICE_DESCR%XCONC_SEA ,&
-                 XCONC_LAND => RAIN_ICE_DESCR%XCONC_LAND ,&
-                 XCONC_URBAN => RAIN_ICE_DESCR%XCONC_URBAN
+REAL, POINTER :: XCEXVT => NULL(), &
+                 XAC => NULL(), &
+                 XBC => NULL(), &
+                 XCC => NULL(), &
+                 XDC => NULL(), &
+                 XAR => NULL(), &
+                 XBR => NULL(), &
+                 XCR => NULL(), &
+                 XDR => NULL(), &
+                 XCCR => NULL(), &
+                 XF0R => NULL(), &
+                 XF1R => NULL(), &
+                 XC1R => NULL(), &
+                 XAI => NULL(), &
+                 XBI => NULL(), &
+                 XC_I => NULL(), &
+                 XDI => NULL(), &
+                 XF0I => NULL(), &
+                 XF2I => NULL(), &
+                 XC1I => NULL(), &
+                 XAS => NULL(), &
+                 XBS => NULL(), &
+                 XCS => NULL(), &
+                 XDS => NULL(), &
+                 XCCS => NULL(), &
+                 XCXS => NULL(), &
+                 XF0S => NULL(), &
+                 XF1S => NULL(), &
+                 XC1S => NULL(), &
+                 XAG => NULL(), &
+                 XBG => NULL(), &
+                 XCG => NULL(), &
+                 XDG => NULL(), &
+                 XCCG => NULL(), &
+                 XCXG => NULL(), &
+                 XF0G => NULL(), &
+                 XF1G => NULL(), &
+                 XC1G => NULL(), &
+                 XAH => NULL(), &
+                 XBH => NULL(), &
+                 XCH => NULL(), &
+                 XDH => NULL(), &
+                 XCCH => NULL(), &
+                 XCXH => NULL(), &
+                 XF0H => NULL(), &
+                 XF1H => NULL(), &
+                 XC1H => NULL(), &
+                 XALPHAC => NULL(), &
+                 XNUC => NULL(), &
+                 XALPHAC2 => NULL(), &
+                 XNUC2 => NULL(), &
+                 XLBEXC => NULL(), &
+                 XALPHAR => NULL(), &
+                 XNUR => NULL(), &
+                 XLBEXR => NULL(), &
+                 XLBR => NULL(), &
+                 XALPHAI => NULL(), &
+                 XNUI => NULL(), &
+                 XLBEXI => NULL(), &
+                 XLBI => NULL(), &
+                 XALPHAS => NULL(), &
+                 XNUS => NULL(), &
+                 XLBEXS => NULL(), &
+                 XLBS => NULL(), &
+                 XALPHAG => NULL(), &
+                 XNUG => NULL(), &
+                 XLBEXG => NULL(), &
+                 XLBG => NULL(), &
+                 XALPHAH => NULL(), &
+                 XNUH => NULL(), &
+                 XLBEXH => NULL(), &
+                 XLBH => NULL(), &
+                 XLBDAR_MAX => NULL(), &
+                 XLBDAS_MAX => NULL(), &
+                 XLBDAG_MAX => NULL(), &
+                 XCONC_SEA => NULL(), &
+                 XCONC_LAND => NULL(), &
+                 XCONC_URBAN => NULL()
 !
 CONTAINS
+SUBROUTINE RAIN_ICE_DESCR_ASSOCIATE()
+  IMPLICIT NONE
+  XCEXVT => RAIN_ICE_DESCR%XCEXVT
+  XAC => RAIN_ICE_DESCR%XAC
+  XBC => RAIN_ICE_DESCR%XBC
+  XCC => RAIN_ICE_DESCR%XCC
+  XDC => RAIN_ICE_DESCR%XDC
+  XAR => RAIN_ICE_DESCR%XAR
+  XBR => RAIN_ICE_DESCR%XBR
+  XCR => RAIN_ICE_DESCR%XCR
+  XDR => RAIN_ICE_DESCR%XDR
+  XCCR => RAIN_ICE_DESCR%XCCR
+  XF0R => RAIN_ICE_DESCR%XF0R
+  XF1R => RAIN_ICE_DESCR%XF1R
+  XC1R => RAIN_ICE_DESCR%XC1R
+  XAI => RAIN_ICE_DESCR%XAI
+  XBI => RAIN_ICE_DESCR%XBI
+  XC_I => RAIN_ICE_DESCR%XC_I
+  XDI => RAIN_ICE_DESCR%XDI
+  XF0I => RAIN_ICE_DESCR%XF0I
+  XF2I => RAIN_ICE_DESCR%XF2I
+  XC1I => RAIN_ICE_DESCR%XC1I
+  XAS => RAIN_ICE_DESCR%XAS
+  XBS => RAIN_ICE_DESCR%XBS
+  XCS => RAIN_ICE_DESCR%XCS
+  XDS => RAIN_ICE_DESCR%XDS
+  XCCS => RAIN_ICE_DESCR%XCCS
+  XCXS => RAIN_ICE_DESCR%XCXS
+  XF0S => RAIN_ICE_DESCR%XF0S
+  XF1S => RAIN_ICE_DESCR%XF1S
+  XC1S => RAIN_ICE_DESCR%XC1S
+  XAG => RAIN_ICE_DESCR%XAG
+  XBG => RAIN_ICE_DESCR%XBG
+  XCG => RAIN_ICE_DESCR%XCG
+  XDG => RAIN_ICE_DESCR%XDG
+  XCCG => RAIN_ICE_DESCR%XCCG
+  XCXG => RAIN_ICE_DESCR%XCXG
+  XF0G => RAIN_ICE_DESCR%XF0G
+  XF1G => RAIN_ICE_DESCR%XF1G
+  XC1G => RAIN_ICE_DESCR%XC1G
+  XAH => RAIN_ICE_DESCR%XAH
+  XBH => RAIN_ICE_DESCR%XBH
+  XCH => RAIN_ICE_DESCR%XCH
+  XDH => RAIN_ICE_DESCR%XDH
+  XCCH => RAIN_ICE_DESCR%XCCH
+  XCXH => RAIN_ICE_DESCR%XCXH
+  XF0H => RAIN_ICE_DESCR%XF0H
+  XF1H => RAIN_ICE_DESCR%XF1H
+  XC1H => RAIN_ICE_DESCR%XC1H
+  XALPHAC => RAIN_ICE_DESCR%XALPHAC
+  XNUC => RAIN_ICE_DESCR%XNUC
+  XALPHAC2 => RAIN_ICE_DESCR%XALPHAC2
+  XNUC2 => RAIN_ICE_DESCR%XNUC2
+  XLBEXC => RAIN_ICE_DESCR%XLBEXC
+  XALPHAR => RAIN_ICE_DESCR%XALPHAR
+  XNUR => RAIN_ICE_DESCR%XNUR
+  XLBEXR => RAIN_ICE_DESCR%XLBEXR
+  XLBR => RAIN_ICE_DESCR%XLBR
+  XALPHAI => RAIN_ICE_DESCR%XALPHAI
+  XNUI => RAIN_ICE_DESCR%XNUI
+  XLBEXI => RAIN_ICE_DESCR%XLBEXI
+  XLBI => RAIN_ICE_DESCR%XLBI
+  XALPHAS => RAIN_ICE_DESCR%XALPHAS
+  XNUS => RAIN_ICE_DESCR%XNUS
+  XLBEXS => RAIN_ICE_DESCR%XLBEXS
+  XLBS => RAIN_ICE_DESCR%XLBS
+  XALPHAG => RAIN_ICE_DESCR%XALPHAG
+  XNUG => RAIN_ICE_DESCR%XNUG
+  XLBEXG => RAIN_ICE_DESCR%XLBEXG
+  XLBG => RAIN_ICE_DESCR%XLBG
+  XALPHAH => RAIN_ICE_DESCR%XALPHAH
+  XNUH => RAIN_ICE_DESCR%XNUH
+  XLBEXH => RAIN_ICE_DESCR%XLBEXH
+  XLBH => RAIN_ICE_DESCR%XLBH
+  XLBDAR_MAX => RAIN_ICE_DESCR%XLBDAR_MAX
+  XLBDAS_MAX => RAIN_ICE_DESCR%XLBDAS_MAX
+  XLBDAG_MAX => RAIN_ICE_DESCR%XLBDAG_MAX
+  XCONC_SEA => RAIN_ICE_DESCR%XCONC_SEA
+  XCONC_LAND => RAIN_ICE_DESCR%XCONC_LAND
+  XCONC_URBAN => RAIN_ICE_DESCR%XCONC_URBAN
+END SUBROUTINE
+!
 SUBROUTINE RAIN_ICE_DESCR_ALLOCATE(KRR)
   IMPLICIT NONE
   INTEGER, INTENT(IN) :: KRR
diff --git a/src/common/micro/modd_rain_ice_param.F90 b/src/common/micro/modd_rain_ice_param.F90
index 1705d9bb6a7be29feaa79623deba0c24f7d65100..efb3c5520bc45f614732bb412fdd366933a63d90 100644
--- a/src/common/micro/modd_rain_ice_param.F90
+++ b/src/common/micro/modd_rain_ice_param.F90
@@ -188,171 +188,171 @@ TYPE(RAIN_ICE_PARAM_t), SAVE, TARGET :: RAIN_ICE_PARAM
 !
 REAL,DIMENSION(:),POINTER :: XFSEDC => NULL()
 
-REAL,POINTER :: XFSEDR => RAIN_ICE_PARAM%XFSEDR, &
-                XEXSEDR => RAIN_ICE_PARAM%XEXSEDR, &
-                XFSEDI => RAIN_ICE_PARAM%XFSEDI, &
-                XEXCSEDI => RAIN_ICE_PARAM%XEXCSEDI, &
-                XEXRSEDI => RAIN_ICE_PARAM%XEXRSEDI, &
-                XFSEDS => RAIN_ICE_PARAM%XFSEDS, &
-                XEXSEDS => RAIN_ICE_PARAM%XEXSEDS, &
-                XFSEDG => RAIN_ICE_PARAM%XFSEDG, &
-                XEXSEDG => RAIN_ICE_PARAM%XEXSEDG, &
-                XNU10 => RAIN_ICE_PARAM%XNU10, &
-                XALPHA1 => RAIN_ICE_PARAM%XALPHA1, &
-                XBETA1 => RAIN_ICE_PARAM%XBETA1, &
-                XNU20 => RAIN_ICE_PARAM%XNU20, &
-                XALPHA2 => RAIN_ICE_PARAM%XALPHA2, &
-                XBETA2 => RAIN_ICE_PARAM%XBETA2, &
-                XMNU0 => RAIN_ICE_PARAM%XMNU0, &
-                XALPHA3 => RAIN_ICE_PARAM%XALPHA3, &
-                XBETA3 => RAIN_ICE_PARAM%XBETA3, &
-                XHON => RAIN_ICE_PARAM%XHON, &
-                XSCFAC => RAIN_ICE_PARAM%XSCFAC, &
-                X0EVAR => RAIN_ICE_PARAM%X0EVAR, &
-                X1EVAR => RAIN_ICE_PARAM%X1EVAR, &
-                XEX0EVAR => RAIN_ICE_PARAM%XEX0EVAR, &
-                XEX1EVAR => RAIN_ICE_PARAM%XEX1EVAR, &
-                X0DEPI => RAIN_ICE_PARAM%X0DEPI, &
-                X2DEPI => RAIN_ICE_PARAM%X2DEPI, &
-                X0DEPS => RAIN_ICE_PARAM%X0DEPS, &
-                X1DEPS => RAIN_ICE_PARAM%X1DEPS, &
-                XEX0DEPS => RAIN_ICE_PARAM%XEX0DEPS, &
-                XEX1DEPS => RAIN_ICE_PARAM%XEX1DEPS, &
-                X0DEPG => RAIN_ICE_PARAM%X0DEPG, &
-                X1DEPG => RAIN_ICE_PARAM%X1DEPG, &
-                XEX0DEPG => RAIN_ICE_PARAM%XEX0DEPG, &
-                XEX1DEPG => RAIN_ICE_PARAM%XEX1DEPG, &
-                XTIMAUTI => RAIN_ICE_PARAM%XTIMAUTI, &
-                XTEXAUTI => RAIN_ICE_PARAM%XTEXAUTI, &
-                XCRIAUTI => RAIN_ICE_PARAM%XCRIAUTI, &
-                XT0CRIAUTI => RAIN_ICE_PARAM%XT0CRIAUTI, &
-                XACRIAUTI => RAIN_ICE_PARAM%XACRIAUTI, &
-                XBCRIAUTI => RAIN_ICE_PARAM%XBCRIAUTI, &
-                XCOLIS => RAIN_ICE_PARAM%XCOLIS, &
-                XCOLEXIS => RAIN_ICE_PARAM%XCOLEXIS, &
-                XFIAGGS => RAIN_ICE_PARAM%XFIAGGS, &
-                XEXIAGGS => RAIN_ICE_PARAM%XEXIAGGS, &
-                XTIMAUTC => RAIN_ICE_PARAM%XTIMAUTC, &
-                XCRIAUTC => RAIN_ICE_PARAM%XCRIAUTC, &
-                XFCACCR => RAIN_ICE_PARAM%XFCACCR, &
-                XEXCACCR => RAIN_ICE_PARAM%XEXCACCR, &
-                XDCSLIM => RAIN_ICE_PARAM%XDCSLIM, &
-                XCOLCS => RAIN_ICE_PARAM%XCOLCS, &
-                XEXCRIMSS => RAIN_ICE_PARAM%XEXCRIMSS, &
-                XCRIMSS => RAIN_ICE_PARAM%XCRIMSS, &
-                XEXCRIMSG => RAIN_ICE_PARAM%XEXCRIMSG, &
-                XCRIMSG => RAIN_ICE_PARAM%XCRIMSG, &
-                XEXSRIMCG => RAIN_ICE_PARAM%XEXSRIMCG, &
-                XSRIMCG => RAIN_ICE_PARAM%XSRIMCG, &
-                XEXSRIMCG2 => RAIN_ICE_PARAM%XEXSRIMCG2, &
-                XSRIMCG2 => RAIN_ICE_PARAM%XSRIMCG2, &
-                XSRIMCG3 => RAIN_ICE_PARAM%XSRIMCG3, &
-                XGAMINC_BOUND_MIN => RAIN_ICE_PARAM%XGAMINC_BOUND_MIN, &
-                XGAMINC_BOUND_MAX => RAIN_ICE_PARAM%XGAMINC_BOUND_MAX, &
-                XRIMINTP1 => RAIN_ICE_PARAM%XRIMINTP1, &
-                XRIMINTP2 => RAIN_ICE_PARAM%XRIMINTP2, &
-                XFRACCSS => RAIN_ICE_PARAM%XFRACCSS, &
-                XLBRACCS1 => RAIN_ICE_PARAM%XLBRACCS1, &
-                XLBRACCS2 => RAIN_ICE_PARAM%XLBRACCS2, &
-                XLBRACCS3 => RAIN_ICE_PARAM%XLBRACCS3, &
-                XFSACCRG => RAIN_ICE_PARAM%XFSACCRG, &
-                XLBSACCR1 => RAIN_ICE_PARAM%XLBSACCR1, &
-                XLBSACCR2 => RAIN_ICE_PARAM%XLBSACCR2, &
-                XLBSACCR3 => RAIN_ICE_PARAM%XLBSACCR3, &
-                XACCLBDAS_MIN => RAIN_ICE_PARAM%XACCLBDAS_MIN, &
-                XACCLBDAS_MAX => RAIN_ICE_PARAM%XACCLBDAS_MAX, &
-                XACCLBDAR_MIN => RAIN_ICE_PARAM%XACCLBDAR_MIN, &
-                XACCLBDAR_MAX => RAIN_ICE_PARAM%XACCLBDAR_MAX, &
-                XACCINTP1S => RAIN_ICE_PARAM%XACCINTP1S, &
-                XACCINTP2S => RAIN_ICE_PARAM%XACCINTP2S, &
-                XACCINTP1R => RAIN_ICE_PARAM%XACCINTP1R, &
-                XACCINTP2R => RAIN_ICE_PARAM%XACCINTP2R, &
-                XFSCVMG => RAIN_ICE_PARAM%XFSCVMG, &
-                XCOLIR => RAIN_ICE_PARAM%XCOLIR, &
-                XEXRCFRI => RAIN_ICE_PARAM%XEXRCFRI, &
-                XRCFRI => RAIN_ICE_PARAM%XRCFRI, &
-                XEXICFRR => RAIN_ICE_PARAM%XEXICFRR, &
-                XICFRR => RAIN_ICE_PARAM%XICFRR, &
-                XFCDRYG => RAIN_ICE_PARAM%XFCDRYG, &
-                XCOLIG => RAIN_ICE_PARAM%XCOLIG, &
-                XCOLEXIG => RAIN_ICE_PARAM%XCOLEXIG, &
-                XFIDRYG => RAIN_ICE_PARAM%XFIDRYG, &
-                XFIDRYG2 => RAIN_ICE_PARAM%XFIDRYG2, &
-                XEXFIDRYG => RAIN_ICE_PARAM%XEXFIDRYG, &
-                XCOLSG => RAIN_ICE_PARAM%XCOLSG, &
-                XCOLEXSG => RAIN_ICE_PARAM%XCOLEXSG, &
-                XFSDRYG => RAIN_ICE_PARAM%XFSDRYG, &
-                XLBSDRYG1 => RAIN_ICE_PARAM%XLBSDRYG1, &
-                XLBSDRYG2 => RAIN_ICE_PARAM%XLBSDRYG2, &
-                XLBSDRYG3 => RAIN_ICE_PARAM%XLBSDRYG3, &
-                XFRDRYG => RAIN_ICE_PARAM%XFRDRYG, &
-                XLBRDRYG1 => RAIN_ICE_PARAM%XLBRDRYG1, &
-                XLBRDRYG2 => RAIN_ICE_PARAM%XLBRDRYG2, &
-                XLBRDRYG3 => RAIN_ICE_PARAM%XLBRDRYG3, &
-                XDRYLBDAR_MIN => RAIN_ICE_PARAM%XDRYLBDAR_MIN, &
-                XDRYLBDAR_MAX => RAIN_ICE_PARAM%XDRYLBDAR_MAX, &
-                XDRYLBDAS_MIN => RAIN_ICE_PARAM%XDRYLBDAS_MIN, &
-                XDRYLBDAS_MAX => RAIN_ICE_PARAM%XDRYLBDAS_MAX, &
-                XDRYLBDAG_MIN => RAIN_ICE_PARAM%XDRYLBDAG_MIN, &
-                XDRYLBDAG_MAX => RAIN_ICE_PARAM%XDRYLBDAG_MAX, &
-                XDRYINTP1R => RAIN_ICE_PARAM%XDRYINTP1R, &
-                XDRYINTP2R => RAIN_ICE_PARAM%XDRYINTP2R, &
-                XDRYINTP1S => RAIN_ICE_PARAM%XDRYINTP1S, &
-                XDRYINTP2S => RAIN_ICE_PARAM%XDRYINTP2S, &
-                XDRYINTP1G => RAIN_ICE_PARAM%XDRYINTP1G, &
-                XDRYINTP2G => RAIN_ICE_PARAM%XDRYINTP2G, &
-                XFSEDH => RAIN_ICE_PARAM%XFSEDH, &
-                XEXSEDH => RAIN_ICE_PARAM%XEXSEDH, &
-                X0DEPH => RAIN_ICE_PARAM%X0DEPH, &
-                X1DEPH => RAIN_ICE_PARAM%X1DEPH, &
-                XEX0DEPH => RAIN_ICE_PARAM%XEX0DEPH, &
-                XEX1DEPH => RAIN_ICE_PARAM%XEX1DEPH, &
-                XCOLIH => RAIN_ICE_PARAM%XCOLIH, &
-                XCOLEXIH => RAIN_ICE_PARAM%XCOLEXIH, &
-                XCOLSH => RAIN_ICE_PARAM%XCOLSH, &
-                XCOLEXSH => RAIN_ICE_PARAM%XCOLEXSH, &
-                XCOLGH => RAIN_ICE_PARAM%XCOLGH, &
-                XCOLEXGH => RAIN_ICE_PARAM%XCOLEXGH, &
-                XFWETH => RAIN_ICE_PARAM%XFWETH, &
-                XFSWETH => RAIN_ICE_PARAM%XFSWETH, &
-                XLBSWETH1 => RAIN_ICE_PARAM%XLBSWETH1, &
-                XLBSWETH2 => RAIN_ICE_PARAM%XLBSWETH2, &
-                XLBSWETH3 => RAIN_ICE_PARAM%XLBSWETH3, &
-                XFGWETH => RAIN_ICE_PARAM%XFGWETH, &
-                XLBGWETH1 => RAIN_ICE_PARAM%XLBGWETH1, &
-                XLBGWETH2 => RAIN_ICE_PARAM%XLBGWETH2, &
-                XLBGWETH3 => RAIN_ICE_PARAM%XLBGWETH3, &
-                XFRWETH => RAIN_ICE_PARAM%XFRWETH, &
-                XLBRWETH1 => RAIN_ICE_PARAM%XLBRWETH1, &
-                XLBRWETH2 => RAIN_ICE_PARAM%XLBRWETH2, &
-                XLBRWETH3 => RAIN_ICE_PARAM%XLBRWETH3, &
-                XWETLBDAS_MIN => RAIN_ICE_PARAM%XWETLBDAS_MIN, &
-                XWETLBDAS_MAX => RAIN_ICE_PARAM%XWETLBDAS_MAX, &
-                XWETLBDAG_MIN => RAIN_ICE_PARAM%XWETLBDAG_MIN, &
-                XWETLBDAG_MAX => RAIN_ICE_PARAM%XWETLBDAG_MAX, &
-                XWETLBDAR_MIN => RAIN_ICE_PARAM%XWETLBDAR_MIN, &
-                XWETLBDAR_MAX => RAIN_ICE_PARAM%XWETLBDAR_MAX, &
-                XWETLBDAH_MIN => RAIN_ICE_PARAM%XWETLBDAH_MIN, &
-                XWETLBDAH_MAX => RAIN_ICE_PARAM%XWETLBDAH_MAX, &
-                XWETINTP1S => RAIN_ICE_PARAM%XWETINTP1S, &
-                XWETINTP2S => RAIN_ICE_PARAM%XWETINTP2S, &
-                XWETINTP1G => RAIN_ICE_PARAM%XWETINTP1G, &
-                XWETINTP2G => RAIN_ICE_PARAM%XWETINTP2G, &
-                XWETINTP1R => RAIN_ICE_PARAM%XWETINTP1R, &
-                XWETINTP2R => RAIN_ICE_PARAM%XWETINTP2R, &
-                XWETINTP1H => RAIN_ICE_PARAM%XWETINTP1H, &
-                XWETINTP2H => RAIN_ICE_PARAM%XWETINTP2H
+REAL,POINTER :: XFSEDR => NULL(), &
+                XEXSEDR => NULL(), &
+                XFSEDI => NULL(), &
+                XEXCSEDI => NULL(), &
+                XEXRSEDI => NULL(), &
+                XFSEDS => NULL(), &
+                XEXSEDS => NULL(), &
+                XFSEDG => NULL(), &
+                XEXSEDG => NULL(), &
+                XNU10 => NULL(), &
+                XALPHA1 => NULL(), &
+                XBETA1 => NULL(), &
+                XNU20 => NULL(), &
+                XALPHA2 => NULL(), &
+                XBETA2 => NULL(), &
+                XMNU0 => NULL(), &
+                XALPHA3 => NULL(), &
+                XBETA3 => NULL(), &
+                XHON => NULL(), &
+                XSCFAC => NULL(), &
+                X0EVAR => NULL(), &
+                X1EVAR => NULL(), &
+                XEX0EVAR => NULL(), &
+                XEX1EVAR => NULL(), &
+                X0DEPI => NULL(), &
+                X2DEPI => NULL(), &
+                X0DEPS => NULL(), &
+                X1DEPS => NULL(), &
+                XEX0DEPS => NULL(), &
+                XEX1DEPS => NULL(), &
+                X0DEPG => NULL(), &
+                X1DEPG => NULL(), &
+                XEX0DEPG => NULL(), &
+                XEX1DEPG => NULL(), &
+                XTIMAUTI => NULL(), &
+                XTEXAUTI => NULL(), &
+                XCRIAUTI => NULL(), &
+                XT0CRIAUTI => NULL(), &
+                XACRIAUTI => NULL(), &
+                XBCRIAUTI => NULL(), &
+                XCOLIS => NULL(), &
+                XCOLEXIS => NULL(), &
+                XFIAGGS => NULL(), &
+                XEXIAGGS => NULL(), &
+                XTIMAUTC => NULL(), &
+                XCRIAUTC => NULL(), &
+                XFCACCR => NULL(), &
+                XEXCACCR => NULL(), &
+                XDCSLIM => NULL(), &
+                XCOLCS => NULL(), &
+                XEXCRIMSS => NULL(), &
+                XCRIMSS => NULL(), &
+                XEXCRIMSG => NULL(), &
+                XCRIMSG => NULL(), &
+                XEXSRIMCG => NULL(), &
+                XSRIMCG => NULL(), &
+                XEXSRIMCG2 => NULL(), &
+                XSRIMCG2 => NULL(), &
+                XSRIMCG3 => NULL(), &
+                XGAMINC_BOUND_MIN => NULL(), &
+                XGAMINC_BOUND_MAX => NULL(), &
+                XRIMINTP1 => NULL(), &
+                XRIMINTP2 => NULL(), &
+                XFRACCSS => NULL(), &
+                XLBRACCS1 => NULL(), &
+                XLBRACCS2 => NULL(), &
+                XLBRACCS3 => NULL(), &
+                XFSACCRG => NULL(), &
+                XLBSACCR1 => NULL(), &
+                XLBSACCR2 => NULL(), &
+                XLBSACCR3 => 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(), &
+                XCOLIG => NULL(), &
+                XCOLEXIG => NULL(), &
+                XFIDRYG => NULL(), &
+                XFIDRYG2 => NULL(), &
+                XEXFIDRYG => NULL(), &
+                XCOLSG => NULL(), &
+                XCOLEXSG => NULL(), &
+                XFSDRYG => NULL(), &
+                XLBSDRYG1 => NULL(), &
+                XLBSDRYG2 => NULL(), &
+                XLBSDRYG3 => NULL(), &
+                XFRDRYG => NULL(), &
+                XLBRDRYG1 => NULL(), &
+                XLBRDRYG2 => NULL(), &
+                XLBRDRYG3 => 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(), &
+                X0DEPH => NULL(), &
+                X1DEPH => NULL(), &
+                XEX0DEPH => NULL(), &
+                XEX1DEPH => NULL(), &
+                XCOLIH => NULL(), &
+                XCOLEXIH => NULL(), &
+                XCOLSH => NULL(), &
+                XCOLEXSH => NULL(), &
+                XCOLGH => NULL(), &
+                XCOLEXGH => NULL(), &
+                XFWETH => NULL(), &
+                XFSWETH => NULL(), &
+                XLBSWETH1 => NULL(), &
+                XLBSWETH2 => NULL(), &
+                XLBSWETH3 => NULL(), &
+                XFGWETH => NULL(), &
+                XLBGWETH1 => NULL(), &
+                XLBGWETH2 => NULL(), &
+                XLBGWETH3 => NULL(), &
+                XFRWETH => NULL(), &
+                XLBRWETH1 => NULL(), &
+                XLBRWETH2 => NULL(), &
+                XLBRWETH3 => NULL(), &
+                XWETLBDAS_MIN => NULL(), &
+                XWETLBDAS_MAX => NULL(), &
+                XWETLBDAG_MIN => NULL(), &
+                XWETLBDAG_MAX => NULL(), &
+                XWETLBDAR_MIN => NULL(), &
+                XWETLBDAR_MAX => NULL(), &
+                XWETLBDAH_MIN => NULL(), &
+                XWETLBDAH_MAX => NULL(), &
+                XWETINTP1S => NULL(), &
+                XWETINTP2S => NULL(), &
+                XWETINTP1G => NULL(), &
+                XWETINTP2G => NULL(), &
+                XWETINTP1R => NULL(), &
+                XWETINTP2R => NULL(), &
+                XWETINTP1H => NULL(), &
+                XWETINTP2H => NULL()
 
-INTEGER, POINTER :: NGAMINC => RAIN_ICE_PARAM%NGAMINC, &
-                    NACCLBDAS => RAIN_ICE_PARAM%NACCLBDAS, &
-                    NACCLBDAR => RAIN_ICE_PARAM%NACCLBDAR, &
-                    NDRYLBDAR => RAIN_ICE_PARAM%NDRYLBDAR, &
-                    NDRYLBDAS => RAIN_ICE_PARAM%NDRYLBDAS, &
-                    NDRYLBDAG => RAIN_ICE_PARAM%NDRYLBDAG, &
-                    NWETLBDAS => RAIN_ICE_PARAM%NWETLBDAS, &
-                    NWETLBDAG => RAIN_ICE_PARAM%NWETLBDAG, &
-                    NWETLBDAR => RAIN_ICE_PARAM%NWETLBDAR, &
-                    NWETLBDAH => RAIN_ICE_PARAM%NWETLBDAH
+INTEGER, POINTER :: NGAMINC => NULL(), &
+                    NACCLBDAS => NULL(), &
+                    NACCLBDAR => NULL(), &
+                    NDRYLBDAR => NULL(), &
+                    NDRYLBDAS => NULL(), &
+                    NDRYLBDAG => NULL(), &
+                    NWETLBDAS => NULL(), &
+                    NWETLBDAG => NULL(), &
+                    NWETLBDAR => NULL(), &
+                    NWETLBDAH => NULL()
 
 REAL, DIMENSION(:), POINTER :: XGAMINC_RIM1 => NULL(), &
                                XGAMINC_RIM2 => NULL(), &
@@ -367,10 +367,177 @@ REAL,DIMENSION(:,:), POINTER :: XKER_RACCSS => NULL(), &
                                 XKER_GWETH => NULL(), &
                                 XKER_RWETH => NULL()
 CONTAINS
-SUBROUTINE RAIN_ICE_PARAM_INIT()
+SUBROUTINE RAIN_ICE_PARAM_ASSOCIATE()
   IMPLICIT NONE
   XFSEDC => RAIN_ICE_PARAM%XFSEDC
-END SUBROUTINE RAIN_ICE_PARAM_INIT
+  !
+  XFSEDR => RAIN_ICE_PARAM%XFSEDR
+  XEXSEDR => RAIN_ICE_PARAM%XEXSEDR
+  XFSEDI => RAIN_ICE_PARAM%XFSEDI
+  XEXCSEDI => RAIN_ICE_PARAM%XEXCSEDI
+  XEXRSEDI => RAIN_ICE_PARAM%XEXRSEDI
+  XFSEDS => RAIN_ICE_PARAM%XFSEDS
+  XEXSEDS => RAIN_ICE_PARAM%XEXSEDS
+  XFSEDG => RAIN_ICE_PARAM%XFSEDG
+  XEXSEDG => RAIN_ICE_PARAM%XEXSEDG
+  XNU10 => RAIN_ICE_PARAM%XNU10
+  XALPHA1 => RAIN_ICE_PARAM%XALPHA1
+  XBETA1 => RAIN_ICE_PARAM%XBETA1
+  XNU20 => RAIN_ICE_PARAM%XNU20
+  XALPHA2 => RAIN_ICE_PARAM%XALPHA2
+  XBETA2 => RAIN_ICE_PARAM%XBETA2
+  XMNU0 => RAIN_ICE_PARAM%XMNU0
+  XALPHA3 => RAIN_ICE_PARAM%XALPHA3
+  XBETA3 => RAIN_ICE_PARAM%XBETA3
+  XHON => RAIN_ICE_PARAM%XHON
+  XSCFAC => RAIN_ICE_PARAM%XSCFAC
+  X0EVAR => RAIN_ICE_PARAM%X0EVAR
+  X1EVAR => RAIN_ICE_PARAM%X1EVAR
+  XEX0EVAR => RAIN_ICE_PARAM%XEX0EVAR
+  XEX1EVAR => RAIN_ICE_PARAM%XEX1EVAR
+  X0DEPI => RAIN_ICE_PARAM%X0DEPI
+  X2DEPI => RAIN_ICE_PARAM%X2DEPI
+  X0DEPS => RAIN_ICE_PARAM%X0DEPS
+  X1DEPS => RAIN_ICE_PARAM%X1DEPS
+  XEX0DEPS => RAIN_ICE_PARAM%XEX0DEPS
+  XEX1DEPS => RAIN_ICE_PARAM%XEX1DEPS
+  X0DEPG => RAIN_ICE_PARAM%X0DEPG
+  X1DEPG => RAIN_ICE_PARAM%X1DEPG
+  XEX0DEPG => RAIN_ICE_PARAM%XEX0DEPG
+  XEX1DEPG => RAIN_ICE_PARAM%XEX1DEPG
+  XTIMAUTI => RAIN_ICE_PARAM%XTIMAUTI
+  XTEXAUTI => RAIN_ICE_PARAM%XTEXAUTI
+  XCRIAUTI => RAIN_ICE_PARAM%XCRIAUTI
+  XT0CRIAUTI => RAIN_ICE_PARAM%XT0CRIAUTI
+  XACRIAUTI => RAIN_ICE_PARAM%XACRIAUTI
+  XBCRIAUTI => RAIN_ICE_PARAM%XBCRIAUTI
+  XCOLIS => RAIN_ICE_PARAM%XCOLIS
+  XCOLEXIS => RAIN_ICE_PARAM%XCOLEXIS
+  XFIAGGS => RAIN_ICE_PARAM%XFIAGGS
+  XEXIAGGS => RAIN_ICE_PARAM%XEXIAGGS
+  XTIMAUTC => RAIN_ICE_PARAM%XTIMAUTC
+  XCRIAUTC => RAIN_ICE_PARAM%XCRIAUTC
+  XFCACCR => RAIN_ICE_PARAM%XFCACCR
+  XEXCACCR => RAIN_ICE_PARAM%XEXCACCR
+  XDCSLIM => RAIN_ICE_PARAM%XDCSLIM
+  XCOLCS => RAIN_ICE_PARAM%XCOLCS
+  XEXCRIMSS => RAIN_ICE_PARAM%XEXCRIMSS
+  XCRIMSS => RAIN_ICE_PARAM%XCRIMSS
+  XEXCRIMSG => RAIN_ICE_PARAM%XEXCRIMSG
+  XCRIMSG => RAIN_ICE_PARAM%XCRIMSG
+  XEXSRIMCG => RAIN_ICE_PARAM%XEXSRIMCG
+  XSRIMCG => RAIN_ICE_PARAM%XSRIMCG
+  XEXSRIMCG2 => RAIN_ICE_PARAM%XEXSRIMCG2
+  XSRIMCG2 => RAIN_ICE_PARAM%XSRIMCG2
+  XSRIMCG3 => RAIN_ICE_PARAM%XSRIMCG3
+  XGAMINC_BOUND_MIN => RAIN_ICE_PARAM%XGAMINC_BOUND_MIN
+  XGAMINC_BOUND_MAX => RAIN_ICE_PARAM%XGAMINC_BOUND_MAX
+  XRIMINTP1 => RAIN_ICE_PARAM%XRIMINTP1
+  XRIMINTP2 => RAIN_ICE_PARAM%XRIMINTP2
+  XFRACCSS => RAIN_ICE_PARAM%XFRACCSS
+  XLBRACCS1 => RAIN_ICE_PARAM%XLBRACCS1
+  XLBRACCS2 => RAIN_ICE_PARAM%XLBRACCS2
+  XLBRACCS3 => RAIN_ICE_PARAM%XLBRACCS3
+  XFSACCRG => RAIN_ICE_PARAM%XFSACCRG
+  XLBSACCR1 => RAIN_ICE_PARAM%XLBSACCR1
+  XLBSACCR2 => RAIN_ICE_PARAM%XLBSACCR2
+  XLBSACCR3 => RAIN_ICE_PARAM%XLBSACCR3
+  XACCLBDAS_MIN => RAIN_ICE_PARAM%XACCLBDAS_MIN
+  XACCLBDAS_MAX => RAIN_ICE_PARAM%XACCLBDAS_MAX
+  XACCLBDAR_MIN => RAIN_ICE_PARAM%XACCLBDAR_MIN
+  XACCLBDAR_MAX => RAIN_ICE_PARAM%XACCLBDAR_MAX
+  XACCINTP1S => RAIN_ICE_PARAM%XACCINTP1S
+  XACCINTP2S => RAIN_ICE_PARAM%XACCINTP2S
+  XACCINTP1R => RAIN_ICE_PARAM%XACCINTP1R
+  XACCINTP2R => RAIN_ICE_PARAM%XACCINTP2R
+  XFSCVMG => RAIN_ICE_PARAM%XFSCVMG
+  XCOLIR => RAIN_ICE_PARAM%XCOLIR
+  XEXRCFRI => RAIN_ICE_PARAM%XEXRCFRI
+  XRCFRI => RAIN_ICE_PARAM%XRCFRI
+  XEXICFRR => RAIN_ICE_PARAM%XEXICFRR
+  XICFRR => RAIN_ICE_PARAM%XICFRR
+  XFCDRYG => RAIN_ICE_PARAM%XFCDRYG
+  XCOLIG => RAIN_ICE_PARAM%XCOLIG
+  XCOLEXIG => RAIN_ICE_PARAM%XCOLEXIG
+  XFIDRYG => RAIN_ICE_PARAM%XFIDRYG
+  XFIDRYG2 => RAIN_ICE_PARAM%XFIDRYG2
+  XEXFIDRYG => RAIN_ICE_PARAM%XEXFIDRYG
+  XCOLSG => RAIN_ICE_PARAM%XCOLSG
+  XCOLEXSG => RAIN_ICE_PARAM%XCOLEXSG
+  XFSDRYG => RAIN_ICE_PARAM%XFSDRYG
+  XLBSDRYG1 => RAIN_ICE_PARAM%XLBSDRYG1
+  XLBSDRYG2 => RAIN_ICE_PARAM%XLBSDRYG2
+  XLBSDRYG3 => RAIN_ICE_PARAM%XLBSDRYG3
+  XFRDRYG => RAIN_ICE_PARAM%XFRDRYG
+  XLBRDRYG1 => RAIN_ICE_PARAM%XLBRDRYG1
+  XLBRDRYG2 => RAIN_ICE_PARAM%XLBRDRYG2
+  XLBRDRYG3 => RAIN_ICE_PARAM%XLBRDRYG3
+  XDRYLBDAR_MIN => RAIN_ICE_PARAM%XDRYLBDAR_MIN
+  XDRYLBDAR_MAX => RAIN_ICE_PARAM%XDRYLBDAR_MAX
+  XDRYLBDAS_MIN => RAIN_ICE_PARAM%XDRYLBDAS_MIN
+  XDRYLBDAS_MAX => RAIN_ICE_PARAM%XDRYLBDAS_MAX
+  XDRYLBDAG_MIN => RAIN_ICE_PARAM%XDRYLBDAG_MIN
+  XDRYLBDAG_MAX => RAIN_ICE_PARAM%XDRYLBDAG_MAX
+  XDRYINTP1R => RAIN_ICE_PARAM%XDRYINTP1R
+  XDRYINTP2R => RAIN_ICE_PARAM%XDRYINTP2R
+  XDRYINTP1S => RAIN_ICE_PARAM%XDRYINTP1S
+  XDRYINTP2S => RAIN_ICE_PARAM%XDRYINTP2S
+  XDRYINTP1G => RAIN_ICE_PARAM%XDRYINTP1G
+  XDRYINTP2G => RAIN_ICE_PARAM%XDRYINTP2G
+  XFSEDH => RAIN_ICE_PARAM%XFSEDH
+  XEXSEDH => RAIN_ICE_PARAM%XEXSEDH
+  X0DEPH => RAIN_ICE_PARAM%X0DEPH
+  X1DEPH => RAIN_ICE_PARAM%X1DEPH
+  XEX0DEPH => RAIN_ICE_PARAM%XEX0DEPH
+  XEX1DEPH => RAIN_ICE_PARAM%XEX1DEPH
+  XCOLIH => RAIN_ICE_PARAM%XCOLIH
+  XCOLEXIH => RAIN_ICE_PARAM%XCOLEXIH
+  XCOLSH => RAIN_ICE_PARAM%XCOLSH
+  XCOLEXSH => RAIN_ICE_PARAM%XCOLEXSH
+  XCOLGH => RAIN_ICE_PARAM%XCOLGH
+  XCOLEXGH => RAIN_ICE_PARAM%XCOLEXGH
+  XFWETH => RAIN_ICE_PARAM%XFWETH
+  XFSWETH => RAIN_ICE_PARAM%XFSWETH
+  XLBSWETH1 => RAIN_ICE_PARAM%XLBSWETH1
+  XLBSWETH2 => RAIN_ICE_PARAM%XLBSWETH2
+  XLBSWETH3 => RAIN_ICE_PARAM%XLBSWETH3
+  XFGWETH => RAIN_ICE_PARAM%XFGWETH
+  XLBGWETH1 => RAIN_ICE_PARAM%XLBGWETH1
+  XLBGWETH2 => RAIN_ICE_PARAM%XLBGWETH2
+  XLBGWETH3 => RAIN_ICE_PARAM%XLBGWETH3
+  XFRWETH => RAIN_ICE_PARAM%XFRWETH
+  XLBRWETH1 => RAIN_ICE_PARAM%XLBRWETH1
+  XLBRWETH2 => RAIN_ICE_PARAM%XLBRWETH2
+  XLBRWETH3 => RAIN_ICE_PARAM%XLBRWETH3
+  XWETLBDAS_MIN => RAIN_ICE_PARAM%XWETLBDAS_MIN
+  XWETLBDAS_MAX => RAIN_ICE_PARAM%XWETLBDAS_MAX
+  XWETLBDAG_MIN => RAIN_ICE_PARAM%XWETLBDAG_MIN
+  XWETLBDAG_MAX => RAIN_ICE_PARAM%XWETLBDAG_MAX
+  XWETLBDAR_MIN => RAIN_ICE_PARAM%XWETLBDAR_MIN
+  XWETLBDAR_MAX => RAIN_ICE_PARAM%XWETLBDAR_MAX
+  XWETLBDAH_MIN => RAIN_ICE_PARAM%XWETLBDAH_MIN
+  XWETLBDAH_MAX => RAIN_ICE_PARAM%XWETLBDAH_MAX
+  XWETINTP1S => RAIN_ICE_PARAM%XWETINTP1S
+  XWETINTP2S => RAIN_ICE_PARAM%XWETINTP2S
+  XWETINTP1G => RAIN_ICE_PARAM%XWETINTP1G
+  XWETINTP2G => RAIN_ICE_PARAM%XWETINTP2G
+  XWETINTP1R => RAIN_ICE_PARAM%XWETINTP1R
+  XWETINTP2R => RAIN_ICE_PARAM%XWETINTP2R
+  XWETINTP1H => RAIN_ICE_PARAM%XWETINTP1H
+  XWETINTP2H => RAIN_ICE_PARAM%XWETINTP2H
+  !
+  NGAMINC => RAIN_ICE_PARAM%NGAMINC
+  NACCLBDAS => RAIN_ICE_PARAM%NACCLBDAS
+  NACCLBDAR => RAIN_ICE_PARAM%NACCLBDAR
+  NDRYLBDAR => RAIN_ICE_PARAM%NDRYLBDAR
+  NDRYLBDAS => RAIN_ICE_PARAM%NDRYLBDAS
+  NDRYLBDAG => RAIN_ICE_PARAM%NDRYLBDAG
+  NWETLBDAS => RAIN_ICE_PARAM%NWETLBDAS
+  NWETLBDAG => RAIN_ICE_PARAM%NWETLBDAG
+  NWETLBDAR => RAIN_ICE_PARAM%NWETLBDAR
+  NWETLBDAH => RAIN_ICE_PARAM%NWETLBDAH
+END SUBROUTINE RAIN_ICE_PARAM_ASSOCIATE
+!
 SUBROUTINE RAIN_ICE_PARAM_ALLOCATE(HNAME, KDIM1, KDIM2)
   IMPLICIT NONE
   CHARACTER(LEN=*), INTENT(IN) :: HNAME
diff --git a/src/common/micro/mode_ice4_compute_pdf.F90 b/src/common/micro/mode_ice4_compute_pdf.F90
index cbe4a3e2e65872de922705767ba6b65eb04de449..411cdddad26897dcf9f0fbc50c4a4459fdf946e7 100644
--- a/src/common/micro/mode_ice4_compute_pdf.F90
+++ b/src/common/micro/mode_ice4_compute_pdf.F90
@@ -327,7 +327,11 @@ ELSE
 ENDIF
 !
 !$mnh_expand_where(JI=1:KSIZE)
+#ifdef REPRO48
+  PRF=PHLC_HCF
+#else
   PRF(:)=MAX(PHLC_HCF(:),PHLI_HCF(:))
+#endif
 !$mnh_end_expand_where(JI=1:KSIZE)
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_COMPUTE_PDF', 1, ZHOOK_HANDLE)
diff --git a/src/common/micro/mode_ice4_tendencies.F90 b/src/common/micro/mode_ice4_tendencies.F90
index 065a1a0a2974bdcbd237855c4b16ce16cac478d6..b07aaebebe7564db43f285b570079b085786d7a4 100644
--- a/src/common/micro/mode_ice4_tendencies.F90
+++ b/src/common/micro/mode_ice4_tendencies.F90
@@ -315,15 +315,6 @@ CALL ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_AUCV_RI, HSUBG_PR_PDF,&
                       PHLI_HCF, PHLI_LCF, PHLI_HRI, PHLI_LRI, ZRAINFR)
 LLRFR=HSUBG_RC_RR_ACCR=='PRFR' .OR. HSUBG_RR_EVAP=='PRFR'
 IF (LLRFR) THEN
-  CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'MODE_ICE4_TENDENCIES', 'LLRFR case broken by optimisation, see comments in mode_ice4_tendencies to knwon why (and how to reapir)....')
-  !Microphyscs was optimized by introducing chunks of KPROMA size
-  !Thus, in ice4_tendencies, the 1D array represent only a fraction of the points where microphisical species are present
-  !We cannot rebuild the entire 3D arrays here, so we cannot call ice4_rainfr_vert here
-  !A solution would be to suppress optimisation in this case by setting KPROMA=KSIZE in rain_ice
-  !Another solution would be to compute column by column?
-  !Another one would be to cut tendencies in 3 parts: before rainfr_vert, rainfr_vert, after rainfr_vert
-
-
   !Diagnostic of precipitation fraction
   PRAINFR(:,:,:) = 0.
   ZRRT3D (:,:,:) = 0.
@@ -333,8 +324,10 @@ IF (LLRFR) THEN
   DO JL=1,KSIZE
     PRAINFR(K1(JL), K2(JL), K3(JL)) = ZRAINFR(JL)
     ZRRT3D (K1(JL), K2(JL), K3(JL)) = ZVART(JL,IRR)
+#ifndef REPRO48
     ZRST3D (K1(JL), K2(JL), K3(JL)) = ZVART(JL,IRS)
     ZRGT3D (K1(JL), K2(JL), K3(JL)) = ZVART(JL,IRG)
+#endif
   END DO
   IF (KRR==7) THEN
     DO JL=1,KSIZE    
diff --git a/src/mesonh/micro/ini_rain_ice.f90 b/src/mesonh/micro/ini_rain_ice.f90
index 2ac1d538116f2276fd9b55a3f8b691be631ca7ad..3c131d2986b2a3a1c927e01149922c47f1504188 100644
--- a/src/mesonh/micro/ini_rain_ice.f90
+++ b/src/mesonh/micro/ini_rain_ice.f90
@@ -195,6 +195,10 @@ REAL     :: PWETLBDAR_MAX,PWETLBDAH_MAX,PWETLBDAR_MIN,PWETLBDAH_MIN
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('INI_RAIN_ICE',0,ZHOOK_HANDLE)
+!
+IF(.NOT.ASSOCIATED(XCEXVT)) CALL RAIN_ICE_DESCR_ASSOCIATE()
+IF(.NOT.ASSOCIATED(XFSEDC)) CALL RAIN_ICE_PARAM_ASSOCIATE()
+
 !
 !
 !*       0.     FUNCTION STATEMENTS
@@ -456,7 +460,6 @@ ZRHO00 = 101325.*(1.+ZRV)/(XRD+ZRV*XRV)/293.15
 !
 !*       4.2    Constants for sedimentation
 !
-IF(.NOT.ASSOCIATED(XFSEDC)) CALL RAIN_ICE_PARAM_INIT()
 XFSEDC(1)  = GAMMA(XNUC+(XDC+3.)/XALPHAC)/GAMMA(XNUC+3./XALPHAC)*     &
             (ZRHO00)**XCEXVT
 XFSEDC(2)  = GAMMA(XNUC2+(XDC+3.)/XALPHAC2)/GAMMA(XNUC2+3./XALPHAC2)*     &
diff --git a/src/mesonh/micro/ini_rain_ice_elec.f90 b/src/mesonh/micro/ini_rain_ice_elec.f90
index 85fbe6feaa20817f71223cf7af268cc2cc6a5286..780eb5e88472e96a6d68cac821a9bc09325e79bd 100644
--- a/src/mesonh/micro/ini_rain_ice_elec.f90
+++ b/src/mesonh/micro/ini_rain_ice_elec.f90
@@ -172,6 +172,9 @@ REAL     :: PDRYLBDAR_MAX, PDRYLBDAR_MIN
 REAL     :: PWETLBDAS_MAX, PWETLBDAG_MAX, PWETLBDAS_MIN, PWETLBDAG_MIN
 REAL     :: PWETLBDAH_MAX, PWETLBDAH_MIN
 !
+IF(.NOT.ASSOCIATED(XCEXVT)) CALL RAIN_ICE_DESCR_ASSOCIATE()                                                          |  --------------------------------------------------------------------------------------------------------------------
+IF(.NOT.ASSOCIATED(XFSEDC)) CALL RAIN_ICE_PARAM_ASSOCIATE()
+!
 !-------------------------------------------------------------------------------
 !
 !*       0.     FUNCTION STATEMENTS
@@ -205,13 +208,27 @@ IF (CSEDIM == 'SPLI') THEN
   END DO SPLIT
 END IF
 !
-IF (ALLOCATED(XRTMIN)) THEN       ! In case of nesting microphysics constants of
+IF (ASSOCIATED(XRTMIN)) THEN       ! In case of nesting microphysics constants of
                                   ! MODD_RAIN_ICE_PARAM are computed only once,
                                   ! but if INI_RAIN_ICE has been called already
                                   ! one must change the XRTMIN size.
-  DEALLOCATE(XRTMIN)
+  CALL RAIN_ICE_DESCR_DEALLOCATE()
 END IF
 !
+IF (HCLOUD == 'ICE4') THEN
+  CALL RAIN_ICE_DESCR_ALLOCATE(7)
+ELSE IF (HCLOUD == 'ICE3') THEN
+  CALL RAIN_ICE_DESCR_ALLOCATE(6)
+END IF
+!
+XRTMIN(1) = 1.0E-20
+XRTMIN(2) = 1.0E-20
+XRTMIN(3) = 1.0E-20
+XRTMIN(4) = 1.0E-20
+XRTMIN(5) = 1.0E-15
+XRTMIN(6) = 1.0E-15
+IF (HCLOUD == 'ICE4') XRTMIN(7) = 1.0E-15
+!
 !-------------------------------------------------------------------------------
 !
 !*       2.     CHARACTERISTICS OF THE SPECIES
@@ -383,20 +400,6 @@ XLBDAG_MAX = 100000.0
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
 XLBDAS_MAX = (ZCONC_MAX / XCCS)**(1./XCXS)
 !
-IF (HCLOUD == 'ICE4') THEN
-  ALLOCATE( XRTMIN(7) )
-ELSE IF (HCLOUD == 'ICE3') THEN
-  ALLOCATE( XRTMIN(6) )
-END IF
-!
-XRTMIN(1) = 1.0E-20
-XRTMIN(2) = 1.0E-20
-XRTMIN(3) = 1.0E-20
-XRTMIN(4) = 1.0E-20
-XRTMIN(5) = 1.0E-15
-XRTMIN(6) = 1.0E-15
-IF (HCLOUD == 'ICE4') XRTMIN(7) = 1.0E-15
-!
 XCONC_SEA = 1.E8 ! 100/cm3
 XCONC_LAND = 3.E8 ! 300/cm3
 XCONC_URBAN = 5.E8 ! 500/cm3
diff --git a/src/mesonh/micro/modd_param_ice.f90 b/src/mesonh/micro/modd_param_ice.f90
index 74d01e0f6ac90b7b90f106dbfccbe88e004a46e3..0d5c42bd07374ecce527fc41af314127a5f24e0b 100644
--- a/src/mesonh/micro/modd_param_ice.f90
+++ b/src/mesonh/micro/modd_param_ice.f90
@@ -82,39 +82,75 @@ END TYPE PARAM_ICE_t
 !
 TYPE(PARAM_ICE_t), SAVE, TARGET :: PARAM_ICE
 !
-LOGICAL, POINTER :: LWARM => PARAM_ICE%LWARM, &
-                    LSEDIC => PARAM_ICE%LSEDIC, &
-                    LDEPOSC => PARAM_ICE%LDEPOSC, &
-                    LRED => PARAM_ICE%LRED, &
-                    LFEEDBACKT => PARAM_ICE%LFEEDBACKT, &
-                    LEVLIMIT => PARAM_ICE%LEVLIMIT, &
-                    LNULLWETG => PARAM_ICE%LNULLWETG, &
-                    LWETGPOST => PARAM_ICE%LWETGPOST, &
-                    LNULLWETH => PARAM_ICE%LNULLWETH, &
-                    LWETHPOST => PARAM_ICE%LWETHPOST, &
-                    LCONVHG => PARAM_ICE%LCONVHG, &
-                    LCRFLIMIT => PARAM_ICE%LCRFLIMIT, &
-                    LADJ_BEFORE => PARAM_ICE%LADJ_BEFORE, &
-                    LADJ_AFTER => PARAM_ICE%LADJ_AFTER, &
-                    LSEDIM_AFTER => PARAM_ICE%LSEDIM_AFTER
+LOGICAL, POINTER :: LWARM => NULL(), &
+                    LSEDIC => NULL(), &
+                    LDEPOSC => NULL(), &
+                    LRED => NULL(), &
+                    LFEEDBACKT => NULL(), &
+                    LEVLIMIT => NULL(), &
+                    LNULLWETG => NULL(), &
+                    LWETGPOST => NULL(), &
+                    LNULLWETH => NULL(), &
+                    LWETHPOST => NULL(), &
+                    LCONVHG => NULL(), &
+                    LCRFLIMIT => NULL(), &
+                    LADJ_BEFORE => NULL(), &
+                    LADJ_AFTER => NULL(), &
+                    LSEDIM_AFTER => NULL()
 
-REAL, POINTER :: XVDEPOSC => PARAM_ICE%XVDEPOSC, &
-                 XFRACM90 => PARAM_ICE%XFRACM90, &
-                 XMRSTEP => PARAM_ICE%XMRSTEP, &
-                 XTSTEP_TS => PARAM_ICE%XTSTEP_TS, &
-                 XSPLIT_MAXCFL => PARAM_ICE%XSPLIT_MAXCFL
+REAL, POINTER :: XVDEPOSC => NULL(), &
+                 XFRACM90 => NULL(), &
+                 XMRSTEP => NULL(), &
+                 XTSTEP_TS => NULL(), &
+                 XSPLIT_MAXCFL => NULL()
 
-INTEGER, POINTER :: NMAXITER => PARAM_ICE%NMAXITER
+INTEGER, POINTER :: NMAXITER => NULL()
 
-CHARACTER(LEN=1), POINTER :: CFRAC_ICE_ADJUST => PARAM_ICE%CFRAC_ICE_ADJUST
-CHARACTER(LEN=1), POINTER :: CFRAC_ICE_SHALLOW_MF => PARAM_ICE%CFRAC_ICE_SHALLOW_MF
-CHARACTER(LEN=4), POINTER :: CPRISTINE_ICE => PARAM_ICE%CPRISTINE_ICE
-CHARACTER(LEN=4), POINTER :: CSEDIM => PARAM_ICE%CSEDIM
-CHARACTER(LEN=4), POINTER :: CSNOWRIMING => PARAM_ICE%CSNOWRIMING
-CHARACTER(LEN=80),POINTER :: CSUBG_RC_RR_ACCR => PARAM_ICE%CSUBG_RC_RR_ACCR
-CHARACTER(LEN=80),POINTER :: CSUBG_RR_EVAP => PARAM_ICE%CSUBG_RR_EVAP
-CHARACTER(LEN=80),POINTER :: CSUBG_PR_PDF => PARAM_ICE%CSUBG_PR_PDF
+CHARACTER(LEN=1), POINTER :: CFRAC_ICE_ADJUST => NULL()
+CHARACTER(LEN=1), POINTER :: CFRAC_ICE_SHALLOW_MF => NULL()
+CHARACTER(LEN=4), POINTER :: CPRISTINE_ICE => NULL()
+CHARACTER(LEN=4), POINTER :: CSEDIM => NULL()
+CHARACTER(LEN=4), POINTER :: CSNOWRIMING => NULL()
+CHARACTER(LEN=80),POINTER :: CSUBG_RC_RR_ACCR => NULL()
+CHARACTER(LEN=80),POINTER :: CSUBG_RR_EVAP => NULL()
+CHARACTER(LEN=80),POINTER :: CSUBG_PR_PDF => NULL()
 !
 !-------------------------------------------------------------------------------
 !
+CONTAINS
+SUBROUTINE PARAM_ICE_ASSOCIATE()
+  IMPLICIT NONE
+  LWARM => PARAM_ICE%LWARM, &
+  LSEDIC => PARAM_ICE%LSEDIC, &
+  LDEPOSC => PARAM_ICE%LDEPOSC, &
+  LRED => PARAM_ICE%LRED, &
+  LFEEDBACKT => PARAM_ICE%LFEEDBACKT, &
+  LEVLIMIT => PARAM_ICE%LEVLIMIT, &
+  LNULLWETG => PARAM_ICE%LNULLWETG, &
+  LWETGPOST => PARAM_ICE%LWETGPOST, &
+  LNULLWETH => PARAM_ICE%LNULLWETH, &
+  LWETHPOST => PARAM_ICE%LWETHPOST, &
+  LCONVHG => PARAM_ICE%LCONVHG, &
+  LCRFLIMIT => PARAM_ICE%LCRFLIMIT, &
+  LADJ_BEFORE => PARAM_ICE%LADJ_BEFORE, &
+  LADJ_AFTER => PARAM_ICE%LADJ_AFTER, &
+  LSEDIM_AFTER => PARAM_ICE%LSEDIM_AFTER
+  !
+  XVDEPOSC => PARAM_ICE%XVDEPOSC, &
+  XFRACM90 => PARAM_ICE%XFRACM90, &
+  XMRSTEP => PARAM_ICE%XMRSTEP, &
+  XTSTEP_TS => PARAM_ICE%XTSTEP_TS, &
+  XSPLIT_MAXCFL => PARAM_ICE%XSPLIT_MAXCFL
+  !
+  NMAXITER => PARAM_ICE%NMAXITER
+  !
+  CFRAC_ICE_ADJUST => PARAM_ICE%CFRAC_ICE_ADJUST
+  CFRAC_ICE_SHALLOW_MF => PARAM_ICE%CFRAC_ICE_SHALLOW_MF
+  CPRISTINE_ICE => PARAM_ICE%CPRISTINE_ICE
+  CSEDIM => PARAM_ICE%CSEDIM
+  CSNOWRIMING => PARAM_ICE%CSNOWRIMING
+  CSUBG_RC_RR_ACCR => PARAM_ICE%CSUBG_RC_RR_ACCR
+  CSUBG_RR_EVAP => PARAM_ICE%CSUBG_RR_EVAP
+  CSUBG_PR_PDF => PARAM_ICE%CSUBG_PR_PDF
+END SUBROUTINE PARAM_ICE_ASSOCIATE
 END MODULE MODD_PARAM_ICE