forked from wrf-model/TechNote
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnest.tex
502 lines (452 loc) · 24.4 KB
/
nest.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
\chapter{Nesting}
\label{nesting_chap}
The ARW supports horizontal nesting that allows resolution to be
focused over a region of interest by introducing an additional grid (or
grids) into the simulation. In the current implementation, only
horizontal refinement is available: there is no vertical nesting option.
The nested grids are rectangular
and are aligned with the parent (coarser) grid within which they are
nested.
Additionally, the nested grids allow any integer spatial
($\Delta x_{coarse}/\Delta x_{fine}$)
and temporal refinements of the
parent grid (the spatial and temporal refinements are usually,
but not necessarily the same).
This nesting implementation is in many ways similar to the
implementations in other mesoscale and cloudscale models (e.g. MM5,
ARPS, COAMPS). The major improvement in the ARW's nesting
infrastruture compared with techniques used in other models is the ability to compute nested
simulations efficiently on parallel distributed-memory computer systems,
which includes support for moving nested grids.
The WRF Software Framework, described in
\citet{michalak04}, makes these advances possible. In this chapter we
describe the various nesting options available in the ARW and the numerical
coupling between the grids.
\section {Nesting Options}
%
% 1-way vs 2-way
%
\begin{figure}
\centering
\includegraphics *[width=4.5in]{figures/12way.pdf}
\caption{\label{figure:12way} 1-way and 2-way nesting options in the ARW.}
\end{figure}
\subsubsection{1-Way and 2-Way Grid Nesting}
Nested grid simulations can be produced using either 1-way
nesting or 2-way nesting as outlined in Fig. \ref{figure:12way}. The
1-way and 2-way nesting options refer to how a coarse grid and the
fine grid interact. In both the 1-way and 2-way simulation modes, the
fine grid boundary conditions (i.e., the lateral boundaries) are interpolated
from the coarse grid forecast. In a 1-way nest, this is the only
information exchange between the grids (from the coarse grid to the fine grid).
Hence, the name {\em 1-way nesting}. In the 2-way nest integration, the
fine grid solution replaces the coarse grid solution for coarse
grid points that lie inside the fine grid. This information exchange
between the grids is now in both directions (coarse-to-fine for the
fine-grid lateral boundary computation and
fine-to-coarse during the feedback at each coarse-grid time step).
Hence, the name {\em 2-way nesting}.
The 1-way nest set-up may be run in one of two different methods. One
option is to produce the nested simulation as two separate ARW simulations
as described in the leftmost box in Fig. \ref{figure:12way}. In this mode,
the coarse grid is integrated first and the coarse grid forecast is completed.
Output from the coarse grid
integration is then processed to provide boundary conditions for
the nested run (usually at a much lower temporal frequency than the
coarse grid time step), and this is followed by the complete time
integration of fine (nested) grid. Hence, this 1-way option is equivalent
to running two separate simulations with a processing step in between. Also with
separate grid simulations, an intermediate re-analysis (such as
via 3D-Var, see Section \ref{var_chap}) can be included.
The second 1-way option (lockstep with no feedback), depicted in the
middle box in Fig. \ref{figure:12way}, is run as a traditional
simulation with two (or more) grids integrating concurrently, except with
the feedback runtime option shut off. This option provides lateral boundary
conditions to the fine grid at each coarse grid time step, which
is an advantage of the concurrent 1-way method (no feedback).
\subsubsection{Fine Grid Initialization Options}
The ARW supports several strategies to refine a coarse-grid
simulation with the introduction of a nested grid. When using concurrent 1-way and
2-way nesting, several options for initializing the fine grid
are provided.
\begin{itemize}\setlength{\parskip}{-4pt}
\item All of the fine grid variables (both meteorological and
terrestrial) can be interpolated from the coarse grid (useful
when a fine grid starts later in the coarse-grid forecast).
\item All of the fine grid variables can be input from an external file
which has high-resolution information for both the meteorological
and the terrestrial fields (a standard set-up when the fine-grid
terrestrial fields are expected to impact the forecast).
\item The fine grid can have some of the variables initialized with a
high-resolution external data set, while other variables are
interpolated from the coarse grid (for example this would permit
the improved analysis from the 3D-Var initialization of the
coarse grid's meteorological fields to remain consistent with the fine grid).
This option allows the fine grid to start later in the coarse-grid's
forecast, but with the advantage of higher-resolution static fields.
\item For a moving nest, an external orography file may be used to update
the fine grid terrain elevation.
\end{itemize}
\noindent These fine grid initialization settings are user specified at
run-time, and the ARW allows nested grids to instantiate and cease during any
time that the fine grid's parent is still integrating.
%
% nest grids, some OK, some illegal
%
\begin{figure}
\centering
\includegraphics *[width=6.0in]{figures/nest_domains.pdf}
\caption{\label{figure:nest_domains}Various nest configurations for multiple grids. (a)
Telescoping nests. (b) Nests at the same level with respect to a parent grid.
(c) Overlapping grids: not allowed (d) Inner-most grid has more than one parent grid: not allowed}
\end{figure}
\subsubsection{Possible Grid Configurations}
A simulation involves one outer grid and may contain multiple
inner nested grids. In the ARW, each nested region is entirely
contained within
a single coarser grid, referred to as the {\em parent}
grid. The finer, nested grids are referred to as {\em child} grids.
Using this terminology, children are also parents when multiple levels
of nesting are used. The fine grids may be telescoped to any depth (i.e.,
a
parent grid may contain one or more child grids, each of which in turn
may successively contain one or more child grids; Fig.
\ref{figure:nest_domains}a), and several fine grids may share the
same parent at the same level of nesting (Fig.
\ref{figure:nest_domains}b).
Any valid fine grid may either be a static domain or it may be a moving nest
(with either prescribed incremental shifts or with automatic moves
via a vortex following algorithm, such as tracking the minimum of the 500 mb height).
The ARW does not permit overlapping
grids, where a coarse grid point is contained within more than a
single child grid (i.e., both of which are at the same nest level with respect
to the parent; Fig. \ref{figure:nest_domains}c). In addition, no grid can have
more than a single parent (Fig. \ref{figure:nest_domains}d). For global domains, a
fine grid domain cannot cross the periodic lateral boundary of the parent domain.
For both 1-way and 2-way nested grid simulations, the ratio of the
parent horizontal grid distance to the child horizontal grid distance
(the spatial refinement ratio) must be an integer. For 2-way and concurrent 1-way
nesting, this is also true for
the time steps (the temporal refinement ratio). The model does allow
the time step refinement ratio to differ from the spatial refinement
ratio. Also, nested grids on the same level (i.e., children who have the
same parent) may have different spatial and temporal refinement ratios. For example,
in Fig. \ref{figure:nest_domains}b, the horizontal grid resolution for
domain 1 could be 90 km, for
domain 2 could be 45 km, and for domain 3 could be 30 km.
\subsubsection{Moving Nests}
The moving nest capabilities in ARW are simply extensions to the
suite of nesting options. All descriptions covering the
specifics for the fine-grid
domains (initialization, feedback, configurations, staggering,
lateral boundaries, etc.) apply also to moving nests. In
general, all nests
in an ARW forecast are eligible to be moving nests. The ARW
provides two methods to have nests move during the model
integration: specified and automatic.
For a specified move, the timing of a nest move and the extent
of the lateral move is defined entirely by the user. For the
automatically moving nest, the fine grid is initialized to cover
a well defined vortex, and the nest moves to maintain this vortex
in the center of the fine grid. For both types of moving nests,
multiple levels of domains may move. However, most of the
instances where a moving nest is utilized are during tropical
cyclone tracking via the vortex following technique.
After a nested domain has moved a parent grid-cell distance,
the majority of the data in the domain is still valid. The
data that is not along the outer row or column of the nested
domain is shifted to the new location in that domain.
Once a domain moves, the data in the outer
row or column falls into two categories: discarded data on the
trailing edge, and horizontally interpolated data on the
leading edge in the direction of the nest move.
\section{Staggering and Feedback}
The ARW uses an Arakawa-C grid staggering. As shown in Fig.
\ref{figure:cg_fg}, the $u$ and $v$ components
of horizontal velocity are normal to the respective faces of the
grid cell, and the mass/thermodynamic/scalar/chemistry variables are located
in the center of the cell.
%
% Figure colorful single-grid u,v,t stagger
%
\begin{figure}
\centering
\includegraphics[width=4in]{figures/cg_fg.pdf}
\caption{\label{figure:cg_fg}
Arakawa-C grid staggering for a portion of a parent domain and an
imbedded nest domain with a 3:1 grid size ratio. The solid lines
denote coarse grid cell boundaries, and the dashed lines are the
boundaries for each fine grid cell. The horizontal components of
velocity (``U'' and ``V'') are defined along the normal cell face, and
the thermodynamic variables (``$\theta$'') are defined at the center of
the grid cell (each square). The bold typeface variables along the
interface between the coarse and the fine grid define the locations
where the specified lateral boundaries for the nest are in
effect. } \end{figure}
The variable staggering has an additional column
of $u$ in the x-direction and an additional row of $v$ in the y-direction
because the normal velocity points define the grid boundaries.
The horizontal momentum components reflect an average across each
cell-face, while each mass/thermodynamic/scalar/chemistry variable
is the representative mean value throughout the cell.
Feedback is handled to preserve these mean values: the mass/thermodynamic/scalar/chemistry
fields are fed back with an average from within the entire
coarse grid point (Fig. \ref{figure:cg_fg}), and the horizontal momentum variables are
averaged along their respective normal coarse grid cell faces.
The horizontal interpolation (to instantiate a grid and to provide
time-dependent lateral boundaries) does not conserve mass. The
feedback mechanism, for most of the unmasked fields, uses cell
averages (for mass/thermodynamic/scalar/chemistry quantities) and cell-face
averages for the horizontal momentum fields.
The staggering defines the way that the fine grid is situated
on top of the coarse grid. For all odd ratios there is a coincident
point for each variable: a location that has the coarse grid
and the fine grid at the same physical point. The location of
this point depends on the variable.
In each of the
coarse-grid cells with an odd ratio, the middle fine-grid cell
is the coincident point with the coarse grid for all of the
mass-staggered fields (Fig. \ref{figure:cg_fg}).
For the horizontal momentum variables
the normal velocity has coincident points along the grid boundaries for odd ratios.
For fields
that are averaged back to the coarse grid in the feedback, the
mean of the nine mass/thermodynamic/scalar/chemistry (for example, due to the 3:1 grid-distance ratio
in the example shown in Fig. \ref{figure:cg_fg}) fine grid
points is fed back to the coarse grid. These fields include most
3-dimensional and 2-dimensional arrays.
For the horizontal momentum fields averaged back to the coarse grid in the
feedback, the mean of three (for example, due to the 3:1 grid-distance ratio
in the example shown in Fig. \ref{figure:cg_fg}) fine grid
points is fed back to the coarse grid from along the coincident cell face.
The fields that are masked due
to the land/sea category are fed back directly from the coincident points
for odd ratios. Masked fields include soil temperature and sea ice. It does not make
sense to average neighboring locations of soil temperature on the fine grid
if the coarse grid point being fedback to is a water value. Similarly, averaging
several sea ice values on the fine grid does not make sense if some of the neighboring
points included in the mean are fine grid land points.
Only masked fields use the feedback method where a single
point from the fine grid is assigned to the coarse grid.
A difference between the odd and even grid-distance ratios
is in the feedback from the fine grid to the coarse grid. No
coincident points exist for the single point feedback mechanisms
for even grid distance ratios
(such as used for the land/sea masked 2D fields).
For a 2:1 even grid distance ratio, Figure
\ref{figure:cg_fg_x2} shows that each coarse
grid point has four fine grid cells that are equally close,
and therefore four equally eligible grid points for use as the
single fine-grid point that feeds back to the coarse grid. The
single-point feedback is arbitrarily chosen as the south-west
corner of the four neighboring points.
This arbitrary assignment to masked fields implies that even
grid distance ratios are more suited for idealized simulations
where masked fields are less important.
%
% Figure colorful 2 grid, even ratio
%
\begin{figure}
\centering
\includegraphics[width=4in]{figures/cg_fg_x2.pdf}
\caption{\label{figure:cg_fg_x2}
Similar to Fig. \ref{figure:cg_fg}, but with a 2:1 grid-distance ratio.
}
\end{figure}
\section{Nested Lateral Boundary Conditions}
\label{nest-lbc}
For the fine grid with 2-way nesting or 1-way nesting
(using a concurrent ARW simulation, see
Fig. \ref{figure:12way}),
the boundary conditions are specified by the parent grid
at every coarse-grid time step. The nest lateral boundary condition behaves similarly to the
specified boundary condition for real-data cases (see Section \ref{lbc_spec}), but
the relaxation zone is not active. Prognostic variables are entirely specified in the outer row and column
of the fine grid through spatial and temporal interpolation from the coarse grid (the coarse grid is
stepped forward in time prior to advancement of any child grid of that parent).
\section{Steps to Generate a Nest Grid}
Only the concurrent 1-way nest option or the 2-way nest
option are considered in this section. The 1-way nest option (using two
consecutive ARW simulations, see Fig. \ref{figure:12way})
is functionally similar to two separate,
single-grid simulations and does not fit the following description. For
a multiple grid simulation within a single model run, there are some
additional infrastructure steps that are required (briefly described in
Fig. \ref{nest_domain_integration_figure}). While the following text
details a simulation with a single coarse-grid and a single fine-grid,
this implies no lack of generality when handling multiple grid levels or
multiple grids on the same level.
\noindent
\begin{figure}[h!] %[nest]
\setlength{\fboxrule}{.75pt}
\framebox[\columnwidth]{
\parbox{6.5truein}{
\vskip 5truept
\noindent
{\bf Integrate Parent Grid One Time Step} \medskip \hfill \break
%
\hphantom{Begin} {\bf If Nest Grid Start Time} \smallskip \hfill \break
\hphantom{BeginBegin}
(1) Horizontally Interpolate Parent to Child Grid \hfill \break
\hphantom{BeginBegin}
(2) Optionally Input High-Resolution Child Data \hfill \break
\hphantom{BeginBegin}
(3) Compute Child Reference State \hfill \break
\hphantom{BeginBegin}
(4) Feedback Child Initial Data to Parent Grid \hfill \break
\hphantom{BeginBegin}
(5) Re-Compute Parent Reference State \hfill \break
\hphantom{Begin} {\bf End If Nest Grid Start Time} \medskip \hfill \break
%
\hphantom{Begin} {\bf Solve Time Step for Parent Grid (see Fig. \ref{time_integration_figure})} \medskip \hfill \break
%
\hphantom{Begin} {\bf If Nest Grid Move Time} \smallskip \hfill \break
\hphantom{BeginBegin}
(1) Move Nest Grid (Vortex Following or Prescribed)\hfill \break
\hphantom{BeginBegin}
(2) Horizontally Interpolate Parent to Child Grid (Along New Boundary) \hfill \break
\hphantom{BeginBegin}
(3) Optionally Input High-Resolution Child Topo Data \hfill \break
\hphantom{BeginBegin}
(4) Compute Child Reference State \hfill \break
\hphantom{BeginBegin}
(5) Feedback Child Initial Data to Parent Grid \hfill \break
\hphantom{BeginBegin}
(6) Re-Compute Parent Reference State \hfill \break
\hphantom{Begin} {\bf End If Nest Grid Move Time} \medskip \hfill \break
%
\hphantom{Begin} {\bf While Existing Nest Grids to Integrate} \smallskip \hfill \break
\hphantom{BeginBegin}
(1) Lateral Forcing from Parent Grid to Child \hfill \break
\hphantom{BeginBegin}
(2) Integrate Child Grid to Current Time of Parent Grid\hfill \break
\hphantom{BeginBegin}
(3) Feedback Child Grid Information to Parent Grid \hfill \break
\hphantom{Begin} {\bf End While Existing Nest Grids to Integrate} \medskip \hfill \break
%
{\bf End Grid Integrate}
\vskip 5truept
}
}
\caption{Nest grid integration sequence.}
\label{nest_domain_integration_figure}
\end{figure}
\subsubsection{Nest Instantiation}
The fine grid is instantiated as a child
of a parent grid at the requested start time.
This initialization is within the integration step for the parent
grid, so no child grid can begin if the parent is not active.
To fill in the correct meteorological
fields, an initialization routine is called to horizontally interpolate
the coarse-grid data to the fine grid locations using a monotone
interpolation scheme \citep[described in][]{smolargrell92} for most fields
(i.e., the same scheme employed for generating the fine grid lateral
boundary conditions)
and a simple linear interpolation or averaging scheme for masked or
categorical fields.
For fields that are masked with the land/sea background (such
as land only fields (e.g., snow), or water only fields (e.g., sea ice)), the
interpolator needs to know what field defines the template for the masking
(such as the land use category). Part of the automatic code generation handles
calling each field with its associated interpolator.
\subsubsection{Fine Grid Input}
After the horizontal interpolation is completed, a few orographic-based variables
are saved so that they may be used to blend the lateral boundaries
along the coarse-grid/fine-grid interface.
The terrain elevation,
$\overline {\mu}_d$,
and the reference geopotential ($\overline{\phi}$) are stored for later use.
The fields selected as input from the fine grid input file (for the
concurrent 1-way and 2-way forecast methods shown in Fig. \ref{figure:12way}) are ingested, and
they overwrite the arrays that were horizontally interpolated from the
coarse grid. No quality control for data consistency is performed
for the fine grid input. All such masked checks are
completed by the ARW real-data pre-processor {\it real}.
\subsubsection{Interface Blended Orography}
To reduce lateral boundary noise entering the fine grid, the fine grid topography has two
zones of smoothing, as seen in Fig. \ref{figure:12way}.
The first zone is along the outer edge of the fine domain and
extends into the nest, with a width defined the same as the number of coarse grid points
in the width of the lateral boundary file. In this first zone, the topography is horizontally
interpolated from the coarse grid. The second zone extends inward from the first zone, with a
user-defined width. The topography is linearly weighted between the interpolated coarse-grid
topography and the fine-grid topography, and it ramps from 100\% coarse-grid
topography (at the interface between
first and second zones) to 100\%
fine-grid topography interior to second zone.
\noindent
The weighting scheme in the second zone (assuming a width of 5 fine-grid cells) is given as:
\begin{itemize}\setlength{\parskip}{-4pt}
\item row/column 1: 100\% interpolated coarse grid, 0\% fine grid,
\item row/column 2: 75\% interpolated coarse grid, 25\% fine grid,
\item row/column 3: 50\% interpolated coarse grid, 50\% fine grid,
\item row/column 4: 25\% interpolated coarse grid, 75\% fine grid, and
\item row/column 5: 0\% interpolated coarse grid, 100\% fine grid,
\end{itemize}
\noindent
where row=1 is the first row in the second zone, and where the row or column
nearest the outer edge takes precedence in ambiguous corner zones.
The reference variables computed from the topography,
$\overline{\mu}_d$ and $\overline{\phi}$, are similarly treated.
The blended arrays are required to compute the reference state for the
fine grid. The blending along the inner rows and columns ramps the
coarse grid reference state to the
fine grid reference state for a smooth transition between the grids.
%
% zones of topo smoothing
%
\begin{figure}
\centering
\includegraphics *[width=4.5in]{figures/zone12.pdf}
\caption{\label{figure:zone12} Zones of topographic blending
for a fine grid. In the fine grid, the first zone is
entirely interpolated from the coarse grid topography. In
the second zone, the topography is linearly weighted between
the coarse grid and the fine grid.}
\end{figure}
\subsubsection{Feedback}
So that the coarse grid and the fine grid are consistent at coincident points, the
fine grid values are fed back to the coarse grid.
There are two available
options for feedback: either the mean of all fine grid cells contained
within each coarse grid cell is fed back (or cell faces in the case of the
horizontal momentum fields), or a single-point feedback
is selected for the masked or categorical fields.
Subsequent to the feedback step, the coarse grid may be optionally smoothed in the area
of the fine grid. Two smoothers are available: a 5-point 1-2-1 smoother and a smoother-desmoother
with a similar stencil size.
Both the feedback and the smoothers are run one row and column in from the
interface row and column of the coarse grid that provides
the lateral boundary conditions to the fine grid.
\subsubsection{Reference State}
The initial feedback when the nest is instantiated ensures
that the coarse grid is consistent with the fine grid, particularly
with regards to elevation and the reference state fields inside the blended region, and for such
terrestrial features as coasts, lakes, and islands. The adjustment
of the elevation in the coarse grid forces a base state recalculation.
The fine-grid needs an initial base state calculation, and after
the terrain feedback, the coarse grid is also in need of a base state
recalculation.
Note that with the horizontal interpolation of the coarse grid
to the fine grid and the feedback of the fine grid to the coarse
grid,
the coarse grid base state is recomputed
even without a separate fine-grid initial data file,
since the coarse grid topography is adjusted.
With the completed base state computations, which follow similarly to
that described for the real-data initialization in section
\ref{initialization_real_base_section},
the routines return
back to the integration step for the coarse and fine grids.
The fine grid data is now properly initialized for integration and
can be advanced forward a time step.
\subsubsection{Integration}
The integration by grid is recursive. At the end of each grid's time step, a check
is made to determine if a child grid exists for that parent and if the
current time is bracketed by the child's start/end time.
This is shown in Fig. \ref{nest_domain_integration_figure}. The integration process for the nest (step 2 under the
while loop) is recursively calling the top step in the overall sequence as a coarse grid itself.
This is a ``depth first''
traversal of the tree of grids.
If a child grid does exist, that child grid is integrated up through the current time of
the parent grid.