diff --git a/src/main.cpp b/src/main.cpp
index b6afd5ddbe18c22a0f65d2ab7d5ff822db454d1d..e2781da1d09b26ebb2d7b51194036b5841b65ab5 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -148,6 +148,7 @@ int main(int argc, char *argv[])
     double t=0.;
 
     int itermax=std::numeric_limits<int>::max();
+    //int itermax = 500;
     int iteration=0;
 
     Kokkos::View<double*> rhoj = unknowns.rhoj();
@@ -339,7 +340,8 @@ int main(int argc, char *argv[])
       // NAVIER-STOKES SANS SPLITTING
       
       double dt = 0.1*acoustic_solver.acoustic_dt(Vj, cj); // pour le cas xi = 0
-      double dt_diff = 0.9*finite_volumes_diffusion.diffusion_dt(rhoj, kj,nuj, cj, nuL, nuR, kL,kR);
+      //double dt_diff = 0.9*finite_volumes_diffusion.diffusion_dt(rhoj, kj,nuj, cj, nuL, nuR, kL,kR);
+      double dt_diff = 0.1*no_splitting.nosplitting_dt(Vj,cj,rhoj,kj);
       if (dt_diff < dt) {
 	dt = dt_diff;
       }
diff --git a/src/scheme/NoSplitting.hpp b/src/scheme/NoSplitting.hpp
index cacf6f5f6e76630716f16654899ba4ed3ae14b8b..25345194e8909ed656c1a0f3ef311b72dc570ef8 100644
--- a/src/scheme/NoSplitting.hpp
+++ b/src/scheme/NoSplitting.hpp
@@ -73,12 +73,14 @@ private:
 
   KOKKOS_INLINE_FUNCTION
   const Kokkos::View<const double*>
-  computeRhoCj(const Kokkos::View<const double*>& rhoj,
+  computeRhoCj(const Kokkos::View<const double*>& kj,
+	       const Kokkos::View<const double*>& Vj,
+	       const Kokkos::View<const double*>& rhoj,
 	       const Kokkos::View<const double*>& cj)
   {
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
-	m_rhocj[j] = rhoj[j]*cj[j];
-	//m_rhocj[j] = 1.;
+	//m_rhocj[j] = rhoj[j]*cj[j];
+	m_rhocj[j] = rhoj[j]*cj[j] + kj[j]/Vj[j];
       });
     return m_rhocj;
   }
@@ -221,13 +223,14 @@ private:
   void computeExplicitFluxes(const Kokkos::View<const Rd*>& xr,
 			     const Kokkos::View<const Rd*>& xj,
 			     const Kokkos::View<const double*>& rhoj,
+			     const Kokkos::View<const double*>& kj,
 			     const Kokkos::View<const Rd*>& uj,
 			     const Kokkos::View<const double*>& pj,
 			     const Kokkos::View<const double*>& cj,
 			     const Kokkos::View<const double*>& Vj,
 			     const Kokkos::View<const Rd**>& Cjr,
 			     const double& t) {
-    const Kokkos::View<const double*> rhocj  = computeRhoCj(rhoj, cj);
+    const Kokkos::View<const double*> rhocj  = computeRhoCj(kj, Vj, rhoj, cj);
     const Kokkos::View<const Rdd**> Ajr = computeAjr(rhocj, Cjr);
 
     const Kokkos::View<const Rdd*> Ar = computeAr(Ajr);
@@ -265,6 +268,24 @@ public:
   {
     ;
   }
+  
+  // Calcule une evaluation du pas de temps verifiant une CFL du type
+  // c*dt/dx<1 (c modifie)
+  KOKKOS_INLINE_FUNCTION
+  double nosplitting_dt(const Kokkos::View<const double*>& Vj,
+			const Kokkos::View<const double*>& cj,
+			const Kokkos::View<const double*>& rhoj,
+			const Kokkos::View<const double*>& kj) const {
+    Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
+	m_Vj_over_cj[j] = Vj[j]/(cj[j]+kj[j]/(rhoj[j]*Vj[j]));
+      });
+
+    double dt = std::numeric_limits<double>::max();
+    Kokkos::parallel_reduce(m_mesh.numberOfCells(), ReduceMin(m_Vj_over_cj), dt);
+
+    return dt;
+  }
+  
 
   // Avance la valeur des inconnues pendant un pas de temps dt
   void computeNextStep(const double& t, const double& dt,
@@ -370,7 +391,7 @@ public:
     } 
     
     // Calcul de PT (3eme essai, avec uR du solveur de Riemann)
-    computeExplicitFluxes(xr, xj, rhoj, uj, pj, cj, Vj, Cjr, t);
+    computeExplicitFluxes(xr, xj, rhoj, kj, uj, pj, cj, Vj, Cjr, t);
     
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
 	
@@ -397,7 +418,7 @@ public:
     
 
     // Calcule les flux
-    computeExplicitFluxes(xr, xj, rhoj, uj, PTj, cj, Vj, Cjr, t);
+    computeExplicitFluxes(xr, xj, rhoj, kj, uj, PTj, cj, Vj, Cjr, t);
 
     // Mise a jour de la vitesse et de l'energie totale specifique
     const Kokkos::View<const double*> inv_mj = unknowns.invMj();
@@ -460,15 +481,6 @@ public:
       });
     */
 
-    /*
-    // gnuplot output for vitesse riemann
-    std::ofstream fout("ur_no_split");
-    fout.precision(15);
-    for (size_t j=0; j<m_mesh.numberOfNodes(); ++j) {
-      fout << xr[j][0] << ' ' << ur[j][0] << '\n'; 
-    } 
-    */
-
   }
 };