diff --git a/src/grid_mod.F90 b/src/grid_mod.F90
index a31128d017ac0141b858a8cfd4d47fe05657c722..f6527f2dd7200f33d4a94a23b20c8196a7f66a27 100644
--- a/src/grid_mod.F90
+++ b/src/grid_mod.F90
@@ -16,6 +16,7 @@ MODULE grid
   INTEGER,  PUBLIC, PROTECTED :: dmaxi = 1      ! The maximal full GF set of i-moments v^dmax
   INTEGER,  PUBLIC, PROTECTED :: Nx    = 16     ! Number of total internal grid points in x
   REAL(dp), PUBLIC, PROTECTED :: Lx    = 1._dp  ! horizontal length of the spatial box
+  INTEGER,  PUBLIC, PROTECTED :: Nexc  = 1      ! factor to increase Lx when shear>0 (Lx = Nexc/kymin/shear)
   INTEGER,  PUBLIC, PROTECTED :: Ny    = 16     ! Number of total internal grid points in y
   REAL(dp), PUBLIC, PROTECTED :: Ly    = 1._dp  ! vertical length of the spatial box
   INTEGER,  PUBLIC, PROTECTED :: Nz    = 1      ! Number of total perpendicular planes
@@ -123,7 +124,7 @@ CONTAINS
     INTEGER :: lu_in   = 90              ! File duplicated from STDIN
 
     NAMELIST /GRID/ pmaxe, jmaxe, pmaxi, jmaxi, &
-                    Nx,  Lx,  Ny,  Ly, Nz, Npol, SG
+                    Nx, Lx, Nexc, Ny, Ly, Nz, Npol, SG
     READ(lu_in,grid)
 
     IF(Nz .EQ. 1) & ! overwrite SG option if Nz = 1 for safety of use
@@ -375,7 +376,7 @@ CONTAINS
     INTEGER :: i_, counter
     IF(shear .GT. 0._dp) THEN
       IF(my_id.EQ.0) write(*,*) 'Magnetic shear detected: set up sheared kx grid..'
-      Lx = Ly/(2._dp*pi*shear*Npol)
+      Lx = Ly/(2._dp*pi*shear*Npol)*Nexc
     ENDIF
     Nkx = Nx;
     ! Local data
@@ -542,6 +543,7 @@ CONTAINS
     CALL attach(fidres, TRIM(str), "jmaxi", jmaxi)
     CALL attach(fidres, TRIM(str),   "Nx",   Nx)
     CALL attach(fidres, TRIM(str),   "Lx",   Lx)
+    CALL attach(fidres, TRIM(str), "Nexc", Nexc)
     CALL attach(fidres, TRIM(str),   "Ny",   Ny)
     CALL attach(fidres, TRIM(str),   "Ly",   Ly)
     CALL attach(fidres, TRIM(str),   "Nz",   Nz)