Changeset 6625 for branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/DOC/TexFiles/Chapters/Chap_LBC.tex
- Timestamp:
- 2016-05-26T11:08:07+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/DOC/TexFiles/Chapters/Chap_LBC.tex
r6617 r6625 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 (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. 210 boundary of a three-polar ORCA grid. Such a grid has two poles in the northern hemisphere. 211 \colorbox{yellow}{to be completed...} 213 212 214 213 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 251 250 ocean model. Second order finite difference schemes lead to local discrete 252 251 operators that depend at the very most on one neighbouring point. The only 253 non-local computations concern the vertical physics (implicit diffusion, 252 non-local computations concern the vertical physics (implicit diffusion, 1.5 254 253 turbulent closure scheme, ...) (delocalization over the whole water column), 255 254 and the solving of the elliptic equation associated with the surface pressure 256 255 gradient computation (delocalization over the whole horizontal domain). 257 256 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 the Message Passing Interface (MPI). 268 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 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 269 272 place where lateral domain boundary conditions are set in the mono-domain 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. 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. 276 278 277 279 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 283 285 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 284 286 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) 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) 291 295 that are named \jp{jpi}, \jp{jpj}, \jp{jpk}. These dimensions include the internal 292 296 domain and the overlapping rows. The number of rows to exchange (known as … … 300 304 where \jp{jpni}, \jp{jpnj} are the number of processors following the i- and j-axis. 301 305 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: 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: 306 314 \begin{equation} \label{Eq_lbc_nimpp} 307 315 T_{g} (i+nimpp-1,j+njmpp-1,k) = T_{l} (i,j,k), … … 312 320 nproc. In the standard version, a processor has no more than four neighbouring 313 321 processors named nono (for north), noea (east), noso (south) and nowe (west) 314 and two variables, nbondi and nbondj, indicate the relative position of the processor : 322 and two variables, nbondi and nbondj, indicate the relative position of the processor 323 \colorbox{yellow}{(see Fig.IV.3)}: 315 324 \begin{itemize} 316 325 \item nbondi = -1 an east neighbour, no west processor, … … 323 332 processor on its overlapping row, and sends the data issued from internal 324 333 domain corresponding to the overlapping row of the other processor. 334 335 \colorbox{yellow}{Figure IV.4: pencil splitting with the additional outer halos } 325 336 326 337 … … 332 343 global ocean where more than 50 \% of points are land points. For this reason, a 333 344 pre-processing tool can be used to choose the mpp domain decomposition with a 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 ).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.) 336 347 This optimisation is dependent on the specific bathymetry employed. The user 337 348 then chooses optimal parameters \jp{jpni}, \jp{jpnj} and \jp{jpnij} with 338 349 $jpnij < jpni \times jpnj$, leading to the elimination of $jpni \times jpnj - jpnij$ 339 land processors. When those parameters are specified in \ngn{nammpp} namelist,350 land processors. When those parameters are specified in module \mdl{par\_oce}, 340 351 the algorithm in the \rou{inimpp2} routine sets each processor's parameters (nbound, 341 352 nono, noea,...) so that the land-only processors are not taken into account. 342 353 343 \ gmcomment{Note that the inimpp2 routine is general so that the original inimpp354 \colorbox{yellow}{Note that the inimpp2 routine is general so that the original inimpp 344 355 routine should be suppressed from the code.} 345 356 346 357 When land processors are eliminated, the value corresponding to these locations in 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}). 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 %% 350 368 351 369 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 362 380 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 363 381 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}} 364 738 365 739 % ====================================================================
Note: See TracChangeset
for help on using the changeset viewer.