Returns a pointer to an array of all key/value-items stored in the dictionary. Caution: The caller is responsible for deallocating targeted array after usage.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dict_str_i4_type), | intent(inout) | :: | dict |
FUNCTION dict_str_i4_items(dict) RESULT(items)
!! Returns a pointer to an array of all key/value-items stored in the dictionary.
!! Caution: The caller is responsible for deallocating targeted array after usage.
TYPE(dict_str_i4_type), intent(inout) :: dict
TYPE(dict_str_i4_item_type), dimension(:), POINTER :: items
TYPE(private_item_type_str_i4), POINTER :: item
INTEGER :: i, j
IF (.not. ASSOCIATED(dict%buckets)) &
DBCSR_ABORT("dict_str_i4_items: dictionary is not initialized.")
allocate (items(dict%size))
j = 1
do i = 1, size(dict%buckets)
item => dict%buckets(i)%p
do while (ASSOCIATED(item))
items(j)%key =item%key
items(j)%value =item%value
j = j + 1
item => item%next
end do
end do
IF (j /= dict%size + 1) &
DBCSR_ABORT("dict_str_i4_items: assertion failed!")
END FUNCTION dict_str_i4_items