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

Juan 9/04/2013: change ZPPM to temp var from mode_zwork & copy to pcopy

parent 61866737
No related branches found
No related tags found
1 merge request!4Jean Wurtz 30/04/2025 : Bugfixes mainly for TEB and for simple precision
...@@ -8,36 +8,8 @@ ...@@ -8,36 +8,8 @@
MODULE MODI_ADVEC_PPM_ALGO MODULE MODI_ADVEC_PPM_ALGO
! ########################## ! ##########################
! !
INTERFACE CONTAINS
! !
SUBROUTINE ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, KGRID, PFIELDT, &
PRHODJ, PTSTEP, &
PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1,PRHOZ2,&
PSRC, KTCOUNT, PCRU, PCRV, PCRW)
!
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
CHARACTER (LEN=6), INTENT(IN) :: HMET_ADV_SCHEME
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDT ! variable at t
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRU, PCRV, PCRW ! Courant numbers
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! density
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHOX1, PRHOX2
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHOY1, PRHOY2
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHOZ1, PRHOZ2
REAL, INTENT(IN) :: PTSTEP ! Time step
INTEGER, INTENT(IN) :: KTCOUNT ! iteration count
!
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRC ! source term after advection
!
END SUBROUTINE ADVEC_PPM_ALGO
!
END INTERFACE
!
END MODULE MODI_ADVEC_PPM_ALGO
! !
! !
! ########################################################################## ! ##########################################################################
...@@ -78,6 +50,8 @@ END MODULE MODI_ADVEC_PPM_ALGO ...@@ -78,6 +50,8 @@ END MODULE MODI_ADVEC_PPM_ALGO
USE MODI_SHUMAN USE MODI_SHUMAN
USE MODI_PPM USE MODI_PPM
! !
USE MODE_MNH_ZWORK, ONLY : ZPPM
!
IMPLICIT NONE IMPLICIT NONE
! !
!* 0.1 Declarations of dummy arguments : !* 0.1 Declarations of dummy arguments :
...@@ -104,7 +78,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRC ! source term after advection ...@@ -104,7 +78,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRC ! source term after advection
! !
!* 0.2 Declarations of local variables : !* 0.2 Declarations of local variables :
! !
REAL, DIMENSION(SIZE(PFIELDT,1),SIZE(PFIELDT,2),SIZE(PFIELDT,3)) :: ZPPM ! temp PPM output !!$REAL, DIMENSION(SIZE(PFIELDT,1),SIZE(PFIELDT,2),SIZE(PFIELDT,3)) :: ZPPM ! temp PPM output
! !
!INTEGER:: IW,IE,IS,IN,IT,IB,IWF,IEF,ISF,INF ! Coordinate of 4th order diffusion area !INTEGER:: IW,IE,IS,IN,IT,IB,IWF,IEF,ISF,INF ! Coordinate of 4th order diffusion area
! !
...@@ -118,7 +92,8 @@ REAL, DIMENSION(SIZE(PFIELDT,1),SIZE(PFIELDT,2),SIZE(PFIELDT,3)) :: ZPPM ! tem ...@@ -118,7 +92,8 @@ REAL, DIMENSION(SIZE(PFIELDT,1),SIZE(PFIELDT,2),SIZE(PFIELDT,3)) :: ZPPM ! tem
!* 0. INITIAL STEP !* 0. INITIAL STEP
! ------------ ! ------------
! !
!$acc data copyin(PFIELDT,PRHODJ) copyout(PSRC) local (ZPPM) !$acc data pcopyin(PFIELDT,PRHODJ) pcopyout(PSRC)
! local (ZPPM)
!$acc kernels !$acc kernels
PSRC = PFIELDT PSRC = PFIELDT
!$acc end kernels !$acc end kernels
...@@ -181,10 +156,10 @@ CASE('PPM_01') ...@@ -181,10 +156,10 @@ CASE('PPM_01')
!* 1. ADVECTION IN X DIRECTION !* 1. ADVECTION IN X DIRECTION
! ------------------------ ! ------------------------
! !
!$acc data copyin(PCRU,PCRV,PCRW,PRHOX1,PRHOY1,PRHOZ1) !$acc data pcopyin(PCRU,PCRV,PCRW,PRHOX1,PRHOY1,PRHOZ1)
! !
CALL PPM_01_X(HLBCX, KGRID, PSRC, PCRU, PRHODJ, PTSTEP, ZPPM) CALL PPM_01_X(HLBCX, KGRID, PSRC, PCRU, PRHODJ, PTSTEP, ZPPM)
!!$ - PPM_01_X(HLBCX, KGRID, PSRC, PCRU, PRHODJ, PTSTEP) !!$ - PPM_01_X(HLBCX, KGRID, PSRC, PCRU, PRHODJ, PTSTEP)
!$acc kernels !$acc kernels
PSRC = ( PSRC * PRHODJ ) - ZPPM PSRC = ( PSRC * PRHODJ ) - ZPPM
PSRC = PSRC / PRHOX1 PSRC = PSRC / PRHOX1
...@@ -217,7 +192,7 @@ CASE('PPM_01') ...@@ -217,7 +192,7 @@ CASE('PPM_01')
!* 1. ADVECTION IN Z DIRECTION !* 1. ADVECTION IN Z DIRECTION
! ------------------------ ! ------------------------
! !
!$acc data copyin(PCRW,PCRV,PRHOZ2,PRHOY2,PCRU,PRHOX2) !$acc data pcopyin(PCRW,PCRV,PRHOZ2,PRHOY2,PCRU,PRHOX2)
! !
CALL PPM_01_Z(KGRID, PSRC, PCRW, PRHODJ, PTSTEP, ZPPM) CALL PPM_01_Z(KGRID, PSRC, PCRW, PRHODJ, PTSTEP, ZPPM)
!!$ - PPM_01_Z(KGRID, PSRC, PCRW, PRHODJ, PTSTEP) !!$ - PPM_01_Z(KGRID, PSRC, PCRW, PRHODJ, PTSTEP)
...@@ -311,3 +286,5 @@ PSRC = (PSRC - PFIELDT)*PRHODJ/PTSTEP ...@@ -311,3 +286,5 @@ PSRC = (PSRC - PFIELDT)*PRHODJ/PTSTEP
!$acc end data !$acc end data
! !
END SUBROUTINE ADVEC_PPM_ALGO END SUBROUTINE ADVEC_PPM_ALGO
END MODULE MODI_ADVEC_PPM_ALGO
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment