diff --git a/src/fourier_mod.F90 b/src/fourier_mod.F90
index 97d1b846eb93693e74dcd1d942e7fd1e8d7b51ef..3c0484d7031013bf0c510ba1ed7f9b04634f62c8 100644
--- a/src/fourier_mod.F90
+++ b/src/fourier_mod.F90
@@ -76,10 +76,11 @@ MODULE fourier
 
   !!! Compute the poisson bracket of [F,G] to real space
   !   - Compute the convolution using the convolution theorem
-  SUBROUTINE poisson_bracket_and_sum( F_, G_)
+  SUBROUTINE poisson_bracket_and_sum( F_, G_, sum_real_)
     IMPLICIT NONE
     COMPLEX(C_DOUBLE_COMPLEX), DIMENSION(ikys:ikye,ikxs:ikxe),&
-                    INTENT(IN)  :: F_, G_ ! input fields
+                             INTENT(IN)    :: F_, G_ ! input fields
+    real(C_DOUBLE), pointer, INTENT(INOUT) :: sum_real_(:,:)
     ! First term df/dx x dg/dy
     DO ikx = ikxs, ikxe
       DO iky = ikys, ikye
@@ -91,7 +92,7 @@ MODULE fourier
     ENDDO
     call fftw_mpi_execute_dft_c2r(planb, cmpx_data_f, real_data_f)
     call fftw_mpi_execute_dft_c2r(planb, cmpx_data_g, real_data_g)
-    bracket_sum_r = bracket_sum_r + real_data_f  * real_data_g*inv_Ny*inv_Nx
+    sum_real_ = sum_real_ + real_data_f  * real_data_g*inv_Ny*inv_Nx
     ! Second term -df/dy x dg/dx
     DO ikx = ikxs, ikxe
       DO iky = ikys, ikye
@@ -103,7 +104,7 @@ MODULE fourier
     ENDDO
     call fftw_mpi_execute_dft_c2r(planb, cmpx_data_f, real_data_f)
     call fftw_mpi_execute_dft_c2r(planb, cmpx_data_g, real_data_g)
-    bracket_sum_r = bracket_sum_r - real_data_f  * real_data_g*inv_Ny*inv_Nx
+    sum_real_ = sum_real_ - real_data_f  * real_data_g*inv_Ny*inv_Nx
 END SUBROUTINE poisson_bracket_and_sum
 
 !!! Compute the poisson bracket of [F,G] to real space
diff --git a/src/nonlinear_mod.F90 b/src/nonlinear_mod.F90
index 9cb094133123ead7ef8264b864dcee90e6e04ccd..7b6cf0cc76920bc22a58920c3322d81657071f53 100644
--- a/src/nonlinear_mod.F90
+++ b/src/nonlinear_mod.F90
@@ -98,8 +98,8 @@ SUBROUTINE compute_nonlinear
               G_cmpx(ikys:ikye,ikxs:ikxe)  = G_cmpx(ikys:ikye,ikxs:ikxe) + &
                 dnjs(in,ij,is) * moments_e(ip,is,ikys:ikye,ikxs:ikxe,iz,updatetlevel)
             ENDDO
-            !/!\ this function add its result to bracket_sum_r (hard to read sorry) /!\
-            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx)
+            !/!\ this function add its result to bracket_sum_r /!\
+            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx,bracket_sum_r)
 
 !-----------!! ELECTROMAGNETIC CONTRIBUTION -sqrt(tau)/sigma*{Sum_s dnjs [sqrt(p+1)Nap+1s + sqrt(p)Nap-1s], Kernel psi}
             IF(EM) THEN
@@ -114,7 +114,7 @@ SUBROUTINE compute_nonlinear
                                  +sqrt_p  *moments_e(ip-1,is,ikys:ikye,ikxs:ikxe,iz,updatetlevel))
             ENDDO
             !/!\ this function add its result to bracket_sum_r (hard to read sorry) /!\
-            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx)
+            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx,bracket_sum_r)
             ENDIF
           ENDDO nloope
 
@@ -162,7 +162,7 @@ ENDIF
                 dnjs(in,ij,is) * moments_i(ip,is,ikys:ikye,ikxs:ikxe,iz,updatetlevel)
             ENDDO
             !/!\ this function add its result to bracket_sum_r (hard to read sorry) /!\
-            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx)
+            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx,bracket_sum_r)
 !-----------!! ELECTROMAGNETIC CONTRIBUTION -sqrt(tau)/sigma*{Sum_s dnjs [sqrt(p+1)Nap+1s + sqrt(p)Nap-1s], Kernel psi}
             IF(EM) THEN
             ! First convolution terms
@@ -176,7 +176,7 @@ ENDIF
                                  +sqrt_p  *moments_i(ip-1,is,ikys:ikye,ikxs:ikxe,iz,updatetlevel))
             ENDDO
             !/!\ this function add its result to bracket_sum_r (hard to read sorry) /!\
-            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx)
+            CALL poisson_bracket_and_sum(F_cmpx,G_cmpx,bracket_sum_r)
             ENDIF
           ENDDO nloopi
           ! Put the real nonlinear product into k-space