anchor.diff:          !        symmetry or if a is already occupied.
   
           use basis, only: basis_length, basis_fns, bit_lookup
  -        use point_group_symmetry, only: nbasis_sym_spin, sym_spin_basis_fns
  +        use point_group_symmetry, only: nbasis_sym_spin, sym_spin_basis_fns, cross_product_pg_sym
           use system, only: nel
   
           use dSFMT_interface, only: genrand_real2
   
  +        integer, intent(in) :: op_sym
           integer(i0), intent(in) :: f(basis_length)
           integer, intent(in) :: occ_list(nel)
           integer, intent(out) :: i, a
  
positive.code: 
  !--- Select random orbitals involved in a valid single excitation ---
  
      subroutine choose_ia_mol(f, occ_list, symunocc, i, a, allowed_excitation)
  
          ! Randomly choose a single excitation, i->a, of a determinant for
          ! molecular systems.
  
          ! In:
          !    f: bit string representation of the Slater determinant from which
          !        an electron is excited.
          !    occ_list: integer list of occupied spin-orbitals in the determinant.
  
negative.code:         ! inefficient for small/symmetry constrained systems.
          !
          ! In:
          !    op_sym: symmetry of connecting operator.
          !    f: bit string representation of the Slater determinant from which
          !        an electron is excited.
          !    occ_list: integer list of occupied spin-orbitals in the determinant.
  