diff --git a/src/ZSOLVER/advecuvw_weno_k.f90 b/src/ZSOLVER/advecuvw_weno_k.f90 index 96c6a85e5e6ea000a1a2508d7b2bc815c3fca85a..f41009ae4ef63792834dff1b2f025e0808f1a2e2 100644 --- a/src/ZSOLVER/advecuvw_weno_k.f90 +++ b/src/ZSOLVER/advecuvw_weno_k.f90 @@ -10,7 +10,8 @@ INTERFACE ! SUBROUTINE ADVECUVW_WENO_K(HLBCX, HLBCY, KWENO_ORDER, PUT, PVT, PWT, & - PRUCT, PRVCT, PRWCT, PRUS, PRVS, PRWS, TPHALO2LIST & + PRUCT, PRVCT, PRWCT, PRUS, PRVS, PRWS, & + TPHALO2_UT,TPHALO2_VT,TPHALO2_WT & #ifndef MNH_OPENACC ) #else @@ -32,7 +33,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT, PWT ! U,V,W at t ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source terms ! -TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion +TYPE(HALO2LIST_ll), POINTER :: TPHALO2_UT,TPHALO2_VT,TPHALO2_WT ! #ifdef MNH_OPENACC ! Work arrays @@ -47,7 +48,8 @@ END MODULE MODI_ADVECUVW_WENO_K ! ! ########################################################################## SUBROUTINE ADVECUVW_WENO_K(HLBCX, HLBCY, KWENO_ORDER, PUT, PVT, PWT, & - PRUCT, PRVCT, PRWCT, PRUS, PRVS, PRWS, TPHALO2LIST & + PRUCT, PRVCT, PRWCT, PRUS, PRVS, PRWS, & + TPHALO2_UT,TPHALO2_VT,TPHALO2_WT & #ifndef MNH_OPENACC ) #else @@ -112,13 +114,11 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT, PWT ! Variables at t ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source terms ! -TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion ! !* 0.2 Declarations of local variables : ! -TYPE(HALO2LIST_ll), POINTER :: TZHALO2_UT,TZHALO2_VT,TZHALO2_WT +TYPE(HALO2LIST_ll), POINTER :: TPHALO2_UT,TPHALO2_VT,TPHALO2_WT -TYPE(LIST_ll), POINTER :: TZHALO2_ZMEAN INTEGER :: IINFO_ll ! return code of parallel routine ! #ifndef MNH_OPENACC @@ -166,9 +166,9 @@ CALL INIT_ON_HOST_AND_DEVICE(ZWORK,2e90,'ADVECUVW_WENO_K::ZWORK') !------------------------- ADVECTION OF MOMENTUM ------------------------------ ! ! -TZHALO2_UT => TPHALO2LIST ! 1rst add3dfield in model_n -TZHALO2_VT => TPHALO2LIST%NEXT ! 2nd add3dfield in model_n -TZHALO2_WT => TPHALO2LIST%NEXT%NEXT ! 3rst add3dfield in model_n +!!$TPHALO2_UT => TPHALO2LIST ! 1rst add3dfield in model_n +!!$TPHALO2_VT => TPHALO2LIST%NEXT ! 2nd add3dfield in model_n +!!$TPHALO2_WT => TPHALO2LIST%NEXT%NEXT ! 3rst add3dfield in model_n ! IKU=SIZE(PUT,3) ! ------------------------------------------------------- @@ -289,13 +289,13 @@ CASE(3) ! WENO 3 ! U component ! ZWORK = MXF(PRUCT) - CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2) + CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN, TPHALO2_UT%HALO2) PRUS = PRUS - DXM(ZMEAN) ! IF (.NOT.L2D) THEN ZWORK = MXM(PRVCT) - CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2) + CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN, TPHALO2_UT%HALO2) PRUS = PRUS - DYF(ZMEAN) END IF ! @@ -305,11 +305,11 @@ CASE(3) ! WENO 3 ! IF (.NOT.L2D) THEN ZWORK = MYM(PRUCT) - CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2) + CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN, TPHALO2_VT%HALO2) PRVS = PRVS - DXF(ZMEAN) ! ZWORK = MYF(PRVCT) - CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2) + CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TPHALO2_VT%HALO2) PRVS = PRVS - DYM(ZMEAN) ! PRVS = PRVS - DZF(WENO_K_2_MZ(PVT, MYM(PRWCT))) @@ -318,12 +318,12 @@ CASE(3) ! WENO 3 ! W component ! ZWORK = MZM(PRUCT) - CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2) + CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TPHALO2_WT%HALO2) PRWS = PRWS - DXF(ZMEAN) ! IF (.NOT.L2D) THEN ZWORK = MZM(PRVCT) - CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2) + CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TPHALO2_WT%HALO2) PRWS = PRWS - DYF(ZMEAN) END IF ! @@ -334,7 +334,7 @@ CASE(3) ! WENO 3 ! U component ! CALL MXF_DEVICE(PRUCT,ZWORK) - CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2%WEST, TZHALO2_UT%HALO2%EAST, & + CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN, TPHALO2_UT%HALO2%WEST, TPHALO2_UT%HALO2%EAST, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2) ) @@ -345,7 +345,7 @@ CASE(3) ! WENO 3 ! IF (.NOT.L2D) THEN CALL MXM_DEVICE(PRVCT,ZWORK) - CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2%NORTH, TZHALO2_UT%HALO2%SOUTH, & + CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN, TPHALO2_UT%HALO2%NORTH, TPHALO2_UT%HALO2%SOUTH, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2) ) @@ -370,7 +370,7 @@ CASE(3) ! WENO 3 ! IF (.NOT.L2D) THEN CALL MYM_DEVICE(PRUCT,ZWORK) - CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2%WEST, TZHALO2_VT%HALO2%EAST, & + CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN, TPHALO2_VT%HALO2%WEST, TPHALO2_VT%HALO2%EAST, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2) ) @@ -380,7 +380,7 @@ CASE(3) ! WENO 3 !$acc end kernels ! CALL MYF_DEVICE(PRVCT,ZWORK) - CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2%NORTH, TZHALO2_VT%HALO2%SOUTH, & + CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TPHALO2_VT%HALO2%NORTH, TPHALO2_VT%HALO2%SOUTH, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2) ) @@ -405,7 +405,7 @@ CASE(3) ! WENO 3 ! ! ZWORK = MZM(1,IKU,1,PRUCT) CALL MZM_DEVICE(PRUCT,ZWORK) - CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2%WEST, TZHALO2_WT%HALO2%EAST, & + CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TPHALO2_WT%HALO2%WEST, TPHALO2_WT%HALO2%EAST, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2) ) @@ -417,7 +417,7 @@ CASE(3) ! WENO 3 IF (.NOT.L2D) THEN ! ZWORK = MZM(1,IKU,1,PRVCT) CALL MZM_DEVICE(PRVCT,ZWORK) - CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2%NORTH, TZHALO2_WT%HALO2%SOUTH, & + CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TPHALO2_WT%HALO2%NORTH, TPHALO2_WT%HALO2%SOUTH, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2) )