Newer
Older
Ano <- function(var, clim) {
#
# Duplicate clim dimensions to heve same dimensions as var
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
dimvar <- dim(var)
if (length(dim(clim)) <= 2) {
clim <- InsertDim(clim, 2, dimvar[2])
}
if ((length(dimvar) > length(dim(clim))) & (dim(clim)[2] != dimvar[2])) {
Nicolau Manubens Gil
committed
clim <- InsertDim(clim, 2, dimvar[2])
if ((length(dimvar) > length(dim(clim))) & (dim(clim)[2] == dimvar[2])) {
if (is.null(names(dim(clim))) | is.null(names(dimvar))) {
stop('Provide dimension names on parameter \'var\' and \'clim\' to avoid ambiguity.')
} else {
if (names(dim(clim)[2]) != names(dimvar[2])) {
clim <- InsertDim(clim, 2, dimvar[2])
}
}
}
if ((length(dimvar) > length(dim(clim))) & (dim(clim)[3] != dimvar[3])) {
Nicolau Manubens Gil
committed
clim <- InsertDim(clim, 3, dimvar[3])
if ((length(dimvar) > length(dim(clim))) & (dim(clim)[3] == dimvar[3])) {
if (is.null(names(dim(clim))) | is.null(names(dimvar))) {
stop('Provide dimension names on parameter \'var\' and \'clim\' to avoid ambiguity.')
} else {
if (names(dim(clim)[3]) != names(dimvar[3])) {
clim <- InsertDim(clim, 3, dimvar[3])
}
}
}
if ((length(dimvar) > length(dim(clim))) & (dim(clim)[4] != dimvar[4])) {
Nicolau Manubens Gil
committed
clim <- InsertDim(clim, 4, dimvar[4])
if ((length(dimvar) > length(dim(clim))) & (dim(clim)[4] == dimvar[4])) {
if (is.null(names(dim(clim))) | is.null(names(dimvar))) {
stop('Provide dimension names on parameter \'var\' and \'clim\' to avoid ambiguity.')
} else {
if (names(dim(clim)[4]) != names(dimvar[4])) {
clim <- InsertDim(clim, 4, dimvar[4])
}
}
}
#
# Raw anomalies
# ~~~~~~~~~~~~~~~
#
ano <- var - clim
#
# Outputs
# ~~~~~~~~~
#
ano
}