function replicate_array,B,nr db=size(B,/dimensions) tb=size(B,/type) nb=size(B,/n_dimensions) case n_elements(nr) of 1: begin case nb of 0: begin A=Make_Array(Value=B,Dim=nr) end 1: begin A=Make_Array(Type=tb,Dim=nr*db) for i=0,nr*db[0]-1,db[0] do A[i:i+db[0]-1]=B end 2: begin A=Make_Array(Type=tb,Dim=[nr*db[0],db[1]]) for i=0,nr*db[0]-1,db[0] do A[i:i+db[0]-1,*]=B end endcase end 2: begin case nb of 0: begin A=Make_Array(Dim=nr,Value=B) end 1: begin A=Make_Array(Type=tb,Dim=nr*[db,1]) for i=0,nr[0]*db[0]-1,db[0] do A[i:i+db[0]-1,0]=B for i=0,nr[1]-1 do A[*,i]=A[*,0] end 2: begin A=Make_Array(Type=tb,Dim=nr*db) for i=0,nr[0]*db[0]-1,db[0] do A[i:i+db[0]-1,0:db[1]-1]=B for i=0,nr[1]*db[1]-1,db[1] do A[*,i:i+db[1]-1]=A[*,0:db[1]-1] end endcase end else: A=-1 endcase RETURN,A END