Skip to content
Snippets Groups Projects
Commit 0032eb90 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 17/06/2016: optimisation: change variable status INOUT->OUT, replace...

Philippe 17/06/2016: optimisation: change variable status INOUT->OUT, replace update by affectation, removed intermediate variable
parent f87b8861
No related branches found
No related tags found
No related merge requests found
...@@ -36,8 +36,8 @@ REAL, INTENT(IN) :: PTSTEP ! Single Time step ...@@ -36,8 +36,8 @@ REAL, INTENT(IN) :: PTSTEP ! Single Time step
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT
! !
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES! Source terms REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTHS, PRTKES! Source terms
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRRS
! !
END SUBROUTINE PPM_MET END SUBROUTINE PPM_MET
! !
...@@ -124,8 +124,8 @@ REAL, INTENT(IN) :: PTSTEP ! Time step ...@@ -124,8 +124,8 @@ REAL, INTENT(IN) :: PTSTEP ! Time step
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT
! !
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES! Source terms REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTHS, PRTKES! Source terms
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRRS
! !
!* 0.2 Declarations of local variables : !* 0.2 Declarations of local variables :
! !
...@@ -135,11 +135,6 @@ LOGICAL :: GTKEALLOC ! true if TKE arrays are not zero-sized ...@@ -135,11 +135,6 @@ LOGICAL :: GTKEALLOC ! true if TKE arrays are not zero-sized
! !
INTEGER :: IGRID ! localisation on the model grid INTEGER :: IGRID ! localisation on the model grid
! !
!* Variables specific to ppm scheme
!
! Advection source term calulated in the PPM algorithm
REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZSRC
!
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
!* 1. COMPUTES THE DOMAIN DIMENSIONS !* 1. COMPUTES THE DOMAIN DIMENSIONS
...@@ -159,9 +154,7 @@ IGRID = 1 ...@@ -159,9 +154,7 @@ IGRID = 1
! !
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, &
PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, &
ZSRC, KTCOUNT, PCRU, PCRV, PCRW) PRTHS, KTCOUNT, PCRU, PCRV, PCRW)
! add the advection to the sources
PRTHS = PRTHS + ZSRC
! !
! !
! Turbulence variables ! Turbulence variables
...@@ -169,8 +162,7 @@ PRTHS = PRTHS + ZSRC ...@@ -169,8 +162,7 @@ PRTHS = PRTHS + ZSRC
IF (GTKEALLOC) THEN IF (GTKEALLOC) THEN
CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, PTKET,PRHODJ,PTSTEP, & CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, PTKET,PRHODJ,PTSTEP, &
PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, &
ZSRC, KTCOUNT, PCRU, PCRV, PCRW) PRTKES, KTCOUNT, PCRU, PCRV, PCRW)
PRTKES = PRTKES + ZSRC
! !
! !
END IF END IF
...@@ -180,13 +172,10 @@ END IF ...@@ -180,13 +172,10 @@ END IF
! Case with KRR moist variables ! Case with KRR moist variables
! !
DO JRR=1,KRR DO JRR=1,KRR
!
CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, & CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, &
PRT(:,:,:,JRR), PRHODJ, PTSTEP, & PRT(:,:,:,JRR), PRHODJ, PTSTEP, &
PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, &
ZSRC, KTCOUNT, PCRU, PCRV, PCRW ) PRRS(:,:,:,JRR), KTCOUNT, PCRU, PCRV, PCRW )
PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) + ZSRC(:,:,:)
!
END DO END DO
! !
! !
......
...@@ -38,7 +38,7 @@ REAL, INTENT(IN) :: PTSTEP ! Time step ...@@ -38,7 +38,7 @@ REAL, INTENT(IN) :: PTSTEP ! Time step
! !
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Vars at t REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Vars at t
! !
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRSVS ! Source terms REAL, DIMENSION(:,:,:,:), INTENT(OUT ) :: PRSVS ! Source terms
! !
! !
END SUBROUTINE PPM_SCALAR END SUBROUTINE PPM_SCALAR
...@@ -123,7 +123,7 @@ REAL, INTENT(IN) :: PTSTEP ! Time step ...@@ -123,7 +123,7 @@ REAL, INTENT(IN) :: PTSTEP ! Time step
! !
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT
! !
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRSVS ! Source terms REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRSVS ! Source terms
! !
! !
!* 0.2 Declarations of local variables : !* 0.2 Declarations of local variables :
...@@ -132,12 +132,6 @@ INTEGER :: JSV ! Loop index for Scalar Variables ...@@ -132,12 +132,6 @@ INTEGER :: JSV ! Loop index for Scalar Variables
! !
INTEGER :: IGRID ! localisation on the model grid INTEGER :: IGRID ! localisation on the model grid
! !
!* Variables specific to ppm scheme
!
! Advection source term calulated in the PPM algorithm
REAL, DIMENSION(SIZE(PCRU,1),SIZE(PCRU,2),SIZE(PCRU,3)) :: ZSRC
!
!
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
!* 1. CALL THE ADVEC_PPM_ALGO ROUTINE FOR EACH FIELD !* 1. CALL THE ADVEC_PPM_ALGO ROUTINE FOR EACH FIELD
...@@ -148,14 +142,10 @@ IGRID = 1 ...@@ -148,14 +142,10 @@ IGRID = 1
! Case with KSV tracers ! Case with KSV tracers
! !
DO JSV=1,KSV DO JSV=1,KSV
!
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, &
PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, &
ZSRC, KTCOUNT, PCRU, PCRV, PCRW) PRSVS(:,:,:,JSV), KTCOUNT, PCRU, PCRV, PCRW)
! add the advection to the sources
PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) + ZSRC(:,:,:)
!
END DO END DO
! !
! !
......
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