diff --git a/Src/GroupTree/FGroupTaskAlgorithm.hpp b/Src/GroupTree/FGroupTaskAlgorithm.hpp
index f79082ef476b0f4f9dd1ae94782bb421ce3ceeec..8cf10780717dd1998c81ed9ef644d4f2d6e0dce0 100644
--- a/Src/GroupTree/FGroupTaskAlgorithm.hpp
+++ b/Src/GroupTree/FGroupTaskAlgorithm.hpp
@@ -197,8 +197,10 @@ protected:
 
     void transferPass(){
         FLOG( FTic timer; );
+        FLOG( FTic timerInBlock; FTic timerSort; FTic timerOutBlock; );
         for(int idxLevel = tree->getHeight()-1 ; idxLevel >= 2 ; --idxLevel){
             std::list<std::vector<OutOfBlockInteraction> > allOutsideInteractions;
+            FLOG( timerInBlock.tic() );
             {
                 typename std::list<CellContainerClass*>::iterator iterCells = tree->cellsBegin(idxLevel);
                 const typename std::list<CellContainerClass*>::iterator endCells = tree->cellsEnd(idxLevel);
@@ -255,6 +257,8 @@ protected:
                 }
                 #pragma omp taskwait
             }
+            FLOG( timerInBlock.tac() );
+            FLOG( timerSort.tic() );
             {
                 typename std::list<CellContainerClass*>::iterator iterCells = tree->cellsBegin(idxLevel);
                 const typename std::list<CellContainerClass*>::iterator endCells = tree->cellsEnd(idxLevel);
@@ -274,6 +278,8 @@ protected:
 
 #pragma omp taskwait
             }
+            FLOG( timerSort.tac() );
+            FLOG( timerOutBlock.tic() );
             {
                 typename std::list<CellContainerClass*>::iterator iterCells = tree->cellsBegin(idxLevel);
                 const typename std::list<CellContainerClass*>::iterator endCells = tree->cellsEnd(idxLevel);
@@ -335,9 +341,12 @@ protected:
                     ++iterInteractions;
                 }
             }
-
+            FLOG( timerOutBlock.tac() );
         }
         FLOG( FLog::Controller << "\t\t transferPass in " << timer.tacAndElapsed() << "s\n" );
+        FLOG( FLog::Controller << "\t\t\t inblock in " << timerInBlock.tacAndElapsed() << "s\n" );
+        FLOG( FLog::Controller << "\t\t\t sort in " << timerSort.tacAndElapsed() << "s\n" );
+        FLOG( FLog::Controller << "\t\t\t outblock in " << timerOutBlock.tacAndElapsed() << "s\n" );
     }
 
     void downardPass(){
@@ -414,8 +423,10 @@ protected:
 
     void directPass(){
         FLOG( FTic timer; );
+        FLOG( FTic timerInBlock; FTic timerSort; FTic timerOutBlock; );
 
         typename std::list< std::vector<OutOfBlockInteraction> > allOutsideInteractions;
+        FLOG( timerInBlock.tic() );
         {
             typename std::list<ParticleGroupClass*>::iterator iterParticles = tree->leavesBegin();
             const typename std::list<ParticleGroupClass*>::iterator endParticles = tree->leavesEnd();
@@ -470,6 +481,8 @@ protected:
             }
 #pragma omp taskwait
         }
+        FLOG( timerInBlock.tac() );
+        FLOG( timerSort.tic() );
         {
             typename std::list<ParticleGroupClass*>::iterator iterParticles = tree->leavesBegin();
             const typename std::list<ParticleGroupClass*>::iterator endParticles = tree->leavesEnd();
@@ -489,6 +502,8 @@ protected:
 
 #pragma omp taskwait
         }
+        FLOG( timerSort.tac() );
+        FLOG( timerOutBlock.tic() );
         {
             typename std::list<ParticleGroupClass*>::iterator iterParticles = tree->leavesBegin();
             const typename std::list<ParticleGroupClass*>::iterator endParticles = tree->leavesEnd();
@@ -546,7 +561,12 @@ protected:
                 ++iterInteractions;
             }
         }
+        FLOG( timerOutBlock.tac() );
+
         FLOG( FLog::Controller << "\t\t directPass in " << timer.tacAndElapsed() << "s\n" );
+        FLOG( FLog::Controller << "\t\t\t inblock in " << timerInBlock.tacAndElapsed() << "s\n" );
+        FLOG( FLog::Controller << "\t\t\t sort in " << timerSort.tacAndElapsed() << "s\n" );
+        FLOG( FLog::Controller << "\t\t\t outblock in " << timerOutBlock.tacAndElapsed() << "s\n" );
     }
 
     void mergePass(){