diff --git a/src/arome/aux/mode_fill_dimphyexn.F90 b/src/arome/aux/mode_fill_dimphyexn.F90 index daa5cf480bd1fc539e23f122d468cc157474df1d..433d98a0b3ea7bc00e75b1874c119619074ed546 100644 --- a/src/arome/aux/mode_fill_dimphyexn.F90 +++ b/src/arome/aux/mode_fill_dimphyexn.F90 @@ -73,10 +73,10 @@ YDDIMPHYEX%NKE=1+KVEXT YDDIMPHYEX%NKTB=1+KVEXT YDDIMPHYEX%NKTE=KKT-KVEXT ! -YDDIMPHYEX%NIBC=YDDIMPHYEX%NIB -YDDIMPHYEX%NJBC=YDDIMPHYEX%NJB -YDDIMPHYEX%NIEC=YDDIMPHYEX%NIE -YDDIMPHYEX%NJEC=YDDIMPHYEX%NJE +YDDIMPHYEX%NIBC=1 +YDDIMPHYEX%NJBC=1 +YDDIMPHYEX%NIEC=KIE +YDDIMPHYEX%NJEC=KJT ! IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 1, ZHOOK_HANDLE) ! diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90 index 5b5d44e760ac73e94c63670fe1c7ff50d0340a0e..ce4bc8008e9f296730531b7b3c9112cf272482f4 100644 --- a/src/common/turb/mode_tke_eps_sources.F90 +++ b/src/common/turb/mode_tke_eps_sources.F90 @@ -221,7 +221,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: & LOGICAL,DIMENSION(D%NIT,D%NJT,D%NKT) :: GTKENEG ! 3D mask .T. if TKE < CSTURB%XTKEMIN -INTEGER :: IIE,IIB,IJE,IJB,IKB,IKE ! Index value for the mass points of the domain +INTEGER :: IIE,IIB,IJE,IJB,IKB,IKE,IKTB,IKTE ! Index value for the mass points of the domain ! TYPE(LIST_ll), POINTER :: TZFIELDDISS_ll ! list of fields to exchange INTEGER :: IINFO_ll ! return code of parallel routine @@ -237,6 +237,8 @@ NULLIFY(TZFIELDDISS_ll) ! IF (LHOOK) CALL DR_HOOK('TKE_EPS_SOURCES',0,ZHOOK_HANDLE) ! +IKTB=D%NKTB +IKTE=D%NKTE IKB=D%NKB IKE=D%NKE IIE=D%NIEC @@ -245,9 +247,9 @@ IJE=D%NJEC IJB=D%NJBC ! ! compute the effective diffusion coefficient at the mass point -!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) -ZKEFF(IIB:IIE,IJB:IJE,IKB:IKE) = PLM(IIB:IIE,IJB:IJE,IKB:IKE) * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKB:IKE)) -!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +ZKEFF(IIB:IIE,IJB:IJE,IKTB:IKTE) = PLM(IIB:IIE,IJB:IJE,IKTB:IKTE) * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE)) +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! !---------------------------------------------------------------------------- ! @@ -260,9 +262,9 @@ ZKEFF(IIB:IIE,IJB:IJE,IKB:IKE) = PLM(IIB:IIE,IJB:IJE,IKB:IKE) * SQRT(PTKEM(IIB:I ! Complete the sources of TKE with the horizontal turbulent explicit transport ! IF (HTURBDIM=='3DIM') THEN - ZTR(IIB:IIE,IJB:IJE,IKB:IKE)=PTRH(IIB:IIE,IJB:IJE,IKB:IKE) + ZTR(IIB:IIE,IJB:IJE,IKTB:IKTE)=PTRH(IIB:IIE,IJB:IJE,IKTB:IKTE) ELSE - ZTR(IIB:IIE,IJB:IJE,IKB:IKE)=0. + ZTR(IIB:IIE,IJB:IJE,IKTB:IKTE)=0. END IF ! ! @@ -281,11 +283,11 @@ PDP(IIB:IIE,IJB:IJE,IKB) = PDP(IIB:IIE,IJB:IJE,IKB) * (1. + PDZZ(IIB:IIE,IJB:IJE CALL MZM_PHY(D,ZKEFF,ZMWORK1) CALL MZM_PHY(D,PRHODJ,ZMWORK2) ! -!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) -ZFLX(IIB:IIE,IJB:IJE,IKB:IKE) = CSTURB%XCED * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKB:IKE)) / PLEPS(IIB:IIE,IJB:IJE,IKB:IKE) -ZSOURCE(IIB:IIE,IJB:IJE,IKB:IKE) = ( PRTKES(IIB:IIE,IJB:IJE,IKB:IKE) + PRTKEMS(IIB:IIE,IJB:IJE,IKB:IKE) ) / PRHODJ(IIB:IIE,IJB:IJE,IKB:IKE) & - - PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) / PTSTEP & - + PDP(IIB:IIE,IJB:IJE,IKB:IKE) + PTP(IIB:IIE,IJB:IJE,IKB:IKE) + ZTR(IIB:IIE,IJB:IJE,IKB:IKE) - PEXPL * ZFLX(IIB:IIE,IJB:IJE,IKB:IKE) * PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE) = CSTURB%XCED * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE)) / PLEPS(IIB:IIE,IJB:IJE,IKTB:IKTE) +ZSOURCE(IIB:IIE,IJB:IJE,IKTB:IKTE) = ( PRTKES(IIB:IIE,IJB:IJE,IKTB:IKTE) + PRTKEMS(IIB:IIE,IJB:IJE,IKTB:IKTE) ) / PRHODJ(IIB:IIE,IJB:IJE,IKTB:IKTE) & + - PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) / PTSTEP & + + PDP(IIB:IIE,IJB:IJE,IKTB:IKTE) + PTP(IIB:IIE,IJB:IJE,IKTB:IKTE) + ZTR(IIB:IIE,IJB:IJE,IKTB:IKTE) - PEXPL * ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE) * PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) ! !* 2.2 implicit vertical TKE transport ! @@ -293,8 +295,8 @@ ZSOURCE(IIB:IIE,IJB:IJE,IKB:IKE) = ( PRTKES(IIB:IIE,IJB:IJE,IKB:IKE) + PRTKEMS( ! Compute the vector giving the elements just under the diagonal for the ! matrix inverted in TRIDIAG ! -ZA(IIB:IIE,IJB:IJE,IKB:IKE) = - PTSTEP * CSTURB%XCET * ZMWORK1(IIB:IIE,IJB:IJE,IKB:IKE) * ZMWORK2(IIB:IIE,IJB:IJE,IKB:IKE) / PDZZ(IIB:IIE,IJB:IJE,IKB:IKE)**2 -!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) +ZA(IIB:IIE,IJB:IJE,IKTB:IKTE) = - PTSTEP * CSTURB%XCET * ZMWORK1(IIB:IIE,IJB:IJE,IKTB:IKTE) * ZMWORK2(IIB:IIE,IJB:IJE,IKTB:IKTE) / PDZZ(IIB:IIE,IJB:IJE,IKTB:IKTE)**2 +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! ! Compute TKE at time t+deltat: ( stored in ZRES ) ! @@ -304,10 +306,10 @@ CALL GET_HALO(ZRES) !* diagnose the dissipation ! IF (LDIAG_IN_RUN) THEN - !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) - XCURRENT_TKE_DISS(IIB:IIE,IJB:IJE,IKB:IKE) = ZFLX(IIB:IIE,IJB:IJE,IKB:IKE) * PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) & - *(PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKB:IKE)) - !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + XCURRENT_TKE_DISS(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE) * PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) & + *(PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE)) + !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! CALL ADD3DFIELD_ll( TZFIELDDISS_ll, XCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::XCURRENT_TKE_DISS' ) CALL UPDATE_HALO_ll(TZFIELDDISS_ll,IINFO_ll) @@ -317,17 +319,17 @@ ENDIF ! TKE must be greater than its minimum value ! CL : Now done at the end of the time step in ADVECTION_METSV for MesoNH IF(HPROGRAM/='MESONH') THEN - !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) - GTKENEG(IIB:IIE,IJB:IJE,IKB:IKE) = ZRES(IIB:IIE,IJB:IJE,IKB:IKE) <= CSTURB%XTKEMIN - WHERE ( GTKENEG(IIB:IIE,IJB:IJE,IKB:IKE) ) - ZRES(IIB:IIE,IJB:IJE,IKB:IKE) = CSTURB%XTKEMIN + !$mnh_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + GTKENEG(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE) <= CSTURB%XTKEMIN + WHERE ( GTKENEG(IIB:IIE,IJB:IJE,IKTB:IKTE) ) + ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE) = CSTURB%XTKEMIN END WHERE - !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + !$mnh_end_expand_where(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) END IF ! -!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) -PTDISS(IIB:IIE,IJB:IJE,IKB:IKE) = - ZFLX(IIB:IIE,IJB:IJE,IKB:IKE)*(PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKB:IKE)) -!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +PTDISS(IIB:IIE,IJB:IJE,IKTB:IKTE) = - ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE)*(PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE)) +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! IF ( OLES_CALL .OR. & (OTURB_DIAG .AND. TPFILE%LOPENED) ) THEN @@ -336,9 +338,9 @@ IF ( OLES_CALL .OR. & ! ZMWORK1 = MZM(ZKEFF, D%NKA, D%NKU, D%NKL) ZDWORK1 = DZM(PIMPL * ZRES + PEXPL * PTKEM, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) - ZFLX(IIB:IIE,IJB:IJE,IKB:IKE) = - CSTURB%XCET * ZMWORK1(IIB:IIE,IJB:IJE,IKB:IKE) * ZDWORK1(IIB:IIE,IJB:IJE,IKB:IKE) / PDZZ(IIB:IIE,IJB:IJE,IKB:IKE) - !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + ZFLX(IIB:IIE,IJB:IJE,IKTB:IKTE) = - CSTURB%XCET * ZMWORK1(IIB:IIE,IJB:IJE,IKTB:IKTE) * ZDWORK1(IIB:IIE,IJB:IJE,IKTB:IKTE) / PDZZ(IIB:IIE,IJB:IJE,IKTB:IKTE) + !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! ZFLX(:,:,IKB) = 0. ZFLX(:,:,D%NKA) = 0. @@ -346,9 +348,9 @@ IF ( OLES_CALL .OR. & ! Compute the whole turbulent TRansport of TKE: ! ZDWORK1 = DZF(MZM(PRHODJ, D%NKA, D%NKU, D%NKL) * ZFLX / PDZZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) - ZTR(IIB:IIE,IJB:IJE,IKB:IKE)= ZTR(IIB:IIE,IJB:IJE,IKB:IKE) - ZDWORK1(IIB:IIE,IJB:IJE,IKB:IKE) /PRHODJ(IIB:IIE,IJB:IJE,IKB:IKE) - !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + ZTR(IIB:IIE,IJB:IJE,IKTB:IKTE)= ZTR(IIB:IIE,IJB:IJE,IKTB:IKTE) - ZDWORK1(IIB:IIE,IJB:IJE,IKTB:IKTE) /PRHODJ(IIB:IIE,IJB:IJE,IKTB:IKTE) + !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! ! Storage in the LES configuration ! @@ -376,20 +378,20 @@ END IF !Store the previous source terms in prtkes before initializing the next one !Should be in IF LBUDGET_TKE only. Was removed out for a correct comput. of PTDIFF in case of LBUDGET_TKE=F in AROME -!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) -PRTKES(IIB:IIE,IJB:IJE,IKB:IKE) = PRTKES(IIB:IIE,IJB:IJE,IKB:IKE) + PRHODJ(IIB:IIE,IJB:IJE,IKB:IKE) * & - ( PDP(IIB:IIE,IJB:IJE,IKB:IKE) + PTP(IIB:IIE,IJB:IJE,IKB:IKE) & - - CSTURB%XCED * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKB:IKE)) / PLEPS(IIB:IIE,IJB:IJE,IKB:IKE) * ( PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKB:IKE) ) ) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +PRTKES(IIB:IIE,IJB:IJE,IKTB:IKTE) = PRTKES(IIB:IIE,IJB:IJE,IKTB:IKTE) + PRHODJ(IIB:IIE,IJB:IJE,IKTB:IKTE) * & + ( PDP(IIB:IIE,IJB:IJE,IKTB:IKTE) + PTP(IIB:IIE,IJB:IJE,IKTB:IKTE) & + - CSTURB%XCED * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE)) / PLEPS(IIB:IIE,IJB:IJE,IKTB:IKTE) * ( PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE) ) ) ! -PTDIFF(IIB:IIE,IJB:IJE,IKB:IKE) = ZRES(IIB:IIE,IJB:IJE,IKB:IKE) / PTSTEP - PRTKES(IIB:IIE,IJB:IJE,IKB:IKE)/PRHODJ(IIB:IIE,IJB:IJE,IKB:IKE) & - & - PDP(IIB:IIE,IJB:IJE,IKB:IKE)- PTP(IIB:IIE,IJB:IJE,IKB:IKE) - PTDISS(IIB:IIE,IJB:IJE,IKB:IKE) -!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) +PTDIFF(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE) / PTSTEP - PRTKES(IIB:IIE,IJB:IJE,IKTB:IKTE)/PRHODJ(IIB:IIE,IJB:IJE,IKTB:IKTE) & + & - PDP(IIB:IIE,IJB:IJE,IKTB:IKTE)- PTP(IIB:IIE,IJB:IJE,IKTB:IKTE) - PTDISS(IIB:IIE,IJB:IJE,IKTB:IKTE) +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_TKE), 'TR', PRTKES(:, :, :) ) ! -!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) -PRTKES(IIB:IIE,IJB:IJE,IKB:IKE) = ZRES(IIB:IIE,IJB:IJE,IKB:IKE) * PRHODJ(IIB:IIE,IJB:IJE,IKB:IKE) / PTSTEP - PRTKEMS(IIB:IIE,IJB:IJE,IKB:IKE) -!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +PRTKES(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE) * PRHODJ(IIB:IIE,IJB:IJE,IKTB:IKTE) / PTSTEP - PRTKEMS(IIB:IIE,IJB:IJE,IKTB:IKTE) +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) ! ! stores the whole turbulent transport ! @@ -400,10 +402,10 @@ IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_END( TBUDGETS(NBUDGET_TKE), 'TR', PRTK !* 3. COMPUTE THE DISSIPATIVE HEATING ! ------------------------------- ! -!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) -PRTHLS(IIB:IIE,IJB:IJE,IKB:IKE) = PRTHLS(IIB:IIE,IJB:IJE,IKB:IKE) + CSTURB%XCED * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKB:IKE)) / PLEPS(IIB:IIE,IJB:IJE,IKB:IKE) * & - (PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKB:IKE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKB:IKE)) * PRHODJ(IIB:IIE,IJB:IJE,IKB:IKE) * PCOEF_DISS(IIB:IIE,IJB:IJE,IKB:IKE) -!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +PRTHLS(IIB:IIE,IJB:IJE,IKTB:IKTE) = PRTHLS(IIB:IIE,IJB:IJE,IKTB:IKTE) + CSTURB%XCED * SQRT(PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE)) / PLEPS(IIB:IIE,IJB:IJE,IKTB:IKTE) * & + (PEXPL*PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE) + PIMPL*ZRES(IIB:IIE,IJB:IJE,IKTB:IKTE)) * PRHODJ(IIB:IIE,IJB:IJE,IKTB:IKTE) * PCOEF_DISS(IIB:IIE,IJB:IJE,IKTB:IKTE) +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) !---------------------------------------------------------------------------- ! !* 4. STORES SOME DIAGNOSTICS @@ -411,15 +413,15 @@ PRTHLS(IIB:IIE,IJB:IJE,IKB:IKE) = PRTHLS(IIB:IIE,IJB:IJE,IKB:IKE) + CSTURB%XCED ! IF(PRESENT(PTR)) PTR=ZTR IF(PRESENT(PDISS)) THEN - !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) - PDISS(IIB:IIE,IJB:IJE,IKB:IKE) = -CSTURB%XCED * (PTKEM(IIB:IIE,IJB:IJE,IKB:IKE)**1.5) / PLEPS(IIB:IIE,IJB:IJE,IKB:IKE) - !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + PDISS(IIB:IIE,IJB:IJE,IKTB:IKTE) = -CSTURB%XCED * (PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE)**1.5) / PLEPS(IIB:IIE,IJB:IJE,IKTB:IKTE) + !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) END IF ! IF(PRESENT(PEDR)) THEN - !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) - PEDR(IIB:IIE,IJB:IJE,IKB:IKE) = CSTURB%XCED * (PTKEM(IIB:IIE,IJB:IJE,IKB:IKE)**1.5) / PLEPS(IIB:IIE,IJB:IJE,IKB:IKE) - !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + PEDR(IIB:IIE,IJB:IJE,IKTB:IKTE) = CSTURB%XCED * (PTKEM(IIB:IIE,IJB:IJE,IKTB:IKTE)**1.5) / PLEPS(IIB:IIE,IJB:IJE,IKTB:IKTE) + !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) END IF ! IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90 index b9e96fd9c6a8d019be67a908768e62614bd9af21..f77268ba63c8e80989725272601f56bd000d0713 100644 --- a/src/common/turb/turb.F90 +++ b/src/common/turb/turb.F90 @@ -1078,15 +1078,15 @@ END IF ! 6.1 Contribution of mass-flux in the TKE buoyancy production if ! cloud computation is not statistical ZWORK1 = MZF(PFLXZTHVMF,D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) -PTP(IIB:IIE,IJB:IJE,IKB:IKE) = PTP(IIB:IIE,IJB:IJE,IKB:IKE) + CST%XG / PTHVREF(IIB:IIE,IJB:IJE,IKB:IKE) * ZWORK1(IIB:IIE,IJB:IJE,IKB:IKE) -!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) +!$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) +PTP(IIB:IIE,IJB:IJE,IKTB:IKTE) = PTP(IIB:IIE,IJB:IJE,IKTB:IKTE) + CST%XG / PTHVREF(IIB:IIE,IJB:IJE,IKTB:IKTE) * ZWORK1(IIB:IIE,IJB:IJE,IKTB:IKTE) +!$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) IF(PRESENT(PTPMF)) THEN ZWORK1 = MZF(PFLXZTHVMF, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) - PTPMF(IIB:IIE,IJB:IJE,IKB:IKE)=CST%XG / PTHVREF(IIB:IIE,IJB:IJE,IKB:IKE) * ZWORK1(IIB:IIE,IJB:IJE,IKB:IKE) - !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) + PTPMF(IIB:IIE,IJB:IJE,IKTB:IKTE)=CST%XG / PTHVREF(IIB:IIE,IJB:IJE,IKTB:IKTE) * ZWORK1(IIB:IIE,IJB:IJE,IKTB:IKTE) + !$mnh_end_expand_array(JI=IIB:IIE,JJ=IJB:IJE,JK=IKTB:IKTE) END IF ! 6.2 TKE evolution equation @@ -1288,7 +1288,7 @@ IF (OLES_CALL) THEN XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1 END IF ! -IF(PRESENT(PLEM)) PLEM(IIB:IIE,IJB:IJE,IKB:IKE) = ZLM(IIB:IIE,IJB:IJE,IKB:IKE) +IF(PRESENT(PLEM)) PLEM(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZLM(IIB:IIE,IJB:IJE,IKTB:IKTE) !---------------------------------------------------------------------------- ! IF (LHOOK) CALL DR_HOOK('TURB',1,ZHOOK_HANDLE)