anchor.diff:       module procedure hdf5_read_5d_array_alloc_h5t_std_i32le
        module procedure hdf5_read_5d_array_alloc_h5t_std_i64le
        module procedure hdf5_read_5d_array_alloc_h5t_ieee_f32le
  -     module procedure hdf5_read_5d_array_alloc_h5t_ieee_f64le 
  +     module procedure hdf5_read_5d_array_alloc_h5t_ieee_f64le
        module procedure hdf5_read_6d_array_alloc_h5t_std_i32le
        module procedure hdf5_read_6d_array_alloc_h5t_std_i64le
        module procedure hdf5_read_6d_array_alloc_h5t_ieee_f32le
  
positive.code:     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]')
      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]')
      else
         call h5screate_f(h5s_scalar_f, dspace_id, hdferr)
         call check_status(hdferr,'hdf5_read_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 h5sclose_f(dspace_id, hdferr)
         call check_status(hdferr,'hdf5_read_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 h5aclose_f(attr_id, hdferr)
      call check_status(hdferr,'hdf5_read_k_string [8]')
    end subroutine hdf5_write_k_string
  
    !!@FOR integer:h5t_std_i32le integer(idp):h5t_std_i64le real(sp):h5t_ieee_f32le real(dp):h5t_ieee_f64le
  
negative.code:     integer(hid_t),intent(in) :: handle
      character(len=*),intent(in) :: path, name
      if(.not.hdf5_exists_keyword(handle, path, name)) then
         print *, "ERROR: attribute "//trim(name)//" does not exist in HDF5 file"
         stop
      end if
    end subroutine hdf5_check_exists_keyword
  
    subroutine hdf5_read_k_logical(handle,path,name,value)
      implicit none
      integer(hid_t),intent(in) :: handle
  