From 61866737141ae105fd010533085717f17ee9b385 Mon Sep 17 00:00:00 2001
From: ESCOBAR Juan <escj@nuwa.aerologie.net>
Date: Tue, 9 Apr 2013 15:33:58 +0200
Subject: [PATCH] Juan 9/04/2013: add acc directive & temp var from mode_zwork
 to ppm_scalar.f90

---
 MNH/ppm_scalar.f90 | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/MNH/ppm_scalar.f90 b/MNH/ppm_scalar.f90
index d9038795b..7976ae2cd 100644
--- a/MNH/ppm_scalar.f90
+++ b/MNH/ppm_scalar.f90
@@ -87,6 +87,11 @@ USE MODI_BUDGET
 USE MODI_PPM
 USE MODI_ADVEC_PPM_ALGO
 !
+USE MODE_MNH_ZWORK, ONLY : ZUNIT=>ZUNIT3D, &
+& ZRHOX1=>ZW3D20 ,ZRHOX2=>ZW3D21, &
+& ZRHOY1=>ZW3D22 ,ZRHOY2=>ZW3D23, &
+& ZRHOZ1=>ZW3D24 ,ZRHOZ2=>ZW3D25  
+
 !
 IMPLICIT NONE
 !
@@ -123,10 +128,10 @@ INTEGER :: IGRID ! localisation on the model grid
 REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZSRC
 !
 ! Temporary advected rhodj
-REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZRHOX1,ZRHOX2
-REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZRHOY1,ZRHOY2
-REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZRHOZ1,ZRHOZ2
-REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZUNIT
+!REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZRHOX1,ZRHOX2
+!REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZRHOY1,ZRHOY2
+!REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZRHOZ1,ZRHOZ2
+!REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZUNIT
 !
 !-------------------------------------------------------------------------------
 !
@@ -137,7 +142,8 @@ IGRID = 1
 !
 ! Calculate the advection of the density RHODJ to pass to the algorithm
 !
-ZUNIT = 1.0
+!ZUNIT = 1.0
+!$acc data pcopyin (PCRU,PRHODJ) pcopyin(PCRV,PCRW) 
 CALL PPM_S0_X(HLBCX, IGRID, ZUNIT, PCRU, PRHODJ, PTSTEP, ZRHOX1)
 CALL PPM_S0_Y(HLBCY, IGRID, ZUNIT, PCRV, ZRHOX1, PTSTEP, ZRHOY1)
 CALL PPM_S0_Z(IGRID, ZUNIT, PCRW, ZRHOY1, PTSTEP, ZRHOZ1)
@@ -148,6 +154,7 @@ CALL PPM_S0_X(HLBCX, IGRID, ZUNIT, PCRU, ZRHOY2, PTSTEP, ZRHOX2)
 ! Case with KSV tracers
 !
 DO JSV=1,KSV
+!$acc data pcopyin (PSVT(:,:,:,JSV)) 
 !
    CALL ADVEC_PPM_ALGO(HSV_ADV_SCHEME, HLBCX, HLBCY, IGRID, PSVT(:,:,:,JSV), & 
                        PRHODJ, PTSTEP, & 
@@ -158,7 +165,10 @@ DO JSV=1,KSV
 !
    IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADV_BU_RSV')
 !
+!$acc end data 
+!
 END DO
 !
+!$acc end data 
 !
 END SUBROUTINE PPM_SCALAR
-- 
GitLab