diff --git a/src/grid_mod.F90 b/src/grid_mod.F90
index 177999be859a248d02abb776d264ce3d86ef0545..c362ac29e199ab106e964b788c59993f16572978 100644
--- a/src/grid_mod.F90
+++ b/src/grid_mod.F90
@@ -301,7 +301,6 @@ CONTAINS
       deltaky = 2._dp*PI/Ly
       ky_max  = (Nky-1)*deltaky
       ky_min  = deltaky
-      diff_ky_coeff= (1._dp/ky_max)**N_HD
     ENDIF
     ! Build the full grids on process 0 to diagnose it without comm
     ALLOCATE(kyarray_full(1:Nky))
@@ -347,6 +346,13 @@ CONTAINS
     END DO
     ! Orszag 2/3 filter
     two_third_kymax = 2._dp/3._dp*deltaky*(Nky-1)
+    ! For hyperdiffusion
+    IF(LINEARITY.EQ.'linear') THEN
+      diff_ky_coeff= (1._dp/ky_max)**N_HD
+    ELSE
+      diff_ky_coeff= (1._dp/two_third_kymax)**N_HD
+    ENDIF
+
     ALLOCATE(AA_y(ikys:ikye))
     DO iky = ikys,ikye
       IF ( (kyarray(iky) .LT. two_third_kymax) .OR. (LINEARITY .EQ. 'linear')) THEN
@@ -456,10 +462,17 @@ CONTAINS
         END DO
       ENDIF
     ENDIF
-    ! For hyperdiffusion
-    diff_kx_coeff= (1._dp/kx_max)**N_HD
     ! Orszag 2/3 filter
     two_third_kxmax = 2._dp/3._dp*kx_max;
+
+    ! For hyperdiffusion
+    IF(LINEARITY.EQ.'linear') THEN
+      diff_kx_coeff= (1._dp/kx_max)**N_HD
+    ELSE
+      diff_kx_coeff= (1._dp/two_third_kxmax)**N_HD
+    ENDIF
+
+    ! Antialiasing filter
     ALLOCATE(AA_x(ikxs:ikxe))
     DO ikx = ikxs,ikxe
       IF ( ((kxarray(ikx) .GT. -two_third_kxmax) .AND. &