function sizeoftag, struct,tag ; ; Returns size of member tag of structure struct without making any copy ; -2 if type of struct or tag incorrect ; -1 if tag not member of struct ; scalar of value 1 if tag is scalar ; vector of dimensions if tag is array ; if not is_struct(struct) then return, -2 if not is_str(tag) then return, -2 help, struct, out=res inds=where(stregex(res,'[^0-9a-zA-Z_]'+strupcase(tag)+'[^0-9a-zA-Z_]') ge 0) if inds[0] ge 0 then begin substr=stregex(res[inds[0]],'^.*Array(.+) *$',/SUBEXPR,/EXTRACT) if substr[1] eq '' then $ return, [0,1] $ else begin ret=execute('sz='+substr[1]) return, [(size(sz))[n_elements(size(sz))-1],sz,long(product(sz))] endelse endif else $ return, -1 end