anchor.diff:    ! time dependent, if set to .false., 'species' will not possess the time
     ! dimension
     ! link_from is the name of another trajectory from which the time can be copied
  -  subroutine h5md_add_trajectory_data(file_id, trajectory_name, N, D, d_id, step_id, time_id, group_name, species_react, link_from)
  +  subroutine h5md_add_trajectory_data(file_id, trajectory_name, N, D, ID, group_name, species_react, link_from)
       integer(HID_T), intent(in) :: file_id
       character(len=*), intent(in) :: trajectory_name
       integer, intent(in) :: N, D
  -    integer(HID_T), intent(out) :: d_id, time_id, step_id
  +    type(h5md_t), intent(out) :: ID
       character(len=*), intent(in), optional :: group_name
       logical, intent(in), optional :: species_react
       character(len=*), intent(in), optional :: link_from
  
positive.code:        call h5md_create_step_time(g_id)
      end if
  
      call h5dopen_f(g_id, 'step', step_id, h5_error)
      call h5dopen_f(g_id, 'time', time_id, h5_error)
  
      call h5gclose_f(g_id, h5_error)
      
  
negative.code:     dims(1) = 1
      call h5screate_simple_f(1, dims, mem_s, h5_error)
  
      call h5dget_space_f(ID% d_id , obs_s, h5_error)
      call h5sget_simple_extent_dims_f(obs_s, dims, max_dims, h5_error)
      call h5sclose_f(obs_s, h5_error)
      start = dims ; num(1) = 1
      dims(1) = dims(1) + 1
      call h5dset_extent_f(ID% d_id, dims, h5_error)
      call h5dget_space_f(ID% d_id , obs_s, h5_error)
      call h5sselect_hyperslab_f(obs_s, H5S_SELECT_SET_F, start, num, h5_error)
      call h5dwrite_f(ID% d_id, H5T_NATIVE_DOUBLE, value, num, h5_error, mem_space_id=mem_s, file_space_id=obs_s)
      call h5sclose_f(obs_s, h5_error)
      call h5sclose_f(mem_s, h5_error)
  
      call h5md_append_step_time(ID% s_id, ID% t_id, present_step, time)
         
    end subroutine h5md_append_obs_value_d
  
  