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
subroutine lu1pq3(n,len,iperm,iw,nrank)integer(ip),intent(in)::ninteger(ip),intent(in)::len(n)integer(ip),intent(inout)::iperm(n)integer(ip),intent(out)::iw(n)! workspace!------------------------------------------------------------------! lu1pq3 looks at the permutation iperm(*) and moves any entries! to the end whose corresponding length len(*) is zero.!! 09 Feb 1994: Added work array iw(*) to improve efficiency.!! 10 Jan 2010: First f90 version.! 12 Dec 2011: Declare intent and local variables.!------------------------------------------------------------------integer(ip)::i,k,nrank,nzeronrank=0nzero=0do k=1,ni=iperm(k)if(len(i)==0)thennzero=nzero+1iw(nzero)=ielsenrank=nrank+1iperm(nrank)=iend if end do do k=1,nzeroiperm(nrank+k)=iw(k)end do end subroutine lu1pq3