From 18f936796fe1173db7d0adb3ae3955df4e5a55a8 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 15 Nov 2019 14:48:42 +0100
Subject: [PATCH] Philippe 15/11/2019: use NBUDGET_* parameters to identify all
 budget indices (continued)

---
 src/MNH/endstep.f90    |  8 ++++----
 src/MNH/ini_budget.f90 | 28 ++++++++++++++--------------
 src/MNH/les_budget.f90 | 22 +++++++++++-----------
 3 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90
index f5b1244bf..d29f434ea 100644
--- a/src/MNH/endstep.f90
+++ b/src/MNH/endstep.f90
@@ -514,8 +514,8 @@ END IF
 !*      10.   STORAGE IN BUDGET ARRAYS
 !
 IF (LBU_ENABLE) THEN
-  NBUPROCCTR(1:12+KSV)=3
-  NBUCTR_ACTV(1:12+KSV)=3
+  NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 3
+  NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 3
 !
   IF (LBUDGET_U)   CALL BUDGET( PUT(:,:,:)   * PRHODJ(:,:,:) / PTSTEP, NBUDGET_U,   'AVEF_BU_RU'   )
   IF (LBUDGET_V)   CALL BUDGET( PVT(:,:,:)   * PRHODJ(:,:,:) / PTSTEP, NBUDGET_V,   'AVEF_BU_RV'   )
@@ -535,8 +535,8 @@ IF (LBU_ENABLE) THEN
     END DO
   END IF
 !
-  NBUPROCCTR(1:12+KSV)=2
-  NBUCTR_ACTV(1:12+KSV)=2
+  NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 2
+  NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 2
 !
   IF (LBUDGET_U)   CALL BUDGET( PUS          * MXM(PRHODJ)         / PTSTEP, NBUDGET_U,   'ENDF_BU_RU'   )
   IF (LBUDGET_V)   CALL BUDGET( PVS          * MYM(PRHODJ)         / PTSTEP, NBUDGET_V,   'ENDF_BU_RV'   )
diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 6f188f7ef..21bd6fe45 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -2740,7 +2740,7 @@ DO JI=1,JPBUMAX                            ! loop over the allowed budgets
   YSTRING = ADJUSTL( YEND_COMMENT(JI) )
   ILEN    = LEN_TRIM(YSTRING)
   IF( ILEN /= 0 ) THEN
-    IF( JI <= 12 ) THEN
+    IF( JI < NBUDGET_SV1 ) THEN
       WRITE (UNIT=KLUOUT,FMT='(/,"budget ",A7," with ",I2," vectors")')        &
                                                   YSTRING(1:ILEN),NBUPROCNBR(JI)
       DO JJ=1,3
@@ -2756,7 +2756,7 @@ DO JI=1,JPBUMAX                            ! loop over the allowed budgets
     ELSE
       WRITE (UNIT=KLUOUT,                                                      &
              FMT='(/,"budget ",A7," (number ",I3,") with ",I2," vectors")')    &
-                                            YSTRING(1:ILEN),JI-12,NBUPROCNBR(JI)
+                                   YSTRING(1:ILEN),JI-NBUDGET_SV1+1,NBUPROCNBR(JI)
       DO JJ=1,3
         YSTRING = CBUCOMMENT(JI,JJ)
         ILEN    = LEN_TRIM(YSTRING)
@@ -2802,21 +2802,21 @@ ENDIF
 !*       5.    ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS
 !              -----------------------------------------
 IF (LBU_RU) THEN
-  ALLOCATE ( XBURU(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(1)) )
+  ALLOCATE ( XBURU(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_U)) )
   XBURU(:,:,:,:)=0.
   ALLOCATE ( XBURHODJU(IBUDIM1, IBUDIM2, IBUDIM3) )
   XBURHODJU(:,:,:)=0.
 END IF
 !
 IF (LBU_RV) THEN
-  ALLOCATE ( XBURV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(2)) )
+  ALLOCATE ( XBURV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_V)) )
   XBURV(:,:,:,:)=0.
   ALLOCATE ( XBURHODJV(IBUDIM1, IBUDIM2, IBUDIM3) )
   XBURHODJV(:,:,:)=0.
 END IF
 !
 IF (LBU_RW) THEN
-  ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(3)) )
+  ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_W)) )
   XBURW(:,:,:,:)=0.
   ALLOCATE ( XBURHODJW(IBUDIM1, IBUDIM2, IBUDIM3) )
   XBURHODJW(:,:,:)=0.
@@ -2829,47 +2829,47 @@ IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. &
 END IF
 !
 IF (LBU_RTH) THEN
-  ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(4)) )
+  ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TH)) )
   XBURTH(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RTKE) THEN
-  ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(5)) )
+  ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TKE)) )
   XBURTKE(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRV) THEN
-  ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(6)) )
+  ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RV)) )
   XBURRV(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRC) THEN
-  ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(7)) )
+  ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RC)) )
   XBURRC(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRR) THEN
-  ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(8)) )
+  ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RR)) )
   XBURRR(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRI) THEN
-  ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(9)) )
+  ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RI)) )
   XBURRI(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRS) THEN
-  ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(10)) )
+  ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RS)) )
   XBURRS(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRG) THEN
-  ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(11)) )
+  ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RG)) )
   XBURRG(:,:,:,:)=0.
 END IF
 !
 IF (LBU_RRH) THEN
-  ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(12)) )
+  ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RH)) )
   XBURRH(:,:,:,:)=0.
 END IF
 !
diff --git a/src/MNH/les_budget.f90 b/src/MNH/les_budget.f90
index 5984be32b..4ad63f048 100644
--- a/src/MNH/les_budget.f90
+++ b/src/MNH/les_budget.f90
@@ -225,7 +225,7 @@ SELECT CASE (KBUDN)
 !
   CASE( NBUDGET_RV, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH )
     !* transformation into conservative variables: RT
-    XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5)
+    XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1))
     CALL LES_BUDGET_ANOMALY(XCURRENT_RRTS,'-',ZANOM)
     !
     !* action in WRT budget
@@ -245,16 +245,16 @@ SELECT CASE (KBUDN)
     X_LES_BU_RES_THLRT(:,ILES_BU) = X_LES_BU_RES_THLRT(:,ILES_BU) + ZLES_PROF(:)
     !
     !* update fields
-    XCURRENT_RRS(:,:,:,KBUDN-5) = PVARS
+    XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) = PVARS
     XRT_ANOM = ZANOM
 !
 !* Rc
 !
   CASE( NBUDGET_RC )
     !* transformation into conservative variables: theta_l; RT
-    XCURRENT_RRTS  = XCURRENT_RRTS  + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5)
+    XCURRENT_RRTS  = XCURRENT_RRTS  + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1))
     XCURRENT_RTHLS = XCURRENT_RTHLS - XCURRENT_L_O_EXN_CP &
-                                    * (PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5))
+                                    * (PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)))
 
     !* anomaly of THL
     ALLOCATE(ZTHL_ANOM(IIU,IJU,NLES_K))
@@ -292,7 +292,7 @@ SELECT CASE (KBUDN)
     !
     !
     !* update fields
-    XCURRENT_RRS(:,:,:,KBUDN-5) = PVARS
+    XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) = PVARS
     XRT_ANOM = ZANOM
     XTHL_ANOM = ZTHL_ANOM
     DEALLOCATE(ZTHL_ANOM)
@@ -303,20 +303,20 @@ SELECT CASE (KBUDN)
     CALL LES_BUDGET_ANOMALY(PVARS,'-',ZANOM)
     !
     !* action in WSV budget
-    ZWORK_LES = ( ZANOM * XW_ANOM - XSV_ANOM(:,:,:,KBUDN-12) * XW_ANOM ) / &
+    ZWORK_LES = ( ZANOM * XW_ANOM - XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) * XW_ANOM ) / &
                   XCURRENT_TSTEP
     CALL LES_MEAN_ll( ZWORK_LES, LLES_CURRENT_CART_MASK, ZLES_PROF)
-    X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-12) = X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-12) + ZLES_PROF(:)
+    X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) = X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) + ZLES_PROF(:)
     !
     !* action in SV2 budget
-    ZWORK_LES = ( ZANOM **2 - XSV_ANOM(:,:,:,KBUDN-12) **2 ) / &
+    ZWORK_LES = ( ZANOM **2 - XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) **2 ) / &
                   XCURRENT_TSTEP
     CALL LES_MEAN_ll( ZWORK_LES, LLES_CURRENT_CART_MASK, ZLES_PROF)
-    X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-12) = X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-12) + ZLES_PROF(:)
+    X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) = X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) + ZLES_PROF(:)
     !
     !* update fields
-    XCURRENT_RSVS(:,:,:,KBUDN-12) = PVARS
-    XSV_ANOM(:,:,:,KBUDN-12) = ZANOM
+    XCURRENT_RSVS(:,:,:,KBUDN-(NBUDGET_SV1-1)) = PVARS
+    XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) = ZANOM
 
 END SELECT
 !
-- 
GitLab