diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90
index 6c73943bfd83474e00a5449bbb87f497dcdb00ea..92f38a9201931c77dbcc10833f6e25e84285d80f 100644
--- a/src/MNH/write_budget.f90
+++ b/src/MNH/write_budget.f90
@@ -308,22 +308,22 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv )
   !* RU budgets
   !
     IF (LBU_RU) THEN
-      call Store_one_budget_rho( tpdiafile, tzdates, tbudgets(NBUDGET_U)%trhodj,   NBUDGET_U, gnocompress, zrhodjn )
-      call Store_one_budget    ( tpdiafile, tzdates, tbudgets(NBUDGET_U), zrhodjn,            gnocompress, ptstep  )
+      call Store_one_budget_rho( tpdiafile, tzdates, tbudgets(NBUDGET_U)%trhodj,   gnocompress, zrhodjn )
+      call Store_one_budget    ( tpdiafile, tzdates, tbudgets(NBUDGET_U), zrhodjn, gnocompress, ptstep  )
     END IF
   !
   !* RV budgets
   !
     IF (LBU_RV) THEN
-      call Store_one_budget_rho( tpdiafile, tzdates, tbudgets(NBUDGET_V)%trhodj,   NBUDGET_V, gnocompress, zrhodjn )
-      call Store_one_budget    ( tpdiafile, tzdates, tbudgets(NBUDGET_V), zrhodjn,            gnocompress, ptstep  )
+      call Store_one_budget_rho( tpdiafile, tzdates, tbudgets(NBUDGET_V)%trhodj,   gnocompress, zrhodjn )
+      call Store_one_budget    ( tpdiafile, tzdates, tbudgets(NBUDGET_V), zrhodjn, gnocompress, ptstep  )
     END IF
   !
   !* RW budgets
   !
     IF (LBU_RW) THEN
-      call Store_one_budget_rho( tpdiafile, tzdates, tbudgets(NBUDGET_W)%trhodj,   NBUDGET_W, gnocompress, zrhodjn )
-      call Store_one_budget    ( tpdiafile, tzdates, tbudgets(NBUDGET_W), zrhodjn,            gnocompress, ptstep  )
+      call Store_one_budget_rho( tpdiafile, tzdates, tbudgets(NBUDGET_W)%trhodj,   gnocompress, zrhodjn )
+      call Store_one_budget    ( tpdiafile, tzdates, tbudgets(NBUDGET_W), zrhodjn, gnocompress, ptstep  )
     END IF
   !
   !* RHODJ storage for Scalars
@@ -331,7 +331,7 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv )
     IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. &
         LBU_RRI .OR. LBU_RRS  .OR. LBU_RRG .OR. LBU_RRH .OR. LBU_RSV      ) THEN
       if ( .not. associated( tburhodj ) ) call Print_msg( NVERB_FATAL, 'BUD', 'Write_budget', 'tburhodj not associated' )
-      call Store_one_budget_rho( tpdiafile, tzdates, tburhodj, NBUDGET_RHO, gnocompress, zrhodjn )
+      call Store_one_budget_rho( tpdiafile, tzdates, tburhodj, gnocompress, zrhodjn )
     ENDIF
   !
   !* RTH budget
@@ -400,14 +400,13 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv )
 end subroutine Write_budget
 
 
-subroutine Store_one_budget_rho( tpdiafile, tpdates, tprhodj, kp, knocompress, prhodjn )
+subroutine Store_one_budget_rho( tpdiafile, tpdates, tprhodj, knocompress, prhodjn )
   use modd_budget,            only: cbutype,                                                      &
                                     lbu_icp, lbu_jcp, lbu_kcp,                                    &
                                     nbuil, nbuih, nbujl, nbujh, nbukl, nbukh,                     &
                                     nbuimax, nbuimax_ll, nbujmax, nbujmax_ll, nbukmax, nbutshift, &
                                     nbumask, nbusubwrite,                                         &
-                                    tbudiachrometadata, tburhodata,                               &
-                                    NBUDGET_RHO, NBUDGET_U, NBUDGET_V, NBUDGET_W
+                                    tbudiachrometadata, tburhodata
   use modd_field,             only: NMNHDIM_BUDGET_CART_NI,    NMNHDIM_BUDGET_CART_NJ,   NMNHDIM_BUDGET_CART_NI_U, &
                                     NMNHDIM_BUDGET_CART_NJ_U,  NMNHDIM_BUDGET_CART_NI_V, NMNHDIM_BUDGET_CART_NJ_V, &
                                     NMNHDIM_BUDGET_CART_LEVEL, NMNHDIM_BUDGET_CART_LEVEL_W,                        &
@@ -430,12 +429,10 @@ subroutine Store_one_budget_rho( tpdiafile, tpdates, tprhodj, kp, knocompress, p
   type(tfiledata),                                      intent(in)  :: tpdiafile   ! file to write
   type(date_time), dimension(:),                        intent(in)  :: tpdates
   type(tburhodata),                                     intent(in)  :: tprhodj     ! rhodj datastructure
-  integer,                                              intent(in)  :: kp          ! reference number of budget
   logical,                                              intent(in)  :: knocompress ! compression for the cart option
   real,            dimension(:,:,:,:,:,:), allocatable, intent(out) :: prhodjn
 
   character(len=4)              :: ybutype
-  character(len=:), allocatable :: ygroup_name
   type(tbudiachrometadata)      :: tzbudiachro
   type(tburhodata)              :: tzfield
 
@@ -468,23 +465,6 @@ subroutine Store_one_budget_rho( tpdiafile, tpdates, tprhodj, kp, knocompress, p
       call Print_msg( NVERB_ERROR, 'BUD', 'Store_one_budget_rho', 'unknown CBUTYPE' )
   end select
 
-  select case( kp )
-    case( NBUDGET_RHO )
-      ygroup_name = 'RJS'
-
-    case( NBUDGET_U )
-      ygroup_name = 'RJX'
-
-    case( NBUDGET_V )
-      ygroup_name = 'RJY'
-
-    case( NBUDGET_W )
-      ygroup_name = 'RJZ'
-
-    case default
-      call Print_msg( NVERB_ERROR, 'BUD', 'Store_one_budget_rho', 'unknown budget type' )
-  end select
-
   !Copy all fields from tprhodj
   tzfield = tprhodj
 
@@ -560,7 +540,7 @@ subroutine Store_one_budget_rho( tpdiafile, tpdates, tprhodj, kp, knocompress, p
   tzbudiachro%cname      = tprhodj%cmnhname
   tzbudiachro%ccomment   = tprhodj%ccomment
   tzbudiachro%ccategory  = 'budget'
-  tzbudiachro%cgroupname = ygroup_name
+  tzbudiachro%cgroupname = 'RhodJ'
   if ( ybutype == 'CART' ) then
     tzbudiachro%cshape   = 'cartesian'
     ! tzbudiachro%cmask    = NOT SET (default values)
diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90
index 746440e232a37fe9a1ace5ad2826580789543e0d..c8ecee7cbc1bdf1fb6270a4be6d6d195467182c2 100644
--- a/src/MNH/write_diachro.f90
+++ b/src/MNH/write_diachro.f90
@@ -226,8 +226,7 @@ tzfile%cformat = 'LFI'
 YCOMMENT='NOTHING'
 
 !Set ygroup to preserve backward compatibility of LFI files
-if (      Any( tpbudiachro%cgroupname == [ 'RJS', 'RJX', 'RJY', 'RJZ'] )                                              &
-     .or. Any( tpbudiachro%cgroupname == [ 'UU', 'VV', 'WW', 'TH', 'TK', 'RV', 'RC', 'RR', 'RI', 'RS', 'RG', 'RH' ] ) &
+if (      Any( tpbudiachro%cgroupname == [ 'UU', 'VV', 'WW', 'TH', 'TK', 'RV', 'RC', 'RR', 'RI', 'RS', 'RG', 'RH' ] ) &
      .or.    ( tpbudiachro%cgroupname(1:2) == 'SV' .and. Len_trim( tpbudiachro%cgroupname ) == 5 )                    ) then
   Allocate( character(len=9) :: ygroup )
   ygroup(:) = Trim( tpbudiachro%cgroupname )
@@ -235,6 +234,24 @@ if (      Any( tpbudiachro%cgroupname == [ 'RJS', 'RJX', 'RJY', 'RJZ'] )
     ygroup(ji : ji) = '_'
   end do
   Write( ygroup(6:9), '( i4.4 )' ) nbutshift
+else if ( tpbudiachro%cgroupname == 'RhodJ' ) then
+  Allocate( character(len=9) :: ygroup )
+
+  if ( tpbudiachro%cname == 'RhodJX' ) then
+    ygroup(1:3) = 'RJX'
+  else if ( tpbudiachro%cname == 'RhodJY' ) then
+    ygroup(1:3) = 'RJY'
+  else if ( tpbudiachro%cname == 'RhodJZ' ) then
+    ygroup(1:3) = 'RJZ'
+  else if ( tpbudiachro%cname == 'RhodJS' ) then
+    ygroup(1:3) = 'RJS'
+  else
+    call Print_msg( NVERB_ERROR, 'IO', 'Write_diachro_lfi', &
+                    'unknown variable ' // Trim( tpbudiachro%cname ) // ' for group ' // Trim( tpbudiachro%cgroupname ) )
+  end if
+
+  ygroup(4:5) = '__'
+  Write( ygroup(6:9), '( i4.4 )' ) nbutshift
 else if ( tpbudiachro%nsv > 0 ) then
   Allocate( character(len=9) :: ygroup )
   Write( ygroup, '( "SV", i3.3, i4.4 )' ) tpbudiachro%nsv, nbutshift