SUBROUTINE DESTROYUMATCACHE character(len=*), parameter :: thisroutine = 'DESTROYUMATCACHE' CALL WriteUMatCacheStats() IF (ASSOCIated(UMatCacheData)) THEN write(stdout, *) "Destroying UMatCache" CALL LogMemDealloc(thisroutine, tagUMatCacheData) Deallocate(UMatCacheData) CALL LogMemDealloc(thisroutine, tagUMATLABELS) Deallocate(UMatLabels) end if IF (ASSOCIated(UMat2D)) THEN CALL LogMemDealloc(thisroutine, tagUMat2D) Deallocate(UMat2D) end if IF (ASSOCIated(TransTable)) THEN CALL LogMemDealloc(thisroutine, tagTransTable) Deallocate(TransTable) end if IF (ASSOCIated(InvTRANSTABLE)) THEN CALL LogMemDealloc(thisroutine, tagInvTransTable) Deallocate(InvTRANSTABLE) end if END SUBROUTINE DESTROYUMATCACHE