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. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
subroutine dbknot(x,n,k,t)implicit noneinteger,intent(in)::ninteger,intent(in)::kreal(wp),dimension(n),intent(in)::xreal(wp),dimension(:),intent(out)::tinteger::i,j,ipj,npj,ip1,jstrtreal(wp)::rnot!put k knots at each endpoint!(shift right endpoints slightly -- see pg 350 of reference)rnot=x(n)+0.1_wp*(x(n)-x(n-1))do j=1,kt(j)=x(1)npj=n+jt(npj)=rnotenddo!distribute remaining knotsif(mod(k,2)==1)then!case of odd k -- knots between data pointsi=(k-1)/2-kip1=i+1jstrt=k+1do j=jstrt,nipj=i+jt(j)=0.5_wp*(x(ipj)+x(ipj+1))enddoelse!case of even k -- knots at data pointsi=(k/2)-kjstrt=k+1do j=jstrt,nipj=i+jt(j)=x(ipj)enddoendifendsubroutinedbknot