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 locate(xx,x)REAL(8),DIMENSION(:),INTENT(IN)::xxREAL(8),INTENT(IN)::xINTEGER::locateINTEGER::n,jl,jm,juLOGICAL::ascndn=size(xx)ascnd=(xx(n)>=xx(1))jl=0ju=n+1do if(ju-jl<=1)exitjm=(ju+jl)/2if(ascnd.eqv.(x>=xx(jm)))thenjl=jmelseju=jmend if end do if(x==xx(1))thenlocate=1else if(x==xx(n))thenlocate=n-1elselocate=jlend if END FUNCTION locate