anchor.diff:  
         real(c_double), intent(in) :: lattice(3,3)
         real(c_double), intent(in) :: position(3,*)
  -      integer, intent(in) :: types(*)
  -      integer, intent(in), value :: num_atom
  +      integer(c_int), intent(in) :: types(*)
  +      integer(c_int), intent(in), value :: num_atom
         real(c_double), intent(in), value :: symprec
         type(SpglibDataset) :: dset
  -
  -
   
         type, bind(c) :: SpglibDataset_c
            integer(c_int) :: spacegroup_number
  
positive.code: 
           ! Copy C strings to Fortran characters, converting C NULL to Fortran space padded strings
           do i = 1, size(dset_c % international_symbol)
              if(  dset_c % international_symbol(i) == C_NULL_CHAR ) then
                  dset % international_symbol(i:) = ' '
                  exit
              end if
  
negative.code:       & spg_get_international, spgat_get_international, &
        & spg_get_schoenflies, spgat_get_schoenflies, &
        & spg_get_pointgroup, spg_refine_cell, spgat_refine_cell, &
        & spg_get_ir_reciprocal_mesh, &
        & spg_get_stabilized_reciprocal_mesh, &
        & spg_get_error_code, spg_get_error_message
  
  
     contains
  
  
     function spg_get_error_message(spglib_error)
       integer(kind(SPGLIB_SUCCESS)) :: spglib_error
  