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.
FUNCTION poly_cc(x,coeffs)COMPLEX(SPC),INTENT(IN)::xCOMPLEX(SPC),DIMENSION(:),INTENT(IN)::coeffsCOMPLEX(SPC)::poly_ccCOMPLEX(SPC)::powCOMPLEX(SPC),DIMENSION(:),ALLOCATABLE::vecINTEGER(I4B)::i,n,nnn=size(coeffs)if(n<=0)thenpoly_cc=0.0_spelse if(n<NPAR_POLY)thenpoly_cc=coeffs(n)do i=n-1,1,-1poly_cc=x*poly_cc+coeffs(i)end do else allocate(vec(n+1))pow=xvec(1:n)=coeffsdovec(n+1)=0.0_spnn=ishft(n+1,-1)vec(1:nn)=vec(1:n:2)+pow*vec(2:n+1:2)if(nn==1)exitpow=pow*pown=nnend dopoly_cc=vec(1)deallocate(vec)end if END FUNCTION poly_cc