anchor.diff:      CLASS(sllist),                 INTENT(in)    :: list
       CHARACTER(len=*),              INTENT(in)    :: key
       INTEGER, ALLOCATABLE, INTENT(out)   :: val(:)
  -    INTEGER                                      :: vallen
  +    !INTEGER                                      :: vallen
   
  -    vallen = 0
  +    !vallen = 0
       IF (ALLOCATED(list%key) .AND. (list%key == key)) THEN
  -       vallen = SIZE(list%val,DIM=1)
  +       !vallen = SIZE(list%val,DIM=1)
          IF (ALLOCATED(val)) DEALLOCATE(val)
          ALLOCATE(val,SOURCE=LIST.VAL)
          val = list%val
  
positive.code:   TYPE sllist
       TYPE(sllist), POINTER :: child => NULL()
       CHARACTER(len=:), ALLOCATABLE :: key 
       integer::nval=0
       INTEGER,allocatable::val(:)
     CONTAINS
       PROCEDURE :: put  => put_sll
  
negative.code:     tbl%is_init = .FALSE.
    END SUBROUTINE free_hash_tbl_sll
  
  INTEGER FUNCTION HASH_DJB(KEY)
      CHARACTER(LEN=*), INTENT(IN) :: KEY
      INTEGER :: I, KEYLEN, UV
      !INTEGER (KIND=4) :: HASHVAL
  
      HASH_DJB = 5381
      KEYLEN = LEN_TRIM(KEY)
      DO I = 1, KEYLEN
          UV = MOD(HASH_DJB * 33, 65536_4)
          HASH_DJB = MOD(UV + IACHAR(KEY(I:I)), 65536_4)
      END DO
      !HASH = MOD (HASHVAL, HASHSIZE) + 1
  END FUNCTION
  
  
  END MODULE hashtbl
      
      
  