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

Juan 14/09/2021:ZSOLVER/advecuvw_rk.f90, use GET_HALO2_D for GPU optimisation

parent 305cbf9d
No related branches found
No related tags found
No related merge requests found
......@@ -205,6 +205,7 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZBUTS! Butcher array coefficients
!JUAN
TYPE(LIST_ll), POINTER :: TZFIELDMT_ll ! list of fields to exchange
TYPE(HALO2LIST_ll), POINTER :: TZHALO2MT_ll ! momentum variables
TYPE(HALO2LIST_ll), POINTER :: TZHALO2_UT,TZHALO2_VT,TZHALO2_WT
INTEGER :: INBVAR
INTEGER :: IIU, IJU, IKU ! array sizes
!JUAN
......@@ -454,10 +455,14 @@ ZRWS(:, :, :, : ) = 0.
CALL UPDATE_HALO2_ll(TZFIELDMT_ll, TZHALO2MT_ll, IINFO_ll)
#else
! acc update self(ZUT,ZVT,ZWT)
CALL GET_HALO_D(ZUT,HNAME='ZUT')
CALL GET_HALO_D(ZVT,HNAME='ZVT')
CALL GET_HALO_D(ZWT,HNAME='ZWT')
CALL UPDATE_HALO2_ll(TZFIELDMT_ll, TZHALO2MT_ll, IINFO_ll)
!!$ CALL GET_HALO_D(ZUT,HNAME='ZUT')
!!$ CALL GET_HALO_D(ZVT,HNAME='ZVT')
!!$ CALL GET_HALO_D(ZWT,HNAME='ZWT')
!!$ CALL UPDATE_HALO2_ll(TZFIELDMT_ll, TZHALO2MT_ll, IINFO_ll)
CALL GET_HALO2_D(ZUT,TZHALO2_UT,HNAME='ZUT')
CALL GET_HALO2_D(ZVT,TZHALO2_VT,HNAME='ZVT')
CALL GET_HALO2_D(ZWT,TZHALO2_WT,HNAME='ZWT')
! acc update device(ZUT,ZVT,ZWT)
#endif
......@@ -467,15 +472,19 @@ ZRWS(:, :, :, : ) = 0.
!* 4. Advection with WENO
! -------------------
!
!!$TZHALO2_UT => TZHALO2MT_ll ! 1rst add3dfield in model_n
!!$TZHALO2_VT => TZHALO2MT_ll%NEXT ! 2nd add3dfield in model_n
!!$TZHALO2_WT => TZHALO2MT_ll%NEXT%NEXT ! 3rst add3dfield in model_n
IF (HUVW_ADV_SCHEME=='WENO_K') THEN
CALL ADVECUVW_WENO_K (HLBCX, HLBCY, KWENO_ORDER, ZUT, ZVT, ZWT, &
PRUCT, PRVCT, PRWCT, &
ZRUS(:,:,:,JS), ZRVS(:,:,:,JS), ZRWS(:,:,:,JS), &
TZHALO2_UT,TZHALO2_VT,TZHALO2_WT &
#ifndef MNH_OPENACC
TZHALO2MT_ll )
)
#else
TZHALO2MT_ll, ZT3D(:,:,:,IZMEAN), ZT3D(:,:,:,IZWORK) )
, ZT3D(:,:,:,IZMEAN), ZT3D(:,:,:,IZWORK) )
#endif
ELSE IF ((HUVW_ADV_SCHEME=='CEN4TH') .AND. (HTEMP_SCHEME=='RKC4')) THEN
CALL ADVECUVW_4TH (HLBCX, HLBCY, PRUCT, PRVCT, PRWCT, &
......@@ -544,7 +553,10 @@ CALL MNH_REL_ZT3D(IZMEAN,IZWORK)
#endif
!
CALL CLEANLIST_ll(TZFIELDMT_ll)
CALL DEL_HALO2_ll(TZHALO2MT_ll)
CALL DEL_HALO2_ll(TZHALO2MT_ll)
CALL DEL_HALO2_ll(TZHALO2_UT)
CALL DEL_HALO2_ll(TZHALO2_VT)
CALL DEL_HALO2_ll(TZHALO2_WT)
!$acc update self(PRUS_ADV,PRVS_ADV,PRWS_ADV)
!-------------------------------------------------------------------------------
!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment