subroutine Free_MappedScalar2D(this)
implicit none
class(MappedScalar2D),intent(inout) :: this
this%nVar = 0
this%nElem = 0
this%interp => null()
deallocate(this%interior)
deallocate(this%boundary)
deallocate(this%extBoundary)
deallocate(this%avgBoundary)
deallocate(this%boundarynormal)
deallocate(this%meta)
deallocate(this%eqn)
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%interpWork))
call gpuCheck(hipFree(this%jas_gpu))
call hipblasCheck(hipblasDestroy(this%blas_handle))
endsubroutine Free_MappedScalar2D