Skip to content
Snippets Groups Projects
Commit 61866737 authored by ESCOBAR Juan's avatar ESCOBAR Juan
Browse files

Juan 9/04/2013: add acc directive & temp var from mode_zwork to ppm_scalar.f90

parent 1472530d
No related branches found
No related tags found
No related merge requests found
...@@ -87,6 +87,11 @@ USE MODI_BUDGET ...@@ -87,6 +87,11 @@ USE MODI_BUDGET
USE MODI_PPM USE MODI_PPM
USE MODI_ADVEC_PPM_ALGO 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 IMPLICIT NONE
! !
...@@ -123,10 +128,10 @@ INTEGER :: IGRID ! localisation on the model grid ...@@ -123,10 +128,10 @@ INTEGER :: IGRID ! localisation on the model grid
REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZSRC REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZSRC
! !
! Temporary advected rhodj ! 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)) :: 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)) :: 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)) :: 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)) :: ZUNIT
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
...@@ -137,7 +142,8 @@ IGRID = 1 ...@@ -137,7 +142,8 @@ IGRID = 1
! !
! Calculate the advection of the density RHODJ to pass to the algorithm ! 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_X(HLBCX, IGRID, ZUNIT, PCRU, PRHODJ, PTSTEP, ZRHOX1)
CALL PPM_S0_Y(HLBCY, IGRID, ZUNIT, PCRV, ZRHOX1, PTSTEP, ZRHOY1) CALL PPM_S0_Y(HLBCY, IGRID, ZUNIT, PCRV, ZRHOX1, PTSTEP, ZRHOY1)
CALL PPM_S0_Z(IGRID, ZUNIT, PCRW, ZRHOY1, PTSTEP, ZRHOZ1) 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) ...@@ -148,6 +154,7 @@ CALL PPM_S0_X(HLBCX, IGRID, ZUNIT, PCRU, ZRHOY2, PTSTEP, ZRHOX2)
! Case with KSV tracers ! Case with KSV tracers
! !
DO JSV=1,KSV DO JSV=1,KSV
!$acc data pcopyin (PSVT(:,:,:,JSV))
! !
CALL ADVEC_PPM_ALGO(HSV_ADV_SCHEME, HLBCX, HLBCY, IGRID, PSVT(:,:,:,JSV), & CALL ADVEC_PPM_ALGO(HSV_ADV_SCHEME, HLBCX, HLBCY, IGRID, PSVT(:,:,:,JSV), &
PRHODJ, PTSTEP, & PRHODJ, PTSTEP, &
...@@ -158,7 +165,10 @@ DO JSV=1,KSV ...@@ -158,7 +165,10 @@ DO JSV=1,KSV
! !
IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADV_BU_RSV') IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADV_BU_RSV')
! !
!$acc end data
!
END DO END DO
! !
!$acc end data
! !
END SUBROUTINE PPM_SCALAR END SUBROUTINE PPM_SCALAR
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment