;+
; FUNCTION: tracers_config_push
;
; PURPOSE: Puts structure A into structure B.
;          By default, the same tag must exist in both structures.
; INPUT:
;    A - structure to be place in structure B
;    B - structure that will contain structure A
;
; KEYWORD:
;    force - if this keyword is set, a tag of 'A' does not necessarily be in 'B'.
;            Such a tag will be forced (or newly added) into 'B'
;-
FUNCTION tracers_config_push, A, B, force=force
  if n_tags(A) eq 0 then return, B; no change made to B
  if (n_tags(B) eq 0) and ~keyword_set(force) then return, B; no change made to B
  B_new = B
  tn_A = tag_names(A) ; tags in configure files
  for n=0,n_elements(tn_A)-1 do begin; scan config (may include parameters of other modules)
    str_element,B_new,tn_A[n],SUCCESS=found
    if found or keyword_set(force) then begin
      str_element,/add,B_new,tn_A[n], A.(n); then replace or add the value
    endif
  endfor
  return, B_new
END
