diff --git a/src/nonlinear_mod.F90 b/src/nonlinear_mod.F90
index 33fed8f10381c7ab78cb57d311d2cfae63b7e8ee..6557c61e3e5d89355c52c7e337d6b67427293e7e 100644
--- a/src/nonlinear_mod.F90
+++ b/src/nonlinear_mod.F90
@@ -7,7 +7,7 @@ MODULE nonlinear
                          local_np,ngp,parray,pmax,&
                          local_nj,ngj,jarray,jmax, local_nj_offset, dmax,&
                          kyarray, AA_y, local_nky_ptr, local_nky_ptr_offset,inv_Ny,&
-                         local_nkx_ptr,kxarray, AA_x, inv_Nx,&
+                         total_nkx,kxarray, AA_x, inv_Nx,&
                          local_nz,ngz,zarray,nzgrid, deltakx, iky0, contains_kx0, contains_ky0
   USE model,       ONLY : LINEARITY, EM, ikxZF, ZFamp, ExB
   USE closure,     ONLY : evolve_mom, nmaxarray
@@ -31,8 +31,8 @@ CONTAINS
 
 SUBROUTINE nonlinear_init
   IMPLICIT NONE
-  ALLOCATE( F_cmpx(local_nky_ptr,local_nkx_ptr))
-  ALLOCATE( G_cmpx(local_nky_ptr,local_nkx_ptr))
+  ALLOCATE( F_cmpx(local_nky_ptr,total_nkx))
+  ALLOCATE( G_cmpx(local_nky_ptr,total_nkx))
 END SUBROUTINE nonlinear_init
 
 SUBROUTINE compute_Sapj
@@ -75,7 +75,7 @@ SUBROUTINE compute_nonlinear
               ini = in+ngj/2
   !-----------!! ELECTROSTATIC CONTRIBUTION
               ! First convolution terms
-              DO ikx = 1,local_nkx_ptr
+              DO ikx = 1,total_nkx
                 DO iky = 1,local_nky_ptr
                   F_cmpx(iky,ikx) = phi(iky,ikx,izi) * kernel(ia,ini,iky,ikx,izi,eo)
                 ENDDO
@@ -83,7 +83,7 @@ SUBROUTINE compute_nonlinear
               ! Test to implement the ExB shearing as a additional zonal mode in the ES potential
               IF(ikxZF .GT. 1) THEN
                 ikxExBp = ikxZF
-                ikxExBn = local_nkx_ptr - (ikxExBp-2)
+                ikxExBn = total_nkx - (ikxExBp-2)
                 IF(contains_kx0 .AND. contains_ky0) THEN
                   F_cmpx(iky0,ikxExBp) = F_cmpx(iky0,ikxExBp) + ZFamp * kernel(ia,ini,iky0,ikxExBp,izi,eo)
                   F_cmpx(iky0,ikxExBn) = F_cmpx(iky0,ikxExBn) + ZFamp * kernel(ia,ini,iky0,ikxExBn,izi,eo)
@@ -99,7 +99,7 @@ SUBROUTINE compute_nonlinear
               ENDDO s1
               ! this function adds its result to bracket_sum_r
                 CALL poisson_bracket_and_sum( kyarray,kxarray,inv_Ny,inv_Nx,AA_y,AA_x,&
-                                              local_nky_ptr,local_nkx_ptr,F_cmpx,G_cmpx,&
+                                              local_nky_ptr,total_nkx,F_cmpx,G_cmpx,&
                                               ExB, ExB_NL_factor, 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
@@ -115,12 +115,13 @@ SUBROUTINE compute_nonlinear
                 ENDDO s2
                 ! this function adds its result to bracket_sum_r
                 CALL poisson_bracket_and_sum( kyarray,kxarray,inv_Ny,inv_Nx,AA_y,AA_x,&
-                                              local_nky_ptr,local_nkx_ptr,F_cmpx,G_cmpx,&
+                                              local_nky_ptr,total_nkx,F_cmpx,G_cmpx,&
                                               ExB, ExB_NL_factor,bracket_sum_r)
               ENDIF
             ENDDO n
             ! Apply the ExB shearing rate factor before going back to k-space
             IF (ExB) THEN
+              ! print*, SUM(bracket_sum_r)
               CALL apply_inv_ExB_NL_factor(bracket_sum_r,inv_ExB_NL_factor)
             ENDIF
             ! Put the real nonlinear product back into k-space
@@ -130,7 +131,7 @@ SUBROUTINE compute_nonlinear
             call  fftw_mpi_execute_dft_r2c(planf, bracket_sum_r, bracket_sum_c)
 #endif
             ! Retrieve convolution in input format and apply anti aliasing
-            DO ikx = 1,local_nkx_ptr
+            DO ikx = 1,total_nkx
               DO iky = 1,local_nky_ptr
                 Sapj(ia,ip,ij,iky,ikx,iz) = bracket_sum_c(ikx,iky)*AA_x(ikx)*AA_y(iky)
               ENDDO