Skip to content
Snippets Groups Projects
Commit c77eedf1 authored by ESCOBAR MUNOZ Juan's avatar ESCOBAR MUNOZ Juan
Browse files

Juan 16/10/2020: turb_hor_dyn_corr/uv.f90, OpenACC opti -> DO CONCURRENT for BR_P2

parent f8a79e27
No related branches found
No related tags found
No related merge requests found
...@@ -613,14 +613,16 @@ ZFLX(:,:,IKB-1) = & ...@@ -613,14 +613,16 @@ ZFLX(:,:,IKB-1) = &
PVSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) & PVSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) &
- PUSLOPEM(:,:) * PCOSSLOPE(:,:)**2 * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) ) - PUSLOPEM(:,:) * PCOSSLOPE(:,:)**2 * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) )
#else #else
ZFLX(:,:,IKB-1) = & DO CONCURRENT ( JI=1:JIU,JJ=1:JJU )
PTAU11M(:,:) * BR_P2(PCOSSLOPE(:,:)) * BR_P2(PDIRCOSZW(:,:)) & ZFLX(JI,JJ,IKB-1) = &
-2. * PTAU12M(:,:) * PCOSSLOPE(:,:)* PSINSLOPE(:,:) * PDIRCOSZW(:,:) & PTAU11M(JI,JJ) * BR_P2(PCOSSLOPE(JI,JJ)) * BR_P2(PDIRCOSZW(JI,JJ)) &
+ PTAU22M(:,:) * BR_P2(PSINSLOPE(:,:)) & -2. * PTAU12M(JI,JJ) * PCOSSLOPE(JI,JJ)* PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) &
+ PTAU33M(:,:) * BR_P2(PCOSSLOPE(:,:)) * BR_P2(ZDIRSINZW(:,:)) & + PTAU22M(JI,JJ) * BR_P2(PSINSLOPE(JI,JJ)) &
+2. * PCDUEFF(:,:) * ( & + PTAU33M(JI,JJ) * BR_P2(PCOSSLOPE(JI,JJ)) * BR_P2(ZDIRSINZW(JI,JJ)) &
PVSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) & +2. * PCDUEFF(JI,JJ) * ( &
- PUSLOPEM(:,:) * BR_P2(PCOSSLOPE(:,:)) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) ) PVSLOPEM(JI,JJ) * PCOSSLOPE(JI,JJ) * PSINSLOPE(JI,JJ) * ZDIRSINZW(JI,JJ) &
- PUSLOPEM(JI,JJ) * BR_P2(PCOSSLOPE(JI,JJ)) * ZDIRSINZW(JI,JJ) * PDIRCOSZW(JI,JJ) )
END DO ! CONCURRENT
#endif #endif
!$acc end kernels !$acc end kernels
! !
...@@ -827,14 +829,16 @@ ZFLX(:,:,IKB-1) = & ...@@ -827,14 +829,16 @@ ZFLX(:,:,IKB-1) = &
PUSLOPEM(:,:) * PSINSLOPE(:,:)**2 * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) & PUSLOPEM(:,:) * PSINSLOPE(:,:)**2 * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) &
+ PVSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) ) + PVSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) )
#else #else
ZFLX(:,:,IKB-1) = & DO CONCURRENT ( JI=1:JIU,JJ=1:JJU )
PTAU11M(:,:) * BR_P2(PSINSLOPE(:,:)) * BR_P2(PDIRCOSZW(:,:)) & ZFLX(JI,JJ,IKB-1) = &
+2. * PTAU12M(:,:) * PCOSSLOPE(:,:)* PSINSLOPE(:,:) * PDIRCOSZW(:,:) & PTAU11M(JI,JJ) * BR_P2(PSINSLOPE(JI,JJ)) * BR_P2(PDIRCOSZW(JI,JJ)) &
+ PTAU22M(:,:) * BR_P2(PCOSSLOPE(:,:)) & +2. * PTAU12M(JI,JJ) * PCOSSLOPE(JI,JJ)* PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) &
+ PTAU33M(:,:) * BR_P2(PSINSLOPE(:,:)) * BR_P2(ZDIRSINZW(:,:)) & + PTAU22M(JI,JJ) * BR_P2(PCOSSLOPE(JI,JJ)) &
-2. * PCDUEFF(:,:)* ( & + PTAU33M(JI,JJ) * BR_P2(PSINSLOPE(JI,JJ)) * BR_P2(ZDIRSINZW(JI,JJ)) &
PUSLOPEM(:,:) * BR_P2(PSINSLOPE(:,:)) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) & -2. * PCDUEFF(JI,JJ)* ( &
+ PVSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) ) PUSLOPEM(JI,JJ) * BR_P2(PSINSLOPE(JI,JJ)) * ZDIRSINZW(JI,JJ) * PDIRCOSZW(JI,JJ) &
+ PVSLOPEM(JI,JJ) * PCOSSLOPE(JI,JJ) * PSINSLOPE(JI,JJ) * ZDIRSINZW(JI,JJ) )
END DO ! CONCURRENT
#endif #endif
!$acc end kernels !$acc end kernels
! !
...@@ -1029,15 +1033,19 @@ ZFLX(:,:,IKB) = (2./3.) * PTKEM(:,:,IKB) & ...@@ -1029,15 +1033,19 @@ ZFLX(:,:,IKB) = (2./3.) * PTKEM(:,:,IKB) &
! (-2./3.) * PTP(:,:,IKB:IKB) ! (-2./3.) * PTP(:,:,IKB:IKB)
! extrapolates this flux under the ground with the surface flux ! extrapolates this flux under the ground with the surface flux
!$acc kernels async(3) !$acc kernels async(3)
ZFLX(:,:,IKB-1) = &
#ifndef MNH_BITREP #ifndef MNH_BITREP
ZFLX(:,:,IKB-1) = &
PTAU11M(:,:) * ZDIRSINZW(:,:)**2 & PTAU11M(:,:) * ZDIRSINZW(:,:)**2 &
+ PTAU33M(:,:) * PDIRCOSZW(:,:)**2 & + PTAU33M(:,:) * PDIRCOSZW(:,:)**2 &
+2. * PCDUEFF(:,:)* PUSLOPEM(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:)
#else #else
PTAU11M(:,:) * BR_P2(ZDIRSINZW(:,:)) & DO CONCURRENT ( JI=1:JIU,JJ=1:JJU )
+ PTAU33M(:,:) * BR_P2(PDIRCOSZW(:,:)) & ZFLX(JI,JJ,IKB-1) = &
PTAU11M(JI,JJ) * BR_P2(ZDIRSINZW(JI,JJ)) &
+ PTAU33M(JI,JJ) * BR_P2(PDIRCOSZW(JI,JJ)) &
+2. * PCDUEFF(JI,JJ)* PUSLOPEM(JI,JJ) * ZDIRSINZW(JI,JJ) * PDIRCOSZW(JI,JJ)
END DO ! CONCURRENT
#endif #endif
+2. * PCDUEFF(:,:)* PUSLOPEM(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:)
!$acc end kernels !$acc end kernels
! !
! !
......
...@@ -450,16 +450,18 @@ ZFLX(:,:,IKB-1) = & ...@@ -450,16 +450,18 @@ ZFLX(:,:,IKB-1) = &
PDIRCOSZW(:,:) * ZDIRSINZW(:,:) & PDIRCOSZW(:,:) * ZDIRSINZW(:,:) &
+PVSLOPEM(:,:) * (PCOSSLOPE(:,:)**2 - PSINSLOPE(:,:)**2) * ZDIRSINZW(:,:) ) +PVSLOPEM(:,:) * (PCOSSLOPE(:,:)**2 - PSINSLOPE(:,:)**2) * ZDIRSINZW(:,:) )
#else #else
ZFLX(:,:,IKB-1) = & DO CONCURRENT ( JI=1:JIU,JJ=1:JJU )
PTAU11M(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * BR_P2(PDIRCOSZW(:,:)) & ZFLX(JI,JJ,IKB-1) = &
+PTAU12M(:,:) * (BR_P2(PCOSSLOPE(:,:)) - BR_P2(PSINSLOPE(:,:))) * & PTAU11M(JI,JJ) * PCOSSLOPE(JI,JJ) * PSINSLOPE(JI,JJ) * BR_P2(PDIRCOSZW(JI,JJ)) &
BR_P2(PDIRCOSZW(:,:)) & +PTAU12M(JI,JJ) * (BR_P2(PCOSSLOPE(JI,JJ)) - BR_P2(PSINSLOPE(JI,JJ))) * &
-PTAU22M(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) & BR_P2(PDIRCOSZW(JI,JJ)) &
+PTAU33M(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * BR_P2(ZDIRSINZW(:,:)) & -PTAU22M(JI,JJ) * PCOSSLOPE(JI,JJ) * PSINSLOPE(JI,JJ) &
-PCDUEFF(:,:) * ( & +PTAU33M(JI,JJ) * PCOSSLOPE(JI,JJ) * PSINSLOPE(JI,JJ) * BR_P2(ZDIRSINZW(JI,JJ)) &
2. * PUSLOPEM(:,:) * PCOSSLOPE(:,:) * PSINSLOPE(:,:) * & -PCDUEFF(JI,JJ) * ( &
PDIRCOSZW(:,:) * ZDIRSINZW(:,:) & 2. * PUSLOPEM(JI,JJ) * PCOSSLOPE(JI,JJ) * PSINSLOPE(JI,JJ) * &
+PVSLOPEM(:,:) * (BR_P2(PCOSSLOPE(:,:)) - BR_P2(PSINSLOPE(:,:))) * ZDIRSINZW(:,:) ) PDIRCOSZW(JI,JJ) * ZDIRSINZW(JI,JJ) &
+PVSLOPEM(JI,JJ) * (BR_P2(PCOSSLOPE(JI,JJ)) - BR_P2(PSINSLOPE(JI,JJ))) * ZDIRSINZW(JI,JJ) )
END DO ! CONCURRENT
#endif #endif
!$acc end kernels !$acc end kernels
! !
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment