function clear_struct,struct ;-- clear a structure on_error,1 if datatype(struct) ne 'STC' then message,'invalid input structure' new_struct=0 nstruct=n_elements(struct) name=tag_names(struct,/struct) if name ne '' then begin s=execute('new_struct={'+name+'}') endif else begin new_struct=struct(0) for i=0,n_elements(tag_names(new_struct))-1 do begin item=struct.(i) if datatype(item) eq 'STC' then new_struct.(i)=clear_struct(item) else begin if datatype(item) eq 'STR' then new_struct.(i)='' else new_struct.(i)=0 endelse endfor endelse if nstruct gt 1 then new_struct=replicate(new_struct,nstruct) return,new_struct & end