From a1e7305d3b736170891308151a8f85b552253103 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr>
Date: Thu, 25 Nov 2021 15:39:51 +0100
Subject: [PATCH] =?UTF-8?q?S=C3=A9bastien=2025/11/2021=20Merge=20MNH->COMM?=
 =?UTF-8?q?ON=20ice4=5Frimltc=20and=20ice4=5Frrhong?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/arome/gmkpack_ignored_files               |   4 +
 src/arome/micro/ice4_tendencies.F90           |  16 ++-
 .../mpa/micro/internals/ice4_rimltc.F90       |   4 -
 .../mpa/micro/internals/ice4_rrhong.F90       |   4 -
 .../micro/mode_ice4_rimltc.F90}               |  30 ++---
 .../micro/mode_ice4_rrhong.F90}               |  28 ++---
 src/mesonh/micro/ice4_rimltc.f90              | 105 ------------------
 src/mesonh/micro/ice4_rrhong.f90              | 105 ------------------
 8 files changed, 46 insertions(+), 250 deletions(-)
 delete mode 100644 src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90
 delete mode 100644 src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90
 rename src/{arome/micro/ice4_rimltc.F90 => common/micro/mode_ice4_rimltc.F90} (78%)
 rename src/{arome/micro/ice4_rrhong.F90 => common/micro/mode_ice4_rrhong.F90} (77%)
 delete mode 100644 src/mesonh/micro/ice4_rimltc.f90
 delete mode 100644 src/mesonh/micro/ice4_rrhong.f90

diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index fbb525c78..c6c3c26b9 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -38,3 +38,7 @@ phyex/micro/ice4_tendencies.F90
 phyex/micro/modi_ice4_tendencies.F90
 phyex/micro/modi_ice4_rainfr_vert.F90
 phyex/micro/ice4_rainfr_vert.F90
+phyex/micro/ice4_rimltc.F90
+phyex/micro/modi_ice4_rimltc.F90
+phyex/micro/ice4_rrhong.F90
+phyex/micro/modi_ice4_rrhong.F90
diff --git a/src/arome/micro/ice4_tendencies.F90 b/src/arome/micro/ice4_tendencies.F90
index c3b5a5fbb..23d6bf57d 100644
--- a/src/arome/micro/ice4_tendencies.F90
+++ b/src/arome/micro/ice4_tendencies.F90
@@ -42,8 +42,8 @@ USE MODD_RAIN_ICE_DESCR
 USE MODD_PARAM_ICE, ONLY : CSNOWRIMING
 
 USE MODI_ICE4_NUCLEATION
-USE MODI_ICE4_RRHONG
-USE MODI_ICE4_RIMLTC
+USE MODE_ICE4_RRHONG, ONLY: ICE4_RRHONG
+USE MODE_ICE4_RIMLTC, ONLY: ICE4_RIMLTC
 USE MODE_ICE4_RSRIMCG_OLD, ONLY: ICE4_RSRIMCG_OLD
 USE MODE_ICE4_COMPUTE_PDF, ONLY: ICE4_COMPUTE_PDF
 USE MODE_ICE4_RAINFR_VERT, ONLY: ICE4_RAINFR_VERT
@@ -237,6 +237,11 @@ ELSE
                   &ZT,   ZRRT, &
                   &ZTHT, &
                   &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
+  DO JL=1, KSIZE
+    PB_RG(JL) = PB_RG(JL) + PRRHONG_MR(JL)
+    PB_RR(JL) = PB_RR(JL) - PRRHONG_MR(JL)
+    PB_TH(JL) = PB_TH(JL) + PRRHONG_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
+  ENDDO
   DO JL=1, KSIZE
     ZRGT(JL) = ZRGT(JL) + PRRHONG_MR(JL)
     ZRRT(JL) = ZRRT(JL) - PRRHONG_MR(JL)
@@ -250,7 +255,12 @@ ELSE
                   &PEXN, PLVFACT, PLSFACT, &
                   &ZT, &
                   &ZTHT, ZRIT, &
-                  &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
+                  &PRIMLTC_MR)
+  DO JL=1, KSIZE
+    PB_RC(JL) = PB_RC(JL) + PRIMLTC_MR(JL)
+    PB_RI(JL) = PB_RI(JL) - PRIMLTC_MR(JL)
+    PB_TH(JL) = PB_TH(JL) - PRIMLTC_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
+  ENDDO
   DO JL=1, KSIZE
     ZRCT(JL) = ZRCT(JL) + PRIMLTC_MR(JL)
     ZRIT(JL) = ZRIT(JL) - PRIMLTC_MR(JL)
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90 b/src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90
deleted file mode 100644
index 4d9c39363..000000000
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-SUBROUTINE ICE4_RIMLTC
-!! dead code - inlined in ice4_tendencies.
-!!     R. El Khatib 24-Aug-2021
-END SUBROUTINE ICE4_RIMLTC
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90 b/src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90
deleted file mode 100644
index 34778f274..000000000
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-SUBROUTINE ICE4_RRHONG
-!! dead code - inlined in ice4_tendencies.
-!!     R. El Khatib 24-Aug-2021
-END SUBROUTINE ICE4_RRHONG
diff --git a/src/arome/micro/ice4_rimltc.F90 b/src/common/micro/mode_ice4_rimltc.F90
similarity index 78%
rename from src/arome/micro/ice4_rimltc.F90
rename to src/common/micro/mode_ice4_rimltc.F90
index 7ef2a8992..9a6e7f077 100644
--- a/src/arome/micro/ice4_rimltc.F90
+++ b/src/common/micro/mode_ice4_rimltc.F90
@@ -1,8 +1,17 @@
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!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.
+!-----------------------------------------------------------------
+MODULE MODE_ICE4_RIMLTC
+IMPLICIT NONE
+CONTAINS
+
 SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
                        &PEXN, PLVFACT, PLSFACT, &
                        &PT, &
                        &PTHT, PRIT, &
-                       &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
+                       &PRIMLTC_MR)
 !!
 !!**  PURPOSE
 !!    -------
@@ -20,10 +29,8 @@ SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
-USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
+USE MODD_CST,       ONLY: XTT
+USE MODD_PARAM_ICE, ONLY: LFEEDBACKT
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -40,10 +47,7 @@ REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Cloud ice at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
+REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
 !
 !*       0.2  declaration of local variables
 !
@@ -72,12 +76,8 @@ IF(.NOT. LDSOFT) THEN
     ENDDO
   ENDIF
 ENDIF
-DO JL=1, KSIZE
-  PB_RC(JL) = PB_RC(JL) + PRIMLTC_MR(JL)
-  PB_RI(JL) = PB_RI(JL) - PRIMLTC_MR(JL)
-  PB_TH(JL) = PB_TH(JL) - PRIMLTC_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
+
 IF (LHOOK) CALL DR_HOOK('ICE4_RIMLTC', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_RIMLTC
+END MODULE MODE_ICE4_RIMLTC
diff --git a/src/arome/micro/ice4_rrhong.F90 b/src/common/micro/mode_ice4_rrhong.F90
similarity index 77%
rename from src/arome/micro/ice4_rrhong.F90
rename to src/common/micro/mode_ice4_rrhong.F90
index 35364711d..942e4e328 100644
--- a/src/arome/micro/ice4_rrhong.F90
+++ b/src/common/micro/mode_ice4_rrhong.F90
@@ -1,8 +1,16 @@
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!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.
+!-----------------------------------------------------------------
+MODULE MODE_ICE4_RRHONG
+IMPLICIT NONE
+CONTAINS
 SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
                        &PEXN, PLVFACT, PLSFACT, &
                        &PT,   PRRT, &
                        &PTHT, &
-                       &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
+                       &PRRHONG_MR)
 !!
 !!**  PURPOSE
 !!    -------
@@ -20,10 +28,9 @@ SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
-USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
+USE MODD_CST,            ONLY: XTT
+USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN
+USE MODD_PARAM_ICE,      ONLY: LFEEDBACKT
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -40,10 +47,7 @@ REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
+REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
 !
 !*       0.2  declaration of local variables
 !
@@ -71,12 +75,8 @@ IF(.NOT. LDSOFT) THEN
     ENDDO
   ENDIF
 ENDIF
-DO JL=1, KSIZE
-  PB_RG(JL) = PB_RG(JL) + PRRHONG_MR(JL)
-  PB_RR(JL) = PB_RR(JL) - PRRHONG_MR(JL)
-  PB_TH(JL) = PB_TH(JL) + PRRHONG_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_RRHONG', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_RRHONG
+END MODULE MODE_ICE4_RRHONG
diff --git a/src/mesonh/micro/ice4_rimltc.f90 b/src/mesonh/micro/ice4_rimltc.f90
deleted file mode 100644
index fc4e12986..000000000
--- a/src/mesonh/micro/ice4_rimltc.f90
+++ /dev/null
@@ -1,105 +0,0 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
-!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.
-!-----------------------------------------------------------------
-MODULE MODI_ICE4_RIMLTC
-INTERFACE
-SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT, &
-                       &PTHT, PRIT, &
-                       &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
-IMPLICIT NONE
-INTEGER, INTENT(IN) :: KSIZE
-LOGICAL,                  INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Cloud ice at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
-END SUBROUTINE ICE4_RIMLTC
-END INTERFACE
-END MODULE MODI_ICE4_RIMLTC
-SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT, &
-                       &PTHT, PRIT, &
-                       &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the RIMLTC process
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the splitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST,       ONLY: XTT
-USE MODD_PARAM_ICE, ONLY: LFEEDBACKT
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER,                      INTENT(IN)    :: KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Cloud ice at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZMASK
-INTEGER :: JL
-!
-!-------------------------------------------------------------------------------
-!
-!*       7.1    cloud ice melting
-!
-PRIMLTC_MR(:)=0.
-IF(.NOT. LDSOFT) THEN
-  DO JL=1, KSIZE
-    ZMASK(JL)=MAX(0., -SIGN(1., -PRIT(JL))) * & ! PRIT(:)>0.
-             &MAX(0., -SIGN(1., XTT-PT(JL))) * & ! PT(:)>XTT
-             &PCOMPUTE(JL)
-    PRIMLTC_MR(JL)=PRIT(JL) * ZMASK(JL)
-  ENDDO
-
-  IF(LFEEDBACKT) THEN
-    !Limitation due to 0 crossing of temperature
-    DO JL=1, KSIZE
-      PRIMLTC_MR(JL)=MIN(PRIMLTC_MR(JL), MAX(0., (PTHT(JL)-XTT/PEXN(JL)) / (PLSFACT(JL)-PLVFACT(JL))))
-    ENDDO
-  ENDIF
-ENDIF
-DO JL=1, KSIZE
-  PB_RC(JL) = PB_RC(JL) + PRIMLTC_MR(JL)
-  PB_RI(JL) = PB_RI(JL) - PRIMLTC_MR(JL)
-  PB_TH(JL) = PB_TH(JL) - PRIMLTC_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!
-END SUBROUTINE ICE4_RIMLTC
diff --git a/src/mesonh/micro/ice4_rrhong.f90 b/src/mesonh/micro/ice4_rrhong.f90
deleted file mode 100644
index da2648947..000000000
--- a/src/mesonh/micro/ice4_rrhong.f90
+++ /dev/null
@@ -1,105 +0,0 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
-!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.
-!-----------------------------------------------------------------
-MODULE MODI_ICE4_RRHONG
-INTERFACE
-SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT,   PRRT, &
-                       &PTHT, &
-                       &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
-IMPLICIT NONE
-INTEGER, INTENT(IN) :: KSIZE
-LOGICAL,                  INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-END SUBROUTINE ICE4_RRHONG
-END INTERFACE
-END MODULE MODI_ICE4_RRHONG
-SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT,   PRRT, &
-                       &PTHT, &
-                       &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the RRHONG process
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the splitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST,            ONLY: XTT
-USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN
-USE MODD_PARAM_ICE,      ONLY: LFEEDBACKT
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER, INTENT(IN) :: KSIZE
-LOGICAL,                  INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZMASK
-INTEGER :: JL
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.3     compute the spontaneous freezing source: RRHONG
-!
-PRRHONG_MR(:) = 0.
-IF(.NOT. LDSOFT) THEN
-  DO JL=1, KSIZE
-    ZMASK(JL)=MAX(0., -SIGN(1., PT(JL)-(XTT-35.0))) * & ! PT(:)<XTT-35.0
-             &MAX(0., -SIGN(1., XRTMIN(3)-PRRT(JL))) * & ! PRRT(:)>XRTMIN(3)
-             &PCOMPUTE(JL)
-    PRRHONG_MR(JL)=PRRT(JL) * ZMASK(JL)
-  ENDDO
-  IF(LFEEDBACKT) THEN
-    !Limitation due to -35 crossing of temperature
-    DO JL=1, KSIZE
-      PRRHONG_MR(JL)=MIN(PRRHONG_MR(JL), MAX(0., ((XTT-35.)/PEXN(JL)-PTHT(JL))/(PLSFACT(JL)-PLVFACT(JL))))
-    ENDDO
-  ENDIF
-ENDIF
-DO JL=1, KSIZE
-  PB_RG(JL) = PB_RG(JL) + PRRHONG_MR(JL)
-  PB_RR(JL) = PB_RR(JL) - PRRHONG_MR(JL)
-  PB_TH(JL) = PB_TH(JL) + PRRHONG_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!
-END SUBROUTINE ICE4_RRHONG
-- 
GitLab