From 1dfef6ddf90ce19a90d37e923a65ce99a0d2d458 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 15 Apr 2022 17:28:02 +0200 Subject: [PATCH] Revert "S. Riette 15/4/2022 Computation only on physical points" This reverts commit 566b9f7e51fc2e94eb22bb977319d2d50b0014c3. --- src/common/turb/mode_emoist.F90 | 12 +- src/common/turb/mode_etheta.F90 | 16 +- src/common/turb/mode_prandtl.F90 | 216 +++++++------- src/common/turb/mode_tke_eps_sources.F90 | 52 ++-- src/common/turb/mode_tridiag.F90 | 36 +-- src/common/turb/mode_tridiag_thermo.F90 | 48 +-- src/common/turb/mode_tridiag_tke.F90 | 36 +-- src/common/turb/mode_tridiag_wind.F90 | 36 +-- src/common/turb/mode_turb_ver.F90 | 16 +- src/common/turb/mode_turb_ver_dyn_flux.F90 | 132 ++++----- src/common/turb/mode_turb_ver_sv_corr.F90 | 20 +- src/common/turb/mode_turb_ver_sv_flux.F90 | 48 +-- src/common/turb/mode_turb_ver_thermo_corr.F90 | 160 +++++----- src/common/turb/mode_turb_ver_thermo_flux.F90 | 280 +++++++++--------- src/common/turb/turb.F90 | 100 +++---- 15 files changed, 604 insertions(+), 604 deletions(-) diff --git a/src/common/turb/mode_emoist.F90 b/src/common/turb/mode_emoist.F90 index c32213354..f8b2f1122 100644 --- a/src/common/turb/mode_emoist.F90 +++ b/src/common/turb/mode_emoist.F90 @@ -113,15 +113,15 @@ ELSE PEMOIST(:,:,:) = 0. ELSE IF ( KRR == 1 ) THEN ! only vapor ZDELTA = (CST%XRV/CST%XRD) - 1. - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PEMOIST(:,:,:) = ZDELTA*PTHLM(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ! liquid water & ice present ZDELTA = (CST%XRV/CST%XRD) - 1. ZRW(:,:,:) = PRM(:,:,:,1) ! IF ( KRRI>0) THEN ! rc and ri case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,3) DO JRR=5,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) @@ -144,9 +144,9 @@ ELSE PRM(:,:,:,2)+PRM(:,:,:,4)))& / (1. + ZRW(:,:,:)) & ) * PAMOIST(:,:,:) * 2. * PSRCM(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) DO JRR=3,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) ENDDO @@ -166,7 +166,7 @@ ELSE -(1.+ZDELTA) * (PTHLM(:,:,:) + PLOCPEXNM(:,:,:)*PRM(:,:,:,2)) & / (1. + ZRW(:,:,:)) & ) * PAMOIST(:,:,:) * 2. * PSRCM(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF ! diff --git a/src/common/turb/mode_etheta.F90 b/src/common/turb/mode_etheta.F90 index 1a9053618..9ccbab925 100644 --- a/src/common/turb/mode_etheta.F90 +++ b/src/common/turb/mode_etheta.F90 @@ -108,20 +108,20 @@ IF (OOCEAN) THEN ! ocean case PETHETA(:,:,:) = 1. ELSE IF ( KRR == 0) THEN ! dry case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PETHETA(:,:,:) = 1. - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE IF ( KRR == 1 ) THEN ! only vapor ZDELTA = (CST%XRV/CST%XRD) - 1. - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PETHETA(:,:,:) = 1. + ZDELTA*PRM(:,:,:,1) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ! liquid water & ice present ZDELTA = (CST%XRV/CST%XRD) - 1. ZRW(:,:,:) = PRM(:,:,:,1) ! IF ( KRRI>0 ) THEN ! rc and ri case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,3) DO JRR=5,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) @@ -141,9 +141,9 @@ ELSE PRM(:,:,:,2)+PRM(:,:,:,4)))& / (1. + ZRW(:,:,:)) & ) * PATHETA(:,:,:) * 2. * PSRCM(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) DO JRR=3,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) ENDDO @@ -161,7 +161,7 @@ ELSE -(1.+ZDELTA) * (PTHLM(:,:,:) + PLOCPEXNM(:,:,:)*PRM(:,:,:,2)) & / (1. + ZRW(:,:,:)) & ) * PATHETA(:,:,:) * 2. * PSRCM(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF ! diff --git a/src/common/turb/mode_prandtl.F90 b/src/common/turb/mode_prandtl.F90 index 475db4f83..2ba414d71 100644 --- a/src/common/turb/mode_prandtl.F90 +++ b/src/common/turb/mode_prandtl.F90 @@ -253,10 +253,10 @@ IKE = D%NKE ! PETHETA(:,:,:) = MZM(ETHETA(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,OOCEAN,OCOMPUTE_SRC), D%NKA, D%NKU, D%NKL) PEMOIST(:,:,:) = MZM(EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PETHETA(:,:,D%NKA) = 2.*PETHETA(:,:,IKB) - PETHETA(:,:,IKB+D%NKL) PEMOIST(:,:,D%NKA) = 2.*PEMOIST(:,:,IKB) - PEMOIST(:,:,IKB+D%NKL) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! !--------------------------------------------------------------------------- IF (.NOT. OHARAT) THEN @@ -267,15 +267,15 @@ PBLL_O_E(:,:,:) = MZM(CST%XG / PTHVREF(:,:,:) * PLM(:,:,:) * PLEPS(:,:,:) / PTKE ZWORK1 = GZ_M_W(D%NKA, D%NKU, D%NKL,PTHLM,PDZZ) IF (KRR /= 0) THEN ! moist case ZWORK2 = GZ_M_W(D%NKA, D%NKU, D%NKL,PRM(:,:,:,1),PDZZ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PREDTH1(:,:,:)= CSTURB%XCTV*PBLL_O_E(:,:,:) * PETHETA(:,:,:) * ZWORK1(:,:,:) PREDR1(:,:,:) = CSTURB%XCTV*PBLL_O_E(:,:,:) * PEMOIST(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ! dry case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PREDTH1(:,:,:)= CSTURB%XCTV*PBLL_O_E(:,:,:) * ZWORK1(:,:,:) PREDR1(:,:,:) = 0. - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! 3. Limits on 1D Redelperger numbers @@ -340,9 +340,9 @@ ENDDO ! For the scalar variables DO JSV=1,KSV ZWORK1 = GZ_M_W(D%NKA, D%NKU, D%NKL,PSVM(:,:,:,JSV),PDZZ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PREDS1(:,:,:,JSV)=CSTURB%XCTV*PBLL_O_E(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END DO ! DO JSV=1,KSV @@ -368,13 +368,13 @@ ENDDO IF(HTURBDIM=='1DIM') THEN ! 1D case ! ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 ! PRED2R3(:,:,:) = PREDR1(:,:,:) **2 ! PRED2THR3(:,:,:) = PREDTH1(:,:,:) * PREDR1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ELSE IF (O2D) THEN ! 3D case in a 2D model ! @@ -384,7 +384,7 @@ ELSE IF (O2D) THEN ! 3D case in a 2D model ZWORK3 = MZM(GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, D%NKA, D%NKU, D%NKL)* & GX_M_M(PTHLM,PDXX,PDZZ,PDZX, D%NKA, D%NKU, D%NKL), D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2TH3(:,:,:)= PREDTH1(:,:,:)**2+(CSTURB%XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) )**2 * & ZWORK1(:,:,:) ! @@ -394,17 +394,17 @@ ELSE IF (O2D) THEN ! 3D case in a 2D model PRED2THR3(:,:,:)= PREDR1(:,:,:) * PREDTH1(:,:,:) + CSTURB%XCTV**2*PBLL_O_E(:,:,:)**2 * & PEMOIST(:,:,:) * PETHETA(:,:,:) * & ZWORK3(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+D%NKL) PRED2R3(:,:,IKB)=PRED2R3(:,:,IKB+D%NKL) PRED2THR3(:,:,IKB)=PRED2THR3(:,:,IKB+D%NKL) ! ELSE ! dry 3D case in a 2D model - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 + CSTURB%XCTV**2*PBLL_O_E(:,:,:)**2 * & ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+D%NKL) ! PRED2R3(:,:,:) = 0. @@ -426,7 +426,7 @@ ELSE ! 3D case in a 3D model GY_M_M(PRM(:,:,:,1),PDYY,PDZZ,PDZY, D%NKA, D%NKU, D%NKL)* & GY_M_M(PTHLM,PDYY,PDZZ,PDZY, D%NKA, D%NKU, D%NKL), D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2TH3(:,:,:)= PREDTH1(:,:,:)**2 + ( CSTURB%XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) )**2 * & ZWORK1(:,:,:) ! @@ -436,17 +436,17 @@ ELSE ! 3D case in a 3D model PRED2THR3(:,:,:)= PREDR1(:,:,:) * PREDTH1(:,:,:) + CSTURB%XCTV**2*PBLL_O_E(:,:,:)**2 * & PEMOIST(:,:,:) * PETHETA(:,:,:) * ZWORK3(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+D%NKL) PRED2R3(:,:,IKB)=PRED2R3(:,:,IKB+D%NKL) PRED2THR3(:,:,IKB)=PRED2THR3(:,:,IKB+D%NKL) ! ELSE ! dry 3D case in a 3D model - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 + CSTURB%XCTV**2*PBLL_O_E(:,:,:)**2 * & ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! PRED2TH3(:,:,IKB)=PRED2TH3(:,:,IKB+D%NKL) ! @@ -467,14 +467,14 @@ DO JSV=1,KSV ! IF(HTURBDIM=='1DIM') THEN ! 1D case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRED2THS3(:,:,:,JSV) = PREDS1(:,:,:,JSV) * PREDTH1(:,:,:) IF (KRR /= 0) THEN PRED2RS3(:,:,:,JSV) = PREDR1(:,:,:) *PREDS1(:,:,:,JSV) ELSE PRED2RS3(:,:,:,JSV) = 0. END IF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ELSE IF (O2D) THEN ! 3D case in a 2D model ! @@ -486,7 +486,7 @@ DO JSV=1,KSV GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, D%NKA, D%NKU, D%NKL), & D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) IF (KRR /= 0) THEN ZWORK1(:,:,:) = ZW1(:,:,:)*PETHETA(:,:,:) ELSE @@ -501,7 +501,7 @@ DO JSV=1,KSV ELSE PRED2RS3(:,:,:,JSV) = 0. END IF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ELSE ! 3D case in a 3D model ! @@ -517,7 +517,7 @@ DO JSV=1,KSV GY_M_M(PRM(:,:,:,1),PDYY,PDZZ,PDZY, D%NKA, D%NKU, D%NKL), & D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) IF (KRR /= 0) THEN ZWORK1(:,:,:) = ZW1(:,:,:)*PETHETA(:,:,:) ELSE @@ -532,7 +532,7 @@ DO JSV=1,KSV ELSE PRED2RS3(:,:,:,JSV) = 0. END IF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! END IF ! end of HTURBDIM if-block ! @@ -636,12 +636,12 @@ INTEGER :: JI,JJ,JK ! Note that in the Boundary layer, phi is usually between 0.8 and 1 ! ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZCOEF(:,:,:) = MAX(MIN(( 10.*(1.-PPHI3(:,:,:)/CSTURB%XPHI_LIM)) ,1.), 0.) ! PF(:,:,:) = ZCOEF(:,:,:) * PF(:,:,:) & + (1.-ZCOEF(:,:,:)) * PF_LIM(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! END SUBROUTINE SMOOTH_TURB_FUNCT !---------------------------------------------------------------------------- @@ -667,7 +667,7 @@ IKE = SIZE(PREDTH1,3)-JPVEXT_TURB ! IF (HTURBDIM=='3DIM') THEN !* 3DIM case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) IF (OUSERV) THEN ZW1(:,:,:) = 1. + 1.5* (PREDTH1(:,:,:)+PREDR1(:,:,:)) + & ( 0.5 * (PREDTH1(:,:,:)**2+PREDR1(:,:,:)**2) & @@ -690,22 +690,22 @@ IF (HTURBDIM=='3DIM') THEN PHI3(:,:,:)= 1. - & (PRED2TH3(:,:,:) / PREDTH1(:,:,:) + ZW2(:,:,:)) / ZW1(:,:,:) END IF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE( PHI3(:,:,:) <= 0. .OR. PHI3(:,:,:) > CSTURB%XPHI_LIM ) PHI3(:,:,:) = CSTURB%XPHI_LIM END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE !* 1DIM case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) IF (OUSERV) THEN PHI3(:,:,:)= 1./(1.+PREDTH1(:,:,:)+PREDR1(:,:,:)) ELSE PHI3(:,:,:)= 1./(1.+PREDTH1(:,:,:)) END IF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! PHI3(:,:,IKB-1)=PHI3(:,:,IKB) @@ -736,24 +736,24 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PREDTH1,3)-JPVEXT_TURB ! DO JSV=1,SIZE(PSI_SV,4) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PSI_SV(:,:,:,JSV) = ( 1. & - (CSTURB%XCPR3+CSTURB%XCPR5) * (PRED2THS(:,:,:,JSV)/PREDS1(:,:,:,JSV)-PREDTH1(:,:,:)) & - (CSTURB%XCPR4+CSTURB%XCPR5) * (PRED2RS(:,:,:,JSV)/PREDS1(:,:,:,JSV)-PREDR1(:,:,:)) & - CSTURB%XCPR3 * PREDTH1(:,:,:) * PPHI3(:,:,:) - CSTURB%XCPR4 * PREDR1(:,:,:) * PPSI3(:,:,:) & ) / ( 1. + CSTURB%XCPR5 * ( PREDTH1(:,:,:) + PREDR1(:,:,:) ) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! control of the PSI_SV positivity - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE ( (PSI_SV(:,:,:,JSV) <=0.).AND. (PREDTH1(:,:,:)+PREDR1(:,:,:)) <= 0. ) PSI_SV(:,:,:,JSV)=CSTURB%XPHI_LIM END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PSI_SV(:,:,:,JSV) = MAX( 1.E-4, MIN(CSTURB%XPHI_LIM,PSI_SV(:,:,:,JSV)) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! PSI_SV(:,:,IKB-1,JSV)=PSI_SV(:,:,IKB,JSV) PSI_SV(:,:,IKE+1,JSV)=PSI_SV(:,:,IKE,JSV) @@ -783,7 +783,7 @@ IKE = SIZE(PREDTH1,3)-JPVEXT_TURB IF (HTURBDIM=='3DIM') THEN !* 3DIM case IF (OUSERV) THEN - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) #ifdef REPRO48 WHERE (PPHI3(:,:,:)/=CSTURB%XPHI_LIM) #else @@ -800,11 +800,11 @@ IF (HTURBDIM=='3DIM') THEN ELSEWHERE D_PHI3DTDZ_O_DDTDZ(:,:,:) = PPHI3(:,:,:) ENDWHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ELSE - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) #ifdef REPRO48 WHERE (PPHI3(:,:,:)/=CSTURB%XPHI_LIM) #else @@ -818,7 +818,7 @@ IF (HTURBDIM=='3DIM') THEN ELSEWHERE D_PHI3DTDZ_O_DDTDZ(:,:,:) = PPHI3(:,:,:) ENDWHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! END IF ELSE @@ -871,7 +871,7 @@ IKE = SIZE(PREDTH1,3)-JPVEXT_TURB IF (HTURBDIM=='3DIM') THEN !* 3DIM case IF (OUSERV) THEN - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) #ifdef REPRO48 WHERE (PPHI3(:,:,:)/=CSTURB%XPHI_LIM) #else @@ -887,13 +887,13 @@ IF (HTURBDIM=='3DIM') THEN ELSEWHERE D_PHI3DRDZ_O_DDRDZ(:,:,:) = PPHI3(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE D_PHI3DRDZ_O_DDRDZ(:,:,:) = PPHI3(:,:,:) END IF ELSE !* 1DIM case - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) #ifdef REPRO48 WHERE (PPHI3(:,:,:)/=CSTURB%XPHI_LIM) #else @@ -904,7 +904,7 @@ ELSE ELSEWHERE D_PHI3DRDZ_O_DDRDZ(:,:,:) = PPHI3(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! #ifdef REPRO48 @@ -943,12 +943,12 @@ IKE = SIZE(PREDTH1,3)-JPVEXT_TURB IF (HTURBDIM=='3DIM') THEN ! by derivation of (phi3 dtdz) * dtdz according to dtdz we obtain: ZWORK1 = D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,OUSERV) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_PHI3DTDZ2_O_DDTDZ(:,:,:) = PDTDZ(:,:,:) * (PPHI3(:,:,:) + ZWORK1(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE !* 1DIM case - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) #ifdef REPRO48 WHERE (PPHI3(:,:,:)/=CSTURB%XPHI_LIM) #else @@ -959,7 +959,7 @@ ELSE ELSEWHERE D_PHI3DTDZ2_O_DDTDZ(:,:,:) = PPHI3(:,:,:) * 2. * PDTDZ(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! #ifdef REPRO48 @@ -991,10 +991,10 @@ IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTH2',0,ZHOOK_HANDLE) IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_WTH_WTH2(:,:,:) = CSTURB%XCSHF*PBLL_O_E(:,:,:)*PETHETA(:,:,:)*0.5/CSTURB%XCTD & * (1.+0.5*PREDTH1(:,:,:)+PREDR1(:,:,:)) / PD(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_WTH_WTH2(:,:,IKB-1)=M3_WTH_WTH2(:,:,IKB) M3_WTH_WTH2(:,:,IKE+1)=M3_WTH_WTH2(:,:,IKE) ! @@ -1018,11 +1018,11 @@ IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTH2_O_DDTDZ',0,ZHOOK_HANDLE) IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_WTH_WTH2_O_DDTDZ(:,:,:) = ( 0.5*CSTURB%XCSHF*PBLL_O_E(:,:,:)*PETHETA(:,:,:)*0.5/CSTURB%XCTD/PD(:,:,:) & - PM3_WTH_WTH2(:,:,:)/PD(:,:,:)*(1.5+PREDTH1(:,:,:)+PREDR1(:,:,:)) )& * PBLL_O_E(:,:,:) * PETHETA(:,:,:) * CSTURB%XCTV -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_WTH_WTH2_O_DDTDZ(:,:,IKB-1)=D_M3_WTH_WTH2_O_DDTDZ(:,:,IKB) D_M3_WTH_WTH2_O_DDTDZ(:,:,IKE+1)=D_M3_WTH_WTH2_O_DDTDZ(:,:,IKE) @@ -1047,10 +1047,10 @@ IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2TH',0,ZHOOK_HANDLE) IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PTKE, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_WTH_W2TH(:,:,:) = CSTURB%XCSHF*PKEFF(:,:,:)*1.5/ZWORK1(:,:,:) & * (1. - 0.5*PREDR1(:,:,:)*(1.+PREDR1(:,:,:))/PD(:,:,:) ) / (1.+PREDTH1(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_WTH_W2TH(:,:,IKB-1)=M3_WTH_W2TH(:,:,IKB) M3_WTH_W2TH(:,:,IKE+1)=M3_WTH_W2TH(:,:,IKE) @@ -1078,13 +1078,13 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PTKE, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_WTH_W2TH_O_DDTDZ(:,:,:) = & - CSTURB%XCSHF*PKEFF(:,:,:)*1.5/ZWORK1(:,:,:)/(1.+PREDTH1(:,:,:))**2 & * CSTURB%XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) & * (1. - 0.5*PREDR1(:,:,:)*(1.+PREDR1(:,:,:))/PD(:,:,:)* & ( 1.+(1.+PREDTH1(:,:,:))*(1.5+PREDR1(:,:,:)+PREDTH1(:,:,:))/PD(:,:,:)) ) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_WTH_W2TH_O_DDTDZ(:,:,IKB-1)=D_M3_WTH_W2TH_O_DDTDZ(:,:,IKB) D_M3_WTH_W2TH_O_DDTDZ(:,:,IKE+1)=D_M3_WTH_W2TH_O_DDTDZ(:,:,IKE) @@ -1111,10 +1111,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PTKE, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_WTH_W2R(:,:,:) = - CSTURB%XCSHF*PKEFF(:,:,:)*0.75*CSTURB%XCTV*PBLL_O_E(:,:,:) & /ZWORK1(:,:,:)*PEMOIST(:,:,:)*PDTDZ(:,:,:)/PD(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_WTH_W2R(:,:,IKB-1)=M3_WTH_W2R(:,:,IKB) M3_WTH_W2R(:,:,IKE+1)=M3_WTH_W2R(:,:,IKE) @@ -1142,11 +1142,11 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PTKE, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_WTH_W2R_O_DDTDZ(:,:,:) = - CSTURB%XCSHF*PKEFF(:,:,:)*0.75*CSTURB%XCTV*PBLL_O_E(:,:,:) & /ZWORK1(:,:,:)*PEMOIST(:,:,:)/PD(:,:,:) & * (1. - PREDTH1(:,:,:)*(1.5+PREDTH1(:,:,:)+PREDR1(:,:,:))/PD(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_WTH_W2R_O_DDTDZ(:,:,IKB-1)=D_M3_WTH_W2R_O_DDTDZ(:,:,IKB) D_M3_WTH_W2R_O_DDTDZ(:,:,IKE+1)=D_M3_WTH_W2R_O_DDTDZ(:,:,IKE) @@ -1176,10 +1176,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PBETA*PLEPS/(PSQRT_TKE*PTKE), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_WTH_WR2(:,:,:) = - CSTURB%XCSHF*PKEFF(:,:,:)*0.25*PBLL_O_E(:,:,:)*CSTURB%XCTV*PEMOIST(:,:,:)**2 & *ZWORK1(:,:,:)/CSTURB%XCTD*PDTDZ(:,:,:)/PD(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_WTH_WR2(:,:,IKB-1)=M3_WTH_WR2(:,:,IKB) M3_WTH_WR2(:,:,IKE+1)=M3_WTH_WR2(:,:,IKE) @@ -1210,11 +1210,11 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PBETA*PLEPS/(PSQRT_TKE*PTKE), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_WTH_WR2_O_DDTDZ(:,:,:) = - CSTURB%XCSHF*PKEFF(:,:,:)*0.25*PBLL_O_E(:,:,:)*CSTURB%XCTV*PEMOIST(:,:,:)**2 & *ZWORK1(:,:,:)/CSTURB%XCTD/PD(:,:,:) & * (1. - PREDTH1(:,:,:)*(1.5+PREDTH1(:,:,:)+PREDR1(:,:,:))/PD(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_WTH_WR2_O_DDTDZ(:,:,IKB-1)=D_M3_WTH_WR2_O_DDTDZ(:,:,IKB) D_M3_WTH_WR2_O_DDTDZ(:,:,IKE+1)=D_M3_WTH_WR2_O_DDTDZ(:,:,IKE) @@ -1243,10 +1243,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZM(PBETA/PTKE*PSQRT_TKE, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_WTH_WTHR(:,:,:) = CSTURB%XCSHF*PKEFF(:,:,:)*PEMOIST(:,:,:)*ZWORK1(:,:,:) & *0.5*PLEPS(:,:,:)/CSTURB%XCTD*(1+PREDR1(:,:,:))/PD(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_WTH_WTHR(:,:,IKB-1)=M3_WTH_WTHR(:,:,IKB) M3_WTH_WTHR(:,:,IKE+1)=M3_WTH_WTHR(:,:,IKE) @@ -1271,10 +1271,10 @@ IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTHR_O_DDTDZ',0,ZHOOK_HANDLE) IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_WTH_WTHR_O_DDTDZ(:,:,:) = - PM3_WTH_WTHR(:,:,:) * (1.5+PREDTH1(:,:,:)+PREDR1(:,:,:))& /PD(:,:,:)*CSTURB%XCTV*PBLL_O_E(:,:,:)*PETHETA(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_WTH_WTHR_O_DDTDZ(:,:,IKB-1)=D_M3_WTH_WTHR_O_DDTDZ(:,:,IKB) D_M3_WTH_WTHR_O_DDTDZ(:,:,IKE+1)=D_M3_WTH_WTHR_O_DDTDZ(:,:,IKE) @@ -1302,10 +1302,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((1.-0.5*PREDR1*(1.+PREDR1)/PD)/(1.+PREDTH1)*PDTDZ, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_TH2_W2TH(:,:,:) = - ZWORK1(:,:,:) & * 1.5*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:)*CSTURB%XCTV -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_TH2_W2TH(:,:,IKB-1)=M3_TH2_W2TH(:,:,IKB) M3_TH2_W2TH(:,:,IKE+1)=M3_TH2_W2TH(:,:,IKE) @@ -1340,16 +1340,16 @@ IF (OUSERV) THEN ZWORK1 = MZF((1.-0.5*PREDR1*(1.+PREDR1)/PD)*(1.-(1.5+PREDTH1+PREDR1)* & PREDTH1*(1.+PREDTH1)/PD ) / (1.+PREDTH1)**2, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:)*CSTURB%XCTV * & ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = MZF(1./(1.+PREDTH1)**2, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:)*CSTURB%XCTV & * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! D_M3_TH2_W2TH_O_DDTDZ(:,:,IKB-1)=D_M3_TH2_W2TH_O_DDTDZ(:,:,IKB) @@ -1376,10 +1376,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((1.+0.5*PREDTH1+1.5*PREDR1+0.5*PREDR1**2)/PD, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_TH2_WTH2(:,:,:) = PLEPS(:,:,:)*0.5/CSTURB%XCTD/PSQRT_TKE(:,:,:) & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_TH2_WTH2(:,:,IKB-1)=M3_TH2_WTH2(:,:,IKB) M3_TH2_WTH2(:,:,IKE+1)=M3_TH2_WTH2(:,:,IKE) @@ -1410,10 +1410,10 @@ ZWORK1 = MZF(PBLL_O_E*PETHETA* (0.5/PD - (1.5+PREDTH1+PREDR1)*(1.+0.5*PREDTH1+1.5*PREDR1+0.5*PREDR1**2)/PD**2 & ), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_TH2_WTH2_O_DDTDZ(:,:,:) = PLEPS(:,:,:)*0.5/CSTURB%XCTD/PSQRT_TKE(:,:,:)*CSTURB%XCTV & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_TH2_WTH2_O_DDTDZ(:,:,IKB-1)=D_M3_TH2_WTH2_O_DDTDZ(:,:,IKB) D_M3_TH2_WTH2_O_DDTDZ(:,:,IKE+1)=D_M3_TH2_WTH2_O_DDTDZ(:,:,IKE) @@ -1441,10 +1441,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(PBLL_O_E*PEMOIST/PD*PDTDZ**2, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_TH2_W2R(:,:,:) = 0.75*CSTURB%XCTV**2*ZWORK1(:,:,:) & *PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_TH2_W2R(:,:,IKB-1)=M3_TH2_W2R(:,:,IKB) M3_TH2_W2R(:,:,IKE+1)=M3_TH2_W2R(:,:,IKE) @@ -1474,10 +1474,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(PBLL_O_E*PEMOIST/PD*PDTDZ*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_TH2_W2R_O_DDTDZ(:,:,:) = 0.75*CSTURB%XCTV**2*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:) & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_TH2_W2R_O_DDTDZ(:,:,IKB-1)=D_M3_TH2_W2R_O_DDTDZ(:,:,IKB) D_M3_TH2_W2R_O_DDTDZ(:,:,IKE+1)=D_M3_TH2_W2R_O_DDTDZ(:,:,IKE) @@ -1504,10 +1504,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((PBLL_O_E*PEMOIST*PDTDZ)**2/PD, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_TH2_WR2(:,:,:) = 0.25*CSTURB%XCTV**2*ZWORK1(:,:,:)& *PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_TH2_WR2(:,:,IKB-1)=M3_TH2_WR2(:,:,IKB) M3_TH2_WR2(:,:,IKE+1)=M3_TH2_WR2(:,:,IKE) @@ -1536,10 +1536,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((PBLL_O_E*PEMOIST)**2*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_TH2_WR2_O_DDTDZ(:,:,:) = 0.25*CSTURB%XCTV**2*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_TH2_WR2_O_DDTDZ(:,:,IKB-1)=D_M3_TH2_WR2_O_DDTDZ(:,:,IKB) D_M3_TH2_WR2_O_DDTDZ(:,:,IKE+1)=D_M3_TH2_WR2_O_DDTDZ(:,:,IKE) @@ -1567,10 +1567,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(PBLL_O_E*PEMOIST*PDTDZ*(1.+PREDR1)/PD, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_TH2_WTHR(:,:,:) = - 0.5*CSTURB%XCTV*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD & *ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_TH2_WTHR(:,:,IKB-1)=M3_TH2_WTHR(:,:,IKB) M3_TH2_WTHR(:,:,IKE+1)=M3_TH2_WTHR(:,:,IKE) @@ -1599,10 +1599,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(PBLL_O_E*PEMOIST*(1.+PREDR1)/PD * (1. -PREDTH1*(1.5+PREDTH1+PREDR1)/PD), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_TH2_WTHR_O_DDTDZ(:,:,:) = - 0.5*CSTURB%XCTV*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_TH2_WTHR_O_DDTDZ(:,:,IKB-1)=D_M3_TH2_WTHR_O_DDTDZ(:,:,IKB) D_M3_TH2_WTHR_O_DDTDZ(:,:,IKE+1)=D_M3_TH2_WTHR_O_DDTDZ(:,:,IKE) @@ -1628,10 +1628,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((1.+PREDTH1)*(1.+PREDR1)/PD, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_THR_WTHR(:,:,:) = 0.5*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_THR_WTHR(:,:,IKB-1)=M3_THR_WTHR(:,:,IKB) M3_THR_WTHR(:,:,IKE+1)=M3_THR_WTHR(:,:,IKE) @@ -1659,10 +1659,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(PETHETA*PBLL_O_E/PD*(1.+PREDR1)*(1.-(1.+PREDTH1)*(1.5+PREDTH1+PREDR1)/PD), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_THR_WTHR_O_DDTDZ(:,:,:) = 0.5*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD * CSTURB%XCTV & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_THR_WTHR_O_DDTDZ(:,:,IKB-1)=D_M3_THR_WTHR_O_DDTDZ(:,:,IKB) D_M3_THR_WTHR_O_DDTDZ(:,:,IKE+1)=D_M3_THR_WTHR_O_DDTDZ(:,:,IKE) @@ -1690,10 +1690,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((1.+PREDR1)*PBLL_O_E*PETHETA*PDRDZ/PD, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_THR_WTH2(:,:,:) = - 0.25*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD*CSTURB%XCTV & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_THR_WTH2(:,:,IKB-1)=M3_THR_WTH2(:,:,IKB) M3_THR_WTH2(:,:,IKE+1)=M3_THR_WTH2(:,:,IKE) @@ -1722,10 +1722,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(-(1.+PREDR1)*(PBLL_O_E*PETHETA/PD)**2*PDRDZ*(1.5+PREDTH1+PREDR1), D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_THR_WTH2_O_DDTDZ(:,:,:) = - 0.25*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD*CSTURB%XCTV**2 & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_THR_WTH2_O_DDTDZ(:,:,IKB-1)=D_M3_THR_WTH2_O_DDTDZ(:,:,IKB) D_M3_THR_WTH2_O_DDTDZ(:,:,IKE+1)=D_M3_THR_WTH2_O_DDTDZ(:,:,IKE) @@ -1755,10 +1755,10 @@ IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(PBLL_O_E*PETHETA/PD & *(-(1.+PREDR1)*PREDR1/PD*(1.5+PREDTH1+PREDR1)+(1.+2.*PREDR1)), & D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_THR_WTH2_O_DDRDZ(:,:,:) = - 0.25*PLEPS(:,:,:)/PSQRT_TKE(:,:,:)/CSTURB%XCTD*CSTURB%XCTV & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_THR_WTH2_O_DDRDZ(:,:,IKB-1)=D_M3_THR_WTH2_O_DDRDZ(:,:,IKB) D_M3_THR_WTH2_O_DDRDZ(:,:,IKE+1)=D_M3_THR_WTH2_O_DDRDZ(:,:,IKE) @@ -1785,10 +1785,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF((1.+PREDR1)*PDRDZ/PD, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) M3_THR_W2TH(:,:,:) = - 0.75*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:) * CSTURB%XCTV & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! M3_THR_W2TH(:,:,IKB-1)=M3_THR_W2TH(:,:,IKB) M3_THR_W2TH(:,:,IKE+1)=M3_THR_W2TH(:,:,IKE) @@ -1818,10 +1818,10 @@ IKB = 1+JPVEXT_TURB IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(-PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/PD**2, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_THR_W2TH_O_DDTDZ(:,:,:) = - 0.75*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:) * CSTURB%XCTV**2 & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_THR_W2TH_O_DDTDZ(:,:,IKB-1)=D_M3_THR_W2TH_O_DDTDZ(:,:,IKB) D_M3_THR_W2TH_O_DDTDZ(:,:,IKE+1)=D_M3_THR_W2TH_O_DDTDZ(:,:,IKE) @@ -1850,10 +1850,10 @@ IKE = SIZE(PD,3)-JPVEXT_TURB ZWORK1 = MZF(-(1.+PREDR1)*PREDR1*(1.5+PREDTH1+PREDR1)/PD**2 & +(1.+2.*PREDR1)/PD, & D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) D_M3_THR_W2TH_O_DDRDZ(:,:,:) = - 0.75*PLM(:,:,:)*PLEPS(:,:,:)/PTKE(:,:,:) * CSTURB%XCTV & * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! D_M3_THR_W2TH_O_DDRDZ(:,:,IKB-1)=D_M3_THR_W2TH_O_DDRDZ(:,:,IKB) D_M3_THR_W2TH_O_DDRDZ(:,:,IKE+1)=D_M3_THR_W2TH_O_DDRDZ(:,:,IKE) diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90 index 403ea9d85..526b14d70 100644 --- a/src/common/turb/mode_tke_eps_sources.F90 +++ b/src/common/turb/mode_tke_eps_sources.F90 @@ -239,9 +239,9 @@ IF (LHOOK) CALL DR_HOOK('TKE_EPS_SOURCES',0,ZHOOK_HANDLE) IKB=D%NKB ! ! compute the effective diffusion coefficient at the mass point -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! !---------------------------------------------------------------------------- ! @@ -265,9 +265,9 @@ END IF ! extrapolate the dynamic production with a 1/Z law from its value at the ! W(IKB+1) value stored in PDP(IKB) to the mass localization tke(IKB) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+D%NKL)/PDZZ(:,:,IKB)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! Compute the source terms for TKE: ( ADVECtion + NUMerical DIFFusion + ..) ! + (Dynamical Production) + (Thermal Production) - (dissipation) @@ -275,7 +275,7 @@ PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+D%NKL)/PDZZ(:,:,IKB)) ZMWORK1 = MZM(ZKEFF, D%NKA, D%NKU, D%NKL) ZMWORK2 = MZM(PRHODJ, D%NKA, D%NKU, D%NKL) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLX(:,:,:) = CSTURB%XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) ZSOURCE(:,:,:) = ( PRTKES(:,:,:) + PRTKEMS(:,:,:) ) / PRHODJ(:,:,:) & - PTKEM(:,:,:) / PTSTEP & @@ -288,7 +288,7 @@ ZSOURCE(:,:,:) = ( PRTKES(:,:,:) + PRTKEMS(:,:,:) ) / PRHODJ(:,:,:) & ! matrix inverted in TRIDIAG ! ZA(:,:,:) = - PTSTEP * CSTURB%XCET * ZMWORK1(:,:,:) * ZMWORK2(:,:,:) / PDZZ(:,:,:)**2 -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! Compute TKE at time t+deltat: ( stored in ZRES ) ! @@ -298,10 +298,10 @@ CALL GET_HALO(ZRES) !* diagnose the dissipation ! IF (LDIAG_IN_RUN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) XCURRENT_TKE_DISS(:,:,:) = ZFLX(:,:,:) * PTKEM(:,:,:) & *(PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! CALL ADD3DFIELD_ll( TZFIELDDISS_ll, XCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::XCURRENT_TKE_DISS' ) CALL UPDATE_HALO_ll(TZFIELDDISS_ll,IINFO_ll) @@ -311,17 +311,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=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) GTKENEG(:,:,:) = ZRES(:,:,:) <= CSTURB%XTKEMIN WHERE ( GTKENEG(:,:,:) ) ZRES(:,:,:) = CSTURB%XTKEMIN END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTDISS(:,:,:) = - ZFLX(:,:,:)*(PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! IF ( OLES_CALL .OR. & (OTURB_DIAG .AND. TPFILE%LOPENED) ) THEN @@ -330,9 +330,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=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLX(:,:,:) = - CSTURB%XCET * ZMWORK1(:,:,:) * ZDWORK1(:,:,:) / PDZZ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ZFLX(:,:,IKB) = 0. ZFLX(:,:,D%NKA) = 0. @@ -340,9 +340,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=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZTR(:,:,:)= ZTR(:,:,:) - ZDWORK1(:,:,:) /PRHODJ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! Storage in the LES configuration ! @@ -370,20 +370,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=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRTKES(:,:,:) = PRTKES(:,:,:) + PRHODJ(:,:,:) * & ( PDP(:,:,:) + PTP(:,:,:) & - CSTURB%XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * ( PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:) ) ) ! PTDIFF(:,:,:) = ZRES(:,:,:) / PTSTEP - PRTKES(:,:,:)/PRHODJ(:,:,:) & & - PDP(:,:,:)- PTP(:,:,:) - PTDISS(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_TKE), 'TR', PRTKES(:, :, :) ) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRTKES(:,:,:) = ZRES(:,:,:) * PRHODJ(:,:,:) / PTSTEP - PRTKEMS(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! stores the whole turbulent transport ! @@ -394,10 +394,10 @@ IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_END( TBUDGETS(NBUDGET_TKE), 'TR', PRTK !* 3. COMPUTE THE DISSIPATIVE HEATING ! ------------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRTHLS(:,:,:) = PRTHLS(:,:,:) + CSTURB%XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * & (PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) * PRHODJ(:,:,:) * PCOEF_DISS(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) !---------------------------------------------------------------------------- ! !* 4. STORES SOME DIAGNOSTICS @@ -405,15 +405,15 @@ PRTHLS(:,:,:) = PRTHLS(:,:,:) + CSTURB%XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) ! IF(PRESENT(PTR)) PTR=ZTR IF(PRESENT(PDISS)) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PDISS(:,:,:) = -CSTURB%XCED * (PTKEM(:,:,:)**1.5) / PLEPS(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! IF(PRESENT(PEDR)) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PEDR(:,:,:) = CSTURB%XCED * (PTKEM(:,:,:)**1.5) / PLEPS(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN diff --git a/src/common/turb/mode_tridiag.F90 b/src/common/turb/mode_tridiag.F90 index c71e6c4b2..eba6cbdb0 100644 --- a/src/common/turb/mode_tridiag.F90 +++ b/src/common/turb/mode_tridiag.F90 @@ -158,26 +158,26 @@ IKTE=D%NKTE IKB=D%NKB IKE=D%NKE ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKB) = PVARM(:,:,IKB) + PTSTEP*PSOURCE(:,:,IKB) - & PEXPL / PRHODJ(:,:,IKB) * PA(:,:,IKB+D%NKL) * (PVARM(:,:,IKB+D%NKL) - PVARM(:,:,IKB)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,JK)= PVARM(:,:,JK) + PTSTEP*PSOURCE(:,:,JK) - & PEXPL / PRHODJ(:,:,JK) * & ( PVARM(:,:,JK-D%NKL)*PA(:,:,JK) & -PVARM(:,:,JK)*(PA(:,:,JK)+PA(:,:,JK+D%NKL)) & +PVARM(:,:,JK+D%NKL)*PA(:,:,JK+D%NKL) & ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKE)= PVARM(:,:,IKE) + PTSTEP*PSOURCE(:,:,IKE) + & PEXPL / PRHODJ(:,:,IKE) * PA(:,:,IKE) * (PVARM(:,:,IKE)-PVARM(:,:,IKE-D%NKL)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! !* 2. INVERSION OF THE TRIDIAGONAL SYSTEM @@ -188,13 +188,13 @@ IF ( PIMPL > 1.E-10 ) THEN ! ! going up ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZBET(:,:) = 1. - PIMPL * PA(:,:,IKB+D%NKL) / PRHODJ(:,:,IKB) ! bet = b(ikb) PVARP(:,:,IKB) = ZY(:,:,IKB) / ZBET(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZGAM(:,:,JK) = PIMPL * PA(:,:,JK) / PRHODJ(:,:,JK-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet ZBET(:,:) = 1. - PIMPL * ( PA(:,:,JK) * (1. + ZGAM(:,:,JK)) & @@ -205,9 +205,9 @@ IF ( PIMPL > 1.E-10 ) THEN * PVARP(:,:,JK-D%NKL) & ) / ZBET(:,:) ! res(k) = (y(k) -a(k)*res(k-1))/ bet - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! special treatment for the last level ZGAM(:,:,IKE) = PIMPL * PA(:,:,IKE) / PRHODJ(:,:,IKE-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet @@ -221,20 +221,20 @@ IF ( PIMPL > 1.E-10 ) THEN ! ! going down ! - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK = IKE-D%NKL,IKB,-1*D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = PVARP(:,:,JK) - ZGAM(:,:,JK+D%NKL) * PVARP(:,:,JK+D%NKL) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! ELSE ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK=IKTB,IKTE PVARP(:,:,JK) = ZY(:,:,JK) END DO - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! END IF ! @@ -242,10 +242,10 @@ END IF !* 3. FILL THE UPPER AND LOWER EXTERNAL VALUES ! ---------------------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,D%NKA)=PVARP(:,:,IKB) PVARP(:,:,D%NKU)=PVARP(:,:,IKE) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! !------------------------------------------------------------------------------- ! diff --git a/src/common/turb/mode_tridiag_thermo.F90 b/src/common/turb/mode_tridiag_thermo.F90 index 0f2a4b63c..df45e1944 100644 --- a/src/common/turb/mode_tridiag_thermo.F90 +++ b/src/common/turb/mode_tridiag_thermo.F90 @@ -169,9 +169,9 @@ IKE=D%NKE ! ZMZM_RHODJ = MZM(PRHODJ,D%NKA,D%NKU,D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZRHODJ_DFDDTDZ_O_DZ2(:,:,:) = ZMZM_RHODJ(:,:,:)*PDFDDTDZ(:,:,:)/PDZZ(:,:,:)**2 -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ZA=0. ZB=0. @@ -182,15 +182,15 @@ ZY=0. !* 2. COMPUTE THE RIGHT HAND SIDE ! --------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKB) = PRHODJ(:,:,IKB)*PVARM(:,:,IKB)/PTSTEP & - ZMZM_RHODJ(:,:,IKB+D%NKL) * PF(:,:,IKB+D%NKL)/PDZZ(:,:,IKB+D%NKL) & + ZMZM_RHODJ(:,:,IKB ) * PF(:,:,IKB )/PDZZ(:,:,IKB ) & + ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKB+D%NKL) * PIMPL * PVARM(:,:,IKB+D%NKL) & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKB+D%NKL) * PIMPL * PVARM(:,:,IKB ) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK=IKTB+1,IKTE-1 ZY(:,:,JK) = PRHODJ(:,:,JK)*PVARM(:,:,JK)/PTSTEP & - ZMZM_RHODJ(:,:,JK+D%NKL) * PF(:,:,JK+D%NKL)/PDZZ(:,:,JK+D%NKL) & @@ -200,15 +200,15 @@ DO JK=IKTB+1,IKTE-1 - ZRHODJ_DFDDTDZ_O_DZ2(:,:,JK ) * PIMPL * PVARM(:,:,JK ) & + ZRHODJ_DFDDTDZ_O_DZ2(:,:,JK ) * PIMPL * PVARM(:,:,JK-D%NKL) END DO -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKE) = PRHODJ(:,:,IKE)*PVARM(:,:,IKE)/PTSTEP & - ZMZM_RHODJ(:,:,IKE+D%NKL) * PF(:,:,IKE+D%NKL)/PDZZ(:,:,IKE+D%NKL) & + ZMZM_RHODJ(:,:,IKE ) * PF(:,:,IKE )/PDZZ(:,:,IKE ) & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE ) * PIMPL * PVARM(:,:,IKE ) & + ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE ) * PIMPL * PVARM(:,:,IKE-D%NKL) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! !* 3. INVERSION OF THE TRIDIAGONAL SYSTEM @@ -219,23 +219,23 @@ IF ( PIMPL > 1.E-10 ) THEN !* 3.1 arrays A, B, C ! -------------- ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZB(:,:,IKB) = PRHODJ(:,:,IKB)/PTSTEP & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKB+D%NKL) * PIMPL ZC(:,:,IKB) = ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKB+D%NKL) * PIMPL - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZA(:,:,JK) = ZRHODJ_DFDDTDZ_O_DZ2(:,:,JK) * PIMPL ZB(:,:,JK) = PRHODJ(:,:,JK)/PTSTEP & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,JK+D%NKL) * PIMPL & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,JK) * PIMPL ZC(:,:,JK) = ZRHODJ_DFDDTDZ_O_DZ2(:,:,JK+D%NKL) * PIMPL - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZA(:,:,IKE) = ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE ) * PIMPL ZB(:,:,IKE) = PRHODJ(:,:,IKE)/PTSTEP & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE ) * PIMPL @@ -245,44 +245,44 @@ IF ( PIMPL > 1.E-10 ) THEN ! ZBET(:,:) = ZB(:,:,IKB) ! bet = b(ikb) PVARP(:,:,IKB) = ZY(:,:,IKB) / ZBET(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZGAM(:,:,JK) = ZC(:,:,JK-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet ZBET(:,:) = ZB(:,:,JK) - ZA(:,:,JK) * ZGAM(:,:,JK) ! bet = b(k) - a(k)* gam(k) PVARP(:,:,JK)= ( ZY(:,:,JK) - ZA(:,:,JK) * PVARP(:,:,JK-D%NKL) ) / ZBET(:,:) ! res(k) = (y(k) -a(k)*res(k-1))/ bet - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! special treatment for the last level - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZGAM(:,:,IKE) = ZC(:,:,IKE-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet ZBET(:,:) = ZB(:,:,IKE) - ZA(:,:,IKE) * ZGAM(:,:,IKE) ! bet = b(k) - a(k)* gam(k) PVARP(:,:,IKE)= ( ZY(:,:,IKE) - ZA(:,:,IKE) * PVARP(:,:,IKE-D%NKL) ) / ZBET(:,:) ! res(k) = (y(k) -a(k)*res(k-1))/ bet - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! !* 3.3 going down ! ---------- ! DO JK = IKE-D%NKL,IKB,-1*D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = PVARP(:,:,JK) - ZGAM(:,:,JK+D%NKL) * PVARP(:,:,JK+D%NKL) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! ELSE ! DO JK=IKTB,IKTE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = ZY(:,:,JK) * PTSTEP / PRHODJ(:,:,JK) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! END IF @@ -291,10 +291,10 @@ END IF !* 4. FILL THE UPPER AND LOWER EXTERNAL VALUES ! ---------------------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,D%NKA)=PVARP(:,:,IKB) PVARP(:,:,D%NKU)=PVARP(:,:,IKE) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! !------------------------------------------------------------------------------- ! diff --git a/src/common/turb/mode_tridiag_tke.F90 b/src/common/turb/mode_tridiag_tke.F90 index b2735ce28..e69a64f73 100644 --- a/src/common/turb/mode_tridiag_tke.F90 +++ b/src/common/turb/mode_tridiag_tke.F90 @@ -157,26 +157,26 @@ IKTE=D%NKTE IKB=D%NKB IKE=D%NKE ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKB) = PVARM(:,:,IKB) + PTSTEP*PSOURCE(:,:,IKB) - & PEXPL / PRHODJ(:,:,IKB) * PA(:,:,IKB+D%NKL) * (PVARM(:,:,IKB+D%NKL) - PVARM(:,:,IKB)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,JK)= PVARM(:,:,JK) + PTSTEP*PSOURCE(:,:,JK) - & PEXPL / PRHODJ(:,:,JK) * & ( PVARM(:,:,JK-D%NKL)*PA(:,:,JK) & -PVARM(:,:,JK)*(PA(:,:,JK)+PA(:,:,JK+D%NKL)) & +PVARM(:,:,JK+D%NKL)*PA(:,:,JK+D%NKL) & ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKE)= PVARM(:,:,IKE) + PTSTEP*PSOURCE(:,:,IKE) + & PEXPL / PRHODJ(:,:,IKE) * PA(:,:,IKE) * (PVARM(:,:,IKE)-PVARM(:,:,IKE-D%NKL)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! !* 2. INVERSION OF THE TRIDIAGONAL SYSTEM @@ -187,14 +187,14 @@ IF ( PIMPL > 1.E-10 ) THEN ! ! going up ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZBET(:,:) = 1. + PIMPL * (PDIAG(:,:,IKB)-PA(:,:,IKB+D%NKL) / PRHODJ(:,:,IKB)) ! bet = b(ikb) PVARP(:,:,IKB) = ZY(:,:,IKB) / ZBET(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZGAM(:,:,JK) = PIMPL * PA(:,:,JK) / PRHODJ(:,:,JK-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet ZBET(:,:) = 1. + PIMPL * ( PDIAG(:,:,JK) - & @@ -206,9 +206,9 @@ IF ( PIMPL > 1.E-10 ) THEN * PVARP(:,:,JK-D%NKL) & ) / ZBET(:,:) ! res(k) = (y(k) -a(k)*res(k-1))/ bet - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! special treatment for the last level ZGAM(:,:,IKE) = PIMPL * PA(:,:,IKE) / PRHODJ(:,:,IKE-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet @@ -223,19 +223,19 @@ IF ( PIMPL > 1.E-10 ) THEN ! ! going down ! - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK = IKE-D%NKL,IKB,-1*D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = PVARP(:,:,JK) - ZGAM(:,:,JK+D%NKL) * PVARP(:,:,JK+D%NKL) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! ELSE ! DO JK=IKTB,IKTE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = ZY(:,:,JK) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! END IF @@ -244,10 +244,10 @@ END IF !* 3. FILL THE UPPER AND LOWER EXTERNAL VALUES ! ---------------------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,D%NKA)=PVARP(:,:,IKB) PVARP(:,:,D%NKU)=PVARP(:,:,IKE) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! !------------------------------------------------------------------------------- ! diff --git a/src/common/turb/mode_tridiag_wind.F90 b/src/common/turb/mode_tridiag_wind.F90 index 9ff7041bd..27faf80c3 100644 --- a/src/common/turb/mode_tridiag_wind.F90 +++ b/src/common/turb/mode_tridiag_wind.F90 @@ -162,26 +162,26 @@ IKTE=D%NKTE IKB=D%NKB IKE=D%NKE ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKB) = PVARM(:,:,IKB) + PTSTEP*PSOURCE(:,:,IKB) - & PEXPL / PRHODJA(:,:,IKB) * PA(:,:,IKB+D%NKL) * (PVARM(:,:,IKB+D%NKL) - PVARM(:,:,IKB)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,JK)= PVARM(:,:,JK) + PTSTEP*PSOURCE(:,:,JK) - & PEXPL / PRHODJA(:,:,JK) * & ( PVARM(:,:,JK-D%NKL)*PA(:,:,JK) & -PVARM(:,:,JK)*(PA(:,:,JK)+PA(:,:,JK+D%NKL)) & +PVARM(:,:,JK+D%NKL)*PA(:,:,JK+D%NKL) & ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZY(:,:,IKE)= PVARM(:,:,IKE) + PTSTEP*PSOURCE(:,:,IKE) + & PEXPL / PRHODJA(:,:,IKE) * PA(:,:,IKE) * (PVARM(:,:,IKE)-PVARM(:,:,IKE-D%NKL)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! !* 2. INVERSION OF THE TRIDIAGONAL SYSTEM @@ -192,14 +192,14 @@ IF ( PIMPL > 1.E-10 ) THEN ! ! going up ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZBET(:,:) = 1. - PIMPL * ( PA(:,:,IKB+D%NKL) / PRHODJA(:,:,IKB) & + PCOEFS(:,:) * PTSTEP ) ! bet = b(ikb) PVARP(:,:,IKB) = ZY(:,:,IKB) / ZBET(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK = IKB+D%NKL,IKE-D%NKL,D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZGAM(:,:,JK) = PIMPL * PA(:,:,JK) / PRHODJA(:,:,JK-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet ZBET(:,:) = 1. - PIMPL * ( PA(:,:,JK) * (1. + ZGAM(:,:,JK)) & @@ -210,9 +210,9 @@ IF ( PIMPL > 1.E-10 ) THEN * PVARP(:,:,JK-D%NKL) & ) / ZBET(:,:) ! res(k) = (y(k) -a(k)*res(k-1))/ bet - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! special treatment for the last level ZGAM(:,:,IKE) = PIMPL * PA(:,:,IKE) / PRHODJA(:,:,IKE-D%NKL) / ZBET(:,:) ! gam(k) = c(k-1) / bet @@ -226,19 +226,19 @@ IF ( PIMPL > 1.E-10 ) THEN ! ! going down ! - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK = IKE-D%NKL,IKB,-1*D%NKL - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = PVARP(:,:,JK) - ZGAM(:,:,JK+D%NKL) * PVARP(:,:,JK+D%NKL) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! ELSE ! DO JK=IKTB,IKTE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,JK) = ZY(:,:,JK) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! END IF @@ -247,10 +247,10 @@ END IF !* 3. FILL THE UPPER AND LOWER EXTERNAL VALUES ! ---------------------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PVARP(:,:,D%NKA)=PVARP(:,:,IKB) PVARP(:,:,D%NKU)=PVARP(:,:,IKE) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! !------------------------------------------------------------------------------- ! diff --git a/src/common/turb/mode_turb_ver.F90 b/src/common/turb/mode_turb_ver.F90 index 04630741c..5b8945071 100644 --- a/src/common/turb/mode_turb_ver.F90 +++ b/src/common/turb/mode_turb_ver.F90 @@ -424,20 +424,20 @@ CALL PRANDTL(D,CST,CSTURB,KRR,KSV,KRRI,OTURB_FLX, & ! Buoyancy coefficient ! IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZBETA(:,:,:) = CST%XG*CST%XALPHAOC - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZBETA(:,:,:) = CST%XG/PTHVREF(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! Square root of Tke ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZSQRT_TKE(:,:,:) = SQRT(PTKEM(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! gradients of mean quantities at previous time-step ! @@ -449,9 +449,9 @@ IF (KRR>0) ZDR_DZ = GZ_M_W(D%NKA, D%NKU, D%NKL,PRM(:,:,:,1),PDZZ) ! Denominator factor in 3rd order terms ! IF (.NOT. OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZD(:,:,:) = (1.+ZREDTH1(:,:,:)+ZREDR1(:,:,:)) * (1.+0.5*(ZREDTH1(:,:,:)+ZREDR1(:,:,:))) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZD(:,:,:) = 1. ENDIF diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90 index 181be4b3f..2dcaf9685 100644 --- a/src/common/turb/mode_turb_ver_dyn_flux.F90 +++ b/src/common/turb/mode_turb_ver_dyn_flux.F90 @@ -353,18 +353,18 @@ ZFLXZ = 0. ZCMFS = CSTURB%XCMFS IF (OHARAT) ZCMFS=1. ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZDIRSINZW(:,:) = SQRT(1.-PDIRCOSZW(:,:)**2) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! compute the coefficients for the uncentred gradient computation near the ! ground ! ! With OHARATU length scale and TKE are at half levels so remove MZM ! IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50*MFMOIST(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), D%NKA, D%NKU, D%NKL) ENDIF @@ -385,16 +385,16 @@ ZVSLOPEM(:,:,1)=PVSLOPEM(:,:) ZWORK1 = MXM( ZKEFF ) ZWORK2 = MXM( PDZZ ) ZWORK3 = MXM(MZM(PRHODJ, D%NKA, D%NKU, D%NKL)) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = -PTSTEP * ZCMFS * ZWORK1(:,:,:)* ZWORK3(:,:,:) / ZWORK2(:,:,:)**2 -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! ! Compute the source of U wind component ! ! compute the coefficient between the vertical flux and the 2 components of the ! wind following the slope -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) & * PCOSSLOPE(:,:) ZCOEFFLXV(:,:,1) = PCDUEFF(:,:) * PDIRCOSZW(:,:) * PSINSLOPE(:,:) @@ -404,7 +404,7 @@ ZCOEFS(:,:,1)= ZCOEFFLXU(:,:,1) * PCOSSLOPE(:,:) * PDIRCOSZW(:,:) & +ZCOEFFLXV(:,:,1) * PSINSLOPE(:,:) ! ! average this flux to be located at the U,W vorticity point -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZCOEFS(:,:,1:1)=MXM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) ) ! ! @@ -413,7 +413,7 @@ IF (OOCEAN) THEN ! OCEAN MODEL ONLY ! Sfx flux assumed to be in SI & at vorticity point ZWORK1(:,:,D%NKU:D%NKU) = MXM(PRHODJ(:,:,D%NKU:D%NKU)) ZWORK2(:,:,IKE:IKE) = MXM(PRHODJ(:,:,IKE:IKE)) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OCOUPLES) THEN ZSOURCE(:,:,IKE) = TURBN%XSSUFL_C(:,:,1)/PDZZ(:,:,IKE) & *0.5 * ( 1. + ZWORK1(:,:,D%NKU) / ZWORK2(:,:,IKE)) @@ -422,7 +422,7 @@ IF (OOCEAN) THEN ! OCEAN MODEL ONLY ZSOURCE(:,:,IKE) = ZSOURCE(:,:,IKE) /PDZZ(:,:,IKE) & *0.5 * ( 1. + ZWORK1(:,:,D%NKU) / ZWORK2(:,:,IKE) ) ENDIF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) !No flux at the ocean domain bottom ZSOURCE(:,:,IKB) = 0. ZSOURCE(:,:,IKTB+1:IKTE-1) = 0 @@ -431,18 +431,18 @@ ELSE !ATMOS MODEL ONLY ZWORK1(:,:,D%NKA:D%NKA) = MXM(PRHODJ(:,:,D%NKA:D%NKA)) ZWORK2(:,:,IKB:IKB) = MXM(PRHODJ(:,:,IKB:IKB)) IF (OCOUPLES) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = TURBN%XSSUFL_C(:,:,1)/PDZZ(:,:,IKB) & * 0.5 * ( 1. + ZWORK1(:,:,D%NKA) / ZWORK2(:,:,IKB) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! compute the explicit tangential flux at the W point ZSOURCE(:,:,IKB) = & PTAU11M(:,:) * PCOSSLOPE(:,:) * PDIRCOSZW(:,:) * ZDIRSINZW(:,:) & -PTAU12M(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) & -PTAU33M(:,:) * PCOSSLOPE(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! add the vertical part or the surface flux at the U,W vorticity point ! @@ -451,13 +451,13 @@ ELSE !ATMOS MODEL ONLY *ZUSLOPEM(:,:,1:1) & -ZCOEFFLXV(:,:,1:1) / PDZZ(:,:,IKB:IKB) & *ZVSLOPEM(:,:,1:1) ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = & ( ZWORK3(:,:,IKB) & + ZWORK4(:,:,IKB) & - ZCOEFS(:,:,1) * PUM(:,:,IKB) * PIMPL & ) * 0.5 * ( 1. + ZWORK1(:,:,D%NKA) / ZWORK2(:,:,IKB) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ENDIF ! ZSOURCE(:,:,IKTB+1:IKTE-1) = 0. @@ -475,7 +475,7 @@ ZWORK1 = MXM(PRHODJ) ZWORK2 = MXM(ZKEFF) ZWORK3 = DZM(PIMPL*ZRES + PEXPL*PUM, D%NKA, D%NKU, D%NKL) ZWORK4 = MXM(PDZZ) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRUS(:,:,:)=PRUS(:,:,:)+ZWORK1(:,:,:)*(ZRES(:,:,:)-PUM(:,:,:))/PTSTEP ! ! @@ -484,32 +484,32 @@ PRUS(:,:,:)=PRUS(:,:,:)+ZWORK1(:,:,:)*(ZRES(:,:,:)-PUM(:,:,:))/PTSTEP ! vertical flux of the U wind component ! ZFLXZ(:,:,:) = -ZCMFS * ZWORK2(:,:,:) * ZWORK3(:,:,:) / ZWORK4(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! surface flux ZWORK1(:,:,IKB:IKB) = MXM(PDZZ(:,:,IKB:IKB)) ZWORK2(:,:,D%NKA:D%NKA) = MXM(PRHODJ(:,:,D%NKA:D%NKA)) ZWORK3(:,:,IKB:IKB) = MXM(PRHODJ(:,:,IKB:IKB)) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKB) = ZWORK1(:,:,IKB) * & ( ZSOURCE(:,:,IKB) & +ZCOEFS(:,:,1) * ZRES(:,:,IKB) * PIMPL & ) / 0.5 / ( 1. + ZWORK2(:,:,D%NKA)/ ZWORK3(:,:,IKB) ) ! ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! IF (OOCEAN) THEN !ocean model at phys sfc (ocean domain top) ZWORK1(:,:,IKE:IKE) = MXM(PDZZ(:,:,IKE:IKE)) ZWORK2(:,:,D%NKU:D%NKU) = MXM(PRHODJ(:,:,D%NKU:D%NKU)) ZWORK3(:,:,IKE:IKE) = MXM(PRHODJ(:,:,IKE:IKE)) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKE) = ZWORK1(:,:,IKE) * & ZSOURCE(:,:,IKE) & / 0.5 / ( 1. + ZWORK2(:,:,D%NKU)/ ZWORK3(:,:,IKE) ) ZFLXZ(:,:,D%NKU) = ZFLXZ(:,:,IKE) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN @@ -568,13 +568,13 @@ END IF IF(HTURBDIM=='3DIM') THEN ! Compute the source for the W wind component ! used to compute the W source at the ground - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = 2 * ZFLXZ(:,:,IKB) - ZFLXZ(:,:,IKB+D%NKL) ! extrapolation - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKU) = 2 * ZFLXZ(:,:,IKE) - ZFLXZ(:,:,IKE-D%NKL) ! extrapolation - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! @@ -583,14 +583,14 @@ IF(HTURBDIM=='3DIM') THEN ZWORK2 = DZM(PRHODJ / MZF(PDZZ, D%NKA, D%NKU, D%NKL) * & MXF(MZF(ZFLXZ*PDZX, D%NKA, D%NKU, D%NKL) / PDXX ), & D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRWS(:,:,:)= PRWS(:,:,:) - ZWORK1(:,:,:) + ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = DXF(MZM(MXM(PRHODJ) /PDXX, D%NKA, D%NKU, D%NKL) * ZFLXZ ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRWS(:,:,:)= PRWS(:,:,:) - ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! Complete the Dynamical production with the W wind component @@ -626,9 +626,9 @@ IF (OOCEAN) THEN ) END IF ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! Storage in the LES configuration ! @@ -664,17 +664,17 @@ END IF ZWORK1 = MYM( ZKEFF ) ZWORK2 = MYM(MZM(PRHODJ, D%NKA, D%NKU, D%NKL)) ZWORK3 = MYM( PDZZ ) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = - PTSTEP * ZCMFS * ZWORK1(:,:,:) * ZWORK2(:,:,:) / & ZWORK3(:,:,:)**2 -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! ! ! Compute the source of V wind component ! compute the coefficient between the vertical flux and the 2 components of the ! wind following the slope -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) & * PSINSLOPE(:,:) ZCOEFFLXV(:,:,1) = PCDUEFF(:,:) * PDIRCOSZW(:,:) * PCOSSLOPE(:,:) @@ -682,7 +682,7 @@ ZCOEFFLXV(:,:,1) = PCDUEFF(:,:) * PDIRCOSZW(:,:) * PCOSSLOPE(:,:) ! prepare the implicit scheme coefficients for the surface flux ZCOEFS(:,:,1)= ZCOEFFLXU(:,:,1) * PSINSLOPE(:,:) * PDIRCOSZW(:,:) & +ZCOEFFLXV(:,:,1) * PCOSSLOPE(:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! average this flux to be located at the V,W vorticity point ZCOEFS(:,:,1:1)=MYM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) ) @@ -691,16 +691,16 @@ IF (OOCEAN) THEN ! Ocean case ZWORK1(:,:,D%NKU:D%NKU) = MXM(PRHODJ(:,:,D%NKU:D%NKU)) ZWORK2(:,:,IKE:IKE) = MXM(PRHODJ(:,:,IKE:IKE)) IF (OCOUPLES) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKE) = TURBN%XSSVFL_C(:,:,1)/PDZZ(:,:,IKE) & *0.5 * ( 1. + ZWORK1(:,:,D%NKU) / ZWORK2(:,:,IKE)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKE) = XSSVFL(:,:) ZSOURCE(:,:,IKE) = ZSOURCE(:,:,IKE)/PDZZ(:,:,IKE) & *0.5 * ( 1. + ZWORK1(:,:,D%NKU) / ZWORK2(:,:,IKE)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF !No flux at the ocean domain bottom ZSOURCE(:,:,IKB) = 0. @@ -714,29 +714,29 @@ ELSE ! Atmos case ! IF (.NOT.OCOUPLES) THEN ! only atmosp without coupling ! compute the explicit tangential flux at the W point - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = & PTAU11M(:,:) * PSINSLOPE(:,:) * PDIRCOSZW(:,:) * ZDIRSINZW(:,:) & +PTAU12M(:,:) * PCOSSLOPE(:,:) * ZDIRSINZW(:,:) & -PTAU33M(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZWORK4(:,:,IKB:IKB) = MYM( ZSOURCE(:,:,IKB:IKB) / PDZZ(:,:,IKB:IKB) ) ! ! add the vertical part or the surface flux at the V,W vorticity point - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = & ( ZWORK4(:,:,IKB) & + ZWORK3(:,:,IKB) & - ZCOEFS(:,:,1) * PVM(:,:,IKB) * PIMPL & ) * 0.5 * ( 1. + ZWORK1(:,:,D%NKA) / ZWORK2(:,:,IKB) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ELSE !atmosphere when coupling ! input flux assumed to be in SI and at vorticity point - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = -TURBN%XSSVFL_C(:,:,1)/(1.*PDZZ(:,:,IKB)) & * 0.5 * ( 1. + ZWORK1(:,:,D%NKA) / ZWORK2(:,:,IKB) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ENDIF !No flux at the atmosphere top ZSOURCE(:,:,IKE) = 0. @@ -753,7 +753,7 @@ ZWORK1 = MYM(PRHODJ(:,:,:)) ZWORK2 = MYM(ZKEFF) ZWORK3 = DZM(PIMPL*ZRES + PEXPL*PVM, D%NKA, D%NKU, D%NKL) ZWORK4 = MYM(PDZZ) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRVS(:,:,:)=PRVS(:,:,:)+ZWORK1(:,:,:)*(ZRES(:,:,:)-PVM(:,:,:))/PTSTEP ! ! @@ -762,9 +762,9 @@ PRVS(:,:,:)=PRVS(:,:,:)+ZWORK1(:,:,:)*(ZRES(:,:,:)-PVM(:,:,:))/PTSTEP ! vertical flux of the V wind component ! ZFLXZ(:,:,:) = -ZCMFS * ZWORK2(:,:,:) * ZWORK3(:,:,:) / ZWORK4(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKB) = ZWORK4(:,:,IKB) * & ( ZSOURCE(:,:,IKB) & +ZCOEFS(:,:,1) * ZRES(:,:,IKB) * PIMPL & @@ -772,15 +772,15 @@ ZFLXZ(:,:,IKB) = ZWORK4(:,:,IKB) * & ! ! ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKE) = ZWORK4(:,:,IKE) * & ZSOURCE(:,:,IKE) & / 0.5 / ( 1. + ZWORK1(:,:,D%NKU) / ZWORK1(:,:,IKE) ) ZFLXZ(:,:,D%NKU) = ZFLXZ(:,:,IKE) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN @@ -822,9 +822,9 @@ IF (OOCEAN) THEN ) END IF ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! Storage in the LES configuration ! @@ -842,13 +842,13 @@ END IF ! IF(HTURBDIM=='3DIM') THEN ! Compute the source for the W wind component - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = 2 * ZFLXZ(:,:,IKB) - ZFLXZ(:,:,IKB+D%NKL) ! extrapolation - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKU) = 2 * ZFLXZ(:,:,IKE) - ZFLXZ(:,:,IKE-D%NKL) ! extrapolation - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF (.NOT. O2D) THEN @@ -857,13 +857,13 @@ IF(HTURBDIM=='3DIM') THEN ZWORK2 = DZM(PRHODJ / MZF(PDZZ, D%NKA, D%NKU, D%NKL) * & MYF(MZF(ZFLXZ*PDZY, D%NKA, D%NKU, D%NKL) / PDYY ), & D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRWS(:,:,:)= PRWS(:,:,:) - ZWORK1(:,:,:) + ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRWS(:,:,:)= PRWS(:,:,:) - ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF ! @@ -898,9 +898,9 @@ IF(HTURBDIM=='3DIM') THEN ) END IF ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! END IF ! @@ -933,10 +933,10 @@ END IF ! IF ( OTURB_FLX .AND. TPFILE%LOPENED .AND. HTURBDIM == '1DIM') THEN ZWORK1 = GZ_W_M(PWM,PDZZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:)= (2./3.) * PTKEM(:,:,:) & -ZCMFS*PLM(:,:,:)*SQRT(PTKEM(:,:,:))*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! to be tested & ! +XCMFB*(4./3.)*PLM(:,:,:)/SQRT(PTKEM(:,:,:))*PTP(:,:,:) ! stores the W variance diff --git a/src/common/turb/mode_turb_ver_sv_corr.F90 b/src/common/turb/mode_turb_ver_sv_corr.F90 index 75ac0cc13..95a0a6568 100644 --- a/src/common/turb/mode_turb_ver_sv_corr.F90 +++ b/src/common/turb/mode_turb_ver_sv_corr.F90 @@ -156,10 +156,10 @@ DO JSV=1,KSV ! approximation: diagnosed explicitely (without implicit term) ZWORK1 = GZ_M_W(D%NKA, D%NKU, D%NKL,PSVM(:,:,:,JSV),PDZZ) ZWORK2 = MZF(ZFLXZ(:,:,:), D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = PPSI_SV(:,:,:,JSV)*ZWORK1(:,:,:)**2 ZFLXZ(:,:,:) = ZCSV / ZCSVD * PLM(:,:,:) * PLEPS(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) CALL LES_MEAN_SUBGRID(-2.*ZCSVD*SQRT(PTKEM)*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID(MZF(PWM, D%NKA, D%NKU, D%NKL)*ZFLXZ, X_LES_RES_W_SBG_Sv2(:,:,:,JSV) ) END IF @@ -173,15 +173,15 @@ DO JSV=1,KSV ZWORK1 = GZ_M_W(D%NKA, D%NKU, D%NKL,PTHLM,PDZZ) ZWORK2 = GZ_M_W(D%NKA, D%NKU, D%NKL,PSVM(:,:,:,JSV),PDZZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:)= ( CSTURB%XCSHF * PPHI3(:,:,:) + ZCSV * PPSI_SV(:,:,:,JSV) ) & * ZWORK1(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ZWORK3 = MZF(ZFLXZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:)= PLM(:,:,:) * PLEPS(:,:,:) / (2.*ZCTSVD) * ZWORK3(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! CALL LES_MEAN_SUBGRID( ZA*ZFLXZ, X_LES_SUBGRID_SvThv(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID( -CST%XG/PTHVREF/3.*ZA*ZFLXZ, X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.) @@ -190,14 +190,14 @@ DO JSV=1,KSV ZA(:,:,:) = EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN) ! ZWORK1 = GZ_M_W(D%NKA, D%NKU, D%NKL,PRM(:,:,:,1),PDZZ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:)= ( ZCSV * PPSI3(:,:,:) + ZCSV * PPSI_SV(:,:,:,JSV) ) & * ZWORK1(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZWORK3 = MZF(ZFLXZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:)= PLM(:,:,:) * PLEPS(:,:,:) / (2.*ZCQSVD) * ZWORK3(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) CALL LES_MEAN_SUBGRID( ZA*ZFLXZ, X_LES_SUBGRID_SvThv(:,:,:,JSV) , .TRUE.) CALL LES_MEAN_SUBGRID( -CST%XG/PTHVREF/3.*ZA*ZFLXZ, X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.) END IF diff --git a/src/common/turb/mode_turb_ver_sv_flux.F90 b/src/common/turb/mode_turb_ver_sv_flux.F90 index 4684ccfe6..e960864b4 100644 --- a/src/common/turb/mode_turb_ver_sv_flux.F90 +++ b/src/common/turb/mode_turb_ver_sv_flux.F90 @@ -321,9 +321,9 @@ IKB=D%NKB IKE=D%NKE ! IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50.*MFMOIST(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), D%NKA, D%NKU, D%NKL) ENDIF @@ -346,14 +346,14 @@ DO JSV=1,KSV ! ! Preparation of the arguments for TRIDIAG IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = -PTSTEP * ZKEFF(:,:,:) * ZWORK1(:,:,:) / PDZZ(:,:,:)**2 - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = -PTSTEP*ZCSV*PPSI_SV(:,:,:,JSV) * & ZKEFF(:,:,:) * ZWORK1(:,:,:) / PDZZ(:,:,:)**2 - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ZSOURCE(:,:,:) = 0. ! @@ -364,17 +364,17 @@ DO JSV=1,KSV !* in 1DIM case, the part of energy released in horizontal flux ! is taken into account in the vertical part IF (HTURBDIM=='3DIM') THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV)) / & PDZZ(:,:,IKB) * PDIRCOSZW(:,:) & * 0.5 * (1. + PRHODJ(:,:,D%NKA) / PRHODJ(:,:,IKB)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZSOURCE(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV)) / & PDZZ(:,:,IKB) / PDIRCOSZW(:,:) & * 0.5 * (1. + PRHODJ(:,:,D%NKA) / PRHODJ(:,:,IKB)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ZSOURCE(:,:,IKTB+1:IKTE-1) = 0. ZSOURCE(:,:,IKE) = 0. @@ -383,51 +383,51 @@ DO JSV=1,KSV CALL TRIDIAG(D,PSVM(:,:,:,JSV),ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,ZSOURCE,ZRES) ! ! Compute the equivalent tendency for the JSV scalar variable - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRSVS(:,:,:,JSV)= PRSVS(:,:,:,JSV)+ & PRHODJ(:,:,:)*(ZRES(:,:,:)-PSVM(:,:,:,JSV))/PTSTEP - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! IF ( (OTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL ) THEN ! Diagnostic of the cartesian vertical flux ! ZWORK1 = MZM(PLM*SQRT(PTKEM), D%NKA, D%NKU, D%NKL) ZWORK2 = DZM(PIMPL*ZRES(:,:,:) + PEXPL*PSVM(:,:,:,JSV), D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = -ZCSV * PPSI_SV(:,:,:,JSV) * ZWORK1(:,:,:) / PDZZ(:,:,:) * & ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! surface flux !* in 3DIM case, a part of the flux goes vertically, and another goes horizontally ! (in presence of slopes) !* in 1DIM case, the part of energy released in horizontal flux ! is taken into account in the vertical part IF (HTURBDIM=='3DIM') THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV)) & * PDIRCOSZW(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV)) & / PDIRCOSZW(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! extrapolates the flux under the ground so that the vertical average with ! the IKB flux gives the ground value ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWSV(:,:,JK,JSV)=0.5*(ZFLXZ(:,:,JK)+ZFLXZ(:,:,JK+D%NKL)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWSV(:,:,IKB,JSV)=0.5*(ZFLXZ(:,:,IKB)+ZFLXZ(:,:,IKB+D%NKL)) PWSV(:,:,IKE,JSV)=PWSV(:,:,IKE-D%NKL,JSV) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF (OTURB_FLX .AND. TPFILE%LOPENED) THEN diff --git a/src/common/turb/mode_turb_ver_thermo_corr.F90 b/src/common/turb/mode_turb_ver_thermo_corr.F90 index 820c39883..529bae238 100644 --- a/src/common/turb/mode_turb_ver_thermo_corr.F90 +++ b/src/common/turb/mode_turb_ver_thermo_corr.F90 @@ -367,14 +367,14 @@ GUSERV = (KRR/=0) ! ! compute the coefficients for the uncentred gradient computation near the ! ground -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZCOEFF(:,:,IKB+2*D%NKL)= - PDZZ(:,:,IKB+D%NKL) / & ( (PDZZ(:,:,IKB+2*D%NKL)+PDZZ(:,:,IKB+D%NKL)) * PDZZ(:,:,IKB+2*D%NKL) ) ZCOEFF(:,:,IKB+D%NKL)= (PDZZ(:,:,IKB+2*D%NKL)+PDZZ(:,:,IKB+D%NKL)) / & ( PDZZ(:,:,IKB+D%NKL) * PDZZ(:,:,IKB+2*D%NKL) ) ZCOEFF(:,:,IKB)= - (PDZZ(:,:,IKB+2*D%NKL)+2.*PDZZ(:,:,IKB+D%NKL)) / & ( (PDZZ(:,:,IKB+2*D%NKL)+PDZZ(:,:,IKB+D%NKL)) * PDZZ(:,:,IKB+D%NKL) ) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! IF (OHARAT) THEN @@ -382,13 +382,13 @@ PLMF=MZF(PLM, D%NKA, D%NKU, D%NKL) PLEPSF=PLMF ! function MZF produces -999 for level IKU (82 for 80 levels) ! so put these to normal value as this level (82) is indeed calculated -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PLMF(:,:,D%NKT)=0.001 PLEPSF(:,:,D%NKT)=0.001 -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50*MFMOIST(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), D%NKA, D%NKU, D%NKL) ENDIF @@ -423,14 +423,14 @@ END IF ! IF (OHARAT) THEN ZWORK1 = MZF(PDTH_DZ**2, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = PLMF(:,:,:)*PLEPSF(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = MZF(PPHI3*PDTH_DZ**2, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = CSTURB%XCTV*PLM(:,:,:)*PLEPS(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ZDFDDTDZ(:,:,:) = 0. ! this term, because of discretization, is treated separately ! @@ -442,10 +442,10 @@ ENDIF ZWORK2 = D_M3_TH2_WTH2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,& & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFTH2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFTH2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2th')/dz @@ -456,10 +456,10 @@ ENDIF ZWORK3 = D_M3_TH2_W2TH_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,& & PLM,PLEPS,PTKEM,GUSERV) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * ZWORK2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! IF (KRR/=0) THEN @@ -470,10 +470,10 @@ ENDIF ZWORK2 = D_M3_TH2_WR2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,& & PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTH_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFR2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFR2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2r')/dz @@ -484,10 +484,10 @@ ENDIF ZWORK3 = D_M3_TH2_W2R_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,& & PLM,PLEPS,PTKEM,PBLL_O_E,PEMOIST,PDTH_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * ZWORK2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'r')/dz @@ -497,22 +497,22 @@ ENDIF ZWORK2 = D_M3_TH2_WTHR_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,& & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTH_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFTHR(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFTHR(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF ! ZWORK1 = MZF(DZM(PTHLP - PTHLM, D%NKA, D%NKU, D%NKL) / PDZZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = ZF(:,:,:) + PIMPL * ZDFDDTDZ(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! special case near the ground ( uncentred gradient ) IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKB) = PLMF(:,:,IKB) & * PLEPSF(:,:,IKB) & *( PEXPL * & @@ -524,9 +524,9 @@ ENDIF +ZCOEFF(:,:,IKB+D%NKL )*PTHLP(:,:,IKB+D%NKL ) & +ZCOEFF(:,:,IKB )*PTHLP(:,:,IKB ) )**2 & ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,IKB) = CSTURB%XCTV * PPHI3(:,:,IKB+D%NKL) * PLM(:,:,IKB) & * PLEPS(:,:,IKB) & *( PEXPL * & @@ -538,21 +538,21 @@ ENDIF +ZCOEFF(:,:,IKB+D%NKL )*PTHLP(:,:,IKB+D%NKL ) & +ZCOEFF(:,:,IKB )*PTHLP(:,:,IKB ) )**2 & ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ENDIF ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = MAX(0., ZFLXZ(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! IF (KRRL > 0) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PSIGS(:,:,:) = ZFLXZ(:,:,:) * PATHETA(:,:,:)**2 - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! @@ -592,14 +592,14 @@ ENDIF ! Compute the turbulent variance F and F' at time t-dt. IF (OHARAT) THEN ZWORK1 = MZF(PDTH_DZ*PDR_DZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = PLMF(:,:,:)*PLEPSF(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = MZF(0.5*(PPHI3+PPSI3)*PDTH_DZ*PDR_DZ, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = CSTURB%XCTV*PLM(:,:,:)*PLEPS(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ZDFDDTDZ(:,:,:) = 0. ! this term, because of discretization, is treated separately ZDFDDRDZ(:,:,:) = 0. ! this term, because of discretization, is treated separately @@ -615,11 +615,11 @@ ENDIF ZWORK3 = D_M3_THR_WTH2_O_DDRDZ(D,CSTURB,PREDTH1,PREDR1,& & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFTH2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFTH2(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK3(:,:,:) * PFTH2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2th')/dz @@ -632,11 +632,11 @@ ENDIF ZWORK4 = D_M3_THR_W2TH_O_DDRDZ(D,CSTURB,PREDTH1,PREDR1,& & PD,PLM,PLEPS,PTKEM) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK4(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'r'2)/dz @@ -648,11 +648,11 @@ ENDIF ZWORK3 = D_M3_THR_WR2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,& & PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTH_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFR2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFR2(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK3(:,:,:) * PFR2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2r')/dz @@ -665,11 +665,11 @@ ENDIF ZWORK4 = D_M3_THR_W2R_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,& & PLM,PLEPS,PTKEM,PBLL_O_E,PDTH_DZ,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK4(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'r')/dz @@ -681,11 +681,11 @@ ENDIF ZWORK3 = D_M3_THR_WTHR_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,& & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFTHR(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFTHR(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK3(:,:,:) * PFTHR(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ZWORK1 = MZF(DZM(PTHLP - PTHLM(:,:,:), D%NKA, D%NKU, D%NKL) / PDZZ, D%NKA, D%NKU, D%NKL) @@ -697,13 +697,13 @@ ENDIF ) *PDTH_DZ *DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) / PDZZ & , D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = ZF(:,:,:) & + PIMPL * PLMF(:,:,:)*PLEPSF(:,:,:)*0.5 & * ZWORK3(:,:,:) & + PIMPL * ZDFDDTDZ(:,:,:) * ZWORK1(:,:,:) & + PIMPL * ZDFDDRDZ(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK3 = MZF(( D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV) & ! d(phi3*dthdz)/ddthdz term +D_PSI3DTDZ_O_DDTDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV) & ! d(psi3*dthdz)/ddthdz term @@ -713,17 +713,17 @@ ENDIF ) *PDTH_DZ *DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) / PDZZ & , D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = ZF(:,:,:) & + PIMPL * CSTURB%XCTV*PLM(:,:,:)*PLEPS(:,:,:)*0.5 & * ZWORK3(:,:,:) & + PIMPL * ZDFDDTDZ(:,:,:) * ZWORK1(:,:,:) & + PIMPL * ZDFDDRDZ(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ! ! special case near the ground ( uncentred gradient ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OHARAT) THEN ZFLXZ(:,:,IKB) = & (1. ) & @@ -763,16 +763,16 @@ ENDIF ENDIF ! ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! IF ( KRRL > 0 ) THEN ! ! ! NB PATHETA is -b in Chaboureau Bechtold 2002 which explains the + sign here - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PSIGS(:,:,:) = PSIGS(:,:,:) + & 2. * PATHETA(:,:,:) * PAMOIST(:,:,:) * ZFLXZ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! stores <THl Rnp> IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN @@ -811,14 +811,14 @@ END IF ! Compute the turbulent variance F and F' at time t-dt. IF (OHARAT) THEN ZWORK1 = MZF(PDR_DZ**2, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = PLMF(:,:,:)*PLEPSF(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = MZF(PPSI3*PDR_DZ**2, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = CSTURB%XCTV*PLM(:,:,:)*PLEPS(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ZDFDDRDZ(:,:,:) = 0. ! this term, because of discretization, is treated separately ! @@ -831,10 +831,10 @@ ENDIF ZWORK2 = D_M3_R2_WR2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,& & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFR2(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK2(:,:,:) * PFR2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2r')/dz @@ -845,10 +845,10 @@ ENDIF ZWORK3 = D_M3_R2_W2R_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,& & PD,PLM,PLEPS,PTKEM,GUSERV) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! IF (KRR/=0) THEN @@ -859,10 +859,10 @@ ENDIF ZWORK2 = D_M3_R2_WTH2_O_DDRDZ(D,CSTURB,PREDR1,& & PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDR_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFTH2(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK2(:,:,:) * PFTH2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2r')/dz @@ -873,10 +873,10 @@ ENDIF ZWORK3 = D_M3_R2_W2TH_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,& & PD,PLM,PLEPS,PTKEM,PBLL_O_E,PETHETA,PDR_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'r')/dz @@ -886,10 +886,10 @@ ENDIF ZWORK2 = D_M3_R2_WTHR_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,& & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDR_DZ) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFTHR(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK2(:,:,:) * PFTHR(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF @@ -899,27 +899,27 @@ ENDIF DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) / PDZZ, D%NKA, D%NKU, D%NKL) ZWORK2 = MZF(DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) / PDZZ, D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = ZF(:,:,:) & + PIMPL * PLMF(:,:,:) *PLEPSF(:,:,:) & * ZWORK1(:,:,:) & + PIMPL * ZDFDDRDZ(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = MZF(D_PSI3DRDZ2_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDR_DZ,HTURBDIM,GUSERV) & *DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) / PDZZ, D%NKA, D%NKU, D%NKL) ZWORK2 = MZF(DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) / PDZZ, D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = ZF(:,:,:) & + PIMPL * CSTURB%XCTV*PLM(:,:,:) *PLEPS(:,:,:) & * ZWORK1(:,:,:) & + PIMPL * ZDFDDRDZ(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ! ! special case near the ground ( uncentred gradient ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OHARAT) THEN ZFLXZ(:,:,IKB) = PLMF(:,:,IKB) & * PLEPSF(:,:,IKB) & @@ -947,12 +947,12 @@ ENDIF ENDIF ! ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! IF ( KRRL > 0 ) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PSIGS(:,:,:) = PSIGS(:,:,:) + PAMOIST(:,:,:) **2 * ZFLXZ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! stores <Rnp Rnp> IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN @@ -989,18 +989,18 @@ ENDIF ! IF ( KRRL > 0 ) THEN ! Extrapolate PSIGS at the ground and at the top - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PSIGS(:,:,D%NKA) = PSIGS(:,:,IKB) PSIGS(:,:,D%NKU) = PSIGS(:,:,IKE) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) #ifdef REPRO48 PSIGS(:,:,:) = MAX (PSIGS(:,:,:) , 0.) PSIGS(:,:,:) = SQRT(PSIGS(:,:,:)) #else PSIGS(:,:,:) = SQRT( MAX (PSIGS(:,:,:) , 1.E-12) ) #endif - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! diff --git a/src/common/turb/mode_turb_ver_thermo_flux.F90 b/src/common/turb/mode_turb_ver_thermo_flux.F90 index 47f8b5fae..1a8339f83 100644 --- a/src/common/turb/mode_turb_ver_thermo_flux.F90 +++ b/src/common/turb/mode_turb_ver_thermo_flux.F90 @@ -471,9 +471,9 @@ GUSERV = (KRR/=0) ! IF (OHARAT) THEN ! OHARAT so TKE and length scales at half levels! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) +50.*MFMOIST(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), D%NKA, D%NKU, D%NKL) ENDIF @@ -483,13 +483,13 @@ ENDIF IF(TURBN%LHGRAD) THEN IF ( KRRL >= 1 ) THEN IF ( KRRI >= 1 ) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZCLD_THOLD(:,:,:) = PRM(:,:,:,2) + PRM(:,:,:,4) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZCLD_THOLD(:,:,:) = PRM(:,:,:,2) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF END IF @@ -522,15 +522,15 @@ END IF ZWORK1 = DZM(PTHLM, D%NKA, D%NKU, D%NKL) ZWORK2 = D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV) IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = -ZKEFF(:,:,:)*ZWORK1(:,:,:)/PDZZ(:,:,:) ZDFDDTDZ(:,:,:) = -ZKEFF(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = -CSTURB%XCSHF*PPHI3(:,:,:)*ZKEFF(:,:,:)*ZWORK1(:,:,:)/PDZZ(:,:,:) ZDFDDTDZ(:,:,:) = -CSTURB%XCSHF*ZKEFF(:,:,:)*ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! IF (TURBN%LHGRAD) THEN @@ -551,10 +551,10 @@ IF (GFWTH) THEN ZWORK1 = D_M3_WTH_W2TH_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,& & PD,PBLL_O_E,PETHETA,ZKEFF,PTKEM) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:)= ZF(:,:,:) + Z3RDMOMENT(:,:,:) * PFWTH(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK1(:,:,:) * PFWTH(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'2)/dz @@ -564,10 +564,10 @@ IF (GFTH2) THEN & PD,PBLL_O_E,PETHETA) ZWORK2 = MZM(PFTH2, D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + Z3RDMOMENT(:,:,:) * ZWORK2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK1(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2r')/dz @@ -575,10 +575,10 @@ IF (GFWR) THEN ZWORK1 = M3_WTH_W2R(D,CSTURB,PD,ZKEFF,PTKEM,PBLL_O_E,PEMOIST,PDTH_DZ) ZWORK2 = D_M3_WTH_W2R_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,ZKEFF,PTKEM,PBLL_O_E,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFWR(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK2(:,:,:) * PFWR(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'r'2)/dz @@ -588,10 +588,10 @@ IF (GFR2) THEN ZWORK3 = D_M3_WTH_WR2_O_DDTDZ(D,CSTURB,PREDTH1,PREDR1,PD,& & ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * ZWORK2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'r')/dz @@ -601,23 +601,23 @@ IF (GFTHR) THEN ZWORK1 = D_M3_WTH_WTHR_O_DDTDZ(D,CSTURB,Z3RDMOMENT,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA) ZWORK2 = MZM(PFTHR, D%NKA, D%NKU, D%NKL) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + Z3RDMOMENT(:,:,:) * ZWORK2(:,:,:) ZDFDDTDZ(:,:,:) = ZDFDDTDZ(:,:,:) + ZWORK1(:,:,:) * ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! compute interface flux IF (OCOUPLES) THEN ! Autocoupling O-A LES IF (OOCEAN) THEN ! ocean model in coupled case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKE) = (TURBN%XSSTFL_C(:,:,1)+TURBN%XSSRFL_C(:,:,1)) & *0.5* ( 1. + PRHODJ(:,:,D%NKU)/PRHODJ(:,:,IKE) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE ! atmosph model in coupled case - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKB) = TURBN%XSSTFL_C(:,:,1) & *0.5* ( 1. + PRHODJ(:,:,D%NKA)/PRHODJ(:,:,IKB) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ENDIF ! ELSE ! No coupling O and A cases @@ -626,23 +626,23 @@ ELSE ! No coupling O and A cases ! and another goes horizontally (in presence of slopes) !*In 1D, part of energy released in horizontal flux is taken into account in the vertical part IF (HTURBDIM=='3DIM') THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKB) = ( PIMPL*PSFTHP(:,:) + PEXPL*PSFTHM(:,:) ) & * PDIRCOSZW(:,:) & * 0.5 * (1. + PRHODJ(:,:,D%NKA) / PRHODJ(:,:,IKB)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKB) = ( PIMPL*PSFTHP(:,:) + PEXPL*PSFTHM(:,:) ) & / PDIRCOSZW(:,:) & * 0.5 * (1. + PRHODJ(:,:,D%NKA) / PRHODJ(:,:,IKB)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKE) = XSSTFL(:,:) *0.5*(1. + PRHODJ(:,:,D%NKU) / PRHODJ(:,:,IKE)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE !end ocean case (in nocoupled case) ! atmos top #ifdef REPRO48 @@ -658,28 +658,28 @@ CALL TRIDIAG_THERMO(D,PTHLM,ZF,ZDFDDTDZ,PTSTEP,PIMPL,PDZZ,& ! ! Compute the equivalent tendency for the conservative potential temperature ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZRWTHL(:,:,:)= PRHODJ(:,:,:)*(PTHLP(:,:,:)-PTHLM(:,:,:))/PTSTEP -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD IF (TURBN%LHGRAD) THEN DO JK=1,D%NKU - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZALT(:,:,JK) = PZZ(:,:,JK)-XZS(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ZWORK1 = GZ_W_M(MZM(PRHODJ(:,:,:), D%NKA, D%NKU, D%NKL)*ZF_LEONARD(:,:,:),XDZZ,& D%NKA, D%NKU, D%NKL) - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE ( (ZCLD_THOLD(:,:,:) >= TURBN%XCLDTHOLD) .AND. ( ZALT(:,:,:) >= TURBN%XALTHGRAD) ) ZRWTHL(:,:,:) = -ZWORK1(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ZWORK1 = DZM(PTHLP - PTHLM, D%NKA, D%NKU, D%NKL) ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRTHLS(:,:,:)= PRTHLS(:,:,:) + ZRWTHL(:,:,:) ! !* 2.2 Partial Thermal Production @@ -688,47 +688,47 @@ PRTHLS(:,:,:)= PRTHLS(:,:,:) + ZRWTHL(:,:,:) ! ! ZFLXZ(:,:,:) = ZF(:,:,:) + PIMPL * ZDFDDTDZ(:,:,:) * ZWORK1(:,:,:)/ PDZZ(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! replace the flux by the Leonard terms IF (TURBN%LHGRAD) THEN - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE ( (ZCLD_THOLD(:,:,:) >= TURBN%XCLDTHOLD) .AND. ( ZALT(:,:,:) >= TURBN%XALTHGRAD) ) ZFLXZ(:,:,:) = ZF_LEONARD(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKU) = ZFLXZ(:,:,IKE) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTH(:,:,JK)=0.5*(ZFLXZ(:,:,JK)+ZFLXZ(:,:,JK+D%NKL)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTH(:,:,IKB)=0.5*(ZFLXZ(:,:,IKB)+ZFLXZ(:,:,IKB+D%NKL)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTH(:,:,IKE)=0.5*(ZFLXZ(:,:,IKE)+ZFLXZ(:,:,IKE+D%NKL)) PWTH(:,:,D%NKA)=0. PWTH(:,:,D%NKU)=ZFLXZ(:,:,D%NKU) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTH(:,:,D%NKA)=0.5*(ZFLXZ(:,:,D%NKA)+ZFLXZ(:,:,D%NKA+D%NKL)) PWTH(:,:,IKE)=PWTH(:,:,IKE-D%NKL) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN @@ -749,42 +749,42 @@ END IF ! Contribution of the conservative temperature flux to the buoyancy flux IF (OOCEAN) THEN ZWORK1 = MZF(ZFLXZ,D%NKA, D%NKU, D%NKL ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTP(:,:,:)= CST%XG*CST%XALPHAOC * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE IF (KRR /= 0) THEN ZWORK1 = MZF( MZM(PETHETA,D%NKA, D%NKU, D%NKL) * ZFLXZ,D%NKA, D%NKU, D%NKL ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTP(:,:,:) = PBETA(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PTP(:,:,IKB)= PBETA(:,:,IKB) * PETHETA(:,:,IKB) * & 0.5 * ( ZFLXZ(:,:,IKB) + ZFLXZ(:,:,IKB+D%NKL) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE ZWORK1 = MZF( ZFLXZ,D%NKA, D%NKU, D%NKL ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTP(:,:,:)= PBETA(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF ! ! Buoyancy flux at flux points ! ZWORK1 = MZM(PETHETA, D%NKA, D%NKU, D%NKL) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PWTHV(:,:,:) = ZWORK1(:,:,:) * ZFLXZ(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTHV(:,:,IKB) = PETHETA(:,:,IKB) * ZFLXZ(:,:,IKB) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! IF (OOCEAN) THEN ! temperature contribution to Buy flux - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTHV(:,:,IKE) = PETHETA(:,:,IKE) * ZFLXZ(:,:,IKE) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF !* 2.3 Partial vertical divergence of the < Rc w > flux ! Correction for qc and qi negative in AROME @@ -792,19 +792,19 @@ IF(HPROGRAM/='AROME ') THEN IF ( KRRL >= 1 ) THEN ZWORK1=DZF(ZFLXZ/PDZZ, D%NKA, D%NKU, D%NKL) IF ( KRRI >= 1 ) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRRS(:,:,:,2) = PRRS(:,:,:,2) - & PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:)*ZWORK1(:,:,:) & *(1.0-PFRAC_ICE(:,:,:)) PRRS(:,:,:,4) = PRRS(:,:,:,4) - & PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:)* ZWORK1(:,:,:)& *PFRAC_ICE(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRRS(:,:,:,2) = PRRS(:,:,:,2) - & PRHODJ(:,:,:)*PATHETA(:,:,:)*2.*PSRCM(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF END IF @@ -825,21 +825,21 @@ IF (OLES_CALL) THEN END IF !* diagnostic of mixing coefficient for heat ZA = DZM(PTHLP, D%NKA, D%NKU, D%NKL) - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE (ZA(:,:,:)==0.) ZA(:,:,:)=1.E-6 END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = - ZFLXZ(:,:,:) / ZA(:,:,:) * PDZZ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZA(:,:,IKB) = CSTURB%XCSHF*PPHI3(:,:,IKB)*ZKEFF(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZA = MZF(ZA, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = MIN(MAX(ZA(:,:,:),-1000.),1000.) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) CALL LES_MEAN_SUBGRID( ZA, X_LES_SUBGRID_Kh ) ! CALL SECOND_MNH(ZTIME2) @@ -865,16 +865,16 @@ IF (KRR /= 0) THEN ! ZWORK1 = DZM(PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = -ZKEFF(:,:,:)*ZWORK1(:,:,:)/PDZZ(:,:,:) ZDFDDRDZ(:,:,:) = -ZKEFF(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK2 = D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = -CSTURB%XCSHF*PPSI3(:,:,:)*ZKEFF(:,:,:)*ZWORK1(:,:,:)/PDZZ(:,:,:) ZDFDDRDZ(:,:,:) = -CSTURB%XCSHF*ZKEFF(:,:,:)*ZWORK2(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF ! ! Compute Leonard Terms for Cloud mixing ratio @@ -895,10 +895,10 @@ IF (KRR /= 0) THEN ZWORK1 = D_M3_WR_W2R_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,& & PBLL_O_E,PEMOIST,ZKEFF,PTKEM) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + Z3RDMOMENT(:,:,:) * PFWR(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK1(:,:,:) * PFWR(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'r'2)/dz @@ -908,10 +908,10 @@ IF (KRR /= 0) THEN ZWORK2 = D_M3_WR_WR2_O_DDRDZ(D,CSTURB,Z3RDMOMENT,PREDR1,& & PREDTH1,PD,PBLL_O_E,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + Z3RDMOMENT(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'2th')/dz @@ -921,10 +921,10 @@ IF (KRR /= 0) THEN ZWORK2 = D_M3_WR_W2TH_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,& & PD,ZKEFF,PTKEM,PBLL_O_E,PETHETA) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK1(:,:,:) * PFWTH(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK2(:,:,:) * PFWTH(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'2)/dz @@ -935,10 +935,10 @@ IF (KRR /= 0) THEN ZWORK3 = D_M3_WR_WTH2_O_DDRDZ(D,CSTURB,PREDR1,PREDTH1,PD,& &ZKEFF,PTKEM,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK3(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! d(w'th'r')/dz @@ -949,10 +949,10 @@ IF (KRR /= 0) THEN ZWORK2 = D_M3_WR_WTHR_O_DDRDZ(D,CSTURB,Z3RDMOMENT,PREDR1, & & PREDTH1,PD,PBLL_O_E,PEMOIST) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZF(:,:,:) = ZF(:,:,:) + Z3RDMOMENT(:,:,:) * ZWORK1(:,:,:) ZDFDDRDZ(:,:,:) = ZDFDDRDZ(:,:,:) + ZWORK2(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! compute interface flux @@ -973,17 +973,17 @@ IF (KRR /= 0) THEN ! is taken into account in the vertical part ! IF (HTURBDIM=='3DIM') THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKB) = ( PIMPL*PSFRP(:,:) + PEXPL*PSFRM(:,:) ) & * PDIRCOSZW(:,:) & * 0.5 * (1. + PRHODJ(:,:,D%NKA) / PRHODJ(:,:,IKB)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZF(:,:,IKB) = ( PIMPL*PSFRP(:,:) + PEXPL*PSFRM(:,:) ) & / PDIRCOSZW(:,:) & * 0.5 * (1. + PRHODJ(:,:,D%NKA) / PRHODJ(:,:,IKB)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! IF (OOCEAN) THEN @@ -1004,27 +1004,27 @@ IF (KRR /= 0) THEN ! ! Compute the equivalent tendency for the conservative mixing ratio ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZRWRNP(:,:,:) = PRHODJ(:,:,:)*(PRP(:,:,:)-PRM(:,:,:,1))/PTSTEP - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD IF (TURBN%LHGRAD) THEN DO JK=1,D%NKU - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZALT(:,:,JK) = PZZ(:,:,JK)-XZS(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO ZWORK1 = GZ_W_M(MZM(PRHODJ(:,:,:),D%NKA,D%NKU,D%NKL)*ZF_LEONARD(:,:,:),XDZZ,D%NKA,D%NKU,D%NKL) - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE ( (ZCLD_THOLD(:,:,:) >= TURBN%XCLDTHOLD ) .AND. ( ZALT(:,:,:) >= TURBN%XALTHGRAD ) ) ZRWRNP(:,:,:) = -ZWORK1(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ZWORK1 = DZM(PRP - PRM(:,:,:,1), D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRRS(:,:,:,1) = PRRS(:,:,:,1) + ZRWRNP(:,:,:) ! !* 3.2 Complete thermal production @@ -1033,31 +1033,31 @@ IF (KRR /= 0) THEN ! ZFLXZ(:,:,:) = ZF(:,:,:) & + PIMPL * ZDFDDRDZ(:,:,:) * ZWORK1(:,:,:) / PDZZ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD IF (TURBN%LHGRAD) THEN - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE ( (ZCLD_THOLD(:,:,:) >= TURBN%XCLDTHOLD ) .AND. ( ZALT(:,:,:) >= TURBN%XALTHGRAD ) ) ZFLXZ(:,:,:) = ZF_LEONARD(:,:,:) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! DO JK=IKTB+1,IKTE-1 - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWRC(:,:,JK)=0.5*(ZFLXZ(:,:,JK)+ZFLXZ(:,:,JK+D%NKL)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END DO - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWRC(:,:,IKB)=0.5*(ZFLXZ(:,:,IKB)+ZFLXZ(:,:,IKB+D%NKL)) PWRC(:,:,D%NKA)=0.5*(ZFLXZ(:,:,D%NKA)+ZFLXZ(:,:,D%NKA+D%NKL)) PWRC(:,:,IKE)=PWRC(:,:,IKE-D%NKL) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN @@ -1078,36 +1078,36 @@ IF (KRR /= 0) THEN ! Contribution of the conservative water flux to the Buoyancy flux IF (OOCEAN) THEN ZWORK1 = MZF(ZFLXZ, D%NKA, D%NKU, D%NKL ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:)= -CST%XG*CST%XBETAOC * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK1 = MZF( MZM(PEMOIST, D%NKA, D%NKU, D%NKL) * ZFLXZ,D%NKA,D%NKU,D%NKL ) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = PBETA(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZA(:,:,IKB) = PBETA(:,:,IKB) * PEMOIST(:,:,IKB) * & 0.5 * ( ZFLXZ(:,:,IKB) + ZFLXZ(:,:,IKB+D%NKL) ) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTP(:,:,:) = PTP(:,:,:) + ZA(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! ! Buoyancy flux at flux points ! ZWORK1 = MZM(PEMOIST, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PWTHV(:,:,:) = PWTHV(:,:,:) + ZWORK1(:,:,:) * ZFLXZ(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTHV(:,:,IKB) = PWTHV(:,:,IKB) + PEMOIST(:,:,IKB) * ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (OOCEAN) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) PWTHV(:,:,IKE) = PWTHV(:,:,IKE) + PEMOIST(:,:,IKE)* ZFLXZ(:,:,IKE) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) END IF ! !* 3.3 Complete vertical divergence of the < Rc w > flux @@ -1116,19 +1116,19 @@ IF(HPROGRAM/='AROME ') THEN IF ( KRRL >= 1 ) THEN ZWORK1 = DZF(ZFLXZ/PDZZ,D%NKA,D%NKU,D%NKL ) IF ( KRRI >= 1 ) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRRS(:,:,:,2) = PRRS(:,:,:,2) - & PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:)*ZWORK1(:,:,:) & *(1.0-PFRAC_ICE(:,:,:)) PRRS(:,:,:,4) = PRRS(:,:,:,4) - & PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:)*ZWORK1(:,:,:) & *PFRAC_ICE(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRRS(:,:,:,2) = PRRS(:,:,:,2) - & PRHODJ(:,:,:)*PAMOIST(:,:,:)*2.*PSRCM(:,:,:)*ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF END IF @@ -1167,28 +1167,28 @@ IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL) .AND. (KRRL > 0) ) THEN ! yet modify to use length scale and tke at half levels from vdfexcuhl ZWORK1 = DZM(PIMPL * PTHLP + PEXPL * PTHLM, D%NKA, D%NKU, D%NKL) IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = ZWORK1(:,:,:)/ PDZZ(:,:,:) * (-PLM(:,:,:)*PSQRT_TKE(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZWORK2 = MZM(PLM*PSQRT_TKE, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZA(:,:,:) = ZWORK1(:,:,:)/ PDZZ(:,:,:) * (-PPHI3(:,:,:)*ZWORK2(:,:,:)) * CSTURB%XCSHF - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ENDIF - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZA(:,:,IKB) = (PIMPL*PSFTHP(:,:) + PEXPL*PSFTHM(:,:)) * PDIRCOSZW(:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! compute <w Rc> ZWORK1 = MZM(PAMOIST * 2.* PSRCM, D%NKA, D%NKU, D%NKL) ZWORK2 = MZM(PATHETA * 2.* PSRCM, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZFLXZ(:,:,:) = ZWORK1(:,:,:)* ZFLXZ(:,:,:) + ZWORK2(:,:,:)* ZA(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZFLXZ(:,:,D%NKA) = ZFLXZ(:,:,IKB) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ! store the liquid water mixing ratio vertical flux IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90 index 05f12a884..639ea970f 100644 --- a/src/common/turb/turb.F90 +++ b/src/common/turb/turb.F90 @@ -511,7 +511,7 @@ END IF ! !* 2.1 Cph at t ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZCP(:,:,:)=CST%XCPD ! IF (KRR > 0) ZCP(:,:,:) = ZCP(:,:,:) + CST%XCPV * PRT(:,:,:,1) @@ -522,25 +522,25 @@ END DO DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components ZCP(:,:,:) = ZCP(:,:,:) + CST%XCI * PRT(:,:,:,JRR) END DO -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! !* 2.2 Exner function at t ! IF (OOCEAN) THEN -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZEXN(:,:,:) = 1. -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZEXN(:,:,:) = (PPABST(:,:,:)/CST%XP00) ** (CST%XRD/CST%XCPD) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! !* 2.3 dissipative heating coeff a t ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZCOEF_DISS(:,:,:) = 1/(ZCP(:,:,:) * ZEXN(:,:,:)) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ! ZFRAC_ICE(:,:,:) = 0.0 @@ -551,9 +551,9 @@ IF (KRRL >=1) THEN ! !* 2.4 Temperature at t ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZT(:,:,:) = PTHLT(:,:,:) * ZEXN(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! !* 2.5 Lv/Cph/Exn ! @@ -563,20 +563,20 @@ IF (KRRL >=1) THEN CALL COMPUTE_FUNCTION_THERMO(CST%XALPI,CST%XBETAI,CST%XGAMI,CST%XLSTT,CST%XCI,ZT,ZEXN,ZCP, & ZLSOCPEXNM,ZAMOIST_ICE,ZATHETA_ICE) ! - !$mnh_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) WHERE(PRT(:,:,:,2)+PRT(:,:,:,4)>0.0) ZFRAC_ICE(:,:,:) = PRT(:,:,:,4) / ( PRT(:,:,:,2)+PRT(:,:,:,4) ) END WHERE - !$mnh_end_expand_where(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_where(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZLOCPEXNM(:,:,:) = (1.0-ZFRAC_ICE(:,:,:))*ZLVOCPEXNM(:,:,:) & +ZFRAC_ICE(:,:,:) *ZLSOCPEXNM(:,:,:) ZAMOIST(:,:,:) = (1.0-ZFRAC_ICE(:,:,:))*ZAMOIST(:,:,:) & +ZFRAC_ICE(:,:,:) *ZAMOIST_ICE(:,:,:) ZATHETA(:,:,:) = (1.0-ZFRAC_ICE(:,:,:))*ZATHETA(:,:,:) & +ZFRAC_ICE(:,:,:) *ZATHETA_ICE(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE CALL COMPUTE_FUNCTION_THERMO(CST%XALPW,CST%XBETAW,CST%XGAMW,CST%XLVTT,CST%XCL,ZT,ZEXN,ZCP, & ZLOCPEXNM,ZAMOIST,ZATHETA) @@ -617,7 +617,7 @@ END IF ! loop end on KRRL >= 1 ! IF ( KRRL >= 1 ) THEN IF ( KRRI >= 1 ) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! Rnp at t PRT(:,:,:,1) = PRT(:,:,:,1) + PRT(:,:,:,2) + PRT(:,:,:,4) PRRS(:,:,:,1) = PRRS(:,:,:,1) + PRRS(:,:,:,2) + PRRS(:,:,:,4) @@ -626,16 +626,16 @@ IF ( KRRL >= 1 ) THEN - ZLSOCPEXNM(:,:,:) * PRT(:,:,:,4) PRTHLS(:,:,:) = PRTHLS(:,:,:) - ZLVOCPEXNM(:,:,:) * PRRS(:,:,:,2) & - ZLSOCPEXNM(:,:,:) * PRRS(:,:,:,4) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! Rnp at t PRT(:,:,:,1) = PRT(:,:,:,1) + PRT(:,:,:,2) PRRS(:,:,:,1) = PRRS(:,:,:,1) + PRRS(:,:,:,2) ! Theta_l at t PTHLT(:,:,:) = PTHLT(:,:,:) - ZLOCPEXNM(:,:,:) * PRT(:,:,:,2) PRTHLS(:,:,:) = PRTHLS(:,:,:) - ZLOCPEXNM(:,:,:) * PRRS(:,:,:,2) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF ! @@ -670,9 +670,9 @@ SELECT CASE (HTURBLEN) CASE ('RM17') ZDUDZ = MXF(MZF(GZ_U_UW(PUT,PDZZ,D%NKA,D%NKU,D%NKL),D%NKA,D%NKU,D%NKL)) ZDVDZ = MYF(MZF(GZ_V_VW(PVT,PDZZ,D%NKA,D%NKU,D%NKL),D%NKA,D%NKU,D%NKL)) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZSHEAR(:,:,:) = SQRT(ZDUDZ(:,:,:)*ZDUDZ(:,:,:) + ZDVDZ(:,:,:)*ZDVDZ(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) CALL BL89(D,CST,CSTURB,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,ZLM,OOCEAN,HPROGRAM) ! !* 3.3 Grey-zone combined RM17 & Deardorff mixing lengths @@ -681,9 +681,9 @@ SELECT CASE (HTURBLEN) CASE ('ADAP') ZDUDZ = MXF(MZF(GZ_U_UW(PUT,PDZZ,D%NKA,D%NKU,D%NKL),D%NKA,D%NKU,D%NKL)) ZDVDZ = MYF(MZF(GZ_V_VW(PVT,PDZZ,D%NKA,D%NKU,D%NKL),D%NKA,D%NKU,D%NKL)) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZSHEAR(:,:,:) = SQRT(ZDUDZ(:,:,:)*ZDUDZ(:,:,:) + ZDVDZ(:,:,:)*ZDVDZ(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) CALL BL89(D,CST,CSTURB,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,ZLM,OOCEAN,HPROGRAM) CALL DELT(ZLMW,ODZ=.FALSE.) @@ -693,9 +693,9 @@ SELECT CASE (HTURBLEN) ! and it is limited by a stability-based length (RM17), as was done in Deardorff length (but taking into account shear as well) ! For grid meshes in the grey zone, then this is the smaller of the two. ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZLM(:,:,:) = MIN(ZLM(:,:,:),TURBN%XCADAP*ZLMW(:,:,:)) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! !* 3.4 Delta mixing length ! ------------------- @@ -718,13 +718,13 @@ SELECT CASE (HTURBLEN) ZALPHA=0.5**(-1.5) ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) DO JK=IKTB,IKTE ZLM(:,:,JK) = ( 0.5*(PZZ(:,:,JK)+PZZ(:,:,JK+D%NKL)) - & & PZZ(:,:,D%NKA+JPVEXT_TURB*D%NKL) ) * PDIRCOSZW(:,:) ZLM(:,:,JK) = ZALPHA * ZLM(:,:,JK) * ZL0 / ( ZL0 + ZALPHA*ZLM(:,:,JK) ) END DO - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ! ZLM(:,:,IKTB-1) = ZLM(:,:,IKTB) ZLM(:,:,IKTE+1) = ZLM(:,:,IKTE) @@ -743,9 +743,9 @@ ENDIF ! end LHARRAT ! ------------------ IF (OHARAT) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZLEPS(:,:,:)=PLENGTHM(:,:,:)*(3.75**2.) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE ZLEPS(:,:,:)=ZLM(:,:,:) ENDIF @@ -753,13 +753,13 @@ ENDIF !* 3.7 Correction in the Surface Boundary Layer (Redelsperger 2001) ! ---------------------------------------- ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZLMO(:,:)=XUNDEF -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) IF (ORMC01) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZUSTAR(:,:)=(PSFU(:,:)**2+PSFV(:,:)**2)**(0.25) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) IF (KRR>0) THEN ZLMO=LMO(ZUSTAR,ZTHLM(:,:,IKB),ZRM(:,:,IKB,1),PSFTH,PSFRV) ELSE @@ -772,9 +772,9 @@ END IF ! !RMC01 is only applied on RM17 in ADAP IF (HTURBLEN=='ADAP') THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZLEPS(:,:,:) = MIN(ZLEPS(:,:,:),ZLMW(:,:,:)*TURBN%XCADAP) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! !* 3.8 Mixing length in external points (used if HTURBDIM="3DIM") @@ -816,7 +816,7 @@ END IF ! !* 4.2 compute the proportionality coefficient between wind and stress ! -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) / & #ifdef REPRO48 (1.E-60 + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) ) @@ -831,7 +831,7 @@ ZTAU11M(:,:) =2./3.*( (1.+ (PZZ(:,:,IKB+D%NKL)-PZZ(:,:,IKB)) & ) *PTKET(:,:,IKB) & -0.5 *PTKET(:,:,IKB+D%NKL) & ) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT) ZTAU12M(:,:) =0.0 ZTAU22M(:,:) =ZTAU11M(:,:) ZTAU33M(:,:) =ZTAU11M(:,:) @@ -1073,15 +1073,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=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTP(:,:,:) = PTP(:,:,:) + CST%XG / PTHVREF(:,:,:) * ZWORK1(:,:,:) -!$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) IF(PRESENT(PTPMF)) THEN ZWORK1 = MZF(PFLXZTHVMF, D%NKA, D%NKU, D%NKL) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PTPMF(:,:,:)=CST%XG / PTHVREF(:,:,:) * ZWORK1(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF ! 6.2 TKE evolution equation @@ -1180,15 +1180,15 @@ END IF ! !* stores value of conservative variables & wind before turbulence tendency (AROME only) IF(PRESENT(PDRUS_TURB)) THEN -!$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) +!$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PDRUS_TURB(:,:,:) = PRUS(:,:,:) - PDRUS_TURB(:,:,:) PDRVS_TURB(:,:,:) = PRVS(:,:,:) - PDRVS_TURB(:,:,:) PDRTHLS_TURB(:,:,:) = PRTHLS(:,:,:) - PDRTHLS_TURB(:,:,:) PDRRTS_TURB(:,:,:) = PRRS(:,:,:,1) - PDRRTS_TURB(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT,JSV=1:KSV) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT,JSV=1:KSV) PDRSVS_TURB(:,:,:,:) = PRSVS(:,:,:,:) - PDRSVS_TURB(:,:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT,JSV=1:KSV) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT,JSV=1:KSV) END IF !---------------------------------------------------------------------------- ! @@ -1197,22 +1197,22 @@ END IF ! IF ( KRRL >= 1 ) THEN IF ( KRRI >= 1 ) THEN - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRT(:,:,:,1) = PRT(:,:,:,1) - PRT(:,:,:,2) - PRT(:,:,:,4) PRRS(:,:,:,1) = PRRS(:,:,:,1) - PRRS(:,:,:,2) - PRRS(:,:,:,4) PTHLT(:,:,:) = PTHLT(:,:,:) + ZLVOCPEXNM(:,:,:) * PRT(:,:,:,2) & + ZLSOCPEXNM(:,:,:) * PRT(:,:,:,4) PRTHLS(:,:,:) = PRTHLS(:,:,:) + ZLVOCPEXNM(:,:,:) * PRRS(:,:,:,2) & + ZLSOCPEXNM(:,:,:) * PRRS(:,:,:,4) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! ELSE - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PRT(:,:,:,1) = PRT(:,:,:,1) - PRT(:,:,:,2) PRRS(:,:,:,1) = PRRS(:,:,:,1) - PRRS(:,:,:,2) PTHLT(:,:,:) = PTHLT(:,:,:) + ZLOCPEXNM(:,:,:) * PRT(:,:,:,2) PRTHLS(:,:,:) = PRTHLS(:,:,:) + ZLOCPEXNM(:,:,:) * PRRS(:,:,:,2) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF @@ -1415,7 +1415,7 @@ INTEGER :: JI,JJ,JK ! !* 1.1 Lv/Cph at t ! - !$mnh_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PLOCPEXN(:,:,:) = ( PLTT + (CST%XCPV-PC) * (PT(:,:,:)-CST%XTT) ) / PCP(:,:,:) ! !* 1.2 Saturation vapor pressure at t @@ -1452,7 +1452,7 @@ INTEGER :: JI,JJ,JK !* 1.7 Lv/Cph/Exner at t-1 ! PLOCPEXN(:,:,:) = PLOCPEXN(:,:,:) / PEXN(:,:,:) - !$mnh_end_expand_array(JI=D%NIB:D%NIE,JJ=D%NJB:D%NJE,JK=1:D%NKT) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ! IF (LHOOK) CALL DR_HOOK('TURB:COMPUTE_FUNCTION_THERMO',1,ZHOOK_HANDLE) END SUBROUTINE COMPUTE_FUNCTION_THERMO -- GitLab