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_rc(x,coeffs)COMPLEX(SPC),INTENT(IN)::xREAL(SP),DIMENSION(:),INTENT(IN)::coeffsCOMPLEX(SPC)::poly_rcCOMPLEX(SPC)::powCOMPLEX(SPC),DIMENSION(:),ALLOCATABLE::vecINTEGER(I4B)::i,n,nnn=size(coeffs)if(n<=0)thenpoly_rc=0.0_spelse if(n<NPAR_POLY)thenpoly_rc=coeffs(n)do i=n-1,1,-1poly_rc=x*poly_rc+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_rc=vec(1)deallocate(vec)end if END FUNCTION poly_rc