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
SUBROUTINE polint(xa,ya,x,y,dy)REAL(8),DIMENSION(:),INTENT(IN)::xa,yaREAL(8),INTENT(IN)::xREAL(8),INTENT(OUT)::y,dyINTEGER::m,n,nsREAL(8),DIMENSION(size(xa))::c,d,den,hon=assert_eq(size(xa),size(ya),'polint')c=yad=yaho=xa-xns=iminloc(abs(x-xa))y=ya(ns)ns=ns-1do m=1,n-1den(1:n-m)=ho(1:n-m)-ho(1+m:n)if(any(den(1:n-m)==0.d0))then print*,'polint: calculation failure'stop endifden(1:n-m)=(c(2:n-m+1)-d(1:n-m))/den(1:n-m)d(1:n-m)=ho(1+m:n)*den(1:n-m)c(1:n-m)=ho(1:n-m)*den(1:n-m)if(2*ns<n-m)thendy=c(ns+1)elsedy=d(ns)ns=ns-1end ify=y+dyend do END SUBROUTINE polint