From c0408ccbfa014604016d6da1d100d427eb2c227f Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 5 Dec 2019 09:11:48 +0100
Subject: [PATCH] Philippe 05/12/2019: ini_budget: improve readability

---
 src/MNH/ini_budget.f90 | 2979 ++++++++++++++++++++--------------------
 1 file changed, 1467 insertions(+), 1512 deletions(-)

diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 2a4174b6d..e41784b01 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -416,30 +416,51 @@ YEND_COMMENT(:) = ' '
 !
 !                        Budget of RU
 IF (LBU_RU) THEN
+  YWORK2(NBUDGET_U, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_U, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_U, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_U, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_U, IPROC) = NASSEU
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_U, IPROC) = NNESTU
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_U, IPROC)  = NFRCU
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'NUD_'
   IF( ONUDGING ) IPROACTV(NBUDGET_U, IPROC)  = NNUDU
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'CURV_'
   IF ( .NOT. LCARTESIAN ) THEN
     IPROACTV(NBUDGET_U, IPROC) = NCURVU
   ELSE
     IPROACTV(NBUDGET_U, IPROC) = 4
   END IF
+
   IPROC=IPROC+1
-  IF ( LCORIO ) THEN  
+  YWORK2(NBUDGET_U, IPROC) = 'COR_'
+  IF ( LCORIO ) THEN
     IPROACTV(NBUDGET_U, IPROC) = NCORU
   ELSE
     IPROACTV(NBUDGET_U, IPROC) = 4
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'DIF_'
   IF ( ONUMDIFU ) IPROACTV(NBUDGET_U, IPROC) = NDIFU
+
   IPROC=IPROC+1
-  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN   
+  YWORK2(NBUDGET_U, IPROC) = 'REL_'
+  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN
     IPROACTV(NBUDGET_U, IPROC) = NRELU
   ELSE
     IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
@@ -450,11 +471,17 @@ IF (LBU_RU) THEN
       IPROACTV(NBUDGET_U, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'DRAG_'
   IF( ODRAGTREE ) IPROACTV(NBUDGET_U, IPROC)  = NDRAGU
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'VTURB_'
   IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_U, IPROC) = NVTURBU
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_U, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_U, IPROC) = NHTURBU
   ELSE
@@ -464,47 +491,21 @@ IF (LBU_RU) THEN
       IPROACTV(NBUDGET_U, IPROC) = 3
     END IF
   END IF 
-  IPROC=IPROC+1
-  IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_U, IPROC) = NMAFLU
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_U, IPROC) = NADVU
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_U, IPROC) = NPRESU
-!
-  YWORK2(NBUDGET_U, 1) = 'INIF_'
-  YWORK2(NBUDGET_U, 2) = 'ENDF_'
-  YWORK2(NBUDGET_U, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_U, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'NUD_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'CURV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'COR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'DRAG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'VTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_U, IPROC) = 'HTURB_'
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_U, IPROC) = 'MAFL_'
+  IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_U, IPROC) = NMAFLU
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_U, IPROC) = 'ADV_'
+  IPROACTV(NBUDGET_U, IPROC) = NADVU
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_U, IPROC) = 'PRES_'
+  IPROACTV(NBUDGET_U, IPROC) = NPRESU
 !
   YEND_COMMENT(NBUDGET_U) = 'BU_RU'
-  NBUPROCNBR(NBUDGET_U) = 3
+  NBUPROCNBR(NBUDGET_U) = 3 !Initial number of budgets, will be increazed later if necessary
 !
   CBUACTION(NBUDGET_U, 1) = 'IG'
   CBUACTION(NBUDGET_U, 2) = 'CC'
@@ -519,30 +520,51 @@ END IF
 !
 !                        Budget of RV
 IF (LBU_RV) THEN
+  YWORK2(NBUDGET_V, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_V, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_V, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_V, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_V, IPROC) = NASSEV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_V, IPROC) = NNESTV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_V, IPROC)  = NFRCV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'NUD_'
   IF( ONUDGING ) IPROACTV(NBUDGET_V, IPROC)  = NNUDV
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'CURV_'
   IF ( .NOT. LCARTESIAN ) THEN
     IPROACTV(NBUDGET_V, IPROC) = NCURVV
   ELSE
     IPROACTV(NBUDGET_V, IPROC) = 4
   END IF
-  IPROC=IPROC+1 
-  IF ( LCORIO ) THEN  
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'COR_'
+  IF ( LCORIO ) THEN
     IPROACTV(NBUDGET_V, IPROC) = NCORV
   ELSE
     IPROACTV(NBUDGET_V, IPROC) = 4
   END IF
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'DIF_'
   IF ( ONUMDIFU ) IPROACTV(NBUDGET_V, IPROC) = NDIFV
-  IPROC=IPROC+1 
-  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN   
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'REL_'
+  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN
     IPROACTV(NBUDGET_V, IPROC) = NRELV
   ELSE
     IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
@@ -553,11 +575,17 @@ IF (LBU_RV) THEN
       IPROACTV(NBUDGET_V, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'DRAG_'
   IF( ODRAGTREE ) IPROACTV(NBUDGET_V, IPROC)  = NDRAGV
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'VTURB_'
   IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_V, IPROC) = NVTURBV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_V, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_V, IPROC) = NHTURBV
   ELSE
@@ -567,45 +595,19 @@ IF (LBU_RV) THEN
       IPROACTV(NBUDGET_V, IPROC) = 3
     END IF
   END IF 
-  IPROC=IPROC+1 
-  IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_V, IPROC) = NMAFLV
-  IPROC=IPROC+1 
-  IPROACTV(NBUDGET_V, IPROC) = NADVV
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_V, IPROC) = NPRESV
-!
-  YWORK2(NBUDGET_V, 1) = 'INIF_'
-  YWORK2(NBUDGET_V, 2) = 'ENDF_'
-  YWORK2(NBUDGET_V, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_V, IPROC) = 'ASSE_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'NEST_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'FRC_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'NUD_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_V, IPROC) = 'CURV_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'COR_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'DIF_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'REL_'
+
   IPROC=IPROC+1
-  YWORK2(NBUDGET_V, IPROC) = 'DRAG_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'VTURB_'
-  IPROC=IPROC+1 
-  YWORK2(NBUDGET_V, IPROC) = 'HTURB_'
-  IPROC=IPROC+1 
   YWORK2(NBUDGET_V, IPROC) = 'MAFL_'
-  IPROC=IPROC+1 
+  IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_V, IPROC) = NMAFLV
+
+  IPROC=IPROC+1
   YWORK2(NBUDGET_V, IPROC) = 'ADV_'
-  IPROC=IPROC+1 
+  IPROACTV(NBUDGET_V, IPROC) = NADVV
+
+  IPROC=IPROC+1
   YWORK2(NBUDGET_V, IPROC) = 'PRES_'
-!
+  IPROACTV(NBUDGET_V, IPROC) = NPRESV
+
   YEND_COMMENT(NBUDGET_V) = 'BU_RV'
   NBUPROCNBR(NBUDGET_V) = 3
 !
@@ -622,30 +624,51 @@ END IF
 !
 !                        Budget of RW
 IF (LBU_RW) THEN
+  YWORK2(NBUDGET_W, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_W, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_W, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_W, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_W, IPROC) = NASSEW
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_W, IPROC) = NNESTW
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_W, IPROC)  = NFRCW
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'NUD_'
   IF( ONUDGING ) IPROACTV(NBUDGET_W, IPROC)  = NNUDW
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'CURV_'
   IF ( .NOT. LCARTESIAN ) THEN
     IPROACTV(NBUDGET_W, IPROC) = NCURVW
   ELSE
     IPROACTV(NBUDGET_W, IPROC) = 4
   END IF
+
   IPROC=IPROC+1
-  IF ( LCORIO ) THEN  
+  YWORK2(NBUDGET_W, IPROC) = 'COR_'
+  IF ( LCORIO ) THEN
     IPROACTV(NBUDGET_W, IPROC) = NCORW
   ELSE
     IPROACTV(NBUDGET_W, IPROC) = 4
   END IF
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'DIF_'
   IF ( ONUMDIFU ) IPROACTV(NBUDGET_W, IPROC) = NDIFW
+
   IPROC=IPROC+1
-  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN   
+  YWORK2(NBUDGET_W, IPROC) = 'REL_'
+  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN
     IPROACTV(NBUDGET_W, IPROC) = NRELW
   ELSE
     IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
@@ -656,9 +679,13 @@ IF (LBU_RW) THEN
       IPROACTV(NBUDGET_W, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'VTURB_'
   IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_W, IPROC) = NVTURBW
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_W, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_W, IPROC) = NHTURBW
   ELSE
@@ -668,43 +695,19 @@ IF (LBU_RW) THEN
       IPROACTV(NBUDGET_W, IPROC) = 3
     END IF
   END IF 
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_W, IPROC) = NGRAVW
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_W, IPROC) = NADVW
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_W, IPROC) = NPRESW
-!
-  YWORK2(NBUDGET_W, 1) = 'INIF_'
-  YWORK2(NBUDGET_W, 2) = 'ENDF_'
-  YWORK2(NBUDGET_W, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_W, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'NUD_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'CURV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'COR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'VTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_W, IPROC) = 'HTURB_'
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_W, IPROC) = 'GRAV_'
+  IPROACTV(NBUDGET_W, IPROC) = NGRAVW
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_W, IPROC) = 'ADV_'
+  IPROACTV(NBUDGET_W, IPROC) = NADVW
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_W, IPROC) = 'PRES_'
-!
+  IPROACTV(NBUDGET_W, IPROC) = NPRESW
+
   YEND_COMMENT(NBUDGET_W) = 'BU_RW'
   NBUPROCNBR(NBUDGET_W) = 3
 !
@@ -721,28 +724,51 @@ END IF
 !
 !                        Budget of RTH
 IF (LBU_RTH) THEN
+  YWORK2(NBUDGET_TH, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_TH, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_TH, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_TH, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_TH, IPROC) = NASSETH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_TH, IPROC) = NNESTTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_TH, IPROC)  = NFRCTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = '2DADV_'
   IF( L2D_ADV_FRC ) IPROACTV(NBUDGET_TH, IPROC)  = N2DADVTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = '2DREL_'
   IF( L2D_REL_FRC ) IPROACTV(NBUDGET_TH, IPROC)  = N2DRELTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'NUD_'
   IF( ONUDGING ) IPROACTV(NBUDGET_TH, IPROC)  = NNUDTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'PREF_'
   IF ( KRR > 0 ) THEN
     IF(.NOT.L1D) IPROACTV(NBUDGET_TH, IPROC) = NPREFTH
   ELSE
     IPROACTV(NBUDGET_TH, IPROC) = 4
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'DIF_'
   IF ( ONUMDIFTH ) IPROACTV(NBUDGET_TH, IPROC) = NDIFTH
+
   IPROC=IPROC+1
-  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN   
+  YWORK2(NBUDGET_TH, IPROC) = 'REL_'
+  IF ( OHORELAX_UVWTH .OR. OVE_RELAX ) THEN
     IPROACTV(NBUDGET_TH, IPROC) = NRELTH
   ELSE
     IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
@@ -753,13 +779,21 @@ IF (LBU_RTH) THEN
       IPROACTV(NBUDGET_TH, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'RAD_'
   IF ( HRAD /= 'NONE' ) IPROACTV(NBUDGET_TH, IPROC) = NRADTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'DCONV_'
   IF ( HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') IPROACTV(NBUDGET_TH, IPROC) = NDCONVTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'VTURB_'
   IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_TH, IPROC) = NVTURBTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_TH, IPROC) = NHTURBTH
   ELSE
@@ -769,261 +803,222 @@ IF (LBU_RTH) THEN
       IPROACTV(NBUDGET_TH, IPROC) = 3
     END IF
   END IF 
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'DISSH_'
   IF (HTURB /= 'NONE')     IPROACTV(NBUDGET_TH, IPROC) = NDISSHTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'NETUR_'
   IF (HTURB /= 'NONE' .AND. ( (HCLOUD == 'KHKO') .OR.  (HCLOUD == 'C2R2'))) &
-          IPROACTV(NBUDGET_TH, IPROC) = NNETURTH
+  IPROACTV(NBUDGET_TH, IPROC) = NNETURTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'MAFL_'
   IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_TH, IPROC) = NMAFLTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_TH, IPROC) = NADVTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'NEADV_'
   IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2'))  IPROACTV(NBUDGET_TH, IPROC) = NNEADVTH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TH, IPROC) = 'NEGA_'
   IF (HCLOUD /= 'NONE' .AND. HCLOUD /= 'KHKO' .AND. HCLOUD /= 'C2R2') &
           IPROACTV(NBUDGET_TH, IPROC) = NNEGATH
-  IPROC=IPROC+1
+
   IF (HCLOUD == 'LIMA') THEN
-     IF (OPTSPLIT)                                           IPROACTV(NBUDGET_TH, IPROC) = NSEDITH
-     IPROC=IPROC+1
-     IF (OWARM .AND. OACTI .AND. NMOD_CCN.GE.1)              IPROACTV(NBUDGET_TH, IPROC) = NHENUTH
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) THEN
-        IF (OWARM .AND. ORAIN)                               IPROACTV(NBUDGET_TH, IPROC) = NREVATH
-        IPROC=IPROC+1
-     END IF
-     IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_TH, IPROC) = NHINDTH
-     IPROC=IPROC+1
-     IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_TH, IPROC) = NHINCTH
-     IPROC=IPROC+1
-     IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) IPROACTV(NBUDGET_TH, IPROC) = NHONHTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT) THEN
-                                                             IPROACTV(NBUDGET_TH, IPROC) = NREVATH
-        IPROC=IPROC+1
-     END IF
-     IF (OCOLD .AND. OWARM .AND. ONUCL)                      IPROACTV(NBUDGET_TH, IPROC) = NHONCTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL .AND. ORAIN))      IPROACTV(NBUDGET_TH, IPROC) = NHONRTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_TH, IPROC) = NDEPSTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NDEPGTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_TH, IPROC) = NIMLTTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_TH, IPROC) = NBERFITH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NRIMTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW .AND. ORAIN))      IPROACTV(NBUDGET_TH, IPROC) = NACCTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NCFRZTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NWETGTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NDRYGTH
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NGMLTTH
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                          IPROACTV(NBUDGET_TH, IPROC) = NWETHTH
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                          IPROACTV(NBUDGET_TH, IPROC) = NHMLTTH
-     IPROC=IPROC+1
-                                                             IPROACTV(NBUDGET_TH, IPROC) = NCEDSTH
-     IPROC=IPROC+1
-  ELSE
-    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) IPROACTV(NBUDGET_TH, IPROC) = NADJUTH
     IPROC=IPROC+1
-    IF (HCLOUD(1:3) == 'ICE' .OR. (HCLOUD == 'C2R2' .AND. (.NOT. LSUPSAT)) &
-          .OR. ( HCLOUD == 'KHKO' .AND. (.NOT. LSUPSAT)) ) &
-      IPROACTV(NBUDGET_TH, IPROC) = NHENUTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NHONTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NSFRTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NDEPSTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NDEPGTH
-      IPROC=IPROC+1
-      IF (((HCLOUD(1:3) == 'ICE') .AND. LWARM) .OR. ((HCLOUD == 'C2R2' &
-         .OR. HCLOUD == 'KHKO') .AND. LRAIN) .OR. HCLOUD(1:3) == 'KES')             &
-         IPROACTV(NBUDGET_TH, IPROC) = NREVATH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NRIMTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NACCTH
+    YWORK2(NBUDGET_TH, IPROC) = 'SEDI_'
+    IF (OPTSPLIT)                                           IPROACTV(NBUDGET_TH, IPROC) = NSEDITH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HENU_'
+    IF (OWARM .AND. OACTI .AND. NMOD_CCN.GE.1)              IPROACTV(NBUDGET_TH, IPROC) = NHENUTH
+
+    IF (.NOT.OPTSPLIT) THEN
       IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NCFRZTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NWETGTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NDRYGTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NGMLTTH
-      IPROC=IPROC+1
-      IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_TH, IPROC) = NWETHTH
-      IPROC=IPROC+1
-      IF (HCLOUD == 'ICE4'.AND. LRED) IPROACTV(NBUDGET_TH, IPROC) = NDRYHTH
-      IPROC=IPROC+1
-      IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_TH, IPROC) = NHMLTTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NIMLTTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NBERFITH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_TH, IPROC) = NCORRTH
-      IPROC=IPROC+1
-      IF (HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED .OR. (LRED .AND. LADJ_AFTER)) &
-          IPROACTV(NBUDGET_TH, IPROC) = NCDEPITH
-      IPROC=IPROC+1
-      IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. HCLOUD(1:3) == 'KES' .OR.   &
-      HCLOUD == 'REVE')   IPROACTV(NBUDGET_TH, IPROC) = NCONDTH
+      YWORK2(NBUDGET_TH, IPROC) = 'REVA_'
+      IF (OWARM .AND. ORAIN)                                IPROACTV(NBUDGET_TH, IPROC) = NREVATH
+    END IF
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HIND_'
+    IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_TH, IPROC) = NHINDTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HINC_'
+    IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_TH, IPROC) = NHINCTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HONH_'
+    IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) IPROACTV(NBUDGET_TH, IPROC) = NHONHTH
+
+    IF (OPTSPLIT) THEN
       IPROC=IPROC+1
-      IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2'))&
-          IPROACTV(NBUDGET_TH, IPROC) = NNECONTH
+      YWORK2(NBUDGET_TH, IPROC) = 'REVA_'
+                                                            IPROACTV(NBUDGET_TH, IPROC) = NREVATH
     END IF
-!
-  YWORK2(NBUDGET_TH, 1) = 'INIF_'
-  YWORK2(NBUDGET_TH, 2) = 'ENDF_'
-  YWORK2(NBUDGET_TH, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_TH, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = '2DADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = '2DREL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'NUD_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'PREF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'RAD_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'DCONV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'VTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'HTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'DISSH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'NETUR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'MAFL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'ADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'NEADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TH, IPROC) = 'NEGA_'
-  IPROC=IPROC+1
 
-  IF (HCLOUD == 'LIMA') THEN
-     YWORK2(NBUDGET_TH, IPROC) = 'SEDI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HENU_'
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) THEN
-        YWORK2(NBUDGET_TH, IPROC) = 'REVA_'
-        IPROC=IPROC+1
-     END IF
-     YWORK2(NBUDGET_TH, IPROC) = 'HIND_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HINC_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HONH_'
-     IPROC=IPROC+1
-     IF (OPTSPLIT) THEN
-        YWORK2(NBUDGET_TH, IPROC) = 'REVA_'
-        IPROC=IPROC+1
-     END IF
-     YWORK2(NBUDGET_TH, IPROC) = 'HONC_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HONR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DEPS_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DEPG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'IMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'BERFI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'RIM_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'ACC_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'CFRZ_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'WETG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DRYG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'GMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'WETH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'CEDS_'
-     IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HONC_'
+    IF (OCOLD .AND. OWARM .AND. ONUCL)                      IPROACTV(NBUDGET_TH, IPROC) = NHONCTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HONR_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL .AND. ORAIN))      IPROACTV(NBUDGET_TH, IPROC) = NHONRTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DEPS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_TH, IPROC) = NDEPSTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DEPG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NDEPGTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'IMLT_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_TH, IPROC) = NIMLTTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'BERFI_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_TH, IPROC) = NBERFITH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'RIM_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NRIMTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'ACC_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW .AND. ORAIN))      IPROACTV(NBUDGET_TH, IPROC) = NACCTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'CFRZ_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NCFRZTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'WETG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NWETGTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DRYG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NDRYGTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'GMLT_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_TH, IPROC) = NGMLTTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                          IPROACTV(NBUDGET_TH, IPROC) = NWETHTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HMLT_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                          IPROACTV(NBUDGET_TH, IPROC) = NHMLTTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'CEDS_'
+                                                            IPROACTV(NBUDGET_TH, IPROC) = NCEDSTH
   ELSE
-     YWORK2(NBUDGET_TH, IPROC) = 'ADJU_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HENU_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HON_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'SFR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DEPS_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DEPG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'REVA_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'RIM_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'ACC_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'CFRZ_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'WETG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DRYG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'GMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'WETH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'DRYH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'HMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'IMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'BERFI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'CORR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'CDEPI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'COND_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_TH, IPROC) = 'NECON_'
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'ADJU_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) IPROACTV(NBUDGET_TH, IPROC) = NADJUTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HENU_'
+    IF (HCLOUD(1:3) == 'ICE' .OR. (HCLOUD == 'C2R2' .AND. (.NOT. LSUPSAT)) &
+          .OR. ( HCLOUD == 'KHKO' .AND. (.NOT. LSUPSAT)) ) &
+      IPROACTV(NBUDGET_TH, IPROC) = NHENUTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HON_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NHONTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'SFR_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NSFRTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DEPS_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NDEPSTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DEPG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NDEPGTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'REVA_'
+    IF (((HCLOUD(1:3) == 'ICE') .AND. LWARM) .OR. ((HCLOUD == 'C2R2' &
+       .OR. HCLOUD == 'KHKO') .AND. LRAIN) .OR. HCLOUD(1:3) == 'KES')             &
+       IPROACTV(NBUDGET_TH, IPROC) = NREVATH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'RIM_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NRIMTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'ACC_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NACCTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'CFRZ_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NCFRZTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'WETG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NWETGTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DRYG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NDRYGTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'GMLT_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NGMLTTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'WETH_'
+    IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_TH, IPROC) = NWETHTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'DRYH_'
+    IF (HCLOUD == 'ICE4'.AND. LRED) IPROACTV(NBUDGET_TH, IPROC) = NDRYHTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'HMLT_'
+    IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_TH, IPROC) = NHMLTTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'IMLT_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NIMLTTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'BERFI_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_TH, IPROC) = NBERFITH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'CORR_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_TH, IPROC) = NCORRTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'CDEPI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED .OR. (LRED .AND. LADJ_AFTER)) &
+        IPROACTV(NBUDGET_TH, IPROC) = NCDEPITH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'COND_'
+    IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. HCLOUD(1:3) == 'KES' .OR.   &
+    HCLOUD == 'REVE')   IPROACTV(NBUDGET_TH, IPROC) = NCONDTH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_TH, IPROC) = 'NECON_'
+    IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2'))&
+        IPROACTV(NBUDGET_TH, IPROC) = NNECONTH
   END IF
-!
+
   YEND_COMMENT(NBUDGET_TH) = 'BU_RTH'
   NBUPROCNBR(NBUDGET_TH) = 3
 !
@@ -1040,13 +1035,26 @@ END IF
 !
 !                        Budget of RTKE
 IF (LBU_RTKE) THEN
+  YWORK2(NBUDGET_TKE, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_TKE, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_TKE, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_TKE, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_TKE, IPROC) = NASSETKE
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TKE, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_TKE, IPROC)  = NFRCTKE
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TKE, IPROC) = 'DIF_'
   IF ( ONUMDIFTH ) IPROACTV(NBUDGET_TKE, IPROC) = NDIFTKE
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_TKE, IPROC) = 'REL_'
   IF ( OHORELAX_TKE ) THEN
     IPROACTV(NBUDGET_TKE, IPROC) = NRELTKE
   ELSE
@@ -1058,43 +1066,31 @@ IF (LBU_RTKE) THEN
       IPROACTV(NBUDGET_TKE, IPROC) = 3
     END IF
   END IF
-  IPROC=IPROC+1
-  IF( ODRAGTREE ) IPROACTV(NBUDGET_TKE, IPROC)  = NDRAGTKE
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_TKE, IPROC) = NDPTKE
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_TKE, IPROC) = NTPTKE
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_TKE, IPROC) = NDISSTKE
-  IPROC=IPROC+1 
-  IPROACTV(NBUDGET_TKE, IPROC) = NTRTKE
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_TKE, IPROC) = NADVTKE
-!
-  YWORK2(NBUDGET_TKE, 1) = 'INIF_'
-  YWORK2(NBUDGET_TKE, 2) = 'ENDF_'
-  YWORK2(NBUDGET_TKE, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_TKE, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TKE, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TKE, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_TKE, IPROC) = 'REL_'
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_TKE, IPROC) = 'DRAG_'
+  IF( ODRAGTREE ) IPROACTV(NBUDGET_TKE, IPROC)  = NDRAGTKE
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_TKE, IPROC) = 'DP_'
+  IPROACTV(NBUDGET_TKE, IPROC) = NDPTKE
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_TKE, IPROC) = 'TP_'
+  IPROACTV(NBUDGET_TKE, IPROC) = NTPTKE
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_TKE, IPROC) = 'DISS_'
+  IPROACTV(NBUDGET_TKE, IPROC) = NDISSTKE
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_TKE, IPROC) = 'TR_'
+  IPROACTV(NBUDGET_TKE, IPROC) = NTRTKE
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_TKE, IPROC) = 'ADV_'
-!
+  IPROACTV(NBUDGET_TKE, IPROC) = NADVTKE
+
   YEND_COMMENT(NBUDGET_TKE) = 'BU_RTKE'
   NBUPROCNBR(NBUDGET_TKE) = 3
 !
@@ -1111,22 +1107,43 @@ END IF
 !
 !                        Budget of RRV
 IF (LBU_RRV) THEN
+  YWORK2(NBUDGET_RV, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_RV, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_RV, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_RV, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_RV, IPROC) = NASSERV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_RV, IPROC) = NNESTRV
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_RV, IPROC)  = NFRCRV
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = '2DADV_'
   IF( L2D_ADV_FRC ) IPROACTV(NBUDGET_RV, IPROC)  = N2DADVRV
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = '2DREL_'
   IF( L2D_REL_FRC ) IPROACTV(NBUDGET_RV, IPROC)  = N2DRELRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'NUD_'
   IF( ONUDGING ) IPROACTV(NBUDGET_RV, IPROC)  = NNUDRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'DIF_'
   IF ( ONUMDIFTH ) IPROACTV(NBUDGET_RV, IPROC) = NDIFRV
-  IPROC=IPROC+1 
-  IF ( OHORELAX_RV .OR. OVE_RELAX ) THEN  
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'REL_'
+  IF ( OHORELAX_RV .OR. OVE_RELAX ) THEN
     IPROACTV(NBUDGET_RV, IPROC) = NRELRV
   ELSE
     IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
@@ -1137,11 +1154,17 @@ IF (LBU_RRV) THEN
       IPROACTV(NBUDGET_RV, IPROC) = 3
     END IF
   END IF
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'DCONV_'
   IF ( HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') IPROACTV(NBUDGET_RV, IPROC) = NDCONVRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'VTURB_'
   IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_RV, IPROC) = NVTURBRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_RV, IPROC) = NHTURBRV
   ELSE
@@ -1151,148 +1174,112 @@ IF (LBU_RRV) THEN
       IPROACTV(NBUDGET_RV, IPROC) = 3
     END IF
   END IF 
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'NETUR_'
   IF (HTURB /= 'NONE' .AND. ( (HCLOUD == 'KHKO') .OR.  (HCLOUD == 'C2R2'))) &
    IPROACTV(NBUDGET_RV, IPROC) = NNETURRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'MAFL_'
   IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_RV, IPROC) = NMAFLRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_RV, IPROC) = NADVRV
-  IPROC=IPROC+1   
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'NEADV_'
   IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2'))  IPROACTV(NBUDGET_RV, IPROC) = NNEADVRV
-  IPROC=IPROC+1 
+
+  IPROC=IPROC+1
+  YWORK2(NBUDGET_RV, IPROC) = 'NEGA_'
   IF (HCLOUD /= 'NONE' .AND. HCLOUD /= 'KHKO' .AND. HCLOUD /= 'C2R2') &
      IPROACTV(NBUDGET_RV, IPROC) = NNEGARV
-  IPROC=IPROC+1   
 
   IF (HCLOUD == 'LIMA') THEN
-     IF (OWARM .AND. OACTI .AND. NMOD_CCN.GE.1)              IPROACTV(NBUDGET_RV, IPROC) = NHENURV
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) THEN
-        IF (OWARM .AND. ORAIN)                               IPROACTV(NBUDGET_RV, IPROC) = NREVARV
-        IPROC=IPROC+1
-     END IF
-     IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_RV, IPROC) = NHINDRV
-     IPROC=IPROC+1
-     IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) IPROACTV(NBUDGET_RV, IPROC) = NHONHRV
-     IPROC=IPROC+1
-     IF (OPTSPLIT) THEN
-                                                             IPROACTV(NBUDGET_RV, IPROC) = NREVARV
-        IPROC=IPROC+1
-     END IF
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RV, IPROC) = NDEPSRV
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RV, IPROC) = NDEPGRV
-     IPROC=IPROC+1
-                                                             IPROACTV(NBUDGET_RV, IPROC) = NCEDSRV
-     IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'HENU_'
+    IF (OWARM .AND. OACTI .AND. NMOD_CCN.GE.1)              IPROACTV(NBUDGET_RV, IPROC) = NHENURV
 
-  ELSE
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) &
-          IPROACTV(NBUDGET_RV, IPROC) = NADJURV
-  IPROC=IPROC+1
-  IF ((HCLOUD == 'C2R2'  .AND. (.NOT. LSUPSAT)) &
-          .OR. ( HCLOUD == 'KHKO' .AND. (.NOT. LSUPSAT)) &
-          .OR. HCLOUD(1:3) == 'ICE')  &
-        IPROACTV(NBUDGET_RV, IPROC) = NHENURV
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RV, IPROC) = NDEPSRV
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RV, IPROC) = NDEPGRV
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' .OR. ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN) .OR. &
-      ((HCLOUD(1:3) == 'ICE') .AND. LWARM)) IPROACTV(NBUDGET_RV, IPROC) = NREVARV
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES'.OR. HCLOUD == 'REVE' .OR. &
-      HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' ) IPROACTV(NBUDGET_RV, IPROC) = NCONDRV
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RV, IPROC) = NCORRRV
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .AND. (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) )) &
-          IPROACTV(NBUDGET_RV, IPROC) = NCDEPIRV
-  IPROC=IPROC+1
-  IF ( (HCLOUD == 'KHKO' )  .OR.  (HCLOUD == 'C2R2')) &
-          IPROACTV(NBUDGET_RV, IPROC) = NNECONRV
-  IPROC=IPROC+1
-END IF
+    IF (.NOT.OPTSPLIT) THEN
+      IPROC=IPROC+1
+      YWORK2(NBUDGET_RV, IPROC) = 'REVA_'
+      IF (OWARM .AND. ORAIN)                                IPROACTV(NBUDGET_RV, IPROC) = NREVARV
+    END IF
 
-!
-  YWORK2(NBUDGET_RV, 1) = 'INIF_'
-  YWORK2(NBUDGET_RV, 2) = 'ENDF_'
-  YWORK2(NBUDGET_RV, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_RV, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = '2DADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = '2DREL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'NUD_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'DCONV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'VTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'HTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'NETUR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'MAFL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'ADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'NEADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'NEGA_'
-  IPROC=IPROC+1
-IF (HCLOUD == 'LIMA') THEN
- YWORK2(NBUDGET_RV, IPROC) = 'HENU_'
-  IPROC=IPROC+1
-  IF (.NOT.OPTSPLIT) THEN
-     YWORK2(NBUDGET_RV, IPROC) = 'REVA_'
-     IPROC=IPROC+1
-  END IF
-  YWORK2(NBUDGET_RV, IPROC) = 'HIND_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'HONH_'
-  IPROC=IPROC+1
-  IF (OPTSPLIT) THEN
-     YWORK2(NBUDGET_RV, IPROC) = 'REVA_'
-     IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'HIND_'
+    IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_RV, IPROC) = NHINDRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'HONH_'
+    IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) IPROACTV(NBUDGET_RV, IPROC) = NHONHRV
+
+    IF (OPTSPLIT) THEN
+      IPROC=IPROC+1
+      YWORK2(NBUDGET_RV, IPROC) = 'REVA_'
+                                                            IPROACTV(NBUDGET_RV, IPROC) = NREVARV
+    END IF
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'DEPS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RV, IPROC) = NDEPSRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'DEPG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RV, IPROC) = NDEPGRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'CEDS_'
+                                                            IPROACTV(NBUDGET_RV, IPROC) = NCEDSRV
+
+  ELSE
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'ADJU_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) &
+            IPROACTV(NBUDGET_RV, IPROC) = NADJURV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'HENU_'
+    IF ((HCLOUD == 'C2R2'  .AND. (.NOT. LSUPSAT)) &
+            .OR. ( HCLOUD == 'KHKO' .AND. (.NOT. LSUPSAT)) &
+            .OR. HCLOUD(1:3) == 'ICE')  &
+          IPROACTV(NBUDGET_RV, IPROC) = NHENURV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'DEPS_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RV, IPROC) = NDEPSRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'DEPG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RV, IPROC) = NDEPGRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'REVA_'
+    IF (HCLOUD(1:3) == 'KES' .OR. ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN) .OR. &
+        ((HCLOUD(1:3) == 'ICE') .AND. LWARM)) IPROACTV(NBUDGET_RV, IPROC) = NREVARV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'COND_'
+    IF (HCLOUD(1:3) == 'KES'.OR. HCLOUD == 'REVE' .OR. &
+        HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' ) IPROACTV(NBUDGET_RV, IPROC) = NCONDRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'CORR_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RV, IPROC) = NCORRRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'CDEPI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) )) &
+            IPROACTV(NBUDGET_RV, IPROC) = NCDEPIRV
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RV, IPROC) = 'NECON_'
+    IF ( (HCLOUD == 'KHKO' )  .OR.  (HCLOUD == 'C2R2')) &
+            IPROACTV(NBUDGET_RV, IPROC) = NNECONRV
   END IF
-  YWORK2(NBUDGET_RV, IPROC) = 'DEPS_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'DEPG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'CEDS_'
-ELSE
-  YWORK2(NBUDGET_RV, IPROC) = 'ADJU_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'HENU_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'DEPS_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'DEPG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'REVA_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'COND_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'CORR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'CDEPI_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RV, IPROC) = 'NECON_'
-END IF
-!
+
   YEND_COMMENT(NBUDGET_RV) = 'BU_RRV'
   NBUPROCNBR(NBUDGET_RV) = 3
 !
@@ -1309,15 +1296,30 @@ END IF
 !
 !                        Budget of RRC
 IF (LBU_RRC) THEN
+  YWORK2(NBUDGET_RC, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_RC, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_RC, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_RC, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_RC, IPROC) = NASSERC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_RC, IPROC) = NNESTRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_RC, IPROC)  = NFRCRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'DIF_'
   IF ( ONUMDIFTH ) IPROACTV(NBUDGET_RC, IPROC) = NDIFRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'REL_'
   IF ( OHORELAX_RC ) THEN
     IPROACTV(NBUDGET_RC, IPROC) = NRELRC
   ELSE
@@ -1329,13 +1331,21 @@ IF (LBU_RRC) THEN
       IPROACTV(NBUDGET_RC, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'DCONV_'
   IF( HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') IPROACTV(NBUDGET_RC, IPROC)  = NDCONVRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'DEPOTR'
   IF( ODRAGTREE .AND. ODEPOTREE ) IPROACTV(NBUDGET_RC, IPROC) = NDEPOTRRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'VTURB_'
   IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_RC, IPROC) = NVTURBRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_RC, IPROC) = NHTURBRC
   ELSE 
@@ -1345,471 +1355,429 @@ IF (LBU_RRC) THEN
       IPROACTV(NBUDGET_RC, IPROC) = 3
     END IF
   END IF 
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'NETUR_'
   IF (HTURB /= 'NONE' .AND. ( (HCLOUD == 'KHKO') .OR.  (HCLOUD == 'C2R2'))) &
       IPROACTV(NBUDGET_RC, IPROC) = NNETURRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_RC, IPROC) = NADVRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'NEADV_'
   IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2'))  &
       IPROACTV(NBUDGET_RC, IPROC) = NNEADVRC
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RC, IPROC) = 'NEGA_'
   IF (HCLOUD /= 'NONE' .AND. HCLOUD /= 'KHKO' .AND. HCLOUD /= 'C2R2') &
      IPROACTV(NBUDGET_RC, IPROC)  = NNEGARC
-  IPROC=IPROC+1
 
   IF (HCLOUD == 'LIMA') THEN
-     IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RC, IPROC) = NCORRRC
-     IPROC=IPROC+1
-     IF (OWARM .AND. OSEDC)                             IPROACTV(NBUDGET_RC, IPROC) = NSEDIRC
-     IPROC=IPROC+1
-     IF (OWARM .AND. ODEPOC)                            IPROACTV(NBUDGET_RC, IPROC) = NDEPORC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RC, IPROC) = NR2C1RC
-     IPROC=IPROC+1
-     IF (OWARM .AND. OACTI .AND. NMOD_CCN.GE.1)         IPROACTV(NBUDGET_RC, IPROC) = NHENURC
-     IPROC=IPROC+1
-     IF (OPTSPLIT) THEN
-        IF (OCOLD .AND. ONUCL)                          IPROACTV(NBUDGET_RC, IPROC) = NHINCRC
-        IPROC=IPROC+1
-     END IF
-     IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RC, IPROC) = NAUTORC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RC, IPROC) = NACCRRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RC, IPROC) = NREVARC
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) THEN
-        IF (OCOLD .AND. ONUCL)                          IPROACTV(NBUDGET_RC, IPROC) = NHINCRC
-        IPROC=IPROC+1
-     END IF
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL)) IPROACTV(NBUDGET_RC, IPROC) = NHONCRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))             IPROACTV(NBUDGET_RC, IPROC) = NIMLTRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))             IPROACTV(NBUDGET_RC, IPROC) = NBERFIRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RC, IPROC) = NRIMRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RC, IPROC) = NWETGRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RC, IPROC) = NDRYGRC
-     IPROC=IPROC+1
-     IF (OPTSPLIT)                                      IPROACTV(NBUDGET_RC, IPROC) = NCVRCRC
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RC, IPROC) = NWETHRC
-     IPROC=IPROC+1
-                                                        IPROACTV(NBUDGET_RC, IPROC) = NCEDSRC
-     IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'CORR_'
+    IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RC, IPROC) = NCORRRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'SEDI_'
+    IF (OWARM .AND. OSEDC)                             IPROACTV(NBUDGET_RC, IPROC) = NSEDIRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'DEPO_'
+    IF (OWARM .AND. ODEPOC)                            IPROACTV(NBUDGET_RC, IPROC) = NDEPORC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'R2C1_'
+    IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RC, IPROC) = NR2C1RC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'HENU_'
+    IF (OWARM .AND. OACTI .AND. NMOD_CCN.GE.1)         IPROACTV(NBUDGET_RC, IPROC) = NHENURC
+
+    IF (OPTSPLIT) THEN
+      IPROC=IPROC+1
+      YWORK2(NBUDGET_RC, IPROC) = 'HINC_'
+      IF (OCOLD .AND. ONUCL)                          IPROACTV(NBUDGET_RC, IPROC) = NHINCRC
+    END IF
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'AUTO_'
+    IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RC, IPROC) = NAUTORC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'ACCR_'
+    IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RC, IPROC) = NACCRRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'REVA_'
+    IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RC, IPROC) = NREVARC
+
+    IF (.NOT.OPTSPLIT) THEN
+      IPROC=IPROC+1
+      YWORK2(NBUDGET_RC, IPROC) = 'HINC_'
+      IF (OCOLD .AND. ONUCL)                          IPROACTV(NBUDGET_RC, IPROC) = NHINCRC
+    END IF
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'HONC_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL)) IPROACTV(NBUDGET_RC, IPROC) = NHONCRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'IMLT_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))             IPROACTV(NBUDGET_RC, IPROC) = NIMLTRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'BERFI_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))             IPROACTV(NBUDGET_RC, IPROC) = NBERFIRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'RIM_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RC, IPROC) = NRIMRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'WETG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RC, IPROC) = NWETGRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'DRYG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RC, IPROC) = NDRYGRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'CVRC_'
+    IF (OPTSPLIT)                                      IPROACTV(NBUDGET_RC, IPROC) = NCVRCRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RC, IPROC) = NWETHRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'CEDS_'
+                                                       IPROACTV(NBUDGET_RC, IPROC) = NCEDSRC
   ELSE
-  IF (HCLOUD(1:3) == 'KES' )            IPROACTV(NBUDGET_RC, IPROC  ) = NACCRRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )            IPROACTV(NBUDGET_RC, IPROC) = NAUTORC
-  IPROC=IPROC+1
-  IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO')  .AND. (.NOT. LSUPSAT)) &
-          IPROACTV(NBUDGET_RC, IPROC) = NHENURC
-  IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'ACCR_'
+    IF (HCLOUD(1:3) == 'KES' )            IPROACTV(NBUDGET_RC, IPROC  ) = NACCRRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'AUTO_'
+    IF (HCLOUD(1:3) == 'KES' )            IPROACTV(NBUDGET_RC, IPROC) = NAUTORC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'HENU_'
+    IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO')  .AND. (.NOT. LSUPSAT)) &
+            IPROACTV(NBUDGET_RC, IPROC) = NHENURC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'ADJU_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) &
+            IPROACTV(NBUDGET_RC, IPROC) = NADJURC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'SEDI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LSEDIC .AND. &
+            LRED .AND. (.NOT. LSEDIM_AFTER)) &
+       IPROACTV(NBUDGET_RC, IPROC) = NSEDIRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'HON_'
+    IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RC, IPROC) = NHONRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'AUTO_'
+    IF (((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) .OR.  ((HCLOUD == 'C2R2' .OR. &
+          HCLOUD == 'KHKO') .AND. LRAIN)) IPROACTV(NBUDGET_RC, IPROC) = NAUTORC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'ACCR_'
+    IF (((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) .OR.  ((HCLOUD == 'C2R2' .OR. &
+          HCLOUD == 'KHKO') .AND. LRAIN)) IPROACTV(NBUDGET_RC, IPROC) = NACCRRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'RIM_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NRIMRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'CMEL_'
+    IF (HCLOUD(1:3) == 'ICE'  .AND. LRED) IPROACTV(NBUDGET_RC, IPROC) = NCMELRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'WETG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NWETGRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'DRYG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NDRYGRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'WETH_'
+    IF (HCLOUD == 'ICE4')  IPROACTV(NBUDGET_RC, IPROC) = NWETHRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'DRYH_'
+    IF (HCLOUD == 'ICE4' .AND. LRED)  IPROACTV(NBUDGET_RC, IPROC) = NDRYHRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'IMLT_'
+    IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RC, IPROC) = NIMLTRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'BERFI_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NBERFIRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'CORR_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RC, IPROC) = NCORRRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'SEDI_'
+    IF (((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO').AND. LSEDC) .OR.   &
+       (HCLOUD(1:3) == 'ICE' .AND. LSEDIC .AND. .NOT. LRED) .OR. &
+       (HCLOUD(1:3) == 'ICE' .AND. LSEDIC .AND. LRED .AND. LSEDIM_AFTER)) &
+       IPROACTV(NBUDGET_RC, IPROC) = NSEDIRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'DEPO_'
+    IF (((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO').AND. LDEPOC) .OR.   &
+       (HCLOUD(1:3) == 'ICE' .AND. LDEPOSC)) IPROACTV(NBUDGET_RC, IPROC) = NDEPORC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'CDEPI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) )) &
+            IPROACTV(NBUDGET_RC, IPROC) = NCDEPIRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'COND_'
+    IF (HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO' .OR. &
+        HCLOUD(1:3) == 'KES'.OR. HCLOUD == 'REVE') IPROACTV(NBUDGET_RC, IPROC) = NCONDRC
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RC, IPROC) = 'NECON_'
+    IF ( (HCLOUD == 'KHKO' )  .OR.  (HCLOUD == 'C2R2')) &
+       IPROACTV(NBUDGET_RC, IPROC) = NNECONRC
+  END IF
+
+  YEND_COMMENT(NBUDGET_RC) = 'BU_RRC'
+  NBUPROCNBR(NBUDGET_RC) = 3
+!
+  CBUACTION(NBUDGET_RC, 1) = 'IG'
+  CBUACTION(NBUDGET_RC, 2) = 'CC'
+  CBUACTION(NBUDGET_RC, 3) = 'ES'
+!
+  DO JJ=1,3
+    CBUCOMMENT(NBUDGET_RC, JJ) = ADJUSTL( ADJUSTR( YWORK2(NBUDGET_RC, JJ) ) // &
+                                 ADJUSTL( YEND_COMMENT(NBUDGET_RC) ) )
+  END DO
 !
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) &
-          IPROACTV(NBUDGET_RC, IPROC) = NADJURC
+END IF
+!
+!                        Budget of RRR
+IF (LBU_RRR) THEN
+  YWORK2(NBUDGET_RR, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_RR, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_RR, 3) = 'AVEF_'
+
+  IPROC=4
+  YWORK2(NBUDGET_RR, IPROC) = 'ASSE_'
+  IPROACTV(NBUDGET_RR, IPROC) = NASSERR
+
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .AND. LSEDIC .AND. &
-          LRED .AND. (.NOT. LSEDIM_AFTER)) &
-     IPROACTV(NBUDGET_RC, IPROC) = NSEDIRC
+  YWORK2(NBUDGET_RR, IPROC) = 'NEST_'
+  IF( NMODEL>1 ) IPROACTV(NBUDGET_RR, IPROC) = NNESTRR
+
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RC, IPROC) = NHONRC
+  YWORK2(NBUDGET_RR, IPROC) = 'FRC_'
+  IF( LFORCING ) IPROACTV(NBUDGET_RR, IPROC)  = NFRCRR
+
   IPROC=IPROC+1
-  IF (((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) .OR.  ((HCLOUD == 'C2R2' .OR. &
-        HCLOUD == 'KHKO') .AND. LRAIN)) IPROACTV(NBUDGET_RC, IPROC) = NAUTORC
+  YWORK2(NBUDGET_RR, IPROC) = 'DIF_'
+  IF ( ONUMDIFTH ) IPROACTV(NBUDGET_RR, IPROC) = NDIFRR
+
   IPROC=IPROC+1
-  !modif
-  IF (((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) .OR.  ((HCLOUD == 'C2R2' .OR. &
-        HCLOUD == 'KHKO') .AND. LRAIN)) IPROACTV(NBUDGET_RC, IPROC) = NACCRRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NRIMRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE'  .AND. LRED) IPROACTV(NBUDGET_RC, IPROC) = NCMELRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NWETGRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NDRYGRC
-  IPROC=IPROC+1
-  IF (HCLOUD == 'ICE4')  IPROACTV(NBUDGET_RC, IPROC) = NWETHRC
-  IPROC=IPROC+1
-  IF (HCLOUD == 'ICE4' .AND. LRED)  IPROACTV(NBUDGET_RC, IPROC) = NDRYHRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RC, IPROC) = NIMLTRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RC, IPROC) = NBERFIRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RC, IPROC) = NCORRRC
-  IPROC=IPROC+1
-  IF (((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO').AND. LSEDC) .OR.   &
-     (HCLOUD(1:3) == 'ICE' .AND. LSEDIC .AND. .NOT. LRED) .OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. LSEDIC .AND. LRED .AND. LSEDIM_AFTER)) &
-     IPROACTV(NBUDGET_RC, IPROC) = NSEDIRC
-  IPROC=IPROC+1
-  IF (((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO').AND. LDEPOC) .OR.   &
-     (HCLOUD(1:3) == 'ICE' .AND. LDEPOSC)) IPROACTV(NBUDGET_RC, IPROC) = NDEPORC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .AND. (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) )) &
-          IPROACTV(NBUDGET_RC, IPROC) = NCDEPIRC
-  IPROC=IPROC+1
-  IF (HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO' .OR. &
-      HCLOUD(1:3) == 'KES'.OR. HCLOUD == 'REVE') IPROACTV(NBUDGET_RC, IPROC) = NCONDRC
-  IPROC=IPROC+1
-  IF ( (HCLOUD == 'KHKO' )  .OR.  (HCLOUD == 'C2R2')) &
-     IPROACTV(NBUDGET_RC, IPROC) = NNECONRC
-  IPROC=IPROC+1
-  END IF
-
-!
-  YWORK2(NBUDGET_RC, 1) = 'INIF_'
-  YWORK2(NBUDGET_RC, 2) = 'ENDF_'
-  YWORK2(NBUDGET_RC, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_RC, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'DCONV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'DEPOTR'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'VTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'HTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'NETUR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'ADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'NEADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RC, IPROC) = 'NEGA_'
-  IPROC=IPROC+1
-
-  IF (HCLOUD == 'LIMA') THEN
-     YWORK2(NBUDGET_RC, IPROC) = 'CORR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'SEDI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'DEPO_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'R2C1_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'HENU_'
-     IPROC=IPROC+1
-     IF (OPTSPLIT) THEN
-        YWORK2(NBUDGET_RC, IPROC) = 'HINC_'
-        IPROC=IPROC+1
-     END IF
-     YWORK2(NBUDGET_RC, IPROC) = 'AUTO_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'ACCR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'REVA_'
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) THEN
-        YWORK2(NBUDGET_RC, IPROC) = 'HINC_'
-        IPROC=IPROC+1
-     END IF
-     YWORK2(NBUDGET_RC, IPROC) = 'HONC_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'IMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'BERFI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'RIM_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'WETG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'DRYG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'CVRC_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'WETH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'CEDS_'
-  ELSE
-     YWORK2(NBUDGET_RC, IPROC) = 'ACCR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'AUTO_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'HENU_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'ADJU_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'SEDI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'HON_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'AUTO_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'ACCR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'RIM_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'CMEL_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'WETG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'DRYG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'WETH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'DRYH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'IMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'BERFI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'CORR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'SEDI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'DEPO_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'CDEPI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'COND_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RC, IPROC) = 'NECON_'
-  END IF
-!
-  YEND_COMMENT(NBUDGET_RC) = 'BU_RRC'
-  NBUPROCNBR(NBUDGET_RC) = 3
-!
-  CBUACTION(NBUDGET_RC, 1) = 'IG'
-  CBUACTION(NBUDGET_RC, 2) = 'CC'
-  CBUACTION(NBUDGET_RC, 3) = 'ES'
-!
-  DO JJ=1,3
-    CBUCOMMENT(NBUDGET_RC, JJ) = ADJUSTL( ADJUSTR( YWORK2(NBUDGET_RC, JJ) ) // &
-                                 ADJUSTL( YEND_COMMENT(NBUDGET_RC) ) )
-  END DO
-!
-END IF
-!
-!                        Budget of RRR
-IF (LBU_RRR) THEN
-  IPROC=4
-  IPROACTV(NBUDGET_RR, IPROC) = NASSERR
-  IPROC=IPROC+1
-  IF( NMODEL>1 ) IPROACTV(NBUDGET_RR, IPROC) = NNESTRR
-  IPROC=IPROC+1
-  IF( LFORCING ) IPROACTV(NBUDGET_RR, IPROC)  = NFRCRR
-  IPROC=IPROC+1
-  IF ( ONUMDIFTH ) IPROACTV(NBUDGET_RR, IPROC) = NDIFRR
-  IPROC=IPROC+1
-  IF ( OHORELAX_RR ) THEN
-    IPROACTV(NBUDGET_RR, IPROC) = NRELRR
-  ELSE
-    IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
-     OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR.   &
-     OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN
-      IPROACTV(NBUDGET_RR, IPROC) = 4
-    ELSE
-      IPROACTV(NBUDGET_RR, IPROC) = 3
-    END IF
-  END IF
+  YWORK2(NBUDGET_RR, IPROC) = 'REL_'
+  IF ( OHORELAX_RR ) THEN
+    IPROACTV(NBUDGET_RR, IPROC) = NRELRR
+  ELSE
+    IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
+     OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR.   &
+     OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN
+      IPROACTV(NBUDGET_RR, IPROC) = 4
+    ELSE
+      IPROACTV(NBUDGET_RR, IPROC) = 3
+    END IF
+  END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RR, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_RR, IPROC) = NADVRR
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RR, IPROC) = 'NEGA_'
   IF ( HCLOUD /= 'NONE' ) IPROACTV(NBUDGET_RR, IPROC) = NNEGARR
-  IPROC=IPROC+1
 
   IF (HCLOUD == 'LIMA') THEN
-     IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RR, IPROC) = NCORRRR
-     IPROC=IPROC+1
-     IF (OWARM .AND. ORAIN)                             IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RR, IPROC) = NR2C1RR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RR, IPROC) = NREVARR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL .AND. ORAIN)) IPROACTV(NBUDGET_RR, IPROC) = NHONRRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW .AND. ORAIN)) IPROACTV(NBUDGET_RR, IPROC) = NACCRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NCFRZRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NWETGRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NDRYGRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NGMLTRR
-     IPROC=IPROC+1
-     IF (OPTSPLIT)                                      IPROACTV(NBUDGET_RR, IPROC) = NCVRCRR
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RR, IPROC) = NWETHRR
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RR, IPROC) = NHMLTRR
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'CORR_'
+    IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RR, IPROC) = NCORRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
+    IF (OWARM .AND. ORAIN)                             IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'R2C1_'
+    IF (OPTSPLIT .AND. OWARM .AND. ORAIN)              IPROACTV(NBUDGET_RR, IPROC) = NR2C1RR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
+    IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
+    IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
+    IF (OPTSPLIT .OR. (OWARM .AND. ORAIN))             IPROACTV(NBUDGET_RR, IPROC) = NREVARR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'HONR_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL .AND. ORAIN)) IPROACTV(NBUDGET_RR, IPROC) = NHONRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'ACC_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW .AND. ORAIN)) IPROACTV(NBUDGET_RR, IPROC) = NACCRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'CFRZ_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NCFRZRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'WETG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NWETGRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'DRYG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NDRYGRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'GMLT_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RR, IPROC) = NGMLTRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'CVRC_'
+    IF (OPTSPLIT)                                      IPROACTV(NBUDGET_RR, IPROC) = NCVRCRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RR, IPROC) = NWETHRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'HMLT_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RR, IPROC) = NHMLTRR
   ELSE
-     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NREVARR
-     IPROC=IPROC+1
-!
-     IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
-             IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RR, IPROC) = NSFRRR
-     IPROC=IPROC+1
-     IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
-          IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
-     IPROC=IPROC+1
-     IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
-          IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
-     IPROC=IPROC+1
-     IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
-          IPROACTV(NBUDGET_RR, IPROC) = NREVARR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RR, IPROC) = NACCRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RR, IPROC) = NCMELRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RR, IPROC) = NCFRZRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RR, IPROC) = NWETGRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RR, IPROC) = NDRYGRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RR, IPROC) = NGMLTRR
-     IPROC=IPROC+1
-     IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_RR, IPROC) = NWETHRR
-     IPROC=IPROC+1
-     IF (HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RR, IPROC) = NDRYHRR
-     IPROC=IPROC+1
-     IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_RR, IPROC) = NHMLTRR
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RR, IPROC) = NCORRRR
-     IPROC=IPROC+1
-     IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
-     IPROC=IPROC+1
-     IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
-     IPROC=IPROC+1
-     IF ((HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO') .AND. LRAIN)   IPROACTV(NBUDGET_RR, IPROC) = NREVARR
-     IPROC=IPROC+1
-     IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. .NOT. (LRED)) .OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
-       IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
-     IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
+    IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
+    IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
+    IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
+    IF (HCLOUD(1:3) == 'KES' )   IPROACTV(NBUDGET_RR, IPROC) = NREVARR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'SFR_'
+    IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RR, IPROC) = NSFRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
+    IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
+         IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
+    IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
+         IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
+    IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
+         IPROACTV(NBUDGET_RR, IPROC) = NREVARR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'ACC_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RR, IPROC) = NACCRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'CMEL_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RR, IPROC) = NCMELRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'CFRZ_'
+    IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RR, IPROC) = NCFRZRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'WETG_'
+    IF (HCLOUD(1:3) == 'ICE' ) IPROACTV(NBUDGET_RR, IPROC) = NWETGRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'DRYG_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RR, IPROC) = NDRYGRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'GMLT_'
+    IF (HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RR, IPROC) = NGMLTRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'WETH_'
+    IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_RR, IPROC) = NWETHRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'DRYH_'
+    IF (HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RR, IPROC) = NDRYHRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'HMLT_'
+    IF (HCLOUD == 'ICE4') IPROACTV(NBUDGET_RR, IPROC) = NHMLTRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'CORR_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RR, IPROC) = NCORRRR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
+    IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(NBUDGET_RR, IPROC) = NAUTORR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
+    IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(NBUDGET_RR, IPROC) = NACCRRR
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
+    IF ((HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO') .AND. LRAIN)   IPROACTV(NBUDGET_RR, IPROC) = NREVARR
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
+    IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. &
+    (HCLOUD(1:3) == 'ICE' .AND. .NOT. (LRED)) .OR. &
+    (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
+      IPROACTV(NBUDGET_RR, IPROC) = NSEDIRR
   END IF
-!
-  YWORK2(NBUDGET_RR, 1) = 'INIF_'
-  YWORK2(NBUDGET_RR, 2) = 'ENDF_'
-  YWORK2(NBUDGET_RR, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_RR, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'NEGA_'
-  IPROC=IPROC+1
 
-IF (HCLOUD == 'LIMA') THEN
-  YWORK2(NBUDGET_RR, IPROC) = 'CORR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'R2C1_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'HONR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ACC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'CFRZ_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'DRYG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'GMLT_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'CVRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'HMLT_'
-  IPROC=IPROC+1
-ELSE
-  YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'SFR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ACC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'CMEL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'CFRZ_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'DRYG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'GMLT_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'DRYH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'HMLT_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'CORR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'AUTO_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'ACCR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'REVA_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RR, IPROC) = 'SEDI_'
-END IF
-!
   YEND_COMMENT(NBUDGET_RR) = 'BU_RRR'
   NBUPROCNBR(NBUDGET_RR) = 3
 !
@@ -1826,15 +1794,30 @@ END IF
 !
 !                        Budget of RRI
 IF (LBU_RRI) THEN
+  YWORK2(NBUDGET_RI, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_RI, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_RI, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_RI, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_RI, IPROC) = NASSERI
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_RI, IPROC) = NNESTRI
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'FRC_'
   IF( LFORCING ) IPROACTV(NBUDGET_RI, IPROC)  = NFRCRI
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'DIF_'
   IF( ONUMDIFTH ) IPROACTV(NBUDGET_RI, IPROC) = NDIFRI
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'REL_'
   IF ( OHORELAX_RI ) THEN
     IPROACTV(NBUDGET_RI, IPROC) = NRELRI
   ELSE
@@ -1846,11 +1829,17 @@ IF (LBU_RRI) THEN
       IPROACTV(NBUDGET_RI, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'DCONV_'
   IF( HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') IPROACTV(NBUDGET_RI, IPROC) = NDCONVRI
+
   IPROC=IPROC+1
-  IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_RI, IPROC) = NVTURBRI
+  YWORK2(NBUDGET_RI, IPROC) = 'VTURB_'
+  IF ( HTURB /=  'NONE' ) IPROACTV(NBUDGET_RI, IPROC) = NVTURBRI
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'HTURB_'
   IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
     IPROACTV(NBUDGET_RI, IPROC) = NHTURBRI
   ELSE 
@@ -1860,181 +1849,157 @@ IF (LBU_RRI) THEN
       IPROACTV(NBUDGET_RI, IPROC) = 3
     END IF
   END IF 
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_RI, IPROC) = NADVRI
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RI, IPROC) = 'NEGA_'
   IF( HCLOUD /= 'NONE' ) IPROACTV(NBUDGET_RI, IPROC) = NNEGARI
-  IPROC=IPROC+1
 
   IF (HCLOUD=='LIMA') THEN
-     IF (OPTSPLIT .AND. OCOLD .AND. OSNOW)                   IPROACTV(NBUDGET_RI, IPROC) = NCORRRI
-     IPROC=IPROC+1
-     IF (OCOLD .AND. OSEDI)                                  IPROACTV(NBUDGET_RI, IPROC) = NSEDIRI
-     IPROC=IPROC+1
-     IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_RI, IPROC) = NHINDRI
-     IPROC=IPROC+1
-     IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_RI, IPROC) = NHINCRI
-     IPROC=IPROC+1
-     IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) IPROACTV(NBUDGET_RI, IPROC) = NHONHRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL))      IPROACTV(NBUDGET_RI, IPROC) = NHONCRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RI, IPROC) = NCNVIRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RI, IPROC) = NCNVSRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RI, IPROC) = NAGGSRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_RI, IPROC) = NIMLTRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_RI, IPROC) = NBERFIRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NHMSRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NCFRZRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NWETGRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NDRYGRI
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NHMGRI
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL) IPROACTV(NBUDGET_RI, IPROC) = NWETHRI
-     IPROC=IPROC+1
-                                       IPROACTV(NBUDGET_RI, IPROC) = NCEDSRI
-  ELSE
-     IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) IPROACTV(NBUDGET_RI, IPROC) = NADJURI
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
-             IPROACTV(NBUDGET_RI, IPROC) = NSEDIRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NHENURI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NHONRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NAGGSRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NAUTSRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NCFRZRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NWETGRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NDRYGRI
-     IPROC=IPROC+1
-     IF( HCLOUD == 'ICE4' ) IPROACTV(NBUDGET_RI, IPROC) = NWETHRI
-     IPROC=IPROC+1
-     IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RI, IPROC) = NDRYHRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NIMLTRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NBERFIRI
-     IPROC=IPROC+1
-     IF( HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RI, IPROC) = NCORRRI
-     IPROC=IPROC+1
-     IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
-             IPROACTV(NBUDGET_RI, IPROC) = NSEDIRI
-     IPROC=IPROC+1
-     IF (HCLOUD(1:3) == 'ICE' .AND. (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) )) &
-             IPROACTV(NBUDGET_RI, IPROC) = NCDEPIRI
-     IPROC=IPROC+1
-  END IF
-!
-  YWORK2(NBUDGET_RI, 1) = 'INIF_'
-  YWORK2(NBUDGET_RI, 2) = 'ENDF_'
-  YWORK2(NBUDGET_RI, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_RI, IPROC) = 'ASSE_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'NEST_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'FRC_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'DIF_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'DCONV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'VTURB_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'HTURB_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'ADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RI, IPROC) = 'NEGA_'
-  IPROC=  IPROC+1
-  IF (HCLOUD=='LIMA') THEN
-     YWORK2(NBUDGET_RI, IPROC) = 'CORR_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'SEDI_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HIND_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HINC_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HONH_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HONC_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CNVI_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CNVS_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'AGGS_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'IMLT_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'BERFI_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HMS_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CFRZ_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'WETG_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'DRYG_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HMG_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'WETH_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CEDS_'
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CORR_'
+    IF (OPTSPLIT .AND. OCOLD .AND. OSNOW)                   IPROACTV(NBUDGET_RI, IPROC) = NCORRRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'SEDI_'
+    IF (OCOLD .AND. OSEDI)                                  IPROACTV(NBUDGET_RI, IPROC) = NSEDIRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HIND_'
+    IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_RI, IPROC) = NHINDRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HINC_'
+    IF (OCOLD .AND. ONUCL)                                  IPROACTV(NBUDGET_RI, IPROC) = NHINCRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HONH_'
+    IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) IPROACTV(NBUDGET_RI, IPROC) = NHONHRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HONC_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL))      IPROACTV(NBUDGET_RI, IPROC) = NHONCRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CNVI_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RI, IPROC) = NCNVIRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CNVS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RI, IPROC) = NCNVSRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'AGGS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))                  IPROACTV(NBUDGET_RI, IPROC) = NAGGSRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'IMLT_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_RI, IPROC) = NIMLTRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'BERFI_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM))                  IPROACTV(NBUDGET_RI, IPROC) = NBERFIRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HMS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NHMSRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CFRZ_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NCFRZRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'WETG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NWETGRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'DRYG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NDRYGRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HMG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))      IPROACTV(NBUDGET_RI, IPROC) = NHMGRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL) IPROACTV(NBUDGET_RI, IPROC) = NWETHRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CEDS_'
+                                      IPROACTV(NBUDGET_RI, IPROC) = NCEDSRI
   ELSE
-     YWORK2(NBUDGET_RI, IPROC) = 'ADJU_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'SEDI_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HENU_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'HON_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'AGGS_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'AUTS_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CFRZ_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'WETG_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'DRYG_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'WETH_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'DRYH_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'IMLT_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'BERFI_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CORR_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'SEDI_'
-     IPROC=  IPROC+1
-     YWORK2(NBUDGET_RI, IPROC) = 'CDEPI_'
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'ADJU_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LADJ_BEFORE) IPROACTV(NBUDGET_RI, IPROC) = NADJURI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'SEDI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RI, IPROC) = NSEDIRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HENU_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NHENURI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'HON_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NHONRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'AGGS_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NAGGSRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'AUTS_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NAUTSRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CFRZ_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NCFRZRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'WETG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NWETGRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'DRYG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NDRYGRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'WETH_'
+    IF( HCLOUD == 'ICE4' ) IPROACTV(NBUDGET_RI, IPROC) = NWETHRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'DRYH_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RI, IPROC) = NDRYHRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'IMLT_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NIMLTRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'BERFI_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RI, IPROC) = NBERFIRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CORR_'
+    IF( HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RI, IPROC) = NCORRRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'SEDI_'
+    IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
+    (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RI, IPROC) = NSEDIRI
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RI, IPROC) = 'CDEPI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) )) &
+            IPROACTV(NBUDGET_RI, IPROC) = NCDEPIRI
   END IF
-!
+
   YEND_COMMENT(NBUDGET_RI) = 'BU_RRI'
   NBUPROCNBR(NBUDGET_RI) = 3
 !
@@ -2051,15 +2016,30 @@ END IF
 !
 !                        Budget of RRS
 IF (LBU_RRS) THEN
+  YWORK2(NBUDGET_RS, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_RS, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_RS, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_RS, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_RS, IPROC) = NASSERS
+
   IPROC=  IPROC+1
+  YWORK2(NBUDGET_RS, IPROC) = 'NEST_'
   IF( NMODEL>1 ) IPROACTV(NBUDGET_RS, IPROC) = NNESTRS
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RS, IPROC) = 'FRC_'
   IF( LFORCING )  IPROACTV(NBUDGET_RS, IPROC)  = NFRCRS
+
   IPROC=  IPROC+1
+  YWORK2(NBUDGET_RS, IPROC) = 'DIF_'
   IF( ONUMDIFTH ) IPROACTV(NBUDGET_RS, IPROC) = NDIFRS
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RS, IPROC) = 'REL_'
   IF ( OHORELAX_RS ) THEN
     IPROACTV(NBUDGET_RS, IPROC) = NRELRS
   ELSE
@@ -2071,144 +2051,124 @@ IF (LBU_RRS) THEN
       IPROACTV(NBUDGET_RS, IPROC) = 3
     END IF
   END IF
+
   IPROC=  IPROC+1
+  YWORK2(NBUDGET_RS, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_RS, IPROC) = NADVRS
-  IPROC=  IPROC+1
-  IF( HCLOUD /= 'NONE' ) IPROACTV(NBUDGET_RS, IPROC) = NNEGARS
-  IPROC=IPROC+1
 
-IF (HCLOUD=='LIMA') THEN
-     IF (OPTSPLIT .AND. OCOLD .AND. OSNOW)              IPROACTV(NBUDGET_RS, IPROC) = NCORRRS
-     IPROC=IPROC+1
-     IF (OCOLD .AND. OSNOW)                             IPROACTV(NBUDGET_RS, IPROC) = NSEDIRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NCNVIRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NDEPSRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NCNVSRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NAGGSRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NRIMRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NHMSRS
-     IPROC=IPROC+1            
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW .AND. ORAIN)) IPROACTV(NBUDGET_RS, IPROC) = NACCRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NCMELRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NWETGRS
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NDRYGRS
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RS, IPROC) = NWETHRS
-     IPROC=IPROC+1
- ELSE
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
-          IPROACTV(NBUDGET_RS, IPROC) = NSEDIRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NDEPSRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NAGGSRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NAUTSRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NRIMRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NACCRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NCMELRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NWETGRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NDRYGRS
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(NBUDGET_RS, IPROC) = NWETHRS
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RS, IPROC) = NDRYHRS
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RS, IPROC) = NCORRRS
-  IPROC=IPROC+1
-  IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
-          IPROACTV(NBUDGET_RS, IPROC) = NSEDIRS
-  IPROC=IPROC+1
-END IF
-!
-  YWORK2(NBUDGET_RS, 1) = 'INIF_'
-  YWORK2(NBUDGET_RS, 2) = 'ENDF_'
-  YWORK2(NBUDGET_RS, 3) = 'AVEF_'
-  IPROC= 4
-  YWORK2(NBUDGET_RS, IPROC) = 'ASSE_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'NEST_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'FRC_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'DIF_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'REL_'
   IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'ADV_'
-  IPROC=IPROC+1
   YWORK2(NBUDGET_RS, IPROC) = 'NEGA_'
-  IPROC=  IPROC+1
-IF (HCLOUD=='LIMA') THEN
-  YWORK2(NBUDGET_RS, IPROC) = 'CORR_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'SEDI_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'CNVI_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'DEPS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'CNVS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'AGGS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'RIM_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'HMS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'ACC_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'CMEL_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'WETG_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'DRYG_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'WETH_'
-  IPROC=  IPROC+1
-ELSE
-  YWORK2(NBUDGET_RS, IPROC) = 'SEDI_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'DEPS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'AGGS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'AUTS_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'RIM_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'ACC_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'CMEL_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'WETG_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'DRYG_'
-  IPROC=  IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'DRYH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'CORR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RS, IPROC) = 'SEDI_'
-END IF
-!
+  IF( HCLOUD /= 'NONE' ) IPROACTV(NBUDGET_RS, IPROC) = NNEGARS
+
+  IF (HCLOUD=='LIMA') THEN
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'CORR_'
+    IF (OPTSPLIT .AND. OCOLD .AND. OSNOW)              IPROACTV(NBUDGET_RS, IPROC) = NCORRRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'SEDI_'
+    IF (OCOLD .AND. OSNOW)                             IPROACTV(NBUDGET_RS, IPROC) = NSEDIRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'CNVI_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NCNVIRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'DEPS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NDEPSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'CNVS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NCNVSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'AGGS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW))             IPROACTV(NBUDGET_RS, IPROC) = NAGGSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'RIM_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NRIMRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'HMS_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NHMSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'ACC_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW .AND. ORAIN)) IPROACTV(NBUDGET_RS, IPROC) = NACCRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'CMEL_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NCMELRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'WETG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NWETGRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'DRYG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(NBUDGET_RS, IPROC) = NDRYGRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                     IPROACTV(NBUDGET_RS, IPROC) = NWETHRS
+  ELSE
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'SEDI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RS, IPROC) = NSEDIRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'DEPS_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NDEPSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'AGGS_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NAGGSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'AUTS_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NAUTSRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'RIM_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NRIMRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'ACC_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NACCRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'CMEL_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NCMELRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'WETG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NWETGRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'DRYG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RS, IPROC) = NDRYGRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'WETH_'
+    IF( HCLOUD == 'ICE4') IPROACTV(NBUDGET_RS, IPROC) = NWETHRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'DRYH_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RS, IPROC) = NDRYHRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'CORR_'
+    IF( HCLOUD(1:3) == 'ICE' .AND. LRED) IPROACTV(NBUDGET_RS, IPROC) = NCORRRS
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RS, IPROC) = 'SEDI_'
+    IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
+       (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RS, IPROC) = NSEDIRS
+  END IF
+
   YEND_COMMENT(NBUDGET_RS) = 'BU_RRS'
   NBUPROCNBR(NBUDGET_RS) = 3
 !
@@ -2220,179 +2180,176 @@ END IF
     CBUCOMMENT(NBUDGET_RS, JJ) = ADJUSTL( ADJUSTR( YWORK2(NBUDGET_RS, JJ) ) // &
                                  ADJUSTL( YEND_COMMENT(NBUDGET_RS) ) )
   END DO
-!
-END IF
-!
-!                        Budget of RRG
-IF (LBU_RRG) THEN
-  IPROC=4
-  IPROACTV(NBUDGET_RG, IPROC) = NASSERG
-  IPROC=IPROC+1
-  IF( NMODEL>1 ) IPROACTV(NBUDGET_RG, IPROC) = NNESTRG
-  IPROC=IPROC+1
-  IF( LFORCING ) IPROACTV(NBUDGET_RG, IPROC)  = NFRCRG
-  IPROC=IPROC+1
-  IF( ONUMDIFTH ) IPROACTV(NBUDGET_RG, IPROC) = NDIFRG
-  IPROC=IPROC+1
-  IF ( OHORELAX_RG ) THEN
-    IPROACTV(NBUDGET_RG, IPROC) = NRELRG
-  ELSE
-    IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
-     OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR.   &
-     OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN
-      IPROACTV(NBUDGET_RG, IPROC) = 4
-    ELSE
-      IPROACTV(NBUDGET_RG, IPROC) = 3
-    END IF
-  END IF
-  IPROC=IPROC+1
-  IPROACTV(NBUDGET_RG, IPROC) = NADVRG
-  IPROC=IPROC+1
-  IF( HCLOUD /= 'NONE'  ) IPROACTV(NBUDGET_RG, IPROC) = NNEGARG
-  IPROC=IPROC+1
-IF (HCLOUD=='LIMA') THEN
-     IF (OCOLD .AND. OSNOW)                                         IPROACTV(NBUDGET_RG, IPROC) = NSEDIRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL .AND. ORAIN)) IPROACTV(NBUDGET_RG, IPROC) = NHONRRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NDEPGRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NRIMRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ORAIN .AND. OSNOW)) IPROACTV(NBUDGET_RG, IPROC) = NACCRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NCMELRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NCFRZRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NWETGRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NDRYGRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NHMGRG
-     IPROC=IPROC+1
-     IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NGMLTRG
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                                 IPROACTV(NBUDGET_RG, IPROC) = NWETHRG
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT .AND. OHAIL)                                 IPROACTV(NBUDGET_RG, IPROC) = NCOHGRG
-     IPROC=IPROC+1
-ELSE
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
-          IPROACTV(NBUDGET_RG, IPROC) = NSEDIRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NSFRRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NDEPGRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NRIMRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NACCRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NCMELRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NCFRZRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NWETGRG
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RG, IPROC) = NGHCVRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NDRYGRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NGMLTRG
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. .NOT. LRED ) IPROACTV(NBUDGET_RG, IPROC) = NWETHRG
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED ) IPROACTV(NBUDGET_RG, IPROC) = NHGCVRG
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4'  .AND. LRED) IPROACTV(NBUDGET_RG, IPROC) = NDRYHRG
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE'  .AND. LRED) IPROACTV(NBUDGET_RG, IPROC) = NCORRRG
-  IPROC=IPROC+1
-  IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
-          IPROACTV(NBUDGET_RG, IPROC) = NSEDIRG
-  IPROC=IPROC+1
+!
 END IF
 !
+!                        Budget of RRG
+IF (LBU_RRG) THEN
   YWORK2(NBUDGET_RG, 1) = 'INIF_'
+
   YWORK2(NBUDGET_RG, 2) = 'ENDF_'
+
   YWORK2(NBUDGET_RG, 3) = 'AVEF_'
+
   IPROC=4
   YWORK2(NBUDGET_RG, IPROC) = 'ASSE_'
+  IPROACTV(NBUDGET_RG, IPROC) = NASSERG
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_RG, IPROC) = 'NEST_'
+  IF( NMODEL>1 ) IPROACTV(NBUDGET_RG, IPROC) = NNESTRG
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_RG, IPROC) = 'FRC_'
+  IF( LFORCING ) IPROACTV(NBUDGET_RG, IPROC)  = NFRCRG
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_RG, IPROC) = 'DIF_'
+  IF( ONUMDIFTH ) IPROACTV(NBUDGET_RG, IPROC) = NDIFRG
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_RG, IPROC) = 'REL_'
+  IF ( OHORELAX_RG ) THEN
+    IPROACTV(NBUDGET_RG, IPROC) = NRELRG
+  ELSE
+    IF(OVE_RELAX .OR. OHORELAX_UVWTH .OR. OHORELAX_RV .OR.                 &
+     OHORELAX_RC .OR. OHORELAX_RR .OR. OHORELAX_RI .OR. OHORELAX_RS .OR.   &
+     OHORELAX_RG .OR. OHORELAX_RH .OR. OHORELAX_TKE .OR. ANY(OHORELAX_SV)) THEN
+      IPROACTV(NBUDGET_RG, IPROC) = 4
+    ELSE
+      IPROACTV(NBUDGET_RG, IPROC) = 3
+    END IF
+  END IF
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_RG, IPROC) = 'ADV_'
+  IPROACTV(NBUDGET_RG, IPROC) = NADVRG
+
   IPROC=IPROC+1
   YWORK2(NBUDGET_RG, IPROC) = 'NEGA_'
-  IPROC=IPROC+1
-IF (HCLOUD=='LIMA') THEN
-  YWORK2(NBUDGET_RG, IPROC) = 'SEDI_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'HONR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'DEPG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'RIM_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'ACC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'CMEL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'CFRZ_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'DRYG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'HMG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'GMLT_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'COHG_'
-ELSE
-  YWORK2(NBUDGET_RG, IPROC) = 'SEDI_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC)= 'SFR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'DEPG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'RIM_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'ACC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'CMEL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'CFRZ_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'GHCV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'DRYG_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'GMLT_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'HGCV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'DRYH_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC) = 'CORR_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RG, IPROC)= 'SEDI_'
-END IF
-!
+  IF( HCLOUD /= 'NONE'  ) IPROACTV(NBUDGET_RG, IPROC) = NNEGARG
+
+  IF (HCLOUD=='LIMA') THEN
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'SEDI_'
+    IF (OCOLD .AND. OSNOW)                                         IPROACTV(NBUDGET_RG, IPROC) = NSEDIRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'HONR_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ONUCL .AND. ORAIN)) IPROACTV(NBUDGET_RG, IPROC) = NHONRRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'DEPG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NDEPGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'RIM_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NRIMRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'ACC_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. ORAIN .AND. OSNOW)) IPROACTV(NBUDGET_RG, IPROC) = NACCRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'CMEL_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NCMELRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'CFRZ_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NCFRZRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'WETG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NWETGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'DRYG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NDRYGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'HMG_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NHMGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'GMLT_'
+    IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW))             IPROACTV(NBUDGET_RG, IPROC) = NGMLTRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                                 IPROACTV(NBUDGET_RG, IPROC) = NWETHRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'COHG_'
+    IF (.NOT.OPTSPLIT .AND. OHAIL)                                 IPROACTV(NBUDGET_RG, IPROC) = NCOHGRG
+  ELSE
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'SEDI_'
+    IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RG, IPROC) = NSEDIRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC)= 'SFR_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NSFRRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'DEPG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NDEPGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'RIM_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NRIMRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'ACC_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NACCRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'CMEL_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NCMELRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'CFRZ_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NCFRZRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'WETG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NWETGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'GHCV_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RG, IPROC) = NGHCVRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'DRYG_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NDRYGRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'GMLT_'
+    IF( HCLOUD(1:3) == 'ICE') IPROACTV(NBUDGET_RG, IPROC) = NGMLTRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'WETH_'
+    IF( HCLOUD == 'ICE4' .AND. .NOT. LRED ) IPROACTV(NBUDGET_RG, IPROC) = NWETHRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'HGCV_'
+    IF( HCLOUD == 'ICE4' .AND. LRED ) IPROACTV(NBUDGET_RG, IPROC) = NHGCVRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'DRYH_'
+    IF( HCLOUD == 'ICE4'  .AND. LRED) IPROACTV(NBUDGET_RG, IPROC) = NDRYHRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'CORR_'
+    IF( HCLOUD(1:3) == 'ICE'  .AND. LRED) IPROACTV(NBUDGET_RG, IPROC) = NCORRRG
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RG, IPROC) = 'SEDI_'
+    IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
+       (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RG, IPROC) = NSEDIRG
+  END IF
+
   YEND_COMMENT(NBUDGET_RG) = 'BU_RRG'
   NBUPROCNBR(NBUDGET_RG) = 3
 !
@@ -2409,27 +2366,42 @@ END IF
 !
 !                        Budget of RRH
 IF (LBU_RRH) THEN
+  YWORK2(NBUDGET_RH, 1) = 'INIF_'
+
+  YWORK2(NBUDGET_RH, 2) = 'ENDF_'
+
+  YWORK2(NBUDGET_RH, 3) = 'AVEF_'
+
   IPROC=4
+  YWORK2(NBUDGET_RH, IPROC) = 'ASSE_'
   IPROACTV(NBUDGET_RH, IPROC) = NASSERH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RH, IPROC) = 'NEST_'
   IF( NMODEL>1 ) THEN
     IPROACTV(NBUDGET_RH, IPROC) = NNESTRH
   ELSE
     IPROACTV(NBUDGET_RH, IPROC) = 3
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RH, IPROC) = 'FRC_'
    IF( LFORCING ) THEN
     IPROACTV(NBUDGET_RH, IPROC)  = NFRCRH
   ELSE
     IPROACTV(NBUDGET_RH, IPROC)  = 3
-  END IF 
+  END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RH, IPROC) = 'DIF_'
   IF( ONUMDIFTH ) THEN
     IPROACTV(NBUDGET_RH, IPROC) = NDIFRH
   ELSE
     IPROACTV(NBUDGET_RH, IPROC) = 3
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RH, IPROC) = 'REL_'
   IF ( OHORELAX_RH ) THEN
     IPROACTV(NBUDGET_RH, IPROC) = NRELRH
   ELSE
@@ -2441,98 +2413,79 @@ IF (LBU_RRH) THEN
       IPROACTV(NBUDGET_RH, IPROC) = 3
     END IF
   END IF
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RH, IPROC) = 'ADV_'
   IPROACTV(NBUDGET_RH, IPROC) = NADVRH
+
   IPROC=IPROC+1
+  YWORK2(NBUDGET_RH, IPROC) = 'NEGA_'
   IF( HCLOUD /= 'NONE' ) THEN
     IPROACTV(NBUDGET_RH, IPROC) = NNEGARH
   ELSE
     IPROACTV(NBUDGET_RH, IPROC) = 3
   END IF
-  IPROC=IPROC+1
-!
-  IF (HCLOUD=='LIMA' .AND. OHAIL) THEN
-     IPROACTV(NBUDGET_RH, IPROC) = NSEDIRH
-     IPROC=IPROC+1
-     IPROACTV(NBUDGET_RH, IPROC) = NWETGRH
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) IPROACTV(NBUDGET_RH, IPROC) = NWETHRH
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) IPROACTV(NBUDGET_RH, IPROC) = NCOHGRH
-     IPROC=IPROC+1
-     IF (.NOT.OPTSPLIT) IPROACTV(NBUDGET_RH, IPROC) = NHMLTRH
-  ELSE
-  IF( HCLOUD == 'ICE4' .AND. LRED .AND. .NOT. LSEDIM_AFTER) &
-          IPROACTV(NBUDGET_RH, IPROC) = NSEDIRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NGHCVRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. .NOT. LRED) IPROACTV(NBUDGET_RH, IPROC) = NWETGRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(NBUDGET_RH, IPROC) = NWETHRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NHGCVRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NDRYHRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' ) IPROACTV(NBUDGET_RH, IPROC) = NHMLTRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NCORRRH
-  IPROC=IPROC+1
-  IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
-     (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
-          IPROACTV(NBUDGET_RH, IPROC) = NSEDIRH
-  END IF
 !
-  YWORK2(NBUDGET_RH, 1) = 'INIF_'
-  YWORK2(NBUDGET_RH, 2) = 'ENDF_'
-  YWORK2(NBUDGET_RH, 3) = 'AVEF_'
-  IPROC=4
-  YWORK2(NBUDGET_RH, IPROC) = 'ASSE_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RH, IPROC) = 'NEST_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RH, IPROC) = 'FRC_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RH, IPROC) = 'DIF_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RH, IPROC) = 'REL_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RH, IPROC) = 'ADV_'
-  IPROC=IPROC+1
-  YWORK2(NBUDGET_RH, IPROC) = 'NEGA_'
-  IPROC=IPROC+1
   IF (HCLOUD=='LIMA' .AND. OHAIL) THEN
-     YWORK2(NBUDGET_RH, IPROC) = 'SEDI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'WETG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'WETH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'COHG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'HMLT_'
-     IPROC=IPROC+1
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'SEDI_'
+    IPROACTV(NBUDGET_RH, IPROC) = NSEDIRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'WETG_'
+    IPROACTV(NBUDGET_RH, IPROC) = NWETGRH
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'WETH_'
+    IF (.NOT.OPTSPLIT) IPROACTV(NBUDGET_RH, IPROC) = NWETHRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'COHG_'
+    IF (.NOT.OPTSPLIT) IPROACTV(NBUDGET_RH, IPROC) = NCOHGRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'HMLT_'
+    IF (.NOT.OPTSPLIT) IPROACTV(NBUDGET_RH, IPROC) = NHMLTRH
   ELSE
-     YWORK2(NBUDGET_RH, IPROC) = 'SEDI_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'GHCV_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'WETG_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'WETH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'HGCV_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'DRYH_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'HMLT_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'CORR_'
-     IPROC=IPROC+1
-     YWORK2(NBUDGET_RH, IPROC) = 'SEDI_'
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'SEDI_'
+    IF( HCLOUD == 'ICE4' .AND. LRED .AND. .NOT. LSEDIM_AFTER) &
+            IPROACTV(NBUDGET_RH, IPROC) = NSEDIRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'GHCV_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NGHCVRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'WETG_'
+    IF( HCLOUD == 'ICE4' .AND. .NOT. LRED) IPROACTV(NBUDGET_RH, IPROC) = NWETGRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'WETH_'
+    IF( HCLOUD == 'ICE4') IPROACTV(NBUDGET_RH, IPROC) = NWETHRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'HGCV_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NHGCVRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'DRYH_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NDRYHRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'HMLT_'
+    IF( HCLOUD == 'ICE4' ) IPROACTV(NBUDGET_RH, IPROC) = NHMLTRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'CORR_'
+    IF( HCLOUD == 'ICE4' .AND. LRED) IPROACTV(NBUDGET_RH, IPROC) = NCORRRH
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_RH, IPROC) = 'SEDI_'
+    IF ((HCLOUD(1:3) == 'ICE' .AND. .NOT. LRED).OR. &
+       (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. LSEDIM_AFTER)) &
+            IPROACTV(NBUDGET_RH, IPROC) = NSEDIRH
   END IF
-!
+
   YEND_COMMENT(NBUDGET_RH) = 'BU_RRH'
   NBUPROCNBR(NBUDGET_RH) = 3
 !
@@ -2552,15 +2505,30 @@ END IF
 IF (LBU_RSV) THEN
   IBUPROCNBR_SV_MAX = 0 ! initialize the Max nunmber of processes for the SVs
   DO JSV = 1,KSV
+    YWORK2(NBUDGET_SV1 - 1 + JSV, 1) = 'INIF_'
+
+    YWORK2(NBUDGET_SV1 - 1 + JSV, 2) = 'ENDF_'
+
+    YWORK2(NBUDGET_SV1 - 1 + JSV, 3) = 'AVEF_'
+
     IPROC=4
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'ASSE_'
     IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NASSESV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'NEST_'
     IF( NMODEL>1 ) IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NNESTSV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'FRC_'
     IF( LFORCING ) IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC)  = NFRCSV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'DIF_'
     IF ( ONUMDIFSV ) IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NDIFSV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'REL_'
     IF ( OHORELAX_SV(JSV) ) THEN
       IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NRELSV
     ELSE
@@ -2572,15 +2540,23 @@ IF (LBU_RSV) THEN
         IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = 3
       END IF
     END IF
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'DCONV_'
     IF ( (HDCONV /= 'NONE' .OR. HSCONV == 'KAFR') .AND. OCHTRANS ) &
         IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NDCONVSV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'DEPOTR'
     IF ( ODRAGTREE .AND. ODEPOTREE  ) &
         IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NDEPOTRSV
-    IPROC=IPROC+1    
+
+    IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'VTURB_'
     IF ( HTURB /= 'NONE' ) IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NVTURBSV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'HTURB_'
     IF ( HTURB /= 'NONE' .AND. HTURBDIM == '3DIM' ) THEN
       IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = NHTURBSV
     ELSE
@@ -2589,41 +2565,20 @@ IF (LBU_RSV) THEN
       ELSE
         IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC) = 3
       END IF
-    END IF 
+    END IF
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'MAFL_'
     IF ( HSCONV == 'EDKF' ) IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC)= NMAFLSV
+
     IPROC=IPROC+1
+    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'ADV_'
     IPROACTV(NBUDGET_SV1 - 1 + JSV, IPROC)= NADVSV
-    IPROC=IPROC+1
 !
-    YWORK2(NBUDGET_SV1 - 1 + JSV, 1) = 'INIF_'
-    YWORK2(NBUDGET_SV1 - 1 + JSV, 2) = 'ENDF_'
-    YWORK2(NBUDGET_SV1 - 1 + JSV, 3) = 'AVEF_'
-    IPROC=4
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'ASSE_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'NEST_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'FRC_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'DIF_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'REL_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'DCONV_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'DEPOTR'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'VTURB_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'HTURB_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'MAFL_'
-    IPROC=IPROC+1
-    YWORK2(NBUDGET_SV1 - 1 + JSV, IPROC) = 'ADV_'
 !
 ! complete with the budget of other processes
 !
+    IPROC=IPROC+1
     ILAST_PROC_NBR = IPROC
     CALL BUDGET_OTHERPROC_SV
 !
-- 
GitLab