diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90 index 3c4d4877355864790db10e39043841e4ddcf0806..93378881d4f32ca61ade3c728866f9c9ff114d64 100644 --- a/src/MNH/turb_hor_thermo_corr.f90 +++ b/src/MNH/turb_hor_thermo_corr.f90 @@ -347,7 +347,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & #ifndef MNH_BITREP ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 ) #else - ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE) + BR_P2(ZTMP2_DEVICE) ) +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) + ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE(:,:,:)) + BR_P2(ZTMP2_DEVICE(:,:,:)) ) +!$mnh_end_expand_array() #endif !$acc end kernels ELSE @@ -356,7 +358,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & #ifndef MNH_BITREP ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2 #else - ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE) +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) + ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE(:,:,:)) +!$mnh_end_expand_array() #endif !$acc end kernels END IF @@ -398,6 +402,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & CALL MYF_DEVICE(PDYY(:,:,IKB:IKB), ZTMP2_DEVICE(:,:,1:1)) ! !$acc kernels +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU) ZFLX(:,:,IKB) = XCTV * PLM(:,:,IKB) & * PLEPS(:,:,IKB) * ( & ( ZTMP3_DEVICE(:,:,1) & @@ -414,12 +419,15 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ) * 0.5 * ( PDZY(:,:,IKB+1)+PDZY(:,:,IKB) ) & / ZTMP2_DEVICE(:,:,1) & ) ** 2 ) +!$mnh_end_expand_array() #endif ! ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB) ! IF ( KRRL > 0 ) THEN +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZWORK(:,:,:) = ZFLX(:,:,:) * PATHETA(:,:,:) * PATHETA(:,:,:) +!$mnh_end_expand_array() END IF !$acc end kernels ! @@ -620,8 +628,10 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB) ! IF ( KRRL > 0 ) THEN +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZWORK(:,:,:) = ZWORK(:,:,:) + & 2. * PATHETA(:,:,:) * PAMOIST(:,:,:) * ZFLX(:,:,:) +!$mnh_end_expand_array() END IF !$acc end kernels ! stores <THl Rnp> @@ -726,7 +736,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & #ifndef MNH_BITREP ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 ) #else - ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE) + BR_P2(ZTMP2_DEVICE) ) +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) + ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE(:,:,:)) + BR_P2(ZTMP2_DEVICE(:,:,:)) ) +!$mnh_end_expand_array() #endif !$acc end kernels ELSE @@ -735,7 +747,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & #ifndef MNH_BITREP ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2 #else - ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE) +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) + ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE(:,:,:)) +!$mnh_end_expand_array() #endif !$acc end kernels END IF @@ -776,6 +790,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & CALL MYF_DEVICE(PDYY(:,:,IKB:IKB),ZTMP6_DEVICE(:,:,1:1)) ! !$acc kernels +!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(:,:,IKB) = XCHV * PLM(:,:,IKB) & * PLEPS(:,:,IKB) * ( & ( ZTMP3_DEVICE(:,:,1) & @@ -792,12 +807,15 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ) * 0.5 * ( PDZY(:,:,IKB+1)+PDZY(:,:,IKB) ) & / ZTMP6_DEVICE(:,:,1) & ) ** 2 ) +!$mnh_end_expand_array() #endif ! ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB) ! IF ( KRRL > 0 ) THEN + !$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZWORK(:,:,:) = ZWORK(:,:,:)+ PAMOIST(:,:,:) * PAMOIST(:,:,:) * ZFLX(:,:,:) + !$mnh_end_expand_array() END IF !$acc end kernels ! stores <Rnp Rnp>