Gets a value for a given key from the dictionary. If the key is not found the default_value will be returned. If the key is not found and default_value was not provided the program stops.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dict_i4tuple_callstat_type), | intent(inout) | :: | dict | |||
integer(kind=int_4), | dimension(2) | :: | key | |||
type(call_stat_type), | intent(in), | optional, | POINTER | :: | default_value |
FUNCTION dict_i4tuple_callstat_get(dict, key, default_value) RESULT(value) !! Gets a value for a given key from the dictionary. !! If the key is not found the default_value will be returned. !! If the key is not found and default_value was not provided the program stops. TYPE(dict_i4tuple_callstat_type), intent(inout) :: dict INTEGER(kind=int_4), dimension(2) :: key TYPE(call_stat_type), POINTER, intent(in), optional :: default_value TYPE(call_stat_type), POINTER :: value TYPE(private_item_type_i4tuple_callstat), POINTER :: item INTEGER(KIND=int_8) :: hash, idx # 268 "/__w/dbcsr/dbcsr/src/core/dbcsr_dict.F" NULLIFY (value) # 270 "/__w/dbcsr/dbcsr/src/core/dbcsr_dict.F" IF (.not. ASSOCIATED(dict%buckets)) & DBCSR_ABORT("dict_i4tuple_callstat_get: dictionary is not initialized.") hash = hash_i4tuple (key) idx = MOD(hash, INT(size(dict%buckets), KIND=int_8)) + 1 item => dict%buckets(idx)%p do while (ASSOCIATED(item)) IF (item%hash == hash) THEN IF (ALL(item%key==key)) THEN value =>item%value return END IF END IF item => item%next end do IF (PRESENT(default_value)) THEN value =>default_value return END IF DBCSR_ABORT("dict_i4tuple_callstat_get: Key not found in dictionary.") END FUNCTION dict_i4tuple_callstat_get