- Timestamp:
- 2016-02-01T03:35:04+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/DOC/TexFiles/Chapters/Chap_LBC.tex
r4147 r6275 1 1 % ================================================================ 2 % Chapter �Lateral Boundary Condition (LBC)2 % Chapter — Lateral Boundary Condition (LBC) 3 3 % ================================================================ 4 4 \chapter{Lateral Boundary Condition (LBC) } … … 204 204 % North fold (\textit{jperio = 3 }to $6)$ 205 205 % ------------------------------------------------------------------------------------------------------------- 206 \subsection{North-fold (\textit{jperio = 3 }to $6 )$}206 \subsection{North-fold (\textit{jperio = 3 }to $6$) } 207 207 \label{LBC_north_fold} 208 208 209 209 The 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...} 210 boundary 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}. 212 Further information can be found in \mdl{lbcnfd} module which applies the north fold boundary condition. 212 213 213 214 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 250 251 ocean model. Second order finite difference schemes lead to local discrete 251 252 operators that depend at the very most on one neighbouring point. The only 252 non-local computations concern the vertical physics (implicit diffusion, 1.5253 non-local computations concern the vertical physics (implicit diffusion, 253 254 turbulent closure scheme, ...) (delocalization over the whole water column), 254 255 and the solving of the elliptic equation associated with the surface pressure 255 256 gradient computation (delocalization over the whole horizontal domain). 256 257 Therefore, a pencil strategy is used for the data sub-structuration 257 \gmcomment{no idea what this means!}258 258 : the 3D initial domain is laid out on local processor 259 259 memories following a 2D horizontal topological splitting. Each sub-domain … … 264 264 phase starts: each processor sends to its neighbouring processors the update 265 265 values 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 266 neighbouring sub-domain ($i.e.$ the innermost of the two overlapping rows). 267 The communication is done through the Message Passing Interface (MPI). 268 The data exchanges between processors are required at the very 272 269 place 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. 270 computation : the \rou{lbc\_lnk} routine (found in \mdl{lbclnk} module) 271 which manages such conditions is interfaced with routines found in \mdl{lib\_mpp} module 272 when running on an MPP computer ($i.e.$ when \key{mpp\_mpi} defined). 273 It has to be pointed out that when using the MPP version of the model, 274 the east-west cyclic boundary condition is done implicitly, 275 whilst the south-symmetric boundary condition option is not available. 278 276 279 277 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 285 283 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 286 284 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) 285 In the standard version of \NEMO, the splitting is regular and arithmetic. 286 The 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) 295 291 that are named \jp{jpi}, \jp{jpj}, \jp{jpk}. These dimensions include the internal 296 292 domain and the overlapping rows. The number of rows to exchange (known as … … 304 300 where \jp{jpni}, \jp{jpnj} are the number of processors following the i- and j-axis. 305 301 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: 302 One also defines variables nldi and nlei which correspond to the internal domain bounds, 303 and the variables nimpp and njmpp which are the position of the (1,1) grid-point in the global domain. 304 An element of $T_{l}$, a local array (subdomain) corresponds to an element of $T_{g}$, 305 a global array (whole domain) by the relationship: 314 306 \begin{equation} \label{Eq_lbc_nimpp} 315 307 T_{g} (i+nimpp-1,j+njmpp-1,k) = T_{l} (i,j,k), … … 320 312 nproc. In the standard version, a processor has no more than four neighbouring 321 313 processors 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)}: 314 and two variables, nbondi and nbondj, indicate the relative position of the processor : 324 315 \begin{itemize} 325 316 \item nbondi = -1 an east neighbour, no west processor, … … 332 323 processor on its overlapping row, and sends the data issued from internal 333 324 domain corresponding to the overlapping row of the other processor. 334 335 \colorbox{yellow}{Figure IV.4: pencil splitting with the additional outer halos }336 325 337 326 … … 343 332 global ocean where more than 50 \% of points are land points. For this reason, a 344 333 pre-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 .)334 maximum 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). 347 336 This optimisation is dependent on the specific bathymetry employed. The user 348 337 then chooses optimal parameters \jp{jpni}, \jp{jpnj} and \jp{jpnij} with 349 338 $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},339 land processors. When those parameters are specified in \ngn{nammpp} namelist, 351 340 the algorithm in the \rou{inimpp2} routine sets each processor's parameters (nbound, 352 341 nono, noea,...) so that the land-only processors are not taken into account. 353 342 354 \ colorbox{yellow}{Note that the inimpp2 routine is general so that the original inimpp343 \gmcomment{Note that the inimpp2 routine is general so that the original inimpp 355 344 routine should be suppressed from the code.} 356 345 357 346 When 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 %% 347 the model output files is undefined. Note that this is a problem for the meshmask file 348 which requires to be defined over the whole domain. Therefore, user should not eliminate 349 land processors when creating a meshmask file ($i.e.$ when setting a non-zero value to \np{nn\_msh}). 368 350 369 351 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 380 362 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 381 363 382 383 % ================================================================384 % Open Boundary Conditions385 % ================================================================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 state390 %- ! = 1 the obc data are read in 'obc .dta' files391 %- 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 boundary396 %- rn_dpwob = 15. ! " " for the west open boundary397 %- rn_dpnob = 150. ! " " for the north open boundary398 %- rn_dpsob = 15. ! " " for the south open boundary399 %- ln_obc_clim = .true. ! climatological obc data files (default T)400 %- ln_vol_cst = .true. ! total volume conserved401 \namdisplay{namobc}402 403 It is often necessary to implement a model configuration limited to an oceanic404 region or a basin, which communicates with the rest of the global ocean through405 ''open boundaries''. As stated by \citet{Roed1986}, an open boundary is a406 computational border where the aim of the calculations is to allow the perturbations407 generated inside the computational domain to leave it without deterioration of the408 inner model solution. However, an open boundary also has to let information from409 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 in412 NEMO (originally in OPA8.2). It allows the user to413 \begin{itemize}414 \item tell the model that a boundary is ''open'' and not closed by a wall, for example415 by modifying the calculation of the divergence of velocity there;416 \item impose values of tracers and velocities at that boundary (values which may417 be taken from a climatology): this is the``fixed OBC'' option.418 \item calculate boundary values by a sophisticated algorithm combining radiation419 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: the424 boundary geometry (parameters to be set in \mdl{obc\_par}), the forcing data at425 the boundaries (module \mdl{obcdta}), the radiation algorithm involving the426 namelist and module \mdl{obcrad}, and a brief presentation of boundary update427 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 located434 at the extremities of the computational domain. They may exist in the middle435 of the domain, for example at Gibraltar Straits if one wants to avoid including436 the Mediterranean in an Atlantic domain. This flexibility has been found necessary437 for the CLIPPER project \citep{Treguier_al_JGR01}. Because of the complexity of the438 geometry of ocean basins, it may even be necessary to have more than one439 ''west'' open boundary, more than one ''north'', etc. This is not possible with440 the OBC option: only one open boundary of each kind, west, east, south and441 north is allowed; these names refer to the grid geometry (not to the direction442 of the geographical ''west'', ''east'', etc).443 444 The open boundary geometry is set by a series of parameters in the module445 \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 which447 the eastern open boundary (eob) is located, \jp{jpjed} the $j$-index at which448 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 and450 north cases (Table~\ref{Tab_obc_param}).451 452 453 %--------------------------------------------------TABLE--------------------------------------------------454 \begin{table}[htbp] \begin{center} \begin{tabular}{|l|c|c|c|}455 \hline456 Boundary and & Constant index & Starting index (d\'{e}but) & Ending index (fin) \\457 Logical flag & & & \\458 \hline459 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 \hline462 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 \hline465 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 \hline468 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 \hline471 \end{tabular} \end{center}472 \caption{ \label{Tab_obc_param}473 Names of different indices relating to the open boundaries. In the case474 of a completely open ocean domain with four ocean boundaries, the parameters475 take exactly the values indicated.}476 \end{table}477 %------------------------------------------------------------------------------------------------------------478 479 The open boundaries must be along coordinate lines. On the C-grid, the boundary480 itself is along a line of normal velocity points: $v$ points for a zonal open boundary481 (the south or north one), and $u$ points for a meridional open boundary (the west482 or east one). Another constraint is that there still must be a row of masked points483 all around the domain, as if the domain were a closed basin (unless periodic conditions484 are used together with open boundary conditions). Therefore, an open boundary485 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 situated487 just on the boundary, as well as the tangential velocity and temperature and salinity488 just outside the boundary. This means that for a west/south boundary, normal489 velocities and temperature are calculated at the same index \jp{jpiwob} and490 \jp{jpjsob}, respectively. For an east/north boundary, the normal velocity is491 calculated at index \jp{jpieob} and \jp{jpjnob}, but the ``outside'' temperature is492 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 many497 cases they indicate the first land $T$-point, at the extremity of an open boundary498 (the coast line follows the $f$ grid points, see Fig.~\ref{Fig_obc_north} for an example499 of a northern open boundary). All indices are relative to the global domain. In the500 free surface case it is possible to have ``ocean corners'', that is, an open boundary501 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 the512 vicinity of an open boundary follows the following rule: in the direction perpendicular513 to the open line, the water depth should be constant for 4 grid points. This is in514 order to ensure that the radiation condition, which involves model variables next515 to the boundary, is calculated in a consistent way. On Fig.\ref{Fig_obc_north} we516 indicate by an $=$ symbol, the points which should have the same depth. It means517 that at the 4 points near the boundary, the bathymetry is cylindrical \gmcomment{not sure518 why cylindrical}. The line behind the open $T$-line must be 0 in the bathymetry file519 (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 is526 when this information does not change in time and is equal to the initial conditions527 (namelist variable \np{nn\_obcdta}=0). This is the case for the standard configuration528 EEL5 with open boundaries. When (\np{nn\_obcdta}=1), open boundary information529 is read from netcdf files. For convenience the input files are supposed to be similar530 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 a533 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 hydrographic536 section for example, as in \citet{Treguier_al_JGR01}) it happens often that only the velocity537 normal to the boundary is known, which is the reason why the initial OBC code538 assumes that only $T$, $S$, and the normal velocity ($u$ or $v$) needs to be539 specified. As more and more global model solutions and ocean analysis products540 become available, it will be possible to provide information about all the variables541 (including the tangential velocity) so that the specification of four variables at each542 boundaries will become standard. For the sea surface height, one must distinguish543 between the filtered free surface case and the time-splitting or explicit treatment of544 the free surface.545 In the first case, it is assumed that the user does not wish to represent high546 frequency motions such as tides. The boundary condition is thus one of zero547 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 open549 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 barotropic551 velocities) and the use of the Flather algorithm for barotropic variables is552 recommanded. However, this algorithm has not yet been fully tested and bugs553 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 be555 provided, as documented in \citet{Treguier_al_JGR01}). This option is no longer556 recommended but remains in NEMO V2.3.557 558 One frequently encountered case is when an open boundary domain is constructed559 from a global or larger scale NEMO configuration. Assuming the domain corresponds560 to indices $ib:ie$, $jb:je$ of the global domain, the bathymetry and forcing of the561 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 ncks565 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 \hline570 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 \hline575 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 \hline579 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 \hline583 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 \hline587 \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 the591 $i$ or $j$ index along which the $u$ of $v$ boundary point is situated in the global592 configuration, starting and ending with the $j$ or $i$ indices indicated.593 For example, to generate file obcnorth\_V.nc, use the command ncks594 $-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 of599 the model integration. If the boundary files contain one time frame, the boundary600 data is held fixed in time. If the files contain 12 values, it is assumed that the input601 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 implemented603 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 strong610 enough that the inner domain "feels" the rest of the ocean, but weak enough611 that perturbations are allowed to leave the domain with minimum false reflections612 of energy. The constraints are specified separately at each boundary as time613 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 open615 boundary for example. When both time scales are zero for a given boundary616 ($e.g.$ for the western boundary, \jp{lp\_obc\_west}=true, \np{rn\_dpwob}=0 and617 \np{rn\_dpwin}=0) this means that the boundary in question is a ''fixed '' boundary618 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 the620 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'') is625 non-zero. It has been developed and tested in the SPEM model and its626 successor ROMS \citep{Barnier1996, Marchesiello2001}, which is an627 $s$-coordinate model on an Arakawa C-grid. Although the algorithm has628 been numerically successful in the CLIPPER Atlantic models, the physics629 do not work as expected \citep{Treguier_al_JGR01}. Users are invited to consider630 open boundary conditions (OBC hereafter) with some scepticism631 \citep{Durran2001, Blayo2005}.632 633 The first part of the algorithm calculates a phase velocity to determine634 whether perturbations tend to propagate toward, or away from, the635 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 are638 \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 only644 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}$ in646 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 domain650 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 at652 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 boundary656 values are updated differently depending on the sign of $C_{\phi x}$. Let us take657 an eastern boundary as an example. The solution for variable $\phi$ at the658 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 boundary667 data. Note that in (\ref{Eq_obc_rado}), $C_{\phi x}$ is bounded by the ratio668 $\delta x/\delta t$ for stability reasons. When $C_{\phi x}$ is eastward (outward669 propagation), the radiation condition (\ref{Eq_obc_rado}) is used.670 When $C_{\phi x}$ is westward (inward propagation), (\ref{Eq_obc_radi}) is671 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 a673 consequence, setting $\tau_{i}$ smaller than, or equal to the time step is equivalent674 to a fixed boundary condition. A time scale of one day is usually a good compromise675 which guarantees that the inflow conditions remain close to climatology while ensuring676 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 worked681 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 to683 maintain a weak relaxation to climatology. The time step is usually chosen so as to684 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 tangential690 velocity in order to avoid calculating too many independent radiation velocities and691 because tangential velocities and tracers have the same position along the boundary692 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 divided697 into rectangles that are attributed each to a different processor. The open boundary698 code is ``mpp-compatible'' up to a certain point. The radiation algorithm will not699 work if there is an mpp subdomain boundary parallel to the open boundary at the700 index of the boundary, or the grid point after (outside), or three grid points before701 (inside). On the other hand, there is no problem if an mpp subdomain boundary702 cuts the open boundary perpendicularly. These geometrical limitations must be703 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 open705 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 module707 \mdl{obc\_ini}. Those indices have relevant values on the processors that contain708 a segment of an open boundary. For processors that do not include an open709 boundary segment, the indices are such that the calculations within the loops are710 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 processors714 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 radiation716 are local to each processor (uebnd(jpj,jpk,3,3) for instance). This allowed the717 CLIPPER model for example, to save on memory where the eastern boundary718 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 has725 reasonable values (either zero or a value compatible with an observed volume726 balance). When using radiative boundary conditions it is necessary to have a727 volume constraint because each open boundary works independently from the728 others. The methodology used to control this volume is identical to the one729 coded in the ROMS model \citep{Marchesiello2001}.730 731 732 %---------------------------------------- EXTRAS733 \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}}738 364 739 365 % ====================================================================
Note: See TracChangeset
for help on using the changeset viewer.