NAME:
  buildarr
 PURPOSE:   (one line only)
  Build up a master array by concatenation
 DESCRIPTION:
  This routine does very little, really.  It just allows you to
    concatenate vectors, one at a time while also handling the
    first time when the output array doesn't yet exist.  This was
    written to help clean up a common code construct that would look
    this this:

       nval=0
       for i=0,nother do begin
          generate some vectors, say a,b,c
          if nval eq 0 then begin
             aa=a
             bb=b
             cc=c
          endif else begin
             aa=[aa,a]
             bb=[bb,b]
             cc=[cc,c]
          endelse
          nval += n_elements(a) ; assuming a,b,c same length
       endfor

  With this routine this same action looks like:
       nval=0
       for i=0,nother do begin
          generate some vectors, say a,b,c
          buildarr,aa,a,nval eq 0
          buildarr,bb,b,nval eq 0
          buildarr,cc,c,nval eq 0
          nval += n_elements(a) ; assuming a,b,c same length
       endfor

 CATEGORY:
  Utility
 CALLING SEQUENCE:
  buildarr,array,newarray,nval
 INPUTS:
  array    - The is the master array that is to be built.  On input it
               will either be empty or contain values already placed in
               the array.
  newarray - Value or values to add to the master array.
  nval     - Number of valid values already in the master array.  All that
               really matters here is that nval be set to zero on the first
               time adding to the array and after that it's not zero.
 OPTIONAL INPUT PARAMETERS:
 KEYWORD INPUT PARAMETERS:
 OUTPUTS:
  array - Is modified by adding new array to end.
 KEYWORD OUTPUT PARAMETERS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
  2010/03/02, Written by Marc W. Buie, Southwest Research Institute