From 0032eb9019b73b1425dfec39cdcfdad896eabccb Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 17 Jun 2016 10:06:37 +0200 Subject: [PATCH] Philippe 17/06/2016: optimisation: change variable status INOUT->OUT, replace update by affectation, removed intermediate variable --- src/MNH/ppm_met.f90 | 25 +++++++------------------ src/MNH/ppm_scalar.f90 | 16 +++------------- 2 files changed, 10 insertions(+), 31 deletions(-) diff --git a/src/MNH/ppm_met.f90 b/src/MNH/ppm_met.f90 index 65eed307e..d89ff1700 100644 --- a/src/MNH/ppm_met.f90 +++ b/src/MNH/ppm_met.f90 @@ -36,8 +36,8 @@ REAL, INTENT(IN) :: PTSTEP ! Single Time step REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES! Source terms -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTHS, PRTKES! Source terms +REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRRS ! END SUBROUTINE PPM_MET ! @@ -124,8 +124,8 @@ REAL, INTENT(IN) :: PTSTEP ! Time step REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES! Source terms -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTHS, PRTKES! Source terms +REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRRS ! !* 0.2 Declarations of local variables : ! @@ -135,11 +135,6 @@ LOGICAL :: GTKEALLOC ! true if TKE arrays are not zero-sized ! 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 @@ -159,9 +154,7 @@ IGRID = 1 ! CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, PTHT, PRHODJ, PTSTEP, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & - ZSRC, KTCOUNT, PCRU, PCRV, PCRW) -! add the advection to the sources -PRTHS = PRTHS + ZSRC + PRTHS, KTCOUNT, PCRU, PCRV, PCRW) ! ! ! Turbulence variables @@ -169,8 +162,7 @@ PRTHS = PRTHS + ZSRC IF (GTKEALLOC) THEN CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, PTKET,PRHODJ,PTSTEP, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & - ZSRC, KTCOUNT, PCRU, PCRV, PCRW) - PRTKES = PRTKES + ZSRC + PRTKES, KTCOUNT, PCRU, PCRV, PCRW) ! ! END IF @@ -180,13 +172,10 @@ END IF ! Case with KRR moist variables ! DO JRR=1,KRR -! CALL ADVEC_PPM_ALGO(HMET_ADV_SCHEME, HLBCX, HLBCY, IGRID, & PRT(:,:,:,JRR), PRHODJ, PTSTEP, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & - ZSRC, KTCOUNT, PCRU, PCRV, PCRW ) - PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) + ZSRC(:,:,:) -! + PRRS(:,:,:,JRR), KTCOUNT, PCRU, PCRV, PCRW ) END DO ! ! diff --git a/src/MNH/ppm_scalar.f90 b/src/MNH/ppm_scalar.f90 index 25f08aba4..99951ba52 100644 --- a/src/MNH/ppm_scalar.f90 +++ b/src/MNH/ppm_scalar.f90 @@ -38,7 +38,7 @@ REAL, INTENT(IN) :: PTSTEP ! Time step ! 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 @@ -123,7 +123,7 @@ REAL, INTENT(IN) :: PTSTEP ! Time step ! 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 : @@ -132,12 +132,6 @@ INTEGER :: JSV ! Loop index for Scalar Variables ! 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 @@ -148,14 +142,10 @@ IGRID = 1 ! Case with KSV tracers ! DO JSV=1,KSV -! CALL ADVEC_PPM_ALGO(HSV_ADV_SCHEME, HLBCX, HLBCY, IGRID, PSVT(:,:,:,JSV), & PRHODJ, PTSTEP, & PRHOX1, PRHOX2, PRHOY1, PRHOY2, PRHOZ1, PRHOZ2, & - ZSRC, KTCOUNT, PCRU, PCRV, PCRW) -! add the advection to the sources - PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) + ZSRC(:,:,:) -! + PRSVS(:,:,:,JSV), KTCOUNT, PCRU, PCRV, PCRW) END DO ! ! -- GitLab