diff --git a/src/MNH/adjust_langlois.f90 b/src/MNH/adjust_langlois.f90
index 42c73b53f3bbc5f05cf0d9a2889a4615179cf3e7..531ccc9f7301f3b28e975affe1ea62fd684d6926 100644
--- a/src/MNH/adjust_langlois.f90
+++ b/src/MNH/adjust_langlois.f90
@@ -86,7 +86,6 @@ END MODULE MODI_ADJUST_LANGLOIS
 !!      Module MODD_BUDGET:
 !!         NBUMOD
 !!         CBUTYPE
-!!         NBUPROCCTR
 !!         LBU_RTH
 !!         LBU_RRV
 !!         LBU_RRC
diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90
index 1be09d2308fb03483168e5e77a9c0890c901e0d5..974bdefb90b7d8d0a1438d8ef32475cda3277a52 100644
--- a/src/MNH/c2r2_adjust.f90
+++ b/src/MNH/c2r2_adjust.f90
@@ -90,7 +90,6 @@ END MODULE MODI_C2R2_ADJUST
 !!      Module MODD_BUDGET:
 !!         NBUMOD 
 !!         CBUTYPE
-!!         NBUPROCCTR 
 !!         LBU_RTH    
 !!         LBU_RRV  
 !!         LBU_RRC  
diff --git a/src/MNH/dyn_sources.f90 b/src/MNH/dyn_sources.f90
index d2c15f0ff9af0317d14f927cc939114364759aa3..ad9f3773d84569ef947e06cf4b5ab0431430f5c6 100644
--- a/src/MNH/dyn_sources.f90
+++ b/src/MNH/dyn_sources.f90
@@ -106,7 +106,6 @@ END MODULE MODI_DYN_SOURCES
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask 
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         LBU_RTH      : logical for budget of RTH (potential temperature)
 !!                        .TRUE. = budget of RTH        
 !!                        .FALSE. = no budget of RTH
diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90
index dfa7e6195ca56f8272f8019ab15949207d678e01..665de2a84e479f2e36bd304fe3699e0d5edc7c36 100644
--- a/src/MNH/endstep.f90
+++ b/src/MNH/endstep.f90
@@ -147,7 +147,6 @@ END MODULE MODI_ENDSTEP
 !!    MODULE MODD_CTURB containing XTKEMIN, XEPSMIN
 !!    MODULE MODD_BUDGET:
 !!         NBUMOD       : model in which budget is calculated
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         NBUTSHIFT    : temporal shift for budgets writing
 !!
 !!    REFERENCE
@@ -204,7 +203,7 @@ use modd_budget,     only: lbudget_u,  lbudget_v,  lbudget_w,  lbudget_th, lbudg
                            lbudget_rr, lbudget_ri, lbudget_rs, lbudget_rg, lbudget_rh,  lbudget_sv,  lbu_enable, &
                            NBUDGET_U,  NBUDGET_V,  NBUDGET_W,  NBUDGET_TH, NBUDGET_TKE, NBUDGET_RV,  NBUDGET_RC, &
                            NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH,  NBUDGET_SV1,             &
-                           nbuctr_actv, nbuprocctr, nbustep, tbudgets
+                           nbustep, tbudgets
 USE MODD_CH_AEROSOL, ONLY: LORILAM
 USE MODD_CONF
 USE MODD_CTURB
@@ -521,9 +520,6 @@ END IF
 !*      10.   STORAGE IN BUDGET ARRAYS
 !
 IF (LBU_ENABLE) THEN
-  NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 3
-  NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 3
-
   !Division by nbustep to compute average on the selected time period
   if ( lbudget_u .or. lbudget_v .or. lbudget_u .or. lbudget_v .or. lbudget_w .or. lbudget_th &
        .or. lbudget_tke .or. lbudget_rv .or. lbudget_rc .or. lbudget_rr .or. lbudget_ri      &
@@ -548,9 +544,6 @@ IF (LBU_ENABLE) THEN
       call Budget_store_end( tbudgets(jsv + NBUDGET_SV1 - 1), 'AVEF', psvt(:, :, :, jsv) * zrhodjontime(:, :, :) )
     end do
   end if
-!
-  NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 2
-  NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 2
 
   if ( lbudget_u   ) call Budget_store_end( tbudgets(NBUDGET_U  ), 'ENDF', pus  (:, :, :) * Mxm( prhodj(:, :, :) ) / ptstep )
   if ( lbudget_v   ) call Budget_store_end( tbudgets(NBUDGET_V  ), 'ENDF', pvs  (:, :, :) * Mym( prhodj(:, :, :) ) / ptstep )
diff --git a/src/MNH/endstep_budget.f90 b/src/MNH/endstep_budget.f90
index e145ea79c8323696a76ccc1817c2bff511de95e1..20a580b3f975ad293ce53961d659864a93a320c4 100644
--- a/src/MNH/endstep_budget.f90
+++ b/src/MNH/endstep_budget.f90
@@ -55,25 +55,6 @@ END MODULE MODI_ENDSTEP_BUDGET
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 !!       Module MODD_BUDGET
-!!         CBUTYPE     : budget type : CART, MASK or NONE
-!!         LBU_BEG     : switch for the budget begining
-!!         NBUTIME     : number of the budget step
-!!         NBUWRI      : NUMBER of budget steps when the budget 
-!!                       is written on FM-file
-!!         XBURU       : budget array of the variable RU
-!!         XBURV       : budget array of the variable RV
-!!         XBURW       : budget array of the variable RW
-!!         XBURTH      : budget array of the variable RTH
-!!         XBURTKE     : budget array of the variable RTKE
-!!         XBURRV      : budget array of the variable RRV
-!!         XBURRC      : budget array of the variable RRC
-!!         XBURRR      : budget array of the variable RRR
-!!         XBURRI      : budget array of the variable RRI
-!!         XBURRS      : budget array of the variable RRS
-!!         XBURRG      : budget array of the variable RRG
-!!         XBURRH      : budget array of the variable RRH
-!!         XBURSVx     : budget array of the variable RSVx
-!!
 !!
 !!    REFERENCE
 !!    ---------
@@ -139,24 +120,6 @@ SELECT CASE(CBUTYPE)
 !*	 1.2    resetting the budget arrays to 0.
 !
       ! Rhodj arrays
-      IF (ALLOCATED(XBURU)) XBURU=0.
-      IF (ALLOCATED(XBURV)) XBURV=0.
-      IF (ALLOCATED(XBURW)) XBURW=0.
-      IF (ALLOCATED(XBURTH)) XBURTH=0.
-      IF (ALLOCATED(XBURTKE)) XBURTKE=0.
-      IF (ALLOCATED(XBURRV)) XBURRV=0.
-      IF (ALLOCATED(XBURRC)) XBURRC=0.
-      IF (ALLOCATED(XBURRR)) XBURRR=0.
-      IF (ALLOCATED(XBURRI)) XBURRI=0.
-      IF (ALLOCATED(XBURRS)) XBURRS=0.
-      IF (ALLOCATED(XBURRG)) XBURRG=0.
-      IF (ALLOCATED(XBURRH)) XBURRH=0.
-      IF (ALLOCATED(XBURSV)) XBURSV=0.
-      IF (ALLOCATED(XBURHODJU)) XBURHODJU=0.
-      IF (ALLOCATED(XBURHODJV)) XBURHODJV=0.
-      IF (ALLOCATED(XBURHODJW)) XBURHODJW=0.
-      IF (ALLOCATED(XBURHODJ)) XBURHODJ =0.
-
       if ( tbudgets(NBUDGET_U)%lenabled ) tbudgets(NBUDGET_U)%trhodj%xdata(:, :, :) = 0.
       if ( tbudgets(NBUDGET_V)%lenabled ) tbudgets(NBUDGET_V)%trhodj%xdata(:, :, :) = 0.
       if ( tbudgets(NBUDGET_W)%lenabled ) tbudgets(NBUDGET_W)%trhodj%xdata(:, :, :) = 0.
@@ -196,24 +159,6 @@ SELECT CASE(CBUTYPE)
       ! Rhodj array for other budgets than U, V, W
       if ( associated( tburhodj ) ) tburhodj%xdata(:, :, :) = 0.
       ! Budget arrays
-      IF (ALLOCATED(XBURU)) XBURU=0.
-      IF (ALLOCATED(XBURV)) XBURV=0.
-      IF (ALLOCATED(XBURW)) XBURW=0.
-      IF (ALLOCATED(XBURTH)) XBURTH=0.
-      IF (ALLOCATED(XBURTKE)) XBURTKE=0.
-      IF (ALLOCATED(XBURRV)) XBURRV=0.
-      IF (ALLOCATED(XBURRC)) XBURRC=0.
-      IF (ALLOCATED(XBURRR)) XBURRR=0.
-      IF (ALLOCATED(XBURRI)) XBURRI=0.
-      IF (ALLOCATED(XBURRS)) XBURRS=0.
-      IF (ALLOCATED(XBURRG)) XBURRG=0.
-      IF (ALLOCATED(XBURRH)) XBURRH=0.
-      IF (ALLOCATED(XBURSV)) XBURSV=0.
-      IF (ALLOCATED(XBURHODJU)) XBURHODJU=0.
-      IF (ALLOCATED(XBURHODJV)) XBURHODJV=0.
-      IF (ALLOCATED(XBURHODJW)) XBURHODJW=0.
-      IF (ALLOCATED(XBURHODJ)) XBURHODJ =0.
-
       do jbu = 1, nbudgets
         if ( tbudgets(jbu)%lenabled ) then
           do jgrp = 1, tbudgets(jbu)%ngroups
diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90
index a64f5977a0e044de1974b42f3685799a56e1774d..1438f1e65b9f777692f94c1220b86a270e244918 100644
--- a/src/MNH/fast_terms.f90
+++ b/src/MNH/fast_terms.f90
@@ -103,7 +103,6 @@ END MODULE MODI_FAST_TERMS
 !!      Module MODD_BUDGET:
 !!         NBUMOD 
 !!         CBUTYPE
-!!         NBUPROCCTR 
 !!         LBU_RTH    
 !!         LBU_RRV  
 !!         LBU_RRC  
diff --git a/src/MNH/gravity.f90 b/src/MNH/gravity.f90
index a6432a68e01bd0429e334171bfe4959aa80427f2..a5664d1b4e4c011960fdff1eee0f9678a495ab6e 100644
--- a/src/MNH/gravity.f90
+++ b/src/MNH/gravity.f90
@@ -74,7 +74,6 @@ END MODULE MODI_GRAVITY
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask 
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         LBU_RTH      : logical for budget of RTH (potential temperature)
 !!                        .TRUE. = budget of RTH        
 !!                        .FALSE. = no budget of RTH
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index 3d599521c7c97b10ffbe0b9cb56c7dd020127729..3e3ef2d61044ac6567ffe81d4194de9c108bc9b6 100644
--- a/src/MNH/ice_adjust.f90
+++ b/src/MNH/ice_adjust.f90
@@ -128,7 +128,6 @@ END MODULE MODI_ICE_ADJUST
 !!      Module MODD_BUDGET:
 !!         NBUMOD 
 !!         CBUTYPE
-!!         NBUPROCCTR 
 !!         LBU_RTH    
 !!         LBU_RRV  
 !!         LBU_RRC  
diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index c226c7121f9f1b701f0e238af3462b70b2f70dd4..6c2e8d0f2ddb9e9ac0472b283b842a7691f85ede 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -14,7 +14,7 @@ module mode_ini_budget
 contains
 
 !     #################################################################
-      SUBROUTINE INI_BUDGET(KLUOUT,PTSTEP,KSV,KRR,                    &
+      SUBROUTINE Ini_budget(KLUOUT,PTSTEP,KSV,KRR,                    &
       ONUMDIFU,ONUMDIFTH,ONUMDIFSV,                                   &
       OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR,             &
       OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, &
@@ -191,10 +191,7 @@ CHARACTER (LEN=*), INTENT(IN) :: HTURBDIM! dimensionnality of the turbulence
 CHARACTER (LEN=*), INTENT(IN) :: HCLOUD ! type of microphysical scheme
 !
 !*       0.2   declarations of local variables
-!                                                     
-INTEGER, DIMENSION(JPBUMAX,JPBUPROMAX+1) :: IPROACTV      ! switches set by the
-                                                          ! user for process 
-                                                          ! activation
+!
 INTEGER :: JI, JJ, JK , JJJ                               ! loop indices
 INTEGER :: IIMAX_ll, IJMAX_ll ! size of the physical global domain
 INTEGER :: IIU, IJU                                       ! size along x and y directions
@@ -208,18 +205,8 @@ INTEGER :: IBUDIM2                                        ! second dimension of
 INTEGER :: IBUDIM3                                        ! third dimension of the budget arrays
                                                           ! = NBUKMAX in CART case
                                                           ! = NBUMASK in MASK case
-LOGICAL :: GERROR                                         ! switch for error in
-                                                          ! budget specifcation
-CHARACTER(LEN=7), DIMENSION(JPBUMAX) :: YEND_COMMENT      ! last part of comment
-                                                          ! for budgets records
-CHARACTER(LEN=6), DIMENSION(JPBUMAX,JPBUPROMAX) :: YWORK2 ! used for
-                                                          ! concatenattion of  
-                                                          ! comments for budgets
-CHARACTER(LEN=40)                  :: YSTRING
 character(len=3)    :: ybudgetnum
-INTEGER             :: ILEN
 INTEGER             :: JSV               ! loop indice for the SVs
-INTEGER             :: IBUPROCNBR_SV_MAX ! Max number of processes for the SVs
 INTEGER             :: IINFO_ll ! return status of the interface routine
 integer             :: ibudget
 integer             :: isourcesmax          ! Maximum number of source terms in a budget
@@ -353,15 +340,6 @@ END IF
 !*       2.    ALLOCATE MEMORY FOR BUDGET ARRAYS AND INITIALIZE
 !              ------------------------------------------------
 !
-ALLOCATE( NBUPROCNBR(JPBUMAX) )
-ALLOCATE( NBUPROCCTR(JPBUMAX) )
-ALLOCATE( CBUACTION(JPBUMAX, JPBUPROMAX) )
-ALLOCATE( CBUCOMMENT(JPBUMAX, JPBUPROMAX) )
-NBUPROCCTR(:) = 0
-NBUCTR_ACTV(:) = 0
-NBUPROCNBR(:) = 0
-CBUACTION(:,:) = 'OF' 
-CBUCOMMENT(:,:) = ' '
 LBU_BEG =.TRUE. 
 !
 !-------------------------------------------------------------------------------
@@ -369,13 +347,6 @@ LBU_BEG =.TRUE.
 !*       3.    INITALIZE VARIABLES
 !              -------------------
 !
-IPROACTV(:,:) = 3
-IPROACTV(:,4) = 1
-IPROACTV(:,JPBUPROMAX+1) = 0
-GERROR=.FALSE.
-YWORK2(:,:) = ' '
-YEND_COMMENT(:) = ' '
-
 !Create intermediate variable to store rhodj for scalar variables
 if ( lbu_rth .or. lbu_rtke .or. lbu_rrv .or. lbu_rrc .or. lbu_rrr .or. &
      lbu_rri .or. lbu_rrs  .or. lbu_rrg .or. lbu_rrh .or. lbu_rsv      ) then
@@ -3527,119 +3498,6 @@ SV_BUDGETS: do jsv = 1, ksv
   end if
 end do SV_BUDGETS
 
-!-------------------------------------------------------------------------------
-!*       4.    COMPUTE THE INCREMENT BETWEEN TWO ACTIVE SOURCES 
-!              ------------------------------------------------
-!
-NBUINC(:,:) = 1
-DO JI = 1, JPBUMAX
-  DO JJ = 4, JPBUPROMAX-1
-    DO JK = JJ+1,JPBUPROMAX
-      IF ( IPROACTV(JI,JK) /= 3 ) EXIT
-      NBUINC(JI,JJ) = NBUINC(JI,JJ) +1
-    END DO 
-  END DO
-END DO
-!
-!-------------------------------------------------------------------------------
-!*       5.    COMPUTE PROCESSES ACTIONS AND NAMES OF BUDGET OUTPUT ARRAYS 
-!              -----------------------------------------------------------
-!
-!
-DO JI=1,JPBUMAX                                ! loop on the allowed budgets names of recording files
-  IF (IPROACTV(JI,4) >= 2) THEN
-    WRITE(UNIT=KLUOUT,FMT= '("Error in budget specification of ",A7,/," &
-    & The first source either is the first element of a group of sources or &
-    & is not considered")')  YEND_COMMENT(JI)
-    WRITE(UNIT=KLUOUT,FMT= '("change this namelist element ")')  
-    GERROR = .TRUE.
-  END IF
-!    
-  DO JJ=4,JPBUPROMAX                           ! loop on the allowed processes
-    IF (IPROACTV(JI,JJ) == 0) THEN
-      IF(IPROACTV(JI,JJ+NBUINC(JI,JJ)) == 0) THEN
-        CBUACTION(JI,JJ)='OF'
-      ELSE IF (IPROACTV(JI,JJ+NBUINC(JI,JJ)) == 1) THEN
-        CBUACTION(JI,JJ)='CC'
-      ELSE IF (IPROACTV(JI,JJ+NBUINC(JI,JJ)) == 2) THEN
-        WRITE(UNIT=KLUOUT,FMT= '("Error in budget specification of ",A15)') &
-        ADJUSTL( ADJUSTR(YWORK2(JI,JJ+NBUINC(JI,JJ)))//ADJUSTL(YEND_COMMENT(JI)))
-        WRITE(UNIT=KLUOUT,FMT= '("change this namelist ")')
-        GERROR = .TRUE.
-      END IF
-    ELSE IF (IPROACTV(JI,JJ) <= 2) THEN
-      DO JJJ = JJ+NBUINC(JI,JJ), JPBUPROMAX
-         IF(IPROACTV(JI,JJJ) /= 3 .AND. IPROACTV(JI,JJJ) /= 4) EXIT
-      END DO
-!
-      IF (IPROACTV(JI,JJJ) == 1) THEN
-        NBUPROCNBR(JI) = NBUPROCNBR(JI)+1
-        CBUACTION(JI,JJ) = 'DC'
-        CBUCOMMENT(JI,NBUPROCNBR(JI)) =                            ADJUSTL(    &
-                                   ADJUSTR( CBUCOMMENT(JI,NBUPROCNBR(JI)) ) // &
-                                   ADJUSTL( ADJUSTR( YWORK2(JI,JJ) ) //        &
-                                            ADJUSTL( YEND_COMMENT(JI) ) ) )
-      ELSE IF (IPROACTV(JI,JJJ) == 0) THEN
-        NBUPROCNBR(JI) = NBUPROCNBR(JI)+1
-        CBUACTION(JI,JJ) = 'DD'
-        CBUCOMMENT(JI,NBUPROCNBR(JI)) =                            ADJUSTL(    &
-                                   ADJUSTR( CBUCOMMENT(JI,NBUPROCNBR(JI)) ) // &
-                                   ADJUSTL( ADJUSTR( YWORK2(JI,JJ) ) //        &
-                                            ADJUSTL( YEND_COMMENT(JI) ) ) )
-      ELSE IF (IPROACTV(JI,JJJ) == 2) THEN
-        CBUACTION(JI,JJ) = 'NO'
-        CBUCOMMENT(JI,NBUPROCNBR(JI)+1) =           ADJUSTL(                   &
-                                  ADJUSTR( CBUCOMMENT(JI,NBUPROCNBR(JI)+1)) // &
-                                  ADJUSTL( YWORK2(JI,JJ) ) )
-      END IF
-    ELSEIF (IPROACTV(JI,JJ) == 3) THEN
-      CBUACTION(JI,JJ) = 'RM'
-    ELSEIF (IPROACTV(JI,JJ) == 4) THEN
-      CBUACTION(JI,JJ) = 'OF'
-    ELSE
-      WRITE(UNIT=KLUOUT,FMT= '("Error in budget specification of ",A7)') &
-            YEND_COMMENT(JI)
-      WRITE(UNIT=KLUOUT,FMT= '("change this namelist ")')
-      GERROR = .TRUE.
-    END IF
-  END DO
-END DO
-!   writes on output the explicit chain of sources for all the budgets
-DO JI=1,JPBUMAX                            ! loop over the allowed budgets
-  YSTRING = ADJUSTL( YEND_COMMENT(JI) )
-  ILEN    = LEN_TRIM(YSTRING)
-  IF( ILEN /= 0 ) THEN
-    IF( JI < NBUDGET_SV1 ) THEN
-      WRITE (UNIT=KLUOUT,FMT='(/,"budget ",A7," with ",I2," vectors")')        &
-                                                  YSTRING(1:ILEN),NBUPROCNBR(JI)
-      DO JJ=1,3
-        YSTRING = CBUCOMMENT(JI,JJ)
-        ILEN    = LEN_TRIM(YSTRING)
-        WRITE (UNIT=KLUOUT,FMT='(12X,A40)')         YSTRING(1:ILEN)
-      END DO
-      DO JJ=4,NBUPROCNBR(JI)                  ! loop over the allowed processes
-        YSTRING = CBUCOMMENT(JI,JJ)
-        ILEN    = LEN_TRIM(YSTRING)
-        WRITE (UNIT=KLUOUT,FMT='(20X,A40)')         YSTRING(1:ILEN)
-      END DO
-    ELSE
-      WRITE (UNIT=KLUOUT,                                                      &
-             FMT='(/,"budget ",A7," (number ",I3,") with ",I2," vectors")')    &
-                                   YSTRING(1:ILEN),JI-NBUDGET_SV1+1,NBUPROCNBR(JI)
-      DO JJ=1,3
-        YSTRING = CBUCOMMENT(JI,JJ)
-        ILEN    = LEN_TRIM(YSTRING)
-        WRITE (UNIT=KLUOUT,FMT='(12X,A40)')         YSTRING(1:ILEN)
-      END DO
-      DO JJ=4,NBUPROCNBR(JI)                  ! loop over the allowed processes
-        YSTRING = CBUCOMMENT(JI,JJ)
-        ILEN    = LEN_TRIM(YSTRING)
-        WRITE (UNIT=KLUOUT,FMT='(20X,A40)')         YSTRING(1:ILEN)
-      END DO
-    END IF
-  END IF
-END DO
-!
 IF (CBUTYPE=='CART') THEN
   WRITE(UNIT=KLUOUT, FMT= '(2/,"DESCRIPTION OF THE BUDGET BOX")' )
   WRITE(UNIT=KLUOUT, FMT= '("BUIL = ",I4.4)' ) NBUIL
@@ -3664,95 +3522,10 @@ IF (CBUTYPE=='MASK') THEN
   WRITE(UNIT=KLUOUT, FMT= '("BUWRNB = ",I4.4)' ) NBUWRNB
   WRITE(UNIT=KLUOUT, FMT= '("BUMASK = ",I4.4)' ) NBUMASK
 END IF
-IF (GERROR) THEN
-  call Print_msg( NVERB_FATAL, 'BUD', 'INI_BUDGET', '' )
-ENDIF
 
 call Ini_budget_groups( tbudgets, ibudim1, ibudim2, ibudim3 )
 
-!-------------------------------------------------------------------------------
-!*       5.    ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS
-!              -----------------------------------------
-IF (LBU_RU) THEN
-  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(NBUDGET_V)) )
-  XBURV(:,:,:,:)=0.
-  ALLOCATE ( XBURHODJV(IBUDIM1, IBUDIM2, IBUDIM3) )
-  XBURHODJV(:,:,:)=0.
-END IF
-!
-IF (LBU_RW) THEN
-  ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_W)) )
-  XBURW(:,:,:,:)=0.
-  ALLOCATE ( XBURHODJW(IBUDIM1, IBUDIM2, IBUDIM3) )
-  XBURHODJW(:,:,:)=0.
-END IF
-!
-IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. &
-    LBU_RRI .OR. LBU_RRS  .OR. LBU_RRG .OR. LBU_RRH .OR. LBU_RSV      ) THEN
-  ALLOCATE ( XBURHODJ(IBUDIM1, IBUDIM2, IBUDIM3) )
-  XBURHODJ(:,:,:)=0.
-END IF
-!
-IF (LBU_RTH) THEN
-  ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TH)) )
-  XBURTH(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RTKE) THEN
-  ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TKE)) )
-  XBURTKE(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRV) THEN
-  ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RV)) )
-  XBURRV(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRC) THEN
-  ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RC)) )
-  XBURRC(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRR) THEN
-  ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RR)) )
-  XBURRR(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRI) THEN
-  ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RI)) )
-  XBURRI(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRS) THEN
-  ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RS)) )
-  XBURRS(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRG) THEN
-  ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RG)) )
-  XBURRG(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RRH) THEN
-  ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RH)) )
-  XBURRH(:,:,:,:)=0.
-END IF
-!
-IF (LBU_RSV) THEN
-  ALLOCATE ( XBURSV(IBUDIM1, IBUDIM2, IBUDIM3, IBUPROCNBR_SV_MAX, KSV) )
-  XBURSV(:,:,:,:,:)=0.
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE INI_BUDGET
+end subroutine Ini_budget
 
 
 subroutine Budget_source_add( tpbudget, tpsource, ocond, kgroupin, odonotinit, ooverwrite )
diff --git a/src/MNH/initial_guess.f90 b/src/MNH/initial_guess.f90
index 7cf04e71e5d13b4769571f27166f8df6c39c22ac..6cffec168e49103fc509f7691bb965cd582fcbf9 100644
--- a/src/MNH/initial_guess.f90
+++ b/src/MNH/initial_guess.f90
@@ -77,7 +77,6 @@ END MODULE MODI_INITIAL_GUESS
 !!         LBU_BEG      : logical for budget begnning
 !!                       .TRUE. = budget begining
 !!                       .FALSE. = no budget begining
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         Switches for budgets activations:
 !!         
 !!         LBU_RU       : logical for budget of RU (wind component along x)
@@ -152,7 +151,7 @@ use modd_budget,     only: lbudget_u,  lbudget_v,  lbudget_w,  lbudget_th, lbudg
                            lbudget_rr, lbudget_ri, lbudget_rs, lbudget_rg, lbudget_rh,  lbudget_sv,              &
                            NBUDGET_U,  NBUDGET_V,  NBUDGET_W,  NBUDGET_TH, NBUDGET_TKE, NBUDGET_RV,  NBUDGET_RC, &
                            NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH,  NBUDGET_SV1,             &
-                           lbu_beg, lbu_enable, nbuctr_actv, nbuprocctr, tbudgets
+                           lbu_beg, lbu_enable, tbudgets
 USE MODD_CONF
 USE MODD_GRID_n
 
@@ -237,9 +236,6 @@ END IF
 !
 IF (LBU_ENABLE) THEN
   IF (LBU_BEG) THEN
-    NBUPROCCTR(:)=1
-    NBUCTR_ACTV(:)=1
-
     !Remark: does not need a call to Budget_store_init because the budget array is overwritten for this source term
     if ( lbudget_u   ) call Budget_store_end( tbudgets(NBUDGET_U  ), 'INIF', prus  (:, :, :)    )
     if ( lbudget_v   ) call Budget_store_end( tbudgets(NBUDGET_V  ), 'INIF', prvs  (:, :, :)    )
@@ -259,9 +255,6 @@ IF (LBU_ENABLE) THEN
       end do
     end if
   END IF
-!
-  NBUPROCCTR(:)=4
-  NBUCTR_ACTV(:)=4
 !
 !  stores the Asselin source term
 !
diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90
index bf61da8e357cc35a9acf2469e198396f8ba7c2ab..db514c5ff444a6ec46f23be4273f9332c229de55 100644
--- a/src/MNH/lima_adjust.f90
+++ b/src/MNH/lima_adjust.f90
@@ -108,7 +108,6 @@ END MODULE MODI_LIMA_ADJUST
 !!      Module MODD_BUDGET:
 !!         NBUMOD 
 !!         CBUTYPE
-!!         NBUPROCCTR 
 !!         LBU_RTH    
 !!         LBU_RRV  
 !!         LBU_RRC  
diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90
index d472e2ebd8e68d9380632afef8445ddf2a069a63..7148c157e0d7e9913e073378ab420a89b34ec271 100644
--- a/src/MNH/modd_budget.f90
+++ b/src/MNH/modd_budget.f90
@@ -124,33 +124,12 @@ type(tburhodata),                pointer,     save :: tburhodj => null() ! Budge
 !                       General variables
 LOGICAL, SAVE :: LBU_ENABLE
 !
-INTEGER, SAVE, DIMENSION(JPBUMAX,JPBUPROMAX)  &  ! number of processes to be
-                             :: NBUINC           ! avoided for every budget
-                                                 ! between one active
-                                                 ! source to the next one
-INTEGER, SAVE, DIMENSION(JPBUMAX)             &  ! counter for all the processes
-                             :: NBUCTR_ACTV      ! activated or not
-!
 CHARACTER (LEN=4), SAVE :: CBUTYPE         ! type of desired budget 'CART'
                                            ! (cartesian box) or 'MASK' (budget
                                            ! zone defined by a mask) or 'NONE'
                                            ! (no budget)
 INTEGER, SAVE :: NBUMOD                    ! model in which budget is 
                                            ! calculated
-INTEGER, SAVE, DIMENSION(:),             & ! number of processes for each 
-                 ALLOCATABLE :: NBUPROCNBR ! budget 
-!
-INTEGER, SAVE, DIMENSION(:),             & ! process counter linked to each 
-                 ALLOCATABLE :: NBUPROCCTR ! budget 
-!
-CHARACTER(LEN=2), SAVE, DIMENSION(:,:),  & ! resulting string character of the 
-        ALLOCATABLE :: CBUACTION           ! transcription of the budget actions 
-                                           ! (integer) read in  namelists or 
-                                           ! set by default
-!
-CHARACTER (LEN=99), SAVE, DIMENSION(:,:),& ! name of a process for a budget. It
-                 ALLOCATABLE :: CBUCOMMENT ! will appear in the comment part of 
-                                           ! the previous record
 !
 LOGICAL, SAVE :: LBU_BEG                   ! switch for budget beginning
 !
@@ -210,26 +189,6 @@ INTEGER, SAVE :: NBUJMAX                   ! second dimension of the budget
                                            ! tabular
 INTEGER, SAVE :: NBUKMAX                   ! dimension along K of the budget
                                            ! tabular
-REAL, SAVE, DIMENSION(:,:,:,:),          & ! budget arrays for RU, RV and
-        ALLOCATABLE :: XBURU, XBURV, XBURW ! RW (wind components) respectively
-REAL, SAVE, DIMENSION(:,:,:,:),          & ! budget arrays for RTH (potential 
-        ALLOCATABLE :: XBURTH, XBURTKE     ! temperature) and RTKE (kinetic
-                                           ! energy)
-REAL, SAVE, DIMENSION(:,:,:,:),          & ! budget arrays for RRV (water vapor)
-        ALLOCATABLE :: XBURRV, XBURRC      ! and RRC (cloud water)
-REAL, SAVE, DIMENSION(:,:,:,:),          & ! budget arrays for RRR (rain water)
-        ALLOCATABLE :: XBURRR, XBURRI      ! and RRI (ice)
-REAL, SAVE, DIMENSION(:,:,:,:),          & ! budget arrays for RRS (snow)
-        ALLOCATABLE :: XBURRS, XBURRG      ! and RRG (graupel)
-REAL, SAVE, DIMENSION(:,:,:,:),          & ! budget array for RRH (hail)
-        ALLOCATABLE :: XBURRH              ! 
-REAL, SAVE, DIMENSION(:,:,:,:,:), &
-                 ALLOCATABLE :: XBURSV       ! Budget of the SVx
-REAL, SAVE, DIMENSION(:,:,:),            & ! budget arrays for RHODJ at
-               ALLOCATABLE :: XBURHODJ , & !   scalar localization
-                              XBURHODJU, & !        U localization
-                              XBURHODJV, & !        V localization
-                              XBURHODJW    !    and W localization
 !
 !      Allowed processes for the budget of the x scalar variables
 !        (transport part only)
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index adba0be8503e43a83d9b60b1266101f64539f27e..c6cd72db3a5629193b839d05bb30405b211fa4ed 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -283,7 +283,7 @@ USE MODD_BLOWSNOW_n
 use modd_budget,          only: cbutype, lbu_ru, lbu_rv, lbu_rw, lbudget_u, lbudget_v, lbudget_w, lbu_enable, &
                                 NBUDGET_U, NBUDGET_V, NBUDGET_W, nbumod, nbutime,                             &
                                 tbudgets, tburhodj,                                                           &
-                                xburhodj, xburhodju, xburhodjv, xburhodjw, xtime_bu, xtime_bu_process
+                                xtime_bu, xtime_bu_process
 USE MODD_CH_AERO_n,      ONLY: XSOLORG, XMI
 USE MODD_CH_MNHC_n,      ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, &
                                LCH_INIT_FIELD
@@ -990,16 +990,7 @@ ELSE
 END IF
 !
 IF (NBUMOD==IMI .AND. CBUTYPE=='MASK' ) THEN
-  CALL SET_MASK
-  IF (LBU_RU)   XBURHODJU(:,NBUTIME,:) = XBURHODJU(:,NBUTIME,:)    &
-                            + MASK_COMPRESS(MXM(XRHODJ))
-  IF (LBU_RV)   XBURHODJV(:,NBUTIME,:) = XBURHODJV(:,NBUTIME,:)    &
-                            + MASK_COMPRESS(MYM(XRHODJ))
-  IF (LBU_RW)   XBURHODJW(:,NBUTIME,:) = XBURHODJW(:,NBUTIME,:)    &
-                            + MASK_COMPRESS(MZM(1,IKU,1,XRHODJ))
-  IF (ALLOCATED(XBURHODJ))                                         &
-                XBURHODJ (:,NBUTIME,:) = XBURHODJ (:,NBUTIME,:)    &
-                              + MASK_COMPRESS(XRHODJ)
+  CALL SET_MASK()
   if ( lbu_ru ) then
     tbudgets(NBUDGET_U)%trhodj%xdata(:, nbutime, :) = tbudgets(NBUDGET_U)%trhodj%xdata(:, nbutime, :) &
                                                       + Mask_compress( Mxm( xrhodj(:, :, :) ) )
@@ -1016,15 +1007,6 @@ IF (NBUMOD==IMI .AND. CBUTYPE=='MASK' ) THEN
 END IF
 !
 IF (NBUMOD==IMI .AND. CBUTYPE=='CART' ) THEN
-  IF (LBU_RU)   XBURHODJU(:,:,:) = XBURHODJU(:,:,:)    &
-                + CART_COMPRESS(MXM(XRHODJ))
-  IF (LBU_RV)   XBURHODJV(:,:,:) = XBURHODJV(:,:,:)    &
-                + CART_COMPRESS(MYM(XRHODJ))
-  IF (LBU_RW)   XBURHODJW(:,:,:) = XBURHODJW(:,:,:)    &
-                + CART_COMPRESS(MZM(1,IKU,1,XRHODJ))
-  IF (ALLOCATED(XBURHODJ))                             &
-                XBURHODJ (:,:,:) = XBURHODJ (:,:,:)    &
-                + CART_COMPRESS(XRHODJ)
   if ( lbu_ru ) then
     tbudgets(NBUDGET_U)%trhodj%xdata(:, :, :) = tbudgets(NBUDGET_U)%trhodj%xdata(:, :, :) + Cart_compress( Mxm( xrhodj(:, :, :) ) )
   end if
diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90
index df99a7930a628eb1e5f36b802856900946605095..011ca0d61b018d4b7b65eafc7355741a784fc4e7 100644
--- a/src/MNH/num_diff.f90
+++ b/src/MNH/num_diff.f90
@@ -129,7 +129,6 @@ END MODULE MODI_NUM_DIFF
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         Switches for budgets activations:
 !!
 !!         LBU_RU       : logical for budget of RU (wind component along x)
diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90
index 715a8cba57738c0fc64309a347ad41393e70a204..582717631b246a2c6c810d2aac8bdca372830a5a 100644
--- a/src/MNH/rain_c2r2_khko.f90
+++ b/src/MNH/rain_c2r2_khko.f90
@@ -161,7 +161,6 @@ END MODULE MODI_RAIN_C2R2_KHKO
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask 
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         LBU_RTH      : logical for budget of RTH (potential temperature)
 !!                        .TRUE. = budget of RTH        
 !!                        .FALSE. = no budget of RTH
diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90
index ca6b946c352f411101ca0b85de184fd52c618f41..2b60d5375302a820e69ecd3cd74bb13534f434d5 100644
--- a/src/MNH/rain_ice_red.f90
+++ b/src/MNH/rain_ice_red.f90
@@ -142,7 +142,6 @@ END MODULE MODI_RAIN_ICE_RED
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         LBU_RTH      : logical for budget of RTH (potential temperature)
 !!                        .TRUE. = budget of RTH
 !!                        .FALSE. = no budget of RTH
diff --git a/src/MNH/slow_terms.f90 b/src/MNH/slow_terms.f90
index 2b0c58658dcd21e3622d8ab85c051368ee86e3e4..7e76852bdc980e9a5c3e31b4ae29e2c2293e7623 100644
--- a/src/MNH/slow_terms.f90
+++ b/src/MNH/slow_terms.f90
@@ -111,7 +111,6 @@ END MODULE MODI_SLOW_TERMS
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask 
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         LBU_RTH      : logical for budget of RTH (potential temperature)
 !!                        .TRUE. = budget of RTH        
 !!                        .FALSE. = no budget of RTH
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index d945774a3e93e7b2704654cc7b69d19345aa6678..e773799be9ff0d2c4b77b8e0a891fd43681dd385 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -122,7 +122,6 @@ END MODULE MODI_TKE_EPS_SOURCES
 !!                          'CART' for cartesian box configuration
 !!                          'MASK' for budget zone defined by a mask 
 !!                          'NONE'  ' for no budget
-!!         NBUPROCCTR   : process counter used for each budget variable
 !!         LBU_RTKE     : logical for budget of RTKE (turbulent kinetic energy)
 !!                        .TRUE. = budget of RTKE       
 !!                        .FALSE. = no budget of RTKE
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index cbd731e713867673b61430a2b275e92de396127e..e03e039d79aeb233385b3e9557e8e590bc62ea80 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -250,7 +250,6 @@ END MODULE MODI_TURB
 !!      Module MODD_BUDGET:
 !!         NBUMOD  
 !!         CBUTYPE 
-!!         NBUPROCCTR 
 !!         LBU_RU     
 !!         LBU_RV     
 !!         LBU_RW