anchor.diff:              ht%max_free_reqd = max_free_reqd
               ht%seed = seed
   
  -            allocate(ht%table(ht%nentries,ht%nslots), stat=ierr)
  +            allocate(ht%table(0:ht%nentries,ht%nslots), stat=ierr)
               call check_allocate('ht%table', size(ht%table), ierr)
               if (present(data_label)) then
                   ht%data_label => data_label
  
positive.code:                 allocate(ht%payload(ht%payload_len,ht%nentries*ht%nslots), stat=ierr)
                  call check_allocate('ht%payload', size(ht%payload), ierr)
              end if
              allocate(ht%free_entries(ht%max_free_reqd), stat=ierr)
              call check_allocate('ht%free_entries', size(ht%free_entries), ierr)
  
              call reset_hash_table(ht)
  
negative.code:             type(hash_table_t), intent(inout) :: ht
              integer, intent(out) :: indx, err_code
  
              err_code = 0
              indx = 0
              if (ht%max_free_reqd > 0) then
                  indx = ht%free_entries(ht%next_free_entry)
                  ht%free_entries(ht%next_free_entry) = 0
                  ht%next_free_entry = modulo(ht%next_free_entry-1,ht%max_free_reqd)
              end if
  
              if (indx == 0) then
                  ! Have run out of free slots that we know about in the
  