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

Juan 14/11/2013: change PSRC to INOUT on all routine & I,J,K in PPM_01_X &...

Juan 14/11/2013: change PSRC to INOUT on all routine & I,J,K in PPM_01_X & update host before CHECK3D
parent 8689253c
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,6 @@ REAL, INTENT(IN) :: PTSTEP ! Time step
!
! output source term
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PR
!acc reflected (PSRC,PCR,PRHO,PR)
!
!!$END FUNCTION PPM_01_X
END SUBROUTINE PPM_01_X
......@@ -62,7 +61,6 @@ REAL, INTENT(IN) :: PTSTEP ! Time step
!
! output source term
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PR
!acc reflected (PSRC,PCR,PRHO,PR)
!
END SUBROUTINE PPM_01_Z
!
......@@ -75,7 +73,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -96,7 +94,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -115,7 +113,7 @@ SUBROUTINE PPM_S0_Z(KGRID, PSRC, PCR, PRHO, PTSTEP &
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -133,7 +131,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -152,7 +150,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -169,7 +167,7 @@ FUNCTION PPM_S1_Z(KGRID, PSRC, PCR, PRHO, PRHOT, PTSTEP) &
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -193,6 +191,7 @@ END MODULE MODI_PPM
SUBROUTINE PPM_01_X(HLBCX, KGRID, PSRC, PCR, PRHO, PTSTEP, PR)
USE MODE_MNH_ZWORK, ONLY : ZT3D, MNH_GET_ZT3D , MNH_REL_ZT3D
USE MODE_MNH_ZWORK, ONLY : IIU,IJU,IKU
IMPLICIT NONE
!
......@@ -214,7 +213,8 @@ INTEGER :: IZQL,IZQR,IZDQ,IZQ6,IZDMQ,IZQL0,IZQR0,IZQ60,IZFPOS,IZFNEG
CALL MNH_GET_ZT3D(IZQL,IZQR,IZDQ,IZQ6,IZDMQ,IZQL0,IZQR0,IZQ60,IZFPOS,IZFNEG)
CALL PPM_01_X_D(HLBCX, KGRID, PSRC, PCR, PRHO, PTSTEP, PR, &
CALL PPM_01_X_D(IIU,IJU,IKU,HLBCX, KGRID, &
& PSRC, PCR, PRHO, PTSTEP, PR, &
& ZT3D(:,:,:,IZQL),ZT3D(:,:,:,IZQR),ZT3D(:,:,:,IZDQ),ZT3D(:,:,:,IZQ6), &
& ZT3D(:,:,:,IZDMQ),ZT3D(:,:,:,IZQL0),ZT3D(:,:,:,IZQR0), ZT3D(:,:,:,IZQ60), &
& ZT3D(:,:,:,IZFPOS),ZT3D(:,:,:,IZFNEG) )
......@@ -223,7 +223,8 @@ INTEGER :: IZQL,IZQR,IZDQ,IZQ6,IZDMQ,IZQL0,IZQR0,IZQ60,IZFPOS,IZFNEG
CONTAINS
SUBROUTINE PPM_01_X_D(HLBCX, KGRID, PSRC, PCR, PRHO, PTSTEP, PR, &
SUBROUTINE PPM_01_X_D(IIU,IJU,IKU,HLBCX, KGRID, &
& PSRC, PCR, PRHO, PTSTEP, PR, &
& ZQL,ZQR,ZDQ,ZQ6,ZDMQ,ZQL0,ZQR0,ZQ60,ZFPOS,ZFNEG)
! ########################################################################
......@@ -249,25 +250,25 @@ USE MODD_LUNIT
!END JUAN PPM_LL
USE MODE_MPPDB
USE MODD_PARAMETERS, ONLY : JPHEXT
USE MODE_TOOLS_ll, ONLY : GET_INDICE_ll, LEAST_ll, LWEST_ll
!
!
USE MODE_MNH_ZWORK, ONLY : IIB,IIE, IIU,IJU,IKU , IJS,IJN, GWEST,GEAST
!
IMPLICIT NONE
!
!* 0.1 Declarations of dummy arguments :
!
INTEGER , INTENT(IN) :: IIU,IJU,IKU
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
REAL, DIMENSION(IIU,IJU,IKU), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PCR ! Courant number
REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRHO ! density
REAL, INTENT(IN) :: PTSTEP ! Time step
!
! output source term
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PR
REAL, DIMENSION(IIU,IJU,IKU), INTENT(INOUT) :: PR
!$acc declare present (PSRC,PCR,PRHO,PR)
!
!* 0.2 Declarations of local variables :
......@@ -276,11 +277,11 @@ INTEGER :: ILUOUT,IRESP ! for prints
INTEGER :: I,J,K
!
!
!!$INTEGER, SAVE :: IIB,IJB ! Begining useful area in x,y,z directions
!!$INTEGER, SAVE :: IIE,IJE ! End useful area in x,y,z directions
INTEGER :: IIB,IJB ! Begining useful area in x,y,z directions
INTEGER :: IIE,IJE ! End useful area in x,y,z directions
!!$!
!!$! terms used in parabolic interpolation, dmq, qL, qR, dq, q6
REAL , DIMENSION(:,:,:) :: &
REAL , DIMENSION(IIU,IJU,IKU) :: &
ZQL,ZQR, ZDQ,ZQ6, ZDMQ &
!!$!
!!$! extra variables for the initial guess of parabolae parameters
......@@ -289,14 +290,12 @@ REAL , DIMENSION(:,:,:) :: &
!!$! advection fluxes
, ZFPOS, ZFNEG
!$acc declare present (ZQL,ZQR,ZDQ,ZQ6,ZDMQ,ZQL0,ZQR0,ZQ60,ZFPOS,ZFNEG)
!!$!
!!$!BEG JUAN PPM_LL
!!$INTEGER,SAVE :: IJS,IJN
!!$!END JUAN PPM_LL
!!$!JUAN ACC
!!$INTEGER, SAVE :: IIU,IJU,IKU
!!$LOGICAL, SAVE :: GWEST , GEAST
!!$LOGICAL, SAVE :: GFIRST_CALL_PPM_01_X = .TRUE.
!
!BEG JUAN PPM_LL
INTEGER :: IJS,IJN
!END JUAN PPM_LL
!JUAN ACC
LOGICAL :: GWEST , GEAST
!
! inline shuman with macro
!
......@@ -312,7 +311,11 @@ DQ(IIE+1,:,:)=0.5*(PQ(IIB+1,:,:)-PQ(IIE,:,:)) ! DIF2X(DQ,PQ)
!
!* 0.3. COMPUTES THE DOMAIN DIMENSIONS
! ------------------------------
!
CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
IJS=IJB
IJN=IJE
GWEST = LWEST_ll()
GEAST = LEAST_ll()
!
!BEG JUAN PPM_LL
!
......@@ -347,18 +350,24 @@ CALL GET_HALO_D(PSRC,HDIR="01_X")
!!$ZFPOS(I,J,K)=PSRC(I,J,K)
!!$ZFNEG(I,J,K)=PSRC(I,J,K)
!!$ENDDO ; ENDDO ; ENDDO
PR=PSRC
ZQL=PSRC
ZQR=PSRC
ZDQ=PSRC
ZQ6=PSRC
ZDMQ=PSRC
ZQL0=PSRC
ZQR0=PSRC
ZQ60=PSRC
!acc parallel vector_length(32)
!!$PR=PSRC
!!$ZQL=PSRC
!!$ZQR=PSRC
!!$ZDQ=PSRC
!!$ZQ6=PSRC
!!$ZDMQ=PSRC
!!$ZQL0=PSRC
!!$ZQR0=PSRC
!!$ZQ60=PSRC
ZFPOS=PSRC
ZFNEG=PSRC
! acc end kernels
!acc end parallel
!acc kernels
!
!-------------------------------------------------------------------------------
!
......@@ -527,6 +536,9 @@ ZFNEG=PSRC
#ifdef TEMPO_JUAN
!$acc end kernels
CALL GET_HALO_D(ZDMQ,HDIR="01_X")
IF (MPPDB_INITIALIZED) THEN
!$acc update host(ZDMQ)
ENDIF
CALL MPPDB_CHECK3DM("PPM::PPM_01_X OPEN ::ZDMQ",PRECISION,ZDMQ)
!$acc kernels
#endif
......@@ -618,7 +630,7 @@ ENDDO ; ENDDO ; ENDDO
!
#ifdef TEMPO_JUAN
!$acc end kernels
CALL GET_HALO_D(ZFPOS(:,:,:),HDIR="01_X")
CALL GET_HALO_D(ZFPOS,HDIR="01_X")
!$acc kernels
#endif
!
......@@ -641,7 +653,7 @@ CALL GET_HALO_D(ZFPOS(:,:,:),HDIR="01_X")
!
#ifdef TEMPO_JUAN
!$acc end kernels
CALL GET_HALO_D(ZFNEG(:,:,:),HDIR="01_X")
CALL GET_HALO_D(ZFNEG,HDIR="01_X")
!$acc kernels
#endif
!
......@@ -659,7 +671,7 @@ CALL GET_HALO_D(ZFNEG(:,:,:),HDIR="01_X")
!
! acc kernels
mxm(ZQL,PRHO)
ZQR = PCR* ZQL(:,:,:) *( ZFPOS(:,:,:)*(0.5+SIGN(0.5,PCR)) + ZFNEG(:,:,:)*(0.5-SIGN(0.5,PCR)) )
ZQR = PCR* ZQL *( ZFPOS*(0.5+SIGN(0.5,PCR)) + ZFNEG*(0.5-SIGN(0.5,PCR)) )
dxf(PR,ZQR)
!!$ PR = DXF( PCR*MXM(PRHO)*( ZFPOS*(0.5+SIGN(0.5,PCR)) + &
......@@ -895,7 +907,7 @@ CALL GET_HALO_D(PSRC,HDIR="01_Y")
!$acc kernels
#endif
PR=PSRC
ZQL(:,:,:)=PSRC
ZQL=PSRC
ZQR=PSRC
ZDQ=PSRC
ZQ6=PSRC
......@@ -903,7 +915,7 @@ ZDMQ=PSRC
ZQL0=PSRC
ZQR0=PSRC
ZQ60=PSRC
ZFPOS(:,:,:)=PSRC
ZFPOS=PSRC
ZFNEG=PSRC
! acc end kernels
!
......@@ -1173,7 +1185,7 @@ CALL GET_HALO_D(ZQL0,HDIR="01_Y")
!
#ifdef TEMPO_JUAN
!$acc end kernels
CALL GET_HALO_D(ZFPOS(:,:,:),HDIR="01_Y")
CALL GET_HALO_D(ZFPOS,HDIR="01_Y")
!$acc kernels
#endif
!
......@@ -1540,6 +1552,9 @@ ZFNEG(:,:,IKE+1) = (ZQR(:,:,IKE)-PSRC(:,:,IKE+1))*PCR(:,:,IKE+1) + &
#endif
CALL GET_HALO_D(PR)
IF (MPPDB_INITIALIZED) THEN
!$acc update host(PR)
ENDIF
CALL MPPDB_CHECK3DM("PPM::PPM_01_Z ::PR",PRECISION,PR)
!
!!$CONTAINS
......@@ -1627,7 +1642,7 @@ SUBROUTINE PPM_S0_X(HLBCX, KGRID, PSRC, PCR, PRHO, PTSTEP , PR)
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -1689,7 +1704,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -1965,6 +1980,9 @@ ENDIF
#endif
!
CALL GET_HALO(PR,HDIR="S0_X")
IF (MPPDB_INITIALIZED) THEN
!$acc update host(PR)
ENDIF
CALL MPPDB_CHECK3DM("PPM::PPM_S0_X OPEN ::PR",PRECISION,PR)
!!$!
!!$END SELECT
......@@ -1995,7 +2013,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -2055,7 +2073,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -2303,6 +2321,9 @@ ENDIF
#endif
!
CALL GET_HALO(PR,HDIR="S0_Y")
IF (MPPDB_INITIALIZED) THEN
!$acc update host(PR)
ENDIF
CALL MPPDB_CHECK3DM("PPM::PPM_S0_Y OPEN ::PR",PRECISION,PR)
!
!!$END SELECT
......@@ -2330,7 +2351,7 @@ SUBROUTINE PPM_S0_Z(KGRID, PSRC, PCR, PRHO, PTSTEP &
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -2383,7 +2404,7 @@ IMPLICIT NONE
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -2495,6 +2516,9 @@ ZFNEG(:,:,IKE+1) = (ZPHAT(:,:,IKE+1) - PSRC(:,:,IKE+1))*PCR(:,:,IKE+1) + &
#endif
!
CALL GET_HALO(PR) ! JUAN
IF (MPPDB_INITIALIZED) THEN
!$acc update host(PR)
ENDIF
CALL MPPDB_CHECK3DM("PPM::PPM_S0_Z ::PR",PRECISION,PR)
!
END SUBROUTINE PPM_S0_Z_D
......@@ -2537,7 +2561,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -2794,7 +2818,7 @@ CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! X direction LBC type
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......@@ -3051,7 +3075,7 @@ IMPLICIT NONE
!
INTEGER, INTENT(IN) :: KGRID ! C grid localisation
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSRC ! variable at t
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCR ! Courant number
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHO ! density
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment