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 ...@@ -61,27 +61,48 @@ IJB=D%NJB
IJE=D%NJE IJE=D%NJE
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
DO JI = IIB,IIE !
DO JJ = IJB, IJE !$acc kernels
PPRFR(JI,JJ,IKE)=0. PPRFR(IKB:IKE,IJB:IJE,IKE)=0.
DO JK=IKE-IKL, IKB, -IKL !$acc end kernels
IF(PRESENT(PRH)) THEN DO JK=IKE-IKL, IKB, -IKL
MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) & IF(PRESENT(PRH)) THEN
.OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6) .OR. PRH(JI,JJ,JK) .GT. ICED%XRTMIN(7) !$acc kernels
ELSE !$acc loop collapse(2) independent
MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) & DO JJ = IJB, IJE
.OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6) DO JI = IKB,IKE
END IF MASK=PRR(JI,JJ,JK) .GT. ICED%XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. ICED%XRTMIN(5) &
IF (MASK) THEN .OR. PRG(JI,JJ,JK) .GT. ICED%XRTMIN(6) .OR. PRH(JI,JJ,JK) .GT. ICED%XRTMIN(7)
PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+IKL)) IF (MASK) THEN
IF (PPRFR(JI,JJ,JK)==0) THEN PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+IKL))
PPRFR(JI,JJ,JK)=1. IF (PPRFR(JI,JJ,JK)==0) THEN
END IF PPRFR(JI,JJ,JK)=1.
ELSE END IF
PPRFR(JI,JJ,JK)=0. ELSE
END IF 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 END DO
!$acc end kernels
END IF
END DO END DO
! !
IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',1,ZHOOK_HANDLE) 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