From 035cf6078df772a3064d476e00f7ce6317ea9fe3 Mon Sep 17 00:00:00 2001
From: ESCOBAR Juan <escj@nuwa.aerologie.net>
Date: Wed, 10 Apr 2013 15:06:26 +0200
Subject: [PATCH] =?UTF-8?q?Juan=2010/04/2=C2013:=20put=20ZRUT,ZRVT,ZRWT,ZR?=
 =?UTF-8?q?UCT,ZRVCT,ZRWCT=20in=20mnh=5Fzwork=20for=20adevction.f90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 MNH/advection.f90      | 16 +++++++++-------
 MNH/mode_mnh_zwork.f90 | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 7 deletions(-)

diff --git a/MNH/advection.f90 b/MNH/advection.f90
index 005ba4bd2..f0ce6e349 100644
--- a/MNH/advection.f90
+++ b/MNH/advection.f90
@@ -152,6 +152,7 @@ USE MODI_MPDATA_SCALAR
 USE MODI_PPM_MET
 USE MODI_PPM_SCALAR
 !
+USE MODE_MNH_ZWORK, ONLY : ZRUT,ZRVT,ZRWT,ZRUCT,ZRVCT,ZRWCT
 !
 !-------------------------------------------------------------------------------
 !
@@ -201,16 +202,16 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS , PRSVS
 !
 !
 !  
-REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRUT 
-REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRVT 
-REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRWT
+!$$ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRUT 
+!$$ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRVT 
+!$$ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRWT
                                                   ! cartesian 
                                                   ! components of
                                                   ! momentum
 !
-REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRUCT 
-REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRVCT
-REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRWCT
+!$$ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRUCT 
+!$$ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRVCT
+!$$ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRWCT
                                                   ! contravariant
                                                   ! components
                                                   ! of momentum
@@ -318,8 +319,9 @@ ELSEIF (HMET_ADV_SCHEME(1:3)=='PPM') THEN
    ZRUCT = ZRUCT*PTSTEP_MET
    ZRVCT = ZRVCT*PTSTEP_MET
    ZRWCT = ZRWCT*PTSTEP_MET
+   !$acc update device (ZRUCT,ZRVCT,ZRWCT)
 
-   !$acc update device(PRT)
+   !$acc update device(PRT,PTHT)
    CALL PPM_MET   (HLBCX,HLBCY, KRR, KTCOUNT,                  &
                    ZRUCT, ZRVCT, ZRWCT, PTSTEP_MET, PRHODJ,    &
                    PTHT, PTKET, PRT, PRTHS, PRTKES, PRRS,      &
diff --git a/MNH/mode_mnh_zwork.f90 b/MNH/mode_mnh_zwork.f90
index 34571de19..da5860e7b 100644
--- a/MNH/mode_mnh_zwork.f90
+++ b/MNH/mode_mnh_zwork.f90
@@ -36,6 +36,13 @@ REAL, SAVE, ALLOCATABLE , DIMENSION(:,:)   :: ZPSRC_HALO2_SOUTH
 REAL, SAVE, ALLOCATABLE , DIMENSION(:,:,:) :: ZUNIT3D
 !$acc declare mirror(ZUNIT3D)
 
+REAL, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: &
+ ZQL,ZQR,ZDQ,ZQ6,ZDMQ,ZQL0,ZQR0,ZQ60,ZFPOS,ZFNEG
+!$acc declare mirror(ZQL,ZQR,ZDQ,ZQ6,ZDMQ,ZQL0,ZQR0,ZQ60,ZFPOS,ZFNEG)
+
+REAL, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: &
+ ZRUT,ZRVT,ZRWT,ZRUCT,ZRVCT,ZRWCT
+!$acc declare mirror(ZRUT,ZRVT,ZRWT,ZRUCT,ZRVCT,ZRWCT)
 !
 CONTAINS
 
@@ -109,6 +116,14 @@ SUBROUTINE MNH_ALLOC_ZWORK(IMODEL)
 
      ALLOCATE (ZUNIT3D(IIU,IJU,IKU)) 
 
+     ALLOCATE (ZQL(IIU,IJU,IKU),ZQR(IIU,IJU,IKU),ZDQ(IIU,IJU,IKU))
+     ALLOCATE (ZQ6(IIU,IJU,IKU),ZDMQ(IIU,IJU,IKU),ZQL0(IIU,IJU,IKU))
+     ALLOCATE (ZQR0(IIU,IJU,IKU),ZQ60(IIU,IJU,IKU),ZFPOS(IIU,IJU,IKU))
+     ALLOCATE (ZFNEG(IIU,IJU,IKU))
+
+     ALLOCATE (ZRUT(IIU,IJU,IKU),ZRVT(IIU,IJU,IKU),ZRWT(IIU,IJU,IKU))
+     ALLOCATE (ZRUCT(IIU,IJU,IKU),ZRVCT(IIU,IJU,IKU),ZRWCT(IIU,IJU,IKU))
+
 !$acc kernels 
      ZW3D1 = XUNDEF
      ZW3D2 = XUNDEF
@@ -149,7 +164,25 @@ SUBROUTINE MNH_ALLOC_ZWORK(IMODEL)
      ZRHOZ1_PPM_MET = XUNDEF
      ZRHOZ2_PPM_MET = XUNDEF  
      ZSRC_PPM_MET   = XUNDEF
+
+     ZQL = XUNDEF
+     ZQR = XUNDEF
+     ZDQ = XUNDEF
+     ZQ6 = XUNDEF
+     ZDMQ = XUNDEF
+     ZQL0 = XUNDEF
+     ZQR0 = XUNDEF
+     ZQ60 = XUNDEF
+     ZFPOS = XUNDEF
+     ZFNEG = XUNDEF 
      
+     ZRUT = XUNDEF
+     ZRVT = XUNDEF
+     ZRWT = XUNDEF
+     ZRUCT = XUNDEF
+     ZRVCT = XUNDEF
+     ZRWCT = XUNDEF
+
 !$acc end kernels
 !$acc update host (ZW3D1,ZW3D2,ZW3D3,ZW3D4,ZW3D5,ZW3D6,ZW3D7)
 !$acc update host (ZW3D8,ZW3D9,ZW3D10,ZW3D11,ZW3D12,ZW3D13,ZW3D14,ZW3D15)
@@ -160,6 +193,8 @@ SUBROUTINE MNH_ALLOC_ZWORK(IMODEL)
 !$acc update host (ZRHOX1_PPM_MET,ZRHOX2_PPM_MET,ZRHOY1_PPM_MET)
 !$acc update host (ZRHOY2_PPM_MET,ZRHOZ1_PPM_MET,ZRHOZ2_PPM_MET) 
 !$acc update host (ZSRC_PPM_MET) 
+!$acc update host (ZQL,ZQR,ZDQ,ZQ6,ZDMQ,ZQL0,ZQR0,ZQ60,ZFPOS,ZFNEG)
+!$acc update host (ZRUT,ZRVT,ZRWT,ZRUCT,ZRVCT,ZRWCT)
     
 
   END IF
-- 
GitLab