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_Vector2D(this)implicit none class(Vector2D),intent(inout)::this! Host storage is owned by the pools in the parent type (Stage 6b), so the parent Free! releases it rather than deallocating these pointers.call Free_Vector2D_t(this)call gpuCheck(hipFree(this%interior_gpu))call gpuCheck(hipFree(this%boundary_gpu))call gpuCheck(hipFree(this%extBoundary_gpu))call gpuCheck(hipFree(this%avgBoundary_gpu))call gpuCheck(hipFree(this%boundaryNormal_gpu))this%interior_gpu=c_null_ptrthis%boundary_gpu=c_null_ptrthis%extBoundary_gpu=c_null_ptrthis%avgBoundary_gpu=c_null_ptrthis%boundaryNormal_gpu=c_null_ptrthis%alloc_interior=0this%alloc_boundary=0this%alloc_extBoundary=0this%alloc_avgBoundary=0this%alloc_boundaryNormal=0endsubroutine Free_Vector2D