pro cmb_add_var2datastructure,d, d0, varname, suffix = suffix
; add  varname + '_NBIN' to data structure d
if varname eq 'AUX' then return
if n_elements(suffix) eq 0 then suffix= 'NBIN'
iexist = cmb_tag_name_exists(varname,d0, i0)
;slen = strlen(varname)-  strlen(suffix) -1 ; RonYurow 2017/11/28 following 2 lines
slen = strlen (varname)
if  strlen(suffix) gt 0 then slen = slen-  strlen(suffix) -1 
varnamedependent = strmid( varname, 0, slen)
iexist = cmb_tag_name_exists(varnamedependent,d, i1)
;help, i0,i1, varname, varnamedependent
;if i0 lt 0 or i1 lt 0 then message,'error, stopping code'
if i0 lt 0 or i1 lt 0 then return ;added by SAB 2017/11/28
if i0 le 0 then return ;i0=0 is depend_0, i0=-1 not found so return without doing anything
meta = cmb_cdf_extract_metadata( d, i1)
if cmb_tag_name_exists('VARNAME',meta) then meta.varname = varname
if cmb_tag_name_exists('UNITS',meta) then meta.UNITS = 'CNTS'
if cmb_tag_name_exists('VALIDMIN',meta) then meta.VALIDMIN = 0
; Check to make sure we are not setting the validmax to the fillval.  This can
; happen if every value is set to fillval ( possibly because the calculation
; of error bars was attempted using time interval with two or fewer data points ) 
; Added by Ron Yurow (August 22, 2018)
; if cmb_tag_name_exists('VALIDMAX',meta) then meta.VALIDMAX = max(d0.(i0))
IF  cmb_tag_name_exists ('VALIDMAX',meta) THEN BEGIN
    sink = WHERE (d0.(i0) ne meta.FILLVAL, cnt) 
    IF cnt eq 0 THEN meta.VALIDMAX = 1.0 ELSE  meta.VALIDMAX = MAX (d0.(i0))
ENDIF
; Added by Ron Yurow to limit plots only to the original data set.  Other variables
; added during binning should have the 'VAR_TYPE' attribute set to 'support data'.
if cmb_tag_name_exists('VAR_TYPE',meta) then meta.VAR_TYPE = 'support_data'
if cmb_tag_name_exists('catdesc',meta) then begin
	case suffix OF
	  'NBIN':meta.catdesc = 'Time Binning of ' +  meta.FIELDNAM
	else: begin
	   meta.catdesc = 'uncertainty of mean of ' +  meta.FIELDNAM
	   if cmb_tag_name_exists('DELTA_PLUS_VAR',meta) then meta.DELTA_PLUS_VAR =''
	   if cmb_tag_name_exists('DELTA_MINUS_VAR',meta) then meta.DELTA_MINUS_VAR=''
	   end
	ENDCASE
endif
if cmb_tag_name_exists('FIELDNAM',meta) then meta.FIELDNAM = meta.FIELDNAM + '_' + suffix

if suffix eq 'NBIN' then begin
	if cmb_tag_name_exists('LABLAXIS',meta) then $
	  if meta.LABLAXIS[0] ne '' then meta.LABLAXIS = '# of '+ meta.LABLAXIS

	if cmb_tag_name_exists('LABL_PTR_1',meta) then $
	  if meta.LABL_PTR_1[0] ne '' then meta.LABL_PTR_1 = '# of '+ meta.LABL_PTR_1

	if cmb_tag_name_exists('LABL_PTR_2',meta) then $
	  if meta.LABL_PTR_1[0] ne '' then meta.LABL_PTR_2 = '# of '+ meta.LABL_PTR_2
  
	if cmb_tag_name_exists('LABL_PTR_3',meta) then $
	  if meta.LABL_PTR_1[0] ne '' then meta.LABL_PTR_3 = '# of '+ meta.LABL_PTR_3
endif

handle = handle_create(value = d0.(i0))
a = create_struct(meta, 'HANDLE',handle_create(value = d0.(i0)))
d = create_struct(d,varname, a)
end