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 6275 for branches/2015/nemo_v3_6_STABLE/DOC/TexFiles/Chapters/Chap_LBC.tex – NEMO

Ignore:
Timestamp:
2016-02-01T03:35:04+01:00 (8 years ago)
Author:
gm
Message:

#1629: DOC of v3.6_stable. Upadate, see associated wiki page for description

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/DOC/TexFiles/Chapters/Chap_LBC.tex

    r4147 r6275  
    11% ================================================================ 
    2 % Chapter Lateral Boundary Condition (LBC)  
     2% Chapter Lateral Boundary Condition (LBC)  
    33% ================================================================ 
    44\chapter{Lateral Boundary Condition (LBC) } 
     
    204204%        North fold (\textit{jperio = 3 }to $6)$  
    205205% ------------------------------------------------------------------------------------------------------------- 
    206 \subsection{North-fold (\textit{jperio = 3 }to $6)$ } 
     206\subsection{North-fold (\textit{jperio = 3 }to $6$) } 
    207207\label{LBC_north_fold} 
    208208 
    209209The north fold boundary condition has been introduced in order to handle the north  
    210 boundary of a three-polar ORCA grid. Such a grid has two poles in the northern hemisphere.  
    211 \colorbox{yellow}{to be completed...} 
     210boundary of a three-polar ORCA grid. Such a grid has two poles in the northern hemisphere  
     211(Fig.\ref{Fig_MISC_ORCA_msh}, and thus requires a specific treatment illustrated in Fig.\ref{Fig_North_Fold_T}.  
     212Further information can be found in \mdl{lbcnfd} module which applies the north fold boundary condition. 
    212213 
    213214%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    250251ocean model. Second order finite difference schemes lead to local discrete  
    251252operators that depend at the very most on one neighbouring point. The only  
    252 non-local computations concern the vertical physics (implicit diffusion, 1.5  
     253non-local computations concern the vertical physics (implicit diffusion,  
    253254turbulent closure scheme, ...) (delocalization over the whole water column),  
    254255and the solving of the elliptic equation associated with the surface pressure  
    255256gradient computation (delocalization over the whole horizontal domain).  
    256257Therefore, a pencil strategy is used for the data sub-structuration  
    257 \gmcomment{no idea what this means!} 
    258258: the 3D initial domain is laid out on local processor  
    259259memories following a 2D horizontal topological splitting. Each sub-domain  
     
    264264phase starts: each processor sends to its neighbouring processors the update  
    265265values of the points corresponding to the interior overlapping area to its  
    266 neighbouring sub-domain (i.e. the innermost of the two overlapping rows).  
    267 The communication is done through message passing. Usually the parallel virtual  
    268 language, PVM, is used as it is a standard language available on  nearly  all  
    269 MPP computers. More specific languages (i.e. computer dependant languages)  
    270 can be easily used to speed up the communication, such as SHEM on a T3E  
    271 computer. The data exchanges between processors are required at the very  
     266neighbouring sub-domain ($i.e.$ the innermost of the two overlapping rows).  
     267The communication is done through the Message Passing Interface (MPI).  
     268The data exchanges between processors are required at the very  
    272269place where lateral domain boundary conditions are set in the mono-domain  
    273 computation (\S III.10-c): the lbc\_lnk routine which manages such conditions  
    274 is substituted by mpplnk.F or mpplnk2.F routine when running on an MPP  
    275 computer (\key{mpp\_mpi} defined). It has to be pointed out that when using  
    276 the MPP version of the model, the east-west cyclic boundary condition is done  
    277 implicitly, whilst the south-symmetric boundary condition option is not available. 
     270computation : the \rou{lbc\_lnk} routine (found in \mdl{lbclnk} module)  
     271which manages such conditions is interfaced with routines found in \mdl{lib\_mpp} module  
     272when running on an MPP computer ($i.e.$ when \key{mpp\_mpi} defined).  
     273It has to be pointed out that when using the MPP version of the model,  
     274the east-west cyclic boundary condition is done implicitly,  
     275whilst the south-symmetric boundary condition option is not available. 
    278276 
    279277%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    285283%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    286284 
    287 In the standard version of the OPA model, the splitting is regular and arithmetic. 
    288  the i-axis is divided by \jp{jpni} and the j-axis by \jp{jpnj} for a number of processors  
    289  \jp{jpnij} most often equal to $jpni \times jpnj$ (model parameters set in  
    290  \mdl{par\_oce}). Each processor is independent and without message passing  
    291  or synchronous process  
    292  \gmcomment{how does a synchronous process relate to this?},  
    293  programs run alone and access just its own local memory. For this reason, the  
    294  main model dimensions are now the local dimensions of the subdomain (pencil)  
     285In the standard version of \NEMO, the splitting is regular and arithmetic. 
     286The i-axis is divided by \jp{jpni} and the j-axis by \jp{jpnj} for a number of processors  
     287\jp{jpnij} most often equal to $jpni \times jpnj$ (parameters set in  
     288 \ngn{nammpp} namelist). Each processor is independent and without message passing  
     289 or synchronous process, programs run alone and access just its own local memory.  
     290 For this reason, the main model dimensions are now the local dimensions of the subdomain (pencil)  
    295291 that are named \jp{jpi}, \jp{jpj}, \jp{jpk}. These dimensions include the internal  
    296292 domain and the overlapping rows. The number of rows to exchange (known as  
     
    304300where \jp{jpni}, \jp{jpnj} are the number of processors following the i- and j-axis. 
    305301 
    306 \colorbox{yellow}{Figure IV.3: example of a domain splitting with 9 processors and  
    307 no east-west cyclic boundary conditions.} 
    308  
    309 One also defines variables nldi and nlei which correspond to the internal  
    310 domain bounds, and the variables nimpp and njmpp which are the position  
    311 of the (1,1) grid-point in the global domain. An element of $T_{l}$, a local array  
    312 (subdomain) corresponds to an element of $T_{g}$, a global array  
    313 (whole domain) by the relationship:  
     302One also defines variables nldi and nlei which correspond to the internal domain bounds,  
     303and the variables nimpp and njmpp which are the position of the (1,1) grid-point in the global domain.  
     304An element of $T_{l}$, a local array (subdomain) corresponds to an element of $T_{g}$,  
     305a global array (whole domain) by the relationship:  
    314306\begin{equation} \label{Eq_lbc_nimpp} 
    315307T_{g} (i+nimpp-1,j+njmpp-1,k) = T_{l} (i,j,k), 
     
    320312nproc. In the standard version, a processor has no more than four neighbouring  
    321313processors named nono (for north), noea (east), noso (south) and nowe (west)  
    322 and two variables, nbondi and nbondj, indicate the relative position of the processor  
    323 \colorbox{yellow}{(see Fig.IV.3)}: 
     314and two variables, nbondi and nbondj, indicate the relative position of the processor : 
    324315\begin{itemize} 
    325316\item       nbondi = -1    an east neighbour, no west processor, 
     
    332323processor on its overlapping row, and sends the data issued from internal  
    333324domain corresponding to the overlapping row of the other processor. 
    334         
    335 \colorbox{yellow}{Figure IV.4: pencil splitting with the additional outer halos } 
    336325 
    337326 
     
    343332global ocean where more than 50 \% of points are land points. For this reason, a  
    344333pre-processing tool can be used to choose the mpp domain decomposition with a  
    345 maximum number of only land points processors, which can then be eliminated.  
    346 (For example, the mpp\_optimiz tools, available from the DRAKKAR web site.)  
     334maximum number of only land points processors, which can then be eliminated (Fig. \ref{Fig_mppini2}) 
     335(For example, the mpp\_optimiz tools, available from the DRAKKAR web site).  
    347336This optimisation is dependent on the specific bathymetry employed. The user  
    348337then chooses optimal parameters \jp{jpni}, \jp{jpnj} and \jp{jpnij} with  
    349338$jpnij < jpni \times jpnj$, leading to the elimination of $jpni \times jpnj - jpnij$  
    350 land processors. When those parameters are specified in module \mdl{par\_oce},  
     339land processors. When those parameters are specified in \ngn{nammpp} namelist,  
    351340the algorithm in the \rou{inimpp2} routine sets each processor's parameters (nbound,  
    352341nono, noea,...) so that the land-only processors are not taken into account.  
    353342 
    354 \colorbox{yellow}{Note that the inimpp2 routine is general so that the original inimpp  
     343\gmcomment{Note that the inimpp2 routine is general so that the original inimpp  
    355344routine should be suppressed from the code.} 
    356345 
    357346When land processors are eliminated, the value corresponding to these locations in  
    358 the model output files is zero. Note that this is a problem for a mesh output file written  
    359 by such a model configuration, because model users often divide by the scale factors  
    360 ($e1t$, $e2t$, etc) and do not expect the grid size to be zero, even on land. It may be  
    361 best not to eliminate land processors when running the model especially to write the  
    362 mesh files as outputs (when \np{nn\_msh} namelist parameter differs from 0). 
    363 %% 
    364 \gmcomment{Steven : dont understand this, no land processor means no output file  
    365 covering this part of globe; its only when files are stitched together into one that you  
    366 can leave a hole} 
    367 %% 
     347the model output files is undefined. Note that this is a problem for the meshmask file  
     348which requires to be defined over the whole domain. Therefore, user should not eliminate  
     349land processors when creating a meshmask file ($i.e.$ when setting a non-zero value to \np{nn\_msh}). 
    368350 
    369351%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    380362%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    381363 
    382  
    383 % ================================================================ 
    384 % Open Boundary Conditions  
    385 % ================================================================ 
    386 \section{Open Boundary Conditions (\key{obc}) (OBC)} 
    387 \label{LBC_obc} 
    388 %-----------------------------------------nam_obc  ------------------------------------------- 
    389 %-    nobc_dta    =    0     !  = 0 the obc data are equal to the initial state 
    390 %-                           !  = 1 the obc data are read in 'obc   .dta' files 
    391 %-    rn_dpein      =    1.    !  ??? 
    392 %-    rn_dpwin      =    1.    !  ??? 
    393 %-    rn_dpnin      =   30.    !  ??? 
    394 %-    rn_dpsin      =    1.    !  ??? 
    395 %-    rn_dpeob      = 1500.    !  time relaxation (days) for the east  open boundary 
    396 %-    rn_dpwob      =   15.    !    "        "           for the west  open boundary 
    397 %-    rn_dpnob      =  150.    !    "        "           for the north open boundary 
    398 %-    rn_dpsob      =   15.    !    "        "           for the south open boundary 
    399 %-    ln_obc_clim = .true.   !  climatological obc data files (default T) 
    400 %-    ln_vol_cst  = .true.   !  total volume conserved 
    401 \namdisplay{namobc}  
    402  
    403 It is often necessary to implement a model configuration limited to an oceanic  
    404 region or a basin, which communicates with the rest of the global ocean through  
    405 ''open boundaries''. As stated by \citet{Roed1986}, an open boundary is a  
    406 computational border where the aim of the calculations is to allow the perturbations  
    407 generated inside the computational domain to leave it without deterioration of the  
    408 inner model solution. However, an open boundary also has to let information from  
    409 the outer ocean enter the model and should support inflow and outflow conditions.  
    410  
    411 The open boundary package OBC is the first open boundary option developed in  
    412 NEMO (originally in OPA8.2). It allows the user to  
    413 \begin{itemize} 
    414 \item tell the model that a boundary is ''open'' and not closed by a wall, for example  
    415 by modifying the calculation of the divergence of velocity there; 
    416 \item impose values of tracers and velocities at that boundary (values which may  
    417 be taken from a climatology): this is the``fixed OBC'' option.  
    418 \item calculate boundary values by a sophisticated algorithm combining radiation  
    419 and relaxation (``radiative OBC'' option) 
    420 \end{itemize} 
    421  
    422 Options are defined through the \ngn{namobc} namelist variables. 
    423 The package resides in the OBC directory. It is described here in four parts: the  
    424 boundary geometry (parameters to be set in \mdl{obc\_par}), the forcing data at  
    425 the boundaries (module \mdl{obcdta}),  the radiation algorithm involving the  
    426 namelist and module \mdl{obcrad}, and a brief presentation of boundary update  
    427 and restart files. 
    428  
    429 %---------------------------------------------- 
    430 \subsection{Boundary geometry} 
    431 \label{OBC_geom} 
    432 % 
    433 First one has to realize that open boundaries may not necessarily be located  
    434 at the extremities of the computational domain. They may exist in the middle  
    435 of the domain, for example at Gibraltar Straits if one wants to avoid including  
    436 the Mediterranean in an Atlantic domain. This flexibility has been found necessary  
    437 for the CLIPPER project \citep{Treguier_al_JGR01}. Because of the complexity of the  
    438 geometry of ocean basins, it may even be necessary to have more than one  
    439 ''west'' open boundary, more than one ''north'', etc. This is not possible with  
    440 the OBC option: only one open boundary of each kind, west, east, south and  
    441 north is allowed; these names refer to the grid geometry (not to the direction  
    442 of the geographical ''west'', ''east'', etc). 
    443  
    444 The open boundary geometry is set by a series of parameters in the module  
    445 \mdl{obc\_par}. For an eastern open boundary, parameters are \jp{lp\_obc\_east}  
    446 (true if an east open boundary exists), \jp{jpieob} the $i$-index along which  
    447 the eastern open boundary (eob) is located, \jp{jpjed} the $j$-index at which  
    448 it starts, and \jp{jpjef} the $j$-index where it ends (note $d$ is for ''d\'{e}but''  
    449 and $f$ for ''fin'' in French). Similar parameters exist for the west, south and  
    450 north cases (Table~\ref{Tab_obc_param}). 
    451  
    452  
    453 %--------------------------------------------------TABLE-------------------------------------------------- 
    454 \begin{table}[htbp]     \begin{center}    \begin{tabular}{|l|c|c|c|} 
    455 \hline 
    456 Boundary and  & Constant index  & Starting index (d\'{e}but) & Ending index (fin) \\ 
    457 Logical flag  &                 &                            &                     \\ 
    458 \hline 
    459 West          & \jp{jpiwob} $>= 2$         &  \jp{jpjwd}$>= 2$          &  \jp{jpjwf}<= \np{jpjglo}-1 \\ 
    460 lp\_obc\_west & $i$-index of a $u$ point   & $j$ of a $T$ point   &$j$ of a $T$ point \\ 
    461 \hline 
    462 East            & \jp{jpieob}$<=$\np{jpiglo}-2&\jp{jpjed} $>= 2$         & \jp{jpjef}$<=$ \np{jpjglo}-1 \\ 
    463  lp\_obc\_east  & $i$-index of a $u$ point    & $j$ of a $T$ point & $j$ of a $T$ point \\ 
    464 \hline 
    465 South           & \jp{jpjsob} $>= 2$         & \jp{jpisd} $>= 2$          & \jp{jpisf}$<=$\np{jpiglo}-1 \\ 
    466 lp\_obc\_south  & $j$-index of a $v$ point   & $i$ of a $T$ point   & $i$ of a $T$ point \\ 
    467 \hline 
    468 North           & \jp{jpjnob} $<=$ \np{jpjglo}-2& \jp{jpind} $>= 2$        & \jp{jpinf}$<=$\np{jpiglo}-1 \\ 
    469 lp\_obc\_north  & $j$-index of a $v$ point      & $i$  of a $T$ point & $i$ of a $T$ point \\ 
    470 \hline 
    471 \end{tabular}    \end{center} 
    472 \caption{     \label{Tab_obc_param} 
    473 Names of different indices relating to the open boundaries. In the case  
    474 of a completely open ocean domain with four ocean boundaries, the parameters  
    475 take exactly the values indicated.} 
    476 \end{table} 
    477 %------------------------------------------------------------------------------------------------------------ 
    478  
    479 The open boundaries must be along coordinate lines. On the C-grid, the boundary  
    480 itself is along a line of normal velocity points: $v$ points for a zonal open boundary  
    481 (the south or north one), and $u$ points for a meridional open boundary (the west  
    482 or east one). Another constraint is that there still must be a row of masked points  
    483 all around the domain, as if the domain were a closed basin (unless periodic conditions  
    484 are used together with open boundary conditions). Therefore, an open boundary  
    485 cannot be located at the first/last index, namely, 1, \jp{jpiglo} or \jp{jpjglo}. Also,  
    486 the open boundary algorithm involves calculating the normal velocity points situated  
    487 just on the boundary, as well as the tangential velocity and temperature and salinity  
    488 just outside the boundary. This means that for a west/south boundary, normal  
    489 velocities and temperature are calculated at the same index \jp{jpiwob} and  
    490 \jp{jpjsob}, respectively. For an east/north boundary, the normal velocity is  
    491 calculated at index \jp{jpieob} and \jp{jpjnob}, but the ``outside'' temperature is  
    492 at index \jp{jpieob}+1 and \jp{jpjnob}+1. This means that \jp{jpieob}, \jp{jpjnob}  
    493 cannot be bigger than \jp{jpiglo}-2, \jp{jpjglo}-2.  
    494  
    495  
    496 The starting and ending indices are to be thought of as $T$ point indices: in many  
    497 cases they indicate the first land $T$-point, at the extremity of an open boundary  
    498 (the coast line follows the $f$ grid points, see Fig.~\ref{Fig_obc_north} for an example  
    499 of a northern open boundary). All indices are relative to the global domain. In the  
    500 free surface case it is possible to have ``ocean corners'', that is, an open boundary  
    501 starting and ending in the ocean. 
    502  
    503 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    504 \begin{figure}[!t]     \begin{center} 
    505 \includegraphics[width=0.70\textwidth]{./TexFiles/Figures/Fig_obc_north.pdf} 
    506 \caption{    \label{Fig_obc_north} 
    507 Localization of the North open boundary points.} 
    508 \end{center}     \end{figure} 
    509 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    510  
    511 Although not compulsory, it is highly recommended that the bathymetry in the  
    512 vicinity of an open boundary follows the following rule: in the direction perpendicular  
    513 to the open line, the water depth should be constant for 4 grid points. This is in  
    514 order to ensure that the radiation condition, which involves model variables next  
    515 to the boundary, is calculated in a consistent way. On Fig.\ref{Fig_obc_north} we  
    516 indicate by an $=$ symbol, the points which should have the same depth. It means  
    517 that at the 4 points near the boundary, the bathymetry is cylindrical \gmcomment{not sure  
    518 why cylindrical}. The line behind the open $T$-line must be 0 in the bathymetry file  
    519 (as shown on Fig.\ref{Fig_obc_north} for example). 
    520  
    521 %---------------------------------------------- 
    522 \subsection{Boundary data} 
    523 \label{OBC_data} 
    524  
    525 It is necessary to provide information at the boundaries. The simplest case is  
    526 when this information does not change in time and is equal to the initial conditions  
    527 (namelist variable \np{nn\_obcdta}=0). This is the case for the standard configuration  
    528 EEL5 with open boundaries. When (\np{nn\_obcdta}=1), open boundary information  
    529 is read from netcdf files. For convenience the input files are supposed to be similar  
    530 to the ''history'' NEMO output files, for dimension names and variable names.  
    531 Open boundary arrays must be dimensioned according to the parameters of table~ 
    532 \ref{Tab_obc_param}: for example, at the western boundary, arrays have a  
    533 dimension of \jp{jpwf}-\jp{jpwd}+1 in the horizontal and \jp{jpk} in the vertical.  
    534  
    535 When ocean observations are used to generate the boundary data (a hydrographic  
    536 section for example, as in \citet{Treguier_al_JGR01}) it happens often that only the velocity  
    537 normal to the boundary is known, which is the reason why the initial OBC code  
    538 assumes that only $T$, $S$, and the normal velocity ($u$ or $v$) needs to be  
    539 specified. As more and more global model solutions and ocean analysis products  
    540 become available, it will be possible to provide information about all the variables  
    541 (including the tangential velocity) so that the specification of four variables at each  
    542 boundaries will become standard. For the sea surface height, one must distinguish  
    543 between the filtered free surface case and the time-splitting or explicit treatment of  
    544 the free surface. 
    545  In the first case, it is assumed that the user does not wish to represent high  
    546  frequency motions such as tides. The boundary condition is thus one of zero  
    547  normal gradient of sea surface height at the open boundaries, following \citet{Marchesiello2001}.  
    548 No information other than the total velocity needs to be provided at the open  
    549 boundaries in that case. In the other two cases (time splitting or explicit free surface),  
    550 the user must provide barotropic information (sea surface height and barotropic  
    551 velocities) and the use of the Flather algorithm for barotropic variables is  
    552 recommanded. However, this algorithm has not yet been fully tested and bugs  
    553 remain in NEMO v2.3. Users should read the code carefully before using it. Finally,  
    554 in the case of the rigid lid approximation the barotropic streamfunction must be  
    555 provided, as documented in \citet{Treguier_al_JGR01}). This option is no longer  
    556 recommended but remains in NEMO V2.3. 
    557  
    558 One frequently encountered case is when an open boundary domain is constructed  
    559 from a global or larger scale NEMO configuration. Assuming the domain corresponds  
    560 to indices $ib:ie$, $jb:je$ of the global domain, the bathymetry and forcing of the  
    561 small domain can be created by using the following netcdf utility on the global files:  
    562 ncks -F $-d\;x,ib,ie$ $-d\;y,jb,je$ (part of the nco series of utilities,  
    563 see their \href{http://nco.sourceforge.net}{website}).  
    564 The open boundary files can be constructed using ncks  
    565 commands, following table~\ref{Tab_obc_ind}.  
    566  
    567 %--------------------------------------------------TABLE-------------------------------------------------- 
    568 \begin{table}[htbp]     \begin{center}      \begin{tabular}{|l|c|c|c|c|c|} 
    569 \hline 
    570 OBC  & Variable   & file name      & Index  & Start  & end  \\ 
    571 West &  T,S       &   obcwest\_TS.nc &  $ib$+1     &   $jb$+1 &  $je-1$  \\ 
    572      &    U       &   obcwest\_U.nc  &  $ib$+1     &   $jb$+1 &  $je-1$  \\  
    573      &    V       &   obcwest\_V.nc  &  $ib$+1     &   $jb$+1 &  $je-1$  \\        
    574 \hline 
    575 East &  T,S       &   obceast\_TS.nc &  $ie$-1     &   $jb$+1 &  $je-1$  \\ 
    576      &    U       &   obceast\_U.nc  &  $ie$-2     &   $jb$+1 &  $je-1$  \\  
    577      &    V       &   obceast\_V.nc  &  $ie$-1     &   $jb$+1 &  $je-1$  \\        
    578 \hline          
    579 South &  T,S      &   obcsouth\_TS.nc &  $jb$+1     &  $ib$+1 &  $ie-1$  \\ 
    580       &    U      &   obcsouth\_U.nc  &  $jb$+1     &  $ib$+1 &  $ie-1$  \\  
    581       &    V      &   obcsouth\_V.nc  &  $jb$+1     &  $ib$+1 &  $ie-1$  \\     
    582 \hline 
    583 North &  T,S      &   obcnorth\_TS.nc &  $je$-1     &  $ib$+1 &  $ie-1$  \\ 
    584       &    U      &   obcnorth\_U.nc  &  $je$-1     &  $ib$+1 &  $ie-1$  \\  
    585       &    V      &   obcnorth\_V.nc  &  $je$-2     &  $ib$+1 &  $ie-1$  \\   
    586 \hline 
    587 \end{tabular}     \end{center} 
    588 \caption{    \label{Tab_obc_ind} 
    589 Requirements for creating open boundary files from a global configuration,  
    590 appropriate for the subdomain of indices $ib:ie$, $jb:je$. ``Index'' designates the  
    591 $i$ or $j$ index along which the $u$ of $v$ boundary point is situated in the global  
    592 configuration, starting and ending with the $j$ or $i$ indices indicated.  
    593 For example, to generate file obcnorth\_V.nc, use the command ncks  
    594 $-F$ $-d\;y,je-2$  $-d\;x,ib+1,ie-1$ }  
    595 \end{table} 
    596 %----------------------------------------------------------------------------------------------------------- 
    597  
    598 It is assumed that the open boundary files contain the variables for the period of  
    599 the model integration. If the boundary files contain one time frame, the boundary  
    600 data is held fixed in time. If the files contain 12 values, it is assumed that the input  
    601 is a climatology for a repeated annual cycle (corresponding to the case \np{ln\_obc\_clim}  
    602 =true). The case of an arbitrary number of time frames is not yet implemented  
    603 correctly; the user is required to write his own code in the module \mdl{obc\_dta}  
    604 to deal with this situation.  
    605  
    606 \subsection{Radiation algorithm} 
    607 \label{OBC_rad} 
    608  
    609 The art of open boundary management consists in applying a constraint strong  
    610 enough that the inner domain "feels" the rest of the ocean, but weak enough 
    611 that perturbations are allowed to leave the domain with minimum false reflections  
    612 of energy. The constraints are specified separately at each boundary as time  
    613 scales for ''inflow'' and ''outflow'' as defined below. The time scales are set (in days)  
    614 by namelist parameters such as \np{rn\_dpein}, \np{rn\_dpeob} for the eastern open  
    615 boundary for example. When both time scales are zero for a given boundary  
    616 ($e.g.$ for the western boundary, \jp{lp\_obc\_west}=true, \np{rn\_dpwob}=0 and  
    617 \np{rn\_dpwin}=0) this means that the boundary in question is a ''fixed '' boundary  
    618 where the solution is set exactly by the boundary data. This is not recommended,  
    619 except in combination with increased viscosity in a ''sponge'' layer next to the  
    620 boundary in order to avoid spurious reflections.   
    621  
    622  
    623 The radiation\/relaxation \gmcomment{the / doesnt seem to appear in the output}  
    624 algorithm is applied when either relaxation time (for ''inflow'' or ''outflow'') is  
    625 non-zero. It has been developed and tested in the SPEM model and its  
    626 successor ROMS \citep{Barnier1996, Marchesiello2001}, which is an  
    627 $s$-coordinate model on an Arakawa C-grid. Although the algorithm has  
    628 been numerically successful in the CLIPPER Atlantic models, the physics  
    629 do not work as expected \citep{Treguier_al_JGR01}. Users are invited to consider  
    630 open boundary conditions (OBC hereafter) with some scepticism  
    631 \citep{Durran2001, Blayo2005}. 
    632  
    633 The first part of the algorithm calculates a phase velocity to determine  
    634 whether perturbations tend to propagate toward, or away from, the  
    635 boundary. Let us consider a model variable $\phi$.  
    636 The phase velocities ($C_{\phi x}$,$C_{\phi y}$) for the variable $\phi$,  
    637 in the directions normal and tangential to the boundary are 
    638 \begin{equation} \label{Eq_obc_cphi} 
    639 C_{\phi x} = \frac{ -\phi_{t} }{ ( \phi_{x}^{2} + \phi_{y}^{2}) } \phi_{x}  
    640 \;\;\;\;\; \;\;\;  
    641 C_{\phi y} = \frac{ -\phi_{t} }{ ( \phi_{x}^{2} + \phi_{y}^{2}) } \phi_{y}.  
    642 \end{equation} 
    643 Following \citet{Treguier_al_JGR01} and \citet{Marchesiello2001} we retain only  
    644 the normal component of the velocity, $C_{\phi x}$, setting $C_{\phi y} =0$  
    645 (but unlike the original Orlanski radiation algorithm we retain $\phi_{y}$ in  
    646 the expression for $C_{\phi x}$).   
    647  
    648 The discrete form of (\ref{Eq_obc_cphi}), described by \citet{Barnier1998}, 
    649 takes into account the two rows of grid points situated inside the domain  
    650 next to the boundary, and the three previous time steps ($n$, $n-1$, 
    651 and $n-2$). The same equation can then be discretized at the boundary at 
    652 time steps $n-1$, $n$ and $n+1$ \gmcomment{since the original was three time-level}  
    653 in order to extrapolate for the new boundary value $\phi^{n+1}$.  
    654  
    655 In the open boundary algorithm as implemented in NEMO v2.3, the new boundary  
    656 values are updated differently depending on the sign of $C_{\phi x}$. Let us take  
    657 an eastern boundary as an example. The solution for variable $\phi$ at the  
    658 boundary is given by a generalized wave equation with phase velocity $C_{\phi}$,  
    659 with the addition of a relaxation term, as: 
    660 \begin{eqnarray} 
    661 \phi_{t} &  =  & -C_{\phi x} \phi_{x} + \frac{1}{\tau_{o}} (\phi_{c}-\phi)  
    662                         \;\;\; \;\;\; \;\;\; (C_{\phi x} > 0), \label{Eq_obc_rado} \\ 
    663 \phi_{t} &  =  & \frac{1}{\tau_{i}} (\phi_{c}-\phi)  
    664 \;\;\; \;\;\; \;\;\;\;\;\; (C_{\phi x} < 0), \label{Eq_obc_radi} 
    665 \end{eqnarray} 
    666 where $\phi_{c}$ is the estimate of $\phi$ at the boundary, provided as boundary  
    667 data. Note that in (\ref{Eq_obc_rado}), $C_{\phi x}$ is bounded by the ratio  
    668 $\delta x/\delta t$ for stability reasons. When $C_{\phi x}$ is eastward (outward  
    669 propagation), the radiation condition (\ref{Eq_obc_rado}) is used.  
    670 When  $C_{\phi x}$ is westward (inward propagation), (\ref{Eq_obc_radi}) is  
    671 used with a strong relaxation to climatology (usually $\tau_{i}=\np{rn\_dpein}=$1~day). 
    672 Equation (\ref{Eq_obc_radi}) is solved with a Euler time-stepping scheme. As a  
    673 consequence, setting $\tau_{i}$ smaller than, or equal to the time step is equivalent  
    674 to a fixed boundary condition. A time scale of one day is usually a good compromise  
    675 which guarantees that the inflow conditions remain close to climatology while ensuring  
    676 numerical stability.  
    677  
    678 In  the case of a western boundary located in the Eastern Atlantic, \citet{Penduff_al_JGR00}  
    679 have been able to implement the radiation algorithm without any boundary data,  
    680 using persistence from the previous time step instead. This solution has not worked  
    681 in other cases \citep{Treguier_al_JGR01}, so that the use of boundary data is recommended.  
    682 Even in the outflow condition (\ref{Eq_obc_rado}), we have found it desirable to  
    683 maintain a weak relaxation to climatology. The time step is usually chosen so as to  
    684 be larger than typical turbulent scales (of order 1000~days \gmcomment{or maybe seconds?}). 
    685  
    686 The radiation condition is applied to the model variables: temperature, salinity,  
    687 tangential and normal velocities. For normal and tangential velocities, $u$ and $v$,  
    688 radiation is applied with phase velocities calculated from $u$ and $v$ respectively.   
    689 For the radiation of tracers, we use the phase velocity calculated from the tangential  
    690 velocity in order to avoid calculating too many independent radiation velocities and  
    691 because tangential velocities and tracers have the same position along the boundary  
    692 on a C-grid.   
    693  
    694 \subsection{Domain decomposition (\key{mpp\_mpi})} 
    695 \label{OBC_mpp} 
    696 When \key{mpp\_mpi} is active in the code, the computational domain is divided  
    697 into rectangles that are attributed each to a different processor. The open boundary  
    698 code is ``mpp-compatible'' up to a certain point. The radiation algorithm will not  
    699 work if there is an mpp subdomain boundary parallel to the open boundary at the  
    700 index of the boundary, or the grid point after (outside), or three grid points before  
    701 (inside). On the other hand, there is no problem if an mpp subdomain boundary  
    702 cuts the open boundary perpendicularly. These geometrical limitations must be  
    703 checked for by the user (there is no safeguard in the code).   
    704 The general principle for the open boundary mpp code is that loops over the open  
    705 boundaries {not sure what this means} are performed on local indices (nie0,  
    706 nie1, nje0, nje1 for an eastern boundary for instance) that are initialized in module  
    707 \mdl{obc\_ini}. Those indices have relevant values on the processors that contain  
    708 a segment of an open boundary. For processors that do not include an open  
    709 boundary segment, the indices are such that the calculations within the loops are  
    710 not performed. 
    711 \gmcomment{I dont understand most of the last few sentences} 
    712   
    713 Arrays of climatological data that are read from files are seen by all processors  
    714 and have the same dimensions for all (for instance, for the eastern boundary,  
    715 uedta(jpjglo,jpk,2)). On the other hand, the arrays for the calculation of radiation  
    716 are local to each processor (uebnd(jpj,jpk,3,3) for instance).  This allowed the  
    717 CLIPPER model for example, to save on memory where the eastern boundary  
    718 crossed 8 processors so that \jp{jpj} was much smaller than (\jp{jpjef}-\jp{jpjed}+1).  
    719  
    720 \subsection{Volume conservation} 
    721 \label{OBC_vol} 
    722  
    723 It is necessary to control the volume inside a domain when using open boundaries.  
    724 With fixed boundaries, it is enough to ensure that the total inflow/outflow has  
    725 reasonable values (either zero or a value compatible with an observed volume  
    726 balance). When using radiative boundary conditions it is necessary to have a  
    727 volume constraint because each open boundary works independently from the  
    728 others. The methodology used to control this volume is identical to the one  
    729 coded in the ROMS model \citep{Marchesiello2001}. 
    730  
    731  
    732 %---------------------------------------- EXTRAS 
    733 \colorbox{yellow}{Explain obc\_vol{\ldots}} 
    734  
    735 \colorbox{yellow}{OBC algorithm for update, OBC restart, list of routines where obc key appears{\ldots}} 
    736  
    737 \colorbox{yellow}{OBC rigid lid? {\ldots}} 
    738364 
    739365% ==================================================================== 
Note: See TracChangeset for help on using the changeset viewer.