Changeset 11512 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/doc/latex/NEMO/subfiles/chap_LBC.tex
- Timestamp:
- 2019-09-09T12:05:20+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/doc/latex/NEMO/subfiles/chap_LBC.tex
r11263 r11512 3 3 \begin{document} 4 4 % ================================================================ 5 % Chapter — Lateral Boundary Condition (LBC) 5 % Chapter — Lateral Boundary Condition (LBC) 6 6 % ================================================================ 7 7 \chapter{Lateral Boundary Condition (LBC)} 8 8 \label{chap:LBC} 9 9 10 \ minitoc10 \chaptertoc 11 11 12 12 \newpage … … 22 22 %--------------------------------------------nam_lbc------------------------------------------------------- 23 23 24 \nlst{namlbc} 24 \nlst{namlbc} 25 25 %-------------------------------------------------------------------------------------------------------------- 26 26 27 %The lateral ocean boundary conditions contiguous to coastlines are Neumann conditions for heat and salt (no flux across boundaries) and Dirichlet conditions for momentum (ranging from free-slip to "strong" no-slip). They are handled automatically by the mask system (see \autoref{subsec:DOM_msk}). 28 29 %OPA allows land and topography grid points in the computational domain due to the presence of continents or islands, and includes the use of a full or partial step representation of bottom topography. The computation is performed over the whole domain, \ie we do not try to restrict the computation to ocean-only points. This choice has two motivations. Firstly, working on ocean only grid points overloads the code and harms the code readability. Secondly, and more importantly, it drastically reduces the vector portion of the computation, leading to a dramatic increase of CPU time requirement on vector computers. The current section describes how the masking affects the computation of the various terms of the equations with respect to the boundary condition at solid walls. The process of defining which areas are to be masked is described in \autoref{subsec:DOM_msk}. 30 31 Options are defined through the \ngn{namlbc} namelist variables. 27 %The lateral ocean boundary conditions contiguous to coastlines are Neumann conditions for heat and salt 28 %(no flux across boundaries) and Dirichlet conditions for momentum (ranging from free-slip to "strong" no-slip). 29 %They are handled automatically by the mask system (see \autoref{subsec:DOM_msk}). 30 31 %OPA allows land and topography grid points in the computational domain due to the presence of continents or islands, 32 %and includes the use of a full or partial step representation of bottom topography. 33 %The computation is performed over the whole domain, \ie\ we do not try to restrict the computation to ocean-only points. 34 %This choice has two motivations. 35 %Firstly, working on ocean only grid points overloads the code and harms the code readability. 36 %Secondly, and more importantly, it drastically reduces the vector portion of the computation, 37 %leading to a dramatic increase of CPU time requirement on vector computers. 38 %The current section describes how the masking affects the computation of the various terms of the equations 39 %with respect to the boundary condition at solid walls. 40 %The process of defining which areas are to be masked is described in \autoref{subsec:DOM_msk}. 41 42 Options are defined through the \nam{lbc} namelist variables. 32 43 The discrete representation of a domain with complex boundaries (coastlines and bottom topography) leads to 33 44 arrays that include large portions where a computation is not required as the model variables remain at zero. … … 41 52 Since most of the boundary conditions consist of a zero flux across the solid boundaries, 42 53 they can be simply applied by multiplying variables by the correct mask arrays, 43 \ie the mask array of the grid point where the flux is evaluated.54 \ie\ the mask array of the grid point where the flux is evaluated. 44 55 For example, the heat flux in the \textbf{i}-direction is evaluated at $u$-points. 45 56 Evaluating this quantity as, … … 52 63 (where mask$_{u}$ is the mask array at a $u$-point) ensures that the heat flux is zero inside land and 53 64 at the boundaries, since mask$_{u}$ is zero at solid boundaries which in this case are defined at $u$-points 54 (normal velocity $u$ remains zero at the coast) (\autoref{fig:LBC_uv}). 65 (normal velocity $u$ remains zero at the coast) (\autoref{fig:LBC_uv}). 55 66 56 67 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 104 115 \item[free-slip boundary condition (\np{rn\_shlat}\forcode{ = 0}):] the tangential velocity at 105 116 the coastline is equal to the offshore velocity, 106 \ie the normal derivative of the tangential velocity is zero at the coast,117 \ie\ the normal derivative of the tangential velocity is zero at the coast, 107 118 so the vorticity: mask$_{f}$ array is set to zero inside the land and just at the coast 108 119 (\autoref{fig:LBC_shlat}-a). … … 114 125 the closest ocean velocity gridpoint were of the same magnitude but in the opposite direction 115 126 (\autoref{fig:LBC_shlat}-b). 116 Therefore, the vorticity along the coastlines is given by: 127 Therefore, the vorticity along the coastlines is given by: 117 128 118 129 \[ … … 130 141 131 142 \item["partial" free-slip boundary condition (0$<$\np{rn\_shlat}$<$2):] the tangential velocity at 132 the coastline is smaller than the offshore velocity, \ie there is a lateral friction but143 the coastline is smaller than the offshore velocity, \ie\ there is a lateral friction but 133 144 not strong enough to make the tangential velocity at the coast vanish (\autoref{fig:LBC_shlat}-c). 134 145 This can be selected by providing a value of mask$_{f}$ strictly inbetween $0$ and $2$. … … 140 151 \end{description} 141 152 142 Note that when the bottom topography is entirely represented by the $s$-coor -dinates (pure $s$-coordinate),153 Note that when the bottom topography is entirely represented by the $s$-coordinates (pure $s$-coordinate), 143 154 the lateral boundary condition on tangential velocity is of much less importance as 144 155 it is only applied next to the coast where the minimum water depth can be quite shallow. … … 149 160 % ================================================================ 150 161 \section[Model domain boundary condition (\texttt{jperio})] 151 {Model domain boundary condition (\protect\ np{jperio})}162 {Model domain boundary condition (\protect\jp{jperio})} 152 163 \label{sec:LBC_jperio} 153 164 … … 155 166 closed, cyclic east-west, cyclic north-south, a north-fold, and combination closed-north fold or 156 167 bi-cyclic east-west and north-fold. 157 The north-fold boundary condition is associated with the 3-pole ORCA mesh. 168 The north-fold boundary condition is associated with the 3-pole ORCA mesh. 158 169 159 170 % ------------------------------------------------------------------------------------------------------------- 160 % Closed, cyclic (\ np{jperio}\forcode{ = 0..2})171 % Closed, cyclic (\jp{jperio}\forcode{ = 0..2}) 161 172 % ------------------------------------------------------------------------------------------------------------- 162 173 \subsection[Closed, cyclic (\forcode{jperio = [0127]})] 163 {Closed, cyclic (\protect\ np{jperio}\forcode{ = [0127]})}174 {Closed, cyclic (\protect\jp{jperio}\forcode{ = [0127]})} 164 175 \label{subsec:LBC_jperio012} 165 176 166 177 The choice of closed or cyclic model domain boundary condition is made by 167 setting \ np{jperio} to 0, 1, 2 or 7 in namelist \ngn{namcfg}.178 setting \jp{jperio} to 0, 1, 2 or 7 in namelist \nam{cfg}. 168 179 Each time such a boundary condition is needed, it is set by a call to routine \mdl{lbclnk}. 169 180 The computation of momentum and tracer trends proceeds from $i=2$ to $i=jpi-1$ and from $j=2$ to $j=jpj-1$, 170 \ie in the model interior.181 \ie\ in the model interior. 171 182 To choose a lateral model boundary condition is to specify the first and last rows and columns of 172 the model variables. 183 the model variables. 173 184 174 185 \begin{description} 175 186 176 \item[For closed boundary (\ np{jperio}\forcode{ = 0})],187 \item[For closed boundary (\jp{jperio}\forcode{ = 0})], 177 188 solid walls are imposed at all model boundaries: 178 189 first and last rows and columns are set to zero. 179 190 180 \item[For cyclic east-west boundary (\ np{jperio}\forcode{ = 1})],191 \item[For cyclic east-west boundary (\jp{jperio}\forcode{ = 1})], 181 192 first and last rows are set to zero (closed) whilst the first column is set to 182 193 the value of the last-but-one column and the last column to the value of the second one … … 184 195 Whatever flows out of the eastern (western) end of the basin enters the western (eastern) end. 185 196 186 \item[For cyclic north-south boundary (\ np{jperio}\forcode{ = 2})],197 \item[For cyclic north-south boundary (\jp{jperio}\forcode{ = 2})], 187 198 first and last columns are set to zero (closed) whilst the first row is set to 188 199 the value of the last-but-one row and the last row to the value of the second one … … 190 201 Whatever flows out of the northern (southern) end of the basin enters the southern (northern) end. 191 202 192 \item[Bi-cyclic east-west and north-south boundary (\ np{jperio}\forcode{ = 7})] combines cases 1 and 2.203 \item[Bi-cyclic east-west and north-south boundary (\jp{jperio}\forcode{ = 7})] combines cases 1 and 2. 193 204 194 205 \end{description} … … 207 218 208 219 % ------------------------------------------------------------------------------------------------------------- 209 % North fold (\textit{jperio = 3 }to $6)$ 220 % North fold (\textit{jperio = 3 }to $6)$ 210 221 % ------------------------------------------------------------------------------------------------------------- 211 222 \subsection[North-fold (\forcode{jperio = [3-6]})] 212 {North-fold (\protect\ np{jperio}\forcode{ = [3-6]})}223 {North-fold (\protect\jp{jperio}\forcode{ = [3-6]})} 213 224 \label{subsec:LBC_north_fold} 214 225 … … 216 227 a three-polar ORCA grid. 217 228 Such a grid has two poles in the northern hemisphere (\autoref{fig:MISC_ORCA_msh}, 218 and thus requires a specific treatment illustrated in \autoref{fig:North_Fold_T}. 229 and thus requires a specific treatment illustrated in \autoref{fig:North_Fold_T}. 219 230 Further information can be found in \mdl{lbcnfd} module which applies the north fold boundary condition. 220 231 … … 234 245 235 246 % ==================================================================== 236 % Exchange with neighbouring processors 247 % Exchange with neighbouring processors 237 248 % ==================================================================== 238 249 \section[Exchange with neighbouring processors (\textit{lbclnk.F90}, \textit{lib\_mpp.F90})] … … 272 283 After a computation, a communication phase starts: 273 284 each processor sends to its neighbouring processors the update values of the points corresponding to 274 the interior overlapping area to its neighbouring sub-domain (\ie the innermost of the two overlapping rows).285 the interior overlapping area to its neighbouring sub-domain (\ie\ the innermost of the two overlapping rows). 275 286 The communication is done through the Message Passing Interface (MPI). 276 287 The data exchanges between processors are required at the very place where 277 288 lateral domain boundary conditions are set in the mono-domain computation: 278 289 the \rou{lbc\_lnk} routine (found in \mdl{lbclnk} module) which manages such conditions is interfaced with 279 routines found in \mdl{lib\_mpp} module when running on an MPP computer (\ie when \key{mpp\_mpi} defined).290 routines found in \mdl{lib\_mpp} module when running on an MPP computer (\ie\ when \key{mpp\_mpi} defined). 280 291 It has to be pointed out that when using the MPP version of the model, 281 292 the east-west cyclic boundary condition is done implicitly, … … 297 308 The i-axis is divided by \jp{jpni} and 298 309 the j-axis by \jp{jpnj} for a number of processors \jp{jpnij} most often equal to $jpni \times jpnj$ 299 (parameters set in \n gn{nammpp} namelist).310 (parameters set in \nam{mpp} namelist). 300 311 Each processor is independent and without message passing or synchronous process, 301 312 programs run alone and access just its own local memory. … … 304 315 These dimensions include the internal domain and the overlapping rows. 305 316 The number of rows to exchange (known as the halo) is usually set to one (\jp{jpreci}=1, in \mdl{par\_oce}). 306 The whole domain dimensions are named \ np{jpiglo}, \np{jpjglo} and \jp{jpk}.317 The whole domain dimensions are named \jp{jpiglo}, \jp{jpjglo} and \jp{jpk}. 307 318 The relationship between the whole domain and a sub-domain is: 308 319 \[ … … 312 323 where \jp{jpni}, \jp{jpnj} are the number of processors following the i- and j-axis. 313 324 314 One also defines variables nldi and nlei which correspond to the internal domain bounds, 315 and the variables nimpp and njmpp which are the position of the (1,1) grid-point in the global domain. 325 One also defines variables nldi and nlei which correspond to the internal domain bounds, 326 and the variables nimpp and njmpp which are the position of the (1,1) grid-point in the global domain. 316 327 An element of $T_{l}$, a local array (subdomain) corresponds to an element of $T_{g}$, 317 a global array (whole domain) by the relationship: 328 a global array (whole domain) by the relationship: 318 329 \[ 319 330 % \label{eq:lbc_nimpp} … … 337 348 338 349 339 The \NEMO model computes equation terms with the help of mask arrays (0 on land points and 1 on sea points).350 The \NEMO\ model computes equation terms with the help of mask arrays (0 on land points and 1 on sea points). 340 351 It is easily readable and very efficient in the context of a computer with vectorial architecture. 341 352 However, in the case of a scalar processor, computations over the land regions become more expensive in 342 terms of CPU time. 353 terms of CPU time. 343 354 It is worse when we use a complex configuration with a realistic bathymetry like the global ocean where 344 355 more than 50 \% of points are land points. … … 349 360 The user then chooses optimal parameters \jp{jpni}, \jp{jpnj} and \jp{jpnij} with $jpnij < jpni \times jpnj$, 350 361 leading to the elimination of $jpni \times jpnj - jpnij$ land processors. 351 When those parameters are specified in \n gn{nammpp} namelist,362 When those parameters are specified in \nam{mpp} namelist, 352 363 the algorithm in the \rou{inimpp2} routine sets each processor's parameters (nbound, nono, noea,...) so that 353 364 the land-only processors are not taken into account. 354 365 355 \gmcomment{Note that the inimpp2 routine is general so that the original inimpp 366 \gmcomment{Note that the inimpp2 routine is general so that the original inimpp 356 367 routine should be suppressed from the code.} 357 368 … … 360 371 Note that this is a problem for the meshmask file which requires to be defined over the whole domain. 361 372 Therefore, user should not eliminate land processors when creating a meshmask file 362 (\ie when setting a non-zero value to \np{nn\_msh}).373 (\ie\ when setting a non-zero value to \np{nn\_msh}). 363 374 364 375 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 381 392 382 393 % ==================================================================== 383 % Unstructured open boundaries BDY 394 % Unstructured open boundaries BDY 384 395 % ==================================================================== 385 396 \section{Unstructured open boundary conditions (BDY)} … … 388 399 %-----------------------------------------nambdy-------------------------------------------- 389 400 390 \nlst{nambdy} 401 \nlst{nambdy} 391 402 %----------------------------------------------------------------------------------------------- 392 403 %-----------------------------------------nambdy_dta-------------------------------------------- 393 404 394 \nlst{nambdy_dta} 405 \nlst{nambdy_dta} 395 406 %----------------------------------------------------------------------------------------------- 396 407 397 Options are defined through the \n gn{nambdy} \ngn{nambdy\_dta} namelist variables.398 The BDY module is the core implementation of open boundary conditions for regional configurations on 399 temperature, salinity, barotropic and baroclinic velocities, as well as ice concentration, ice and snow thicknesses ).400 401 The BDY module was modelled on the OBC module (see NEMO3.4) and shares many features and408 Options are defined through the \nam{bdy} \nam{bdy\_dta} namelist variables. 409 The BDY module is the core implementation of open boundary conditions for regional configurations on 410 temperature, salinity, barotropic and baroclinic velocities, as well as ice concentration, ice and snow thicknesses. 411 412 The BDY module was modelled on the OBC module (see \NEMO\ 3.4) and shares many features and 402 413 a similar coding structure \citep{chanut_rpt05}. 403 414 The specification of the location of the open boundary is completely flexible and 404 allows for example the open boundary to follow an isobath or other irregular contour.405 Boundary data files used with versions of NEMOprior to Version 3.4 may need to be re-ordered to work with this version.415 allows any type of setup, from regular boundaries to irregular contour (it includes the possibility to set an open boundary able to follow an isobath). 416 Boundary data files used with versions of \NEMO\ prior to Version 3.4 may need to be re-ordered to work with this version. 406 417 See the section on the Input Boundary Data Files for details. 407 418 … … 415 426 Each boundary set may be defined as a set of straight line segments in a namelist 416 427 (\np{ln\_coords\_file}\forcode{ = .false.}) or read in from a file (\np{ln\_coords\_file}\forcode{ = .true.}). 417 If the set is defined in a namelist, then the namelists \n gn{nambdy\_index} must be included separately, one for each set.428 If the set is defined in a namelist, then the namelists \nam{bdy\_index} must be included separately, one for each set. 418 429 If the set is defined by a file, then a ``\ifile{coordinates.bdy}'' file must be provided. 419 The coordinates.bdy file is analagous to the usual NEMO``\ifile{coordinates}'' file.430 The coordinates.bdy file is analagous to the usual \NEMO\ ``\ifile{coordinates}'' file. 420 431 In the example above, there are two boundary sets, the first of which is defined via a file and 421 432 the second is defined in a namelist. … … 423 434 424 435 For each boundary set a boundary condition has to be chosen for the barotropic solution 425 (``u2d'':sea-surface height and barotropic velocities), for the baroclinic velocities (``u3d''), 436 (``u2d'':sea-surface height and barotropic velocities), for the baroclinic velocities (``u3d''), 426 437 for the active tracers \footnote{The BDY module does not deal with passive tracers at this version} (``tra''), and sea-ice (``ice''). 427 438 For each set of variables there is a choice of algorithm and a choice for the data, 428 eg. for the active tracers the algorithm is set by \np{cn\_tra} and the choice of data is set by \np{nn\_tra\_dta}.\\ 439 eg. for the active tracers the algorithm is set by \np{cn\_tra} and the choice of data is set by \np{nn\_tra\_dta}.\\ 429 440 430 441 The choice of algorithm is currently as follows: … … 436 447 \item[\forcode{'neumann'}:] Value at the boundary are duplicated (No gradient). Only available for baroclinic velocity and tracer variables. 437 448 \item[\forcode{'frs'}:] Flow Relaxation Scheme (FRS) available for all variables. 438 \item[\forcode{'Orlanski'}:] Orlanski radiation scheme (fully oblique) for barotropic, baroclinic and tracer variables. 439 \item[\forcode{'Orlanski_npo'}:] Orlanski radiation scheme for barotropic, baroclinic and tracer variables. 449 \item[\forcode{'Orlanski'}:] Orlanski radiation scheme (fully oblique) for barotropic, baroclinic and tracer variables. 450 \item[\forcode{'Orlanski_npo'}:] Orlanski radiation scheme for barotropic, baroclinic and tracer variables. 440 451 \item[\forcode{'flather'}:] Flather radiation scheme for the barotropic variables only. 441 452 \end{description} … … 443 454 The main choice for the boundary data is to use initial conditions as boundary data 444 455 (\np{nn\_tra\_dta}\forcode{ = 0}) or to use external data from a file (\np{nn\_tra\_dta}\forcode{ = 1}). 445 In case the 3d velocity data contain the total velocity (ie, baroclinic and barotropic velocity), 456 In case the 3d velocity data contain the total velocity (ie, baroclinic and barotropic velocity), 446 457 the bdy code can derived baroclinic and barotropic velocities by setting \np{ln\_full\_vel}\forcode{ = .true. } 447 458 For the barotropic solution there is also the option to use tidal harmonic forcing either by 448 459 itself (\np{nn\_dyn2d\_dta}\forcode{ = 2}) or in addition to other external data (\np{nn\_dyn2d\_dta}\forcode{ = 3}).\\ 449 Sea-ice salinity, temperature and age data at the boundary are constant and defined repectively by \np{rn\_ice\_sal}, \np{rn\_ice\_tem} and \np{rn\_ice\_age}. 450 451 If external boundary data is required then the \ngn{nambdy\_dta} namelist must be defined. 452 One \ngn{nambdy\_dta} namelist is required for each boundary set in the order in which 453 the boundary sets are defined in nambdy. 454 In the example given, two boundary sets have been defined. The first one is reading data file in the \ngn{nambdy\_dta} namelist shown above 455 and the second one is using data from intial condition (no namelist bloc needed). 460 Sea-ice salinity, temperature and age data at the boundary are constant and defined repectively by \np{rn\_ice\_sal}, \np{rn\_ice\_tem} and \np{rn\_ice\_age}. 461 462 If external boundary data is required then the \nam{bdy\_dta} namelist must be defined. 463 One \nam{bdy\_dta} namelist is required for each boundary set, adopting the same order of indexes in which the boundary sets are defined in nambdy. 464 In the example given, two boundary sets have been defined. The first one is reading data file in the \nam{bdy\_dta} namelist shown above 465 and the second one is using data from intial condition (no namelist block needed). 456 466 The boundary data is read in using the fldread module, 457 so the \n gn{nambdy\_dta} namelist is in the format required for fldread.458 For each variable required, the filename, the frequency of the files and459 the frequency of the data in the files isgiven.467 so the \nam{bdy\_dta} namelist is in the format required for fldread. 468 For each required variable, the filename, the frequency of the files and 469 the frequency of the data in the files are given. 460 470 Also whether or not time-interpolation is required and whether the data is climatological (time-cyclic) data.\\ 461 471 462 472 There is currently an option to vertically interpolate the open boundary data onto the native grid at run-time. 463 If \np{nn\_bdy\_jpk} $< -1$, it is assumed that the lateral boundary data are already on the native grid. 464 However, if \np{nn\_bdy\_jpk} is set to the number of vertical levels present in the boundary data, 465 a bilinear interpolation onto the native grid will be triggered at runtime. 466 For this to be successful the additional variables: $gdept$, $gdepu$, $gdepv$, $e3t$, $e3u$ and $e3v$, are required to be present in the lateral boundary files. 467 These correspond to the depths and scale factors of the input data, 473 If \np{nn\_bdy\_jpk} $< -1$, it is assumed that the lateral boundary data are already on the native grid. 474 However, if \np{nn\_bdy\_jpk} is set to the number of vertical levels present in the boundary data, 475 a bilinear interpolation onto the native grid will be triggered at runtime. 476 For this to be successful the additional variables: $gdept$, $gdepu$, $gdepv$, $e3t$, $e3u$ and $e3v$, are required to be present in the lateral boundary files. 477 These correspond to the depths and scale factors of the input data, 468 478 the latter used to make any adjustment to the velocity fields due to differences in the total water depths between the two vertical grids.\\ 469 479 470 In the example namelists given, two boundary sets are defined.480 In the example of given namelists, two boundary sets are defined. 471 481 The first set is defined via a file and applies FRS conditions to temperature and salinity and 472 482 Flather conditions to the barotropic variables. No condition specified for the baroclinic velocity and sea-ice. … … 474 484 Tidal harmonic forcing is also used. 475 485 The second set is defined in a namelist. 476 FRS conditions are applied on temperature and salinity and climatological data is read from initial condition files. 486 FRS conditions are applied on temperature and salinity and climatological data is read from initial condition files. 477 487 478 488 %---------------------------------------------- … … 505 515 is relaxed towards the external conditions over the rest of the FRS zone. 506 516 The application of a relaxation zone helps to prevent spurious reflection of 507 outgoing signals from the model boundary. 517 outgoing signals from the model boundary. 508 518 509 519 The function $\alpha$ is specified as a $tanh$ function: … … 534 544 Note that the sea-surface height gradient in \autoref{eq:bdy_fla1} is a spatial gradient across the model boundary, 535 545 so that $\eta_{e}$ is defined on the $T$ points with $nbr=1$ and $\eta$ is defined on the $T$ points with $nbr=2$. 536 $U$ and $U_{e}$ are defined on the $U$ or $V$ points with $nbr=1$, \ie between the two $T$ grid points.546 $U$ and $U_{e}$ are defined on the $U$ or $V$ points with $nbr=1$, \ie\ between the two $T$ grid points. 537 547 538 548 %---------------------------------------------- … … 575 585 \end{equation} 576 586 577 Generally the relaxation time scale at inward propagation points \np{(rn\_time\_dmp}) is set much shorter than the time scale at outward propagation587 Generally the relaxation time scale at inward propagation points (\np{rn\_time\_dmp}) is set much shorter than the time scale at outward propagation 578 588 points (\np{rn\_time\_dmp\_out}) so that the solution is constrained more strongly by the external data at inward propagation points. 579 See \autoref{subsec:BDY_relaxation} for detailed on the spatial shape of the scaling.\\ 580 The ``normal propagation of oblique radiation'' or NPO approximation (called \forcode{'orlanski_npo'}) involves assuming 589 See \autoref{subsec:BDY_relaxation} for detailed on the spatial shape of the scaling.\\ 590 The ``normal propagation of oblique radiation'' or NPO approximation (called \forcode{'orlanski_npo'}) involves assuming 581 591 that $c_y$ is zero in equation (\autoref{eq:wave_continuous}), but including 582 592 this term in the denominator of equation (\autoref{eq:cx}). Both versions of the scheme are options in BDY. Equations … … 587 597 \label{subsec:BDY_relaxation} 588 598 589 In addition to a specific boundary condition specified as \np{cn\_tra} and \np{cn\_dyn3d}, relaxation on baroclinic velocities and tracers variables are available. 599 In addition to a specific boundary condition specified as \np{cn\_tra} and \np{cn\_dyn3d}, relaxation on baroclinic velocities and tracers variables are available. 590 600 It is control by the namelist parameter \np{ln\_tra\_dmp} and \np{ln\_dyn3d\_dmp} for each boundary set. 591 601 592 The relaxation time scale value (\np{rn\_time\_dmp} and \np{rn\_time\_dmp\_out}, $\tau$) are defined at the boundaries itself. 602 The relaxation time scale value (\np{rn\_time\_dmp} and \np{rn\_time\_dmp\_out}, $\tau$) are defined at the boundaries itself. 593 603 This time scale ($\alpha$) is weighted by the distance ($d$) from the boundary over \np{nn\_rimwidth} cells ($N$): 594 604 … … 597 607 \] 598 608 599 The same scaling is applied in the Orlanski damping. 609 The same scaling is applied in the Orlanski damping. 600 610 601 611 %---------------------------------------------- … … 605 615 Each open boundary set is defined as a list of points. 606 616 The information is stored in the arrays $nbi$, $nbj$, and $nbr$ in the $idx\_bdy$ structure. 607 The $nbi$ and $nbj$ arrays define the local $(i,j)$ ind ices of each point in the boundary zone and608 the $nbr$ array defines the discrete distance from the boundary with $nbr=1$ meaningthat609 the point is next to the edge of the model domain and $nbr>1$ showingthat610 the point is increasingly further away from the edge of the model domain.617 The $nbi$ and $nbj$ arrays define the local $(i,j)$ indexes of each point in the boundary zone and 618 the $nbr$ array defines the discrete distance from the boundary: $nbr=1$ means that 619 the boundary point is next to the edge of the model domain, while $nbr>1$ means that 620 the boundary point is increasingly further away from the edge of the model domain. 611 621 A set of $nbi$, $nbj$, and $nbr$ arrays is defined for each of the $T$, $U$ and $V$ grids. 612 Figure \autoref{fig:LBC_bdy_geom} shows an example of an irregular boundary. 622 Figure \autoref{fig:LBC_bdy_geom} shows an example of an irregular boundary. 613 623 614 624 The boundary geometry for each set may be defined in a namelist nambdy\_index or 615 625 by reading in a ``\ifile{coordinates.bdy}'' file. 616 626 The nambdy\_index namelist defines a series of straight-line segments for north, east, south and west boundaries. 617 One nambdy\_index namelist bloc is needed for each boundary condition defined by indexes.618 For the northern boundary, \ np{nbdysegn} gives the number of segments,619 \ np{jpjnob} gives the $j$ index for each segment and \np{jpindt} and620 \ np{jpinft} give the start and end $i$ indices for each segment with similar for the other boundaries.627 One nambdy\_index namelist block is needed for each boundary condition defined by indexes. 628 For the northern boundary, \texttt{nbdysegn} gives the number of segments, 629 \jp{jpjnob} gives the $j$ index for each segment and \jp{jpindt} and 630 \jp{jpinft} give the start and end $i$ indices for each segment with similar for the other boundaries. 621 631 These segments define a list of $T$ grid points along the outermost row of the boundary ($nbr\,=\, 1$). 622 632 The code deduces the $U$ and $V$ points and also the points for $nbr\,>\, 1$ if \np{nn\_rimwidth}\forcode{ > 1}. 623 633 624 634 The boundary geometry may also be defined from a ``\ifile{coordinates.bdy}'' file. 625 Figure \autoref{fig:LBC_nc_header} gives an example of the header information from such a file .635 Figure \autoref{fig:LBC_nc_header} gives an example of the header information from such a file, based on the description of geometrical setup given above. 626 636 The file should contain the index arrays for each of the $T$, $U$ and $V$ grids. 627 637 The arrays must be in order of increasing $nbr$. … … 629 639 Typically this file will be used to generate external boundary data via interpolation and so 630 640 will also contain the latitudes and longitudes of each point as shown. 631 However, this is not necessary to run the model. 641 However, this is not necessary to run the model. 632 642 633 643 For some choices of irregular boundary the model domain may contain areas of ocean which 634 644 are not part of the computational domain. 635 For example if an open boundary is defined along an isobath, say at the shelf break,645 For example, if an open boundary is defined along an isobath, say at the shelf break, 636 646 then the areas of ocean outside of this boundary will need to be masked out. 637 647 This can be done by reading a mask file defined as \np{cn\_mask\_file} in the nam\_bdy namelist. … … 658 668 a time dimension; 659 669 $xb$ which is the index of the boundary data point in the horizontal; 660 and $yb$ which is a degenerate dimension of 1 to enable the file to be read by the standard NEMOI/O routines.661 The 3D fields also have a depth dimension. 670 and $yb$ which is a degenerate dimension of 1 to enable the file to be read by the standard \NEMO\ I/O routines. 671 The 3D fields also have a depth dimension. 662 672 663 673 From Version 3.4 there are new restrictions on the order in which the boundary points are defined … … 670 680 \item All the data for a particular boundary set must be in the same order. 671 681 (Prior to 3.4 it was possible to define barotropic data in a different order to 672 the data for tracers and baroclinic velocities). 682 the data for tracers and baroclinic velocities). 673 683 \end{enumerate} 674 684 … … 697 707 This is controlled by the \np{ln\_vol} parameter in the namelist. 698 708 A value of \np{ln\_vol}\forcode{ = .false.} indicates that this option is not used. 699 Two options to control the volume are available (\np{nn\_volctl}). 709 Two options to control the volume are available (\np{nn\_volctl}). 700 710 If \np{nn\_volctl}\forcode{ = 0} then a correction is applied to the normal barotropic velocities around the boundary at 701 711 each timestep to ensure that the integrated volume flow through the boundary is zero. … … 713 723 %-----------------------------------------nambdy_tide-------------------------------------------- 714 724 715 \nlst{nambdy_tide} 725 \nlst{nambdy_tide} 716 726 %----------------------------------------------------------------------------------------------- 717 727 718 728 Tidal forcing at open boundaries requires the activation of surface 719 tides (i.e., in \n gn{nam\_tide}, \np{ln\_tide} needs to be set to729 tides (i.e., in \nam{\_tide}, \np{ln\_tide} needs to be set to 720 730 \forcode{.true.} and the required constituents need to be activated by 721 including their names in the \np{c name} array; see731 including their names in the \np{clname} array; see 722 732 \autoref{sec:SBC_tide}). Specific options related to the reading in of 723 733 the complex harmonic amplitudes of elevation (SSH) and barotropic 724 734 velocity (u,v) at open boundaries are defined through the 725 \n gn{nambdy\_tide} namelist parameters.\\735 \nam{bdy\_tide} namelist parameters.\\ 726 736 727 737 The tidal harmonic data at open boundaries can be specified in two
Note: See TracChangeset
for help on using the changeset viewer.