anchor.diff:      character(len=*),intent(in) :: value
       integer(hid_t) :: dspace_id, attr_id
       integer :: hdferr
  -    INTEGER(HID_T) :: atype_id
  -    CALL h5tcopy_f(H5T_NATIVE_CHARACTER, atype_id, hdferr)
  -    call check_status(hdferr,'hdf5_read_k_string [1]')
  -    CALL h5tset_size_f(atype_id, int(len(value),size_t), hdferr)
  -    call check_status(hdferr,'hdf5_read_k_string [2]')
  +    integer(hid_t) :: atype_id
  +    call h5tcopy_f(h5t_native_character, atype_id, hdferr)
  +    call check_status(hdferr,'hdf5_write_k_string [1]')
  +    call h5tset_size_f(atype_id, int(len(value),size_t), hdferr)
  +    call check_status(hdferr,'hdf5_write_k_string [2]')
       if(hdf5_exists_keyword(handle, path, name)) then
          call h5aopen_by_name_f(handle, path, name, attr_id, hdferr)
  -       call check_status(hdferr,'hdf5_read_k_string [3]')
  +       call check_status(hdferr,'hdf5_write_k_string [3]')
       else
          call h5screate_f(h5s_scalar_f, dspace_id, hdferr)
  -       call check_status(hdferr,'hdf5_read_k_string [4]')
  +       call check_status(hdferr,'hdf5_write_k_string [4]')
          call h5acreate_by_name_f(handle, path, name, atype_id, dspace_id, attr_id, hdferr)
  -       call check_status(hdferr,'hdf5_read_k_string [5]')
  +       call check_status(hdferr,'hdf5_write_k_string [5]')
          call h5sclose_f(dspace_id, hdferr)
  -       call check_status(hdferr,'hdf5_read_k_string [6]')
  +       call check_status(hdferr,'hdf5_write_k_string [6]')
       end if
       call h5awrite_f(attr_id, atype_id, value, (/1_hsize_t/), hdferr)
  -    call check_status(hdferr,'hdf5_read_k_string [7]')
  +    call check_status(hdferr,'hdf5_write_k_string [7]')
       call h5aclose_f(attr_id, hdferr)
  -    call check_status(hdferr,'hdf5_read_k_string [8]')
  +    call check_status(hdferr,'hdf5_write_k_string [8]')
     end subroutine hdf5_write_k_string
   
   
  
positive.code:     call h5dwrite_f(dset_id, h5t_ieee_f64le, buf_real, dims, hdferr)
    end subroutine h5dwrite_f_i64_6d
  
    subroutine h5tbread_field_name_f_i64_1d(loc_id, dset_name, field_name, start, nrecords, type_size, buf, errcode) 
      implicit none
      integer(hid_t), intent(in) :: loc_id           ! file or group identifier 
      character(len=*), intent(in) :: dset_name      ! name of the dataset 
      character(len=*), intent(in) :: field_name     ! name of the field
      integer(hsize_t), intent(in) :: start          ! start record 
      integer(hsize_t), intent(in) :: nrecords       ! records
      integer(size_t), intent(in) :: type_size       ! type size 
      integer(idp), intent(out) :: buf(:)             ! data buffer 
      integer :: errcode                             ! error code 
      real(dp) :: buf_real(size(buf, 1))
      call h5tbread_field_name_f(loc_id, dset_name, field_name, start, nrecords, type_size, buf_real, errcode) 
      buf = int(buf_real, idp)
    end subroutine h5tbread_field_name_f_i64_1d
  
    subroutine h5tbwrite_field_name_f_i64_1d(loc_id, dset_name, field_name, start, nrecords, type_size, buf, errcode) 
      implicit none
      integer(hid_t), intent(in) :: loc_id           ! file or group identifier 
      character(len=*), intent(in) :: dset_name      ! name of the dataset 
      character(len=*), intent(in) :: field_name     ! name of the field
      integer(hsize_t), intent(in) :: start          ! start record 
      integer(hsize_t), intent(in) :: nrecords       ! records
      integer(size_t), intent(in) :: type_size       ! type size
      integer(idp), intent(in) :: buf(:)             ! data buffer 
      integer :: errcode                             ! error code
      real(dp) :: buf_real(size(buf, 1))
      buf_real = real(buf, dp)
      call h5tbwrite_field_name_f(loc_id, dset_name, field_name, start, nrecords, type_size, buf_real, errcode) 
    end subroutine h5tbwrite_field_name_f_i64_1d
  
    elemental subroutine clean_string(string)
  
negative.code:     integer(hid_t) :: attr_id
      character(len=*),intent(out) :: value
      integer :: hdferr
      integer(hid_t) :: atype_id
      call hdf5_check_exists_keyword(handle, path, name)
      call h5tcopy_f(h5t_native_character, atype_id, hdferr)
      call check_status(hdferr,'hdf5_read_k_string [1]')
      call h5tset_size_f(atype_id, int(len(value),size_t), hdferr)
      call check_status(hdferr,'hdf5_read_k_string [2]')
      call h5aopen_by_name_f(handle, path, name, attr_id, hdferr)
      call check_status(hdferr,'hdf5_read_k_string [3]')
  