From c2e1a1bd0a0808befac8020713a9ba32b526b311 Mon Sep 17 00:00:00 2001 From: ESCOBAR Juan <escj@nuwa> Date: Mon, 25 Aug 2014 11:15:11 +0200 Subject: [PATCH] Juan 25/08/2014: version reprod on GPU until next bug on advecuvw_4th --- MNH/ppm_rhodj.f90 | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/MNH/ppm_rhodj.f90 b/MNH/ppm_rhodj.f90 index 90e8e5191..cc6e3a30a 100644 --- a/MNH/ppm_rhodj.f90 +++ b/MNH/ppm_rhodj.f90 @@ -73,7 +73,11 @@ END MODULE MODI_PPM_RHODJ !* 0. DECLARATIONS ! ------------ ! -USE MODI_PPM +USE MODI_PPM + +USE& + OPENACC + ! ! ! @@ -87,11 +91,14 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRU ! contravariant REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRV ! components REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRW ! of momentum +!$acc declare pcopyin(PCRU,PCRV,PCRW) REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! density +!$acc declare present(PRHODJ) ! Temporary advected rhodj REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHOX1,PRHOX2 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHOY1,PRHOY2 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHOZ1,PRHOZ2 +!$acc declare pcopyout(PRHOX1,PRHOX2, PRHOY1,PRHOY2, PRHOZ1,PRHOZ2 ) ! REAL, INTENT(IN) :: PTSTEP ! Time step ! @@ -100,19 +107,32 @@ REAL, INTENT(IN) :: PTSTEP ! Time step INTEGER :: IGRID ! localisation on the model grid ! REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZUNIT +!BUG PGI ? acc declare create(ZUNIT) ! !------------------------------------------------------------------------------- ! + +!!$if ( acc_is_present(PRHODJ) ) print*,"PRHODJ JPRESENT" + ! IGRID = 1 ! +!$acc data create (ZUNIT) + +!$acc kernels ZUNIT = 1.0 +!$acc end kernels + +!$acc update device(PRHODJ) + CALL PPM_S0_X(HLBCX, IGRID, ZUNIT, PCRU, PRHODJ, PTSTEP,PRHOX1) CALL PPM_S0_Y(HLBCY, IGRID, ZUNIT, PCRV, PRHOX1, PTSTEP,PRHOY1) CALL PPM_S0_Z(IGRID, ZUNIT, PCRW, PRHOY1, PTSTEP,PRHOZ1) CALL PPM_S0_Z(IGRID, ZUNIT, PCRW, PRHODJ, PTSTEP,PRHOZ2) CALL PPM_S0_Y(HLBCY, IGRID, ZUNIT, PCRV, PRHOZ2, PTSTEP,PRHOY2) CALL PPM_S0_X(HLBCX, IGRID, ZUNIT, PCRU, PRHOY2, PTSTEP,PRHOX2) + +!$acc end data ! ! END SUBROUTINE PPM_RHODJ -- GitLab