@BeginModule
@NewPage
@Name      = Monstat
@Title     = Monthly statistical values
@Section   = Statistical values
@Class     = Statistic
@Arguments = ifile ofile
@Operators = monmin monmax monsum monmean monavg monstd monstd1 monvar monvar1

@BeginDescription
This module computes statistical values over timesteps of the same month.
Depending on the chosen operator the minimum, maximum, sum, average, variance
or standard deviation of timesteps of the same month is written to @file{ofile}.
The time stamp in @file{ofile} is from the middle contributing timestep of @file{ifile}.
@EndDescription
@EndModule


@BeginOperator_monmin
@Title     = Monthly minimum

@BeginDescription
@IfMan
For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is:

o(t,x) = min{i(t',x), t_1<t'<=t_n}
@EndifMan
@IfDoc
For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf min}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monmax
@Title     = Monthly maximum

@BeginDescription
@IfMan
For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = max{i(t',x), t_1<t'<=t_n}
@EndifMan
@IfDoc
For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf max}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monsum
@Title     = Monthly sum

@BeginDescription
@IfMan
For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = sum{i(t',x), t_1<t'<=t_n}
@EndifMan
@IfDoc
For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf sum}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monmean
@Title     = Monthly mean

@BeginDescription
@IfMan
For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = mean{i(t',x), t_1<t'<=t_n}
@EndifMan
@IfDoc
For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf mean}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monavg
@Title     = Monthly average

@BeginDescription
@IfMan
For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = avg{i(t',x), t_1<t'<=t_n}
@EndifMan
@IfDoc
For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf avg}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monvar
@Title     = Monthly variance

@BeginDescription
@IfMan
Normalize by n. For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = var{i(t',x), t_1 < t' <= t_n}
@EndifMan
@IfDoc
Normalize by n. For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf var}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monvar1
@Title     = Monthly variance (n-1)

@BeginDescription
@IfMan
Normalize by (n-1). For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = var1{i(t',x), t_1 < t' <= t_n}
@EndifMan
@IfDoc
Normalize by (n-1). For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf var1}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monstd
@Title     = Monthly standard deviation

@BeginDescription
@IfMan
Normalize by n. For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = std{i(t',x), t_1 < t' <= t_n}
@EndifMan
@IfDoc
Normalize by n. For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf std}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginOperator_monstd1
@Title     = Monthly standard deviation (n-1)

@BeginDescription
@IfMan
Normalize by (n-1). For every adjacent sequence t_1, ...,t_n of timesteps of the same month it is

o(t,x) = std1{i(t',x), t_1 < t' <= t_n}
@EndifMan
@IfDoc
Normalize by (n-1). For every adjacent sequence \begin{math}t_1, ...,t_n\end{math} of timesteps of the same month it is: \\
@BeginMath
o(t,x) = \mbox{\bf std1}\{i(t',x), t_1 < t' \leq t_n\}
@EndMath
@EndifDoc
@EndDescription
@EndOperator


@BeginExample
To compute the monthly mean of a time series use:
@BeginVerbatim
   cdo monmean ifile ofile
@EndVerbatim
@EndExample
