anchor.diff:  
       pure function calc_pgen_double_mol_no_renorm(a, b, spin) result(pgen)
   
  +        ! In:
  +        !    a, b: unoccupied orbitals into which electrons are excited.
  +        !    spin: spin label of the selected (a,b) pair.  Set to -2 if both ia
  +        !        and j are down, +2 if both are up and 0 otherwise.  As spin is
  +        !        conserved, this is also the spin label of the selected (i,j)
  +        !        pair in the double excitation (i,j) -> (a,b).
  +        ! Returns:
  +        !    The probability, p(D_{ij}^{ab}|D), of selecting to excite to
  +        !    determinant D_{ij}^{ab} from determinant D, assuming that (i,j)
  +        !    have been selected from the occupied orbitals, a is selected from
  +        !    an unoccupied orbital and b is selected from the set of orbitals
  +        !    which conserve spin and spatial symmetry.  (Note: in this scheme,
  +        !    b is not necessarily unoccupied.)
  +
           ! WARNING: We assume that the excitation is actually valid. 
           ! This routine does *not* calculate the correct probability that
           ! a forbidden excitation (e.g. due to a or b actually being occupied) is
  -        ! generated.  The correct way to handle those excitations is to set
  -        ! hmatel to be zero.  The generation probabilites of allowed excitations
  -        ! correctly take into account events where a/b is occupied.  This
  -        ! problem arises because if a or b are actually occpied, then p(a|ijb)
  -        ! or p(b|ijb) = 0.  We do not handle such cases.
  +        ! generated.  The correct way to handle those excitations is to
  +        ! explicitly reject them.  The generation probabilites of allowed
  +        ! excitations correctly take into account rejected events where a/b is
  +        ! occupied.  This problem arises because if a or b are actually occpied,
  +        ! then p(a|ijb) or p(b|ijb) = 0.  We do not handle such cases here.
   
           use basis, only: basis_fns
           use fciqmc_data, only: pattempt_double
  
positive.code: 
      subroutine find_ia_mol(f, occ_list, i, a, allowed_excitation)
  
          use basis, only: basis_length, basis_fns, bit_lookup
          use point_group_symmetry, only: nbasis_sym_spin, sym_spin_basis_fns
          use system, only: nel
  
negative.code: 
      pure function calc_pgen_single_mol(occ_list, symunocc, a) result(pgen)
  
          ! In:
          !    occ_list: integer list of occupied spin-orbitals in the determinant.
          !    symunocc: number of unoccupied orbitals of each spin and
          !        irreducible representation.  The same indexing scheme as
          !        nbasis_sym_spin (in the point_group_symmetry module) is used.
          !    a: previously unoccupied orbital into which an electron is excited.
          ! Returns:
          !    The probability of generating the excitation i->a, where we select
          !    i uniformly from the list of occupied orbitals with allowed
          !    excitations (i.e. at least one single excitation exists involving
          !    those orbitals) and a is selected from the list of unoccupied
          !    orbitals which conserve spin and spatial symmetry.
  
          ! WARNING: We assume that the excitation is actually valid. 
          ! This routine does *not* calculate the correct probability that
          ! a forbidden excitation (e.g. no possible single excitations exist) is
          ! generated.  The correct way to handle those excitations is to
          ! explicitly reject them.  The generation probabilites of allowed
          ! excitations correctly take into account such rejected events.
  
          use basis, only: basis_fns
          use fciqmc_data, only: pattempt_single
          use system, only: nel, sym0
  