FUNCTION SetRange, default, range, lower_limit=lower_limit ;+ ; NAME: ; SetRange ; PURPOSE: ; Set range of values, checking against a default range ; CATEGORY: ; Tricks ; CALLING SEQUENCE: ; new = SetRange(default, range [, /lower_limit]) ; INPUTS: ; default array[2]; type: any ; upper and lower limits on allowed values ; OPTIONAL INPUT PARAMETERS: ; range scalar or array[2] ; range to be checked against 'default' ; /lower_limit if set then a scalar 'range' is interpreted as ; a lower limit (default is upper limit) ; OUTPUTS: ; new array[2] ; updated range of values ; if 'range' undefined then 'new' is set to 'default' ; if 'range' is scalar then new = [range,default[1]] is ; returned (/lower_limit is set), or new = [default[0],range[1]] ; is returned (/lower_limit not set ; Always 'range' is constrained to stay inside the limits set by 'default' ; INCLUDE: @compile_opt.pro ; On error, return to caller ; PROCEDURE: ; Trivial ; MODIFICATION HISTORY: ; JUN-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu) ;- InitVar, lower_limit, /key CASE n_elements(range) OF 0 : new = default 1 : IF lower_limit THEN new = [range[0] > default[0], default[1]] ELSE new = [default[0], range[1] < default[1]] ELSE: new = [range[0] > default[0], range[1] < default[1]] ENDCASE RETURN, new & END