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 geop_dv(first,factor,n)REAL(DP),DIMENSION(:),INTENT(IN)::first,factorINTEGER(I4B),INTENT(IN)::nREAL(DP),DIMENSION(size(first),n)::geop_dvINTEGER(I4B)::k,k2REAL(DP),DIMENSION(size(first))::tempif(n>0)geop_dv(:,1)=first(:)if(n<=NPAR_GEOP)then do k=2,ngeop_dv(:,k)=geop_dv(:,k-1)*factor(:)end do else do k=2,NPAR2_GEOPgeop_dv(:,k)=geop_dv(:,k-1)*factor(:)end dotemp=factor**NPAR2_GEOPk=NPAR2_GEOPdo if(k>=n)exitk2=k+kgeop_dv(:,k+1:min(k2,n))=geop_dv(:,1:min(k,n-k))*&spread(temp,2,size(geop_dv(:,1:min(k,n-k)),2))temp=temp*tempk=k2end do end if END FUNCTION geop_dv