diff --git a/build/with_fcm/arch/arch-gnu.fcm b/build/with_fcm/arch/arch-gnu.fcm
index 63e0200e1f57dbbf93ba19ca1d9b3462e10919f5..81eebf9f21b2f8b05f6e0da58199746d788f378e 100644
--- a/build/with_fcm/arch/arch-gnu.fcm
+++ b/build/with_fcm/arch/arch-gnu.fcm
@@ -1,6 +1,6 @@
 # Compilation
 $FCOMPILER     =     gfortran
-$BASE_FFLAGS   =     -c -fPIC -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fopenmp -fconvert=swap
+$BASE_FFLAGS   =     -c -fPIC -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fopenmp -fconvert=swap -fallow-argument-mismatch
 $PROD_FFLAGS   =     -O3
 $DEV_FFLAGS    =     -O1
 $DEBUG_FFLAGS  =     -fbounds-check
diff --git a/src/arome/aux/mode_budget.F90 b/src/arome/aux/mode_budget.F90
index 624efdfa9839e077a5b6da173b944300295a6155..3a258b2443dee2db8d5da4990db60e41534e6ed8 100644
--- a/src/arome/aux/mode_budget.F90
+++ b/src/arome/aux/mode_budget.F90
@@ -15,6 +15,7 @@ SUBROUTINE BUDGET_STORE_INIT_PHY(D,TPBUDGET, HSOURCE, PVARS)
   TYPE(TBUDGETDATA),      INTENT(INOUT) :: TPBUDGET ! Budget datastructure
   CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
   REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)    :: PVARS    ! Current value to be stored
+  CALL BUDGET_STORE_INIT(TPBUDGET, HSOURCE, PVARS)
 END SUBROUTINE BUDGET_STORE_INIT_PHY
 !
 SUBROUTINE BUDGET_STORE_END(TPBUDGET, HSOURCE, PVARS)
diff --git a/src/common/aux/modd_budget.F90 b/src/common/aux/modd_budget.F90
index 65781c77fb798c28639b3c67de763529d605bf0b..2e247b6cd0b451ad6865e0a382c953dcc66f5c76 100644
--- a/src/common/aux/modd_budget.F90
+++ b/src/common/aux/modd_budget.F90
@@ -82,22 +82,43 @@ END TYPE TBUDGETCONF_t
 TYPE(TBUDGETCONF_t), TARGET :: TBUCONF
 !
 !                       General variables
-LOGICAL :: LBU_ENABLE=.FALSE.
+LOGICAL, POINTER :: LBU_ENABLE=>NULL()
 !
 INTEGER :: NBUMOD=0                    ! model in which budget is calculated
 !
-LOGICAL :: LBUDGET_U=.FALSE.  ! flag to compute budget of RhoJu  and/or LES budgets with u
-LOGICAL :: LBUDGET_V=.FALSE.  ! flag to compute budget of RhoJv  and/or LES budgets with u
-LOGICAL :: LBUDGET_W=.FALSE.  ! flag to compute budget of RhoJw  and/or LES budgets with u
-LOGICAL :: LBUDGET_TH=.FALSE. ! flag to compute budget of RhoJTh and/or LES budgets with th
-LOGICAL :: LBUDGET_TKE=.FALSE.! flag to compute budget of RhoJTke and/or LES budgets with Tke
-LOGICAL :: LBUDGET_RV=.FALSE. ! flag to compute budget of RhoJrv and/or LES budgets with rv
-LOGICAL :: LBUDGET_RC=.FALSE. ! flag to compute budget of RhoJrc and/or LES budgets with rc
-LOGICAL :: LBUDGET_RR=.FALSE. ! flag to compute budget of RhoJrr and/or LES budgets with rr
-LOGICAL :: LBUDGET_RI=.FALSE. ! flag to compute budget of RhoJri and/or LES budgets with ri
-LOGICAL :: LBUDGET_RS=.FALSE. ! flag to compute budget of RhoJrs and/or LES budgets with rs
-LOGICAL :: LBUDGET_RG=.FALSE. ! flag to compute budget of RhoJrg and/or LES budgets with rg
-LOGICAL :: LBUDGET_RH=.FALSE. ! flag to compute budget of RhoJrh and/or LES budgets with rh
-LOGICAL :: LBUDGET_SV=.FALSE. ! flag to compute budget of RhoJsv and/or LES budgets with sv
+LOGICAL, POINTER :: LBUDGET_U=>NULL()    ! flag to compute budget of RhoJu  and/or LES budgets with u
+LOGICAL, POINTER :: LBUDGET_V=>NULL()    ! flag to compute budget of RhoJv  and/or LES budgets with u
+LOGICAL, POINTER :: LBUDGET_W=>NULL()    ! flag to compute budget of RhoJw  and/or LES budgets with u
+LOGICAL, POINTER :: LBUDGET_TH=>NULL()   ! flag to compute budget of RhoJTh and/or LES budgets with th
+LOGICAL, POINTER :: LBUDGET_TKE=>NULL()  ! flag to compute budget of RhoJTke and/or LES budgets with Tke
+LOGICAL, POINTER :: LBUDGET_RV=>NULL()   ! flag to compute budget of RhoJrv and/or LES budgets with rv
+LOGICAL, POINTER :: LBUDGET_RC=>NULL()   ! flag to compute budget of RhoJrc and/or LES budgets with rc
+LOGICAL, POINTER :: LBUDGET_RR=>NULL()   ! flag to compute budget of RhoJrr and/or LES budgets with rr
+LOGICAL, POINTER :: LBUDGET_RI=>NULL()   ! flag to compute budget of RhoJri and/or LES budgets with ri
+LOGICAL, POINTER :: LBUDGET_RS=>NULL()   ! flag to compute budget of RhoJrs and/or LES budgets with rs
+LOGICAL, POINTER :: LBUDGET_RG=>NULL()   ! flag to compute budget of RhoJrg and/or LES budgets with rg
+LOGICAL, POINTER :: LBUDGET_RH=>NULL()   ! flag to compute budget of RhoJrh and/or LES budgets with rh
+LOGICAL, POINTER :: LBUDGET_SV=>NULL()   ! flag to compute budget of RhoJsv and/or LES budgets with sv
+
+CONTAINS
+
+SUBROUTINE TBUCONF_ASSOCIATE()
+  IMPLICIT NONE
+  LBU_ENABLE=>TBUCONF%LBU_ENABLE
+
+  LBUDGET_U=>TBUCONF%LBUDGET_U
+  LBUDGET_V=>TBUCONF%LBUDGET_V
+  LBUDGET_W=>TBUCONF%LBUDGET_W
+  LBUDGET_TH=>TBUCONF%LBUDGET_TH
+  LBUDGET_TKE=>TBUCONF%LBUDGET_TKE
+  LBUDGET_RV=>TBUCONF%LBUDGET_RV
+  LBUDGET_RC=>TBUCONF%LBUDGET_RC
+  LBUDGET_RR=>TBUCONF%LBUDGET_RR
+  LBUDGET_RI=>TBUCONF%LBUDGET_RI
+  LBUDGET_RS=>TBUCONF%LBUDGET_RS
+  LBUDGET_RG=>TBUCONF%LBUDGET_RG
+  LBUDGET_RH=>TBUCONF%LBUDGET_RH
+  LBUDGET_SV=>TBUCONF%LBUDGET_SV
+END SUBROUTINE TBUCONF_ASSOCIATE
 !
 END MODULE MODD_BUDGET
diff --git a/src/common/aux/mode_budget.F90 b/src/common/aux/mode_budget.F90
index dc469b1952d3ae4f206f9f6e3bf074248849cd0e..e50f2185b75c75ceb45d12d9de4de0c746b02456 100644
--- a/src/common/aux/mode_budget.F90
+++ b/src/common/aux/mode_budget.F90
@@ -1,5 +1,5 @@
 MODULE MODE_BUDGET
-USE MODD_BUDGET, ONLY: TBUDGETDATA
+USE MODD_BUDGET, ONLY : TBUDGETDATA
 IMPLICIT NONE
 CONTAINS
 
@@ -8,13 +8,40 @@ SUBROUTINE BUDGET_STORE_INIT(TPBUDGET, HSOURCE, PVARS)
   CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
   REAL, DIMENSION(:,:,:), INTENT(IN)    :: PVARS    ! Current value to be stored
 END SUBROUTINE BUDGET_STORE_INIT
-
+!
+SUBROUTINE BUDGET_STORE_INIT_PHY(D,TPBUDGET, HSOURCE, PVARS)
+  USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
+  TYPE(DIMPHYEX_t),       INTENT(IN)    :: D
+  TYPE(TBUDGETDATA),      INTENT(INOUT) :: TPBUDGET ! Budget datastructure
+  CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
+  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)    :: PVARS    ! Current value to be stored
+  CALL BUDGET_STORE_INIT(TPBUDGET, HSOURCE, PVARS)
+END SUBROUTINE BUDGET_STORE_INIT_PHY
+!
 SUBROUTINE BUDGET_STORE_END(TPBUDGET, HSOURCE, PVARS)
   TYPE(TBUDGETDATA),      INTENT(INOUT) :: TPBUDGET ! Budget datastructure
   CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
   REAL, DIMENSION(:,:,:), INTENT(IN)    :: PVARS    ! Current value to be stored
 END SUBROUTINE BUDGET_STORE_END
-
+!
+SUBROUTINE BUDGET_STORE_END_PHY(D,TPBUDGET, HSOURCE, PVARS)
+  USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
+  TYPE(DIMPHYEX_t),       INTENT(IN)    :: D
+  TYPE(TBUDGETDATA),      INTENT(INOUT) :: TPBUDGET ! Budget datastructure
+  CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
+  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)    :: PVARS    ! Current value to be stored
+  CALL BUDGET_STORE_END(TPBUDGET, HSOURCE, PVARS)
+END SUBROUTINE BUDGET_STORE_END_PHY
+!
+SUBROUTINE BUDGET_STORE_ADD_PHY(D,TPBUDGET, HSOURCE, PVARS)
+  USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
+  TYPE(DIMPHYEX_t),       INTENT(IN)    :: D
+  TYPE(TBUDGETDATA),      INTENT(INOUT) :: TPBUDGET ! Budget datastructure
+  CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
+  REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN)    :: PVARS    ! Current value to be stored
+  CALL BUDGET_STORE_ADD(TPBUDGET, HSOURCE, PVARS)
+END SUBROUTINE BUDGET_STORE_ADD_PHY
+!
 SUBROUTINE BUDGET_STORE_ADD(TPBUDGET, HSOURCE, PVARS)
   TYPE(TBUDGETDATA),      INTENT(INOUT) :: TPBUDGET ! Budget datastructure
   CHARACTER(LEN=*),       INTENT(IN)    :: HSOURCE  ! Name of the source term
diff --git a/src/arome/aux/mode_sources_neg_correct.F90 b/src/common/aux/mode_sources_neg_correct.F90
similarity index 100%
rename from src/arome/aux/mode_sources_neg_correct.F90
rename to src/common/aux/mode_sources_neg_correct.F90
diff --git a/src/common/micro/ini_snow.F90 b/src/common/micro/ini_snow.F90
index b1d284f630aa6d1ae402895f8a0c3a4071ba4ba2..4461cac46f1a69debe77416c895246dc7cc75730 100644
--- a/src/common/micro/ini_snow.F90
+++ b/src/common/micro/ini_snow.F90
@@ -46,7 +46,6 @@
 !              ------------
 !
 USE MODD_CST
-USE MODD_LUNIT
 USE MODD_PARAMETERS
 USE MODD_PARAM_ICE
 USE MODD_RAIN_ICE_DESCR
diff --git a/src/arome/turb/les_mean_subgrid_phy.F90 b/src/common/turb/les_mean_subgrid_phy.F90
similarity index 100%
rename from src/arome/turb/les_mean_subgrid_phy.F90
rename to src/common/turb/les_mean_subgrid_phy.F90
diff --git a/src/arome/turb/mode_ibm_mixinglength.F90 b/src/common/turb/mode_ibm_mixinglength.F90
similarity index 100%
rename from src/arome/turb/mode_ibm_mixinglength.F90
rename to src/common/turb/mode_ibm_mixinglength.F90
diff --git a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90
index 1fb0a4a02b8fa38b5c6f656665c38fe7a8dcbe13..3637d1b4b3626b1c970540f8ac197685bae4105e 100644
--- a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90
+++ b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90
@@ -26,7 +26,7 @@ END INTERFACE
 CONTAINS
 
 SUBROUTINE GETDATA_ICE_ADJUST (NPROMA, NGPBLKS, NFLEVG, PRHODJ_B, PEXNREF_B, PRHODREF_B, PPABSM_B, PTHT_B, ZICE_CLD_WGT_B, &
-& ZSIGQSAT_B, PSIGS_B, PMFCONV_B, PRC_MF_B, PRI_MF_B, PCF_MF_B, PTHS_B, PRS_B, PSRCS_B, PCLDFR_B, PHLC_HRC_B, PHLC_HCF_B,   &
+& ZSIGQSAT_B, PSIGS_B, PMFCONV_B, PRC_MF_B, PRI_MF_B, PCF_MF_B, ZDUM1_B, ZDUM2_B, ZDUM3_B, ZDUM4_B, ZDUM5_B, PTHS_B, PRS_B, PSRCS_B, PCLDFR_B, PHLC_HRC_B, PHLC_HCF_B,   &
 & PHLI_HRI_B, PHLI_HCF_B, ZRS_B, ZZZ_B, PRS_OUT_B, PSRCS_OUT_B, PCLDFR_OUT_B, PHLC_HRC_OUT_B, PHLC_HCF_OUT_B,         &
 & PHLI_HRI_OUT_B, PHLI_HCF_OUT_B, LDVERBOSE)
 
@@ -57,6 +57,11 @@ REAL, ALLOCATABLE   :: PMFCONV_B      (:,:,:,:)
 REAL, ALLOCATABLE   :: PRC_MF_B       (:,:,:,:)   
 REAL, ALLOCATABLE   :: PRI_MF_B       (:,:,:,:)   
 REAL, ALLOCATABLE   :: PCF_MF_B       (:,:,:,:)   
+REAL, ALLOCATABLE   :: ZDUM1_B        (:,:,:,:)
+REAL, ALLOCATABLE   :: ZDUM2_B        (:,:,:,:)
+REAL, ALLOCATABLE   :: ZDUM3_B        (:,:,:,:)
+REAL, ALLOCATABLE   :: ZDUM4_B        (:,:,:,:)
+REAL, ALLOCATABLE   :: ZDUM5_B        (:,:,:,:)
 REAL, ALLOCATABLE   :: PTHS_B         (:,:,:,:)   
 REAL, ALLOCATABLE   :: PRS_B          (:,:,:,:,:) 
 REAL, ALLOCATABLE   :: PRS_OUT_B      (:,:,:,:,:) 
@@ -132,6 +137,11 @@ ALLOCATE (PMFCONV_B       (NPROMA,1,NFLEVG,NGPBLKS))
 ALLOCATE (PRC_MF_B        (NPROMA,1,NFLEVG,NGPBLKS))
 ALLOCATE (PRI_MF_B        (NPROMA,1,NFLEVG,NGPBLKS))
 ALLOCATE (PCF_MF_B        (NPROMA,1,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM1_B         (NPROMA,1,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM2_B         (NPROMA,1,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM3_B         (NPROMA,1,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM4_B         (NPROMA,1,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM5_B         (NPROMA,1,NFLEVG,NGPBLKS))
 ALLOCATE (PTHS_B          (NPROMA,1,NFLEVG,NGPBLKS))
 ALLOCATE (PRS_B           (NPROMA,1,NFLEVG,KRR,NGPBLKS))
 ALLOCATE (PRS_OUT_B       (NPROMA,1,NFLEVG,KRR,NGPBLKS))
diff --git a/src/testprogs/ice_adjust/main_ice_adjust.F90 b/src/testprogs/ice_adjust/main_ice_adjust.F90
index 02ab5c6efb1cafa34cf2642f830d35afe00bd490..c488c4b41731211a88843f457b85857b600f03c7 100644
--- a/src/testprogs/ice_adjust/main_ice_adjust.F90
+++ b/src/testprogs/ice_adjust/main_ice_adjust.F90
@@ -4,12 +4,14 @@ USE XRD_GETOPTIONS
 USE GETDATA_ICE_ADJUST_MOD
 USE MODI_ICE_ADJUST
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
-USE MODD_CST,        ONLY: CST_t, CST
-USE MODD_NEB,        ONLY: NEB_t, NEB
-USE MODD_RAIN_ICE_PARAM, ONLY : RAIN_ICE_PARAM_t
+USE MODD_CST,        ONLY: CST
+USE MODD_NEB,        ONLY: NEB
+USE MODD_TURB_n,     ONLY: TURBN, TURB_GOTO_MODEL
+USE MODD_RAIN_ICE_PARAM, ONLY : RAIN_ICE_PARAM_t, RAIN_ICE_PARAM_ASSOCIATE
 USE MODI_INI_CST
 USE MODI_INI_NEB
-USE MODD_BUDGET, ONLY: TBUDGETDATA, NBUDGET_RI, TBUCONF
+USE MODI_INI_RAIN_ICE
+USE MODD_BUDGET !, ONLY: TBUCONF_ASSOCIATE, TBUDGETDATA, NBUDGET_RI, TBUCONF
 USE STACK_MOD
 USE OMP_LIB
 USE YOMHOOK, ONLY : LHOOK, DR_HOOK
@@ -44,6 +46,11 @@ REAL,    ALLOCATABLE   :: ZRS            (:,:,:,:,:)
 REAL,    ALLOCATABLE   :: ZZZ            (:,:,:,:)   
 REAL,    ALLOCATABLE   :: ZSIGQSAT       (:,:,:)   
 REAL,    ALLOCATABLE   :: ZICE_CLD_WGT   (:,:,:)   
+REAL,    ALLOCATABLE   :: ZDUM1          (:,:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM2          (:,:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM3          (:,:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM4          (:,:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM5          (:,:,:,:)
 
 REAL,    ALLOCATABLE   :: PRS_OUT        (:,:,:,:,:) 
 REAL,    ALLOCATABLE   :: PSRCS_OUT      (:,:,:,:)   
@@ -64,7 +71,8 @@ CHARACTER(LEN=4)         :: HLAMBDA3
 CHARACTER(LEN=4)         :: HBUNAME  
 LOGICAL                  :: OSUBG_COND
 LOGICAL                  :: OSIGMAS  
-LOGICAL                  :: OCND2    
+LOGICAL                  :: OCND2
+LOGICAL                  :: LHGT_QS
 LOGICAL                  :: LMFCONV
 CHARACTER(LEN=80)        :: HSUBG_MF_PDF
 REAL                     :: PTSTEP    
@@ -117,11 +125,10 @@ IF (LLBIND) THEN
 ENDIF
 
 CALL GETDATA_ICE_ADJUST (NPROMA, NGPBLKS, NFLEVG, PRHODJ, PEXNREF, PRHODREF, PPABSM, PTHT, ZICE_CLD_WGT,     &
-& ZSIGQSAT, PSIGS, PMFCONV, PRC_MF, PRI_MF, PCF_MF, PTHS, PRS, PSRCS, PCLDFR, PHLC_HRC, PHLC_HCF, &
+& ZSIGQSAT, PSIGS, PMFCONV, PRC_MF, PRI_MF, PCF_MF, ZDUM1, ZDUM2, ZDUM3, ZDUM4, ZDUM5, PTHS, PRS, PSRCS, PCLDFR, PHLC_HRC, PHLC_HCF, &
 & PHLI_HRI, PHLI_HCF, ZRS, ZZZ, PRS_OUT, PSRCS_OUT, PCLDFR_OUT, PHLC_HRC_OUT, PHLC_HCF_OUT,       &
 & PHLI_HRI_OUT, PHLI_HCF_OUT, LLVERBOSE)
 
-
 KLEV = SIZE (PRS, 3)
 KRR  = SIZE (PRS, 4)
 
@@ -129,8 +136,26 @@ IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR
 
 PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS
 
+CALL RAIN_ICE_PARAM_ASSOCIATE
 CALL INI_CST
 CALL INI_NEB
+CALL TURB_GOTO_MODEL(1, 1)
+TURBN%LSTATNW=.FALSE.
+CALL TBUCONF_ASSOCIATE
+LBU_ENABLE=.FALSE.                                                                                                       
+LBUDGET_U=.FALSE.
+LBUDGET_V=.FALSE.
+LBUDGET_W=.FALSE.
+LBUDGET_TH=.FALSE.
+LBUDGET_TKE=.FALSE.
+LBUDGET_RV=.FALSE.
+LBUDGET_RC=.FALSE.
+LBUDGET_RR=.FALSE.
+LBUDGET_RI=.FALSE.
+LBUDGET_RS=.FALSE.
+LBUDGET_RG=.FALSE.
+LBUDGET_RH=.FALSE.
+LBUDGET_SV=.FALSE.
 
 ! Taken from ini_rain_ice.F90; we only need these for ice_adjust.F90
 ICEP%XCRIAUTI  = 0.2E-4 
@@ -153,6 +178,7 @@ HBUNAME      = 'DEPI'
 OSUBG_COND   = .TRUE.
 OSIGMAS      = .TRUE.
 OCND2        = .FALSE.
+LHGT_QS      = .FALSE.
 HSUBG_MF_PDF = 'TRIANGLE'
 PTSTEP       = 50.000000000000000    
 LMFCONV      = .TRUE.
@@ -166,6 +192,9 @@ D0%NIE  = NPROMA
 D0%NJT  = 1
 D0%NJB  = 1
 D0%NJE  = 1
+D0%NIJT = D0%NIT * D0%NJT
+D0%NIJB = 1
+D0%NIJE = NPROMA
 D0%NKL  = -1
 D0%NKT  = KLEV
 D0%NKA  = KLEV
@@ -190,8 +219,8 @@ DO ITIME = 1, NTIME
   TSD = OMP_GET_WTIME ()
 
 !$acc data &
-!$acc      & copyin  (D0, CST, ICEP, NEB, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF, PTSTEP, LMFCONV, &
-!$acc      &          ZSIGQSAT, PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABSM, ZZZ, PCF_MF, PRC_MF, PRI_MF, ZRS, ZICE_CLD_WGT) &
+!$acc      & copyin  (D0, CST, ICEP, NEB, TURBN, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND, OSIGMAS, OCND2, LHGT_QS, HSUBG_MF_PDF, PTSTEP, LMFCONV, &
+!$acc      &          ZSIGQSAT, PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABSM, ZZZ, PCF_MF, PRC_MF, PRI_MF, ZDUM1, ZDUM2, ZDUM3, ZDUM4, ZDUM5, ZRS, ZICE_CLD_WGT) &
 !$acc      & copy    (PRS, PTHS), &
 !$acc      & copyout (PSRCS, PCLDFR, PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF) &
 !$acc      & create  (PSTACK) 
@@ -228,6 +257,8 @@ JBLK2 =      (NGPBLKS * (ITID+1)) / NTID
     D = D0
     D%NIB = JLON
     D%NIE = JLON
+    D%NIJB = JLON
+    D%NIJE = JLON
 #endif
 
 #ifdef USE_OPENMP
@@ -242,18 +273,22 @@ JBLK2 =      (NGPBLKS * (ITID+1)) / NTID
     YLSTACK%U = 0
 #endif
 
-    CALL ICE_ADJUST (D, CST, ICEP, NEB, TBUCONF, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND,                       &
-    & OSIGMAS, OCND2, HSUBG_MF_PDF, PTSTEP, ZSIGQSAT (:, :, IBL), PRHODJ=PRHODJ (:, :, :, IBL), PEXNREF=PEXNREF (:, :, :, IBL), &
+    CALL ICE_ADJUST (D, CST, ICEP, NEB, TURBN, TBUCONF, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND,                &
+    & OSIGMAS, OCND2, LHGT_QS, HSUBG_MF_PDF, PTSTEP, ZSIGQSAT (:, :, IBL), PRHODJ=PRHODJ (:, :, :, IBL),                        &
+    & PEXNREF=PEXNREF (:, :, :, IBL), &
     & PRHODREF=PRHODREF (:, :, :, IBL), PSIGS=PSIGS (:, :, :, IBL), LMFCONV=LMFCONV, PMFCONV=PMFCONV (:, :, :, IBL),            &
     & PPABST=PPABSM (:, :, :, IBL), PZZ=ZZZ (:, :, :, IBL), PEXN=PEXNREF (:, :, :, IBL), PCF_MF=PCF_MF (:, :, :, IBL),          &
-    & PRC_MF=PRC_MF (:, :, :, IBL), PRI_MF=PRI_MF  (:, :, :, IBL), PRV=ZRS(:, :, :, 1, IBL), PRC=ZRS(:, :, :, 2, IBL),          &
+    & PRC_MF=PRC_MF (:, :, :, IBL), PRI_MF=PRI_MF  (:, :, :, IBL),                                                              &
+    & PICLDFR=ZDUM1(:, :, :, IBL), PWCLDFR=ZDUM2(:, :, :, IBL), PSSIO=ZDUM3(:, :, :, IBL),                                      &
+    & PSSIU=ZDUM4(:, :, :, IBL), PIFR=ZDUM5(:, :, :, IBL),                                                                        &
+    & PRV=ZRS(:, :, :, 1, IBL), PRC=ZRS(:, :, :, 2, IBL),          &
     & PRVS=PRS(:, :, :, 1, IBL), PRCS=PRS(:, :, :, 2, IBL), PTH=ZRS(:, :, :, 0, IBL), PTHS=PTHS (:, :, :, IBL),                 &
     & OCOMPUTE_SRC=.TRUE.,                                                                                                      &
     & PSRCS=PSRCS (:, :, :, IBL), PCLDFR=PCLDFR (:, :, :, IBL), PRR=ZRS(:, :, :, 3, IBL), PRI=ZRS(:, :, :, 4, IBL),             &
-    & PRIS=PRS(:, :, :, 4, IBL), PRS=ZRS(:, :, :, 5, IBL), PRG=ZRS(:, :, :, 6, IBL), PHLC_HRC=PHLC_HRC(:, :, :, IBL),           &
-    & PHLC_HCF=PHLC_HCF(:, :, :, IBL), PHLI_HRI=PHLI_HRI(:, :, :, IBL), PHLI_HCF=PHLI_HCF(:, :, :, IBL),                        &
-    & TBUDGETS=YLBUDGET, KBUDGETS=NBUDGET_RI, &
-    & PICE_CLD_WGT=ZICE_CLD_WGT(:, :, IBL) &
+    & PRIS=PRS(:, :, :, 4, IBL), PRS=ZRS(:, :, :, 5, IBL), PRG=ZRS(:, :, :, 6, IBL), TBUDGETS=YLBUDGET, KBUDGETS=NBUDGET_RI,    &
+    & PICE_CLD_WGT=ZICE_CLD_WGT(:, :, IBL),                                                                                     &
+    & PHLC_HRC=PHLC_HRC(:, :, :, IBL), PHLC_HCF=PHLC_HCF(:, :, :, IBL),                                                         &
+    & PHLI_HRI=PHLI_HRI(:, :, :, IBL), PHLI_HCF=PHLI_HCF(:, :, :, IBL)                                                          &
 #ifdef USE_STACK
     & , YDSTACK=YLSTACK &
 #endif
diff --git a/src/testprogs/rain_ice/main_rain_ice.F90 b/src/testprogs/rain_ice/main_rain_ice.F90
index 6b167802ea347a377df6cf0bb000c57ddbc6a2d0..7dc8676231d3a8a50a0356994e857f0f3a18a25a 100644
--- a/src/testprogs/rain_ice/main_rain_ice.F90
+++ b/src/testprogs/rain_ice/main_rain_ice.F90
@@ -10,7 +10,7 @@ USE MODD_RAIN_ICE_PARAM, ONLY : RAIN_ICE_PARAM
 USE MODD_PARAM_ICE,      ONLY: PARAM_ICE
 USE MODI_RAIN_ICE
 USE MODI_INI_CST
-USE MODD_BUDGET, ONLY: TBUDGETDATA, NBUDGET_RH, TBUCONF
+USE MODD_BUDGET!, ONLY: TBUCONF_ASSOCIATE, TBUDGETDATA, NBUDGET_RH, TBUCONF
 USE STACK_MOD
 USE OMP_LIB
 USE YOMHOOK, ONLY : LHOOK, DR_HOOK
@@ -157,6 +157,9 @@ D0%NIE  = NPROMA
 D0%NJT  = 1
 D0%NJB  = 1
 D0%NJE  = 1
+D0%NIJT = D0%NIT * D0%NJT
+D0%NIJB = 1
+D0%NIJE = NPROMA
 D0%NKL  = -1
 D0%NKT  = KLEV
 D0%NKA  = KLEV
@@ -219,6 +222,8 @@ JBLK2 =      (NGPBLKS * (ITID+1)) / NTID
     D = D0
     D%NIB = JLON
     D%NIE = JLON
+    D%NIJB = JLON
+    D%NIJE = JLON
 #endif
 
 #ifdef USE_OPENMP
@@ -449,6 +454,21 @@ REAL :: ZCRI0, ZTCRI0
 CALL INI_CST
 CALL TURB_GOTO_MODEL(1,1)
 CALL PARAM_ICE_ASSOCIATE
+CALL TBUCONF_ASSOCIATE
+LBU_ENABLE=.FALSE.                                                                                                       
+LBUDGET_U=.FALSE.
+LBUDGET_V=.FALSE.
+LBUDGET_W=.FALSE.
+LBUDGET_TH=.FALSE.
+LBUDGET_TKE=.FALSE.
+LBUDGET_RV=.FALSE.
+LBUDGET_RC=.FALSE.
+LBUDGET_RR=.FALSE.
+LBUDGET_RI=.FALSE.
+LBUDGET_RS=.FALSE.
+LBUDGET_RG=.FALSE.
+LBUDGET_RH=.FALSE.
+LBUDGET_SV=.FALSE.
 
 !        1. Set implicit default values for MODD_PARAM_ICE
 LWARM=LDWARM
diff --git a/tools/INSTALL_pack_ial.md b/tools/INSTALL_pack_ial.md
index 539958fc9c61c0f06266164e26360788bb5d13a3..c29f2ee3b22c878a92f61d3521c50a6b87ffd491 100644
--- a/tools/INSTALL_pack_ial.md
+++ b/tools/INSTALL_pack_ial.md
@@ -24,6 +24,10 @@ Tools are designed and tested with TRUNK=\<git repository\>/tools/pack/
 
 ## REFERENCE PACK CREATION
 
+### Prerequiste
+gmkpack must be installed
+fypp python module must be instaled (pip3 install --user fypp)
+
 ### Create the pack
 
 ```
@@ -32,16 +36,14 @@ cycle=48t1 or cy48t3 (after commit XXX on 22 September 2022)
 compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos
 gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos
 option=xfftw on ubuntu, 2y on belenos
-getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary?
 export GMKTMP=/dev/shm
-(. berootpack)
 gmkpack -a -r ${cycle} -b phyex -n $version -l ${compiler} -o ${option} -p masterodb -h $TRUNK/tools/pack/ #create main pack
 ```
 
 ### Populate main pack with source code
 
 ```
-cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option}/src/local
+cd $TRUNK${cycle}_phyex.${version}.${compiler}.${option}/src/local
 if sxphynh; then
   wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz #only available at MF but equivalent must exist elsewhere
 else
@@ -203,10 +205,8 @@ into:
 ### Compilation
 
 ```
-cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option}
-#Not needed anymore: grep MPA .gmkfile/${compiler}.GMAP | sed 's/MPA/PHYEX/g' >> .gmkfile/${gmkfile}
+cd $TRUNK/${cycle}_phyex.${version}.${compiler}.${option}
 Edition of .gmkfile/${gmkfile} to add -DREPRO48 to the MACROS_FRT variable in order to suppress bug corrections and be able to reproduce the original cy48
-#Not needed anymore: Edition of .gmkfile/${gmkfile} to suppress on ubuntu -ftree-vectorize
 sed -i 's/GMK_THREADS=1/GMK_THREADS=10/' ics_masterodb
 cleanpack -f
 resetpack -f
@@ -220,11 +220,10 @@ version=01
 compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos
 gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos
 option=xfftw on ubuntu, 2y on belenos
-getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary?
 
 commit=9ce8119430dd603d35308d8ae94cf18636157473 #exemple of commit to test against the reference pack
 
-gmkpack -r ${cycle} -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK/tools/pack/ -u PHYEX/$commit
+gmkpack -r ${cycle} -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK -u PHYEX/$commit
 
 cd $HOMEPACK/PHYEX/$commit/src/local/phyex
 git clone git@github.com:QuentinRodier/PHYEX.git
diff --git a/tools/check_commit_ial.sh b/tools/check_commit_ial.sh
index d8be003f61650b5e03096d7e44bcb620b9207df2..c089607206225106a61dc694b8d49d7b74c80a0c 100755
--- a/tools/check_commit_ial.sh
+++ b/tools/check_commit_ial.sh
@@ -23,6 +23,12 @@ set -e
 
 #The small_3D_alt9 is not included in the list of available tests because it cannot be run before 21 September (commit edc3f88).
 
+#Special pack names:
+# - recompil: original source code (everything under mpa)
+# - split_48t1: original 48t1 source code but with physics source code under phyex directory
+# - split_48t3: same as split_48t1 but for the 48t3 cycle
+# - split: symbolic link to split_48t1 (backward compatibility)
+
 specialPack="ori split split_48t1 split_48t3 recompil"
 availTests="small_3D,small_3D_np2,small_3D_alt1,small_3D_alt2,small_3D_alt3,small_3D_alt4,small_3D_alt5,small_3D_alt6,small_3D_alt7"
 defaultTest="small_3D"
diff --git a/tools/check_commit_testprogs.sh b/tools/check_commit_testprogs.sh
index ceb4b57e753d6914d040cdd251a1169569a705f6..e663e0550e3ea73502696b772bdfb32001432a05 100755
--- a/tools/check_commit_testprogs.sh
+++ b/tools/check_commit_testprogs.sh
@@ -9,6 +9,8 @@ set -e
 
 #ice_adjust: the ice adjust test case
 
+#ref is commit 855b8f8 for ice_adjust, rain_ice, turb and shallow_mf
+
 specialName="ref"
 availTests="ice_adjust,rain_ice"
 defaultTest='ALL'
@@ -174,11 +176,14 @@ if [ $compilation -eq 1 ]; then
   if [ "$fromdir" == '' ]; then
     echo "Clone repository, and checkout commit $commit (using prep_code.sh)"
     $prep_code -c $commit $expand_options $subs src
+    mv src/build src/build_from_commit #We do not use the compilation system as it used to be when commiting
+    cp -r $PHYEXTOOLSDIR/../build src/ #We use the compilation system from the same commit as the current script
   else
     echo "Copy $fromdir"
     mkdir src
     scp -q -r $fromdir/src src/
-    scp -q -r $fromdir/build src/
+    #scp -q -r $fromdir/build src/ #We do not use the compilation system present with the source code
+    cp -r $PHYEXTOOLSDIR/../build src/ #We use the compilation system from the same commit as the current script
     $prep_code $expand_options $subs src
   fi