;Merges array2 (with pointers index2) with array1 (with pointers index1) without condensing array1. pro fa_append_1d,array1,array2,index1,index2,array,index,max_index,map ndimensions1=size(array1,/dimensions) ndimensions2=size(array2,/dimensions) if ndimensions1[0] NE ndimensions2[0] then begin print,'Error: Dimensions Do Not Agree' return endif if n_elements(ndimensions1) EQ 1 then ndimensions1=[ndimensions1[0],1] if n_elements(ndimensions2) EQ 1 then ndimensions2=[ndimensions2[0],1] max_index=ndimensions1[1]-1 mod_index2=index2 map=intarr(ndimensions2[1]) array=replicate(array1[0],ndimensions1[0],ndimensions1[1]+ndimensions2[1]) array[*,0:max_index]=array1 for iii=0,ndimensions2[1]-1 do begin flag=1 for jjj=0,ndimensions1[1]-1 do begin test=equal_arrays(array2[*,iii],array1[*,jjj],tolerance=.001,/silence) if test EQ 1 then begin map[iii]=jjj wherearray=where(index2 EQ iii) if wherearray[0] NE -1 then mod_index2[wherearray]=jjj flag=0 break endif endfor if flag then begin ++max_index map[iii]=max_index wherearray=where(index2 EQ iii) if wherearray[0] NE -1 then mod_index2[wherearray]=max_index array[*,max_index]=array2[*,iii] endif endfor index=[index1,mod_index2] array=array[*,0:max_index] return end