Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
function brentq(func,a,b,tol)result(fzero)interface function func(x)real(8),intent(in)::xreal(8)::funcend function funcend interfacereal(8),intent(in)::a,breal(8),optional::tolreal(8)::fzeroreal(8)::tol_tol_=epsilon(a);if(present(tol))tol_=tolfzero=zbrent(func,a,b,tol_)end function brentq