/[MITgcm]/manual/s_ecco/text/ecco.tex
ViewVC logotype

Diff of /manual/s_ecco/text/ecco.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by gforget, Fri Sep 16 18:52:27 2016 UTC revision 1.2 by gforget, Sun Sep 18 21:19:54 2016 UTC
# Line 40  $\mathcal{R}$          &       Pre-conditioning operat Line 40  $\mathcal{R}$          &       Pre-conditioning operat
40    
41  \subsection{Generic Cost Function Terms} \label{costgen}  \subsection{Generic Cost Function Terms} \label{costgen}
42    
43  The parameters available for configuring generic cost terms in \texttt{data.ecco} are given in table~\ref{tbl:gencost_ecco_params} and example of possible specifications are available in:  The parameters available for configuring generic cost terms in \texttt{data.ecco} are given in table~\ref{tbl:gencost_ecco_params} and examples of possible specifications are available in:
44  \begin{itemize}  \begin{itemize}
45  \itemsep0em  \itemsep0em
46  \item MITgcm\_contrib/verification\_other/global\_oce\_cs32/input/data.ecco  \item MITgcm\_contrib/verification\_other/global\_oce\_cs32/input/data.ecco
# Line 49  The parameters available for configuring Line 49  The parameters available for configuring
49  \end{itemize}  \end{itemize}
50    
51   \noindent   \noindent
52  The gridded observation file name is specified by `gencost\_datafile'. Observational time series may be provided as on big file or split into yearly files finishing in \texttt{`\_1992'}, \texttt{`\_1993'}, etc. The corresponding physical variable in $\vec{m}_i$ is specified via the first characters in \texttt{gencost\_barfile}. The list of implemented variables (as of checkpoint \mitgcmCheckpointVersion) is reported in table~\ref{tbl:gencost_ecco_barfile}. A file named according to \texttt{gencost\_barfile} will be created where averaged fields will be written progressively as the model integration proceeds forward in time. At the end this file will be re-read by \texttt{cost\_generic} to compute the cost function and (if \texttt{gencost\_outputlevel} = 1) output model-data misfit fields (i.e., $\vec{d}_i$) for offline analysis and visualization.  The gridded observation file name is specified by \texttt{gencost\_datafile}. Observational time series may be provided as on big file or split into yearly files finishing in \texttt{`\_1992'}, \texttt{`\_1993'}, etc. The corresponding $\vec{m}_i$ physical variable is specified via the \texttt{gencost\_barfile} root (see table~\ref{tbl:gencost_ecco_barfile}). A file named as specified by \texttt{gencost\_barfile} gets created where averaged fields are written progressively as the model steps forward in time. After the final time step this file is re-read by \texttt{cost\_generic.F} to compute the cost function. If \texttt{gencost\_outputlevel} = 1 then \texttt{cost\_generic.F} outputs model-data misfit fields (i.e., $\vec{d}_i$) to a file which name starts with `misfit\_' for offline analysis and visualization.
53    
54  In the current implementation, model-data error covariance matrices $R_i$ omit non-diagonal terms. Specifying $R_i=\sigma_i^2$ thus boils down to providing uncertainty fields ($\sigma_i$ such that $R_i=\sigma_i^2$) in a file which name is specified via \texttt{gencost\_errfile}. By default $\sigma_i$ is assumed time-invariant but a $\sigma_i$ time series (of the same length as $\vec{o}_i$ time series) can be provided using the \texttt{variaweight} option. By default a cost function is quadratic but $\vec{d}_i^T R_i^{-1} \vec{d}_i$ can be replaced with $R_i^{-1/2} \vec{d}_i$ using the \texttt{nosumsq} option.  In the current implementation, model-data error covariance matrices $R_i$ omit non-diagonal terms. Specifying $R_i$ thus boils down to providing uncertainty fields ($\sigma_i$ such that $R_i=\sigma_i^2$) in a file specified via \texttt{gencost\_errfile}. By default $\sigma_i$ is assumed to be time-invariant but a $\sigma_i$ time series of the same length as $\vec{o}_i$ time series can be provided using the \texttt{variaweight} option (table~\ref{tbl:gencost_ecco_preproc}). By default cost functions are quadratic but $\vec{d}_i^T R_i^{-1} \vec{d}_i$ can be replaced with $R_i^{-1/2} \vec{d}_i$ using the \texttt{nosumsq} option (table~\ref{tbl:gencost_ecco_preproc}).
55    
56  In principle, any periodicity should be possible, but only \texttt{`day'}, \texttt{`month'}, \texttt{`step'}, and \texttt{`const'} are implemented for \texttt{gencost\_avgperiod}. If two different averages of the same variable are needed for separate cost function terms (e.g., daily and monthly) then an extension starting with `\_' should be added to \texttt{gencost\_barfile} (such as `\_day' and `\_mon').  In principle, any averaging frequency should be possible, but only \texttt{`day'}, \texttt{`month'}, \texttt{`step'}, and \texttt{`const'} are implemented for \texttt{gencost\_avgperiod}. If two different averaging frequencies are needed for the same variable in separate cost function terms (e.g., daily and monthly) then an extension starting with `\_' should be added to \texttt{gencost\_barfile} (such as `\_day' and `\_mon').
57  \footnote{ecco\_check may be missing a test for conflicting names.} If two cost function terms use the same variable and periodicity, however, then using a common \texttt{gencost\_barfile} saves disk space.  \footnote{ecco\_check may be missing a test for conflicting names.} If two cost function terms use the same variable and periodicity, however, then using a common \texttt{gencost\_barfile} saves disk space.
58    
59  Climatologies of $\vec{m}_i$ can be formed from the time series of model averages in order to compare with climatologies of $\vec{o}_i$ by activating the \texttt{`clim'} option via \texttt{gencost\_preproc} and setting the corresponding \texttt{gencost\_preproc\_i}  integer parameter to the number of records (i.e., months, days, or time steps) per climatological cycle. The generic post-processor ($\mathcal{P}$ in Eq.~\eqref{eq:Jposproc}) allows model-data misfits to be, for example, smoothed in space by setting \texttt{gencost\_posproc} to \texttt{`smooth'}. Other options associated with the computation of Eq.~\eqref{eq:Jtotal} are summarized in table~\ref{tbl:gencost_ecco_preproc} and further discussed below. Multiple \texttt{gencost\_preproc} / \texttt{gencost\_posproc} options may be specified per cost term.  Climatologies of $\vec{m}_i$ can be formed from the time series of model averages in order to compare with climatologies of $\vec{o}_i$ by activating the \texttt{`clim'} option via \texttt{gencost\_preproc} and setting the corresponding \texttt{gencost\_preproc\_i}  integer parameter to the number of records (i.e., months, days, or time steps) per climatological cycle. The generic post-processor ($\mathcal{P}$ in Eq.~\eqref{eq:Jposproc}) also allows model-data misfits to be, for example, smoothed in space by setting \texttt{gencost\_posproc} to \texttt{`smooth'}. Other options associated with the computation of Eq.~\eqref{eq:Jtotal} are summarized in table~\ref{tbl:gencost_ecco_preproc} and further discussed below. Multiple \texttt{gencost\_preproc} / \texttt{gencost\_posproc} options may be specified per cost term.
60    
61  In general the specification of \texttt{gencost\_name} is optional, has no impact on the end-result, and only serves to identify cost function terms in the model text outputs (STDOUT.0000, STDERR.0000, costfunction000). The exceptions are listed in table~\ref{tbl:gencost_ecco_name}, which activate alternative cost function codes (in place of \texttt{cost\_generic.F}) described in the following subsections. The specification of \texttt{gencost\_mask} allows the user to specify whether the gridded data input and model counterparts is located at tracer points (`c'; the default) or velocity points (`w' or `s'). Note however that the `c' option (not `w' or `s') should be used when gridded velocity data is provided as zonal/meridional components at tracer points.  In general the specification of \texttt{gencost\_name} is optional, has no impact on the end-result, and only serves to identify cost function terms in model outputs (STDOUT.0000, STDERR.0000, costfunction000, misfit*.data). Exceptions listed in table~\ref{tbl:gencost_ecco_name} activate alternative cost function codes (in place of \texttt{cost\_generic.F}) described in the following subsections. The specification of \texttt{gencost\_mask} allows the user to specify whether the gridded data input and model counterparts are located at tracer points (`c'; the default) or velocity points (`w' or `s'). However the `c' option (not `w' or `s') should be used when gridded velocity data is provided as zonal/meridional components at tracer points (e.g., for all vector cases listed in table~\ref{tbl:gencost_ecco_barfile}).
62    
63  \begin{table}[!ht]  \begin{table}[!ht]
64  \centering  \centering
# Line 106  parameter                                      &       type                    &       function \\ \hl Line 106  parameter                                      &       type                    &       function \\ \hl
106  \begin{table}[!ht]  \begin{table}[!ht]
107  \centering  \centering
108  \begin{tabular}{lll}  \begin{tabular}{lll}
109  variable name                           &       description                                             &       remarks \\ \hline\hline  variable name                           &       description                             & remarks \\ \hline\hline
110  \texttt{m\_eta}                         &       sea surface height                              &       free surface + corrections \\  \texttt{m\_eta}                         &       sea surface height                      & free surface + ice + global steric correction \\
111  \texttt{m\_sst}                         &       sea surface temperature                 &       first level potential temperature \\  \texttt{m\_sst}                         &       sea surface temperature         & first level potential temperature \\
112  \texttt{m\_sss}                         &       sea surface salinity                    &       first level salinity \\  \texttt{m\_sss}                         &       sea surface salinity                    & first level salinity \\
113  \texttt{m\_bp}                          &       bottom pressure                                 & \\ \hline  \texttt{m\_bp}                          &       bottom pressure                 & phiHydLow\\
114  \texttt{m\_ustress}                     &       zonal wind stress                               & \\  \texttt{m\_siarea}                      &       sea-ice area                            & from pkg/seaice \\
115  \texttt{m\_vstress}                     &       meridional wind stress                  & \\  \texttt{m\_siheff}                      &       sea-ice effective thickness             & from pkg/seaice \\
116  \texttt{m\_uwind}                       &       zonal wind                                              & \\  \texttt{m\_sihsnow}                     &       snow effective thickness                & from pkg/seaice \\ \hline
117  \texttt{m\_vwind}                       &       meridional wind                                 & \\  \texttt{m\_theta}                               &       potential temperature           & three-dimensional \\
118  \texttt{m\_atemp}                       &       atmospheric temperature                 & \\  \texttt{m\_salt}                                &       salinity                                        & three-dimensional \\
119  \texttt{m\_aqh}                         &       atmospheric specific humidity   & \\  \texttt{m\_UE}                          &       zonal velocity                          & three-dimensional \\
120  \texttt{m\_precip}                      &       precipitation                                   & \\  \texttt{m\_VN}                          &       meridional velocity                     & three-dimensional \\ \hline
121  \texttt{m\_swdown}                      &       downward shortwave                              & \\  \texttt{m\_ustress}                     &       zonal wind stress                       & from pkg/exf \\
122  \texttt{m\_lwdown}                      &       downward longwave                               & \\  \texttt{m\_vstress}                     &       meridional wind stress          & from pkg/exf\\
123  \texttt{m\_wspeed}                      &       wind speed                                              & \\ \hline  \texttt{m\_uwind}                       &       zonal wind                              & from pkg/exf\\
124  \texttt{m\_siarea}                      &       sea-ice area                                    & \\  \texttt{m\_vwind}                       &       meridional wind                         & from pkg/exf\\
125  \texttt{m\_siheff}                      &       sea-ice effective thickness             & \\  \texttt{m\_atemp}                       &       atmospheric temperature         & from pkg/exf\\
126  \texttt{m\_sihsnow}                     &       snow effective thickness                & \\ \hline  \texttt{m\_aqh}                         &       atmospheric specific humidity   & from pkg/exf\\
127  \texttt{m\_theta}                       &       potential temperature                   & three-dimensional \\  \texttt{m\_precip}                      &       precipitation                           & from pkg/exf\\
128  \texttt{m\_salt}                        &       salinity                                                & three-dimensional \\  \texttt{m\_swdown}                      &       downward shortwave              & from pkg/exf\\
129  \texttt{m\_UE}                          &       zonal velocity                                  & three-dimensional \\  \texttt{m\_lwdown}                      &       downward longwave                       & from pkg/exf\\
130  \texttt{m\_VN}                          &       meridional velocity                             & three-dimensional \\ \hline  \texttt{m\_wspeed}                      &       wind speed                              & from pkg/exf\\ \hline
131  \texttt{m\_diffkr}                      &       vertical/diapycnal diffusivity  & three-dimensional, constant \\  \texttt{m\_diffkr}                              &       vertical/diapycnal diffusivity  & three-dimensional, constant \\
132  \texttt{m\_kapgm}                       &       GM diffusivity                                  & three-dimensional, constant \\  \texttt{m\_kapgm}                       &       GM diffusivity                          & three-dimensional, constant \\
133  \texttt{m\_kapredi}                     &       isopycnal diffusivity                   & three-dimensional, constant \\  \texttt{m\_kapredi}                     &       isopycnal diffusivity                   & three-dimensional, constant \\
134  \texttt{m\_geothermalflux}      &       geothermal heat flux                    & constant \\  \texttt{m\_geothermalflux}              &       geothermal heat flux                    & constant \\
135  \texttt{m\_bottomdrag}          &       bottom drag                                             & constant \\  \texttt{m\_bottomdrag}          &       bottom drag                             & constant \\
136  \end{tabular}  \end{tabular}
137  \caption{Implemented \texttt{gencost\_barfile} options (as of checkpoint \mitgcmCheckpointVersion) that can be used via \texttt{cost\_generic.F} as explained in section~\ref{costgen}. An extension starting with `\_' can be appended at the end of the variable name to distinguish between separate cost function terms.}  \caption{Implemented \texttt{gencost\_barfile} options (as of checkpoint \mitgcmCheckpointVersion) that can be used via \texttt{cost\_generic.F} as explained in section~\ref{costgen}. An extension starting with `\_' can be appended at the end of the variable name to distinguish between separate cost function terms. Notes: here `zonal' / `meridional' are to be taken literally (unlike in other parts of the manual) and these components are computed on tracer points (not on the C-grid vector points); the `m\_eta' formula depends on the \texttt{ATMOSPHERIC\_LOADING} and \texttt{ALLOW\_PSBAR\_STERIC} compile time options and `useRealFreshWaterFlux' run time parameter.}
138  \label{tbl:gencost_ecco_barfile}  \label{tbl:gencost_ecco_barfile}
139  \end{table}  \end{table}
140    
# Line 153  name                                   &       description                                     &       specs neede Line 153  name                                   &       description                                     &       specs neede
153  \texttt{smooth}                         &       Smooth misfits                          &       character: smoothing scale file\\  \texttt{smooth}                         &       Smooth misfits                          &       character: smoothing scale file\\
154                                                  &                                                               &       integer: smoother \# of time steps \\                                                  &                                                               &       integer: smoother \# of time steps \\
155  \end{tabular}  \end{tabular}
156  \caption{\texttt{gencost\_preproc} and \texttt{gencost\_posproc} options implemented as of checkpoint \mitgcmCheckpointVersion.}  \caption{\texttt{gencost\_preproc} and \texttt{gencost\_posproc} options implemented as of checkpoint \mitgcmCheckpointVersion. Note: the distinction between \texttt{gencost\_preproc} and \texttt{gencost\_posproc} may be revisited in the future.}
157  \label{tbl:gencost_ecco_preproc}  \label{tbl:gencost_ecco_preproc}
158  \end{table}  \end{table}
159    
# Line 161  name                                   &       description                                     &       specs neede Line 161  name                                   &       description                                     &       specs neede
161    
162  \subsection{Custom Cost Function Terms} \label{v4custom}  \subsection{Custom Cost Function Terms} \label{v4custom}
163    
164  This section pertains to the special cases of cost\_gencost\_bpv4.F  cost\_gencost\_seaicev4.F  cost\_gencost\_sshv4.F  cost\_gencost\_sstv4.F  This section pertains to the special cases of \texttt{cost\_gencost\_bpv4.F}, \texttt{cost\_gencost\_seaicev4.F}, \texttt{cost\_gencost\_sshv4.F}, and \texttt{cost\_gencost\_sstv4.F}. It is very much a work in progress. If \texttt{gencost\_name} is either `sshv4-mdt' or `sshv4-lsc' then additional smoothing arguments can be specified via \texttt{gencost\_scalefile} (file containing the smoothing scale field) and \texttt{gencost\_smooth2Ddiffnbt} (number of smoothing time steps).\footnote{These parameters are otherwise not used and \texttt{gencost\_posproc*} will eventually be used instead.}
   
 If \texttt{gencost\_name} is any of the \texttt{sshv4} or \texttt{sstv4} terms, additional smoothing arguments can be specified---\texttt{gencost\_scalefile} points to a file containing the smoothing scales and \texttt{gencost\_smooth2Ddiffnbt} gives the number of smoothing steps. These parameters are otherwise not used.  
165    
166  \subsection{Boxmean Generic Cost Function} \label{genboxmean}  \subsection{Boxmean Generic Cost Function} \label{genboxmean}
167    
168  This section pertains to the special case of cost\_gencost\_boxmean.F and is very much a work in progress. The box mean generic cost function penalizes the mean of a model field over a box (non quadratic cost function). To use this cost function, set \texttt{gencost\_name = 'boxmean*'}, where \texttt{*} is an optional suffix starting with \texttt{`\_'}. The model field of interest is specified by \texttt{gencost\_barfile}. Currently valid options are \texttt{m\_boxmean\_theta}, \texttt{m\_boxmean\_salt}, and \texttt{m\_boxmean\_eta}. The ``box'' is a mask of ones and zeros read from files whose prefix is given by the string \texttt{gencost\_errfile}. Different files contain the horizontal, vertical, and temporal masks; these files are distinguished by the suffixes \texttt{`C'}, \texttt{`K'}, and \texttt{`T'}, respectively. For example, if \texttt{gencost\_errfile = 'foo\_mask'}, then the horizontal, vertical, and temporal mask files are named \texttt{foo\_maskC}, \texttt{foo\_maskK}, and \texttt{foo\_maskT}. Note that the horizontal mask can have an arbitrary shape, so the ``box'' is not necessarily rectangular.  This section pertains to the special case of cost\_gencost\_boxmean.F and is very much a work in progress. The boxmean generic cost function penalizes the mean of a model field over a ``box" (non quadratic cost function). To use this cost function, set \texttt{gencost\_name} to `boxmean' followed by a suffix starting with \texttt{`\_'}. The model field of interest is specified by \texttt{gencost\_barfile}. Currently valid options are \texttt{m\_boxmean\_theta}, \texttt{m\_boxmean\_salt}, and \texttt{m\_boxmean\_eta}. The ``box'' is defined by a mask of ones and zeros read from files whose root is given by the string \texttt{gencost\_errfile}. Different files contain the horizontal, vertical, and temporal masks; these files are distinguished by the suffixes \texttt{`C'}, \texttt{`K'}, and \texttt{`T'}, respectively. For example, if \texttt{gencost\_errfile = `foo\_mask'}, then the horizontal, vertical, and temporal mask files are named \texttt{foo\_maskC}, \texttt{foo\_maskK}, and \texttt{foo\_maskT}. Note that the horizontal mask can have an arbitrary shape; the ``box'' is not necessarily rectangular.
169    
170  \subsection{Transport Generic Cost Function} \label{gentrsp}  \subsection{Transport Generic Cost Function} \label{gentrsp}
171    
172  This section pertains to the special case of cost\_gencost\_transp.F and is very much a work in progress. The transport generic cost function penalizes the transport of volume, heat, or salt through a specified section (non quadratic cost function). To use this cost function, set \texttt{gencost\_name = 'transp*'}, where \texttt{*} is an optional suffix starting with \texttt{`\_'}, and set \texttt{gencost\_barfile} to one of \texttt{m\_trVol}, \texttt{m\_trHeat}, and \texttt{m\_trSalt}. The section is specified a mask of ones and zeros denoting ``west'' and ``south'' faces through which to compute transport. The prefix for the mask files is given by the string \texttt{gencost\_errfile}, with the suffixes \texttt{`W'} and \texttt{`S'} denoting the ``west'' and ``south'' faces, respectively. There does not appear to be a suffix denoting a temporal mask, but temporal masking could be achieved using the \texttt{variaweight} post-processor.  This section pertains to the special case of cost\_gencost\_transp.F and is very much a work in progress. The transport generic cost function penalizes a transport of volume, heat, or salt through a specified section (non quadratic cost function). To use this cost function, set \texttt{gencost\_name = `transp*'}, where \texttt{*} is an optional suffix starting with \texttt{`\_'}, and set \texttt{gencost\_barfile} to one of \texttt{m\_trVol}, \texttt{m\_trHeat}, and \texttt{m\_trSalt}. The section is specified via masks of +1, -1, and 0 values at `w' and `s' velocity points. The mask files name root is given by the string \texttt{gencost\_errfile}, with the suffixes \texttt{`W'} and \texttt{`S'} denoting the ``w'' and ``s'' points, respectively. Temporal and vertical masks remain to be implemented, although temporal masking can already be achieved using the \texttt{variaweight} post-processor.
173    
174  \begin{table}[!ht]  \begin{table}[!ht]
175  \centering  \centering
176  \begin{tabular}{lll}  \begin{tabular}{lll}
177  name                                            &       description                                     &       remarks \\ \hline\hline  name                                            &       description                                     &       remarks \\ \hline\hline
178  \texttt{sshv4-mdt}                      &       sea surface height                      &       mean dynamic topography (SLA + geod) \\  \texttt{sshv4-mdt}                      &       sea surface height                      &       mean dynamic topography (SSH - geod) \\
179  \texttt{sshv4-tp}                       &       sea surface height                      &       TOPEX SLA \\  \texttt{sshv4-tp}                               &       sea surface height                      &       Along-Track Topex/Jason SLA (level 3) \\
180  \texttt{sshv4-ers}                      &       sea surface height                      &       ERS SLA \\  \texttt{sshv4-ers}                      &       sea surface height                      &       Along-Track ERS/Envisat SLA (level 3)\\
181  \texttt{sshv4-gfo}                      &       sea surface height                      &       \\  \texttt{sshv4-gfo}                      &       sea surface height                      &       Along-Track GFO class SLA (level 3)\\
182  \texttt{sshv4-lsc}                      &       sea surface height                      &       \\  \texttt{sshv4-lsc}                      &       sea surface height                      &       Large-Scale SLA (from the above)\\
183  \texttt{sshv4-gmsl}                     &       sea surface height                      &       \\  \texttt{sshv4-gmsl}                     &       sea surface height                      &       Global-Mean SLA (from the above)\\ \hline
184  \texttt{bpv4-grace}                     &       bottom pressure                         &       \\  \texttt{bpv4-grace}                     &       bottom pressure                 &       GRACE maps (level 4) \\ \hline
185  \texttt{sstv4-amsre}            &       sea surface temperature         &       \\  \texttt{sstv4-amsre}                    &       sea surface temperature         &       Along-Swath SST (level 3)\\
186  \texttt{sstv4-amsre-lsc}        &       sea surface temperature         &       \\ \hline  \texttt{sstv4-amsre-lsc}                &       sea surface temperature         &       Large-Scale SST (from the above)\\ \hline
187  \texttt{boxmean}                        &       mean over a box                         &       specify box \\  \texttt{si4-cons}                               &       sea ice concentration           &       needs sea-ice adjoint (level 4)\\
188  \texttt{transp}                         &       transport across section        &       specify section \\ \hline  \texttt{si4-deconc}                     &       model sea ice deficiency                &       proxy penalty (from the above)\\
189  \texttt{si4-cons}                       &       sea ice concentration           & \\  \texttt{si4-exconc}                     &       model sea ice excess            &       proxy penalty (from the above)\\ \hline
190  \texttt{si4-deconc}                     &       model sea ice deficiency        & \\  \texttt{boxmean}                        &       mean over a box                 &       see section~\ref{genboxmean}  \\
191  \texttt{si4-exconc}                     &       model sea ice excess    & \\  \texttt{transp}                         &       transport across section                &       see section~\ref{gentrsp} \\
192  \end{tabular}  \end{tabular}
193  \caption{Pre-defined \texttt{gencost\_name} options associated with the sections~\ref{v4custom}, \ref{genboxmean}, \ref{gentrsp} special cases.}  \caption{Pre-defined \texttt{gencost\_name} special cases (sections~\ref{v4custom}, \ref{genboxmean}, \ref{gentrsp}).}
194  \label{tbl:gencost_ecco_name}  \label{tbl:gencost_ecco_name}
195  \end{table}  \end{table}
196    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22