From 51f4b99916d3d29d5e76995f24504701c393c7cd Mon Sep 17 00:00:00 2001
From: Florent Taccone <florent.taccone@edf.fr>
Date: Fri, 28 Mar 2025 08:45:31 +0000
Subject: [PATCH] fix for mass balance tracer in fv

---
 NEWS.txt                           | 2 ++
 sources/telemac2d/fv_balance.f     | 7 ++++++-
 sources/telemac2d/telemac2d_init.F | 1 +
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/NEWS.txt b/NEWS.txt
index 5a4f247d10..88c525ed5e 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,5 +1,7 @@
 Latest changes
 ==============
+TELEMAC-2D: Fix mass balance issue with finite volumes and tracer
+
 MASCARET: Fix Bazin's friction Law
 
 KHIONE: Addition of a new formula to compute under ice cover friction
diff --git a/sources/telemac2d/fv_balance.f b/sources/telemac2d/fv_balance.f
index 90efc88193..dc836ad4bd 100644
--- a/sources/telemac2d/fv_balance.f
+++ b/sources/telemac2d/fv_balance.f
@@ -117,7 +117,12 @@
             ENDIF
 !
 !           FINAL BALANCE OF TRACER
-            MASSOU(ITRAC) = MASSOU(ITRAC) + DT*SMTR%ADR(ITRAC)%P%R(I)
+            IF(NCSIZE.GT.1) THEN
+              MASSOU(ITRAC) = MASSOU(ITRAC) + DT*SMTR%ADR(ITRAC)%P%R(I)
+     &                      * MESH%IFAC%I(I)
+            ELSE
+              MASSOU(ITRAC) = MASSOU(ITRAC) + DT*SMTR%ADR(ITRAC)%P%R(I)
+            ENDIF
           ENDDO
 !
           IF(INCLUS(COUPLING,'GAIA').AND.
diff --git a/sources/telemac2d/telemac2d_init.F b/sources/telemac2d/telemac2d_init.F
index f4c49cb669..7015132233 100644
--- a/sources/telemac2d/telemac2d_init.F
+++ b/sources/telemac2d/telemac2d_init.F
@@ -1368,6 +1368,7 @@
             FLUTENT = 0.D0
             IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BILANT1'
             DO ITRAC=1,NTRAC
+            MASSOU(ITRAC) = 0.D0
             CALL BILANT1(H,UCONV,VCONV,HPROP,T3,T4,T5,T6,
      &                   LT,TOTAL_ITER,ENTET,MASKTR,
      &                   T%ADR(ITRAC)%P,TN%ADR(ITRAC)%P,TETAT,
-- 
GitLab