pro create_param, str, nam, fam, typ, val, numval, min, max, opt new = 0 ; check that str has been defined. If not, define it. if (size(str))(2) ne 8 then new = 1 else $ if tag_names(str, /structure_name) ne 'PARAM_STRUCTURE3' then new = 1 maxval = since_version('5.1')? 200 : 60 if new then $ str = {param_structure3, $ nam:'', $ ; parameter name fam:'', $ ; family that parameter belongs to typ:'', $ ; variable type (fix,long,float,double,string) val:strarr(maxval), $ ; current value of parameter numval: 0L, $ ; number of values to use from val tag min:0.d0, $ ; minimum value allowed for parameter max:0.d0, $ ; maximum value allowed for parameter opt:strarr(maxval)} ; choices for string parameters nopt = n_elements(opt) opt20 = [opt,strarr(maxval-nopt)] nval = n_elements(val) val20 = [val,strarr(maxval-nval)] new_param = {param_structure3, nam, fam, typ, val20, numval*1L, $ min*1.d0, max*1.d0, opt20} if new then str = new_param else str = [str, new_param] return&end