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_Scalar2D(this)implicit none class(Scalar2D),intent(inout)::this! Host storage is owned by the pools in the parent type, not by these pointers (Stage 6b),! so the parent Free is what releases it.call Free_Scalar2D_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_Scalar2D