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 append_I(vec,val)integer,dimension(:),allocatable,intent(inout)::vecinteger,intent(in)::valinteger,dimension(:),allocatable::tmpinteger::n!if(allocated(vec))thenn=size(vec)allocate(tmp(n+1))tmp(:n)=veccall move_alloc(tmp,vec)n=n+1elsen=1allocate(vec(n))end if!!Put val as last entry:vec(n)=val!if(allocated(tmp))deallocate(tmp)end subroutine append_I