anchor.diff:  
           logical :: soft_exit
   
  -        integer :: D0_pos
  +        integer :: D0_pos, max_cluster_size
           logical :: hit
   
           real :: t1, t2
  
positive.code:         !    nattempts: the number of times (on this processor) a random cluster
          !        of excitors is generated in the current timestep.
          !    D0_pos: position in the excip list of the reference.
          ! In/Out:
          !    cdet: information about the cluster of excitors applied to the
          !        reference determinant.  This is a bare det_info variable on input
  
negative.code:         ! truncation_level+2 excitors.
          ! Following the process described by Thom in 'Initiator Stochastic
          ! Coupled Cluster Theory' (unpublished), each size, n_s, has probability
          ! p(n_s) = 1/2^(n_s+1), n_s=0,max_level-1 and p(max_level)
          ! is such that \sum_{n_s=0}^{max_level} p(n_s) = 1, and hence
          ! p(max_level) = 1/2^max_level.
          rand = genrand_real2()
          psize_sum = 0.0_p
          cluster%nexcitors = -1
          do i = 0, max_cluster_size -1
              psize = 1.0_p/2**(i+1)
              psize_sum = psize_sum + psize
              if (rand < psize_sum) then
                  ! Found size!
                  cluster%nexcitors = i
                  exit
              end if
          end do
          ! If reached end of loop, then must be the largest possible cluster.
          if (i == max_cluster_size) then
              cluster%nexcitors = max_cluster_size
              psize = 1.0_p/2**max_cluster_size
          end if
          cluster%pselect = cluster%pselect*psize
  
          select case(cluster%nexcitors)
          case(0)
  