```function RL = rlist(RL,Name,Dimension,Factor)
% RLIST  manage relevance liste
%    RL = RLIST(RL,NAME,DIMENSION,FACTOR) add a
%    variable NAME to the relevance list RL with
%    the dimension exponents row vector DIMENSION
%    which is padded with zeros to a length of 7
%    if shorter. The optional argument FACTOR
%    (default 1) is the factor between given data
%    and the data in SI units
%    NAME, DIMENSION and FACTOR can also be cell
%    arrays and matrices of identical length.
%
%    RL = RLIST(NAME,DIMENSION,FACTOR) creates a
%    new relevance list RL and inserts the variables
%    given in NAME, DIMENISION and FACTOR with FACTOR
%    beeign optional (default = 1)

% Steffen Bruecker, 2002-02-04
% mod. B - 2002-02-07

% check for number of input arguments
msg = nargchk(2,4,nargin);
if msg
error(msg);
return;
end

% check for creation of new relevance list or adding
% a variable
if ~isstruct(RL) && ~isequal(RL,[])
% create new relevance list and rename input parameters
msg = nargchk(2,3,nargin);
if msg
error(msg);
end
if nargin == 3
Factor = Dimension;
else
if ~isnumeric(Name)
error('Dimension must be numeric array!');
end
Factor = [];
end
Dimension = Name;
Name = RL;
RL = [];
else
% check if FACTOR is given
if nargin < 4
Factor = [];
end
end

% use default FACTOR if not given
if isequal(Factor,[])
if isstr(Name)
Factor = 1;
else
Factor = ones(1,length(Name));
end
end

% see if RL already exists
if exist('RL','var') ~= 1
RL = [];
end

if isstr(Name)
% only one variable to add
n = length(RL)+1;
RL(n).Name      = Name;
Dimension = [Dimension ; zeros(7,1)];
Dimension = Dimension(1:7);
RL(n).Dimension = Dimension;
RL(n).Factor    = Factor;
else
for ii=1:length(Name)