Skip to content
  • Lorenz Huedepohl's avatar
    C-API for ftimings · c9a7e72c
    Lorenz Huedepohl authored
    This is rather big update, ftimings can now be used via a C-Api, see
    test/c_test.c for an example on how to use it.
    
    This step lead to a slight overhaul also of the Fortran API, there are
    now also a number of ..._node member functions of timer_t that can be
    used if cannot or does not want to specify the node of interest via an
    explicit chain of names. An example:
    
    Instead of
    
      type(timer_t) :: timer
    
      ...
    
      call timer%print("foo", "bar", "baz")
    
    one can now also do
    
      type(timer_t) :: timer
      type(node_t) :: node
    
      ...
    
      node = timer%get_root_node()
      node = node%get_child("foo")
      node = node%get_child("bar")
      node = node%get_child("baz")
    
      call timer%print_node(node)
    
    This construction might sometimes be necessary, e.g. if the hierarchy is
    very dynamic or if the current provided maximum number of six levels in
    the non-_node functions is not sufficient (but think about if you REALLY
    need more than six levels..).
    
    This is similarly done on the C-side, there is even no restriction on
    the number of levels by using variadic lists. Still, also there _node
    functions are provided. All C-API symbols are prefixed with "ftimings_"
    in order to avoid name clashes.
    c9a7e72c