diff --git a/docs/TODO b/docs/TODO
index 55b6e2dc32a870dd8ba41867cf2fdb75e4831483..2c8de10ce044f960bf982f7a41b9d9f489c62328 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -54,5 +54,3 @@ SPP
 
 Gradients/shuman:
 - essayer de mettre des abort dans les routines arome (shuman doit suffire)
-
-compute_frac_ice: prendre la solution retenue à la fin de la discussion entre LAERO et GMAP
diff --git a/src/arome/turb/shallow_mf.F90 b/src/arome/turb/shallow_mf.F90
index d73839a6b6f077934c42780c6542bd5bb1d0d196..da72c1ceb966a7923a83eea8d89d87b79792f180 100644
--- a/src/arome/turb/shallow_mf.F90
+++ b/src/arome/turb/shallow_mf.F90
@@ -70,7 +70,6 @@ USE MODI_COMPUTE_UPDRAFT_RAHA
 USE MODI_MF_TURB
 USE MODI_MF_TURB_EXPL
 USE MODI_COMPUTE_MF_CLOUD
-USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE
 !
 IMPLICIT NONE
 
@@ -295,4 +294,8 @@ IF( HMF_UPDRAFT == 'DUAL') THEN
 ENDIF
 !
 IF (LHOOK) CALL DR_HOOK('SHALLOW_MF',1,ZHOOK_HANDLE)
+!
+CONTAINS
+INCLUDE "compute_frac_ice.func.h"
+!
 END SUBROUTINE SHALLOW_MF
diff --git a/src/arome/turb/th_r_from_thl_rt_1d.F90 b/src/arome/turb/th_r_from_thl_rt_1d.F90
index f553f45851e617143f842eca05a70f4eb9817456..15a6e449e009168cc9f7d596e5215faf3361547c 100644
--- a/src/arome/turb/th_r_from_thl_rt_1d.F90
+++ b/src/arome/turb/th_r_from_thl_rt_1d.F90
@@ -43,7 +43,6 @@
 !
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE
 USE MODD_CST!, ONLY: XP00, XRD, XCPD, XCPV, XCL, XCI, XLVTT, XTT, XLSTT
 USE MODE_THERMO
 !
@@ -191,4 +190,8 @@ ENDDO
 
 IF (LHOOK) CALL DR_HOOK('TH_R_FROM_THL_RT_1D',1,ZHOOK_HANDLE)
 
+!
+CONTAINS
+INCLUDE "compute_frac_ice.func.h"
+!
 END SUBROUTINE TH_R_FROM_THL_RT_1D
diff --git a/src/common/micro/mode_compute_frac_ice.F90 b/src/common/micro/compute_frac_ice.func.h
similarity index 52%
rename from src/common/micro/mode_compute_frac_ice.F90
rename to src/common/micro/compute_frac_ice.func.h
index ba2dffd7f4d00f2d141934eddc384cf10ee55f17..1943d7c2f0f1f4de3ccb3948e383fc19ba9d4708 100644
--- a/src/common/micro/mode_compute_frac_ice.F90
+++ b/src/common/micro/compute_frac_ice.func.h
@@ -2,29 +2,13 @@
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
-!     ######spl
-     MODULE MODE_COMPUTE_FRAC_ICE
-!    ############################
+      ELEMENTAL SUBROUTINE COMPUTE_FRAC_ICE(HFRAC_ICE,PFRAC_ICE,PT,KERR)
+
+! ******* TO BE INCLUDED IN THE *CONTAINS* OF A SUBROUTINE, IN ORDER TO EASE AUTOMATIC INLINING ******
+! => Don't use drHook !!!
 !
 !!****  *COMPUTE_FRAC_ICE* - computes ice fraction
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!**  METHOD
-!!    ------
-!!    
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!
-!!    REFERENCE
-!!    ---------
-!!
+!
 !!    AUTHOR
 !!    ------
 !!      Julien PERGAUD      * Meteo-France *
@@ -34,43 +18,21 @@
 !!      Original         13/03/06
 !!      S. Riette        April 2011 optimisation
 !!      S. Riette        08/2016 add option O
-!!      P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
-!!      R. El Khatib 24-Aug-2021 Optimization by cache re-use + assume data is contiguous
-!!      S. Riette Jan-2022 Merge the 3 procedures in one module + array shape declaration
-!       R. El Khatib / S. Riette Jan-2022 written as an elemental subroutine
+!!      R. El Khatib     12-Aug-2021 written as a include file
 !
-! 
-!
-
-
-!****************** Don't use drHook !!!
-
-
-
-IMPLICIT NONE
-CONTAINS
-
-ELEMENTAL SUBROUTINE COMPUTE_FRAC_ICE(HFRAC_ICE, PFRAC_ICE, PT, KERR)
 !! --------------------------------------------------------------------------
-!       0. DECLARATIONS
-!          ------------
-!
 USE MODD_NEB, ONLY : XTMINMIX, XTMAXMIX
 USE MODD_CST, ONLY : XTT
 !
 IMPLICIT NONE
 !
+CHARACTER(LEN=1), INTENT(IN)    :: HFRAC_ICE       ! scheme to use
+REAL,             INTENT(IN)    :: PT              ! temperature
+REAL,             INTENT(INOUT) :: PFRAC_ICE       ! Ice fraction (1 for ice only, 0 for liquid only)
+INTEGER,          INTENT(OUT)   :: KERR            ! Error code in return
 !
-!*      0.1  declarations of arguments
-!
-CHARACTER(LEN=1),  INTENT(IN)    :: HFRAC_ICE ! scheme to use
-REAL,              INTENT(IN)    :: PT        ! Temperature
-REAL,              INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice only, 0 for liquid only)
-INTEGER,           INTENT(OUT)   :: KERR      ! Error code in return
-!
-!               0.2  declaration of local variables
-! 
 !------------------------------------------------------------------------
+
 !                1. Compute FRAC_ICE
 !
 KERR=0
@@ -87,7 +49,5 @@ SELECT CASE(HFRAC_ICE)
   CASE DEFAULT
     KERR=1
 END SELECT
-!
+
 END SUBROUTINE COMPUTE_FRAC_ICE
-!
-END MODULE MODE_COMPUTE_FRAC_ICE
diff --git a/src/common/micro/condensation.F90 b/src/common/micro/condensation.F90
index 2e8112fc2fa0a54d8fbca37bc3fca5b4a82eab8c..9becdd2b4d315a3762ed2884595c2c48c8060c84 100644
--- a/src/common/micro/condensation.F90
+++ b/src/common/micro/condensation.F90
@@ -87,7 +87,6 @@ USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_CST
 USE MODD_PARAMETERS
 USE MODD_RAIN_ICE_PARAM, ONLY : XCRIAUTC, XCRIAUTI, XACRIAUTI, XBCRIAUTI
-USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE
 USE MODE_TIWMX, ONLY : ESATW, ESATI
 USE MODE_ICECLOUD, ONLY : ICECLOUD
 !
@@ -546,4 +545,8 @@ DO JK=IKTB,IKTE
 END DO
 !
 IF (LHOOK) CALL DR_HOOK('CONDENSATION',1,ZHOOK_HANDLE)
+!
+CONTAINS
+INCLUDE "compute_frac_ice.func.h"
+!
 END SUBROUTINE CONDENSATION
diff --git a/src/mesonh/turb/shallow_mf.f90 b/src/mesonh/turb/shallow_mf.f90
index 23dbbec3918c88e25337a3eeb8af0b55a919089d..5e6713851534228a4f6413aec2bb5b3912ede4b8 100644
--- a/src/mesonh/turb/shallow_mf.f90
+++ b/src/mesonh/turb/shallow_mf.f90
@@ -188,7 +188,6 @@ USE MODI_MF_TURB
 USE MODI_MF_TURB_EXPL
 USE MODI_MF_TURB_GREYZONE
 USE MODI_COMPUTE_MF_CLOUD
-USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE
 USE MODI_SHUMAN_MF
 !
 USE MODI_COMPUTE_BL89_ML
@@ -435,4 +434,7 @@ IF( HMF_UPDRAFT == 'DUAL') THEN
 !  PDVDT_MF=0.
 ENDIF
 !
+CONTAINS
+INCLUDE "compute_frac_ice.func.h"
+!
 END SUBROUTINE SHALLOW_MF