function N_bytes,a ;----------------------------------------------------- ; dtype = size(a,/type) ;data type if dtype EQ 0 then return,0 ;undefined nel = N_elements(a) case dtype of 1: nb = 1 ;Byte 2: nb = 2 ;16 bit signed integer 3: nb = 4 ;32 bit signed integer 4: nb = 4 ;Float 5: nb = 8 ;Double 6: nb = 8 ;Complex 7: nb = max(strlen(a)) ;String 8: nb = N_tags(a,/length) ;Structure 9: nb = 16 ;Double Complex 12: nb = 2 ;Unsigned 16 bit Integer 13: nb = 4 ;Unsigned 32 bit Integer 14: nb = 8 ;64 bit signed integer 15: nb = 8 ;64 bit unsigned integer else: message,'ERROR - Object or Pointer data types not valid' endcase return,long64(nel)*nb end