anchor.diff:          ! returns u_perturb and v_perturb
       end subroutine linear_perturbation_at_height
   
  -    subroutine linear_perturbation(U, V, Nsq, z_bottom, z_top, minimum_step, fourier_terrain, lt_data)
  +    subroutine linear_perturbation_constz(U, V, Nsq, z_bottom, z_top, minimum_step, fourier_terrain, lt_data)
           use, intrinsic :: iso_c_binding
           implicit none
           real,                     intent(in)    :: U, V             ! U and V components of background wind
  
positive.code: 
          lt_data%u_perturb = lt_data%u_accumulator / n_steps
          lt_data%v_perturb = lt_data%v_accumulator / n_steps
      end subroutine linear_perturbation
  
      !>----------------------------------------------------------
      !! Add a smoothed buffer around the edge of the terrain to prevent crazy wrap around effects
      !! in the FFT due to discontinuities between the left and right (or top and bottom) edges of the domain
  
negative.code:     logical :: using_blocked_flow
      real    :: N_squared
  
  
      interface linear_perturbation
          module procedure linear_perturbation_constz, linear_perturbation_varyingz
      end interface
  
      !! unfortunately these have to be allocated every call because we could be calling on both the high-res
      !! domain and the low res domain (to "remove" the linear winds)
      real,                       allocatable,    dimension(:,:)  :: k, l, kl, sig
  