Index: trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/physiq_mod.F	(revision 4150)
+++ trunk/LMDZ.MARS/libf/phymars/physiq_mod.F	(revision 4151)
@@ -98,4 +98,9 @@
       use nonoro_gwd_ran_mod, only: nonoro_gwd_ran
       use nonoro_gwd_mix_mod, only: nonoro_gwd_mix, calljliu_gwimix
+      use tracer_mass_fixer_dyn_mod, only: call_mass_fixer_dyn,
+     &                                   mass_predyn,
+     &                                   tracer_mass_fixer_dyn, 
+     &                                   compute_tracer_mass_global,
+     &                                   set_mass_predyn_from_startfi
       use check_fields_mod, only: check_physics_fields
       use surfini_mod, only: surfini
@@ -584,4 +589,8 @@
       REAL :: viscoh                              ! kinematic molecular viscosity for heat
 
+! Variables for correcting tracer mass non-conservation in dynamics
+      real pdq_corrdyn(ngrid, nlayer, nq) ! tracer mass mixing ratio tendencies in order to correct
+                                          ! mass non-conservations in dynamics
+
 c=======================================================================
       pdq(:,:,:) = 0.
@@ -878,4 +887,16 @@
       zplay(:,:) = pplay(:,:)
       ps(:) = pplev(:,1)
+
+! Correct mass non-conservation in dynamics
+! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      if (call_mass_fixer_dyn) then
+         if (firstcall) then
+            call set_mass_predyn_from_startfi
+         endif ! if (firstcall)
+
+         call tracer_mass_fixer_dyn(ngrid, nlayer, nq, ptimestep, 
+     &                              pq, zplev, firstcall, pdq_corrdyn)
+         pdq = pdq + pdq_corrdyn
+      endif ! if (call_mass_fixer_dyn)
 
 !#ifndef MESOSCALE
@@ -2568,4 +2589,9 @@
         ENDDO
       ENDDO
+
+      if (call_mass_fixer_dyn) then      
+          call compute_tracer_mass_global(ngrid, nlayer, nq, zq, 
+     &                                    zplev, mass_predyn)
+      end if
 
       ! Density
