program test_dictionary
use M_list, only : dictionary
implicit none
type(dictionary) :: table
!
! create a character string dictionary
!
call table%set('A','aye')
call table%set('B','bee')
call table%set('C','see')
call table%set('D','dee')
!
write(*,*)'A=',table%get('A')
write(*,*)'C=',table%get('C')
write(*,*)'notthere=',table%get('notthere')
!
call print_dict()
!
! delete dictionary entries
!
call table%del('A')
call table%del('C')
call table%del('z') ! a noop as there is no key of 'z'
!
call print_dict()
!
! clear dictionary
!
call table%clr()
!
call print_dict()
!
contains
!
subroutine print_dict()
integer :: i
! the dictionary is just three arrays
write(*,'("DICTIONARY:")')
write(*,'(*(a,"==>","[",a,"]",/))') &
& (trim(table%key(i)), &
& table%value(i)(:table%count(i)), &
& i=1,size(table%key))
!
end subroutine print_dict
!
end program test_dictionary