From 250aedbf63014c9ab406da70402b7a1ef4e15b71 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 16 Aug 2023 11:48:31 +0200 Subject: [PATCH] Quentin 16/08/2023: PHYEX bugfix LES diag, time dimension was not defined properly. Impacts all LES diag on clear/neb/cs1/cs2/cs3 variables since 5.6.0 --- src/common/aux/modd_dimphyexn.F90 | 1 + src/mesonh/aux/mode_fill_dimphyexn.F90 | 9 +++++++-- src/mesonh/turb/les_mean_subgrid_phy.f90 | 12 ++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/common/aux/modd_dimphyexn.F90 b/src/common/aux/modd_dimphyexn.F90 index a2767fe04..cac698c82 100644 --- a/src/common/aux/modd_dimphyexn.F90 +++ b/src/common/aux/modd_dimphyexn.F90 @@ -76,6 +76,7 @@ TYPE DIMPHYEX_t INTEGER :: NIJE ! Last horizontal inner mass point index ! INTEGER :: NLESMASK ! Number of LES masks + INTEGER :: NLES_TIMES ! Number of LES time data storage ! END TYPE DIMPHYEX_t ! diff --git a/src/mesonh/aux/mode_fill_dimphyexn.F90 b/src/mesonh/aux/mode_fill_dimphyexn.F90 index 80679f8e1..5f965be18 100644 --- a/src/mesonh/aux/mode_fill_dimphyexn.F90 +++ b/src/mesonh/aux/mode_fill_dimphyexn.F90 @@ -6,7 +6,7 @@ MODULE MODE_FILL_DIMPHYEX IMPLICIT NONE CONTAINS -SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, LTURB) +SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, LTURB,KLES_TIMES) ! ######################### ! !! @@ -48,6 +48,7 @@ IMPLICIT NONE ! TYPE(DIMPHYEX_t), INTENT(OUT) :: YDDIMPHYEX ! Structure to fill in INTEGER, INTENT(IN) :: KIT, KJT, KKT ! Array dimensions +INTEGER, INTENT(IN), OPTIONAL :: KLES_TIMES ! Number of LES data storage frequency LOGICAL, INTENT(IN), OPTIONAL :: LTURB ! Flag to replace array dimensions I/JB and I/JE to the full array size ! needed if computation in HALO points (e.g. in turbulence) LOGICAL :: YTURB @@ -97,7 +98,11 @@ ELSE END IF IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 1, ZHOOK_HANDLE) ! -YDDIMPHYEX%NLESMASK = 1 +YDDIMPHYEX%NLESMASK=1 +YDDIMPHYEX%NLES_TIMES=0 +IF (PRESENT(KLES_TIMES)) THEN + YDDIMPHYEX%NLES_TIMES = KLES_TIMES +END IF IF (LLES_MY_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + NLES_MASKS_USER IF (LLES_NEB_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + 2 IF (LLES_CORE_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + 2 diff --git a/src/mesonh/turb/les_mean_subgrid_phy.f90 b/src/mesonh/turb/les_mean_subgrid_phy.f90 index 88a7d2c72..92d062946 100644 --- a/src/mesonh/turb/les_mean_subgrid_phy.f90 +++ b/src/mesonh/turb/les_mean_subgrid_phy.f90 @@ -25,7 +25,7 @@ TYPE(DIMPHYEX_t), INTENT(IN) :: D TYPE(TLES_t), INTENT(IN) :: TLES REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PA ! -REAL, DIMENSION(D%NKLES,TLES%NLES_CURRENT_TCOUNT,D%NLESMASK), INTENT(INOUT) :: PA_MEAN +REAL, DIMENSION(D%NKLES,D%NLES_TIMES,D%NLESMASK), INTENT(INOUT) :: PA_MEAN ! LOGICAL, OPTIONAL, INTENT(IN) :: OSUM ! @@ -41,7 +41,7 @@ TYPE(DIMPHYEX_t), INTENT(IN) :: D TYPE(TLES_t), INTENT(IN) :: TLES REAL, DIMENSION(D%NIJT), INTENT(IN) :: PA ! -REAL, DIMENSION(TLES%NLES_CURRENT_TCOUNT), INTENT(INOUT) :: PA_MEAN +REAL, DIMENSION(D%NLES_TIMES), INTENT(INOUT) :: PA_MEAN ! LOGICAL, OPTIONAL, INTENT(IN) :: OSUM ! @@ -63,7 +63,7 @@ IMPLICIT NONE TYPE(DIMPHYEX_t), INTENT(IN) :: D TYPE(TLES_t), INTENT(IN) :: TLES REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PA -REAL, DIMENSION(D%NKLES,TLES%NLES_CURRENT_TCOUNT,D%NLESMASK), INTENT(INOUT) :: PA_MEAN +REAL, DIMENSION(D%NKLES,D%NLES_TIMES,D%NLESMASK), INTENT(INOUT) :: PA_MEAN LOGICAL, OPTIONAL, INTENT(IN) :: OSUM ! CALL LES_MEAN_SUBGRID_unpack3D(D,TLES, PA, PA_MEAN, OSUM) @@ -85,7 +85,7 @@ IMPLICIT NONE TYPE(DIMPHYEX_t), INTENT(IN) :: D TYPE(TLES_t), INTENT(IN) :: TLES REAL, DIMENSION(D%NIJT), INTENT(IN) :: PA -REAL, DIMENSION(TLES%NLES_CURRENT_TCOUNT), INTENT(INOUT) :: PA_MEAN +REAL, DIMENSION(D%NLES_TIMES), INTENT(INOUT) :: PA_MEAN LOGICAL, OPTIONAL, INTENT(IN) :: OSUM ! CALL LES_MEAN_SUBGRID_unpackSURF(D, TLES, PA, PA_MEAN, OSUM) @@ -105,7 +105,7 @@ IMPLICIT NONE TYPE(DIMPHYEX_t), INTENT(IN) :: D TYPE(TLES_t), INTENT(IN) :: TLES REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PA -REAL, DIMENSION(D%NKLES,TLES%NLES_CURRENT_TCOUNT,D%NLESMASK), INTENT(INOUT) :: PA_MEAN +REAL, DIMENSION(D%NKLES,D%NLES_TIMES,D%NLESMASK), INTENT(INOUT) :: PA_MEAN LOGICAL, OPTIONAL, INTENT(IN) :: OSUM ! CALL LES_MEAN_SUBGRID_3D(PA, PA_MEAN, OSUM) @@ -128,7 +128,7 @@ IMPLICIT NONE TYPE(DIMPHYEX_t), INTENT(IN) :: D TYPE(TLES_t), INTENT(IN) :: TLES REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN) :: PA -REAL, DIMENSION(TLES%NLES_CURRENT_TCOUNT), INTENT(INOUT) :: PA_MEAN +REAL, DIMENSION(D%NLES_TIMES), INTENT(INOUT) :: PA_MEAN LOGICAL, OPTIONAL, INTENT(IN) :: OSUM ! CALL LES_MEAN_SUBGRID_SURF(PA, PA_MEAN, OSUM) -- GitLab