program xxx
use hash_tables
implicit none
integer, parameter :: nex = 10
integer, dimension(nex) :: my_ids =(/ 772, 9999, 263643, 789, 1281, 66661, &
& 55, 12132, 789, 111111 /)
integer :: i, idorig, idnew, ipos
! define how many lists
mlists = 1
! allocate arrays
call hash_setup
! recode in running order
do i = 1, nex
idorig = my_ids(i)
call hash_it(idorig, 1, idnew, ipos, .false.)
! call hash_it(idorig, ivar, idnew, ipos, noadd)
! idorig = ID to be recoded
! ivar = list no. (1, 2, ..., mlists)
! idnew = new ID
! ipos = position in hash table (rarely used)
! noadd = option: .false. adds new IDs
! .true. does not add new IDs, just looks up position
end do
print *,'no. of elements in hash table', nlevels
do i = 1, nlevels(1)
idnew = hash_idorig(i,1)
print *,i, idnew
end do
! look up the original ID for a given position
! function hashid_orig(idnew, ivar)
! deallocate hash tables
call hash_deall
end program xxx