anchor.diff:                                  !$omp end critical (print_lock)
                               endif
                               
  -                            call CPU_TIME(timeone)
                               ! As tempting as it may be, associate statements are not threadsafe!!!
                               output%variables(v)%data(:,i,j) = downscale_point(                                         &
                                                       pred_data                       (   p_start : p_end,     :),       &
  
positive.code:                 
              endif
          end do
          call CPU_TIME(master_timetwo)
          timers(4) = timers(4) + (master_timetwo - master_timeone)
          timers(7) = timers(7) + (master_timetwo - half_time)
  
      end function downscale_point
      
  
negative.code:                 endif
                  
              elseif (options%analog_regression) then
                  call System_Clock(timeone)
                  analogs = find_analogs(predictor(i,:), atm, n_analogs)
                  do a=1,n_analogs
                      obs_analogs(a) = obs(analogs(a))
                      regression_data(a,:) = atm(analogs(a),:)
                  enddo
                  call System_Clock(timetwo)
                  timers(1) = timers(1) + (timetwo-timeone)
  
                  call System_Clock(timeone)
                  output(i) = compute_regression(predictor(i,:), regression_data, obs_analogs, coefficients, errors(i))
                  output_coeff(1:nvars,i) = coefficients
                  call System_Clock(timetwo)
                  timers(2) = timers(2) + (timetwo-timeone)
  
                  call System_Clock(timeone)
                  if (logistic_threshold/=kFILL_VALUE) then
                      if (options%logistic_from_analog_exceedance) then
                          
                          ! if the user specified using fewer analogs specifically for the logistic component, find them here
                          if (options%n_log_analogs /= n_analogs) then
                              analogs(1:options%n_log_analogs) = find_analogs(predictor(i,:), atm, options%n_log_analogs)
                              call System_Clock(timetwo)
                              timers(9) = timers(9) + (timetwo-timeone)
                              
                              call System_Clock(timeone)
                              logistic(i) = compute_analog_exceedance(obs, analogs(1:options%n_log_analogs), logistic_threshold)
                          else
                              logistic(i) = compute_analog_exceedance(obs, analogs, logistic_threshold)
  