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
recursive subroutine quicksort_integer(arr,left,right)integer,intent(inout)::arr(:)integer,intent(in)::left,rightinteger::i,j,pivot,tempif(left<right)thenpivot=arr((left+right)/2)i=leftj=rightdo do while(arr(i)<pivot)i=i+1end do do while(arr(j)>pivot)j=j-1end do if(i>=j)exittemp=arr(i)arr(i)=arr(j)arr(j)=tempi=i+1j=j-1end do call quicksort_integer(arr,left,j)call quicksort_integer(arr,j+1,right)end if end subroutine quicksort_integer