/* parse args */
cumfun_parse_args(argv)
{
local s, dim, dof, nanmode, method, j, val, na_arg;
s = dim = dof = nanmode = method = {};
if (argc < 1 || not(isarray(s)))
{
error(sprintf("%s - series required", __CALLER__));
}
loop (j = 1..argc)
{
if (isarray(getargv(j)))
{
try
{
s = refseries(getargv(j));
}
catch
{
s = {}
}
}
else
{
val = getargv(j);
if (isscalar(val))
{
if (isempty(dim))
{
dim = val;
}
else if (isempty(dof))
{
dof = val;
}
}
else if (isstring(val))
{
val = tolower(val);
na_arg = 0;
switch (val)
{
case "omitnan":
case "omitna":
case "omitmissing":
case "ignorenan":
case "ignorena":
val = "omitnan";
na_arg = 1;
break;
case "includenan":
case "includena":
case "includemissing":
val = "includenan";
na_arg = 1;
break;
default:
break;
}
if (na_arg)
{
nanmode = val;
}
else if (strlen(val) > 0)
{
method = val;
}
}
else
{
error(sprintf("%s - unknown parameter", __CALLER__));
}
}
}
if (isempty(dim)) dim = 1;
if (isempty(dof)) dof = 0;
if (isempty(nanmode)) nanmode = "";
if (isempty(method)) method = "";
return(s, dim, dof, nanmode, method);
}