diff --git a/src/MNH/advec_weno_k_1_aux.f90 b/src/MNH/advec_weno_k_1_aux.f90 index 4cb38760652cb2fc058f20470fac9d6386d8ccef..0af47fef5511a5272f47878153a3c32d8aa50043 100644 --- a/src/MNH/advec_weno_k_1_aux.f90 +++ b/src/MNH/advec_weno_k_1_aux.f90 @@ -185,9 +185,6 @@ INTEGER :: IIE,IJE ! End useful area in x,y,z directions ! !------------------------------------------------------------------------------- ! -#ifdef _OPENACC -PRINT *,'OPENACC: UP_UX_DEVICE not yet tested' -#endif CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) ! ! upstream flux on mass points @@ -287,9 +284,6 @@ INTEGER :: IIE,IJE ! End useful area in x,y,z directions ! !------------------------------------------------------------------------------- ! -#ifdef _OPENACC -PRINT *,'OPENACC: UP_MX_DEVICE not yet tested' -#endif CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) ! ! upstream flux on mass points @@ -389,9 +383,6 @@ INTEGER :: IIE,IJE ! End useful area in x,y,z directions ! !------------------------------------------------------------------------------- ! -#ifdef _OPENACC -PRINT *,'OPENACC: UP_VY_DEVICE not yet tested' -#endif CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) ! ! upstream flux on mass points @@ -491,9 +482,6 @@ INTEGER :: IIE,IJE ! End useful area in x,y,z directions ! !------------------------------------------------------------------------------- ! -#ifdef _OPENACC -PRINT *,'OPENACC: UP_MY_DEVICE not yet tested' -#endif CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) ! ! upstream flux on mass points @@ -596,9 +584,6 @@ INTEGER :: IKE ! End useful area in x,y,z directions ! !------------------------------------------------------------------------------- ! -#ifdef _OPENACC -PRINT *,'OPENACC: UP_WZ_DEVICE not yet tested' -#endif !$acc kernels IKB = 1 + JPVEXT IKE = SIZE(PSRC,3) - JPVEXT @@ -702,9 +687,6 @@ INTEGER :: IKE ! End useful area in x,y,z directions ! !------------------------------------------------------------------------------- ! -#ifdef _OPENACC -PRINT *,'OPENACC: UP_MZ_DEVICE not yet tested' -#endif !$acc kernels IKB = 1 + JPVEXT IKE = SIZE(PSRC,3) - JPVEXT diff --git a/src/MNH/advec_weno_k_3_aux.f90 b/src/MNH/advec_weno_k_3_aux.f90 index 65929d7c66b184d79e56e347d8f4a56aa41cd293..c290158db699a34607e0c2fbec424c30fc555bde 100644 --- a/src/MNH/advec_weno_k_3_aux.f90 +++ b/src/MNH/advec_weno_k_3_aux.f90 @@ -339,9 +339,6 @@ REAL, DIMENSION(SIZE(PSRC,1),SIZE(PSRC,2),SIZE(PSRC,3)) :: ZOMN1, ZOMN2, ZOMN3 ! REAL, PARAMETER :: ZEPS = 1.0E-15 ! -#ifdef _OPENACC -PRINT *,'OPENACC: ADVEC_WENO_K_3_UX not yet tested' -#endif !----------------------------------------------------------------------------- !* 0.3. COMPUTES THE DOMAIN DIMENSIONS ! ------------------------------ @@ -1015,9 +1012,6 @@ REAL, DIMENSION(SIZE(PSRC,1),SIZE(PSRC,2),SIZE(PSRC,3)) :: ZOMN1, ZOMN2, ZOMN3 ! REAL, PARAMETER :: ZEPS = 1.0E-15 ! -#ifdef _OPENACC -PRINT *,'OPENACC: ADVEC_WENO_K_3_MX not yet tested' -#endif !------------------------------------------------------------------------------- ! !* 0.3. COMPUTES THE DOMAIN DIMENSIONS @@ -1695,9 +1689,6 @@ REAL, DIMENSION(SIZE(PSRC,1),SIZE(PSRC,2),SIZE(PSRC,3)):: ZOMN1, ZOMN2, ZOMN3 ! REAL, PARAMETER :: ZEPS = 1.0E-15 ! -#ifdef _OPENACC -PRINT *,'OPENACC: ADVEC_WENO_K_3_MY not yet tested' -#endif !----------------------------------------------------------------------------- ! !* 0.3. COMPUTES THE DOMAIN DIMENSIONS @@ -2373,9 +2364,6 @@ REAL, DIMENSION(SIZE(PSRC,1),SIZE(PSRC,2),SIZE(PSRC,3)) :: ZOMN1, ZOMN2, ZOMN3 ! REAL, PARAMETER :: ZEPS = 1.0E-15 ! -#ifdef _OPENACC -PRINT *,'OPENACC: ADVEC_WENO_K_3_VY not yet tested' -#endif !---------------------------------------------------------------------------- ! !* 0.3. COMPUTES THE DOMAIN DIMENSIONS @@ -3053,9 +3041,6 @@ REAL, DIMENSION(SIZE(PSRC,1),SIZE(PSRC,2),SIZE(PSRC,3)):: ZOMN1, ZOMN2, ZOMN3 ! REAL, PARAMETER :: ZEPS = 1.0E-15 ! -#ifdef _OPENACC -PRINT *,'OPENACC: ADVEC_WENO_K_3_WZ not yet tested' -#endif !------------------------------------------------------------------------------- ! !* 0.3. COMPUTES THE DOMAIN DIMENSIONS @@ -3315,9 +3300,6 @@ REAL, DIMENSION(SIZE(PSRC,1),SIZE(PSRC,2),SIZE(PSRC,3)):: ZOMN1, ZOMN2, ZOMN3 ! REAL, PARAMETER :: ZEPS = 1.0E-15 ! -#ifdef _OPENACC -PRINT *,'OPENACC: ADVEC_WENO_K_3_MZ not yet tested' -#endif !------------------------------------------------------------------------------- ! !* 0.3. COMPUTES THE DOMAIN DIMENSIONS diff --git a/src/MNH/advecuvw_weno_k.f90 b/src/MNH/advecuvw_weno_k.f90 index cf23d65290577fa1cfd988ef6cd30a2fb871b64b..112b51848a290c6ea759732b210963dfce64cb6f 100644 --- a/src/MNH/advecuvw_weno_k.f90 +++ b/src/MNH/advecuvw_weno_k.f90 @@ -187,7 +187,6 @@ CASE(1) ! WENO 1 ! PRWS = PRWS - DZM(1,IKU,1,UP_WZ(PWT,MZF(1,IKU,1,PRWCT))) #else -PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=1 not yet tested' ! ! U component ! @@ -487,7 +486,6 @@ CASE(5) ! WENO 5 CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet) PRWS = PRWS - DZM(1,IKU,1,ZMEAN) #else -PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' CALL MNH_GET_ZT3D(IZFPOS1,IZFPOS2,IZFPOS3,IZFNEG1,IZFNEG2,IZFNEG3,IZBPOS1, & IZBPOS2,IZBPOS3,IZBNEG1,IZBNEG2,IZBNEG3,IZOMP1,IZOMP2,IZOMP3,IZOMN1,IZOMN2,IZOMN3) ! @@ -501,13 +499,14 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO CALL DXM_DEVICE(ZMEAN,ZWORK) !$acc kernels PRUS = PRUS - ZWORK !$acc end kernels ! IF (.NOT.L2D) THEN - CALL MXM_DEVICE(PRVCT,ZWORK) + CALL MXM_DEVICE(PRVCT,ZWORK) CALL ADVEC_WENO_K_3_MY(HLBCY, PUT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFPOS3), & ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), ZT3D(:,:,:,IZFNEG3), & @@ -515,7 +514,8 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) - CALL DYM_DEVICE(ZMEAN,ZWORK) + CALL GET_HALO_D(ZMEAN)! Update HALO + CALL DYF_DEVICE(ZMEAN,ZWORK) !$acc kernels PRUS = PRUS - ZWORK !$acc end kernels @@ -529,6 +529,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet) CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK) !$acc kernels PRUS = PRUS - ZWORK @@ -545,6 +546,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO CALL DXF_DEVICE(ZMEAN,ZWORK) !$acc kernels PRVS = PRVS - ZWORK @@ -558,6 +560,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO CALL DYM_DEVICE(ZMEAN,ZWORK) !$acc kernels PRVS = PRVS - ZWORK @@ -571,6 +574,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet) CALL DZF_DEVICE(1,IKU,1,ZMEAN,ZWORK) !$acc kernels PRVS = PRVS - ZWORK @@ -587,6 +591,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO CALL DXF_DEVICE(ZMEAN,ZWORK) !$acc kernels PRWS = PRWS - ZWORK @@ -601,6 +606,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO CALL DYF_DEVICE(ZMEAN,ZWORK) !$acc kernels PRWS = PRWS - ZWORK @@ -615,6 +621,7 @@ PRINT *,'OPENACC: advecuvw_weno_k::KWENO_ORDER=5 being implemented' ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), ZT3D(:,:,:,IZBNEG3), & ZT3D(:,:,:,IZOMP1), ZT3D(:,:,:,IZOMP2), ZT3D(:,:,:,IZOMP3), & ZT3D(:,:,:,IZOMN1), ZT3D(:,:,:,IZOMN2), ZT3D(:,:,:,IZOMN3) ) + CALL GET_HALO_D(ZMEAN)! Update HALO - maybe not necessary (T.Lunet) CALL DZM_DEVICE(1,IKU,1,ZMEAN,ZWORK) !$acc kernels PRWS = PRWS - ZWORK diff --git a/src/MNH/mode_mnh_zwork.f90 b/src/MNH/mode_mnh_zwork.f90 index dae0c10dbc0a644bb337bf24988654726520c1a8..cd9afd7f8980acf69560cbab54bcd39666b4d3e2 100644 --- a/src/MNH/mode_mnh_zwork.f90 +++ b/src/MNH/mode_mnh_zwork.f90 @@ -24,7 +24,7 @@ MODULE MODE_MNH_ZWORK !PW ne passe pas avec PGI 15.10/16.1 (call to cuStreamSynchronize returned error 700: Illegal address during kernel execution): ! !$acc declare create(ZUNIT3D) - INTEGER :: JPMAX_T3D = 35 + INTEGER :: JPMAX_T3D = 40 INTEGER , ALLOCATABLE, DIMENSION (:) :: NT3D_POOL INTEGER :: NT3D_TOP , NT3D_TOP_MAX = 0 !REAL , ALLOCATABLE, DIMENSION(:,:,:,:) , TARGET :: ZT3D_A1,ZT3D_A2,ZT3D_A3,ZT3D_A4