Changeset 11577 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_LBC.tex
- Timestamp:
- 2019-09-19T19:01:38+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/doc/latex/NEMO/subfiles/chap_LBC.tex
r11571 r11577 17 17 % Boundary Condition at the Coast 18 18 % ================================================================ 19 \section[Boundary condition at the coast (\forcode{rn_shlat})]{Boundary condition at the coast (\protect\np{rn \_shlat})}19 \section[Boundary condition at the coast (\forcode{rn_shlat})]{Boundary condition at the coast (\protect\np{rn_shlat}{rn\_shlat})} 20 20 \label{sec:LBC_coast} 21 21 %--------------------------------------------namlbc------------------------------------------------------- … … 91 91 and is required in order to compute the vorticity at the coast. 92 92 Four different types of lateral boundary condition are available, 93 controlled by the value of the \np{rn \_shlat} namelist parameter93 controlled by the value of the \np{rn_shlat}{rn\_shlat} namelist parameter 94 94 (The value of the mask$_{f}$ array along the coastline is set equal to this parameter). 95 95 These are: … … 101 101 \caption[Lateral boundary conditions]{ 102 102 Lateral boundary conditions 103 (a) free-slip (\protect\np{rn \_shlat}\forcode{=0});104 (b) no-slip (\protect\np{rn \_shlat}\forcode{=2});105 (c) "partial" free-slip (\forcode{0<}\protect\np{rn \_shlat}\forcode{<2}) and106 (d) "strong" no-slip (\forcode{2<}\protect\np{rn \_shlat}).103 (a) free-slip (\protect\np{rn_shlat}{rn\_shlat}\forcode{=0}); 104 (b) no-slip (\protect\np{rn_shlat}{rn\_shlat}\forcode{=2}); 105 (c) "partial" free-slip (\forcode{0<}\protect\np{rn_shlat}{rn\_shlat}\forcode{<2}) and 106 (d) "strong" no-slip (\forcode{2<}\protect\np{rn_shlat}{rn\_shlat}). 107 107 Implied "ghost" velocity inside land area is display in grey.} 108 108 \label{fig:LBC_shlat} … … 112 112 \begin{description} 113 113 114 \item[free-slip boundary condition (\np{rn \_shlat}\forcode{=0}):] the tangential velocity at114 \item[free-slip boundary condition (\np{rn_shlat}{rn\_shlat}\forcode{=0}):] the tangential velocity at 115 115 the coastline is equal to the offshore velocity, 116 116 \ie\ the normal derivative of the tangential velocity is zero at the coast, … … 118 118 (\autoref{fig:LBC_shlat}-a). 119 119 120 \item[no-slip boundary condition (\np{rn \_shlat}\forcode{=2}):] the tangential velocity vanishes at the coastline.120 \item[no-slip boundary condition (\np{rn_shlat}{rn\_shlat}\forcode{=2}):] the tangential velocity vanishes at the coastline. 121 121 Assuming that the tangential velocity decreases linearly from 122 122 the closest ocean velocity grid point to the coastline, … … 139 139 \] 140 140 141 \item["partial" free-slip boundary condition (0$<$\np{rn \_shlat}$<$2):] the tangential velocity at141 \item["partial" free-slip boundary condition (0$<$\np{rn_shlat}{rn\_shlat}$<$2):] the tangential velocity at 142 142 the coastline is smaller than the offshore velocity, \ie\ there is a lateral friction but 143 143 not strong enough to make the tangential velocity at the coast vanish (\autoref{fig:LBC_shlat}-c). 144 144 This can be selected by providing a value of mask$_{f}$ strictly inbetween $0$ and $2$. 145 145 146 \item["strong" no-slip boundary condition (2$<$\np{rn \_shlat}):] the viscous boundary layer is assumed to146 \item["strong" no-slip boundary condition (2$<$\np{rn_shlat}{rn\_shlat}):] the viscous boundary layer is assumed to 147 147 be smaller than half the grid size (\autoref{fig:LBC_shlat}-d). 148 148 The friction is thus larger than in the no-slip case. … … 333 333 334 334 If the domain decomposition is automatically defined (when \np{jpni} and \np{jpnj} are < 1), the decomposition chosen by the model will minimise the sub-domain size (defined as $max_{all domains}(jpi \times jpj)$) and maximize the number of eliminated land subdomains. This means that no other domain decomposition (a set of \np{jpni} and \np{jpnj} values) will use less processes than $(jpni \times jpnj - N_{land})$ and get a smaller subdomain size. 335 In order to specify $N_{mpi}$ properly (minimize $N_{useless}$), you must run the model once with \np{ln \_list} activated. In this case, the model will start the initialisation phase, print the list of optimum decompositions ($N_{mpi}$, \np{jpni} and \np{jpnj}) in \texttt{ocean.output} and directly abort. The maximum value of $N_{mpi}$ tested in this list is given by $max(N_{MPI\_tasks}, jpni \times jpnj)$. For example, run the model on 40 nodes with ln\_list activated and $jpni = 10000$ and $jpnj = 1$, will print the list of optimum domains decomposition from 1 to about 10000.335 In order to specify $N_{mpi}$ properly (minimize $N_{useless}$), you must run the model once with \np{ln_list}{ln\_list} activated. In this case, the model will start the initialisation phase, print the list of optimum decompositions ($N_{mpi}$, \np{jpni} and \np{jpnj}) in \texttt{ocean.output} and directly abort. The maximum value of $N_{mpi}$ tested in this list is given by $max(N_{MPI\_tasks}, jpni \times jpnj)$. For example, run the model on 40 nodes with ln\_list activated and $jpni = 10000$ and $jpnj = 1$, will print the list of optimum domains decomposition from 1 to about 10000. 336 336 337 337 Processors are numbered from 0 to $N_{mpi} - 1$. Subdomains containning some ocean points are numbered first from 0 to $jpni * jpnj - N_{land} -1$. The remaining $N_{useless}$ land subdomains are numbered next, which means that, for a given (\np{jpni}, \np{jpnj}), the numbers attributed to he ocean subdomains do not vary with $N_{useless}$. 338 338 339 When land processors are eliminated, the value corresponding to these locations in the model output files is undefined. \np{ln \_mskland} must be activated in order avoid Not a Number values in output files. Note that it is better to not eliminate land processors when creating a meshmask file (\ie\ when setting a non-zero value to \np{nn\_msh}).339 When land processors are eliminated, the value corresponding to these locations in the model output files is undefined. \np{ln_mskland}{ln\_mskland} must be activated in order avoid Not a Number values in output files. Note that it is better to not eliminate land processors when creating a meshmask file (\ie\ when setting a non-zero value to \np{nn_msh}{nn\_msh}). 340 340 341 341 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 378 378 %----------------------------------------------------------------------------------------------- 379 379 380 Options are defined through the \nam{bdy} and \nam{bdy \_dta} namelist variables.380 Options are defined through the \nam{bdy} and \nam{bdy_dta}{bdy\_dta} namelist variables. 381 381 The BDY module is the core implementation of open boundary conditions for regional configurations on 382 382 ocean temperature, salinity, barotropic-baroclinic velocities, ice-snow concentration, thicknesses, temperatures, salinity and melt ponds concentration and thickness. … … 393 393 \label{subsec:LBC_bdy_namelist} 394 394 395 The BDY module is activated by setting \np{ln \_bdy}\forcode{=.true.} .395 The BDY module is activated by setting \np{ln_bdy}{ln\_bdy}\forcode{=.true.} . 396 396 It is possible to define more than one boundary ``set'' and apply different boundary conditions to each set. 397 The number of boundary sets is defined by \np{nb \_bdy}.397 The number of boundary sets is defined by \np{nb_bdy}{nb\_bdy}. 398 398 Each boundary set can be either defined as a series of straight line segments directly in the namelist 399 (\np{ln \_coords\_file}\forcode{=.false.}, and a namelist block \nam{bdy\_index} must be included for each set) or read in from a file (\np{ln\_coords\_file}\forcode{=.true.}, and a ``\ifile{coordinates.bdy}'' file must be provided).399 (\np{ln_coords_file}{ln\_coords\_file}\forcode{=.false.}, and a namelist block \nam{bdy_index}{bdy\_index} must be included for each set) or read in from a file (\np{ln\_coords\_file}\forcode{=.true.}, and a ``\ifile{coordinates.bdy}'' file must be provided). 400 400 The coordinates.bdy file is analagous to the usual \NEMO\ ``\ifile{coordinates}'' file. 401 401 In the example above, there are two boundary sets, the first of which is defined via a file and … … 406 406 (``u2d'':sea-surface height and barotropic velocities), for the baroclinic velocities (``u3d''), 407 407 for the active tracers \footnote{The BDY module does not deal with passive tracers at this version} (``tra''), and for sea-ice (``ice''). 408 For each set of variables one has to choose an algorithm and the boundary data (set resp. by \np{cn \_tra} and \np{nn\_tra\_dta} for tracers).\\408 For each set of variables one has to choose an algorithm and the boundary data (set resp. by \np{cn_tra}{cn\_tra} and \np{nn_tra_dta}{nn\_tra\_dta} for tracers).\\ 409 409 410 410 The choice of algorithm is currently as follows: … … 422 422 423 423 The boundary data is either set to initial conditions 424 (\np{nn \_tra\_dta}\forcode{=0}) or forced with external data from a file (\np{nn\_tra\_dta}\forcode{=1}).424 (\np{nn_tra_dta}{nn\_tra\_dta}\forcode{=0}) or forced with external data from a file (\np{nn\_tra\_dta}\forcode{=1}). 425 425 In case the 3d velocity data contain the total velocity (ie, baroclinic and barotropic velocity), 426 the bdy code can derived baroclinic and barotropic velocities by setting \np{ln \_full\_vel}\forcode{=.true.}426 the bdy code can derived baroclinic and barotropic velocities by setting \np{ln_full_vel}{ln\_full\_vel}\forcode{=.true.} 427 427 For the barotropic solution there is also the option to use tidal harmonic forcing either by 428 itself (\np{nn \_dyn2d\_dta}\forcode{=2}) or in addition to other external data (\np{nn\_dyn2d\_dta}\forcode{=3}).\\429 If not set to initial conditions, sea-ice salinity, temperatures and melt ponds data at the boundary can either be read in a file or defined as constant (by \np{rn \_ice\_sal}, \np{rn\_ice\_tem}, \np{rn\_ice\_apnd}, \np{rn\_ice\_hpnd}). Ice age is constant and defined by \np{rn\_ice\_age}.430 431 If external boundary data is required then the \nam{bdy \_dta} namelist must be defined.432 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.433 In the example given, two boundary sets have been defined. The first one is reading data file in the \nam{bdy \_dta} namelist shown above428 itself (\np{nn_dyn2d_dta}{nn\_dyn2d\_dta}\forcode{=2}) or in addition to other external data (\np{nn\_dyn2d\_dta}\forcode{=3}).\\ 429 If not set to initial conditions, sea-ice salinity, temperatures and melt ponds data at the boundary can either be read in a file or defined as constant (by \np{rn_ice_sal}{rn\_ice\_sal}, \np{rn_ice_tem}{rn\_ice\_tem}, \np{rn_ice_apnd}{rn\_ice\_apnd}, \np{rn_ice_hpnd}{rn\_ice\_hpnd}). Ice age is constant and defined by \np{rn_ice_age}{rn\_ice\_age}. 430 431 If external boundary data is required then the \nam{bdy_dta}{bdy\_dta} namelist must be defined. 432 One \nam{bdy_dta}{bdy\_dta} namelist is required for each boundary set, adopting the same order of indexes in which the boundary sets are defined in nambdy. 433 In the example given, two boundary sets have been defined. The first one is reading data file in the \nam{bdy_dta}{bdy\_dta} namelist shown above 434 434 and the second one is using data from intial condition (no namelist block needed). 435 435 The boundary data is read in using the fldread module, 436 so the \nam{bdy \_dta} namelist is in the format required for fldread.436 so the \nam{bdy_dta}{bdy\_dta} namelist is in the format required for fldread. 437 437 For each required variable, the filename, the frequency of the files and 438 438 the frequency of the data in the files are given. … … 441 441 442 442 There is currently an option to vertically interpolate the open boundary data onto the native grid at run-time. 443 If \np{nn \_bdy\_jpk}$<-1$, it is assumed that the lateral boundary data are already on the native grid.444 However, if \np{nn \_bdy\_jpk} is set to the number of vertical levels present in the boundary data,443 If \np{nn_bdy_jpk}{nn\_bdy\_jpk}$<-1$, it is assumed that the lateral boundary data are already on the native grid. 444 However, if \np{nn_bdy_jpk}{nn\_bdy\_jpk} is set to the number of vertical levels present in the boundary data, 445 445 a bilinear interpolation onto the native grid will be triggered at runtime. 446 446 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. … … 492 492 \alpha(d) = 1 - \tanh\left(\frac{d-1}{2}\right), \quad d=1,N 493 493 \] 494 The width of the FRS zone is specified in the namelist as \np{nn \_rimwidth}.494 The width of the FRS zone is specified in the namelist as \np{nn_rimwidth}{nn\_rimwidth}. 495 495 This is typically set to a value between 8 and 10. 496 496 … … 557 557 \end{equation} 558 558 559 Generally the relaxation time scale at inward propagation points (\np{rn \_time\_dmp}) is set much shorter than the time scale at outward propagation560 points (\np{rn \_time\_dmp\_out}) so that the solution is constrained more strongly by the external data at inward propagation points.559 Generally the relaxation time scale at inward propagation points (\np{rn_time_dmp}{rn\_time\_dmp}) is set much shorter than the time scale at outward propagation 560 points (\np{rn_time_dmp_out}{rn\_time\_dmp\_out}) so that the solution is constrained more strongly by the external data at inward propagation points. 561 561 See \autoref{subsec:LBC_bdy_relaxation} for detailed on the spatial shape of the scaling.\\ 562 562 The ``normal propagation of oblique radiation'' or NPO approximation (called \forcode{'orlanski_npo'}) involves assuming … … 569 569 \label{subsec:LBC_bdy_relaxation} 570 570 571 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.572 It is control by the namelist parameter \np{ln \_tra\_dmp} and \np{ln\_dyn3d\_dmp} for each boundary set.573 574 The relaxation time scale value (\np{rn \_time\_dmp} and \np{rn\_time\_dmp\_out}, $\tau$) are defined at the boundaries itself.575 This time scale ($\alpha$) is weighted by the distance ($d$) from the boundary over \np{nn \_rimwidth} cells ($N$):571 In addition to a specific boundary condition specified as \np{cn_tra}{cn\_tra} and \np{cn_dyn3d}{cn\_dyn3d}, relaxation on baroclinic velocities and tracers variables are available. 572 It is control by the namelist parameter \np{ln_tra_dmp}{ln\_tra\_dmp} and \np{ln_dyn3d_dmp}{ln\_dyn3d\_dmp} for each boundary set. 573 574 The relaxation time scale value (\np{rn_time_dmp}{rn\_time\_dmp} and \np{rn_time_dmp_out}{rn\_time\_dmp\_out}, $\tau$) are defined at the boundaries itself. 575 This time scale ($\alpha$) is weighted by the distance ($d$) from the boundary over \np{nn_rimwidth}{nn\_rimwidth} cells ($N$): 576 576 577 577 \[ … … 602 602 \jp{jpinft} give the start and end $i$ indices for each segment with similar for the other boundaries. 603 603 These segments define a list of $T$ grid points along the outermost row of the boundary ($nbr\,=\, 1$). 604 The code deduces the $U$ and $V$ points and also the points for $nbr\,>\, 1$ if \np{nn \_rimwidth}\forcode{>1}.604 The code deduces the $U$ and $V$ points and also the points for $nbr\,>\, 1$ if \np{nn_rimwidth}{nn\_rimwidth}\forcode{>1}. 605 605 606 606 The boundary geometry may also be defined from a ``\ifile{coordinates.bdy}'' file. … … 617 617 For example, if an open boundary is defined along an isobath, say at the shelf break, 618 618 then the areas of ocean outside of this boundary will need to be masked out. 619 This can be done by reading a mask file defined as \np{cn \_mask\_file} in the nam\_bdy namelist.619 This can be done by reading a mask file defined as \np{cn_mask_file}{cn\_mask\_file} in the nam\_bdy namelist. 620 620 Only one mask file is used even if multiple boundary sets are defined. 621 621 … … 672 672 673 673 There is an option to force the total volume in the regional model to be constant. 674 This is controlled by the \np{ln \_vol} parameter in the namelist.675 A value of \np{ln \_vol}\forcode{=.false.} indicates that this option is not used.676 Two options to control the volume are available (\np{nn \_volctl}).677 If \np{nn \_volctl}\forcode{=0} then a correction is applied to the normal barotropic velocities around the boundary at674 This is controlled by the \np{ln_vol}{ln\_vol} parameter in the namelist. 675 A value of \np{ln_vol}{ln\_vol}\forcode{=.false.} indicates that this option is not used. 676 Two options to control the volume are available (\np{nn_volctl}{nn\_volctl}). 677 If \np{nn_volctl}{nn\_volctl}\forcode{=0} then a correction is applied to the normal barotropic velocities around the boundary at 678 678 each timestep to ensure that the integrated volume flow through the boundary is zero. 679 If \np{nn \_volctl}\forcode{=1} then the calculation of the volume change on679 If \np{nn_volctl}{nn\_volctl}\forcode{=1} then the calculation of the volume change on 680 680 the timestep includes the change due to the freshwater flux across the surface and 681 681 the correction velocity corrects for this as well. … … 698 698 699 699 Tidal forcing at open boundaries requires the activation of surface 700 tides (i.e., in \nam{ \_tide}, \np{ln\_tide} needs to be set to700 tides (i.e., in \nam{_tide}{\_tide}, \np{ln_tide}{ln\_tide} needs to be set to 701 701 \forcode{.true.} and the required constituents need to be activated by 702 702 including their names in the \np{clname} array; see … … 704 704 the complex harmonic amplitudes of elevation (SSH) and barotropic 705 705 velocity (u,v) at open boundaries are defined through the 706 \nam{bdy \_tide} namelist parameters.\\706 \nam{bdy_tide}{bdy\_tide} namelist parameters.\\ 707 707 708 708 The tidal harmonic data at open boundaries can be specified in two 709 709 different ways, either on a two-dimensional grid covering the entire 710 710 model domain or along open boundary segments; these two variants can 711 be selected by setting \np{ln \_bdytide\_2ddta } to \forcode{.true.} or711 be selected by setting \np{ln_bdytide_2ddta }{ln\_bdytide\_2ddta } to \forcode{.true.} or 712 712 \forcode{.false.}, respectively. In either case, the real and 713 713 imaginary parts of SSH and the two barotropic velocity components for … … 729 729 \textit{v1} and \textit{v2} (real and imaginary part of v) are 730 730 expected to be available from file \np{filtide} with suffix 731 \ifile{tcname\_grid\_V}. If \np{ln \_bdytide\_conj} is set to731 \ifile{tcname\_grid\_V}. If \np{ln_bdytide_conj}{ln\_bdytide\_conj} is set to 732 732 \forcode{.true.}, the data is expected to be in complex conjugate 733 733 form.
Note: See TracChangeset
for help on using the changeset viewer.