anchor.diff:              loops_completed = 0
               write(*,*) "Percent Completed:"
               !$omp parallel default(shared) &
  -            !$omp private(i,j,k,z, u,v, layer_height, layer_height_bottom, layer_height_top, minimum_layer_size)
  +            !$omp private(i,j,k,z, u,v, layer_height, layer_height_bottom, layer_height_top) &
  +            !$omp firstprivate(minimum_layer_size, n_dir_values, n_spd_values, n_nsq_values, nz,nx,ny,nxu,nyv,fftnx,fftny)
               ! $omp private(lt_data_m)
   
               ! initialization has to happen in each thread so each thread has its own copy
  
positive.code:         if (reverse) then
              !$omp critical (print_lock)
              write(*,*) "ERROR: reversing linear winds not set up for parallel fftw computation yet"
              write(*,*) "also not set up for the new spatial wind LUTs"
              !$omp end critical (print_lock)
              stop
          endif
  
negative.code:                         do z=1,nz
                              if (reverse) then
                                  layer_height        = domain%z(1,1,z) - domain%terrain(1,1)
                                  layer_height_bottom = layer_height - (options%dz_levels(z) / 2)
                                  layer_height_top    = layer_height + (options%dz_levels(z) / 2)
                              else
                                  layer_height = domain%z(1,z,1) - domain%terrain(1,1)
                                  layer_height_bottom = layer_height - (options%dz_levels(z) / 2)
                                  layer_height_top    = layer_height + (options%dz_levels(z) / 2)
                              endif
  
                              call linear_perturbation(u, v, exp(nsq_values(j)),                                  &
                                                       layer_height_bottom, layer_height_top, minimum_layer_size, &
                                                       domain%fzs, lt_data_m)
  