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