FUNCTION Weightm, data, sig, flag good_values = where(flag gt 0, good_num) if good_num gt 0 then begin data_short = data[good_values] sig_short = sig[good_values] wts = 1.0 / (sig_short)^2 sum = total(wts*data_short) n = total(wts) mean = sum / n sdm = sqrt(total((sig_short)^2)) / sqrt(good_num) meansdm = [mean, sdm, good_num] endif else if good_num eq 0 then begin meansdm = [-1, -1, 0] endif RETURN, meansdm END