diff --git a/src/ZSOLVER/turb_hor_dyn_corr.f90 b/src/ZSOLVER/turb_hor_dyn_corr.f90 index b07a15f38506bdd88d9451cef10fd89635332227..e8016fc6cdc97f1a82d0bf2300896ece94472b3c 100644 --- a/src/ZSOLVER/turb_hor_dyn_corr.f90 +++ b/src/ZSOLVER/turb_hor_dyn_corr.f90 @@ -177,7 +177,7 @@ USE MODI_TRIDIAG_W #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP) USE MODI_BITREP #endif -#ifdef MNH_BITREP_OMP +#ifdef MNH_COMPILER_CCE !$mnh_undef(LOOP) !$mnh_undef(OPENACC) #endif @@ -399,7 +399,8 @@ IKU = SIZE(PUM,3) ! ! !$acc kernels async(1) -#if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +!if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +#if !defined(MNH_BITREP) ZDIRSINZW(:,:) = SQRT( 1. - PDIRCOSZW(:,:)**2 ) #else !$mnh_expand_array(JI=1:JIU,JJ=1:JJU ) @@ -623,8 +624,9 @@ CALL MYF_DEVICE(PDYY(:,:,IKB:IKB),ZTMP4_DEVICE(:,:,1:1)) !!! wait for the computation of ZDIRSINZW !$acc wait(1) ! -!$acc kernels async(4) present_cr(ZFLX,ZDIRSINZW) -#if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +!$acc kernels async(4) present_cr(ZFLX,ZDIRSINZW) +!if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +#if !defined(MNH_BITREP) ZFLX(:,:,IKB-1) = & PTAU11M(:,:) * PCOSSLOPE(:,:)**2 * PDIRCOSZW(:,:)**2 & -2. * PTAU12M(:,:) * PCOSSLOPE(:,:)* PSINSLOPE(:,:) * PDIRCOSZW(:,:) & @@ -786,7 +788,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN !!! wait for the computation of ZWORK and PDP !$acc wait(2) ! - !$acc kernels + !$acc kernels present_cr(ZTMP1_DEVICE) ZTMP1_DEVICE(:,:,:) = -ZWORK(:,:,:) !$acc end kernels CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_U_SBG_UaU , .TRUE.) @@ -851,7 +853,8 @@ ZFLX(:,:,IKE+1) = ZFLX(:,:,IKE) ! ! extrapolates this flux under the ground with the surface flux !$acc kernels async(3) present_cr(ZFLX) -#if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +!if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +#if !defined(MNH_BITREP) ZFLX(:,:,IKB-1) = & PTAU11M(:,:) * PSINSLOPE(:,:)**2 * PDIRCOSZW(:,:)**2 & +2. * PTAU12M(:,:) * PCOSSLOPE(:,:)* PSINSLOPE(:,:) * PDIRCOSZW(:,:) & @@ -1076,8 +1079,9 @@ ZFLX(:,:,IKE+1)= ZFLX(:,:,IKE) ! - 2.* XCMFB * PLM(:,:,IKB:IKB) /SQRT(PTKEM(:,:,IKB:IKB)) * & ! (-2./3.) * PTP(:,:,IKB:IKB) ! extrapolates this flux under the ground with the surface flux -!$acc kernels async(3) present_cr(ZFLX) -#if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +!$acc kernels async(3) present_cr(ZFLX) +!if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) +#if !defined(MNH_BITREP) ZFLX(:,:,IKB-1) = & PTAU11M(:,:) * ZDIRSINZW(:,:)**2 & + PTAU33M(:,:) * PDIRCOSZW(:,:)**2 & @@ -1092,7 +1096,7 @@ ZFLX(:,:,IKB-1) = & !$mnh_end_expand_array() #endif !$acc end kernels - ! +! ! !!! wait for the computation of ZFLX(:,:,IKB-1) and ZFLX(:,:,IKB) !$acc wait(2) async(3)