anchor.diff:          ! For every 50 reports, the optimal mean and standard deviation
           ! and the optimal error in error is calculated and printed.
           if (mod(ireport,50) ==0 .and. ireport >= bl%start_ireport .and. &
  -        bl%start_ireport>0) then
  +                    bl%start_ireport>0) then
               call change_start(bl, ireport, bl%start_point)
               call mean_std_cov(bl)
               call find_optimal_block(bl)
  
positive.code:                         bl%err_comp(i,j) = 0.0
                      else
                          if (bl%optimal_size(j) - 1 < log(real(bl%save_fq))/ &
                          log(2.0)) then
                              bl%err_comp(i,j) = bl%optimal_err(j)/&
                              (bl%optimal_std(j) * sqrt(real((int(real(bl%n_reports_blocked &
                              - i * bl%save_fq)/bl%optimal_size(j))) &
                              * bl%optimal_size(j))))
                          else
                              bl%err_comp(i,j) = bl%optimal_err(j)/&
                              (bl%optimal_std(j) * sqrt(real((int(real(bl%n_reports_blocked &
                              - i * bl%save_fq)/bl%optimal_size(j))-1) &
                              * bl%optimal_size(j))))
                          end if
                      end if
                  end do
  
negative.code:             bl%optimal_mean(3) = 0
              bl%optimal_std(3) = 0
          else
              bl%optimal_mean(3) = bl%block_mean(size_e, 1) / bl%block_mean(size_e,2)
  
              bl%optimal_std(3) = fraction_error(bl%block_mean(size_e,1), bl%block_mean(size_e, 2), &
                  bl%reblock_data_2(1, size_e,1), bl%block_std(size_e,1), bl%block_std(size_e, 2), &
                  bl%block_cov(size_e))
          end if
  
      end subroutine find_optimal_block
  