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.
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
function lower_triangle(j,k,extra)integer,intent(in)::j,kinteger,optional,intent(in)::extralogical,dimension(j,k)::lower_triangleinteger::nn=0;if(present(extra))n=extralower_triangle=(outerdiff(arth_i(1,1,j),arth_i(1,1,k))>-n)contains function arth_i(first,increment,n)integer,intent(in)::first,increment,ninteger,dimension(n)::arth_iinteger::k,k2,tempif(n>0)arth_i(1)=firstif(n<=npar_arth)then do k=2,narth_i(k)=arth_i(k-1)+incrementend do else do k=2,npar2_artharth_i(k)=arth_i(k-1)+incrementend dotemp=increment*npar2_arthk=npar2_arthdo if(k>=n)exitk2=k+karth_i(k+1:min(k2,n))=temp+arth_i(1:min(k,n-k))temp=temp+tempk=k2end do end if end function arth_iend function lower_triangle