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
pure subroutine limit_dt_endtime(t_left,dt_p)double precision,intent(in)::t_leftdouble precision,intent(inout)::dt_pdouble precision::n_stepsdouble precision,parameter::eps=1d-10n_steps=t_left/dt_pif(n_steps<1+eps)then! Last stepdt_p=t_leftelse if(n_steps<2-eps)then! Divide time left over two steps, to prevent one tiny time stepdt_p=0.5d0*t_leftend if end subroutine limit_dt_endtime