FUNCTION tnames,s,n,index=ind,all=all,tplot=tplot , $ create_time=create_time,trange=trange,dtype=dtype,dataquants=dataquants ;+ ;FUNCTION: names=tnames(s [,n]) ;PURPOSE: ; Returns an array of "TPLOT" names ; This routine accepts wildcard characters. ;CALLING SEQUENCE: nam=tnames('wi*') ; match tplot variables that start with 'wi' ;INPUTS: s: a match string (ie. '*B3*' ) ;OPTIONAL INPUTS: s: an array of indices for tplot variables ;KEYWORD PARAMETERS: ; INDEX: named variable in which the the indices are returned. ; TRANGE: named variable in which the start / end times are returned ; CREATE_TIME named variable in which the creation time is stored. ; TPLOT: if set then returns only the variables plotted in the most recent call to TPLOT ; DATAQUANTS: if set then it returns the entire array of current stored TPLOT data quantities. ;OUTPUTS: a data name or array of data names ;OTHER OUTPUTS: n: the number of matched strings ;COMMON BLOCKS: tplot_com ;SIDE EFFECTS: none ;EXAMPLE: print,tnames('*wi*') ;VERSION: 1.8 @(#)tnames.pro 1.8 02/11/01 ;copied from iton.pro ;CREATED BY: Davin Larson Feb 1999 ;- @tplot_com if keyword_set(tplot) then begin s='' str_element,tplot_vars,'settings.varnames',s ; s=tplot_vars.settings.varnames all=1 endif ndq = n_elements(data_quants)-1 n = 0 ind = 0 if ndq le 0 then goto, done ; no data names = data_quants.name if size(/type,s) eq 0 then s='*' ; return all names if size(/type,s) eq 7 then begin ;input is a string to match if ndimen(s) eq 0 then sa=strsplit(s,' ',/extract) else sa=s if not keyword_set(all) then begin ind = strfilter(names[1:*],sa,count=n,/index) + 1 goto, done endif else begin for i=0,n_elements(sa)-1 do begin sel = strfilter(names[1:*],sa[i],/index) ind = (i eq 0) ? sel : [ind,sel] endfor ind = ind+1 w = where(ind gt 0,n) if n ne 0 then begin ind = ind[w] goto, done endif ind = 0 goto, done endelse endif if size(/type,s) le 5 then begin i = round(s) w = where(i ge 1 and i le ndq,n) if n ne 0 then ind=i[w] goto, done endif done: create_time=0 trange=0 dtype=0 if n eq 0 then return,'' if n_elements(ind) eq 1 then ind=ind[0] create_time = data_quants[ind].create_time trange = data_quants[ind].trange dtype = data_quants[ind].dtype if keyword_set(dataquants) then return, data_quants[ind] return,names[ind] END