- Timestamp:
- 2010-11-11T18:01:29+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/DOC/TexFiles/Chapters/Chap_SBC.tex
r2366 r2376 29 29 (\np{ln\_core}~=~true) or CLIO (\np{ln\_clio}~=~true) bulk formulae) and a coupled 30 30 formulation (exchanges with a atmospheric model via the OASIS coupler) 31 (\np{ln\_cpl}~=~true). The optional atmospheric pressure can be used either 32 to force ocean and ice dynamics (\np{ln\_apr\_dyn}~=~true), or in the bulk 33 formulae computation (\np{ln\_apr\_dyn}~=~true) 34 \footnote{None of the two current bulk formulea (CLIO and CORE) uses the 35 atmospheric pressure field.}. 31 (\np{ln\_cpl}~=~true). When used, the atmospheric pressure forces both 32 ocean and ice dynamics (\np{ln\_apr\_dyn}~=~true) 33 \footnote{The surface pressure field could be use in bulk formulae, nevertheless 34 none of the current bulk formulea (CLIO and CORE) uses the it.}. 36 35 The frequency at which the six or seven fields have to be updated is the \np{nn\_fsbc} 37 36 namelist parameter. … … 39 38 need not be supplied on the model grid. Instead a file of coordinates and weights can 40 39 be supplied which maps the data from the supplied grid to the model points 41 (so called "Interpolation on the Fly" ).40 (so called "Interpolation on the Fly", see \S\ref{SBC_iof}). 42 41 In addition, the resulting fields can be further modified using several namelist options. 43 42 These options control the rotation of vector components supplied relative to an east-north … … 52 51 53 52 In this chapter, we first discuss where the surface boundary condition appears in the 54 model equations. Then we present the four ways of providing the surface boundary condition. 53 model equations. Then we present the four ways of providing the surface boundary condition, 54 followed by the description of the atmospheric pressure and the river runoff. 55 55 Next the scheme for interpolation on the fly is described. 56 56 Finally, the different options that further modify the fluxes applied to the ocean are discussed. … … 157 157 158 158 %-------------------------------------------------TABLE--------------------------------------------------- 159 \begin{table}[tb] \label{Tab_ssm} 160 \begin{center} 161 \begin{tabular}{|l|l|l|l|} 159 \begin{table}[tb] \begin{center} \begin{tabular}{|l|l|l|l|} 162 160 \hline 163 161 Variable description & Model variable & Units & point \\ \hline … … 167 165 Sea surface salinty & sss\_m & $psu$ & T \\ \hline 168 166 \end{tabular} 169 \caption{Ocean variables provided by the ocean to the surface module (SBC). 167 \caption{ \label{Tab_ssm} 168 Ocean variables provided by the ocean to the surface module (SBC). 170 169 The variable are averaged over nf{\_}sbc time step, $i.e.$ the frequency of 171 170 computation of surface fluxes.} 172 \end{center} 173 \end{table} 171 \end{center} \end{table} 174 172 %-------------------------------------------------------------------------------------------------------------- 175 173 176 177 178 %\colorbox{yellow}{Penser a} mettre dans le restant l'info nf{\_}sbc ET nf{\_}sbc*rdt de sorte de reinitialiser la moyenne si on change la frequence ou le pdt 174 %\colorbox{yellow}{Penser a} mettre dans le restant l'info nn{\_}fsbc ET nn{\_}fsbc*rdt de sorte de reinitialiser la moyenne si on change la frequence ou le pdt 179 175 180 176 … … 385 381 %------------------------------------------------------------------------------------------------------------- 386 382 387 The optional atmospheric pressure can be used either to force ocean and ice dynamics 388 (\np{ln\_apr\_dyn}~=~true), or in the bulk formulae computation (\np{ln\_apr\_dyn}~=~true). 389 The input atmospheric forcing is interpolated in time to the model time step, and optionally 390 in space when interpolation on-the-fly is used. When used to force the dynamics, it is further 391 transformed into an equivalent inverse barometer sea surface height, $\eta_{ib}$, using: 383 The optional atmospheric pressure can be used to force ocean and ice dynamics 384 (\np{ln\_apr\_dyn}~=~true, \textit{namsbc} namelist ). 385 The input atmospheric forcing defined via \np{sn\_apr} structure (\textit{namsbc\_apr} namelist) 386 can be interpolated in time to the model time step, and even in space when the 387 interpolation on-the-fly is used. When used to force the dynamics, the atmospheric 388 pressure is further transformed into an equivalent inverse barometer sea surface height, 389 $\eta_{ib}$, using: 392 390 \begin{equation} \label{SBC_ssh_ib} 393 391 \eta_{ib} = - \frac{1}{g\,\rho_o} \left( P_{atm} - P_o \right) … … 398 396 $\eta_{ib}$ is kept to zero at all time step. 399 397 400 Agradient of $\eta_{ib}$ is added to the RHS of the ocean momentum equation398 The gradient of $\eta_{ib}$ is added to the RHS of the ocean momentum equation 401 399 (see \mdl{dynspg} for the ocean). For sea-ice, the sea surface height, $\eta_m$, 402 400 which is provided to the sea ice model is set to $\eta - \eta_{ib}$ (see \mdl{sbcssr} module). 403 Furthermore, $\eta_{ib}$ can be set in the output. This simplifies the altirmetry data 404 and model comparison as inverse barometer sea surface height is usually removed 405 from thise date prior to their distribution. 401 $\eta_{ib}$ can be set in the output. This can simplify the altirmetry data and model comparison 402 as inverse barometer sea surface height is usually removed from these date prior to their distribution. 406 403 407 404 % ================================================================ … … 522 519 523 520 521 % ================================================================ 522 % Interpolation on the Fly 523 % ================================================================ 524 525 \section [Interpolation on the Fly] {Interpolation on the Fly} 526 \label{SBC_iof} 527 528 Interpolation on the Fly allows the user to supply input files required 529 for the surface forcing on grids other than the model grid. 530 To do this he or she must supply, in addition to the source data file, 531 a file of weights to be used to interpolate from the data grid to the model 532 grid. 533 The original development of this code used the SCRIP package (freely available 534 under a copyright agreement from http://climate.lanl.gov/Software/SCRIP). 535 In principle, any package can be used to generate the weights, but the 536 variables in the input weights file must have the same names and meanings as 537 assumed by the model. 538 Two methods are currently available: bilinear and bicubic interpolation. 539 540 \subsection{Bilinear Interpolation} 541 \label{SBC_iof_bilinear} 542 543 The input weights file in this case has two sets of variables: src01, src02, 544 src03, src04 and wgt01, wgt02, wgt03, wgt04. 545 The "src" variables correspond to the point in the input grid to which the weight 546 "wgt" is to be applied. Each src value is an integer corresponding to the index of a 547 point in the input grid when written as a one dimensional array. For example, for an input grid 548 of size 5x10, point (3,2) is referenced as point 8, since (2-1)*5+3=8. 549 There are four of each variable because bilinear interpolation uses the four points defining 550 the grid box containing the point to be interpolated. 551 All of these arrays are on the model grid, so that values src01(i,j) and 552 wgt01(i,j) are used to generate a value for point (i,j) in the model. 553 554 Symbolically, the algorithm used is: 555 556 \begin{equation} 557 f_{m}(i,j) = f_{m}(i,j) + \sum_{k=1}^{4} {wgt(k)f(idx(src(k)))} 558 \end{equation} 559 where function idx() transforms a one dimensional index src(k) into a two dimensional index, 560 and wgt(1) corresponds to variable "wgt01" for example. 561 562 \subsection{Bicubic Interpolation} 563 \label{SBC_iof_bicubic} 564 565 Again there are two sets of variables: "src" and "wgt". 566 But in this case there are 16 of each. 567 The symbolic algorithm used to calculate values on the model grid is now: 568 569 \begin{equation*} \begin{split} 570 f_{m}(i,j) = f_{m}(i,j) +& \sum_{k=1}^{4} {wgt(k)f(idx(src(k)))} 571 + \sum_{k=5}^{8} {wgt(k)\left.\frac{\partial f}{\partial i}\right| _{idx(src(k))} } \\ 572 +& \sum_{k=9}^{12} {wgt(k)\left.\frac{\partial f}{\partial j}\right| _{idx(src(k))} } 573 + \sum_{k=13}^{16} {wgt(k)\left.\frac{\partial ^2 f}{\partial i \partial j}\right| _{idx(src(k))} } 574 \end{split} 575 \end{equation*} 576 The gradients here are taken with respect to the horizontal indices and not distances since the spatial dependency has been absorbed into the weights. 577 578 \subsection{Implementation} 579 \label{SBC_iof_imp} 580 581 To activate this option, a non-empty string should be supplied in the weights filename column 582 of the relevant namelist; if this is left as an empty string no action is taken. 583 In the model, weights files are read in and stored in a structured type (WGT) in the fldread 584 module, as and when they are first required. 585 This initialisation procedure determines whether the input data grid should be treated 586 as cyclical or not by inspecting a global attribute stored in the weights input file. 587 This attribute must be called "ew\_wrap" and be of integer type. 588 If it is negative, the input non-model grid is assumed not to be cyclic. 589 If zero or greater, then the value represents the number of columns that overlap. 590 $E.g.$ if the input grid has columns at longitudes 0, 1, 2, .... , 359, then ew\_wrap should be set to 0; 591 if longitudes are 0.5, 2.5, .... , 358.5, 360.5, 362.5, ew\_wrap should be 2. 592 If the model does not find attribute ew\_wrap, then a value of -999 is assumed. 593 In this case the \rou{fld\_read} routine defaults ew\_wrap to value 0 and therefore the grid 594 is assumed to be cyclic with no overlapping columns. 595 (In fact this only matters when bicubic interpolation is required.) 596 Note that no testing is done to check the validity in the model, since there is no way 597 of knowing the name used for the longitude variable, 598 so it is up to the user to make sure his or her data is correctly represented. 599 600 Next the routine reads in the weights. 601 Bicubic interpolation is assumed if it finds a variable with name "src05", otherwise 602 bilinear interpolation is used. The WGT structure includes dynamic arrays both for 603 the storage of the weights (on the model grid), and when required, for reading in 604 the variable to be interpolated (on the input data grid). 605 The size of the input data array is determined by examining the values in the "src" 606 arrays to find the minimum and maximum i and j values required. 607 Since bicubic interpolation requires the calculation of gradients at each point on the grid, 608 the corresponding arrays are dimensioned with a halo of width one grid point all the way around. 609 When the array of points from the data file is adjacent to an edge of the data grid, 610 the halo is either a copy of the row/column next to it (non-cyclical case), or is a copy 611 of one from the first few columns on the opposite side of the grid (cyclical case). 612 613 \subsection{Limitations} 614 \label{SBC_iof_lim} 615 616 \begin{description} 617 \item 618 The case where input data grids are not logically rectangular has not been tested. 619 \item 620 This code is not guaranteed to produce positive definite answers from positive definite inputs. 621 \item 622 The cyclic condition is only applied on left and right columns, and not to top and bottom rows. 623 \item 624 The gradients across the ends of a cyclical grid assume that the grid spacing between the two columns involved are consistent with the weights used. 625 \item 626 Neither interpolation scheme is conservative. 627 (There is a conservative scheme available in SCRIP, but this has not been implemented.) 628 \end{description} 629 630 \subsection{Utilities} 631 \label{SBC_iof_util} 632 633 % to be completed 634 A set of utilities to create a weights file for a rectilinear input grid is available 635 (see the directory NEMOGCM/TOOLS/WEIGHTS). 636 637 % ================================================================ 638 % Miscellanea options 639 % ================================================================ 640 \section{Miscellaneous options} 641 \label{SBC_misc} 642 643 % ------------------------------------------------------------------------------------------------------------- 644 % Diurnal cycle 645 % ------------------------------------------------------------------------------------------------------------- 646 \subsection [Diurnal cycle (\textit{sbcdcy})] 647 {Diurnal cycle (\mdl{sbcdcy})} 648 \label{SBC_dcy} 649 %------------------------------------------namsbc_rnf---------------------------------------------------- 650 %\namdisplay{namsbc} 651 %------------------------------------------------------------------------------------------------------------- 652 524 653 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 525 \begin{figure}[!t] \label{Fig_SBC_diurnal}\begin{center}654 \begin{figure}[!t] \begin{center} 526 655 \includegraphics[width=0.8\textwidth]{./TexFiles/Figures/Fig_SBC_diurnal.pdf} 527 \caption{Example of recontruction of the diurnal cycle variation of short wave flux 656 \caption{ \label{Fig_SBC_diurnal} 657 Example of recontruction of the diurnal cycle variation of short wave flux 528 658 from daily mean values. The reconstructed diurnal cycle (black line) is chosen 529 659 as the mean value of the analytical cycle (blue line) over a time step, not … … 531 661 \end{center} \end{figure} 532 662 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 533 534 % ================================================================535 % Diurnal cycle536 % ================================================================537 \section [Diurnal cycle (\textit{sbcdcy})]538 {Diurnal cycle (\mdl{sbcdcy})}539 \label{SBC_dcy}540 %------------------------------------------namsbc_rnf----------------------------------------------------541 %\namdisplay{namsbc}542 %-------------------------------------------------------------------------------------------------------------543 663 544 664 \cite{Bernie_al_JC05} have shown that to capture 90$\%$ of the diurnal variability of … … 565 685 566 686 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 567 \begin{figure}[!t] \label{Fig_SBC_dcy}\begin{center}687 \begin{figure}[!t] \begin{center} 568 688 \includegraphics[width=0.7\textwidth]{./TexFiles/Figures/Fig_SBC_dcy.pdf} 569 \caption{Example of recontruction of the diurnal cycle variation of short wave flux 689 \caption{ \label{Fig_SBC_dcy} 690 Example of recontruction of the diurnal cycle variation of short wave flux 570 691 from daily mean values on an ORCA2 grid with a time sampling of 2~hours (from 1am to 11pm). 571 692 The display is on (i,j) plane. } … … 577 698 appear due to an inconsistency between the scale of the vertical resolution 578 699 and the forcing acting on that scale. 579 580 % ================================================================581 % Interpolation on the Fly582 % ================================================================583 584 \section [Interpolation on the Fly] {Interpolation on the Fly}585 \label{SBC_iof}586 587 Interpolation on the Fly allows the user to supply input files required588 for the surface forcing on grids other than the model grid.589 To do this he or she must supply, in addition to the source data file,590 a file of weights to be used to interpolate from the data grid to the model591 grid.592 The original development of this code used the SCRIP package (freely available593 under a copyright agreement from http://climate.lanl.gov/Software/SCRIP).594 In principle, any package can be used to generate the weights, but the595 variables in the input weights file must have the same names and meanings as596 assumed by the model.597 Two methods are currently available: bilinear and bicubic interpolation.598 599 \subsection{Bilinear Interpolation}600 \label{SBC_iof_bilinear}601 602 The input weights file in this case has two sets of variables: src01, src02,603 src03, src04 and wgt01, wgt02, wgt03, wgt04.604 The "src" variables correspond to the point in the input grid to which the weight605 "wgt" is to be applied. Each src value is an integer corresponding to the index of a606 point in the input grid when written as a one dimensional array. For example, for an input grid607 of size 5x10, point (3,2) is referenced as point 8, since (2-1)*5+3=8.608 There are four of each variable because bilinear interpolation uses the four points defining609 the grid box containing the point to be interpolated.610 All of these arrays are on the model grid, so that values src01(i,j) and611 wgt01(i,j) are used to generate a value for point (i,j) in the model.612 613 Symbolically, the algorithm used is:614 615 \begin{equation}616 f_{m}(i,j) = f_{m}(i,j) + \sum_{k=1}^{4} {wgt(k)f(idx(src(k)))}617 \end{equation}618 where function idx() transforms a one dimensional index src(k) into a two dimensional index,619 and wgt(1) corresponds to variable "wgt01" for example.620 621 \subsection{Bicubic Interpolation}622 \label{SBC_iof_bicubic}623 624 Again there are two sets of variables: "src" and "wgt".625 But in this case there are 16 of each.626 The symbolic algorithm used to calculate values on the model grid is now:627 628 \begin{equation*} \begin{split}629 f_{m}(i,j) = f_{m}(i,j) +& \sum_{k=1}^{4} {wgt(k)f(idx(src(k)))}630 + \sum_{k=5}^{8} {wgt(k)\left.\frac{\partial f}{\partial i}\right| _{idx(src(k))} } \\631 +& \sum_{k=9}^{12} {wgt(k)\left.\frac{\partial f}{\partial j}\right| _{idx(src(k))} }632 + \sum_{k=13}^{16} {wgt(k)\left.\frac{\partial ^2 f}{\partial i \partial j}\right| _{idx(src(k))} }633 \end{split}634 \end{equation*}635 The gradients here are taken with respect to the horizontal indices and not distances since the spatial dependency has been absorbed into the weights.636 637 \subsection{Implementation}638 \label{SBC_iof_imp}639 640 To activate this option, a non-empty string should be supplied in the weights filename column641 of the relevant namelist; if this is left as an empty string no action is taken.642 In the model, weights files are read in and stored in a structured type (WGT) in the fldread643 module, as and when they are first required.644 This initialisation procedure determines whether the input data grid should be treated645 as cyclical or not by inspecting a global attribute stored in the weights input file.646 This attribute must be called "ew\_wrap" and be of integer type.647 If it is negative, the input non-model grid is assumed not to be cyclic.648 If zero or greater, then the value represents the number of columns that overlap.649 $E.g.$ if the input grid has columns at longitudes 0, 1, 2, .... , 359, then ew\_wrap should be set to 0;650 if longitudes are 0.5, 2.5, .... , 358.5, 360.5, 362.5, ew\_wrap should be 2.651 If the model does not find attribute ew\_wrap, then a value of -999 is assumed.652 In this case the \rou{fld\_read} routine defaults ew\_wrap to value 0 and therefore the grid653 is assumed to be cyclic with no overlapping columns.654 (In fact this only matters when bicubic interpolation is required.)655 Note that no testing is done to check the validity in the model, since there is no way656 of knowing the name used for the longitude variable,657 so it is up to the user to make sure his or her data is correctly represented.658 659 Next the routine reads in the weights.660 Bicubic interpolation is assumed if it finds a variable with name "src05", otherwise661 bilinear interpolation is used. The WGT structure includes dynamic arrays both for662 the storage of the weights (on the model grid), and when required, for reading in663 the variable to be interpolated (on the input data grid).664 The size of the input data array is determined by examining the values in the "src"665 arrays to find the minimum and maximum i and j values required.666 Since bicubic interpolation requires the calculation of gradients at each point on the grid,667 the corresponding arrays are dimensioned with a halo of width one grid point all the way around.668 When the array of points from the data file is adjacent to an edge of the data grid,669 the halo is either a copy of the row/column next to it (non-cyclical case), or is a copy670 of one from the first few columns on the opposite side of the grid (cyclical case).671 672 \subsection{Limitations}673 \label{SBC_iof_lim}674 675 \begin{description}676 \item677 The case where input data grids are not logically rectangular has not been tested.678 \item679 This code is not guaranteed to produce positive definite answers from positive definite inputs.680 \item681 The cyclic condition is only applied on left and right columns, and not to top and bottom rows.682 \item683 The gradients across the ends of a cyclical grid assume that the grid spacing between the two columns involved are consistent with the weights used.684 \item685 Neither interpolation scheme is conservative.686 (There is a conservative scheme available in SCRIP, but this has not been implemented.)687 \end{description}688 689 \subsection{Utilities}690 \label{SBC_iof_util}691 692 % to be completed693 A set of utilities to create a weights file for a rectilinear input grid is available.694 695 % ================================================================696 % Miscellanea options697 % ================================================================698 \section{Miscellaneous options}699 \label{SBC_misc}700 700 701 701 % -------------------------------------------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.