diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 5f8927f2aca8018978d5be6ead9621839d31c5ab..0ce34cddc81e78a31bc6f9d5ab6e2dcd7281a365 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -284,6 +284,7 @@ USE MODD_IO, ONLY: TFILEDATA USE MODD_LATZ_EDFLX USE MODD_LBC_n USE MODD_LES +USE MODD_LES_n, ONLY: NLES_TIMES USE MODD_LES_BUDGET USE MODD_LSFIELD_n USE MODD_LUNIT_n @@ -492,7 +493,7 @@ IKB = 1 + JPVEXT IKE = IKU - JPVEXT ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) -CALL FILL_DIMPHYEX(YLDIMPHYEX, SIZE(XTHT,1), SIZE(XTHT,2), SIZE(XTHT,3),.TRUE.) +CALL FILL_DIMPHYEX(YLDIMPHYEX, SIZE(XTHT,1), SIZE(XTHT,2), SIZE(XTHT,3),.TRUE.,NLES_TIMES) ! ZTIME1 = 0.0_MNHTIME ZTIME2 = 0.0_MNHTIME diff --git a/src/PHYEX/aux/modd_dimphyexn.f90 b/src/PHYEX/aux/modd_dimphyexn.f90 index a2767fe04d1d746f47a742200d17f1f97522477d..cac698c823aa8e03727ee9d744341830f5e9ef9a 100644 --- a/src/PHYEX/aux/modd_dimphyexn.f90 +++ b/src/PHYEX/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/PHYEX/aux/mode_fill_dimphyexn.f90 b/src/PHYEX/aux/mode_fill_dimphyexn.f90 index 80679f8e1929dfc71b47905a1d88abf6ebffd437..5f965be18b7d6a788d424ab047032aded219485c 100644 --- a/src/PHYEX/aux/mode_fill_dimphyexn.f90 +++ b/src/PHYEX/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/PHYEX/turb/les_mean_subgrid_phy.f90 b/src/PHYEX/turb/les_mean_subgrid_phy.f90 index 88a7d2c7260c6756fca71fcaabaebfbaa19b0f34..92d0629464e0cff34788b70ae8bcc8cd6d4071b5 100644 --- a/src/PHYEX/turb/les_mean_subgrid_phy.f90 +++ b/src/PHYEX/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)