Copy a single 2D element state into a larger array and pad it with zeroes.
The additional modes might be necessary for proper dealing with nonlinear operations. Please note, that the oversampled representation is always a QSpace polynomial.
Type  Intent  Optional  Attributes  Name  

real(kind=rk),  intent(in)  ::  state(:,:)  State in a single element, to be oversampled. 

type(ply_poly_project_type),  intent(in)  ::  poly_proj  Description of the projection method. 

real(kind=rk),  intent(inout)  ::  modalCoeffs(:,:)  Oversampled array for modal coefficients from state. These are always QPolynomial representations, as projections only work with those. 

integer,  intent(in),  optional  ::  nScalars  The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine. 

logical,  intent(in),  optional  ::  ensure_positivity(:)  Only use modes up to the point, where we are sure that the resulting polynomial will be positive everywhere. This is an array of logicals for each variable, if not given, the default is false (no positivity ensured). 
Type  Visibility  Attributes  Name  Initial  

integer,  private  ::  oversamp_degree  
integer,  private  ::  mpd1  
integer,  private  ::  mpd1_square  
integer,  private  ::  iDegX  
integer,  private  ::  iDegY  
integer,  private  ::  idof  
integer,  private  ::  dof  
integer,  private  ::  dofOverSamp  
integer,  private  ::  nPVars  
integer,  private  ::  iVar  
real(kind=rk),  private  ::  ordersum(2*(poly_proj%min_degree+1)1)  
real(kind=rk),  private  ::  varsum  
integer,  private  ::  iOrd  
integer,  private  ::  maxorders  
integer,  private  ::  ord_lim 