anchor.diff:              u_LUT=>hi_u_LUT
               v_LUT=>hi_v_LUT
           endif
  -        !$omp parallel firstprivate(nx,ny,nz, vsmooth), default(none), &
  +        !$omp parallel firstprivate(nx,ny,nz, vsmooth, winsz), default(none), &
           !$omp private(i,j,k,step, uk, vi, east, west, north, south, top, bottom), &
           !$omp private(spos, dpos, npos, nexts,nextd, nextn,n, winsz, smoothz), &
           !$omp private(wind_first, wind_second, curspd, curdir, curnsq, sweight,dweight, nweight), &
           !$omp shared(domain, spd_values, dir_values, nsq_values, u_LUT, v_LUT), &
           !$omp shared(u_perturbation, v_perturbation, linear_update_fraction, nsq_calibration), &
           !$omp shared(min_stability, max_stability, n_dir_values, n_spd_values, n_nsq_values, smooth_nsq)
  -        winsz=4
           !$omp do
           do k=1,ny
               do j=1,nz
  
positive.code: 
      end function
  
      subroutine spatial_winds(domain,reverse, vsmooth)
          ! compute a spatially variable linear wind perturbation
          ! based off of look uptables computed in via setup
          ! for each grid point, find the closest LUT data in U and V space
  
negative.code:         endif
          ! this is a little trickier, because it does have to be domain dependant... could at least be stored in the domain though...
          if (rev) then
              linear_contribution = options%lt_options%rm_linear_contribution
              N_squared = options%lt_options%rm_N_squared
          else
              linear_contribution = options%lt_options%linear_contribution
              N_squared = options%lt_options%N_squared
          endif
  
          ! if linear_perturb hasn't been called before we need to perform some setup actions.
  