diff --git a/advection.f90 b/advection.f90
index 2c502b2c6245783f619a205047bf797839f2b283..018d5b673c7d5657f559c666c27a5f97ee46a304 100644
--- a/advection.f90
+++ b/advection.f90
@@ -8,7 +8,7 @@ program advection_solver
 
   ! Параметры сетки
     integer, parameter :: N = 100  ! Число узлов по пространству
-    integer, parameter :: M = 1000 ! Число шагов по времени
+    integer, parameter :: M = 100 ! Число шагов по времени
     real, parameter :: dt = 0.1    ! Шаг по времени
     real :: Hsoil = 1.E+3          ! Размер области по пространству
     real :: dz                     ! Шаг по пространству
@@ -58,7 +58,7 @@ program advection_solver
     ! Вычисление аргумента сетки
       dz = Hsoil/real(N)
     ! Постоянная сетка по пространству
-      !forall (i=1:N) z_cen(i) = i*dz
+      forall (i=1:N) z_cen(i) = i*dz
 
     ! Неоднородная сетка по пространству
       !forall (i=1:N) z_cen(i) = (i/5.)**2.
@@ -67,7 +67,9 @@ program advection_solver
     ! Вычисление граничного значения ячейки
       forall (i=2:N) z_edg(i) = (z_cen(i-1) + z_cen(i))/2.
 
-      z_edg(1) = -z_edg(2) - z_cen(1)
+      if (z_cen(1) == 0.) z_edg(1) = z_cen(1) - z_edg(2)
+
+      z_edg(1) = 2.*z_cen(1) - z_edg(2)
       z_edg(N+1) = 2.*z_cen(N) - z_edg(N)
 
     ! Вычисление шага по пространственной сетке
diff --git a/neodn2.f90 b/neodn2.f90
index 21a6326278392cf53a9bb0245230bb0851c66702..46b0881bed21563dd733b6e58bb8a3d0eedea356 100644
--- a/neodn2.f90
+++ b/neodn2.f90
@@ -106,17 +106,19 @@ program neodn2
 ! ----------------------------------------------- расчёт сетки --------------------------------------------------------
     ! Вычисление аргумента сетки
       dz = Hsoil/real(N)
-      ! Постоянная сетка по пространству
+    ! Постоянная сетка по пространству
       forall (i=1:N) z_cen(i) = i*dz
 
     ! Неоднородная сетка по пространству
-      !forall (i=0:N) z_edg(i) = (i/5.)**2.
-      forall (i=0:N) z_edg(i) = Hsoil * ((1.0 + 12.0)**((real(i) - 1.0)/(real(N) - 1.0)) - 1.0) / 12.0
+      !forall (i=1:N) z_cen(i) = (i/5.)**2.
+      forall (i=1:N) z_cen(i) = Hsoil * ((1.0 + 12.0)**((real(i) - 1.0)/(real(N) - 1.0)) - 1.0) / 12.0
 
-    ! Вычисление центрального значения ячейки
+    ! Вычисление граничного значения ячейки
       forall (i=2:N) z_edg(i) = (z_cen(i-1) + z_cen(i))/2.
 
-      z_edg(1) = z_edg(2) - z_cen(1)
+      if (z_cen(1) == 0.) z_edg(1) = z_cen(1) - z_edg(2)
+
+      z_edg(1) = 2.*z_cen(1) - z_edg(2)
       z_edg(N+1) = 2.*z_cen(N) - z_edg(N)
 
     ! Вычисление шага по пространственной сетке