a variable step method with the "first same as last" (FSAL) property:
the last function evaluation of a step (at the final t and x)
is the first one of the next step. It is reused by means of the function
evaluation cache (see set_fsal_cache and check_fsal_cache).
Nodes of different colours represent the following:
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).