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 c_simps_ab_func(f,a,b,N)result(int)interface function f(x)real(8)::xcomplex(8)::fend function fend interfacereal(8),optional::a,binteger,optional::Nreal(8)::dh,a_,b_integer::L,M,ireal(8),dimension(:),allocatable::xx,wt,dxcomplex(8)::int,int1,int2,int3L=100;if(present(N))L=Na_=0d0;if(present(a))a_=ab_=1d0;if(present(b))b_=b!int=0.d0allocate(xx(L),wt(L))xx=linspace(a_,b_,L,mesh=dh)call get_quadrature_weights(wt)do i=1,Lint=int+f(xx(i))*wt(i)enddoint=int*dhdeallocate(xx,wt)end function c_simps_ab_func