anchor.diff:         call c_f_pointer (dset_c % translations    , translations    , shape = [3,    n_operations])
          call c_f_pointer (dset_c % wyckoffs        , wyckoffs        , shape = [n_atoms])
          call c_f_pointer (dset_c % equivalent_atoms, equivalent_atoms, shape = [n_atoms])
  +       call c_f_pointer (dset_c % crystallographic_orbits, crystallographic_orbits, shape = [n_atoms])
          call c_f_pointer (dset_c % std_types       , std_types       , shape = [n_std_atoms])
          call c_f_pointer (dset_c % std_positions   , std_positions   , shape = [3, n_std_atoms])
   
  
positive.code:        allocate( dset % translations    (3,    n_operations))
         allocate( dset % wyckoffs        (n_atoms))
         allocate( dset % equivalent_atoms(n_atoms))
         allocate( dset % std_types       (n_std_atoms))
         allocate( dset % std_positions   (3, n_std_atoms))
  
  
negative.code:        type(c_ptr) :: wyckoffs
         type(c_ptr) :: site_symmetry_symbols
         type(c_ptr) :: equivalent_atoms
         type(c_ptr) :: crystallographic_orbits
         real(c_double) :: primitive_lattice(3,3)
         type(c_ptr) :: mapping_to_primitive
         integer(c_int) :: n_std_atoms
  