diff --git a/src/common/turb/mode_emoist.F90 b/src/common/turb/mode_emoist.F90 index 531f156fcef67d74332e2846e687f16992acfe4d..f8b2f11223610782ab523becd9155fbdc53abf38 100644 --- a/src/common/turb/mode_emoist.F90 +++ b/src/common/turb/mode_emoist.F90 @@ -89,6 +89,7 @@ REAL,DIMENSION(D%NIT,D%NJT,D%NKT) :: & ! ZA = coeft A, ZRW = total mixing ratio rw REAL :: ZDELTA ! = Rv/Rd - 1 INTEGER :: JRR ! moist loop counter +INTEGER :: JI,JJ,JK ! loop counter ! !--------------------------------------------------------------------------- ! @@ -112,12 +113,15 @@ ELSE PEMOIST(:,:,:) = 0. ELSE IF ( KRR == 1 ) THEN ! only vapor ZDELTA = (CST%XRV/CST%XRD) - 1. + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PEMOIST(:,:,:) = ZDELTA*PTHLM(:,:,:) + !$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 + IF ( KRRI>0) THEN ! rc and ri case + !$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) @@ -140,7 +144,9 @@ ELSE PRM(:,:,:,2)+PRM(:,:,:,4)))& / (1. + ZRW(:,:,:)) & ) * PAMOIST(:,:,:) * 2. * PSRCM(:,:,:) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) DO JRR=3,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) ENDDO @@ -160,6 +166,7 @@ ELSE -(1.+ZDELTA) * (PTHLM(:,:,:) + PLOCPEXNM(:,:,:)*PRM(:,:,:,2)) & / (1. + ZRW(:,:,:)) & ) * PAMOIST(:,:,:) * 2. * PSRCM(:,:,:) + !$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 96bcf2680c4f6dba1e7d960ea05f905dda8bba93..9ccbab9259ccf64fa048feb34a3f09e2b5c803a4 100644 --- a/src/common/turb/mode_etheta.F90 +++ b/src/common/turb/mode_etheta.F90 @@ -93,6 +93,7 @@ REAL,DIMENSION(D%NIT,D%NJT,D%NKT) :: & ! ZA = coeft A, ZRW = total mixing ratio rw REAL :: ZDELTA ! = Rv/Rd - 1 INTEGER :: JRR ! moist loop counter +INTEGER :: JI,JJ,JK ! loop counter ! !--------------------------------------------------------------------------- ! @@ -107,15 +108,20 @@ IF (OOCEAN) THEN ! ocean case PETHETA(:,:,:) = 1. ELSE IF ( KRR == 0) THEN ! dry case + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PETHETA(:,:,:) = 1. + !$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=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) PETHETA(:,:,:) = 1. + ZDELTA*PRM(:,:,:,1) + !$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=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,3) DO JRR=5,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) @@ -135,7 +141,9 @@ ELSE PRM(:,:,:,2)+PRM(:,:,:,4)))& / (1. + ZRW(:,:,:)) & ) * PATHETA(:,:,:) * 2. * PSRCM(:,:,:) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) ELSE + !$mnh_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) DO JRR=3,KRR ZRW(:,:,:) = ZRW(:,:,:) + PRM(:,:,:,JRR) ENDDO @@ -153,6 +161,7 @@ ELSE -(1.+ZDELTA) * (PTHLM(:,:,:) + PLOCPEXNM(:,:,:)*PRM(:,:,:,2)) & / (1. + ZRW(:,:,:)) & ) * PATHETA(:,:,:) * 2. * PSRCM(:,:,:) + !$mnh_end_expand_array(JI=1:D%NIT,JJ=1:D%NJT,JK=1:D%NKT) END IF END IF !