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. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
subroutine Free_DomainDecomposition_t(this)implicit none class(DomainDecomposition_t),intent(inout)::thisif(associated(this%offSetElem))then deallocate(this%offSetElem)endif if(associated(this%elemToRank))then deallocate(this%elemToRank)endif if(allocated(this%requests))deallocate(this%requests)if(allocated(this%stats))deallocate(this%stats)! Guard against a second Free, and against freeing a decomposition that was! never initialized, both of which would corrupt the live-decomposition count.if(this%initialized)then call ReleaseMPI(this%ownsMpi,this%rankId,this%nRanks)this%initialized=.false.endif endsubroutine Free_DomainDecomposition_t