;+ ;FUNCTION: data_type(x) ; This function is obsolete please don't use in new code. Use "type = size(/type,x)" instead. ;PURPOSE: ; Returns the variable type (ignores dimension). ;INPUTS: x: Any idl variable. ;OUTPUT: integer variable type: ; 0 = undefined ; 1 = byte ; 2 = integer ; 3 = long ; 4 = float ; 5 = double ; 6 = complex ; 7 = string ; 8 = structure ; 9 = double precision complex ; ;KEYWORDS: ; STRUCTURE: When set and if input is a structure, then an array ; of data types are returned. ; ;SEE ALSO: "dimen", "ndimen" ; ;CREATED BY: Davin Larson ;LAST MODIFICATION: @(#)data_type.pro 1.7 00/07/05 ;- function data_type, val, STRUCTURE=str,n_elements=n_elem,ndimen=ndim if keyword_set(str) then begin n = n_tags(val) if n eq 0 then return,0 t = lonarr(n) n_elem = lonarr(n) ndim = intarr(n) for i=0,n-1 do begin t[i]=data_type(val.(i),n_elements=n_el,ndimen=nd) n_elem[i] = n_el ndim[i] = nd endfor return,t endif s = size(val) dt = s[ s[0] +1 ] if dt ne 0 then ndim = s[0] else ndim=-1 n_elem = n_elements(val) return, dt end