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

Juan 11/04/2013: mirror PRTHS,PRRS,PRHODJ in ppm_met/advection

parent 09f7294d
No related branches found
No related tags found
No related merge requests found
...@@ -321,12 +321,12 @@ ELSEIF (HMET_ADV_SCHEME(1:3)=='PPM') THEN ...@@ -321,12 +321,12 @@ ELSEIF (HMET_ADV_SCHEME(1:3)=='PPM') THEN
ZRWCT = ZRWCT*PTSTEP_MET ZRWCT = ZRWCT*PTSTEP_MET
!$acc update device (ZRUCT,ZRVCT,ZRWCT) !$acc update device (ZRUCT,ZRVCT,ZRWCT)
!$acc update device(PRT,PTHT) !$acc update device(PRT,PTHT,PRTHS,PRRS,PRHODJ)
CALL PPM_MET (HLBCX,HLBCY, KRR, KTCOUNT, & CALL PPM_MET (HLBCX,HLBCY, KRR, KTCOUNT, &
ZRUCT, ZRVCT, ZRWCT, PTSTEP_MET, PRHODJ, & ZRUCT, ZRVCT, ZRWCT, PTSTEP_MET, PRHODJ, &
PTHT, PTKET, PRT, PRTHS, PRTKES, PRRS, & PTHT, PTKET, PRT, PRTHS, PRTKES, PRRS, &
HMET_ADV_SCHEME ) HMET_ADV_SCHEME )
! !$acc update host(PRTHS,PRRS)
END IF END IF
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -336,6 +336,8 @@ END IF ...@@ -336,6 +336,8 @@ END IF
! !
! 4.1. 2nd order scheme ! 4.1. 2nd order scheme
! !
IF (KSV .NE. 0) THEN
!
IF (HSV_ADV_SCHEME=='CEN2ND') THEN IF (HSV_ADV_SCHEME=='CEN2ND') THEN
! !
CALL ADVECSCALAR (KSV, PSVT, ZRUCT,ZRVCT,ZRWCT,PRSVS ) CALL ADVECSCALAR (KSV, PSVT, ZRUCT,ZRVCT,ZRWCT,PRSVS )
...@@ -386,6 +388,7 @@ ELSEIF (HSV_ADV_SCHEME(1:3)=='PPM') THEN ...@@ -386,6 +388,7 @@ ELSEIF (HSV_ADV_SCHEME(1:3)=='PPM') THEN
PSVT, PRSVS, HSV_ADV_SCHEME ) PSVT, PRSVS, HSV_ADV_SCHEME )
! !
END IF END IF
END IF
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
......
...@@ -107,7 +107,9 @@ REAL, DIMENSION(:,:,:), POINTER :: XTHM=>NULL() ...@@ -107,7 +107,9 @@ REAL, DIMENSION(:,:,:), POINTER :: XTHM=>NULL()
!!$REAL, DIMENSION(:,:,:), POINTER :: XTHT=>NULL() !!$REAL, DIMENSION(:,:,:), POINTER :: XTHT=>NULL()
REAL, DIMENSION(:,:,:), ALLOCATABLE :: XTHT REAL, DIMENSION(:,:,:), ALLOCATABLE :: XTHT
!$acc declare mirror (XTHT) !$acc declare mirror (XTHT)
REAL, DIMENSION(:,:,:), POINTER :: XRTHS=>NULL() !!$REAL, DIMENSION(:,:,:), POINTER :: XRTHS=>NULL()
REAL, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: XRTHS
!$acc declare mirror (XRTHS)
REAL, DIMENSION(:,:,:), POINTER :: XTKEM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XTKEM=>NULL()
REAL, DIMENSION(:,:,:), POINTER :: XTKET=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XTKET=>NULL()
REAL, DIMENSION(:,:,:), POINTER :: XRTKES=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRTKES=>NULL()
...@@ -117,7 +119,9 @@ REAL, DIMENSION(:,:,:,:), POINTER :: XRM=>NULL() ...@@ -117,7 +119,9 @@ REAL, DIMENSION(:,:,:,:), POINTER :: XRM=>NULL()
!!$REAL, DIMENSION(:,:,:,:), POINTER :: XRT=>NULL() !!$REAL, DIMENSION(:,:,:,:), POINTER :: XRT=>NULL()
REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: XRT REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: XRT
!$acc declare mirror (XRT) !$acc declare mirror (XRT)
REAL, DIMENSION(:,:,:,:), POINTER :: XRRS=>NULL() !!$REAL, DIMENSION(:,:,:,:), POINTER :: XRRS=>NULL()
REAL, DIMENSION(:,:,:,:), ALLOCATABLE, TARGET :: XRRS
!$acc declare mirror (XRRS)
REAL, DIMENSION(:,:,:,:), POINTER :: XSVM=>NULL() REAL, DIMENSION(:,:,:,:), POINTER :: XSVM=>NULL()
REAL, DIMENSION(:,:,:,:), POINTER :: XSVT=>NULL() REAL, DIMENSION(:,:,:,:), POINTER :: XSVT=>NULL()
REAL, DIMENSION(:,:,:,:), POINTER :: XRSVS=>NULL() REAL, DIMENSION(:,:,:,:), POINTER :: XRSVS=>NULL()
...@@ -147,7 +151,7 @@ FIELD_MODEL(KFROM)%XRVS=>XRVS ...@@ -147,7 +151,7 @@ FIELD_MODEL(KFROM)%XRVS=>XRVS
FIELD_MODEL(KFROM)%XRWS=>XRWS FIELD_MODEL(KFROM)%XRWS=>XRWS
FIELD_MODEL(KFROM)%XTHM=>XTHM FIELD_MODEL(KFROM)%XTHM=>XTHM
!!$FIELD_MODEL(KFROM)%XTHT=>XTHT !!$FIELD_MODEL(KFROM)%XTHT=>XTHT
FIELD_MODEL(KFROM)%XRTHS=>XRTHS !!$FIELD_MODEL(KFROM)%XRTHS=>XRTHS
FIELD_MODEL(KFROM)%XTKEM=>XTKEM FIELD_MODEL(KFROM)%XTKEM=>XTKEM
FIELD_MODEL(KFROM)%XTKET=>XTKET FIELD_MODEL(KFROM)%XTKET=>XTKET
FIELD_MODEL(KFROM)%XRTKES=>XRTKES FIELD_MODEL(KFROM)%XRTKES=>XRTKES
...@@ -178,7 +182,7 @@ XRVS=>FIELD_MODEL(KTO)%XRVS ...@@ -178,7 +182,7 @@ XRVS=>FIELD_MODEL(KTO)%XRVS
XRWS=>FIELD_MODEL(KTO)%XRWS XRWS=>FIELD_MODEL(KTO)%XRWS
XTHM=>FIELD_MODEL(KTO)%XTHM XTHM=>FIELD_MODEL(KTO)%XTHM
!!$XTHT=>FIELD_MODEL(KTO)%XTHT !!$XTHT=>FIELD_MODEL(KTO)%XTHT
XRTHS=>FIELD_MODEL(KTO)%XRTHS !!$XRTHS=>FIELD_MODEL(KTO)%XRTHS
XTKEM=>FIELD_MODEL(KTO)%XTKEM XTKEM=>FIELD_MODEL(KTO)%XTKEM
XTKET=>FIELD_MODEL(KTO)%XTKET XTKET=>FIELD_MODEL(KTO)%XTKET
XRTKES=>FIELD_MODEL(KTO)%XRTKES XRTKES=>FIELD_MODEL(KTO)%XRTKES
...@@ -186,7 +190,7 @@ XPABSM=>FIELD_MODEL(KTO)%XPABSM ...@@ -186,7 +190,7 @@ XPABSM=>FIELD_MODEL(KTO)%XPABSM
XPABST=>FIELD_MODEL(KTO)%XPABST XPABST=>FIELD_MODEL(KTO)%XPABST
XRM=>FIELD_MODEL(KTO)%XRM XRM=>FIELD_MODEL(KTO)%XRM
!!$XRT=>FIELD_MODEL(KTO)%XRT !!$XRT=>FIELD_MODEL(KTO)%XRT
XRRS=>FIELD_MODEL(KTO)%XRRS !!$XRRS=>FIELD_MODEL(KTO)%XRRS
XSVM=>FIELD_MODEL(KTO)%XSVM XSVM=>FIELD_MODEL(KTO)%XSVM
XSVT=>FIELD_MODEL(KTO)%XSVT XSVT=>FIELD_MODEL(KTO)%XSVT
XRSVS=>FIELD_MODEL(KTO)%XRSVS XRSVS=>FIELD_MODEL(KTO)%XRSVS
......
...@@ -136,12 +136,12 @@ CALL PPM_S0_X(HLBCX, IGRID, ZUNIT3D, PCRU, ZRHOY2, PTSTEP, ZRHOX2) ...@@ -136,12 +136,12 @@ CALL PPM_S0_X(HLBCX, IGRID, ZUNIT3D, PCRU, ZRHOY2, PTSTEP, ZRHOX2)
! Potential temperature ! Potential temperature
! !
!$acc data pcopyin (PTHT) pcopy(PRTHS) !$acc data pcopyin (PTHT) pcopy(PRTHS)
! create/mirror(ZSRCTHT) ! create/mirror(ZSRC)
CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, PTHT, PRHODJ, PTSTEP, & CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, PTHT, PRHODJ, PTSTEP, &
ZRHOX1, ZRHOX2, ZRHOY1, ZRHOY2, ZRHOZ1, ZRHOZ2, & ZRHOX1, ZRHOX2, ZRHOY1, ZRHOY2, ZRHOZ1, ZRHOZ2, &
ZSRC, KTCOUNT, PCRU, PCRV, PCRW) ZSRC, KTCOUNT, PCRU, PCRV, PCRW)
!$acc kernels
! add the advection to the sources ! add the advection to the sources
!$acc kernels
PRTHS = PRTHS + ZSRC PRTHS = PRTHS + ZSRC
!$acc end kernels !$acc end kernels
!$acc end data !$acc end data
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment