;+ ;PROCEDURE: add_all ;PURPOSE: ; adds user defined structure elements to the 3d structures. ;USAGE: ; add_all,dat,add ;INPUT: ; dat: A (3d) data structure. ; add: a structure such as: {vsw:'Vp' , magf:'B3', sc_pos:'pos'} ;RESULTS: ; for the above example, the elements, vsw, magf, and sc_pos are ; added to the dat structure. The values are obtained from the tplot ; variables 'Vp', 'B3' and 'pos' respectively. ;- pro add_all,dat,add if data_type(add) ne 8 then return n = n_tags(add) names = tag_names(add) for i=0,n-1 do begin source = add.(i) ;print,"Obtaining: ",names(i)," Using: ",source if data_type(source) eq 7 then begin case strmid(source,0,2) of 'f:': begin val = call_function(strmid(source,2,40),dat) add_str_element,dat,names(i),val end 'p:': call_procedure,strmid(source,2,40),dat 's:': add_str_element,dat,names(i),strmid(source,2,40) else: begin val = data_cut(source,(dat.time+dat.end_time)/2.) add_str_element,dat,names(i),val end endcase endif else $ add_str_element,dat,names(i),source endfor end