anchor.diff:                  bl%reblock_data(1,i,:) = (bl%n_reports_blocked)/reblock_size
   
                   bl%reblock_data(3,i,:) = bl%reblock_data(3,i,:) &
  -                + bl%reblock_data(2,i,:)/reblock_size
  +                    + bl%reblock_data(2,i,:)/reblock_size
   
                   bl%reblock_data(4,i,:) = bl%reblock_data(4,i,:) &
  -                + (bl%reblock_data(2,i,:)/reblock_size) ** 2
  +                    + (bl%reblock_data(2,i,:)/reblock_size) ** 2
   
                   bl%data_product(i) = bl%data_product(i) + (bl%reblock_data(2,i,1)/reblock_size) &
  -                * (bl%reblock_data(2,i,2)/reblock_size)
  +                    * (bl%reblock_data(2,i,2)/reblock_size)
   
                   bl%reblock_data(2,i,:) = 0
               end if
  
positive.code:             do j = 0, (bl%lg_max)
                  B = 2**(j)
  ! [review] - CJCS: From what you said above shouldn't this be B**3 >?
                  if (B > (2*bl%reblock_data_2(1,j,i)&
                      *real(B)*((bl%block_std(j,i)/&
                       bl%block_std(0,i))**4))**(1.0/3.0)) then
                      bl%optimal_size(i) = j
                      exit
  
                  end if
              end do
              if (bl%optimal_size(i) == 1) then
  
negative.code:            ! Prints the point from which reblock analysis is being
             ! carried out in terms of iterations.
              write(iunit, '(1X, I8)', advance = 'no') &
                  ((bl%start_point*bl%save_fq+bl%start_ireport)*qmc_in%ncycles)
             ! Prints the mean, standard deviation and the error in error for \sum
             ! H_0j N_j and N_0 and mean and standard deviation of projected
             ! energy. Returns 0 if there are insufficient data.
  