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

Juan 30/08/2021:zsolver_inv.f90, GPU opti -> add loop independent on boundary

parent 9cbe7747
No related branches found
No related tags found
1 merge request!4Jean Wurtz 30/04/2025 : Bugfixes mainly for TEB and for simple precision
......@@ -337,7 +337,7 @@ INTEGER :: ZDXM2, ZDYM2
ZDXM2 = PDXHATM*PDXHATM
!
IF (LWEST_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent collapse(2) async
DO JK=IKB,IKE
DO JJ = IJB,IJE
PF_1_Y(IIB-1,JJ,JK) = PF_1_Y(IIB,JJ,JK) - PY(IIB-1,JJ,JK)*ZDXM2/PRHOM(JK)
......@@ -347,7 +347,7 @@ INTEGER :: ZDXM2, ZDYM2
END IF
!
IF (LEAST_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent collapse(2) async
DO JK=IKB,IKE
DO JJ = IJB,IJE
PF_1_Y(IIE+1,JJ,JK) = PF_1_Y(IIE,JJ,JK) + PY(IIE+1,JJ,JK)*ZDXM2/PRHOM(JK)
......@@ -360,7 +360,7 @@ INTEGER :: ZDXM2, ZDYM2
! we set the solution at the corner point by the condition:
! dxm ( P ) = 0
IF (LWEST_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent async
DO JJ = IJB,IJE
PF_1_Y(IIB-1,JJ,IKB-1) = PF_1_Y(IIB,JJ,IKB-1)
PF_1_Y(IIB-1,JJ,IKE+1) = PF_1_Y(IIB,JJ,IKE+1)
......@@ -368,7 +368,7 @@ INTEGER :: ZDXM2, ZDYM2
!$acc end kernels
END IF
IF (LEAST_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent async
DO JJ = IJB,IJE
PF_1_Y(IIE+1,JJ,IKB-1) = PF_1_Y(IIE,JJ,IKB-1)
PF_1_Y(IIE+1,JJ,IKE+1) = PF_1_Y(IIE,JJ,IKE+1)
......@@ -394,7 +394,7 @@ INTEGER :: ZDXM2, ZDYM2
ZDYM2 = PDYHATM*PDYHATM
!
IF (LSOUTH_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent collapse(2) async
DO JK=IKB,IKE
DO JI = IIB,IIE
PF_1_Y(JI,IJB-1,JK) = PF_1_Y(JI,IJB,JK) - PY(JI,IJB-1,JK)*ZDYM2/PRHOM(JK)
......@@ -404,7 +404,7 @@ INTEGER :: ZDXM2, ZDYM2
END IF
!
IF (LNORTH_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent collapse(2) async
DO JK=IKB,IKE
DO JI = IIB,IIE
PF_1_Y(JI,IJE+1,JK) = PF_1_Y(JI,IJE,JK) + PY(JI,IJE+1,JK)*ZDYM2/PRHOM(JK)
......@@ -417,7 +417,7 @@ INTEGER :: ZDXM2, ZDYM2
! dym ( P ) = 0
!
IF (LSOUTH_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent async
DO JI = IIB,IIE
PF_1_Y(JI,IJB-1,IKB-1) = PF_1_Y(JI,IJB,IKB-1)
PF_1_Y(JI,IJB-1,IKE+1) = PF_1_Y(JI,IJB,IKE+1)
......@@ -426,7 +426,7 @@ INTEGER :: ZDXM2, ZDYM2
END IF
!
IF (LNORTH_ll(HSPLITTING='B')) THEN
!$acc kernels async
!$acc kernels loop independent async
DO JI = IIB,IIE
PF_1_Y(JI,IJE+1,IKB-1) = PF_1_Y(JI,IJE,IKB-1)
PF_1_Y(JI,IJE+1,IKE+1) = PF_1_Y(JI,IJE,IKE+1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment