diff --git a/src/geometry_mod.F90 b/src/geometry_mod.F90
index 72b71046f30035b4117cec67bd8d33f35731b812..4c6d08c39f0a4cf7a0590569e0f3d6dd8c7c0220 100644
--- a/src/geometry_mod.F90
+++ b/src/geometry_mod.F90
@@ -95,6 +95,7 @@ CONTAINS
           IF( my_id .eq. 0 ) WRITE(*,*) 'Z-pinch geometry'
           call eval_zpinch_geometry
           SHEARED = .FALSE.
+          shear   = 0._dp
         CASE('miller')
           IF( my_id .eq. 0 ) WRITE(*,*) 'Miller geometry'
           call set_miller_parameters(kappa,s_kappa,delta,s_delta,zeta,s_zeta)
diff --git a/src/grid_mod.F90 b/src/grid_mod.F90
index 9bba37ad772d93d33a3e345fc6e206c4fdcbe578..dbe904106a93eeaad5e446cd5408c6b030c3cced 100644
--- a/src/grid_mod.F90
+++ b/src/grid_mod.F90
@@ -20,7 +20,7 @@ MODULE grid
   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
-  REAL(dp), PUBLIC, PROTECTED :: Npol  = 1._dp  ! number of poloidal turns
+  INTEGER,  PUBLIC, PROTECTED :: Npol  = 1      ! number of poloidal turns
   INTEGER,  PUBLIC, PROTECTED :: Odz   = 4      ! order of z interp and derivative schemes
   INTEGER,  PUBLIC, PROTECTED :: Nkx   = 8      ! Number of total internal grid points in kx
   REAL(dp), PUBLIC, PROTECTED :: Lkx   = 1._dp  ! horizontal length of the fourier box
@@ -370,7 +370,7 @@ CONTAINS
     REAL(dp), INTENT(IN) :: shear
     REAL    :: Lx_adapted
     INTEGER :: i_, counter
-    IF(shear .GT. 0._dp) THEN
+    IF(shear .GT. 0) THEN
       IF(my_id.EQ.0) write(*,*) 'Magnetic shear detected: set up sheared kx grid..'
       ! mininal size of box in x to respect dkx = 2pi shear dky
       Lx_adapted = Ly/(2._dp*pi*shear*Npol)
diff --git a/src/miller_mod.F90 b/src/miller_mod.F90
index eb3a9e5f64627815b1b753b3381fead035a46a10..e7dcb3546b56a710d07f81af29b9e01ea55e637c 100644
--- a/src/miller_mod.F90
+++ b/src/miller_mod.F90
@@ -607,8 +607,8 @@ CONTAINS
 
     !> Generate an equidistant array from min to max with n points
     function linspace(min,max,n) result(out)
-      real(dp):: min, max
-      integer:: n
+      real(dp), INTENT(IN):: min, max
+      integer,  INTENT(IN):: n
       real(dp), dimension(n):: out
 
       do i=1,n
@@ -618,20 +618,20 @@ CONTAINS
 
     !> Weighted average
     real(dp) function average(var,weight)
-      real(dp), dimension(np):: var, weight
+      real(dp), dimension(np), INTENT(IN):: var, weight
       average=sum(var*weight)/sum(weight)
     end function average
 
     !> full theta integral with weight function dlp
     real(dp) function dlp_int(var,dlp)
-      real(dp), dimension(np):: var, dlp
+      real(dp), dimension(np), INTENT(IN):: var, dlp
       dlp_int=sum(var*dlp)*2*pi*Npol_ext/np
     end function dlp_int
 
     !> theta integral with weight function dlp, up to index 'ind'
     real(dp) function dlp_int_ind(var,dlp,ind)
-      real(dp), dimension(np):: var, dlp
-      integer:: ind
+      real(dp), dimension(np), INTENT(IN):: var, dlp
+      integer, INTENT(IN):: ind
 
       dlp_int_ind=0.
       if (ind.gt.1) then
@@ -643,8 +643,9 @@ CONTAINS
 
     !> 1st derivative with 2nd order finite differences
     function deriv_fd(y,x,n) result(out)
-      integer, intent(in) :: n
-      real(dp), dimension(n):: x,y,out,dx
+      integer,                INTENT(IN) :: n
+      real(dp), dimension(n), INTENT(IN):: x,y
+      real(dp), dimension(n) :: out,dx
 
       !call lag3deriv(y,x,n,out,x,n)