;+ ; ;Procedure: thm_part_conv_units ; ;Purpose: Takes the distribution data structure from a call to thm_part_dist_array and calibrates it. ;Uses the ssl_general routine conv_units to perform the operation. At this time, the operation is not ;vectorized. ; ;Inputs: ; dist_data: An array of pointers to arrays of structures. One pointer for each mode in the time series, structure for each sample within the mode array. ; Note: this routine modifes the contents of dist_data in place.(ie mutates dist_data) It has no return value. ; ;Keywords: ; units: String specifying units requested for the output data. If unspecified, units will be "eflux". ; If data is already in requested units, identify transform applied. ; Possible selections(not case sensitive): COUNTS,RATE,EFLUX,FLUX,DF ; fractional_counts: Flag to keep the ESA unit conversion routine from rounding ; to an even number of counts when removing the dead time ; correction (no effect if input data already in counts, ; no effect on SST data). ; ; error: Used to report presence of an error to calling routine. ; error==0 means no error ; error!=0 means error ; ; fractional_counts: ESA does some rounding when it converts back to counts. You should probably set this keyword to stop the rounding. ; ;Notes: ; ; This routine is part of an ongoing process to sanitize, modularize, and simplify the THEMIS particle routines. ; ;See also: thm_part_dist_array.pro,thm_crib_part_extrapolate.pro ; ; $LastChangedBy: pcruce $ ; $LastChangedDate: 2013-03-07 09:47:09 -0800 (Thu, 07 Mar 2013) $ ; $LastChangedRevision: 11743 $ ; $URL $ ;- pro thm_part_conv_units,dist_data,units=units,error=error,_extra=_extra error = 1 if size(dist_data,/type) ne 10 then begin dprint,dlevel=1,"ERROR: dist_data undefined or has wrong type" return endif if ~keyword_set(units) then begin units='eflux' endif for i = 0,n_elements(dist_data)-1 do begin for j = 0,n_elements(*dist_data[i])-1 do begin (*dist_data[i])[j] = conv_units((*dist_data[i])[j],units,_extra=_extra) endfor endfor error = 0 end