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 SideExchange_MappedScalar2D(this,mesh)implicit none class(MappedScalar2D),intent(inout)::thistype(Mesh2D),intent(inout)::mesh! Localinteger::offsetoffset=mesh%decomp%offsetElem(mesh%decomp%rankId+1)if(mesh%decomp%mpiEnabled)then call this%MPIExchangeAsync(mesh)endif! Do the side exchange internal to this mpi processcall SideExchange_2D_gpu(this%extboundary_gpu,&this%boundary_gpu,mesh%sideinfo_gpu,mesh%decomp%elemToRank_gpu,&mesh%decomp%rankid,offset,this%interp%N,this%nvar,this%nelem)if(mesh%decomp%mpiEnabled)then call mesh%decomp%FinalizeMPIExchangeAsync()! Apply side flips for data exchanged with MPIcall ApplyFlip_2D_gpu(this%extboundary_gpu,mesh%sideInfo_gpu,&mesh%decomp%elemToRank_gpu,mesh%decomp%rankId,&offset,this%interp%N,this%nVar,this%nElem)endif endsubroutine SideExchange_MappedScalar2D