Changeset 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO/subfiles/chap_OBS.tex
- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc
-
Property
svn:externals
set to
^/utils/badges badges
^/utils/logos logos
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex
- Property svn:ignore deleted
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO
-
Property
svn:externals
set to
^/utils/figures/NEMO figures
-
Property
svn:externals
set to
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO/subfiles
- Property svn:ignore
-
old new 1 *.aux 2 *.bbl 3 *.blg 4 *.dvi 5 *.fdb* 6 *.fls 7 *.idx 1 *.ind 8 2 *.ilg 9 *.ind10 *.log11 *.maf12 *.mtc*13 *.out14 *.pdf15 *.toc16 _minted-*
-
- Property svn:ignore
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/doc/latex/NEMO/subfiles/chap_OBS.tex
r11316 r13463 2 2 3 3 \begin{document} 4 % ================================================================ 5 % Chapter observation operator (OBS) 6 % ================================================================ 4 7 5 \chapter{Observation and Model Comparison (OBS)} 8 6 \label{chap:OBS} 9 7 10 \minitoc 11 12 \vfill 13 \begin{figure}[b] 14 \subsubsection*{Changes record} 15 \begin{tabular}{l||l|m{0.65\linewidth}} 16 Release & Author & Modifications \\ 17 {\em 4.0} & {\em D. J. Lea} & {\em \NEMO 4.0 updates} \\ 18 {\em 3.6} & {\em M. Martin, A. Ryan} & {\em Add averaging operator, standalone obs oper} \\ 19 {\em 3.4} & {\em D. J. Lea, M. Martin, ...} & {\em Initial version} \\ 20 {\em --\texttt{"}--} & {\em ... K. Mogensen, A. Vidard, A. Weaver} & {\em ---\texttt{"}---} \\ 21 \end{tabular} 22 \end{figure} 23 24 \newpage 8 %\subsubsection*{Changes record} 9 %\begin{tabular}{l||l|m{0.65\linewidth}} 10 % Release & Author & Modifications \\ 11 % {\em 4.0} & {\em D. J. Lea} & {\em \NEMO\ 4.0 updates} \\ 12 % {\em 3.6} & {\em M. Martin, A. Ryan} & {\em Add averaging operator, standalone obs oper} \\ 13 % {\em 3.4} & {\em D. J. Lea, M. Martin, ...} & {\em Initial version} \\ 14 % {\em --\texttt{"}--} & {\em ... K. Mogensen, A. Vidard, A. Weaver} & {\em ---\texttt{"}---} \\ 15 %\end{tabular} 16 17 \thispagestyle{plain} 18 19 \chaptertoc 20 21 \paragraph{Changes record} ~\\ 22 23 {\footnotesize 24 \begin{tabularx}{\textwidth}{l||X|X} 25 Release & Author(s) & Modifications \\ 26 \hline 27 {\em 4.0} & {\em ...} & {\em ...} \\ 28 {\em 3.6} & {\em ...} & {\em ...} \\ 29 {\em 3.4} & {\em ...} & {\em ...} \\ 30 {\em <=3.4} & {\em ...} & {\em ...} 31 \end{tabularx} 32 } 33 34 \clearpage 25 35 26 36 The observation and model comparison code, the observation operator (OBS), reads in observation files … … 32 42 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. 33 43 The code is then called again after each time step from \mdl{step}. 34 The code is only activated if the \n gn{namobs} namelist logical \np{ln\_diaobs} is set to true.44 The code is only activated if the \nam{obs}{obs} namelist logical \np{ln_diaobs}{ln\_diaobs} is set to true. 35 45 36 46 For all data types a 2D horizontal interpolator or averager is needed to … … 40 50 This now works in a generalised vertical coordinate system. 41 51 42 Some profile observation types (\eg tropical moored buoys) are made available as daily averaged quantities.52 Some profile observation types (\eg\ tropical moored buoys) are made available as daily averaged quantities. 43 53 The observation operator code can be set-up to calculate the equivalent daily average model temperature fields using 44 the \np{nn \_profdavtypes} namelist array.54 the \np{nn_profdavtypes}{nn\_profdavtypes} namelist array. 45 55 Some SST observations are equivalent to a night-time average value and 46 56 the observation operator code can calculate equivalent night-time average model SST fields by 47 setting the namelist value \np{ln \_sstnight} to true.57 setting the namelist value \np{ln_sstnight}{ln\_sstnight} to true. 48 58 Otherwise (by default) the model value from the nearest time step to the observation time is used. 49 59 50 The code is controlled by the namelist \n gn{namobs}.60 The code is controlled by the namelist \nam{obs}{obs}. 51 61 See the following sections for more details on setting up the namelist. 52 62 … … 60 70 In \autoref{sec:OBS_obsutils} we describe some utilities to help work with the files produced by the OBS code. 61 71 62 % ================================================================ 63 % Example 64 % ================================================================ 72 %% ================================================================================================= 65 73 \section{Running the observation operator code example} 66 74 \label{sec:OBS_example} … … 68 76 In this section an example of running the observation operator code is described using 69 77 profile observation data which can be freely downloaded. 70 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.78 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 ORCA2\_ICE\_OBS SETTE test. 71 79 72 80 \begin{enumerate} 73 \item Compile NEMO.81 \item Compile \NEMO. 74 82 75 83 \item Download some EN4 data from \href{http://www.metoffice.gov.uk/hadobs}{www.metoffice.gov.uk/hadobs}. … … 77 85 the observation operator compares the model and observations for a matching date and time. 78 86 79 \item Compile the OBSTOOLS code in the \ np{tools} directory using:87 \item Compile the OBSTOOLS code in the \path{tools} directory using: 80 88 \begin{cmds} 81 89 ./maketools -n OBSTOOLS -m [ARCH] 82 90 \end{cmds} 83 91 84 replacing \ np{[ARCH]} with the build architecture file for your machine. Note the tools are checked out from a separate repository under \np{utils/tools}.92 replacing \texttt{[ARCH]} with the build architecture file for your machine. Note the tools are checked out from a separate location of the repository (under \path{/utils/tools}). 85 93 86 94 \item Convert the EN4 data into feedback format: … … 89 97 \end{cmds} 90 98 91 \item Include the following in the \NEMO namelist to run the observation operator on this data:99 \item Include the following in the \NEMO\ namelist to run the observation operator on this data: 92 100 \end{enumerate} 93 101 94 Options are defined through the \n gn{namobs} namelist variables.95 The options \np{ln \_t3d} and \np{ln\_s3d} switch on the temperature and salinity profile observation operator code.96 The filename or array of filenames are specified using the \np{cn \_profbfiles} variable.102 Options are defined through the \nam{obs}{obs} namelist variables. 103 The options \np{ln_t3d}{ln\_t3d} and \np{ln_s3d}{ln\_s3d} switch on the temperature and salinity profile observation operator code. 104 The filename or array of filenames are specified using the \np{cn_profbfiles}{cn\_profbfiles} variable. 97 105 The model grid points for a particular observation latitude and longitude are found using 98 106 the grid searching part of the code. 99 107 This can be expensive, particularly for large numbers of observations, 100 setting \np{ln \_grid\_search\_lookup} allows the use of a lookup table which101 is saved into an \np{cn \_gridsearch} file (or files).108 setting \np{ln_grid_search_lookup}{ln\_grid\_search\_lookup} allows the use of a lookup table which 109 is saved into an \np{cn_gridsearch}{cn\_gridsearch} file (or files). 102 110 This will need to be generated the first time if it does not exist in the run directory. 103 111 However, once produced it will significantly speed up future grid searches. 104 Setting \np{ln \_grid\_global} means that the code distributes the observations evenly between processors.112 Setting \np{ln_grid_global}{ln\_grid\_global} means that the code distributes the observations evenly between processors. 105 113 Alternatively each processor will work with observations located within the model subdomain 106 114 (see \autoref{subsec:OBS_parallel}). … … 111 119 \autoref{sec:OBS_obsutils}. 112 120 121 %% ================================================================================================= 113 122 \section{Technical details (feedback type observation file headers)} 114 123 \label{sec:OBS_details} 115 124 116 Here we show a more complete example namelist \n gn{namobs} and also show the NetCDF headers of125 Here we show a more complete example namelist \nam{obs}{obs} and also show the NetCDF headers of 117 126 the observation files that may be used with the observation operator. 118 127 119 %------------------------------------------namobs-------------------------------------------------------- 120 121 \nlst{namobs} 122 %------------------------------------------------------------------------------------------------------------- 128 \begin{listing} 129 \nlst{namobs} 130 \caption{\forcode{&namobs}} 131 \label{lst:namobs} 132 \end{listing} 123 133 124 134 The observation operator code uses the feedback observation file format for all data types. … … 127 137 sea surface temperature are in the following subsections. 128 138 139 %% ================================================================================================= 129 140 \subsection{Profile feedback file} 130 141 … … 283 294 \end{clines} 284 295 296 %% ================================================================================================= 285 297 \subsection{Sea level anomaly feedback file} 286 298 … … 429 441 \end{clines} 430 442 443 %% ================================================================================================= 431 444 \subsection{Sea surface temperature feedback file} 432 445 … … 546 559 \end{clines} 547 560 561 %% ================================================================================================= 548 562 \section{Theoretical details} 549 563 \label{sec:OBS_theory} 550 564 565 %% ================================================================================================= 551 566 \subsection{Horizontal interpolation and averaging methods} 552 567 … … 554 569 the model equivalent of the observation is calculated by interpolating from 555 570 the four surrounding grid points to the observation location. 556 Some satellite observations (\eg microwave satellite SST data, or satellite SSS data) have a footprint which571 Some satellite observations (\eg\ microwave satellite SST data, or satellite SSS data) have a footprint which 557 572 is similar in size or larger than the model grid size (particularly when the grid size is small). 558 573 In those cases the model counterpart should be calculated by averaging the model grid points over 559 574 the same size as the footprint. 560 \NEMO therefore has the capability to specify either an interpolation or an averaging575 \NEMO\ therefore has the capability to specify either an interpolation or an averaging 561 576 (for surface observation types only). 562 577 563 The main namelist option associated with the interpolation/averaging is \np{nn \_2dint}.578 The main namelist option associated with the interpolation/averaging is \np{nn_2dint}{nn\_2dint}. 564 579 This default option can be set to values from 0 to 6. 565 580 Values between 0 to 4 are associated with interpolation while values 5 or 6 are associated with averaging. 566 581 \begin{itemize} 567 \item \np {nn\_2dint}\forcode{ = 0}: Distance-weighted interpolation568 \item \np {nn\_2dint}\forcode{ = 1}: Distance-weighted interpolation (small angle)569 \item \np {nn\_2dint}\forcode{ = 2}: Bilinear interpolation (geographical grid)570 \item \np {nn\_2dint}\forcode{ = 3}: Bilinear remapping interpolation (general grid)571 \item \np {nn\_2dint}\forcode{ = 4}: Polynomial interpolation572 \item \np {nn\_2dint}\forcode{ = 5}: Radial footprint averaging with diameter specified in the namelist as573 \ np{rn\_[var]\_avglamscl} in degrees or metres (set using \np{ln\_[var]\_fp\_indegs})574 \item \np {nn\_2dint}\forcode{ = 6}: Rectangular footprint averaging with E/W and N/S size specified in575 the namelist as \ np{rn\_[var]\_avglamscl} and \np{rn\_[var]\_avgphiscl} in degrees or metres576 (set using \ np{ln\_[var]\_fp\_indegs})582 \item \np[=0]{nn_2dint}{nn\_2dint}: Distance-weighted interpolation 583 \item \np[=1]{nn_2dint}{nn\_2dint}: Distance-weighted interpolation (small angle) 584 \item \np[=2]{nn_2dint}{nn\_2dint}: Bilinear interpolation (geographical grid) 585 \item \np[=3]{nn_2dint}{nn\_2dint}: Bilinear remapping interpolation (general grid) 586 \item \np[=4]{nn_2dint}{nn\_2dint}: Polynomial interpolation 587 \item \np[=5]{nn_2dint}{nn\_2dint}: Radial footprint averaging with diameter specified in the namelist as 588 \texttt{rn\_[var]\_avglamscl} in degrees or metres (set using \texttt{ln\_[var]\_fp\_indegs}) 589 \item \np[=6]{nn_2dint}{nn\_2dint}: Rectangular footprint averaging with E/W and N/S size specified in 590 the namelist as \texttt{rn\_[var]\_avglamscl} and \texttt{rn\_[var]\_avgphiscl} in degrees or metres 591 (set using \texttt{ln\_[var]\_fp\_indegs}) 577 592 \end{itemize} 578 Replace \ np{[var]} in the last two options with the observation type (sla, sst, sss or sic) for593 Replace \texttt{[var]} in the last two options with the observation type (sla, sst, sss or sic) for 579 594 which the averaging is to be performed (see namelist example above). 580 The \np{nn\_2dint} default option can be overridden for surface observation types using 581 namelist values \np{nn\_2dint\_[var]} where \np{[var]} is the observation type. 582 583 Below is some more detail on the various options for interpolation and averaging available in NEMO. 584 595 The \np{nn_2dint}{nn\_2dint} default option can be overridden for surface observation types using 596 namelist values \texttt{nn\_2dint\_[var]} where \texttt{[var]} is the observation type. 597 598 Below is some more detail on the various options for interpolation and averaging available in \NEMO. 599 600 %% ================================================================================================= 585 601 \subsubsection{Horizontal interpolation} 586 602 … … 588 604 the four nearest neighbouring model grid points ${\mathrm A}$, ${\mathrm B}$, ${\mathrm C}$ and ${\mathrm D}$ with 589 605 longitude and latitude ($\lambda_{\mathrm A}$, $\phi_{\mathrm A}$),($\lambda_{\mathrm B}$, $\phi_{\mathrm B}$) etc. 590 All horizontal interpolation methods implemented in \NEMO estimate the value of a model variable $x$ at point $P$ as606 All horizontal interpolation methods implemented in \NEMO\ estimate the value of a model variable $x$ at point $P$ as 591 607 a weighted linear combination of the values of the model variables at the grid points ${\mathrm A}$, ${\mathrm B}$ etc.: 592 608 … … 605 621 606 622 \begin{enumerate} 607 608 \item[1.] {\bfseries Great-Circle distance-weighted interpolation.} 623 \item {\bfseries Great-Circle distance-weighted interpolation.} 609 624 The weights are computed as a function of the great-circle distance $s(P, \cdot)$ between $P$ and 610 625 the model grid points $A$, $B$ etc. … … 628 643 and $M$ corresponds to $B$, $C$ or $D$. 629 644 A more stable form of the great-circle distance formula for small distances ($x$ near 1) 630 involves the arcsine function (\eg see p.~101 of \citet{daley.barker_bk01}:645 involves the arcsine function (\eg\ see p.~101 of \citet{daley.barker_bk01}: 631 646 632 647 \begin{alignat*}{2} … … 651 666 \end{alignat*} 652 667 653 \item [2.]{\bfseries Great-Circle distance-weighted interpolation with small angle approximation.}668 \item {\bfseries Great-Circle distance-weighted interpolation with small angle approximation.} 654 669 Similar to the previous interpolation but with the distance $s$ computed as 655 670 \begin{alignat*}{2} … … 661 676 where $M$ corresponds to $A$, $B$, $C$ or $D$. 662 677 663 \item [3.]{\bfseries Bilinear interpolation for a regular spaced grid.}678 \item {\bfseries Bilinear interpolation for a regular spaced grid.} 664 679 The interpolation is split into two 1D interpolations in the longitude and latitude directions, respectively. 665 680 666 \item [4.]{\bfseries Bilinear remapping interpolation for a general grid.}681 \item {\bfseries Bilinear remapping interpolation for a general grid.} 667 682 An iterative scheme that involves first mapping a quadrilateral cell into 668 683 a cell with coordinates (0,0), (1,0), (0,1) and (1,1). … … 671 686 \end{enumerate} 672 687 688 %% ================================================================================================= 673 689 \subsubsection{Horizontal averaging} 674 690 … … 691 707 692 708 Examples of the weights calculated for an observation with rectangular and radial footprints are shown in 693 \autoref{fig:obsavgrec} and~\autoref{fig:obsavgrad}. 694 695 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 709 \autoref{fig:OBS_avgrec} and~\autoref{fig:OBS_avgrad}. 710 696 711 \begin{figure} 697 \begin{center} 698 \includegraphics[width=\textwidth]{Fig_OBS_avg_rec} 699 \caption{ 700 \protect\label{fig:obsavgrec} 701 Weights associated with each model grid box (blue lines and numbers) 702 for an observation at -170.5\deg{E}, 56.0\deg{N} with a rectangular footprint of 1\deg x 1\deg. 703 } 704 \end{center} 712 \centering 713 \includegraphics[width=0.66\textwidth]{OBS_avg_rec} 714 \caption[Observational weights with a rectangular footprint]{ 715 Weights associated with each model grid box (blue lines and numbers) 716 for an observation at -170.5\deg{E}, 56.0\deg{N} with a rectangular footprint of 1\deg\ x 1\deg.} 717 \label{fig:OBS_avgrec} 705 718 \end{figure} 706 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 707 708 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 719 709 720 \begin{figure} 710 \begin{center} 711 \includegraphics[width=\textwidth]{Fig_OBS_avg_rad} 712 \caption{ 713 \protect\label{fig:obsavgrad} 714 Weights associated with each model grid box (blue lines and numbers) 715 for an observation at -170.5\deg{E}, 56.0\deg{N} with a radial footprint with diameter 1\deg. 716 } 717 \end{center} 721 \centering 722 \includegraphics[width=0.66\textwidth]{OBS_avg_rad} 723 \caption[Observational weights with a radial footprint]{ 724 Weights associated with each model grid box (blue lines and numbers) 725 for an observation at -170.5\deg{E}, 56.0\deg{N} with a radial footprint with diameter 1\deg.} 726 \label{fig:OBS_avgrad} 718 727 \end{figure} 719 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 720 721 728 729 %% ================================================================================================= 722 730 \subsection{Grid search} 723 731 724 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.732 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. 725 733 Therefore, it is not always straightforward to determine the grid points surrounding any given observational position. 726 734 Before the interpolation can be performed, a search algorithm is then required to determine the corner points of … … 756 764 ({\phi_{}}_{\mathrm D} \; - \; {\phi_{}}_{\mathrm P} )] \; \widehat{\mathbf k} \\ 757 765 \end{array} 758 % \label{eq: cross}766 % \label{eq:OBS_cross} 759 767 \end{align*} 760 768 point in the opposite direction to the unit normal $\widehat{\mathbf k}$ 761 (\ie that the coefficients of $\widehat{\mathbf k}$ are negative),769 (\ie\ that the coefficients of $\widehat{\mathbf k}$ are negative), 762 770 where ${{\mathbf r}_{}}_{\mathrm PA}$, ${{\mathbf r}_{}}_{\mathrm PB}$, etc. correspond to 763 771 the vectors between points P and A, P and B, etc.. … … 770 778 the $i$ and $j$ ranges of this point searched to determine the precise four points surrounding the observation. 771 779 780 %% ================================================================================================= 772 781 \subsection{Parallel aspects of horizontal interpolation} 773 782 \label{subsec:OBS_parallel} … … 775 784 For horizontal interpolation, there is the basic problem that 776 785 the observations are unevenly distributed on the globe. 777 In \NEMO the model grid is divided into subgrids (or domains) where786 In \NEMO\ the model grid is divided into subgrids (or domains) where 778 787 each subgrid is executed on a single processing element with explicit message passing for 779 788 exchange of information along the domain boundaries when running on a massively parallel processor (MPP) system. … … 784 793 and 2) round-robin. 785 794 795 %% ================================================================================================= 786 796 \subsubsection{Geographical distribution of observations among processors} 787 797 788 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>789 798 \begin{figure} 790 \begin{center} 791 \includegraphics[width=\textwidth]{Fig_ASM_obsdist_local} 792 \caption{ 793 \protect\label{fig:obslocal} 794 Example of the distribution of observations with the geographical distribution of observational data. 795 } 796 \end{center} 799 \centering 800 \includegraphics[width=0.66\textwidth]{OBS_obsdist_local} 801 \caption[Observations with the geographical distribution]{ 802 Example of the distribution of observations with 803 the geographical distribution of observational data} 804 \label{fig:OBS_local} 797 805 \end{figure} 798 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>799 806 800 807 This is the simplest option in which the observations are distributed according to 801 808 the domain of the grid-point parallelization. 802 \autoref{fig: obslocal} shows an example of the distribution of the {\em in situ} data on processors with809 \autoref{fig:OBS_local} shows an example of the distribution of the {\em in situ} data on processors with 803 810 a different colour for each observation on a given processor for a 4 $\times$ 2 decomposition with ORCA2. 804 811 The grid-point domain decomposition is clearly visible on the plot. … … 807 814 any MPP communication. 808 815 This is under the assumption that we are dealing with point observations and only using a $2 \times 2$ grid-point stencil for 809 the interpolation (\eg bilinear interpolation).816 the interpolation (\eg\ bilinear interpolation). 810 817 For higher order interpolation schemes this is no longer valid. 811 818 A disadvantage with the above scheme is that the number of observations on each processor can be very different. … … 813 820 this could lead to load imbalance. 814 821 822 %% ================================================================================================= 815 823 \subsubsection{Round-robin distribution of observations among processors} 816 824 817 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>818 825 \begin{figure} 819 \begin{center} 820 \includegraphics[width=\textwidth]{Fig_ASM_obsdist_global} 821 \caption{ 822 \protect\label{fig:obsglobal} 823 Example of the distribution of observations with the round-robin distribution of observational data. 824 } 825 \end{center} 826 \centering 827 \includegraphics[width=0.66\textwidth]{OBS_obsdist_global} 828 \caption[Observations with the round-robin distribution]{ 829 Example of the distribution of observations with 830 the round-robin distribution of observational data.} 831 \label{fig:OBS_global} 826 832 \end{figure} 827 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>828 833 829 834 An alternative approach is to distribute the observations equally among processors and 830 835 use message passing in order to retrieve the stencil for interpolation. 831 836 The simplest distribution of the observations is to distribute them using a round-robin scheme. 832 \autoref{fig: obsglobal} shows the distribution of the {\em in situ} data on processors for837 \autoref{fig:OBS_global} shows the distribution of the {\em in situ} data on processors for 833 838 the round-robin distribution of observations with a different colour for each observation on a given processor for 834 a 4 $\times$ 2 decomposition with ORCA2 for the same input data as in \autoref{fig: obslocal}.839 a 4 $\times$ 2 decomposition with ORCA2 for the same input data as in \autoref{fig:OBS_local}. 835 840 The observations are now clearly randomly distributed on the globe. 836 841 In order to be able to perform horizontal interpolation in this case, 837 842 a subroutine has been developed that retrieves any grid points in the global space. 838 843 844 %% ================================================================================================= 839 845 \subsection{Vertical interpolation operator} 840 846 … … 844 850 At the bottom boundary, this is done using the land-ocean mask. 845 851 846 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. 847 848 \newpage 849 850 % ================================================================ 851 % Standalone observation operator documentation 852 % ================================================================ 852 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. 853 853 854 854 %\usepackage{framed} 855 855 856 \section{Standalone observation operator} 856 %% ================================================================================================= 857 \section{Standalone observation operator (\texttt{SAO})} 857 858 \label{sec:OBS_sao} 858 859 860 %% ================================================================================================= 859 861 \subsection{Concept} 860 862 … … 873 875 By forecast, we mean any method which produces an estimate of physical reality which is not an observed value. 874 876 875 %--------------------------------------------------------------------------------------------------------876 877 % sao.exe 877 %-------------------------------------------------------------------------------------------------------- 878 878 879 %% ================================================================================================= 879 880 \subsection{Using the standalone observation operator} 880 881 882 %% ================================================================================================= 881 883 \subsubsection{Building} 882 884 … … 886 888 Note this a similar approach to that taken by the standalone surface scheme \emph{SAS\_SRC} and the offline TOP model \emph{OFF\_SRC}. 887 889 888 %--------------------------------------------------------------------------------------------------------889 890 % Running 890 % --------------------------------------------------------------------------------------------------------891 %% ================================================================================================= 891 892 \subsubsection{Running} 892 893 893 894 The simplest way to use the executable is to edit and append the \textbf{sao.nml} namelist to 894 a full \NEMO namelist and then to run the executable as if it were nemo.exe. 895 896 %-------------------------------------------------------------------------------------------------------- 895 a full \NEMO\ namelist and then to run the executable as if it were nemo.exe. 896 897 897 % Configuration section 898 % --------------------------------------------------------------------------------------------------------898 %% ================================================================================================= 899 899 \subsection{Configuring the standalone observation operator} 900 The observation files and settings understood by \ngn{namobs} have been outlined in the online observation operator section. 901 In addition is a further namelist \ngn{namsao} which used to set the input model fields for the SAO 902 900 The observation files and settings understood by \nam{obs}{obs} have been outlined in the online observation operator section. 901 In addition is a further namelist \nam{sao}{sao} which used to set the input model fields for the SAO 902 903 %% ================================================================================================= 903 904 \subsubsection{Single field} 904 905 … … 909 910 \textbf{votemper}, \textbf{vosaline} and optionally \textbf{sshn} present. 910 911 911 For each field read there must be an entry in the \n gn{namsao} namelist specifying912 For each field read there must be an entry in the \nam{sao}{sao} namelist specifying 912 913 the name of the file to read and the index along the \emph{time\_counter}. 913 914 For example, to read the second time counter from a single file the namelist would be. … … 925 926 \end{forlines} 926 927 928 %% ================================================================================================= 927 929 \subsubsection{Multiple fields per run} 928 930 … … 958 960 However, just to note, it is possible to extend this approach by comparing multiple forecasts, analyses, persisted analyses and 959 961 climatologies with the same set of observations. 960 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. 961 962 \newpage 963 962 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. 963 964 %% ================================================================================================= 964 965 \section{Observation utilities} 965 966 \label{sec:OBS_obsutils} 966 967 967 968 For convenience some tools for viewing and processing of observation and feedback files are provided in 968 the \NEMO repository.969 These tools include OBSTOOLS which are a collection of \fortran programs which are helpful to deal with feedback files.969 the \NEMO\ repository. 970 These tools include OBSTOOLS which are a collection of \fortran\ programs which are helpful to deal with feedback files. 970 971 They do such tasks as observation file conversion, printing of file contents, 971 972 some basic statistical analysis of feedback files. … … 974 975 OBSTOOLS and dataplot are described in more detail below. 975 976 977 %% ================================================================================================= 976 978 \subsection{Obstools} 977 979 978 A series of \fortran utilities is provided with \NEMOcalled OBSTOOLS.980 A series of \fortran\ utilities is provided with \NEMO\ called OBSTOOLS. 979 981 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 980 982 983 %% ================================================================================================= 981 984 \subsubsection{corio2fb} 982 985 … … 988 991 \end{cmds} 989 992 993 %% ================================================================================================= 990 994 \subsubsection{enact2fb} 991 995 … … 997 1001 \end{cmds} 998 1002 1003 %% ================================================================================================= 999 1004 \subsubsection{fbcomb} 1000 1005 1001 1006 The program fbcomb combines multiple feedback files produced by individual processors in 1002 an MPI run of \NEMO into a single feedback file.1007 an MPI run of \NEMO\ into a single feedback file. 1003 1008 It is called in the following way: 1004 1009 … … 1007 1012 \end{cmds} 1008 1013 1014 %% ================================================================================================= 1009 1015 \subsubsection{fbmatchup} 1010 1016 … … 1016 1022 \end{cmds} 1017 1023 1024 %% ================================================================================================= 1018 1025 \subsubsection{fbprint} 1019 1026 … … 1044 1051 \end{cmds} 1045 1052 1053 %% ================================================================================================= 1046 1054 \subsubsection{fbsel} 1047 1055 … … 1053 1061 \end{cmds} 1054 1062 1063 %% ================================================================================================= 1055 1064 \subsubsection{fbstat} 1056 1065 … … 1062 1071 \end{cmds} 1063 1072 1073 %% ================================================================================================= 1064 1074 \subsubsection{fbthin} 1065 1075 … … 1072 1082 \end{cmds} 1073 1083 1084 %% ================================================================================================= 1074 1085 \subsubsection{sla2fb} 1075 1086 … … 1084 1095 \end{cmds} 1085 1096 1097 %% ================================================================================================= 1086 1098 \subsubsection{vel2fb} 1087 1099 … … 1093 1105 \end{cmds} 1094 1106 1107 %% ================================================================================================= 1095 1108 \subsection{Building the obstools} 1096 1109 1097 1110 To build the obstools use in the tools directory use ./maketools -n OBSTOOLS -m [ARCH]. 1098 1111 1112 %% ================================================================================================= 1099 1113 \subsection{Dataplot} 1100 1114 … … 1118 1132 \end{minted} 1119 1133 1120 \autoref{fig: obsdataplotmain} shows the main window which is launched when dataplot starts.1134 \autoref{fig:OBS_dataplotmain} shows the main window which is launched when dataplot starts. 1121 1135 This is split into three parts. 1122 1136 At the top there is a menu bar which contains a variety of drop down menus. … … 1148 1162 The rightmost group of buttons will print the plot window as a postscript, save it as png, or exit from dataplot. 1149 1163 1150 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>1151 1164 \begin{figure} 1152 \begin{center} 1153 % \includegraphics[width=\textwidth]{Fig_OBS_dataplot_main} 1154 \includegraphics[width=\textwidth]{Fig_OBS_dataplot_main} 1155 \caption{ 1156 \protect\label{fig:obsdataplotmain} 1157 Main window of dataplot. 1158 } 1159 \end{center} 1165 \centering 1166 \includegraphics[width=0.66\textwidth]{OBS_dataplot_main} 1167 \caption{Main window of dataplot} 1168 \label{fig:OBS_dataplotmain} 1160 1169 \end{figure} 1161 %>>>>>>>>>>>>>>>>>>>>>>>>>>>>1162 1170 1163 1171 If a profile point is clicked with the mouse button a plot of the observation and background values as 1164 a function of depth (\autoref{fig:obsdataplotprofile}). 1165 1166 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1172 a function of depth (\autoref{fig:OBS_dataplotprofile}). 1173 1167 1174 \begin{figure} 1168 \begin{center} 1169 % \includegraphics[width=\textwidth]{Fig_OBS_dataplot_prof} 1170 \includegraphics[width=\textwidth]{Fig_OBS_dataplot_prof} 1171 \caption{ 1172 \protect\label{fig:obsdataplotprofile} 1173 Profile plot from dataplot produced by right clicking on a point in the main window. 1174 } 1175 \end{center} 1175 \centering 1176 \includegraphics[width=0.66\textwidth]{OBS_dataplot_prof} 1177 \caption[Profile plot from dataplot]{ 1178 Profile plot from dataplot produced by right clicking on a point in the main window} 1179 \label{fig:OBS_dataplotprofile} 1176 1180 \end{figure} 1177 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1178 1179 \biblio 1180 1181 \pindex 1181 1182 \subinc{\input{../../global/epilogue}} 1182 1183 1183 1184 \end{document}
Note: See TracChangeset
for help on using the changeset viewer.