Changes the value of the heap element with given key and rebalances the heap.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_heap_type), | intent(inout) | :: | heap | |||
integer(kind=keyt), | intent(in) | :: | key | |||
integer(kind=valt), | intent(in) | :: | value |
SUBROUTINE dbcsr_heap_reset_node(heap, key, value) !! Changes the value of the heap element with given key and !! rebalances the heap. TYPE(dbcsr_heap_type), INTENT(INOUT) :: heap INTEGER(KIND=keyt), INTENT(IN) :: key INTEGER(KIND=valt), INTENT(IN) :: value INTEGER :: n, new_pos DBCSR_ASSERT(heap%n > 0) n = heap%index(key) DBCSR_ASSERT(heap%nodes(n)%node%key == key) heap%nodes(n)%node%value = value CALL bubble_up(heap, n, new_pos) CALL bubble_down(heap, new_pos) END SUBROUTINE dbcsr_heap_reset_node