# New URL for NEMO forge! http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 11311 – NEMO

# Changeset 11311

Ignore:
Timestamp:
2019-07-19T18:03:07+02:00 (4 years ago)
Message:

#2297 Fix a few typos

Location:
NEMO/branches/2019/dev_r11233_obsasm_docfixes/doc/latex/NEMO/subfiles
Files:
2 edited

### Legend:

Unmodified
 r11307 \begin{tabular}{l||l|m{0.65\linewidth}} Release   & Author        & Modifications \\ {\em 4.0} & {\em D. J. Lea} & {\em NEMO 4.0 updates}  \\ {\em 4.0} & {\em D. J. Lea} & {\em \NEMO 4.0 updates}  \\ {\em 3.6} & {\em M. Martin, A. Ryan} & {\em Add averaging operator, standalone obs oper} \\ {\em 3.4} & {\em D. J. Lea, M. Martin, ...} & {\em Initial version}  \\ The observation and model comparison code, the observation operator (OBS), reads in observation files (profile temperature and salinity, sea surface temperature, sea level anomaly, sea ice concentration, and velocity) and calculates an interpolated model equivalent value at the observation location and nearest model timestep. (profile temperature and salinity, sea surface temperature, sea level anomaly, sea ice concentration, and velocity) and calculates an interpolated model equivalent value at the observation location and nearest model time step. The resulting data are saved in a feedback'' file (or files). The code was originally developed for use with the NEMOVAR data assimilation code, but can be used for validation or verification of the model or with any other data assimilation system. The OBS code is called from \mdl{nemogcm} for model initialisation and to calculate the model equivalent values for observations on the 0th timestep. The code is then called again after each timestep from \mdl{step}. The OBS code is called from \mdl{nemogcm} for model initialisation and to calculate the model equivalent values for observations on the 0th time step. The code is then called again after each time step from \mdl{step}. The code is only activated if the \ngn{namobs} namelist logical \np{ln\_diaobs} is set to true. the observation operator code can calculate equivalent night-time average model SST fields by setting the namelist value \np{ln\_sstnight} to true. Otherwise (by default) the model value from the nearest timestep to the observation time is used. Otherwise (by default) the model value from the nearest time step to the observation time is used. The code is controlled by the namelist \ngn{namobs}. See the following sections for more details on setting up the namelist. \autoref{sec:OBS_example} introduces a test example of the observation operator code including In \autoref{sec:OBS_example} a test example of the observation operator code is introduced, including where to obtain data and how to setup the namelist. \autoref{sec:OBS_details} introduces some more technical details of the different observation types used and also shows a more complete namelist. \autoref{sec:OBS_theory} introduces some of the theoretical aspects of the observation operator including In \autoref{sec:OBS_details} some more technical details of the different observation types used are introduced, and we also show a more complete namelist. In \autoref{sec:OBS_theory} some of the theoretical aspects of the observation operator are described including interpolation methods and running on multiple processors. \autoref{sec:OBS_sao} describes the standalone observation operator code. \autoref{sec:OBS_obsutils} introduces some utilities to help working with the files produced by the OBS code. In \autoref{sec:OBS_sao} the standalone observation operator code is described. In \autoref{sec:OBS_obsutils} we describe some utilities to help work with the files produced by the OBS code. % ================================================================ In this section an example of running the observation operator code is described using profile observation data which can be freely downloaded. It shows how to adapt an existing run and build of NEMO to run the observation operator. Note also the observation operator and the assimilation increments code are run in the \np{ORCA2\_ICE\_OBS} SETTE test. It shows how to adapt an existing run and build of \NEMO to run the observation operator. Note also the observation operator and the assimilation increments code are run in the \np{ORCA2\_ICE\_OBS} SETTE test. \begin{enumerate} \end{cmds} \item Include the following in the NEMO namelist to run the observation operator on this data: \item Include the following in the \NEMO namelist to run the observation operator on this data: \end{enumerate} A number of utilities are now provided to plot the feedback files, convert and recombine the files. These are explained in more detail in \autoref{sec:OBS_obsutils}. Utilites to convert other input data formats into the feedback format are also described in Utilities to convert other input data formats into the feedback format are also described in \autoref{sec:OBS_obsutils}. In those cases the model counterpart should be calculated by averaging the model grid points over the same size as the footprint. NEMO therefore has the capability to specify either an interpolation or an averaging \NEMO therefore has the capability to specify either an interpolation or an averaging (for surface observation types only). \subsubsection{Horizontal interpolation} Consider an observation point ${\mathrm P}$ with with longitude and latitude (${\lambda_{}}_{\mathrm P}$, $\phi_{\mathrm P}$) and Consider an observation point ${\mathrm P}$ with longitude and latitude (${\lambda_{}}_{\mathrm P}$, $\phi_{\mathrm P}$) and the four nearest neighbouring model grid points ${\mathrm A}$, ${\mathrm B}$, ${\mathrm C}$ and ${\mathrm D}$ with longitude and latitude ($\lambda_{\mathrm A}$, $\phi_{\mathrm A}$),($\lambda_{\mathrm B}$, $\phi_{\mathrm B}$) etc. All horizontal interpolation methods implemented in NEMO estimate the value of a model variable $x$ at point $P$ as All horizontal interpolation methods implemented in \NEMO estimate the value of a model variable $x$ at point $P$ as a weighted linear combination of the values of the model variables at the grid points ${\mathrm A}$, ${\mathrm B}$ etc.: the averaging is likely need to cover. \item The longitudes and latitudes of the grid points surrounding the nearest model grid box are extracted using existing mpi routines. existing MPI routines. \item The weights for each grid point associated with each observation are calculated, either for radial or rectangular footprints. \subsection{Grid search} For many grids used by the NEMO model, such as the ORCA family, the horizontal grid coordinates $i$ and $j$ are not simple functions of latitude and longitude. For many grids used by the \NEMO model, such as the ORCA family, the horizontal grid coordinates $i$ and $j$ are not simple functions of latitude and longitude. Therefore, it is not always straightforward to determine the grid points surrounding any given observational position. Before the interpolation can be performed, a search algorithm is then required to determine the corner points of At the bottom boundary, this is done using the land-ocean mask. For profile observation types we do both vertical and horizontal interpolation. NEMO has a generalised vertical coordinate system this means the vertical level depths can vary with location. Therefore, it is necessary first to perform vertical interpolation of the model value to the observation depths for each of the four surrounding grid points. After this the model values, at these points, at the observation depth, are horizontally interpolated to the observation location. For profile observation types we do both vertical and horizontal interpolation. \NEMO has a generalised vertical coordinate system this means the vertical level depths can vary with location. Therefore, it is necessary first to perform vertical interpolation of the model value to the observation depths for each of the four surrounding grid points. After this the model values, at these points, at the observation depth, are horizontally interpolated to the observation location. \newpage The observation operator maps model variables to observation space. This is normally done while the model is running, i.e. online, it is possible to apply this mapping offline without running the model with the \textbf{standalone observation operator} (SAO). The process is divided into an initialisation phase, an interpolation phase and an output phase. During the interpolation phase the SAO populates the model arrays by reading saved model fields from disk. The interpolation and the output phases use the same OBS code described in the preceeding sections. reading saved model fields from disk. The interpolation and the output phases use the same OBS code described in the preceding sections. There are two ways of exploiting the standalone capacity. The simplest way to use the executable is to edit and append the \textbf{sao.nml} namelist to a full NEMO namelist and then to run the executable as if it were nemo.exe. a full \NEMO namelist and then to run the executable as if it were nemo.exe. %-------------------------------------------------------------------------------------------------------- \subsection{Configuring the standalone observation operator} The observation files and settings understood by \ngn{namobs} have been outlined in the online observation operator section. In addition there are two further namelists wich control the operation of the SAO. \textbf{namsao} which controls the input model fields and \textbf{namcl4} which controls the production of class 4 files. In addition is a further namelist \ngn{namsao} which used to set the input model fields for the SAO \subsubsection{Single field} \textbf{votemper}, \textbf{vosaline} and optionally \textbf{sshn} present. For each field read there must be an entry in the \textbf{namsao} namelist specifying For each field read there must be an entry in the \ngn{namsao} namelist specifying the name of the file to read and the index along the \emph{time\_counter}. For example, to read the second time counter from a single file the namelist would be. If all that is needed is a single model counterpart at a regular interval then the standard SAO is all that is required. However, it is possible to extend this approach by comparing multiple forecasts, analyses, persisted analyses and However, just to note, it is possible to extend this approach by comparing multiple forecasts, analyses, persisted analyses and climatologies with the same set of observations. This approach is referred to as \emph{Class 4} since it is the fourth metric defined by the GODAE intercomparison project. This requires multiple runs of the SAO and running an additional utility (not currently in the NEMO repository) to combine the feedback files into one class 4 file. This approach is referred to as \emph{Class 4} since it is the fourth metric defined by the GODAE intercomparison project. This requires multiple runs of the SAO and running an additional utility (not currently in the \NEMO repository) to combine the feedback files into one class 4 file. \newpage For convenience some tools for viewing and processing of observation and feedback files are provided in the NEMO repository. the \NEMO repository. These tools include OBSTOOLS which are a collection of \fortran programs which are helpful to deal with feedback files. They do such tasks as observation file conversion, printing of file contents, \subsection{Obstools} A series of \fortran utilities is provided with NEMO called OBSTOOLS. This are helpful in handling observation files and the feedback file output from the NEMO observation operator. A brief description of some of the utilities follows A series of \fortran utilities is provided with \NEMO called OBSTOOLS. This are helpful in handling observation files and the feedback file output from the observation operator. A brief description of some of the utilities follows \subsubsection{corio2fb} The program fbcomb combines multiple feedback files produced by individual processors in an MPI run of NEMO into a single feedback file. an MPI run of \NEMO into a single feedback file. It is called in the following way: The plotting colour range can be changed by clicking on the colour bar. The title of the plot gives some basic information about the date range and depth range shown, the extreme values, and the mean and rms values. the extreme values, and the mean and RMS values. It is possible to zoom in using a drag-box. You may also zoom in or out using the mouse wheel.
{"ft_lang_label":"__label__en","ft_lang_prob":0.78650624,"math_prob":0.9155096,"size":14053,"snap":"2023-40-2023-50","text_gpt3_token_len":3535,"char_repetition_ratio":0.15602534,"word_repetition_ratio":0.35778177,"special_character_ratio":0.2839963,"punctuation_ratio":0.08522501,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.97188044,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2023-09-27T22:36:12Z\",\"WARC-Record-ID\":\"<urn:uuid:d6761d52-0588-4896-b023-80a38a93efbc>\",\"Content-Length\":\"62039\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:acdba2f8-b768-4c44-9be6-fbdc1c93e6f0>\",\"WARC-Concurrent-To\":\"<urn:uuid:20815386-1063-499f-a9d6-f9712a2a6ef3>\",\"WARC-IP-Address\":\"134.157.176.26\",\"WARC-Target-URI\":\"https://forge.ipsl.jussieu.fr/nemo/changeset/11311\",\"WARC-Payload-Digest\":\"sha1:DC5VU7U557QSTU26A3EEYIK4N5TFEEFD\",\"WARC-Block-Digest\":\"sha1:ROX4MEOXXYDFL73JROMAJVO6U5MMMZSG\",\"WARC-Identified-Payload-Type\":\"application/xhtml+xml\",\"warc_filename\":\"/cc_download/warc_2023/CC-MAIN-2023-40/CC-MAIN-2023-40_segments_1695233510326.82_warc_CC-MAIN-20230927203115-20230927233115-00044.warc.gz\"}"}