From e4393953246da6707d814a9648770cd301b4b70c Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 9 Feb 2023 16:15:48 +0100
Subject: [PATCH] Philippe 09/02/2023: XTMOY, XTMOYCOUNT and XNUMBELT => NTMOY,
 NTMOYCOUNT and NNUMBELT

---
 src/MNH/default_desfmn.f90     |  8 +--
 src/MNH/ini_modeln.f90         | 26 +++++-----
 src/MNH/modd_recycl_paramn.f90 | 19 ++++---
 src/MNH/modn_recycl_paramn.f90 | 30 +++++------
 src/MNH/recycl_fluc.f90        | 92 +++++++++++++++++-----------------
 src/MNH/recycling.f90          |  6 +--
 6 files changed, 93 insertions(+), 88 deletions(-)

diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index 0597b379c..829ce58fc 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -1431,9 +1431,9 @@ ENDIF
   XARECYCLS  = 0.
   XDRECYCLE  = 0.
   XARECYCLE  = 0.
-  XTMOY      = 0.
-  XTMOYCOUNT = 0.
-  XNUMBELT   = 28.
+  NTMOY      = 0
+  NTMOYCOUNT = 0
+  NNUMBELT   = 28
   XRCOEFF    = 0.2
   XTBVTOP    = 500.
   XTBVBOT    = 300.
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 47b48dd14..779b55526 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -727,19 +727,19 @@ IF (LRECYCL) THEN
 !
   NR_COUNT = 0
 !
-  ALLOCATE(XUMEANW(IJU,IKU,INT(XNUMBELT)))      ; XUMEANW  = 0.0
-  ALLOCATE(XVMEANW(IJU,IKU,INT(XNUMBELT)))      ; XVMEANW  = 0.0
-  ALLOCATE(XWMEANW(IJU,IKU,INT(XNUMBELT)))      ; XWMEANW  = 0.0
-  ALLOCATE(XUMEANN(IIU,IKU,INT(XNUMBELT)))      ; XUMEANN  = 0.0
-  ALLOCATE(XVMEANN(IIU,IKU,INT(XNUMBELT)))      ; XVMEANN  = 0.0
-  ALLOCATE(XWMEANN(IIU,IKU,INT(XNUMBELT)))      ; XWMEANN  = 0.0
-  ALLOCATE(XUMEANE(IJU,IKU,INT(XNUMBELT)))      ; XUMEANE  = 0.0
-  ALLOCATE(XVMEANE(IJU,IKU,INT(XNUMBELT)))      ; XVMEANE  = 0.0
-  ALLOCATE(XWMEANE(IJU,IKU,INT(XNUMBELT)))      ; XWMEANE  = 0.0
-  ALLOCATE(XUMEANS(IIU,IKU,INT(XNUMBELT)))      ; XUMEANS  = 0.0
-  ALLOCATE(XVMEANS(IIU,IKU,INT(XNUMBELT)))      ; XVMEANS  = 0.0
-  ALLOCATE(XWMEANS(IIU,IKU,INT(XNUMBELT)))      ; XWMEANS  = 0.0
-  ALLOCATE(XTBV(IIU,IJU,IKU))                   ; XTBV  = 0.0
+  ALLOCATE(XUMEANW(IJU,IKU,NNUMBELT))      ; XUMEANW  = 0.0
+  ALLOCATE(XVMEANW(IJU,IKU,NNUMBELT))      ; XVMEANW  = 0.0
+  ALLOCATE(XWMEANW(IJU,IKU,NNUMBELT))      ; XWMEANW  = 0.0
+  ALLOCATE(XUMEANN(IIU,IKU,NNUMBELT))      ; XUMEANN  = 0.0
+  ALLOCATE(XVMEANN(IIU,IKU,NNUMBELT))      ; XVMEANN  = 0.0
+  ALLOCATE(XWMEANN(IIU,IKU,NNUMBELT))      ; XWMEANN  = 0.0
+  ALLOCATE(XUMEANE(IJU,IKU,NNUMBELT))      ; XUMEANE  = 0.0
+  ALLOCATE(XVMEANE(IJU,IKU,NNUMBELT))      ; XVMEANE  = 0.0
+  ALLOCATE(XWMEANE(IJU,IKU,NNUMBELT))      ; XWMEANE  = 0.0
+  ALLOCATE(XUMEANS(IIU,IKU,NNUMBELT))      ; XUMEANS  = 0.0
+  ALLOCATE(XVMEANS(IIU,IKU,NNUMBELT))      ; XVMEANS  = 0.0
+  ALLOCATE(XWMEANS(IIU,IKU,NNUMBELT))      ; XWMEANS  = 0.0
+  ALLOCATE(XTBV(IIU,IJU,IKU))              ; XTBV  = 0.0
 ELSE
   ALLOCATE(XUMEANW(0,0,0))
   ALLOCATE(XVMEANW(0,0,0))
diff --git a/src/MNH/modd_recycl_paramn.f90 b/src/MNH/modd_recycl_paramn.f90
index bfc4d7b3e..52872ad2a 100644
--- a/src/MNH/modd_recycl_paramn.f90
+++ b/src/MNH/modd_recycl_paramn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2021-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2021-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -31,6 +31,7 @@
 !    MODIFICATIONS
 !    -------------
 !      Original    01/02/2021
+!  P. Wautelet 09/02/2023: XTMOY, XTMOYCOUNT and XNUMBELT => NTMOY, NTMOYCOUNT and NNUMBELT
 !
 !------------------------------------------------------------------------------
 !
@@ -42,10 +43,11 @@ IMPLICIT NONE
 !
 TYPE RECYCL_t
 !
+INTEGER          :: NTMOY, NTMOYCOUNT, NNUMBELT
 LOGICAL          :: LRECYCL,LRECYCLN,LRECYCLW,LRECYCLE,LRECYCLS              ! Recycling logical
 REAL             :: XDRECYCLN,XDRECYCLW,XDRECYCLE,XDRECYCLS,    &
                     XARECYCLN,XARECYCLW,XARECYCLE,XARECYCLS,    &
-                    XTMOY,XTMOYCOUNT,XNUMBELT,XRCOEFF,XTBVTOP,XTBVBOT
+                    XRCOEFF,XTBVTOP,XTBVBOT
 
 INTEGER                             :: NR_COUNT
 REAL, DIMENSION(:,:,:)   ,POINTER :: XUMEANW=>NULL()
@@ -65,6 +67,10 @@ END TYPE RECYCL_t
 
 TYPE(RECYCL_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: RECYCL_MODEL
 
+INTEGER                 ,POINTER :: NTMOY=>NULL()
+INTEGER                 ,POINTER :: NTMOYCOUNT=>NULL()
+INTEGER                 ,POINTER :: NNUMBELT=>NULL()
+
 LOGICAL                 ,POINTER :: LRECYCL=>NULL()
 LOGICAL                 ,POINTER :: LRECYCLN=>NULL()
 LOGICAL                 ,POINTER :: LRECYCLW=>NULL()
@@ -79,9 +85,6 @@ REAL                    ,POINTER :: XDRECYCLE=>NULL()
 REAL                    ,POINTER :: XARECYCLE=>NULL()
 REAL                    ,POINTER :: XDRECYCLS=>NULL()
 REAL                    ,POINTER :: XARECYCLS=>NULL()
-REAL                    ,POINTER :: XTMOY=>NULL()
-REAL                    ,POINTER :: XTMOYCOUNT=>NULL()
-REAL                    ,POINTER :: XNUMBELT=>NULL()
 REAL                    ,POINTER :: XRCOEFF=>NULL()
 REAL                    ,POINTER :: XTBVTOP=>NULL()
 REAL                    ,POINTER :: XTBVBOT=>NULL()
@@ -127,6 +130,9 @@ RECYCL_MODEL(KFROM)%XWMEANS=>XWMEANS
 
 !
 ! Current model is set to model KTO
+NTMOY      => RECYCL_MODEL(KTO)%NTMOY
+NTMOYCOUNT => RECYCL_MODEL(KTO)%NTMOYCOUNT
+NNUMBELT   => RECYCL_MODEL(KTO)%NNUMBELT
 LRECYCL=>RECYCL_MODEL(KTO)%LRECYCL
 LRECYCLN=>RECYCL_MODEL(KTO)%LRECYCLN
 LRECYCLW=>RECYCL_MODEL(KTO)%LRECYCLW
@@ -140,9 +146,6 @@ XDRECYCLE=>RECYCL_MODEL(KTO)%XDRECYCLE
 XARECYCLE=>RECYCL_MODEL(KTO)%XARECYCLE
 XDRECYCLS=>RECYCL_MODEL(KTO)%XDRECYCLS
 XARECYCLS=>RECYCL_MODEL(KTO)%XARECYCLS
-XTMOY=>RECYCL_MODEL(KTO)%XTMOY
-XTMOYCOUNT=>RECYCL_MODEL(KTO)%XTMOYCOUNT
-XNUMBELT=>RECYCL_MODEL(KTO)%XNUMBELT
 XRCOEFF=>RECYCL_MODEL(KTO)%XRCOEFF
 XTBVTOP=>RECYCL_MODEL(KTO)%XTBVTOP
 XTBVBOT=>RECYCL_MODEL(KTO)%XTBVBOT
diff --git a/src/MNH/modn_recycl_paramn.f90 b/src/MNH/modn_recycl_paramn.f90
index fbe4cf576..92007900f 100644
--- a/src/MNH/modn_recycl_paramn.f90
+++ b/src/MNH/modn_recycl_paramn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2019-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2021-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -46,23 +46,25 @@ USE MODD_RECYCL_PARAM_n, ONLY: &
          XARECYCLE_n => XARECYCLE , &
          XDRECYCLS_n => XDRECYCLS , &
          XARECYCLS_n => XARECYCLS , &
-         XTMOY_n => XTMOY, &
-         XTMOYCOUNT_n => XTMOYCOUNT , &       
-         XNUMBELT_n => XNUMBELT,     &
+         NTMOY_n      => NTMOY,      &
+         NTMOYCOUNT_n => NTMOYCOUNT, &
+         NNUMBELT_n   => NNUMBELT,   &
          XRCOEFF_n => XRCOEFF,       &
          XTBVTOP_n => XTBVTOP,     &
          XTBVBOT_n => XTBVBOT
 !
 IMPLICIT NONE
 !
+INTEGER, SAVE :: NTMOY, NTMOYCOUNT, NNUMBELT
 LOGICAL,SAVE  :: LRECYCL,LRECYCLN,LRECYCLW,LRECYCLE,LRECYCLS
 REAL,SAVE     :: XDRECYCLN,XARECYCLN,XDRECYCLW,XARECYCLW,XDRECYCLE,XARECYCLE,XDRECYCLS,&
-                 XARECYCLS,XTMOY,XTMOYCOUNT,XNUMBELT,XRCOEFF,XTBVTOP,XTBVBOT
+                 XARECYCLS,XRCOEFF,XTBVTOP,XTBVBOT
 
 !
-NAMELIST /NAM_RECYCL_PARAMn/ LRECYCL,LRECYCLN,LRECYCLW,LRECYCLE,LRECYCLS,XDRECYCLW,      &
-                             XARECYCLW,XDRECYCLN,XARECYCLN,XDRECYCLE,XARECYCLE,XDRECYCLS,&
-                             XARECYCLS,XTMOY,XTMOYCOUNT,XNUMBELT,XRCOEFF,XTBVTOP,XTBVBOT
+NAMELIST /NAM_RECYCL_PARAMn/ NTMOY, NTMOYCOUNT, NNUMBELT,                                                 &
+                             LRECYCL, LRECYCLN, LRECYCLW, LRECYCLE, LRECYCLS,                             &
+                             XDRECYCLW, XARECYCLW, XDRECYCLN, XARECYCLN, XDRECYCLE, XARECYCLE, XDRECYCLS, &
+                             XARECYCLS, XRCOEFF, XTBVTOP, XTBVBOT
 !
 CONTAINS
 !
@@ -80,9 +82,9 @@ SUBROUTINE INIT_NAM_RECYCL_PARAMn
   XARECYCLE = XARECYCLE_n
   XDRECYCLS = XDRECYCLS_n
   XARECYCLS = XARECYCLS_n
-  XTMOY = XTMOY_n
-  XTMOYCOUNT = XTMOYCOUNT_n
-  XNUMBELT = XNUMBELT_n
+  NTMOY      = NTMOY_n
+  NTMOYCOUNT = NTMOYCOUNT_n
+  NNUMBELT   = NNUMBELT_n
   XRCOEFF = XRCOEFF_n
   XTBVTOP = XTBVTOP_n
   XTBVBOT = XTBVBOT_n
@@ -104,9 +106,9 @@ SUBROUTINE UPDATE_NAM_RECYCL_PARAMn
   XARECYCLE_n = XARECYCLE
   XDRECYCLS_n = XDRECYCLS
   XARECYCLS_n = XARECYCLS
-  XTMOY_n = XTMOY
-  XTMOYCOUNT_n = XTMOYCOUNT
-  XNUMBELT_n = XNUMBELT
+  NTMOY_n      = NTMOY
+  NTMOYCOUNT_n = NTMOYCOUNT
+  NNUMBELT_n   = NNUMBELT
   XRCOEFF_n = XRCOEFF
   XTBVTOP_n = XTBVTOP
   XTBVBOT_n = XTBVBOT
diff --git a/src/MNH/recycl_fluc.f90 b/src/MNH/recycl_fluc.f90
index 2ee5471c1..15700f18c 100644
--- a/src/MNH/recycl_fluc.f90
+++ b/src/MNH/recycl_fluc.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2021-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2021-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -60,7 +60,7 @@ END MODULE MODI_RECYCL_FLUC
 !!      MODIFICATIONS
 !!      -------------
 !!        Original          01/02/2021
-!!
+!  P. Wautelet 09/02/2023: XTMOY, XTMOYCOUNT and XNUMBELT => NTMOY, NTMOYCOUNT and NNUMBELT
 !------------------------------------------------------------------------------
 !       
 !**** 0. DECLARATIONS
@@ -215,21 +215,21 @@ IF (LRECYCLW) THEN
   !
   ! *** Mean and fluctuations calculation
   !
-  IF(ONR_COUNT.LE.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0) THEN
-     ICOUNT=ONR_COUNT/XTMOYCOUNT
+  IF(ONR_COUNT<=NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0) THEN
+     ICOUNT=ONR_COUNT/NTMOYCOUNT
      XUMEANW(:,:,ICOUNT)=ZTMPUNW(:,:)
      XVMEANW(:,:,ICOUNT)=ZTMPVTW(:,:)
      XWMEANW(:,:,ICOUNT)=ZTMPWTW(:,:)
   ENDIF
-  IF(ONR_COUNT.GT.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0.AND.OPT_COUNT/=1) THEN
-     DO JCOUNT=1,INT(XNUMBELT)-1
+  IF(ONR_COUNT>NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0.AND.OPT_COUNT/=1) THEN
+     DO JCOUNT=1,NNUMBELT-1
         XUMEANW(:,:,JCOUNT)=XUMEANW(:,:,JCOUNT+1)
         XVMEANW(:,:,JCOUNT)=XVMEANW(:,:,JCOUNT+1)
         XWMEANW(:,:,JCOUNT)=XWMEANW(:,:,JCOUNT+1)
      ENDDO
-     XUMEANW(:,:,INT(XNUMBELT))=ZTMPUNW(:,:)
-     XVMEANW(:,:,INT(XNUMBELT))=ZTMPVTW(:,:)
-     XWMEANW(:,:,INT(XNUMBELT))=ZTMPWTW(:,:)
+     XUMEANW(:,:,NNUMBELT)=ZTMPUNW(:,:)
+     XVMEANW(:,:,NNUMBELT)=ZTMPVTW(:,:)
+     XWMEANW(:,:,NNUMBELT)=ZTMPWTW(:,:)
    ENDIF
    IF (LWEST_ll( )) THEN
      DO JJ = 1,IJU-1
@@ -243,10 +243,10 @@ IF (LRECYCLW) THEN
            ENDIF
         ENDDO
      ENDDO
-     IF(NR_COUNT.GT.XTMOY) THEN
-       ZTMPFUNW =ZTMPUNW(:,:)-(SUM(XUMEANW,DIM=3)/INT(XNUMBELT))
-       ZTMPFVTW =ZTMPVTW(:,:)-(SUM(XVMEANW,DIM=3)/INT(XNUMBELT))
-       ZTMPFWTW =ZTMPWTW(:,:)-(SUM(XWMEANW,DIM=3)/INT(XNUMBELT))
+     IF(NR_COUNT>NTMOY) THEN
+       ZTMPFUNW =ZTMPUNW(:,:)-(SUM(XUMEANW,DIM=3)/NNUMBELT)
+       ZTMPFVTW =ZTMPVTW(:,:)-(SUM(XVMEANW,DIM=3)/NNUMBELT)
+       ZTMPFWTW =ZTMPWTW(:,:)-(SUM(XWMEANW,DIM=3)/NNUMBELT)
        PFLUCTUNW(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFUNW(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
                                                            ZALPWEST(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)
        PFLUCTVTW(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFVTW(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
@@ -290,21 +290,21 @@ IF (LRECYCLN) THEN
   !
   ! *** Mean and fluctuations calculation
   !
-  IF(ONR_COUNT.LE.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0) THEN
-     ICOUNT=ONR_COUNT/XTMOYCOUNT
+  IF(ONR_COUNT<=NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0) THEN
+     ICOUNT=ONR_COUNT/NTMOYCOUNT
      XUMEANN(:,:,ICOUNT)=ZTMPUTN(:,:)
      XVMEANN(:,:,ICOUNT)=ZTMPVNN(:,:)
      XWMEANN(:,:,ICOUNT)=ZTMPWTN(:,:)
   ENDIF
-  IF(ONR_COUNT.GT.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0.AND.OPT_COUNT/=1) THEN
-     DO JCOUNT=1,INT(XNUMBELT)-1
+  IF(ONR_COUNT>NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0.AND.OPT_COUNT/=1) THEN
+     DO JCOUNT=1,NNUMBELT-1
         XUMEANN(:,:,JCOUNT)=XUMEANN(:,:,JCOUNT+1)
         XVMEANN(:,:,JCOUNT)=XVMEANN(:,:,JCOUNT+1)
         XWMEANN(:,:,JCOUNT)=XWMEANN(:,:,JCOUNT+1)
      ENDDO
-     XUMEANN(:,:,INT(XNUMBELT))=ZTMPUTN(:,:)
-     XVMEANN(:,:,INT(XNUMBELT))=ZTMPVNN(:,:)
-     XWMEANN(:,:,INT(XNUMBELT))=ZTMPWTN(:,:)
+     XUMEANN(:,:,NNUMBELT)=ZTMPUTN(:,:)
+     XVMEANN(:,:,NNUMBELT)=ZTMPVNN(:,:)
+     XWMEANN(:,:,NNUMBELT)=ZTMPWTN(:,:)
   ENDIF
 
   IF (LNORTH_ll( )) THEN
@@ -319,10 +319,10 @@ IF (LRECYCLN) THEN
            ENDIF
         ENDDO
      ENDDO
-     IF(NR_COUNT.GT.XTMOY) THEN
-        ZTMPFUTN =ZTMPUTN(:,:)-(SUM(XUMEANN,DIM=3)/INT(XNUMBELT))
-        ZTMPFVNN =ZTMPVNN(:,:)-(SUM(XVMEANN,DIM=3)/INT(XNUMBELT))
-        ZTMPFWTN =ZTMPWTN(:,:)-(SUM(XWMEANN,DIM=3)/INT(XNUMBELT))
+     IF(NR_COUNT>NTMOY) THEN
+        ZTMPFUTN =ZTMPUTN(:,:)-(SUM(XUMEANN,DIM=3)/NNUMBELT)
+        ZTMPFVNN =ZTMPVNN(:,:)-(SUM(XVMEANN,DIM=3)/NNUMBELT)
+        ZTMPFWTN =ZTMPWTN(:,:)-(SUM(XWMEANN,DIM=3)/NNUMBELT)
         PFLUCTVNN(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFVNN(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
                                                             ZALPNORTH(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)
         PFLUCTUTN(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFUTN(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
@@ -366,21 +366,21 @@ IF (LRECYCLE) THEN
   !
   ! *** Mean and fluctuations calculation
   !
-  IF(ONR_COUNT.LE.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0) THEN
-     ICOUNT=ONR_COUNT/XTMOYCOUNT
+  IF(ONR_COUNT<=NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0) THEN
+     ICOUNT=ONR_COUNT/NTMOYCOUNT
      XUMEANE(:,:,ICOUNT)=ZTMPUNE(:,:)
      XVMEANE(:,:,ICOUNT)=ZTMPVTE(:,:)
      XWMEANE(:,:,ICOUNT)=ZTMPWTE(:,:)
   ENDIF
-  IF(ONR_COUNT.GT.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0.AND.OPT_COUNT/=1) THEN
-     DO JCOUNT=1,INT(XNUMBELT)-1
+  IF(ONR_COUNT>NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0.AND.OPT_COUNT/=1) THEN
+     DO JCOUNT=1,NNUMBELT-1
         XUMEANE(:,:,JCOUNT)=XUMEANE(:,:,JCOUNT+1)
         XVMEANE(:,:,JCOUNT)=XVMEANE(:,:,JCOUNT+1)
         XWMEANE(:,:,JCOUNT)=XWMEANE(:,:,JCOUNT+1)
      ENDDO
-     XUMEANE(:,:,INT(XNUMBELT))=ZTMPUNE(:,:)
-     XVMEANE(:,:,INT(XNUMBELT))=ZTMPVTE(:,:)
-     XWMEANE(:,:,INT(XNUMBELT))=ZTMPWTE(:,:)
+     XUMEANE(:,:,NNUMBELT)=ZTMPUNE(:,:)
+     XVMEANE(:,:,NNUMBELT)=ZTMPVTE(:,:)
+     XWMEANE(:,:,NNUMBELT)=ZTMPWTE(:,:)
   ENDIF
   IF (LEAST_ll( )) THEN
      DO JJ = 1,IJU-1
@@ -394,10 +394,10 @@ IF (LRECYCLE) THEN
            ENDIF
         ENDDO
      ENDDO
-     IF(NR_COUNT.GT.XTMOY) THEN
-       ZTMPFUNE =ZTMPUNE(:,:)-(SUM(XUMEANE,DIM=3)/INT(XNUMBELT))
-       ZTMPFVTE =ZTMPVTE(:,:)-(SUM(XVMEANE,DIM=3)/INT(XNUMBELT))
-       ZTMPFWTE =ZTMPWTE(:,:)-(SUM(XWMEANE,DIM=3)/INT(XNUMBELT))
+     IF(NR_COUNT>NTMOY) THEN
+       ZTMPFUNE =ZTMPUNE(:,:)-(SUM(XUMEANE,DIM=3)/NNUMBELT)
+       ZTMPFVTE =ZTMPVTE(:,:)-(SUM(XVMEANE,DIM=3)/NNUMBELT)
+       ZTMPFWTE =ZTMPWTE(:,:)-(SUM(XWMEANE,DIM=3)/NNUMBELT)
        PFLUCTUNE(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFUNE(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
                                                            ZALPEAST(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)
        PFLUCTVTE(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFVTE(1+JPHEXT:IJU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
@@ -441,21 +441,21 @@ IF (LRECYCLS) THEN
   !
   ! *** Mean and fluctuations calculation
   !
-  IF(ONR_COUNT.LE.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0) THEN
-     ICOUNT=ONR_COUNT/XTMOYCOUNT
+  IF(ONR_COUNT<=NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0) THEN
+     ICOUNT=ONR_COUNT/NTMOYCOUNT
      XUMEANS(:,:,ICOUNT)=ZTMPUTS(:,:)
      XVMEANS(:,:,ICOUNT)=ZTMPVNS(:,:)
      XWMEANS(:,:,ICOUNT)=ZTMPWTS(:,:)
   ENDIF
-  IF(ONR_COUNT.GT.XTMOY.AND.MOD(ONR_COUNT,INT(XTMOYCOUNT))==0.AND.OPT_COUNT/=1) THEN
-     DO JCOUNT=1,INT(XNUMBELT)-1
+  IF(ONR_COUNT>NTMOY.AND.MOD(ONR_COUNT,NTMOYCOUNT)==0.AND.OPT_COUNT/=1) THEN
+     DO JCOUNT=1,NNUMBELT-1
         XUMEANS(:,:,JCOUNT)=XUMEANS(:,:,JCOUNT+1)
         XVMEANS(:,:,JCOUNT)=XVMEANS(:,:,JCOUNT+1)
         XWMEANS(:,:,JCOUNT)=XWMEANS(:,:,JCOUNT+1)
      ENDDO
-     XUMEANS(:,:,INT(XNUMBELT))=ZTMPUTS(:,:)
-     XVMEANS(:,:,INT(XNUMBELT))=ZTMPVNS(:,:)
-     XWMEANS(:,:,INT(XNUMBELT))=ZTMPWTS(:,:)
+     XUMEANS(:,:,NNUMBELT)=ZTMPUTS(:,:)
+     XVMEANS(:,:,NNUMBELT)=ZTMPVNS(:,:)
+     XWMEANS(:,:,NNUMBELT)=ZTMPWTS(:,:)
   ENDIF
   IF (LSOUTH_ll( )) THEN
      DO JJ = 1,IIU-1
@@ -469,10 +469,10 @@ IF (LRECYCLS) THEN
            ENDIF
         ENDDO
      ENDDO
-     IF(NR_COUNT.GT.XTMOY) THEN
-        ZTMPFUTS =ZTMPUTS(:,:)-(SUM(XUMEANS,DIM=3)/INT(XNUMBELT))
-        ZTMPFVNS =ZTMPVNS(:,:)-(SUM(XVMEANS,DIM=3)/INT(XNUMBELT))
-        ZTMPFWTS =ZTMPWTS(:,:)-(SUM(XWMEANS,DIM=3)/INT(XNUMBELT))
+     IF(NR_COUNT>NTMOY) THEN
+        ZTMPFUTS =ZTMPUTS(:,:)-(SUM(XUMEANS,DIM=3)/NNUMBELT)
+        ZTMPFVNS =ZTMPVNS(:,:)-(SUM(XVMEANS,DIM=3)/NNUMBELT)
+        ZTMPFWTS =ZTMPWTS(:,:)-(SUM(XWMEANS,DIM=3)/NNUMBELT)
         PFLUCTVNS(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFVNS(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
                                                             ZALPSOUTH(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)
         PFLUCTUTS(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)= ZTMPFUTS(1+JPHEXT:IIU-JPHEXT,1+JPVEXT:IKU-JPVEXT)* &
diff --git a/src/MNH/recycling.f90 b/src/MNH/recycling.f90
index 18e0956cd..8f23754e9 100644
--- a/src/MNH/recycling.f90
+++ b/src/MNH/recycling.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2021-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2021-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -109,8 +109,8 @@ Z_DELTY = XYHAT(2)-XYHAT(1)
 !     ---------------
 !
 !Moving averaged parameter verification
-IF (PTCOUNT==1 .AND. INT(XTMOY)/INT(XTMOYCOUNT) /= INT(XNUMBELT)) THEN
-    CMNHMSG(1) = 'XTMOY/XTMOYCOUNT must be equal to XNUMBELT'
+IF (PTCOUNT==1 .AND. ( NTMOY /= NNUMBELT * NTMOYCOUNT ) ) THEN
+    CMNHMSG(1) = 'NTMOY must be equal to NNUMBELT*NTMOYCOUNT'
     CMNHMSG(2) = 'Please change the above parameters accordingly in NAM_RECYCL_PARAMn'
     CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'RECYCLING' )
 END IF
-- 
GitLab