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

---
 src/arome/gmkpack_ignored_files               |   2 +
 src/arome/micro/ice4_rainfr_vert.F90          |  58 -----
 src/arome/micro/ice4_slow.F90                 | 216 ------------------
 src/arome/micro/ice4_tendencies.F90           |  10 +-
 .../mpa/micro/internals/ice4_tendencies.F90   |  26 +++
 .../micro/mode_ice4_rainfr_vert.F90}          |  20 +-
 6 files changed, 43 insertions(+), 289 deletions(-)
 delete mode 100644 src/arome/micro/ice4_rainfr_vert.F90
 delete mode 100644 src/arome/micro/ice4_slow.F90
 rename src/{mesonh/micro/ice4_rainfr_vert.f90 => common/micro/mode_ice4_rainfr_vert.F90} (78%)

diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index b571f0bec..fbb525c78 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -36,3 +36,5 @@ phyex/micro/modi_ice4_fast_rs.F90
 phyex/micro/modi_ice4_slow.F90
 phyex/micro/ice4_tendencies.F90
 phyex/micro/modi_ice4_tendencies.F90
+phyex/micro/modi_ice4_rainfr_vert.F90
+phyex/micro/ice4_rainfr_vert.F90
diff --git a/src/arome/micro/ice4_rainfr_vert.F90 b/src/arome/micro/ice4_rainfr_vert.F90
deleted file mode 100644
index 6d90d5ccc..000000000
--- a/src/arome/micro/ice4_rainfr_vert.F90
+++ /dev/null
@@ -1,58 +0,0 @@
-SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the rain fraction
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the plitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER,                      INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(OUT)    :: PPRFR !Precipitation fraction
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRR !Rain field
-!
-!*       0.2  declaration of local variables
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-INTEGER :: JI, JJ, JK
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',0,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-DO JI = KIB,KIE
-   DO JJ = KJB, KJE
-      PPRFR(JI,JJ,KKE)=0.
-      DO JK=KKE-KKL, KKB, -KKL
-         IF (PRR(JI,JJ,JK) .GT. XRTMIN(3)) THEN
-            PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+KKL))
-            IF (PPRFR(JI,JJ,JK)==0) THEN
-               PPRFR(JI,JJ,JK)=1.
-            END IF
-         ELSE
-            PPRFR(JI,JJ,JK)=0.
-         END IF
-      END DO
-   END DO
-END DO
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_RAINFR_VERT
diff --git a/src/arome/micro/ice4_slow.F90 b/src/arome/micro/ice4_slow.F90
deleted file mode 100644
index 875971e4e..000000000
--- a/src/arome/micro/ice4_slow.F90
+++ /dev/null
@@ -1,216 +0,0 @@
-SUBROUTINE ICE4_SLOW(KSIZE, LDSOFT, PCOMPUTE, PRHODREF, PT, &
-                     &PSSI, PLVFACT, PLSFACT, &
-                     &PRVT, PRCT, PRIT, PRST, PRGT, &
-                     &PLBDAS, PLBDAG, &
-                     &PAI, PCJ, &
-                     &PRCHONI, PRVDEPS, PRIAGGS, PRIAUTS, PRVDEPG, &
-                     &PA_TH, PA_RV, PA_RC, PA_RI, PA_RS, PA_RG)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the slow process
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the splitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-!
-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)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PSSI     ! Supersaturation over ice
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Pristine ice m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRST     ! Snow/aggregate m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGT     ! Graupel/hail m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAS   ! Slope parameter of the aggregate distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAG   ! Slope parameter of the graupel   distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PAI      ! Thermodynamical function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCHONI  ! Homogeneous nucleation
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRVDEPS  ! Deposition on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIAGGS  ! Aggregation on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIAUTS  ! Autoconversion of r_i for r_s production
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRVDEPG  ! Deposition on r_g
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RV
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZCRIAUTI
-REAL            :: ZTIMAUTIC
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-REAL, DIMENSION(KSIZE) :: ZMASK
-INTEGER :: JL
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 0, ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-!
-!*       3.2     compute the homogeneous nucleation source: RCHONI
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., PT(JL)-(XTT-35.0))) * & ! PT(:)<XTT-35.0
-           &MAX(0., -SIGN(1., XRTMIN(2)-PRCT(JL))) * & ! PRCT(:)>XRTMIN(2)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRCHONI(JL) = PRCHONI(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRCHONI(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    PRCHONI(:) = XHON*PRHODREF(:)*PRCT(:)       &
-                                 *EXP( XALPHA3*(PT(:)-XTT)-XBETA3 )
-  ENDWHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RI(JL) = PA_RI(JL) + PRCHONI(JL)
-  PA_RC(JL) = PA_RC(JL) - PRCHONI(JL)
-  PA_TH(JL) = PA_TH(JL) + PRCHONI(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!*       3.4    compute the deposition, aggregation and autoconversion sources
-!
-!
-!*       3.4.2  compute the riming-conversion of r_c for r_i production: RCAUTI
-!
-!  ZZW(:) = 0.0
-!  ZTIMAUTIC = SQRT( XTIMAUTI*XTIMAUTC )
-!  WHERE ( (PRCT(:)>0.0) .AND. (PRIT(:)>0.0) .AND. (PRCS(:)>0.0) )
-!    ZZW(:) = MIN( PRCS(:),ZTIMAUTIC * MAX( SQRT( PRIT(:)*PRCT(:) ),0.0 ) )
-!    PRIS(:) = PRIS(:) + ZZW(:)
-!    PRCS(:) = PRCS(:) - ZZW(:)
-!    PTHS(:) = PTHS(:) + ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCAUTI))
-!  END WHERE
-!
-!*       3.4.3  compute the deposition on r_s: RVDEPS
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(1)-PRVT(JL))) * & !PRVT(:)>XRTMIN(1)
-           &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & !PRST(:)>XRTMIN(5)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRVDEPS(JL)=PRVDEPS(JL)*ZMASK(JL)
-  ENDDO
-ELSE
-  PRVDEPS(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    PRVDEPS(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) *                               &
-                 ( X0DEPS*PLBDAS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RS(JL) = PA_RS(JL) + PRVDEPS(JL)
-  PA_RV(JL) = PA_RV(JL) - PRVDEPS(JL)
-  PA_TH(JL) = PA_TH(JL) + PRVDEPS(JL)*PLSFACT(JL)
-ENDDO
-!
-!*       3.4.4  compute the aggregation on r_s: RIAGGS
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! PRIT(:)>XRTMIN(4)
-           &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & ! PRST(:)>XRTMIN(5)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRIAGGS(JL)=PRIAGGS(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRIAGGS(:) = 0.
-  WHERE(ZMASK(:)==1)
-    PRIAGGS(:) = XFIAGGS * EXP( XCOLEXIS*(PT(:)-XTT) ) &
-                         * PRIT(:)                      &
-                         * PLBDAS(:)**XEXIAGGS          &
-                         * PRHODREF(:)**(-XCEXVT)
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RS(JL) = PA_RS(JL) + PRIAGGS(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIAGGS(JL)
-ENDDO
-!
-!*       3.4.5  compute the autoconversion of r_i for r_s production: RIAUTS
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! PRIT(:)>XRTMIN(4)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRIAUTS(JL) = PRIAUTS(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRIAUTS(:) = 0.
-  !ZCRIAUTI(:)=MIN(XCRIAUTI,10**(0.06*(PT(:)-XTT)-3.5))
-  ZCRIAUTI(:)=MIN(XCRIAUTI,10**(XACRIAUTI*(PT(:)-XTT)+XBCRIAUTI))
-  WHERE(ZMASK(:)==1.)
-    PRIAUTS(:) = XTIMAUTI * EXP( XTEXAUTI*(PT(:)-XTT) ) &
-                          * MAX( PRIT(:)-ZCRIAUTI(:),0.0 )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RS(JL) = PA_RS(JL) + PRIAUTS(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIAUTS(JL)
-ENDDO
-!
-!*       3.4.6  compute the deposition on r_g: RVDEPG
-!
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(1)-PRVT(JL))) * & ! PRVT(:)>XRTMIN(1)
-           &MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! PRGT(:)>XRTMIN(6)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRVDEPG(JL) = PRVDEPG(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRVDEPG(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    PRVDEPG(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) *                               &
-                 ( X0DEPG*PLBDAG(:)**XEX0DEPG + X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RG(JL) = PA_RG(JL) + PRVDEPG(JL)
-  PA_RV(JL) = PA_RV(JL) - PRVDEPG(JL)
-  PA_TH(JL) = PA_TH(JL) + PRVDEPG(JL)*PLSFACT(JL)
-ENDDO
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 1, ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_SLOW
diff --git a/src/arome/micro/ice4_tendencies.F90 b/src/arome/micro/ice4_tendencies.F90
index 9da5eda7c..c3b5a5fbb 100644
--- a/src/arome/micro/ice4_tendencies.F90
+++ b/src/arome/micro/ice4_tendencies.F90
@@ -46,7 +46,7 @@ USE MODI_ICE4_RRHONG
 USE MODI_ICE4_RIMLTC
 USE MODE_ICE4_RSRIMCG_OLD, ONLY: ICE4_RSRIMCG_OLD
 USE MODE_ICE4_COMPUTE_PDF, ONLY: ICE4_COMPUTE_PDF
-USE MODI_ICE4_RAINFR_VERT
+USE MODE_ICE4_RAINFR_VERT, ONLY: ICE4_RAINFR_VERT
 USE MODE_ICE4_SLOW, ONLY: ICE4_SLOW
 USE MODE_ICE4_WARM, ONLY: ICE4_WARM
 USE MODE_ICE4_FAST_RS, ONLY: ICE4_FAST_RS
@@ -176,7 +176,7 @@ REAL, DIMENSION(KSIZE) :: ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
                         & ZRGSI, ZRGSI_MR
 REAL, DIMENSION(KSIZE) :: PHLI_HCF, PHLI_LCF, PHLI_HRI, PHLI_LRI
 CHARACTER(len=80) :: HSUBG_AUCV_RI='NONE'
-REAL, DIMENSION(KIT,KJT,KKT) :: ZRRT3D
+REAL, DIMENSION(KIT,KJT,KKT) :: ZRRT3D, ZRST3D, ZRGT3D, ZRHT3D
 INTEGER :: JL
 REAL, DIMENSION(KSIZE) :: ZWETG ! 1. if graupel growths in wet mode, 0. otherwise
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
@@ -304,7 +304,11 @@ IF(KSIZE>0) THEN
     !Diagnostic of precipitation fraction
     PRAINFR(:,:,:)=UNPACK(ZRF(:), MASK=LDMICRO(:,:,:), FIELD=PRAINFR(:,:,:))
     ZRRT3D(:,:,:)=PRRT3D(:,:,:)-UNPACK(PRRHONG_MR(:), MASK=LDMICRO(:,:,:), FIELD=0.)
-    CALL ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PRAINFR(:,:,:), ZRRT3D(:,:,:))
+    ZRST3D(:,:,:)=0. !need phasing
+    ZRGT3D(:,:,:)=0. !need phasing
+    IF (KRR==7) ZRHT3D(:,:,:)=0. !need phasing
+    CALL ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PRAINFR(:,:,:),
+                         &ZRRT3D(:,:,:), ZRST3D(:,:,:), ZRGT3D(:,:,:), ZRHT3D(:,:,:))
     DO JL=1,KSIZE
       ZRF(JL)=PRAINFR(K1(JL), K2(JL), K3(JL))
     END DO
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90 b/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90
index 74c5416ac..aeffaef19 100644
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90
+++ b/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90
@@ -81,6 +81,7 @@ REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PEXN
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PRHODREF
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PLVFACT
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PLSFACT
+
 INTEGER, DIMENSION(KPROMA),    INTENT(IN)    :: K1
 INTEGER, DIMENSION(KPROMA),    INTENT(IN)    :: K2
 INTEGER, DIMENSION(KPROMA),    INTENT(IN)    :: K3
@@ -90,6 +91,13 @@ REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PSIGMA_RC
 REAL, DIMENSION(KPROMA),       INTENT(INOUT) :: PCIT
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PT
 REAL, DIMENSION(KPROMA,0:KRR), INTENT(IN)    :: PVART
+
+
+
+
+
+
+
 REAL, DIMENSION(KIT,KJT,KKT),  INTENT(IN)    :: PRRT3D
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PRVHENI_MR
 REAL, DIMENSION(KPROMA),       INTENT(INOUT) :: PRRHONG_MR
@@ -143,7 +151,21 @@ REAL, DIMENSION(KPROMA, 8),    INTENT(INOUT) :: PRG_TEND
 REAL, DIMENSION(KPROMA, 10),   INTENT(INOUT) :: PRH_TEND
 REAL, DIMENSION(KPROMA),       INTENT(INOUT) :: PSSI
 REAL, DIMENSION(KPROMA,0:KRR), INTENT(OUT)   :: PA
+
+
+
+
+
+
+
 REAL, DIMENSION(KPROMA,0:KRR), INTENT(OUT)   :: PB
+
+
+
+
+
+
+
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PHLC_HCF
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PHLC_LCF
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PHLC_HRC
@@ -309,6 +331,10 @@ CALL ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_PR_PDF,&
                       PRHODREF, ZVART(:,IRC), PCF, PSIGMA_RC,&
                       PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, ZRAINFR)
 ! ZRAINFR is computed above, then overwritten below :-( .REK.
+
+
+j ai des doutes sur le codage de Ryad, normalement zrainfr sert à remplir prainfr qui remplit à son tour zrainfr
+
 LLRFR=HSUBG_RC_RR_ACCR=='PRFR'
 IF (LLRFR) THEN
   !Diagnostic of precipitation fraction
diff --git a/src/mesonh/micro/ice4_rainfr_vert.f90 b/src/common/micro/mode_ice4_rainfr_vert.F90
similarity index 78%
rename from src/mesonh/micro/ice4_rainfr_vert.f90
rename to src/common/micro/mode_ice4_rainfr_vert.F90
index 6e817fe76..bc2e72b3a 100644
--- a/src/mesonh/micro/ice4_rainfr_vert.f90
+++ b/src/common/micro/mode_ice4_rainfr_vert.F90
@@ -3,19 +3,9 @@
 !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_RAINFR_VERT
-INTERFACE
-SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR, PRS, PRG, PRH)
+MODULE MODE_ICE4_RAINFR_VERT
 IMPLICIT NONE
-INTEGER,                      INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PPRFR !Precipitation fraction
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRR !Rain field
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRS !Snow field
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRG !Graupel field
-REAL, DIMENSION(KIT,KJT,KKT), OPTIONAL,INTENT(IN)    :: PRH !Hail field
-END SUBROUTINE ICE4_RAINFR_VERT
-END INTERFACE
-END MODULE MODI_ICE4_RAINFR_VERT
+CONTAINS
 SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR, PRS, PRG, PRH)
 !!
 !!**  PURPOSE
@@ -35,6 +25,8 @@ SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PP
 !*      0. DECLARATIONS
 !          ------------
 !
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
 !
 IMPLICIT NONE
@@ -50,10 +42,12 @@ REAL, DIMENSION(KIT,KJT,KKT), OPTIONAL, INTENT(IN)    :: PRH !Hail field
 !
 !*       0.2  declaration of local variables
 !
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
 INTEGER :: JI, JJ, JK
 LOGICAL :: MASK
 !
 !-------------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',0,ZHOOK_HANDLE)
 !
 !-------------------------------------------------------------------------------
 DO JI = KIB,KIE
@@ -79,5 +73,7 @@ DO JI = KIB,KIE
    END DO
 END DO
 !
+IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',1,ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_RAINFR_VERT
+END MODULE MODE_ICE4_RAINFR_VERT
-- 
GitLab