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 cinter(func,x)real(8)::xtype(finter_type)::funccomplex(8)::cinterreal(8)::ry,dryreal(8)::iy,diyinteger::j,k,k0,k1integer::nN=func%N!order of polynomial interpolationcinter=dcmplx(0d0,0d0)!j=locate(func%X(func%Imin:func%Imax),x)k=max(j-(N-1)/2,1)k0=kif(k0<func%Imin)k0=func%Imink1=k+N+1if(k1>func%Imax)thenk1=func%Imaxk0=k1-N-1endif!call polint(func%X(k0:k1),func%F(k0:k1),x,ry,dry)call polint(func%X(k0:k1),func%G(k0:k1),x,iy,diy)cinter=dcmplx(ry,iy)returnend function cinter