UV_CHECK BEAMS returns a variable named BEAM_RANGES[3,Nbeam] where Nbeam is the number of different synthesized beams that can be required by the UV data (based on the visibility weights).
BEAM_RANGES[1,i] is the first channel of Beam number i BEAM_RANGES[2,i] is the last channel of Beam number i BEAM_RANGES[3,i] is the total weight of visibilities of Beam number i
BEAM_RANGES is later used by UV_PREVIEW to discard edge channels that often do not have the same weights as the bulk of channels.
Variable NBEAM_RANGES indicates the number of beam ranges. It is -1 if UV_CHECK has not yet been used.
Most automatic imaging processes will assume BEAM_RANGES is relatively simple (2 edges and a dominant main range) and simply discard the edges if any, or complain if is too complex.
For complex datasets with NBEAM_RANGES greater than 2 or 3, BEAM_RANGES could be used to segment the imaging and deconvolution process into ranges having a common beam. Setting BEAM_STEP to 1 is another possibility, but that creates 1 beam per channel, thus doubling the used space.