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