subroutine Free_Scalar1D(this)
implicit none
class(Scalar1D),intent(inout) :: this
this%interp => null()
deallocate(this%interior)
deallocate(this%boundary)
deallocate(this%extBoundary)
deallocate(this%meta)
deallocate(this%eqn)
call gpuCheck(hipFree(c_loc(this%interior_gpu)))
call gpuCheck(hipFree(c_loc(this%boundary_gpu)))
call gpuCheck(hipFree(c_loc(this%extBoundary_gpu)))
call gpuCheck(hipFree(c_loc(this%avgBoundary_gpu)))
call hipblasCheck(hipblasDestroy(this%blas_handle))
endsubroutine Free_Scalar1D