subroutine Init_Scalar2D_t(this,interp,nVar,nElem)
implicit none
class(Scalar2D_t),intent(out) :: this
type(Lagrange),intent(in),target :: interp
integer,intent(in) :: nVar
integer,intent(in) :: nElem
this%interp => interp
this%nVar = nVar
this%nElem = nElem
this%N = interp%N
this%M = interp%M
call this%MapArrays(interp%N+1,nVar,nElem)
this%interior = 0.0_prec
this%boundary = 0.0_prec
this%extBoundary = 0.0_prec
this%avgBoundary = 0.0_prec
this%boundarynormal = 0.0_prec
allocate(this%meta(1:nVar))
allocate(this%eqn(1:nVar))
endsubroutine Init_Scalar2D_t