Skip to content
Snippets Groups Projects
Commit b263dcb4 authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Quentin 26/09/2024: add kernels ice4_rainfr_vert, pick the splitted version...

Quentin 26/09/2024: add kernels ice4_rainfr_vert, pick the splitted version with the vertical loop on top
parent a65ea7bc
No related branches found
No related tags found
No related merge requests found
......@@ -61,27 +61,48 @@ IJB=D%NJB
IJE=D%NJE
!
!-------------------------------------------------------------------------------
DO JI = IIB,IIE
DO JJ = IJB, IJE
PPRFR(JI,JJ,IKE)=0.
DO JK=IKE-IKL, IKB, -IKL
IF(PRESENT(PRH)) THEN
MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) &
.OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6) .OR. PRH(JI,JJ,JK) .GT. ICED%XRTMIN(7)
ELSE
MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) &
.OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6)
END IF
IF (MASK) THEN
PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+IKL))
IF (PPRFR(JI,JJ,JK)==0) THEN
PPRFR(JI,JJ,JK)=1.
END IF
ELSE
PPRFR(JI,JJ,JK)=0.
END IF
!
!$acc kernels
PPRFR(IKB:IKE,IJB:IJE,IKE)=0.
!$acc end kernels
DO JK=IKE-IKL, IKB, -IKL
IF(PRESENT(PRH)) THEN
!$acc kernels
!$acc loop collapse(2) independent
DO JJ = IJB, IJE
DO JI = IKB,IKE
MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) &
.OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6) .OR. PRH(JI,JJ,JK) .GT. ICED%XRTMIN(7)
IF (MASK) THEN
PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+IKL))
IF (PPRFR(JI,JJ,JK)==0) THEN
PPRFR(JI,JJ,JK)=1.
END IF
ELSE
PPRFR(JI,JJ,JK)=0.
END IF
END DO
END DO
!$acc end kernels
ELSE
!$acc kernels
!$acc loop collapse(2) independent
DO JJ = IJB, IJE
DO JI = IKB,IKE
MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) &
.OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6)
IF (MASK) THEN
PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+IKL))
IF (PPRFR(JI,JJ,JK)==0) THEN
PPRFR(JI,JJ,JK)=1.
END IF
ELSE
PPRFR(JI,JJ,JK)=0.
END IF
END DO
END DO
END DO
!$acc end kernels
END IF
END DO
!
IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',1,ZHOOK_HANDLE)
......
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