Subversion Repositories pvinversion.ecmwf

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 michaesp 1
\documentclass[12pt]{article}
2
 
3
\renewcommand{\topfraction}{0.93}
4
\renewcommand{\bottomfraction}{0.93}
5
\renewcommand{\textfraction}{.07}
6
 
7
\input BoxedEPS
8
\SetRokickiEPSFSpecial
9
\ForceOn
10
\SetEPSFDirectory{M:/Weiterbildung/Allgemeine_Informatik/Diplomarbeit/fig/}
11
\HideDisplacementBoxes
12
 
13
\textwidth16.0cm
14
\textheight26.0cm
15
\oddsidemargin0.5cm
16
\topmargin-1.5cm
17
\headsep0cm
18
\topskip0cm
19
 
20
\renewcommand{\baselinestretch}{1.2}
21
 
22
\begin{document}
23
 
24
\pagenumbering{Roman}
25
 
26
% ----------------------------------------------------------------------------------------------
27
% Title page
28
% ----------------------------------------------------------------------------------------------
29
 
30
\thispagestyle{empty}
31
 
32
\vspace{0.7cm}
33
 
34
\begin{center}
35
 
36
{\Large\bf Numerical Piecewise Potential Vorticity Inversion \\[2mm]
37
A user guide for real-case experiments}
38
 
39
\vspace{1cm}
40
\begin{center}
41
\begin{minipage}[t]{10cm}
42
  \ForceWidth{1.0\textwidth}
43
  \BoxedEPSF{Fig05_pv_320K.eps}
44
\end{minipage}
45
\end{center}
46
 
47
 
48
\vspace{1cm}
49
Michael Sprenger, Ph.\,D.$^{1}$ \\
50
\vspace{0.3cm}
51
{\sl Institute for Atmospheric and Climate Science, ETH Z\"urich, Switzerland}\\
52
\vspace{1.8cm}
53
\today \\
54
{Diploma Thesis for the Postgraduate Course in Computer Science, FHSS Schweiz,\\
55
under the supervision of Lars Kruse, Ph.\,D.}
56
\end{center}
57
\vspace{2cm}
58
 
59
\noindent
60
{\sl $^1$Corresponding author and his address:}\\[1mm]
61
Michael Sprenger\\
62
Institute for Climate and Atmospheric Science, {\it IAC}ETH \\
63
ETH Zurich \\
64
CH-8092 Zurich, Switzerland \\
65
e-mail: michael.sprenger@env.ethz.ch
66
 
67
 
68
\newpage
69
\vspace{20cm}
70
\noindent
71
{\bf Title figure:} Ertel's potential vorticity at 320\,K. 
72
 
73
% ----------------------------------------------------------------------------------------------
74
% Abstract
75
% ----------------------------------------------------------------------------------------------
76
 
77
\newpage
78
 
79
\begin{center}
80
{\large \bf Abstract}  
81
\end{center}
82
 
83
\noindent
84
Potential vorticity (PV) is a key quantity in atmospheric dynamics. Its value is based upon several
85
points: (a) PV is conserved in purely adiabatic flows, i.e. if radiative and condensational heating and other
86
diabatic processes can be neglected; (b) under suitable balance conditions the specification of PV
87
in the interior of a domain and with boundary values for potential temperature completely determines
88
the flow field, in particular horizontal wind and temperature can be derived; (c) in many respects
89
the atmosphere can be partitioned into several distinct PV features, which then interact and allow
90
the dynamics to be interpreted as the interaction of these PV elements. Points (b) and (c) are known
91
as the invertibility and partitioning principle, respectively.\\
92
 
93
\noindent
94
In this thesis, a program package is presented which allows to isolate PV elements and then to
95
study their impact on the atmospheric flow field and on the temperature distribution. Technically,
96
this is done with a so-called PV inversion, which in turn comprises several different steps, as for 
97
example transformation into suitable co-ordinate systems and numerical solution of a poisson equation. With PV inversion, two major problems arise: Firstly, a suitable balance condition must
98
be formulated, secondly the inversion problem for Ertel's PV is nonlinear, and therefore poses a significant challenge. The program presented in this thesis is based upon the so-called
99
quasi-geostrophic balance condition. More specifically, the linear quasi-geostrophic PV equation is
100
solved. Since quasi-geostrophic and Ertel's PV do not exactly coincide, an iterative technique
101
is adopted to approach the nonlinear Ertel-PV inversion by means of successively quasi-geostrophic
102
inversions.\\ 
103
 
104
\noindent
105
The aim of this work is to present an in-depth discussion of all steps which are needed for a PV inversion.
106
Special focus was given to a clear and user-friendly program package, where all steps are 
107
well documented and hence are attractive for further development. In this respect, the complete
108
 inversion is controlled by one single Linux Shell script.
109
The new user needs only to adjust some few paths in this script. The
110
main parameters for the inversion itself are specified in a separate parameter file.  
111
 
112
\newpage
113
 
114
\begin{center}
115
{\large \bf Zusammenfassung}  
116
\end{center}
117
 
118
\noindent
119
Die potentielle Vortizit\"at (PV) ist eine Kerngr\"osse der dynamischen Meteorologie. Ihre Bedeutung basiert auf mehreren Eigenschaften: (a) In einer adiabatischen Str\"omung, dh. wenn Strahlung,
120
die Freisetzung von latenter W\"arme und andere diabatische Prozesse vernachl\"assigt werden 
121
k\"onnen, ist PV eine lagrange'sche Erhaltungsgr\"osse; (b) unter geeigneten Balancebedingungen bestimmt die Verteilung der PV im Innern und der potentiellen Temperatur am Rand eines Gebietes
122
vollst\"andig den Zustand der Atmosph\"are, insbesondere die horizontalen Windfelder und das
123
Temperaturfeld; (c) h\"aufig l\"asst sich die Atmosph\"are in mehrere, klar voneinander getrennte PV-Elemente unterteilen, die dann die Dynamik der Atmosph\"are durch ihre Wechselwirkung bestimmen. 
124
Die Eigenschaften (b) und (c) sind in der Literatur bekannt als das Invertibilit\"atsprinzip und 
125
Partitionierungsprinzip.\\
126
 
127
\noindent
128
In dieser Arbeit wird ein Programmpaket vorgestellt, mit dessen Hilfe sich einzelne PV-Elemente
129
isolieren und ihr Einfluss auf die atmosph\"arischen Windfelder und Temperaturen studieren 
130
lassen. Programmtechnisch besteht diese sogenannte PV-Inversion aus mehreren Schritten. So muss
131
zum Beispiel eine Koordinatentransformation durchgef\"uhrt werden und eine Poisson-Gleichung
132
numerisch gel\"ost werden. Damit die PV-Inversion sinnvoll ist, m\"ussen zwei Probleme gel\"ost
133
werden. Zun\"achst muss eine geeignete Balancebedingung vorgegegeben sein. Ausserdem handelt es
134
sich bei der Inversion um einen nichtlinearen Prozess, der numerisch einige Herausforderungen
135
stellt. In dem Programmpaket dieser Arbeit wird die sogenannte quasi-geostrophische Balance
136
verwendet, dh. der mathematische/numerische Inversionsprozess besteht in der L\"osung der
137
linearen quasi-geostrophischen PV-Gleichung. Das Problem der Nichtlinearit\"at wird dadurch gel\"ost, dass
138
die Berechnung des genannten linearen Inversionsproblems mehrmals wiederholt wird. Iterativ
139
ergibt sich somit eine L\"osung des nichtlinearen Problems.\\
140
 
141
\noindent
142
Ziel dieser Arbeit ist eine detailierte Darstellung aller Schritte, die bei einer PV-Inversion
143
n\"otig sind. Besonderes Augenmerk wurde bei der Entwicklung des Programmpakets auf die klare
144
Strukturierung und Anwenderfreundlichkeit gelegt. Dadurch kann das Paket einerseits als Black-Box
145
verwendet werden, zugleich erlaubt es erfahrenen Benutzern eine leichte Einarbeitung in die 
146
Programme und damit die M\"oglichkeit zu deren Erweiterung. Die ganze Inversion wird von einem einzigen
147
Linux Shell Skript kontrolliert, in dem lediglich einige wenige Pfade angepasst werden m\"ussen. Die 
148
meisten Parameter, welche das gestellte Problem der PV-Inversion beschreiben, sind in einer
149
separaten Parameterdatei eingetragen.
150
 
151
 
152
 
153
 
154
% ----------------------------------------------------------------------------------------------
155
% Inhalt
156
% ----------------------------------------------------------------------------------------------
157
 
158
\newpage
159
\section*{Contents}
160
 
161
\vspace{0.5cm}
162
\renewcommand{\contentsname}{}
163
\contentsline{section}{\hspace{0.5cm} Abstract}{III}
164
\contentsline{section}{\hspace{0.5cm} Zusammenfassung}{IV}
165
\contentsline{section}{\hspace{0.5cm} Abbreviations}{VII}
166
\contentsline{section}{\hspace{0.5cm} List of Figures}{VIII}
167
\vspace{-1.5cm}
168
\tableofcontents
169
 
170
 
171
 
172
% ----------------------------------------------------------------------------------------------
173
% Abkürzungen
174
% ----------------------------------------------------------------------------------------------
175
 
176
\newpage
177
\section*{Abbreviations}
178
 
179
\vspace{0.5cm}
180
\begin{tabular}{rll}
181
{\bf [1]} & {\bf DWD}           & Deutscher Wetterdienst (German weather service)\\[2mm]
182
{\bf [2]} & {\bf ECMWF}         & European Centre for Medium Range Weather Forecasts\\[2mm]
183
{\bf [3]} & {\bf ERA-40}        & Re-analysis of the ECMWF for the periods 1958-2001\\[2mm]
184
{\bf [4]} & {\bf ERA-15}        & Re-analysis of the ECMWF for the periods 1979-1993\\[2mm]
185
{\bf [5]} & {\bf ETH}           & Eidgen\"ossische Technische Hochschule\\[2mm]
186
{\bf [6]} & {\bf f}            & Coriolis parameter (in $s^{-1}$)\\[2mm]
187
{\bf [7]} & {\bf IACETH}        & Institute for Atmospheric and Climate Science at ETH Zurich\\[2mm]
188
{\bf [8]} & {\bf METEOSAT}      & European geostationary weather satellite\\[2mm]
189
{\bf [9]} & {\bf MeteoSwiss}    & Swiss weather service\\[2mm]
190
{\bf [10]} & {\bf NaN }          & Not a Number (missing data flag)\\[2mm]
191
{\bf [11]} & {\bf netcdf     }   & Compact and random-access file format\\[2mm]
192
{\bf [12]} & {\bf NWP     }      & Numerical weather prediction\\[2mm]
193
{\bf [13]} & {\bf $N^2$    }     & Squared Brunt-Vais\"al\"a frequency (in $s^-2$)\\[2mm]
194
{\bf [14]} & {\bf PV}            & Potential vorticity (if not otherwise stated Ertel's potential vorticity)\\[2mm]
195
{\bf [15]} & {\bf pvu}            & Potential vorticity unit\\[2mm]
196
{\bf [16]} & {\bf PDE}           & Partial differential equation\\[2mm]
197
{\bf [17]} & {\bf SOR}           & Successive over-relaxation\\[2mm]
198
{\bf [18]} & {\bf T}             & Temperature (in $^\circ$C)\\[2mm]
199
{\bf [19]} & {\bf $T_v$}         & Virtual temperature (in $^\circ$C)\\[2mm]
200
{\bf [20]} & {\bf U}             & Zonal velocity component (in west/east direction)\\[2mm]
201
{\bf [21]} & {\bf V}             & Meridional velocity component (in south/north direction)\\[2mm]
202
{\bf [22]} & {\bf $\omega$}      & Vertical velocity component (in Pa/s)\\[2mm]
203
{\bf [23]} & {\bf q}             & Specific humidity (in kg/kg)\\[2mm]
204
{\bf [24]} & {\bf $\theta$}      & Potential temperature (in K)\\[2mm]
205
{\bf [25]} & {\bf $\rho$}        & Air density (in kg/m$^3$)\\[2mm]
206
{\bf [26]} & {\bf R$_d$}         & Gas constant for dry air (in kg/m$^3$)\\[2mm]
207
{\bf [27]} & {\bf $\epsilon$}    & Ratio of gas constants for dry air and water vapour\\[2mm]
208
{\bf [28]} & {\bf g}             & Earth's gravity (in kg m/s$^2)$\\
209
\end{tabular}
210
 
211
\newpage
212
\listoffigures
213
 
214
% ----------------------------------------------------------------------------------------------
215
% Introduction and Motivation
216
% ----------------------------------------------------------------------------------------------
217
 
218
\newpage
219
\clearpage
220
\pagenumbering{arabic}
221
 
222
\section{Introduction and Motivation}
223
 
224
\begin{figure}[t]
225
\begin{center}
226
\begin{minipage}[t]{16cm}
227
  \ForceWidth{1.0\textwidth}
228
  \BoxedEPSF{sat_wv.ps}
229
\end{minipage}
230
\\
231
\caption{\it Water vapour satellite imagery (in gray shading) and isolines of Ertel's potential vorticity (PV)
232
at 350\,hPa and for 3 May 1998, 12\,UTC. Dark regions indicate a dry upper troposphere, whereas bright and white regions are
233
indicative for a lot of moisture in the upper troposphere. Note that high-PV regions are coincident with 
234
dry regions. }
235
\label{satwv}
236
\end{center}
237
\end{figure}
238
 
239
There are different ways how the state of the atmosphere can be described. Traditionally this is done by specification of temperature, horizontal and vertical wind components and of either pressure, if geometrical height is used as the vertical co-ordinate, or geopotential height, if pressure is used as the vertical co-ordinate. This traditional approach has its main advantage in its simplicity. On the other hand, theoretical physics has often experienced the case that new insight can be gained if abstract, but physically more fundamental quantities were introduced. Consider for example the introduction of action and its primary physical parameter, the Planck constant. Similarly, geophysical fluid dynamics and hence atmospheric dynamics made some transitions away from the simple traditional meteorological fields toward more abstract ones.\\
240
 
241
\noindent
242
A long existing concept of engineering fluid dynamics is the concept of vorticity, which mathematically is defined as the curl of the wind vector field. Vorticity is treated in nearly every text book on fluid dynamics, for instance in Acheson (1990). Vorticity is a scalar quantity, but nevertheless, in a divergent-free and two-dimensional flow its specification is sufficient to deduce the complete velocity field. We could call this the invertibility principle for vorticity in such a non-divergent and two-dimensional flow. Moreover, an interesting conservation law hold for vorticity under these assumptions: Following the fluid motion, vorticity is conserved, i.e. its lagrangian derivative with respect to time is zero. Probably, in its most elegant way this conservation principle is expressed in Kelvin's circulation theorem (Acheson, 1990). These concepts of barotropic flow and of conservation of vorticity were indeed the basis for the first numerical weather predictions by Charney in 1950 (for an interesting history of numerical weather prediction, consult either Lynch, 2006, or Nebeker, 1995).\\ 
243
 
244
\noindent
245
Of course, the atmosphere cannot be treated in an exact way as a barotropic fluid. It constitutes a
246
stratified fluid where density and pressure decreases with increasing height. Therefore, a suitable 
247
generalisation of the barotropic-vorticity equation for the real atmosphere is by far not trivial, but would be highly desirable. 
248
Potential vorticity goes into this direction. The fundamental work by Rossby (1940) and Ertel (1942)
249
showed that potential vorticity is conserved in adiabatic (no latent heat release, no radiative heating
250
or cooling) and frictionless flow. The generalisation of the "invertibility principle for vorticity"
251
in two-dimensional flow was first stated in a rough way by Kleinschmidt (1950). He was able to attribute
252
some low-level flow features to an upper-level PV anomaly, in his words to a "Zyklonenk\"orper". Figure\,1
253
is a nice illustration of an upper-level PV anomaly. It shows some isolines of Ertel's PV on 350\,hPa, 
254
which form an elongated and narrow filament of high PV extending from Scandinavia south to the north-western
255
edge of Spain. Remarkably, this anomaly of high PV is also discernible as a dark band in the water vapour 
256
imagery of the geostationary METEOSAT weather satellite. Hence, the high PV band is associated with a very dry upper troposphere. \\
257
 
258
\begin{figure}[t]
259
\begin{center}
260
\begin{minipage}[t]{16cm}
261
  \ForceWidth{1.0\textwidth}
262
  \BoxedEPSF{Fig11_PVInv_tropo1.ps}
263
\end{minipage}
264
\\
265
\caption{\it Section across the circularly symmetric structure induced by an isolated, circularly symmetric, cyclonic potential vorticity anomaly near the model tropopause across which the Rossby-Ertel potential vorticity has a strong discontinuity, by a factor of 6. The bold line is the tropopause, the horizontal
266
thin lines are potential temperature, plotted at 5\,K intervals, and the circular/elliptical lines denote tangential velocity, at 3\,m/s intervals. The structure is typical for middle latitudes; the Coriolis parameter is $10^{-4}s^{-1}$ (as at geographical latitude $43.3^\circ$N). The domain shown has a radius of 2500\,km (taken from McIntyre,
267
1997).}
268
\label{inversion}
269
\end{center}
270
\end{figure}
271
 
272
\noindent
273
A very influential set of equations was introduced by Charney by means of a scale analysis of the dynamical equations (1948). These so called quasi-geostrophic equations are well suitable to describe synoptic and planetary-scale
274
processes, whilst neglecting smaller-scale features. Although these equations nowadays are considered no
275
longer of sufficient accuracy for numerical weather prediction, they nevertheless still are of great importance in
276
theoretical dynamic meteorology due to their simplicity and elegance (Holton, 1992).
277
Along with this set of equations came a new version of potential vorticity. This quasi-geostrophic
278
potential vorticity is linearly "linked" to the flow and temperature field, and -particularly interesting for
279
this study- an invertibility principle can be formulated. Indeed, the linear relationship between quasi-geostrophic potential vorticity and the flow field makes it very interesting since sophisticated
280
numerical techniques exist for the solution of this kind of problem. An example of such an inversion is shown in Fig.\,\ref{inversion} where
281
a cyclonic potential-vorticity anomaly near a model tropopause is shown. The potential vorticity is high
282
in the stratosphere and low in the troposphere. Therefore, the downward excursion of the tropopause is 
283
associated locally with anomalously high potential vorticity. This anomaly is marked in the figure with
284
stippling. The "horizontal" lines correspond to the potential temperature, the "circular/elliptical" contours to the tangential velocity. Note that the isolines of potential temperature (the so-called isentropes) are
285
pulled upwards below the PV anomaly, and pulled downward within the PV anomaly. An interesting aspect of
286
the upward pulling of the isentropes is the associated reduction in atmospheric stability. Due to the reduced
287
vertical gradient of  potential temperature, the atmosphere is more prone to convective instability. In fact,
288
in a recent study Martius et al. (2006) showed that many heavy precipitation events in the south of the Alps are 
289
associated with such upper-level distortions of the tropopause, and hence with a PV anomaly. Moreover, note
290
that the upper-level PV anomaly is not only associated with a deformation of the isentropes, but is
291
also linked with a wind field. The induced wind field in this idealised setting reaches 21\,m/s at its maximum and
292
is cyclonically (anti-clockwise) oriented. The wind field is strongest at the tropopause level, but is even discernible at
293
the surface far below the anomaly. In this respect, the PV field exhibits a far-field effect, and this in turn
294
is the basic idea behind the invertibility principle. If this principle is taken together with the partitioning 
295
principle, its explaining power becomes particularly attractive. This latter principles states that the atmospheric state can
296
be expressed as the interaction of isolated PV elements. This immediately invokes a research strategy, which is: to
297
enter, modify or remove some of these PV elements, and to see how the flow evolves in the thus
298
changed state. A very influential review article on PV and PV thinking was presented by Hoskins et al. (1985).
299
Here the key elements of PV thinking are discussed and applied to many atmospheric dynamical problems. \\
300
 
301
\begin{figure}[t]
302
\begin{center}
303
\begin{minipage}[t]{16cm}
304
  \vspace{-2cm}
305
  \ForceWidth{1.0\textwidth}
306
  \BoxedEPSF{streamer.eps}
307
\end{minipage}
308
\\[-2cm]
309
\caption{\it Stratospheric PV streamer and positions with stratosphere-troposphere mass exchange. The section is
310
for 1 January 1986, 06\,UTC and on the 320\,K isentrope. It is taken from the ERA-15 data set of the ECMWF. In color Ertel's potential vorticity is shown in pvu. Mass exchange from the stratosphere to the troposphere is
311
marked with stars, transport in the opposite direction by open circles (taken from Sprenger et al., 2007)}
312
\label{streamer}
313
\end{center}
314
\end{figure}
315
 
316
 
317
\noindent
318
Many studies relate to this PV thinking perspective. For instance, Davis and Emanuel (1991) looked at the 
319
potential vorticity diagnostics of cyclogenesis; Fehlmann and Davies (1997) investigated the impact of PV 
320
structures on precipitation events over Europe. In addition to this methodology, PV has gained a lot of
321
interest in recent years as a diagnostic tool. Indeed, from a dynamicist's point of view it is highly
322
attractive to use potential vorticity as the defining component of the extra-tropical tropopause (Stohl et al. 2003). Typically,
323
this value is set to 2\,pvu, and every air parcel with larger PV is treated as stratospheric and
324
every air parcel with lower PV as tropospheric. This definition allows to discuss the dynamics of the extra-tropical tropopause, as it would not be feasible with the more common thermal (or lapse-rate) definition of the tropopause. In Fig.\,\ref{streamer} a prominent feature of the extra-tropical tropopause is shown: a stratospheric
325
PV streamer. It corresponds to a pronounced excursion of stratospheric (high-PV) air towards the south. These
326
features are quite common in the extra-tropics and are important for the mass exchange between the stratosphere
327
and the troposphere, amongst other impacts (for example they are often related to cyclogenesis). The positions where stratospheric mass (and chemical constituents, as for example ozone) crosses the tropopause are marked in the figure by stars. They are predominantly found on the upstream
328
(western) side of the streamer. Crossing in the opposite direction, i.e. from the troposphere to the stratosphere,
329
on the other hand occurs on the downstream (eastern) side of the streamer. Interesting questions emerge from the
330
inspection of a such a figure: If the intensity, or the southward excursion of the PV streamer was reduced, would there still be a significant mass flux across the tropopause? These, and similar questions are at the heart of
331
the PV inversion, which is introduced in this study.\\
332
 
333
 
334
\noindent
335
The study is organised in the following way: In chapter 2 the mathematical problem of PV inversion is 
336
formulated and some essential aspects of the numerical algorithm are discussed. Chapter~3 introduces some
337
key aspects for the re-structuring of the program package.
338
Then, in chapter 4 a detailed
339
example of PV inversion is discussed. This part is intended to be a practical user guide for PV inversion,
340
and therefore rather detailed technical aspects are presented.  Chapter 5 follows with some helpful 
341
diagnostic tools which allow to quality and impact of the PV inversion. Finally, chapter 6 concludes 
342
with some general remarks and wishes regarding the PV inversion tool.
343
 
344
 
345
 
346
 
347
\newpage
348
 
349
\section{Mathematical Framework and Numerical Aspects}
350
 
351
In this study we use the quasi-geostrophic approximation for the real-case
352
inversion problem. In this limit the relative (quasi-geostrophic) potential vorticity
353
$q$ is given by:\\[-2mm]
354
 
355
\[
356
q = \frac{\partial^2\psi}{\partial x^2} + \frac{\partial^2\psi}{\partial y^2} +
357
\frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} ( \frac{\rho_0}{N_0^2}
358
\cdot \frac{\partial \psi}{\partial z})
359
\]
360
 
361
\vspace{0.3cm}
362
\noindent
363
with the boundary values of potential temperature at the upper and lower lid and 
364
of zonal and meridional wind components at the lateral boundaries:\\[-2mm]
365
 
366
\[
367
g \cdot \frac{\theta^*}{\theta_0} = f \cdot \frac{\partial \psi}{\partial z}
368
\quad \quad
369
u = -\frac{\partial \psi}{\partial y}
370
\quad \quad
371
v  =  -\frac{\partial \psi}{\partial x} 
372
\]
373
 
374
\vspace{0.3cm}
375
\noindent
376
Here $N_0^2$, $\rho_0$ and $\theta_0$  denote the squared Brunt-V\"as\"ala frequency, the density and the
377
potential temperature of a reference state depending only on the vertical co-ordinate $z$. $\psi$ is the 
378
streamfunction from which the horizontal wind components can be derived. Finally, $f$ is the Coriolis parameter
379
which measures the Earth's rotation rate (typically $10^{-4}s^{-1}$ in the mid-latitudes and 0 at the equator),
380
and $g$ is the Earth's gravity.\\
381
 
382
 
383
 
384
\noindent
385
The above equations constitute a so-called von Neumann boundary problem for the elliptic
386
differential equation relating the potential vorticity $q$ to the streamfunction $\psi$. Hence,
387
the elliptic partial differential equation (PDE) can be transformed into the general form:\\[-2mm]
388
 
389
\[
390
\frac{\partial}{\partial x}(\alpha \cdot \frac{\partial \psi}{\partial x}) +
391
\frac{\partial}{\partial y}(\beta  \cdot \frac{\partial \psi}{\partial y}) +
392
\frac{\partial}{\partial z}(\gamma \cdot \frac{\partial \psi}{\partial z}) +
393
\sigma = 0
394
\]
395
 
396
\vspace{0.3cm}
397
\noindent
398
where the coefficients $\alpha$, $\beta$, $\gamma$ and $\sigma$ are easily expressed in terms of
399
the density $\rho_0$, the Coriolis parameter $f$ and the squared Brunt-Vais\"al\"a frequency $N^2$:\\[-2mm]
400
 
401
\[
402
\alpha = \rho_0(z) \quad \quad 
403
\beta  = \rho_0(z) \quad \quad 
404
\gamma = \frac{f^2(y) \cdot \rho_0(z)}{N_0^2(z)} \quad \quad 
405
\sigma = - \rho_0(z) \cdot q(x,y,z)
406
\]
407
 
408
\vspace{0.3cm}
409
\noindent
410
The next step is to discretise the above PDE by means of finite differences. We assume that all
411
fields (quasi-geostrophic PV $q$, streamfunction $\psi$,...) are defined on a three-dimensional grid, whose
412
grid points can be addressed by the three indices $i$, $j$, and $k$ in the x-, y- and z-direction (see Fig.\,ref{grid}). With this
413
convention, the discretised PDE can be written as:\\[-2mm]
414
 
415
\[
416
\Delta_x(A \cdot \Delta_x \psi) + 
417
\Delta_y(B \cdot \Delta_y \psi) +
418
\Delta_z(C \cdot \Delta_z \psi) +
419
S = 0
420
\]
421
 
422
\vspace{0.3cm}
423
\noindent
424
Here the operators $\Delta_x(A \cdot \Delta_x\psi)$, $\Delta_y(B \cdot \Delta_y\psi)$ and
425
$\Delta_z(C \cdot \Delta_z\psi)$ at the grid position $i,j,k$ are defined by:
426
 
427
\begin{eqnarray*}
428
\Delta_x(A \cdot \Delta_x\psi)_{i,j,k} & = &
429
A_{i+1/2,j,k} \cdot (\psi_{i+1,j,k}-\psi_{i,j,k}) -
430
A_{i-1/2,j,k} \cdot (\psi_{i,j,k}-\psi_{i-1,j,k}) \\[0.2cm]
431
\Delta_y(B \cdot \Delta_y\psi)_{i,j,k} & = &
432
B_{i,j+1/2,k} \cdot (\psi_{i,j+1,k}-\psi_{i,j,k}) -
433
B_{i,j-1/2,k} \cdot (\psi_{i,j,k}-\psi_{i,j-1,k}) \\[0.2cm]
434
\Delta_z(C \cdot \Delta_z\psi)_{i,j,k} & = &
435
C_{i,j,k+1/2} \cdot (\psi_{i,j,k+1}-\psi_{i,j,k}) -
436
C_{i,j,k-1/2} \cdot (\psi_{i,j,k}-\psi_{i,j,k-1})
437
\end{eqnarray*}
438
 
439
\vspace{0.3cm}
440
\noindent
441
Some simple algebra yields the following expressions for $A$, $B$ and $C$:
442
 
443
\begin{eqnarray*}
444
A_{i,j,k} & = & \frac{\Delta y \cdot \Delta z}{\Delta x} \cdot \alpha_{i,j,k}\\[0.2cm]
445
B_{i,j,k} & = & \frac{\Delta y \cdot \Delta z}{\Delta x} \cdot \beta_{i,j,k}\\[0.2cm]
446
C_{i,j,k} & = & \frac{\Delta y \cdot \Delta z}{\Delta x} \cdot \gamma_{i,j,k}
447
\end{eqnarray*}
448
 
449
\begin{figure}[t]
450
\begin{center}
451
\begin{minipage}[t]{16cm}
452
  \ForceWidth{1.0\textwidth}
453
  \BoxedEPSF{numericalgrid.eps}
454
\end{minipage}
455
\\
456
\caption{\it The numerical grid for the PV inversion in an xz cross-section. The horizontal grid spacing is $\Delta x$
457
in the x-direction (and correspondingly $\Delta y$ in the y-direction), the vertical grid spacing $\Delta z$. Note that in the vertical, a staggered grid at half-levels is also needed (taken from Fehlmann, 1997).}
458
\label{grid}
459
\end{center}
460
\end{figure}
461
 
462
\vspace{0.3cm}
463
\noindent
464
Finally, the additive operator $S$ is expressed as:
465
 
466
\[
467
S_{i,j,k}  = \Delta x \cdot \Delta y \cdot \Delta z \cdot \sigma_{i,j,k}
468
\]
469
 
470
\vspace{0.3cm}
471
\noindent
472
It turns out to be advantageous to have the coefficients $\alpha$, $\beta$, $\gamma$ and $\sigma$
473
not only on the 3d grid where the quasi-geostrophic PV and the streamfunction are defined, but to
474
have them also on intermediate points. These leads to the grid structure which is shown in Fig.\,\ref{grid}.
475
On the left side the indices for the $\psi$-grid is shown, i.e. for the grid where the 
476
quasi-geostrophic PV and the streamfunction is defined. The right side gives the indices for the
477
coefficients $\alpha$, $\beta$, $\gamma$ and $\sigma$, i.e. for the intermediate layers.\\
478
 
479
\noindent
480
Let $\rho(k) = \rho_{k/2}$ and $N^2(k)=N^2_{k/2}$, hence expressing the vertical grid with intermediate layers. With these definitions the coefficients $A$, $B$ and $C$ for the inversion problem are readily obtained (note that these coefficients are dependent only on the vertical index z):
481
 
482
\begin{eqnarray*}
483
A_k & = & \frac{\Delta y \cdot \Delta z}{\Delta x} \cdot \rho(2k) \quad (k=0,...,nz)\\[0.2cm]
484
B_k & = & \frac{\Delta y \cdot \Delta z}{\Delta x} \cdot \rho(2k) \quad (k=0,...,nz)\\[0.2cm]
485
C_k & = & \frac{\Delta y \cdot \Delta z}{\Delta x} \cdot \frac{\rho(k) \cdot f^2}{N^2(k)} \quad (k=0,...2\cdot nz)
486
\end{eqnarray*}
487
 
488
\vspace{0.3cm}
489
\noindent
490
The additive operator $S$ depends on all three grid indices. In its discretised form it is:
491
 
492
\[
493
S_{i,j,k} = - \Delta x \cdot \Delta y \cdot \Delta z \cdot \rho(2k) \cdot q_{i,j,k} 
494
\quad (i=0,...,nx, j=0,...,ny, k=0,...,nz)
495
\]
496
 
497
\vspace{0.3cm}
498
\noindent
499
It is convenient to additionally define the coefficients $C_{-1}=C_0$ and $C_{2nz+1}=C_{2nz}$. With 
500
all these definitions the fully discretised quasi-geostrophic PV equation can be written as:
501
 
502
\begin{eqnarray*}
503
S_{i,j,k} & = &
504
       \quad \quad (\psi_{i-1,j,k}-2\psi_{i,j,k}+\psi_{i+1,j,k}) \cdot A_k       \\[0.2cm]
505
&  & + \quad (\psi_{i,j-1,k}-2\psi_{i,j,k}+\psi_{i,j+1,k}) \cdot B_k       \\[0.2cm]
506
&  & + \quad (\psi_{i,j,k-1} - \psi_{i,j,k})               \cdot C_{2k-1}  \\[0.2cm]
507
&  & + \quad (\psi_{i,j,k+1} - \psi_{i,j,k})               \cdot C_{2k+1} 
508
\end{eqnarray*}
509
 
510
\vspace{0.3cm}
511
\noindent
512
with the indices ranges as follows: $i=0, ... nx$ and $k=0, ... nz$. In addition to this discretised 
513
PV equation, additional equations must be specified for terms like $\psi_{-1,j,k}$. These discretised
514
von Neumann boundary conditions are:
515
 
516
\begin{eqnarray*}
517
A_k \cdot (\psi_{0,j,k} - \psi_{-1,j,k}) & = & {\Delta y} \cdot {\Delta z} \cdot \rho(2k) \cdot v_a(j,k)\\[0.2cm]
518
A_k \cdot (\psi_{nx+1,j,k} - \psi_{nx,j,k}) & = & {\Delta y} \cdot {\Delta z} \cdot \rho(2k) \cdot v_b(j,k)\\[0.2cm]
519
B_k \cdot (\psi_{i,0,k} - \psi_{i,-1,k}) & = & -{\Delta x} \cdot {\Delta z} \cdot \rho(2k) \cdot u_a(i,k)\\[0.2cm]
520
B_k \cdot (\psi_{i,ny+1,k} - \psi_{i,ny,k}) & = & -{\Delta x} \cdot {\Delta z} \cdot \rho(2k) \cdot u_b(i,k)
521
\end{eqnarray*}
522
 
523
\vspace{0.3cm}
524
\noindent
525
where $u_a,u_b$ denote the velocity components in x direction at the left (western) and right (eastern) lateral boundary, and
526
correspondingly  $v_a,v_b$ denote the velocity components in y direction at the front (southern) and back (northern) lateral boundary. Additional boundary values are specified at the lower and upper lid of the domain:
527
 
528
\begin{eqnarray*}
529
C_{-1} \cdot (\psi_{i,j,0} - \psi_{i,j,-1}) & = & {\Delta x} \cdot {\Delta z} \cdot 
530
\frac{f \cdot g \cdot \rho(0) \cdot \theta_{bot}(i,j)}{N^2(0) \cdot \theta_0(0)}\\[0.2cm]
531
C_{2 nz + 1} \cdot (\psi_{i,j,nz+1} - \psi_{i,j,nz}) & = & {\Delta x} \cdot {\Delta z} \cdot 
532
\frac{f \cdot g \cdot \rho(2 nz) \cdot \theta_{top}(i,j)}{N^2(2 nz) \cdot \theta_0(2 nz)}
533
\end{eqnarray*}
534
 
535
\vspace{0.3cm}
536
\noindent
537
Here, $\theta_{bot}$ and $\theta_{top}$ denote the boundary conditions for potential temperature at the 
538
lower and upper lid of the domain.\\
539
 
540
\noindent
541
This is a system of linear equations which can be expressed as\\[-2mm]
542
 
543
\[
544
B\psi = b
545
\]
546
 
547
\vspace{0.3cm}
548
\noindent
549
where $B$ is a $m \times m$ matrix with in total $m=(nx+1) \cdot (ny+1) \cdot (nz+1)$ elements (not to be 
550
confused with the above coefficients $B_k$). This linear
551
system has a solution if the following condition is fulfilled:
552
 
553
\[
554
\sum_{i,j,k} b_{i,j,k} = 0
555
\]
556
 
557
\vspace{0.3cm}
558
\noindent
559
This is exactly the discrete version of the compatibility condition in section~5.1. The derivation of the 
560
condition starts with the observation that the null space, i.e. the kernel of the system is at least 
561
one-dimensional because the non-trivial vector $\psi_{i,j,k}=1 \forall i,j,k$ is element of this kernel. Physically, this expresses the fact that the streamfunction is determined only up to an additive constant. Since the kernel of the linear system is at least one-dimensional, the image of the operator $B$ is
562
at most (m-1) dimensional. Moreover, the operator $B$ is normal, and therefore the image is orthogonal to the
563
kernel. Because $b$ is in the image of the operator $B$ and $\psi_{i,j,k}=1$ is in the kernel, the two vectors
564
are orthogonal. This leads immediately to the necessary consistency condition $\sum_{i,j,k} b_{i,j,k} = 0$.
565
Note that this expresses a complicated relationship which must be fulfilled by the interior PV distribution and the boundary values of potential temperature and horizontal wind components, because $b$ includes all these
566
forcing terms.\\
567
 
568
\noindent
569
The consistency condition is not met if vanishing boundary values are specified. This automatically
570
leads to an inconsistency in the numerical solution of the equation. In practice, the fulfillment
571
of the consistency condition can be enforced if a potential temperature "correction" is added at the
572
lower and upper lid, this correction being uniform and of opposite sign on the two boundaries. For 
573
reasonable PV and temperature distributions this additive temperature shift remains smaller than about 2\,K.\\
574
 
575
\noindent  
576
There exist several techniques how to solve linear systems of equations. Here we adopt the successive
577
over-relaxation (SOR) method: Let $A$ be a linear operator which is represented by an $m \times m$ matrix, and
578
let $\omega$ be a real number (the relaxation parameter) such that $|1-\omega (1+A)|< 1$. Then a solution
579
of the equation can be obtained iteratively, starting with an arbitrary first guess $\psi_i^{(0)}$. The iterations
580
 
581
\[
582
\psi_i^{(n+1)} = \omega \cdot (b_i - \sum_{j=1}^{i-1} A_{i,j} \cdot \psi_j^{(n+1)}
583
                                  - \sum_{j=i}^{m}   A_{i,j} \cdot \psi_j^{(n)})
584
                                  + (1-\omega) \cdot \psi_i^{(n)}
585
\]
586
 
587
\vspace{0.3cm}
588
\noindent
589
converge toward the solution of the system $A\psi + \psi =b$. If we choose $A=B-1$, the iterations converge toward a solution of the quasi-geostrophic PV equation. \\
590
 
591
\noindent
592
Note that the above outlined algorithm allows to overwrite the variable $\psi_i^{(n)}$ with the updated
593
variable $\psi_i^{(n+1)}$, and therefore needs a minimum of computational memory. In the Fortran program 
594
{\em inv\-cart.f} the number of iterations and the SOR parameter $\omega$ are specified. The are set to 500 iterations and 1.81, respectively.
595
 
596
% ----------------------------------------------------------------------------------------------
597
% Program philosophy 
598
% ----------------------------------------------------------------------------------------------
599
 
600
\newpage
601
\section{Re-Structuring of the Code}
602
 
603
In this section some key concepts of the program package are described. In fact, an earlier version of the package already existed (developed originally by Rene Fehlmann and later modified by Sebastien Dirren) and the present work is based upon this pre-existing package. So, the question arises what added value this re-development and re-structuring of the code is associated with. The basic 
604
idea is to provide a code which fulfills the following three requirements:
605
 
606
\begin{center}
607
\begin{minipage}[t]{10cm}
608
\begin{itemize}
609
\item[a)] {\bf Transparency and Modularity}\\[-3mm]
610
\item[b)] {\bf Universality and Model Independence}\\[-3mm]
611
\item[c)] {\bf User friendliness}
612
\end{itemize}
613
\end{minipage}
614
\end{center}
615
 
616
\vspace{0.3cm}
617
\noindent
618
In the following parts, a detailed discussion is intended to illustrate how this requirements were missing in the existing code
619
and how they could be incorporated into the new version. Before doing so, it is worthwhile to consider why the original code was lacking these requirements. A short review of the relevant literature
620
illustrates that the situation is actually quite common. Any software which is really used has to be adapted to the changing demands. It must be maintained. Unfortunately this maintenance often leads
621
to a degeneration of the code. The changes introduced into the code then make necessary some further
622
adaptions, and so on. Finally, in the end the code becomes so "distorted" and "chaotic" that often
623
a complete re-coding is easier to be done than a re-structuring of the existing version. The
624
remedy against this code degeneration is a continuous re-structuring. Hence, if changes in the code
625
are obligatory due to new user demands, it is important not only to introduce the needed changes
626
short-sightedly. The overall structure of the program should be kept in mind, and if possible
627
long-term perspectives in code maintenance should be allowed, although such a long-term perspective
628
momentarily leads to an additional effort. \\
629
 
630
\noindent
631
Computer science, in particular software engineering, has defined the term "re-structuring" (or
632
"re-factoring" for object-oriented programming languages) for the process how code should be
633
maintained in order to avoid severe degeneration. Fowler defines the term re-factoring in the
634
following way (taken from URL {\em www.refactoring.com}):\\
635
 
636
\begin{center}
637
\parbox{14cm}{"Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it's less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring."}
638
\end{center}
639
 
640
\vspace{0.6cm}
641
\noindent
642
Hence, the key aspect of re-structuring is to continuously maintain the code, not only in
643
its performance, but also in its readability, documentation and adaptabilty to needed 
644
changes.\\
645
 
646
\vspace{0.3cm}
647
\noindent
648
 Scientific programming in particular is very prone to code degeneration. This is certainly due
649
 to the fact that cutting-edge science is, by "definition", investigating what is not known. 
650
 Therefore, if for instance a computer program is written to numerically simulate a physical 
651
 process, it might well turn out during the development of the code that complete new aspects
652
 must be included. This naturally leads to chaotically structured code. In the present case, i.e.
653
 for the PV inversion program, this certainly explains to a large part why the code became
654
 so un-organised. Several works have been done with the program, several researchers included
655
 into the code what they needed for their specific task, without considering that other users might  have no use of their changes. The results was a program package which, in principle, was still
656
 working, but the knowledge of how to apply it went lost.\\
657
 
658
 \noindent
659
  A first rough inspection immediately made
660
 clear that major changes were necessary to make the code available to a broader community again. 
661
 Would it have been possible to only re-organise the code and write a new user guide? In a first
662
 try, this was in fact considered. But then the advantages of a more or less complete
663
 re-coding turned out to be more suitable. Hence, the original software package joined the
664
 sad fate of so many degenerated codes: a complete re-coding. On the other hand, such a re-coding
665
 must be seen as a great chance. It allows to improve the code in such a way, as it would never be
666
 possible if only "slight" changes at the existing code were made.\\ 
667
 
668
 \noindent
669
 In the following three 
670
 subsections, some key aspects of this re-coding will be presented. They are by no means
671
 exhausting, but should give an impression of the new "philosophy". Hopefully, they also motivate
672
 future users of the program package to "successfully" maintain it.
673
 
674
 
675
 
676
\subsection{Transparency and Modularity}
677
 
678
What makes a computer program readable? Probably one of the most important points is "modularity".
679
The problem to be solved numerically can and should be split into several distinct steps. For instance,
680
for the PV inversion a classic three step splitting is appropriate: pre-processing, PV inversion, and post-processing. Moreover, each of these three primary steps can further be split into several secondary sub-steps. 
681
In the existing code, the splitting of the problem into distinct sub-problems was not clearly discernible. Indeed, the main Fortran program included not only the numerical inversion of the quasi-geostrophic PV equation, but also some of the
682
preparatory steps and some of the post-processing steps. \\
683
 
684
\noindent
685
A major improvement was gained by a very strict separation of the distinct primary steps. So, pre-processing, inversion and post-processing are done by three completely separated program packages. This strict 
686
separation is supported by the fact that three separated directories are used: There is one directory where pre-processing is done, on directory where inversion is done, and finally one directory where post-processing is done. A flow of data between the three directories is allowed only at well-defined
687
steps within the whole process. At the end of pre-processing the relevant files, and only those, are moved to the inversion (or run) directory. Similarly, at the end of the inversion, the relevant files
688
are moved from the run directory to the post-processing directory.\\ 
689
 
690
\noindent
691
Additional improvement resulted from a very clear separation of the sub-processes in the three main-processes (pre-processing, inversion, post-processing). In fact, it was not tried to incorporate
692
all preparatory steps into one large Fortran program, but instead each well-defined task (as for example transformation into a new co-ordinate system) constitutes a separate Fortran program. This 
693
modularity is very similar to the "philosophy" of the Linux operating system: Keep flexibility and 
694
clarity by offering not one program which handles everything (and thereby becomes a "monstrosity"), but offer many flexible and simple tools which the user only has to combine in order to perform complex tasks.\\
695
 
696
\noindent 
697
What else except for modularity can be done to improve the readability of computer programs? It is obvious, and probably the most neglected aspect of good computer code generation: in-code documentation. Every 
698
small sub-section of a computer program should be documented. It should be possible to gain 
699
insight into an algorithm only by looking at the in-code documentation. It is definitely not
700
sufficient only to document for every subroutine what its aim is and what its interface is, although
701
quite often even this most basic principle is not fulfilled. Hence, in the re-coding of the
702
PV inversion focus was led to good documentation: Where are files opened, where variables initialised, what is a subroutine call meaning? \\
703
 
704
\noindent
705
Finally a remark concerning the used programming language. A complete re-coding of a software package might also be
706
a chance to switch to a "better" programming language. In the present case, the original code was written in 
707
Fortran 77, and this language was also used for the re-coding. Fortran, and in particular its older version
708
Fortran 77, is by far not a modern language. Comparing its vocabulary and its structural elements to languages like C++ or Java, its power is very limited. Moreover, Fortran includes jump statements like {\em Goto} which could easily make
709
any code un-readable. So why do so many research codes still rely on Fortran? In fact, most numerical
710
weather prediction models are written in Fortran. There are two reasons why the PV inversion was written in Fortran: Firstly, the small vocabulary and the intuitive naming of the inherent Fortran commands
711
makes it quite easy to read a code. Many researches never had a profound introduction into programming. Nevertheless they should be able to implement algorithms for their daily work. This is easily done with Fortran, and certainly much easier done than using object-oriented concepts offered by C++ and other modern languages. The PV inversion should be available
712
to a research community which has excellent algorithmic thinking, but only a "weak" background in computer languages. Fortran is an optimal choice in this respect. The second reason why the re-coding was done in Fortran is its high performance. In fact, PV inversion is very resource demanding, and compilers must create fast-running codes in order
713
the PV inversion tool to be helpful.\\ 
714
 
715
\noindent
716
Regarding the "unholy" {\em Goto} statements, it can be immediately said that good programming style is not restricted to languages which do not offer a {\em Goto} statement. A well-structured and carefully developed Fortran program is
717
certainly preferable to a "bad" algorithm in a "good" computer language, "good" meaning that this language offers many
718
controlling structures. Probably, a key concept of well-written computer code is a good balance between the "power" of a (Fortran)
719
subroutine and its length (expressed in the number of code lines). Two extreme examples might illustrate this point: If no subroutines at all are used, i.e. if the program consists only in one single main program, the algorithm might get
720
"lost" in two many "technical" details. On the other hand, if every single and minor step is a separate subroutine, the
721
code lacks clarity due to the large number of subroutines. In the present re-coding of the PV inversion, focus was given
722
to a good balance of functionality (power) of a subroutine and its length. 
723
 
724
 
725
\subsection{Universality and Model Independence}
726
 
727
Universality was another aspect which was important in re-coding the PV inversion. In the present
728
example universality might be better named "model independence". Model in this respect refers either to different numerical weather prediction (NWP) models or to idealised experiments. In the former case, 
729
the variety of NWP models is very large. The PV inversion tool was originally written for the Europa
730
model (EM) of the German weather service (DWD). Later it was applied to the higher-resolution 
731
model (HRM and CHRM) which was run by the DWD and the Swiss weather service (MeteoSwiss). In recent years, the 
732
non-hydrostatic local model (LM) developed by the DWD replaced the HRM in regional
733
weather forecasting. So, an adaption of the existing PV inversion code would have been necessary. 
734
Moreover, PV inversion is particularly attractive for global-scale data sets. So, the method and the
735
programs were adapted to conform with the global model of the European Centre for Medium Range Forecasts (ECMWF). To make things worse, idealised experiments should also be performed. What actually
736
makes the situation so difficult is that each model has its own horizontal grid structure and its own vertical grid structure. For instance, ECMWF uses a terrain-following co-ordinate system which in higher levels becomes a pressure-level co-ordinate system, quite in contrast what is used by the regional LM model (a variant of geometrical height). \\
737
 
738
\noindent
739
Model independence cannot completely avoided. It is a fact which has to be adopted and cleverly 
740
dealt with. In the re-coding, model aspects were removed in the first two preparatory steps (out of 
741
eight different steps, see section~4.4) and the way back to the model is done in the last post-processing steps.
742
Essentially the preparatory steps interpolate the needed meteorological fields onto a stack of height levels and
743
 transforms the fields into a local quasi-cartesian co-ordinate system. After completing these steps, the other preparatory steps and the PV inversion itself is completely independent of the model from which the input data is retrieved. As a particular example consider the PV inversion of a structure over the North Pole. In the existing code such an inversion would not have been feasible due to the convergence of the
744
 longitude circles at the North Pole. The new code, on the other hand, elegantly circumvents this
745
 problem by introducing a new quasi-cartesian co-ordinate system centered over the North Pole. In this
746
 respect the North Pole is not different from any other region on the globe.\\
747
 
748
\noindent
749
With respect to idealised experiments, the following strategy was adopted. This kind of experiments 
750
is generally so different from what is needed for real-case studies that a complete separation 
751
is preferable. So, in contrast to the existing code, this type of experiments is now handled by
752
 a completely separated program package. Of course, many programs "overlap" or are even identical, but it nevertheless makes sense to treat the two kind of experiments (real-case versus idealised) separately.
753
 
754
 
755
 
756
 
757
 
758
\subsection{User Friendliness}
759
 
760
Computer programs are not written for a computer's joy, but because they should solve a problem
761
which cannot be solved analytically by any person. So, computer programs are tools which should 
762
make "life" easier for their users, or at least they should make some problems tractable. If the
763
user-interface of a computer program is chaotic and badly structured, the computer does not complain. 
764
The user, on the other hand, might give up using the tool simply because it needs too much effort to understand how the program must be handled. Scientific programs are especially in danger of 
765
having bad user-interfaces because these kind of programs are always "in the flow". This in turn
766
means that often it is not worthwhile to develop a graphical user-interface, as it is an absolute
767
must for commercial software. \\
768
 
769
\noindent
770
In the existing code for the PV inversion the user-interface was highly "chaotic". It consisted of 
771
several hundred lines of Linux Shell scripts which were difficult to read -partly due to lack of documentation, partly due to the unnecessarily complex structure. The behaviour of the inversion
772
was controlled by many variables set in the beginning of the Linux Shell script, set without
773
knowing exactly where and when these variables are used. This gave the user a "bad feeling" about
774
his experiments, simply because it was not always clear what changing parameters really meant.\\
775
 
776
\noindent
777
Although a graphical user-interface is not provided for the new version, an attractive command-based
778
interface is now available. This interface essentially consists of two parts. Firstly, a Linux Shell script
779
is provided which handles all calls to the computing Fortran programs. For instance, {\em inversion.sh prep} runs through all preparatory steps. User friendliness is reached by the fact the the user needs to make no changes to this Linux Shell script, although its limited size and documentation would make it quite simple.
780
Probably the best user-interface is provided by a parameter file. Such a file is provided in the new
781
version, and all parameters describing the inversion problem can be entered into this file. In fact, 
782
this kind of user-interface was motivated by sophisticated numerical weather prediction (NWP) models. There too,
783
the specifications characterising a model run are passed to the NWP model by means  of a parameter
784
file.\\
785
 
786
 
787
\noindent
788
What else made the existing user-interface chaotic? A close inspection revealed that the flow of data and information was absolutely non-transparent. Meteorological fields were moved from one file to 
789
another, only to be renamed there and subsequently being moved again to another file. For a part-time user it would have been impossible to keep track of the flow of information. In the new code the flow of information is very strictly controlled (see also the above subsection~3.1). In fact, there are many different files involved in the PV inversion:
790
input files, several intermediate files and finally the output files. It is not the number of files which makes a
791
process difficult to understand. If the flow of information is well controlled, it remains tractable. For the case of
792
the PV inversion, this information flow can be kept clear, and this was indeed an important aspect of the re-coding.  
793
 
794
 
795
 
796
 
797
% ----------------------------------------------------------------------------------------------
798
% PV Inversion for Real Cases 
799
% ----------------------------------------------------------------------------------------------
800
 
801
\newpage
802
 
803
\section{Inversion of an Extra-tropical PV Streamer}
804
 
805
\subsection{Scientific question}
806
 
807
The PV inversion starts with the selection of a distinct PV anomaly which should be
808
removed or added to the original PV distribution. It is then the aim to analyse
809
and compare the meteorological fields of horizontal wind and potential temperature
810
associated with the modified PV distribution with the corresponding fields associated with
811
the original PV distribution.\\
812
 
813
\begin{figure}[t]
814
\begin{center}
815
\begin{minipage}[t]{7.5cm}
816
  \ForceWidth{1.0\textwidth}
817
  \BoxedEPSF{pv_20060114_18_315K.eps}
818
\end{minipage}
819
\hspace{0.5cm}
820
\begin{minipage}[t]{7.5cm}
821
  \ForceWidth{1.0\textwidth}
822
  \BoxedEPSF{pv_20060115_18_315K.eps}
823
\end{minipage}
824
\\
825
\begin{minipage}[t]{7.5cm}
826
  \ForceWidth{1.0\textwidth}
827
  \BoxedEPSF{pv_20060116_18_315K.eps}
828
\end{minipage}
829
\hspace{0.5cm}
830
\begin{minipage}[t]{7.5cm}
831
  \ForceWidth{1.0\textwidth}
832
  \BoxedEPSF{pv_20060117_18_315K.eps}
833
\end{minipage}
834
\\
835
\begin{minipage}[t]{11cm}
836
  \ForceWidth{1.0\textwidth}
837
  \BoxedEPSF{pv_colorbar.eps}
838
\end{minipage}
839
\\
840
\caption{\it Time evolution of Ertel's potential vorticity (PV) on the 315\,K isentropic surface. The four
841
plots are for 14, 15, 16 and 17 January 2006, 18\,UTC. The PV inversion will be exemplified in this user guide for 16 January 2006, 18\,UTC.}
842
\label{question}
843
\end{center}
844
\end{figure}
845
 
846
\noindent
847
The time evolution of potential vorticity (PV) on the 315\,K isentropic surface shows a distinct feature over the Eastern United States (Fig.\,\ref{question}). This so-called stratospheric PV streamer is indicative for
848
a deep intrusion of stratospheric air towards the equator. In the course of the four days shown, the
849
PV streamer moves towards the east, and in the later stages exhibits an cyclonic rolling-up. An eminent
850
question is how this stratospheric PV streamer influences the atmospheric flow in its neighbourhood. From theoretical
851
considerations, it can be expected that the impact on the horizontal velocity and on the static stability
852
is quite large (see introduction, Fig.\,2). By means of the so-called quasi-geostrophic omega equation (Holton, 1992), it is also expected that pronounced
853
vertical motions are directly associated with the passage of the PV streamer. It is the aim of this study -and of PV inversion in general- to surmount the qualitative argumentation, and to 
854
quantitatively assess the impact of such a structure on the atmospheric flow. \\
855
 
856
\noindent 
857
In the following chapters, all steps are discussed which are needed to quantify this impact. Here, we
858
exemplarily consider the date of 16 January 2006, 18\,UTC, and determine explicitly for this date 
859
the atmospheric response the upper-level (near tropopause level) PV structure.
860
 
861
 
862
 
863
\subsection{Necessary input files}
864
 
865
\begin{figure}[t]
866
\vspace{-2cm}
867
\begin{center}
868
\begin{minipage}[t]{8.0cm}
869
  \ForceWidth{1.0\textwidth}
870
  \BoxedEPSF{q_20060116_18_500hPa.eps}
871
\end{minipage}
872
\hspace{-0.6cm}
873
\begin{minipage}[t]{8.0cm}
874
  \ForceWidth{1.0\textwidth}
875
  \BoxedEPSF{t_20060116_18_500hPa.eps}
876
\end{minipage}
877
\\[-3cm]
878
\begin{minipage}[t]{8.0cm}
879
  \ForceWidth{1.0\textwidth}
880
  \BoxedEPSF{uv_20060116_18_500hPa.eps}
881
\end{minipage}
882
\hspace{-0.6cm}
883
\begin{minipage}[t]{8.0cm}
884
  \ForceWidth{1.0\textwidth}
885
  \BoxedEPSF{ps_20060116_18_500hPa.eps}
886
\end{minipage}
887
\\[-2cm]
888
\caption{\it Specific humidity (g/kg), temperature (in $^\circ$C), wind vectors
889
at 500\,hPa and surface pressure for 16 January 2006, 18\,UTC. These field are needed
890
as input for the PV inversion, and are available on the so-called P file.}
891
\label{inpp}
892
\end{center}
893
\end{figure}
894
Several preparatory steps are necessary before the PV inversion itself can be
895
performed. Here each of these steps is described in detail and -where possible- 
896
illustrated with suitable figures. Starting point of the analysis is the P and
897
Z file of the ECMWF (re-)analysis:
898
 
899
\begin{itemize}
900
\item {\bf P20060116\_18} with temperature T (in $^\circ$C), horizontal wind components U,V (in m/s) in
901
zonal and meridional direction, respectively,
902
      specific humidity Q (in kg/kg) and surface pressure PS (in hPa). 
903
\item {\bf Z20060116\_18} with geopotential height Z (in m) on a stack of pressure 
904
      levels (for instance on 850, 500 and 250\,hPa).
905
\end{itemize}
906
 
907
\begin{figure}[t]
908
\vspace{-2cm}
909
\begin{center}
910
\begin{minipage}[t]{8.0cm}
911
  \ForceWidth{1.0\textwidth}
912
  \BoxedEPSF{z_20060116_18_250hPa.eps}
913
\end{minipage}
914
\hspace{-0.6cm}
915
\begin{minipage}[t]{8.0cm}
916
  \ForceWidth{1.0\textwidth}
917
  \BoxedEPSF{z_20060116_18_500hPa.eps}
918
\end{minipage}
919
\\[-3.5cm]
920
\begin{minipage}[t]{8.0cm}
921
  \ForceWidth{1.0\textwidth}
922
  \BoxedEPSF{z_20060116_18_850hPa.eps}
923
\end{minipage}
924
\\[-1.5cm]
925
\caption{\it Geopotential height (in m) on 250, 500 and 850\,hPa  for 16 January 2006, 18\,UTC. These field are needed
926
as input for the PV inversion, and are available on the Z file.}
927
\label{inpz}
928
\end{center}
929
\end{figure}
930
 
931
\noindent
932
Figure\,\ref{inpp} shows temperature T, specific humidity Q and wind vectors (U,V) at 500\,hPa and the surface pressure for 16 January 2006, 18\,UTC. A narrow band of high specific humidity is discernible on the downstream
933
side (to the east) of the PV streamer (upper-left panel). Most probably, this extended band is directly associated with
934
the southerly winds which prevail to the east of the PV streamer, and which are able to transport moist
935
air from the warm subtropics to the north. In the temperature field (upper-right panel), the PV streamer's impact is also discernible.  It is associated -at this level- by a local warm anomaly. On theoretical grounds, we would expect a local cold anomaly below the streamer and a local warm anomaly within and above the streamer (see introduction, Fig.\,2). The present signal indicates that the streamer reaches far down into the troposphere, and enforces a local warm anomaly at the low level of 500\,hPa. As already mentioned before, and explicitly shown by the wind vectors (lower-left panel), the PV streamer is also associated with a cyclonic flow. Besides the impact on the temperature field, this PV induced flow field is the most eminent impact of a PV streamer. Indeed, it is the wind field where the far-field effect of a PV streamer becomes most evident, because the streamer's impact on temperature and stratification is essentially confined to the
936
regions just below or above. 
937
Finally, the P file contains the surface pressure PS (lower-right panel), which of course to the largest extent simply reflects the surface topography.  So for instance,
938
the high topography of the Rocky Mountains or of the Greenland ice shield, is associated with low
939
surface pressure, 700\,hPa corresponding to about 3\,km height above sea level.\\
940
 
941
\noindent
942
In addition to the P file, a so-called Z file must be provided as input for the PV inversion. This file contains the geopotential height on a distinct set of pressure levels. Typically, these levels are
943
850, 500 and 250\,hPa. A plot of these levels is shown in Fig.\,\ref{inpz}. The need for this reference levels
944
will become evident in a subsequent section. In short: They are needed to integrate the hydrostatic equation and thereby to transform from pressure to geometrical height as vertical co-ordinate.
945
Note how the PV streamer over the west Atlantic is discernible in the geopotential as a deep trough. 
946
 
947
 
948
 
949
\subsection{An overview of the inversion}
950
 
951
\begin{figure}[t]
952
\begin{center}
953
\begin{minipage}[t]{6cm}
954
  \ForceWidth{1.0\textwidth}
955
  \BoxedEPSF{threesteps.eps}
956
\end{minipage}
957
\\
958
\caption{\it Data flow diagram for the three steps of the PV inversion. The preparatory steps are
959
essentially performed in the input directory, the inversion in the run directory and the output is
960
finally written to the output directory.}
961
\label{threesteps}
962
\end{center}
963
\end{figure}
964
 
965
The PV inversion can be split into three well-separated steps. The first step is associated with
966
preparations, in particular with the definition of the modified Ertel-PV field. In addition, some 
967
preparatory steps have to be performed in order to adapt the ECMWF grid to the cartesian grid which is 
968
assumed in the inversion algorithm. In the second step the atmospheric state is iteratively adjusted to
969
the modified PV field, as it was specified in the previous preparatory step. This second part comprises the "core" of the algorithm, i.e. the numerical inversion of the quasi-geostrophic potential 
970
vorticity equation by means of a successive over-relaxation (SOR) technique. Finally, in the third step
971
the modified atmospheric state is brought back from the cartesian grid of the inversion to the
972
original latitude/longitude grid of the ECMWF, including its hybrid vertical co-ordinate. After this
973
step a direct comparison between input and output fields is feasible due to the equivalent
974
grid structure of input and output fields. The basic three steps are shown in Fig.\,\ref{threesteps}, and will subsequently be described in greater detail in the following sections. Before doing so, a note has to be made on the user-interface for the PV inversion.\\
975
 
976
 
977
\noindent
978
The inversion is controlled by one master Linux Shell script (inversion.sh), which calls the performing Fortran programs
979
(for a complete listing of the Linux Shell script consider Appendix~9.2). 
980
A major aim of this work was to make the 
981
application of the inversion as easy as possible. Therefore, the typical user is not forced to study
982
the master script itself, but can provide all needed parameters by means of a so-called "parameter file"
983
(inversion.param).
984
The contents of this file is parsed by a Perl script, which extracts all needed information. In the
985
description of the subsequent steps, the relevant parts of this parameter file will be reproduced and
986
described. A complete listing of the parameter file can be found in Appendix~9.3.\\ 
987
 
988
 
989
\noindent
990
Nevertheless, it will be necessary for an advanced usage of the inversion package to go into
991
some greater details. For instance, if particular PV structures should be removed or added, the
992
implemented simple filtering approach (to be discussed in section~4.4.4) might not be sufficient.
993
In this case, the advanced user is encouraged to modify the Fortran code in order to fulfill his particular
994
tasks.\\ 
995
 
996
 
997
\noindent
998
In a first step some directories must be specified. This is done in the parameter file {\em inversion.param} in the section DATA. For the example of this study this section looks like:\\[-0.3cm]
999
\begin{center}
1000
\begin{minipage}[t]{13cm}
1001
\ForceWidth{1.0\textwidth}
1002
\begin{verbatim}
1003
BEGIN DATA
1004
  DATE    = 20060116_18;                                
1005
  INP_DIR = /lhome/sprenger/PV_Inversion_Tool/real/inp;   
1006
  RUN_DIR = /lhome/sprenger/PV_Inversion_Tool/real/run; 
1007
  OUT_DIR = /lhome/sprenger/PV_Inversion_Tool/real/out;
1008
END DATA
1009
\end{verbatim}
1010
\end{minipage}
1011
\end{center}
1012
 
1013
\vspace{0.3cm}
1014
\noindent
1015
The first argument (DATE) gives the date of the case. Then the following three entries specify the input (INP\_DIR), the run (RUN\_DIR) and the output (OUT\_DIR) directory, respectively. These directories can be created by the call
1016
\\[-0.3cm]
1017
\begin{center}
1018
\begin{minipage}[t]{13cm}
1019
\ForceWidth{1.0\textwidth}
1020
\begin{verbatim}
1021
inversion.sh inst
1022
\end{verbatim}
1023
\end{minipage}
1024
\end{center}
1025
 
1026
\vspace{0.3cm}
1027
\noindent
1028
For test reasons a set of sample files is provided. These sample P20060115\_18 and Z20060115\_18 files can be copied to the input directory with the call
1029
\\[-0.3cm]
1030
\begin{center}
1031
\begin{minipage}[t]{13cm}
1032
\ForceWidth{1.0\textwidth}
1033
\begin{verbatim}
1034
inversion.sh sample
1035
\end{verbatim}
1036
\end{minipage}
1037
\end{center}
1038
 
1039
\vspace{0.3cm}
1040
\noindent
1041
The fields available on the two files are:
1042
 
1043
\begin{center}
1044
\begin{tabular}{|l|l|l|}
1045
\hline
1046
Q     & Specific humidity ($kg/kg$) & P20060116\_18 \\
1047
U     & Zonal velocity ($m/s$)      & P20060116\_18 \\
1048
V     & Meridional velocity ($m/s$) & P20060116\_18 \\
1049
T     & Temperature ($^\circ C$)    & P20060116\_18 \\
1050
OMEGA & Vertical velocity ($Pa/s$)  & P20060116\_18 \\
1051
PS    & Surface pressure ($hPa$)    & P20060116\_18 \\
1052
\hline
1053
Z     & Geopotential height ($m$) on 850, 500 and 250\,hPa   & Z20060115\_18 \\
1054
\hline
1055
\end{tabular}
1056
\end{center}
1057
 
1058
 
1059
\vspace{0.5cm}
1060
\noindent
1061
With these preparatory steps, the inversion can be performed. The following sections discuss the three basic step, i.e. the preparation of the input files for the inversion, the inversion itself and the post processing of the output files.
1062
 
1063
 
1064
 
1065
\subsection{Pre-processing: Defining the inversion problem [prep]}
1066
 
1067
\begin{figure}[t]
1068
\begin{center}
1069
\begin{minipage}[t]{12cm}
1070
  \vspace{2.5cm}
1071
  \ForceWidth{1.0\textwidth}
1072
  \BoxedEPSF{preparation.eps}
1073
\end{minipage}
1074
\\
1075
\caption{\it Flowchart of preparatory steps. Additionally, to the left of the single steps the
1076
essential flow of information is shown. For instance, H $\rightarrow$ R means that the input is taken from
1077
the file with prefix H and the output is then written to the file with prefix R.}
1078
\label{preparation}
1079
\end{center}
1080
\end{figure}
1081
 
1082
Firstly, the vertical co-ordinate
1083
has to be changed from pressure to geometrical height (section~4.4.1) and the fields have to be
1084
transformed from the geographical latitude/longitude grid to a cartesian grid (section~4.4.2). Then additional meteorological
1085
fields have to be computed on this new cartesian grid (section~4.4.3).  With these two preparations the
1086
Ertel-PV anomaly can be defined (section~4.4.4), and the input files for the quasi-geostrophic PV inversion be written
1087
(section~4.4.5). Some additional steps are then: definition of a reference profile (in section~4.4.6) and
1088
the transformation of the coastlines into the cartesian grid (section~4.4.6).\\
1089
 
1090
\noindent
1091
These single steps have to be done once for every inversion problem. A complete flowchart of
1092
the preparatory steps is shown in Fig.\,\ref{preparation}. In the following description every single step will
1093
be launched and discussed individually. If desired, the call 
1094
\\[0.0cm]
1095
\begin{center}
1096
\begin{minipage}[t]{13cm}
1097
\ForceWidth{1.0\textwidth}
1098
\begin{verbatim}
1099
inversion.sh prep
1100
\end{verbatim}
1101
\end{minipage}
1102
\end{center}
1103
 
1104
\vspace{0.6cm}
1105
\noindent
1106
will run through all steps without waiting for intermediate check. This is particularly practical if all
1107
settings remain essentially unchanged, and therefore a detailed check after each step is not necessary.
1108
 
1109
 
1110
 
1111
 
1112
\subsubsection{Transformation to height levels [prep1]}
1113
 
1114
\begin{figure}[t]
1115
\begin{center}
1116
\begin{minipage}[t]{10cm}
1117
  \ForceWidth{1.0\textwidth}
1118
  \BoxedEPSF{sigma_level.eps}
1119
\end{minipage}
1120
\\
1121
\caption{\it Illustration of the terrain-following hybrid co-ordinate system of the ECMWF grid.
1122
Here it is shown with 15 levels, recent versions of the ECMWF model contain 60 hybrid levels for the ERA-40 re-analysis and 91 levels for the operational analysis and deterministic 10\,day forecast [illustration taken
1123
from "An Introduction to dynamic meteorology" by Holton, 1992].}
1124
\label{sigma}
1125
\end{center}
1126
\end{figure}
1127
 
1128
 
1129
The input data are available on a latitude/longitude grid
1130
in the horizontal and on a so-called hybrid $\sigma$-grid on the vertical. Whereas the former is
1131
well known, the latter needs some explanation. The basic idea is illustrated in Fig.\,\ref{sigma}. The 
1132
model levels are terrain-following, and the pressure p(i,j,k) at a specific grid point (with grid indices i,j,k) is given by the expression:
1133
\[
1134
p(i,j,k) = ak(k) + bk(k)*ps(i,j)
1135
\]
1136
 
1137
\vspace{0.3cm}
1138
\noindent
1139
where $ps(i,j)$ is the pressure at the surface at the specified grid position. The two one-dimensional
1140
arrays $ak$ and $bk$ are part of the P file, more specifically of the constants file associated with the P file. The main advantage of this hybrid grid is its non-intersection with the ground, which 
1141
facilitates many numerical calculations.\\
1142
 
1143
\noindent
1144
The ECMWF fields are easily plotted on pressure surfaces since the vertical co-ordinate of the
1145
underlying data set is essentially based upon pressure. On the other hand, the inversion program 
1146
assumes a cartesian grid with geometrical height (in m) as vertical co-ordinate. Therefore, all needed fields from the
1147
original P file must be interpolated onto a stack of height levels. This transformation is easily
1148
done by means of the hydrostatic equation:
1149
\[
1150
\frac{\partial p}{\partial z} = - \rho \cdot g
1151
\]
1152
 
1153
\vspace{0.3cm}
1154
\noindent
1155
where $\rho$ denotes the density of moist air and $g$ is the Earth's gravity. Note that this 
1156
equation can be re-formulated to one including temperature if the ideal gas equation 
1157
\[ 
1158
p = \rho \cdot R_d \cdot T_v
1159
\]
1160
is used and $\rho$ replaced.  Here $R_d$ is the ideal gas constant of dry air and $T_v$ is the virtual temperature,
1161
i.e. the temperature corrected for the water vapour contents of the air. The definition of
1162
virtual temperature takes into account the specific humidity of an air parcel and its (sensible)
1163
temperature (see for instance Wallace and Hobbs, 1977):\\
1164
\[
1165
T_v = T \cdot \{ 1 - \frac{q}{\epsilon} \cdot (1 - \epsilon) \}^{-1} \approx
1166
      T \cdot ( 1 + \epsilon \cdot q )
1167
\]
1168
 
1169
\vspace{0.3cm}
1170
\noindent
1171
where $T$ is the temperature (in K), $q$ the specific humidity (in kg/kg), $\epsilon=R_d/R_v$ is the ratio of the gas constant for dry ($R_d$) air and water vapour ($R_v$). \\ 
1172
 
1173
\noindent
1174
With the previous definitions, the hydrostatic equation can be integrated vertically to get
1175
the height as a function of the pressure p:
1176
 
1177
\[
1178
z(p) = z_{ref} - \frac{R_d}{g} \cdot \int_{\log(p_{ref})}^{\log(p)} T_v \cdot d\log(p)
1179
\]
1180
 
1181
\vspace{0.3cm}
1182
\noindent
1183
where $z_{ref}$ and $p_{ref}$ denote the reference level. If several reference levels are given
1184
(for example at 850, 500 and 250\,hPa, see Fig.\,7) the integration can be performed from the nearest 
1185
reference level to the specified pressure level. Note that at least one reference level 
1186
must be given, i.e. at one pressure level the geometrical height must be known.  
1187
Typically, this correspondence is known for the 500\,hPa level (see Fig.\,\ref{hydro}). As a result
1188
of the integration, the geometrical height is given as a function of the pressure at all points
1189
of the model grid.\\
1190
 
1191
\begin{figure}[t]
1192
\begin{center}
1193
\begin{minipage}[t]{7.5cm}
1194
  \ForceWidth{1.0\textwidth}
1195
  \BoxedEPSF{pro_t_70w40n_20060115_18.eps}
1196
\end{minipage}
1197
\hspace{0.5cm}
1198
\begin{minipage}[t]{7.5cm}
1199
  \ForceWidth{1.0\textwidth}
1200
  \BoxedEPSF{pro_q_70w40n_20060115_18.eps}
1201
\end{minipage}
1202
\\
1203
\caption{\it Left: Vertical profile of temperature (in $^\circ$C) in dependence of pressure at 70$^\circ$W
1204
and 40$^\circ$ for 15 January 2006, 18\,UTC. Additionally the reference pressure levels are included with
1205
the corresponding geopotential height (in m). Right: Vertical profile of specific humidity (in g/kg).}
1206
\label{hydro}
1207
\end{center}
1208
\end{figure}
1209
 
1210
\noindent
1211
In addition to the geometrical height at each grid point, the hydrostatic equation can be integrated
1212
downward to obtain a consistent estimate of topography height. In fact, if the surface pressure
1213
$p_s$ is given, the height of the topography is readily determined by\\
1214
 
1215
\[
1216
z(p_s) = z_{ref} - \frac{R_d}{g} \cdot \int_{\log(p_{ref})}^{\log(p_s)} T_v \cdot d\log(p)
1217
\]
1218
 
1219
\vspace{0.3cm}
1220
\noindent
1221
The advantage of the thus determined topography (instead of using the ECMWF topography) is its
1222
consistency.\\
1223
 
1224
\noindent
1225
Having determined the geometrical height $z(i,j,k)$ at each grid point $i,j,k$ in addition to the already known
1226
pressure $p(i,j,k)$, it is straightforward to interpolate a field (temperature, velocity,...) onto an arbitrary height level.
1227
The method adopted here is to lie a natural cubic spline through the grid points along a vertical
1228
profile and then to evaluate the spline at the pre-specified height levels. In detail: The cubic spline at a horizontal grid position $i,j$ is based upon the values $[x_k=z(i,j,k),y_k=T(i,j,k)]$ if temperature $T$ is to be interpolated onto
1229
a stack of height levels. Having determined the associated cubic spline $T_{sp}$, temperature at an arbitrary height $z$
1230
can be calculated by evaluating the cubic spline at this level: $T_{sp}(z)$. The algorithm for the cubic spline is taken from Press et al. (1992).
1231
\\
1232
 
1233
 
1234
\noindent
1235
The interpolation onto height levels is done with the call\\[-0.3cm] 
1236
\begin{center}
1237
\begin{minipage}[t]{13cm}
1238
\begin{verbatim}
1239
inversion.sh prep1
1240
\end{verbatim}
1241
\end{minipage}
1242
\end{center}
1243
 
1244
\vspace{0.3cm}
1245
\noindent
1246
which numerically
1247
integrates the hydrostatic equation and therefore attributes to each grid point not only its
1248
pressure (in hPa) but also its geometrical height (in m). The relevant numerical parameters are taken from the
1249
parameter file {\em inversion.param}, where the following section is essential:\\
1250
\begin{center}
1251
\begin{minipage}[t]{13cm}
1252
\begin{verbatim}
1253
BEGIN GRID
1254
  GEO_ZMIN =    0.;     
1255
  GEO_NZ   =  125 ;
1256
  GEO_DZ   =  200.;
1257
END GRID
1258
\end{verbatim}
1259
\end{minipage}
1260
\end{center}
1261
 
1262
\vspace{0.3cm}
1263
\noindent 
1264
The three parameters describe the new vertical co-ordinate. The lowest levels is assumed to be at ground
1265
(GEO\_ZMIN), the number of vertical levels is 125 (GEO\_NZ) and the vertical resolution is equidistantly
1266
200\,m (GEO\_DZ). Hence, the new vertical grid spans the range from ground up to 25\,km.\\
1267
 
1268
\noindent
1269
The output file H20060115\_18 is a new netcdf file which has now geometrical height as vertical co-ordinate 
1270
and the variables ({U,V,T,Q}) interpolated onto the height levels from surface up to 25\,km. Note that the height of the  topography ({ORO}) is also
1271
determined. If a model level is below the topography, all field values are set to missing data. The following table gives all the variables which are available on the new H file:\\
1272
 
1273
\begin{center}
1274
\begin{tabular}{|l|l|l|}
1275
\hline
1276
Q    & Specific humidity ($kg/kg$) & H20060116\_18 \\
1277
U    & Zonal velocity ($m/s$)      & H20060116\_18 \\
1278
V    & Meridional velocity ($m/s$) & H20060116\_18 \\
1279
T    & Temperature ($^\circ C$)    & H20060116\_18 \\
1280
P    & Pressure ($hPa$)            & H20060116\_18 \\
1281
ORO  & Height of topography ($m$)  & H20060116\_18 \\
1282
\hline
1283
\end{tabular}
1284
\end{center}
1285
 
1286
\begin{figure}[t]
1287
\begin{center}
1288
\begin{minipage}[t]{14cm}
1289
  \vspace{-1cm}
1290
  \ForceWidth{1.0\textwidth}
1291
  \BoxedEPSF{latlon_nh.eps}
1292
\end{minipage}
1293
\\[-0.5cm]
1294
\caption{\it Latitude/longitude grid of the ECMWF P and Z files. For clarity, the grid spacing was reduced to 5 degrees, instead of the 1 degree in the files. Meteorological fields -as for instance
1295
temperature, wind vectors, pressure and geopotential- are given at the intersection of the latitude and
1296
longitude circles. Note how this grid becomes singular toward the north pole.}
1297
\label{latlon}
1298
\end{center}
1299
\end{figure}
1300
 
1301
 
1302
\subsubsection{Rotating to a quasi-cartesian co-ordinate system [prep2]}
1303
 
1304
\begin{figure}[t]
1305
\begin{center}
1306
\begin{minipage}[t]{13cm}
1307
  \ForceWidth{1.0\textwidth}
1308
  \BoxedEPSF{local_cart_grid.eps}
1309
\end{minipage}
1310
\\
1311
\caption{\it Local cartesian grid which is centered at the PV streamer's position and which 
1312
shows much less distortion due to the sphericity of the Earth. The center of the new grid
1313
corresponds to the rotated latitude and longitude (0,0). The boundaries are at $-31^\circ$ and
1314
$+31^\circ$ rotated longitude, and at $-31^\circ$ and $+31^\circ$ rotated latitude.}
1315
\label{localcart}
1316
\end{center}
1317
\end{figure}
1318
 
1319
The input fields are given on a latitude/longitude grid, with -after the previous step- the fields
1320
on an equi-distant grid of height levels. The inversion itself assumes a cartesian grid, hence a 
1321
uniform grid spacing is also assumed in the horizontal directions. This is clearly not the case for the
1322
latitude/longitude grid, as illustrated in Fig.\,\ref{latlon}.
1323
Due to the sphericity of the Earth, the zonal 
1324
grid spacing decreases with increasing geographical latitude. As a remedy to this singularity, all
1325
input fields are transformed to a "quasi-cartesian" grid with its center on the PV structure of
1326
interest. The transformation between the two grids is illustrated in Fig.\,\ref{localcart}. It becomes evident
1327
that the grid distortion is significantly reduced by this step. The formula which relates the two
1328
grids is based upon the co-ordinate transformation given in the Appendix~A (Fortran subroutines {\em lmstolm} and
1329
{\em phstoph}). The geographical latitude/longitude corresponding to a grid point in the rotated (quasi-cartesian) co-ordinate system is obtained in the following way. Firstly, the rotated latitude/longitude $\phi_{rot},\lambda_{rot}$ is transformed into
1330
 
1331
\begin{eqnarray*}
1332
 \lambda'_{rot} & = & 90+lmstolm(\phi_{rot},\lambda_{rot}-90,90+\alpha,-180) \\[0.2cm]
1333
 \phi'_{rot}    & = & phstoph(\phi_{rot},\lambda_{rot}-90,90+\alpha,-180)            
1334
\end{eqnarray*}
1335
 
1336
\vspace{0.3cm}
1337
\noindent
1338
where $\alpha$ is the rotation angle given in the parameter file (CROT, see below). These two
1339
values are then, in a second rotation, transformed into geographical latitude and longitude:
1340
 
1341
\begin{eqnarray*}
1342
 \lambda_{geo} & = & lmstolm(\phi'_{rot},\lambda'_{rot},90-\phi_{cen},\lambda_{cen}-180) \\[0.2cm]
1343
 \phi_{geo}    & = & phstoph(\phi'_{rot},\lambda'_{rot},90-\phi_{cen},\lambda_{cen}-180))            
1344
\end{eqnarray*}
1345
 
1346
\vspace{0.3cm}
1347
\noindent
1348
where the centre of the PV anomaly (the centre of the quasi-cartesian co-ordinate system in geogrpahical
1349
latitude/longitude co-ordinates) is given by $\phi_{cen}$ and $\lambda_{cen}$ (CLAT and CLON in the 
1350
parameter file, see below).\\
1351
 
1352
\begin{figure}[t]
1353
\begin{center}
1354
\begin{minipage}[t]{8cm}
1355
  \ForceWidth{1.0\textwidth}
1356
  \BoxedEPSF{latlon_grid.eps}
1357
\end{minipage}
1358
\hspace{-0.5cm}
1359
\begin{minipage}[t]{8cm}
1360
  \ForceWidth{1.0\textwidth}
1361
  \BoxedEPSF{xy_grid.eps}
1362
\end{minipage}
1363
\\
1364
\caption{\it Quasi-cartesian grid which is centered at the PV streamer's position and which 
1365
shows much less distortion due to the sphericity of the Earth. On the left panel the latitude and
1366
longitude on the Earth surface is shown, on the right panel the x and y co-ordinates in the new
1367
co-ordinate system. Note how the distortion is considerably reduced with the new x,y co-ordinates (right), as compared with the original latitude/longitude co-ordinates (left). Additionally, the topography (in m above sea level) is shown
1368
in color: Clearly discernible is Greenland and the east coast of North America.}
1369
\label{xylatlon}
1370
\end{center}
1371
\end{figure}
1372
 
1373
\noindent
1374
The transformation looks quite complicated, but has an easy geometrical interpretation. In fact, we create a new
1375
latitude/longitude grid, but now longitude and latitude are defined not relative to the Earth's north
1376
pole, but relative to a rotated imaginary "north pole". Therefore, we call the new latitudes/longitudes rotated co-ordinates. The link between the geographical latitude/longitude and
1377
the rotated ones is shown in Fig.\,\ref{xylatlon} for the case study.  Here, the left panel gives the latitude and longitude at the grid positions of the quasi-cartesian grid. The right panel gives the quasi-cartesian co-ordinates x and y, which correspond to the grand-circle distance on the Earth surface.
1378
While the transformation of a scalar quantity (like for instance temperature, pressure, wind speed) is straightforward with the above formulas, the transformation of a vector field is much more
1379
complicated. This is easily illustrated with the following example: Consider a perfectly zonal flow
1380
in the geographical grid, i.e. there is only a wind component along the geographical latitude circles, but none along the geographical longitude circles (hence, in the left panel of Fig.\,14 the velocity vector is parallel to the latitude
1381
circles). In the rotated grid -the quasi-cartesian grid- this
1382
pure zonal velocity is transformed into a wind vector which has components both along the rotated
1383
longitude and latitude circles (i.e. in Fig.\,14 the vector has a component along the horizontal and the
1384
vertical axis).  
1385
In principle, a complicated formula could be derived which gives an explicit expression how the
1386
individual velocity components transform. Here, we adopt a more pragmatic approach: We numerically
1387
determine the local rotation angle between the two orthogonal co-ordinate systems, and subsequently
1388
use these angles to get the transformed velocity components. \\
1389
 
1390
\begin{figure}[t]
1391
\begin{center}
1392
\begin{minipage}[t]{10cm}
1393
  \ForceWidth{1.0\textwidth}
1394
  \BoxedEPSF{coriol_grid.eps}
1395
\end{minipage}
1396
\\
1397
\caption{\it Coriolis parameter (in $10^{-4}s^{-1}$) in the quasi-cartesian co-ordinate frame.
1398
The Coriolis parameter is a local measure for the Earth's rotation. It is constant along
1399
latitude circles. Note that $f$ becomes maximal at the pole and vanishes at the equator. No
1400
PV inversion can be performed if the cartesian grid crosses the equator and hence crosses the
1401
zero isoline of the Coriolis parameter.}
1402
\label{coriol}
1403
\end{center}
1404
\end{figure}
1405
 
1406
\noindent
1407
Of course, the Coriolis parameter must be kept in the transformation to the quasi-cartesian 
1408
co-ordinate frame. Tis parameter is given by:
1409
 
1410
\[
1411
f = 2 \cdot \Omega \cdot sin(\phi)
1412
\]
1413
 
1414
\vspace{0.3cm}
1415
\noindent
1416
where $\Omega$ is the angular velocity of the Earth rotation and $\phi$ is the geographical latitude.
1417
From the definition it is clear that the Coriolis parameter is constant along latitude circles. Furthermore,
1418
it takes its maximum value at the pole and vanishes at the equator. A typical value for the mid-latitudes
1419
is $f=10^{-4}s^{-1}$. For the case study the Coriolis parameter is shown in Fig.\,\ref{coriol}.\\
1420
 
1421
 
1422
 
1423
\noindent
1424
Numerically, the rotation of the fields to the quasi-cartesian co-ordinate frame is done with the
1425
call\\[-0.3cm]
1426
\begin{center}
1427
\begin{minipage}[t]{13cm}
1428
\begin{verbatim}
1429
inversion.sh prep2
1430
\end{verbatim}
1431
\end{minipage}
1432
\end{center}
1433
 
1434
\vspace{0.3cm}
1435
\noindent
1436
The program needs some information from the parameter file. The relevant section is:\\[-0.3cm]
1437
\begin{center}
1438
\begin{minipage}[t]{13cm}
1439
\begin{verbatim}
1440
BEGIN GRID
1441
  ROT_NX   =  250 ;    
1442
  ROT_NY   =  250 ;  
1443
  ROT_DX   =  0.25;     
1444
  ROT_DY   =  0.25;
1445
  CLON     =  -65.;     
1446
  CLAT     =   45.;     
1447
  CROT     =    0.;
1448
END GRID     
1449
\end{verbatim}
1450
\end{minipage}
1451
\end{center}
1452
 
1453
\vspace{0.3cm}
1454
\noindent
1455
The first two parameters (ROT\_NX and ROT\_NY) give the number of grid points in the horizontal directions for
1456
the rotated co-ordinate system. Here it is assumed that the grid has 250 grid points in x and in y direction. Note
1457
that the number of grid points in the z direction needs not to be specified because this information is 
1458
already available on the file H20060115\_18. The new horizontal resolution of the rotated grid is given by the
1459
next two values. They give the resolution in x (ROT\_DX) and in y (ROT\_DY) direction. In the present case these
1460
resolutions are 0.25 degrees, which corresponds to approximately 28\,km, according to the formula\\
1461
 
1462
\[
1463
 0.25 \cdot \frac{2\pi}{360} \cdot R_E \quad \quad \mbox{with the Earth's radius} \quad R_E=6370\,km
1464
\]
1465
 
1466
\vspace{0.3cm}
1467
\noindent
1468
Note that the resolution of the rotated grid is higher than the resolution of the input grid, where a value of
1469
1\,degree is given. Finally, the last three parameters specify where the new co-ordinate system is centered on the
1470
globe. Here, this position is at 65\,W (CLON) and 45\,N (CLAT), i.e. approximately in the centre of the PV streamer
1471
shown in Fig.\,\ref{question}. The last parameter (CROT) allows the new grid to be rotated. At the end of this step, the following fields are available on the R20060115\_18 file:\\[0.2cm]
1472
 
1473
\begin{center}
1474
\begin{tabular}{|l|l|l|}
1475
\hline
1476
Q    & Specific humidity ($kg/kg$) & R20060116\_18 \\
1477
U    & (Rotated) Zonal velocity ($m/s$)      & R20060116\_18 \\
1478
V    & (Rotated) Meridional velocity ($m/s$) & R20060116\_18 \\
1479
T    & Temperature ($^\circ C$)    & R20060116\_18 \\
1480
P    & Pressure ($hPa$)            & R20060116\_18 \\
1481
ORO  & Height of topography ($m$)  & R20060116\_18 \\
1482
LAT  & Geographical latitude      & R20060116\_18 \\
1483
LON  & Geographical longitude      & R20060116\_18 \\
1484
CORIOL  & Coriolis parameter ($1/s$) & R20060116\_18 \\
1485
X    & Cartesian distance from centre along x axis ($km$)  & R20060116\_18 \\
1486
Y    & Cartesian distance from centre along x axis ($km$)      & R20060116\_18 \\
1487
\hline
1488
\end{tabular}
1489
\end{center}
1490
 
1491
 
1492
 
1493
\subsubsection{Calculating secondary fields [prep3]}
1494
 
1495
 
1496
Several additional fields are needed for the PV inversion, the most prominent of course being Ertel's PV itself.
1497
This field can easily derived from the horizontal wind components, the potential temperature and 
1498
the density. Firstly, the potential temperature $\theta$ is calculated from pressure $p$ (in hPa) and 
1499
temperature $T$ (in K) according to its definition:
1500
 
1501
\[
1502
\theta = T \cdot (\frac{p_0}{p})^\kappa 
1503
\]
1504
where the reference pressure is fixed as 1000\,hPa and $\kappa=R/C_p$ is the ratio of the gas constant
1505
for dry air ($R$) and the specific heat at constant pressure ($c_p$). Numerically, this value
1506
is in good approximation: $\kappa=0.286$.
1507
Note that an inherent property of the atmosphere is its stability. This is expressed physically by
1508
a potential temperature which increases with height. Regions where potential temperature decreases
1509
with height are hydrostatically unstable and the pre-requisites for a PV inversion are not fulfilled
1510
there. \\
1511
 
1512
 
1513
\noindent
1514
The density $\rho$ (in kg/m$^3$) of the air is determined by the ideal gas equation for air.\\[-0.3cm] 
1515
 
1516
\[
1517
\rho = \frac{p}{R_D \cdot T}
1518
\]
1519
 
1520
\vspace{0.3cm}
1521
\noindent
1522
where $R_d$ is the gas constant for dry air and p and T are the pressure (in Pa) and temperature
1523
(in K), respectively.\\
1524
 
1525
\noindent
1526
With this definition of potential temperature and density, Ertel's PV is readily calculated according to:
1527
 
1528
\[
1529
PV = -\frac{1}{\rho} \cdot ( \vec{\xi} + f \cdot \hat{k} ) \cdot \vec{\nabla}{\theta} 
1530
\]
1531
 
1532
\vspace{0.3cm}
1533
\noindent
1534
Here, $\hat{k}$ is a unit vector pointing in the vertical direction, $f$ is the planetary vorticity
1535
(typically $10^{-4} s^{-1}$ in the extra-tropics),
1536
i.e. the vorticity due to the Earth's rotation, and $\vec{\xi}$ is the curl  $\vec{\nabla} \times \vec{u}$
1537
of the wind vector $\vec{u}$. In large-scale dynamics vertical wind components can be neglected in the
1538
above formula. The final expression for Ertel's PV then reduces to:
1539
 
1540
\[
1541
PV  =   -\frac{1}{\rho} \cdot [ ( \frac{\partial v}{\partial x} - \frac{\partial u}{\partial y} + f ) 
1542
        \cdot \frac{\partial \theta}{\partial z}
1543
        + \frac{\partial u}{\partial z} \cdot \frac{\partial \theta}{\partial y} 
1544
        - \frac{\partial v}{\partial z} \cdot \frac{\partial \theta}{\partial x}] 
1545
\]
1546
 
1547
\vspace{0.3cm}
1548
\noindent
1549
In many cases the latter two terms (involving vertical derivatives of horizontal velocity) can
1550
also be neglected. Here, we keep these terms in order to have a higher-order approximation to Ertel's
1551
PV. Note that the first term on the right side includes the aforementioned vertical
1552
derivative of potential temperature. The stability criterion forces this derivative to be positive. 
1553
The theory of atmospheric turbulence leads to a still stronger constraint. Indeed, the whole PV
1554
must be positive (on the northern hemisphere), since otherwise symmetric instability will set in and 
1555
turbulently adjust the atmosphere to a state where PV is non-negative.\\ 
1556
 
1557
\begin{figure}[t]
1558
\begin{center}
1559
\begin{minipage}[t]{7.8cm}
1560
  \ForceWidth{1.0\textwidth}
1561
  \BoxedEPSF{zus_pv_k40.eps}
1562
\end{minipage}
1563
\hspace{0cm}
1564
\begin{minipage}[t]{7.8cm}
1565
  \ForceWidth{1.0\textwidth}
1566
  \BoxedEPSF{zus_th_k40.eps}
1567
\end{minipage}
1568
\\[0cm]
1569
\begin{minipage}[t]{7.8cm}
1570
  \ForceWidth{1.0\textwidth}
1571
  \BoxedEPSF{zus_nsq_k40.eps}
1572
\end{minipage}
1573
\hspace{0cm}
1574
\begin{minipage}[t]{7.8cm}
1575
  \ForceWidth{1.0\textwidth}
1576
  \BoxedEPSF{zus_rho_k40.eps}
1577
\end{minipage}
1578
\\[0cm]
1579
\caption{\it Secondary fields: 
1580
Ertel's potential vorticity (upper-left, in $pvu$), potential temperature (upper-right, in K), 
1581
squared Brunt-V\"ais\"al\"a frequency (lower-left, in $10^{-4} s^{-2}$) and density (lower-right, 
1582
in $kg m^{-3}$). The stratification is a measure of the vertical stratification of the atmosphere. 
1583
High values correspond
1584
to strong stratification and suppression of vertical motions. Note how the stratospheric PV streamer is
1585
associated with enhanced stratification. The density, on the other hand, is slightly decreased within the
1586
streamer's region. All
1587
fields are plotted on model level 40, corresponding to a geometrical height of approximately 8\,km.
1588
}
1589
\label{secfield}
1590
\end{center}
1591
\end{figure}
1592
 
1593
\noindent
1594
The last field which is needed for the PV inversion is strongly related to the vertical derivative
1595
of potential temperature. It is the so-called squared Brunt-V\"as\"ala frequency (or stratification), 
1596
defined by
1597
 
1598
\[
1599
N^2 = \frac{g}{\theta} \cdot \frac{\partial \theta}{\partial z}
1600
\]
1601
 
1602
\vspace{0.3cm}
1603
\noindent
1604
where $g$ is the Earth's gravity. Following the above discussion, a necessary condition for
1605
atmospheric stability is that $N^2$ is non-negative. Note that strong stratifications counteract
1606
vertical motions. Particularly strong stratifications are typically found in the stratosphere,
1607
($N^2 \approx 10^{-4} s^{-2}$) whereas the troposphere is considerably weaker stratified 
1608
($N^2 \approx 10^{-4} s^{-2}$).\\
1609
 
1610
\noindent
1611
All these secondary fields are calculated with the call to \\[-0.3cm]
1612
\begin{center}
1613
\begin{minipage}[t]{13cm}
1614
\begin{verbatim}
1615
inversion.sh prep3
1616
\end{verbatim}
1617
\end{minipage}
1618
\end{center}
1619
 
1620
\vspace{0.3cm}
1621
\noindent
1622
After this step, four additional variables are available on the file R20060116\_18. They are listed in the following table and are shown in Fig.\,\ref{secfield}:\\
1623
 
1624
 
1625
\begin{center}
1626
\begin{tabular}{|l|l|l|}
1627
\hline
1628
TH     & Potential temperature ($K$) & R20060116\_18 \\
1629
PV     & Ertel's potential vorticity ($pvu$)      & R20060116\_18 \\
1630
NSQ    & Squared Brunt-Vai\"al\"a frequency ($1/s^2$)  & R20060116\_18 \\
1631
RHO    & Air density ($kg/m^3$)    & R20060116\_18 \\
1632
\hline
1633
\end{tabular}
1634
\end{center}
1635
\vspace{0.5cm}
1636
 
1637
\subsubsection{Identification of a PV anomaly [prep4]}
1638
 
1639
 
1640
Having calculated Ertel's PV on height levels, it is now time to specify the modified PV distribution
1641
which should be obtained by the PV inversion. In short, a PV anomaly has to be identified from the original
1642
PV field and then the effect of this anomaly on the potential temperature and velocity has to be determined.\\
1643
 
1644
\noindent
1645
There is no unique and fool-proof method how to specify an anomaly. Indeed, this step strongly depends on 
1646
the features which should be studied. In the present example, we look at a so-called stratospheric PV streamer and the aim
1647
is to remove this streamer from the PV field and thereby to quantify its influence on the stability and wind
1648
fields in the middle and lower troposphere. Figure\,ref{box} shows the PV in a horizontal cross-section at 8\,km
1649
height. The PV streamer is clearly discernible as a
1650
southward intrusion of high-PV, i.e. stratospheric air toward the south. In the vertical the streamer reaches
1651
down to levels of 6\,km (not shown).\\
1652
 
1653
\noindent
1654
The extraction of the streamer is performed by filtering the original PV field. This filtering is done
1655
by the call\\[-0.3cm]
1656
\begin{center}
1657
\begin{minipage}[t]{13cm}
1658
\begin{verbatim}
1659
inversion.sh prep4
1660
\end{verbatim}
1661
\end{minipage}
1662
\end{center}
1663
 
1664
\vspace{0.3cm}
1665
\noindent
1666
 Essentially, the program performs 
1667
the following two steps: Choose a grid point within the filtering box (see Fig\,ref{box}), and 
1668
replace the PV value at this grid point by the zonal mean of all PV values. Formally this might be 
1669
written as:
1670
 
1671
\[
1672
PV \quad \rightarrow \quad <PV>
1673
\]
1674
 
1675
\vspace{0.3cm}
1676
\noindent
1677
where $<>$ denotes the filtering operator which applies only within the filtering box. 
1678
The anomaly could now be determined as the difference of the original and filtered PV:
1679
It turns out that this simple difference $AN=PV-<PV>$ would produce not only  the desired positive anomaly associated 
1680
with the streamer, but also surrounding negative PV anomalies. We neglect all these negative anomalies 
1681
by simply setting them to zero. \\[-0.2cm]
1682
 
1683
\[
1684
AN = PV - <PV> \quad \mbox{and} \quad AN \rightarrow AN^+. 
1685
\]
1686
 
1687
\begin{figure}[t]
1688
\begin{center}
1689
\begin{minipage}[t]{13cm}
1690
  \ForceWidth{1.0\textwidth}
1691
  \BoxedEPSF{box.eps}
1692
\end{minipage}
1693
\\
1694
\caption{\it Ertel's PV on level $k=40$ (corresponding to a height of 8\,km). Additionally the horizontal
1695
grid is shown, and the filtering box is marked with the bold black lines.}
1696
\label{box}
1697
\end{center}
1698
\end{figure}
1699
 
1700
\vspace{0.3cm}
1701
\noindent
1702
The outcome $AN^+$ is a "well-behaved" PV anomaly, which in turn is used to finally define the modified $PV^M$, i.e.
1703
the PV field which should be obtained by the inversion:\\
1704
 
1705
\[
1706
PV^M = PV - AN^+
1707
\]
1708
 
1709
\vspace{0.3cm}
1710
\noindent
1711
The original $PV$, modified $PV^M$ and the anomaly $AN^+$ is shown in Fig.\,\ref{ano} at several model levels. Note how the PV streamer of Fig.\,\ref{question} is well captured by the PV anomaly
1712
 
1713
 
1714
\begin{figure}[t]
1715
\begin{center}
1716
\begin{minipage}[t]{5cm}
1717
  \ForceWidth{1.0\textwidth}
1718
  \BoxedEPSF{pv_org_k20.eps}
1719
\end{minipage}
1720
\hspace{0.0cm}
1721
\begin{minipage}[t]{5cm}
1722
  \ForceWidth{1.0\textwidth}
1723
  \BoxedEPSF{pv_mod_k20.eps}
1724
\end{minipage}
1725
\hspace{0.0cm}
1726
\begin{minipage}[t]{5cm}
1727
  \ForceWidth{1.0\textwidth}
1728
  \BoxedEPSF{pv_ano_k20.eps}
1729
\end{minipage}
1730
\\
1731
\begin{minipage}[t]{5cm}
1732
  \ForceWidth{1.0\textwidth}
1733
  \BoxedEPSF{pv_org_k30.eps}
1734
\end{minipage}
1735
\hspace{0.0cm}
1736
\begin{minipage}[t]{5cm}
1737
  \ForceWidth{1.0\textwidth}
1738
  \BoxedEPSF{pv_mod_k30.eps}
1739
\end{minipage}
1740
\hspace{0.0cm}
1741
\begin{minipage}[t]{5cm}
1742
  \ForceWidth{1.0\textwidth}
1743
  \BoxedEPSF{pv_ano_k30.eps}
1744
\end{minipage}
1745
\\
1746
\begin{minipage}[t]{5cm}
1747
  \ForceWidth{1.0\textwidth}
1748
  \BoxedEPSF{pv_org_k40.eps}
1749
\end{minipage}
1750
\hspace{0.0cm}
1751
\begin{minipage}[t]{5cm}
1752
  \ForceWidth{1.0\textwidth}
1753
  \BoxedEPSF{pv_mod_k40.eps}
1754
\end{minipage}
1755
\hspace{0.0cm}
1756
\begin{minipage}[t]{5cm}
1757
  \ForceWidth{1.0\textwidth}
1758
  \BoxedEPSF{pv_ano_k40.eps}
1759
\end{minipage}
1760
\\
1761
\begin{minipage}[t]{5cm}
1762
  \ForceWidth{1.0\textwidth}
1763
  \BoxedEPSF{pv_org_k50.eps}
1764
\end{minipage}
1765
\hspace{0.0cm}
1766
\begin{minipage}[t]{5cm}
1767
  \ForceWidth{1.0\textwidth}
1768
  \BoxedEPSF{pv_mod_k50.eps}
1769
\end{minipage}
1770
\hspace{0.0cm}
1771
\begin{minipage}[t]{5cm}
1772
  \ForceWidth{1.0\textwidth}
1773
  \BoxedEPSF{pv_ano_k50.eps}
1774
\end{minipage}
1775
\\
1776
\caption{\it Original (left), modified (middle) and anomaly (right) Ertel's PV for 16 January 2006, 18\,UTC. The different rows correspond to the levels (from top to bottom) 20, 30 40 50 corresponding to the heights 4, 6, 8 and 10\,km.}
1777
\label{ano}
1778
\end{center}
1779
\end{figure}
1780
 
1781
\noindent
1782
The filtering 
1783
is characterised by the values in six lines of the parameter file. \\[-0.3cm]
1784
\begin{center}
1785
\begin{minipage}[t]{13cm}
1786
\begin{verbatim}
1787
BEGIN ANOMALY
1788
  BOX_XMIN = -1200.;    
1789
  BOX_XMAX =  1200.;
1790
  BOX_YMIN = -1200.;
1791
  BOX_YMAX =  1200.;
1792
  BOX_ZMIN =  2000.;
1793
  BOX_ZMAX = 10000.;
1794
  NFILTER  =     5 ;    
1795
  BOUND_XY =   500.;    
1796
  BOUND_Z  =   500.;   
1797
END ANOMALY       
1798
\end{verbatim}           
1799
\end{minipage}
1800
\end{center}
1801
 
1802
\vspace{0.6cm}
1803
\noindent
1804
The lines specify the filtering box in the west-east direction (from -1200\,km to
1805
1200\,km, from BOX\_XMIN to BOX\_XMAX), in the south-north direction (from -1200\,km to 1200\,km, from BOX\_YMIN to BOX\_YMAX), and in the vertical
1806
(from 2000\,m to 10000\,m, from BOX\_ZMIN to BOX\_ZMAX). The filtering is not only applied once, but
1807
(as given by NFILTER) $n=5$ times. 
1808
Finally the last two parameters describe the handling at the boundaries of the filtering box. In fact, 
1809
it is advantageous to force the anomaly PV to zero at the boundaries of the box. This is accomplished 
1810
by multiplying the PV anomaly with a function f$_{\partial F}$ which is 0 without the box, then monotonically increases 
1811
to 1 within a boundary zone, and then is constant 1 in the interior of the box. The width of the boundary 
1812
zone is given as 500\,km in the horizontal direction (BOUND\_XY) and 500\,m in the vertical direction (BOUND\_Z).\\
1813
 
1814
\noindent
1815
The modified PV field and the anomaly are written to the R20060116\_18 file. 
1816
Additionally the boundary values are written. The velocity fields must be specified on the lateral
1817
boundaries, whereas the potential temperature anomaly must be specified on the lower and upper boundary. In
1818
the present settings, all boundary values are zero. The following table lists all fields which are additionally
1819
written to the R file.
1820
 
1821
\begin{center}
1822
\begin{tabular}{|l|l|l|}
1823
\hline
1824
PV\_FILT     & Modified Ertel's PV ($pvu$) & R20060116\_18 \\
1825
PV\_ANOM     & Anomaly in Ertel' PV ($pvu$)      & R20060116\_18 \\
1826
UU\_ANOM     & Lateral boundary condition of zonal wind($m/s$)  & R20060116\_18 \\
1827
VV\_ANOM     & Lateral boundary condition of meridional wind ($m/s$)    & R20060116\_18 \\
1828
TH\_ANOM     & Upper and lower boundary of potential temperature ($K$)  & R20060116\_18 \\
1829
\hline
1830
\end{tabular}
1831
\end{center}
1832
\vspace{0.5cm}
1833
 
1834
 
1835
\subsubsection{Splitting into different files [prep5]}
1836
 
1837
\begin{figure}[t]
1838
\begin{center}
1839
\begin{minipage}[t]{11.5cm}
1840
\hspace{-2.5cm}
1841
  \ForceWidth{1.0\textwidth}
1842
  \BoxedEPSF{splitting.eps}
1843
\end{minipage}
1844
\\
1845
\caption{\it Splitting of the initial R20060116\_18 file into four different files with
1846
prefix ORG, MOD, ANO and REF.  }
1847
\label{split}
1848
\end{center}
1849
\end{figure}
1850
 
1851
\noindent
1852
So far, all new fields are written to the R20060116\_18 file. In the further steps it is
1853
advantageous to split this file into several files. One file should get all original 
1854
fields, one only the modified fields and one only anomaly fields. Additionally, some
1855
"static" fields, such as orography and Coriolis parameter, should be written to a special
1856
file, from here on called the reference file.\\
1857
 
1858
\noindent
1859
The splitting is done with the call\\[-0.3cm]
1860
\begin{center}
1861
\begin{minipage}[t]{15cm}
1862
\begin{verbatim}
1863
     inversion.sh prep4
1864
\end{verbatim} 
1865
\end{minipage}
1866
\end{center}
1867
 
1868
\vspace{0.3cm}
1869
\noindent 
1870
The result of this step is a set of new netcdf files with prefix ORG, MOD, ANO and REF. The following table
1871
(and Fig.\,\ref{split}) illustrates which variables are written to which file. Note that some variables are renamed in this process.
1872
\\
1873
 
1874
\begin{center}
1875
\begin{tabular}{|r|r|r|r|}
1876
  \hline
1877
  Old variable name & New variable name & Source file & Destination file \\
1878
  \hline
1879
  PV        & PV       & R20060115\_18   & ORG\_20060116\_18 \\ 
1880
  U         & U        & R20060115\_18   & ORG\_20060116\_18 \\
1881
  V         & V        & R20060115\_18   & ORG\_20060116\_18 \\
1882
  TH        & TH       & R20060115\_18   & ORG\_20060116\_18 \\
1883
  Q         & Q        & R20060115\_18   & ORG\_20060116\_18 \\
1884
  P         & P        & R20060115\_18   & ORG\_20060116\_18 \\
1885
  T         & T        & R20060115\_18   & ORG\_20060116\_18 \\
1886
  \hline
1887
  PV\_FILT   & PV\_AIM   & R20060115\_18   & MOD\_20060116\_18 \\
1888
  U         & U        & R20060115\_18   & MOD\_20060116\_18 \\
1889
  V         & V        & R20060115\_18   & MOD\_20060116\_18 \\
1890
  Q         & Q        & R20060115\_18   & MOD\_20060116\_18 \\
1891
  P         & P        & R20060115\_18   & MOD\_20060116\_18 \\
1892
  T         & T        & R20060115\_18   & MOD\_20060116\_18 \\
1893
  NSQ       & NSQ      & R20060115\_18   & MOD\_20060116\_18 \\
1894
  RHO       & RHO      & R20060115\_18   & MOD\_20060116\_18 \\
1895
  TH        & TH       & R20060115\_18   & MOD\_20060116\_18 \\
1896
  \hline
1897
\end{tabular}  
1898
 
1899
\begin{tabular}{|r|r|r|r|} 
1900
  \hline
1901
  Old variable name & New variable name & Source file & Destination file \\
1902
   \hline
1903
  PV\_ANOM   & PV       & R20060115\_18   & ANO\_20060115\_18 \\
1904
  TH\_ANOM   & TH       & R20060115\_18   & ANO\_20060115\_18 \\
1905
  UU\_ANOM   & U        & R20060115\_18   & ANO\_20060115\_18 \\
1906
  VV\_ANOM   & V        & R20060115\_18   & ANO\_20060115\_18 \\
1907
  \hline
1908
  ORO       & ORO      & R20060115\_18   & REF\_20060115\_18 \\
1909
  X         & X        & R20060115\_18   & REF\_20060115\_18 \\
1910
  Y         & Y        & R20060115\_18   & REF\_20060115\_18 \\
1911
  LAT       & LAT      & R20060115\_18   & REF\_20060115\_18 \\
1912
  LON       & LON      & R20060115\_18   & REF\_20060115\_18 \\
1913
  CORIOL    & CORIOL   & R20060115\_18   & REF\_20060115\_18 \\
1914
  \hline
1915
\end{tabular}
1916
\end{center}
1917
\vspace{0.5cm}
1918
 
1919
 
1920
 
1921
\subsubsection{Specifying the reference profile [prep6]}
1922
 
1923
 
1924
A reference vertical profile must be
1925
defined for the PV inversion. The profile should be as near as possible to the real profile. Any quantity is defined in
1926
the inversion as a deviation from this profile. Hence if the profile is well chosen only small
1927
deviations can be expected and the assumed linearisation (see later) is better. Physically we determine
1928
a good reference profile by taking the area mean over the subdomain, i.e at every model level the
1929
mean over potential temperature $\theta$, squared Brunt Vais\"al\"a  frequency $N^2$ and density $\rho$
1930
is calculated. The resulting profiles are shown in Fig.\,\ref{reference} as a function of height, and additionally 
1931
as a function of pressure.\\ 
1932
 
1933
\noindent
1934
Note how the density of the reference profile exponentially decreases 
1935
decreases with increasing height. If pressure is used as vertical co-ordinate, the decrease in density
1936
is essentially linear with decreasing pressure. The profile of potential temperature increases with
1937
increasing height: This is a necessary condition for the convective stability of the air column. In fact,
1938
any region where potential temperature decreases with increasing height is unstable and characterised by high levels
1939
of turbulence. The stability expressed by this potential temperature increase with height is numerically
1940
determined by the so-called (squared) Brunt-Vais\"al\"a frequency, shown in the left panels. Since this 
1941
field directly goes into the solution of the quasi-geostrophic PV equation (see section~3.5), it must
1942
be guaranteed that it always remains positive.\\
1943
 
1944
\begin{figure}[t]
1945
\begin{center}
1946
\begin{minipage}[t]{16cm}
1947
  \ForceWidth{1.0\textwidth}
1948
  \BoxedEPSF{reference.eps}
1949
\end{minipage}
1950
\\
1951
\caption{\it Reference profiles of potential temperature $\theta$, squared Brunt Vais\"al\"a frequency $N^2$ and density $\rho$ as a function of height (upper panels) and pressure (lower panels). The
1952
reference profiles correspond to the area-averaged values over the inversion subdomain. }
1953
\label{reference}
1954
\end{center}
1955
\end{figure}
1956
 
1957
\noindent
1958
The reference profile is calculated with the call to \\[-0.3cm]
1959
\begin{center}
1960
\begin{minipage}[t]{13cm}
1961
\begin{verbatim}
1962
inversion.sh prep5
1963
\end{verbatim}
1964
\end{minipage}
1965
\end{center}
1966
 
1967
\vspace{0.3cm}
1968
\noindent
1969
After his step some additional variables are available on the REF file. These are:\\
1970
 
1971
\begin{center}
1972
\begin{tabular}{|l|l|l|}
1973
\hline
1974
NSQREF     & Reference squared Brunt-Vais\"al\"a frequency ($1/s^2$) & MOD\_20060116\_18 \\
1975
RHOREF     & Reference air density ($kg/m^3$)      & MOD\_20060116\_18 \\
1976
PREREF     & Reference pressure ($hPa$)  & MOD\_20060115\_18 \\
1977
THETAREF     & Reference potential temperature ($K$)    & MOD\_20060116\_18 \\
1978
ZREF        & Reference geopotential height ($m$)  & MOD\_20060116\_18 \\
1979
\hline
1980
\end{tabular}
1981
\end{center}
1982
\vspace{0.5cm}
1983
 
1984
\subsubsection{Adding the coastlines [prep7]}
1985
 
1986
\begin{figure}[t]
1987
\begin{center}
1988
\begin{minipage}[t]{7.8cm}
1989
  \ForceWidth{1.0\textwidth}
1990
  \BoxedEPSF{coast1.eps}
1991
\end{minipage}
1992
\hspace{0.0cm}
1993
\begin{minipage}[t]{7.8cm}
1994
  \ForceWidth{1.0\textwidth}
1995
  \BoxedEPSF{coast2.eps}
1996
\end{minipage}
1997
\\
1998
\caption{\it Coastlines transformed into the quasi-cartesian co-ordinate system. In the left panel, the
1999
coastlines are shown in a system with rotated longitude and latitude as axes, in the right panel they
2000
are shown in a x/y co-ordinate system.}
2001
\label{coastline}
2002
\end{center}
2003
\end{figure}
2004
 
2005
At this stage it is not possible to plot the continental coastlines in the quasi-cartesian co-ordinate frame.
2006
In fact, this becomes only feasible if the geographical coastlines (as given in latitude/longitude co-ordinates) are transformed into the new quasi-cartesian co-ordinate system. This is done 
2007
with the call\\[-0.3cm]
2008
\begin{center}
2009
\begin{minipage}[t]{13cm}
2010
\begin{verbatim}
2011
inversion.sh prep7
2012
\end{verbatim}
2013
\end{minipage}
2014
\end{center}
2015
 
2016
\vspace{0.3cm}
2017
\noindent 
2018
In Fig.\,\ref{coastline} the transformed co-ordinates are shown. On the left panel, the co-ordinate axis are the rotated longitude and latitude and on the left panel they are given by the distance (in km) from the co-ordinate's center (see Fig.\,14).
2019
In this step the following additional fields are written to the REF\_20060116\_18 file:
2020
 
2021
\begin{center}
2022
\begin{tabular}{|l|l|l|}
2023
\hline
2024
COAST\_LON     & Longitude of coastline & REF\_20060115\_18 \\
2025
COAST\_LAT     & Latitude of coastline  & REF\_20060115\_18 \\
2026
COAST\_RLON     & Rotated longitude of coastline & REF\_20060115\_18 \\
2027
COAST\_RLAT     & Rotated latitude of coastline  & REF\_20060115\_18 \\
2028
COAST\_X        & X co-ordinate of coastline      & REF\_20060115\_18 \\
2029
COAST\_Y        & Y co-ordinate of coastline      & REF\_20060115\_18 \\
2030
\hline
2031
\end{tabular}
2032
\end{center}
2033
 
2034
\vspace{0.3cm}
2035
\noindent
2036
The coastline in geographical co-ordinates is taken from a global data set which can be retrieved from
2037
the National Geophysical Data Center
2038
(rimmer.ngdc.noaa.gov/coast/). Only, the part of the coastlines inside the rotated co-ordinate system are specified. This allows
2039
an efficient plotting of the coastlines. If Matlab is used as a visualisation tool, the plotting can be
2040
done with the following few lines, depending whether rotated longitude/latitude or X/Y is used as co-ordinate
2041
axes.\\[0.0cm]
2042
\begin{center}
2043
\begin{minipage}[t]{13cm}
2044
\begin{verbatim}
2045
%Read input file
2046
inp = ncget('REF_20060116_18');
2047
 
2048
% Plot continental boundaries (rotated latitude/longitude)
2049
figure;
2050
plot(inp.COAST_RLON.data,inp.COAST_RLAT.data,'k');
2051
 
2052
% Plot continental boundaries (x/y)
2053
figure;
2054
plot(inp.COAST_X.data,inp.COAST_Y.data,'k');
2055
\end{verbatim}
2056
\end{minipage}
2057
\end{center}
2058
 
2059
\vspace{0.6cm}
2060
\noindent
2061
The first command reads the reference file. All variables and parameters are then available in the Matlab structure inp. The COAST subfields of this structure can then immediately be plotted. Sometimes it turns
2062
out to be better to set all co-ordinates outside the plotting domain to NaN. 
2063
 
2064
 
2065
\subsubsection{Moving the files to the run directory [prep8]}
2066
 
2067
At this stage, all essential preparatory steps for the PV inversion are done: The modified PV field is defined, the
2068
boundary conditions are written and the reference profile is available. In this last step, the files are moved from the 
2069
input directory to the run directory, where all iterations of the PV inversions are performed. The moving of the
2070
files is done with\\[-0.3cm]
2071
\begin{center}
2072
\begin{minipage}[t]{13cm}
2073
\begin{verbatim}
2074
inversion.sh prep8
2075
\end{verbatim}
2076
\end{minipage}
2077
\end{center}
2078
 
2079
\vspace{0.3cm}
2080
\noindent
2081
The ORG, MOD, ANO and REF files are now available in the run directory (see Fig.\,8). No further processes are
2082
run in the input directory.
2083
 
2084
 
2085
 
2086
\subsection{Inversion - Iterative steps toward modified PV field [pvin]}
2087
 
2088
\begin{figure}[t]
2089
\begin{center}
2090
\begin{minipage}[t]{14cm}
2091
  \ForceWidth{1.0\textwidth}
2092
  \BoxedEPSF{iterations.eps}
2093
\end{minipage}
2094
\\
2095
\caption{\it Flowchart of the different inversion steps. Additionally, to the right of the different blocks, the
2096
"flow" of information is illustrated. For instance, MOD $\rightarrow$ ANO means that the input information
2097
is taken from the MOD file and then written to the ANO file. }
2098
\label{iterations}
2099
\end{center}
2100
\end{figure}
2101
 
2102
The following steps build the core of the PV inversion. An interior anomaly of Ertel's PV
2103
and the boundary values for the inversion were specified in the previous preparatory steps.
2104
Now the flow anomalies (wind vectors, temperature, pressure and potential temperature) associated
2105
with this PV anomaly has to be determined. This is the aim of the inversion. More specifically
2106
the process must be split again into several distinct steps. These different steps are shown as a flowchart in
2107
Fig.\,\ref{iterations}. 
2108
 
2109
 
2110
 
2111
 
2112
\subsubsection{Calculation of secondary fields [pvin1]}
2113
 
2114
Secondary fields have to be calculated. These fields are potential temperature, potential vorticity
2115
density and squared Brunt-Vais\"al\"a frequency. The details of these calculations were already presented 
2116
in section~4.4.3, and are not repeated here. All the secondary fields are calculated with the call\\[-0.3cm]
2117
\begin{center}
2118
\begin{minipage}[t]{13cm}
2119
\begin{verbatim}
2120
inversion.sh pvin1
2121
\end{verbatim}
2122
\end{minipage}
2123
\end{center}
2124
 
2125
\vspace{0.3cm}
2126
\noindent
2127
The call subsequently calculates potential temperature, squared Brunt-V\"as\"ala frequency, density  and Ertel's PV. Where the height levels are below topography,
2128
missing data values are written. The following table lists the new fields which are written to the MOD file:
2129
 
2130
\begin{center}
2131
\begin{tabular}{|l|l|l|}
2132
\hline
2133
TH     & Potential temperature ($K$) & MOD\_20060116\_18 \\
2134
PV     & Ertel's potential vorticity ($pvu$)      & MOD\_20060116\_18 \\
2135
NSQ    & Squared Brunt-Vai\"al\"a frequency ($1/s^2$)  & MOD\_20060116\_18 \\
2136
RHO    & Air density ($kg/m^3$)    & MOD\_20060116\_18 \\
2137
\hline
2138
\end{tabular}
2139
\end{center}
2140
\vspace{0.5cm}
2141
 
2142
\subsubsection{Transforming Ertel's PV to quasi-geostrophic PV [pvin2]}
2143
 
2144
\begin{figure}[t]
2145
\begin{center}
2146
\begin{minipage}[t]{14.0cm}
2147
\hspace{-1.0cm}
2148
  \ForceWidth{1.0\textwidth}
2149
  \BoxedEPSF{pv_to_qgpv.eps}
2150
\end{minipage}
2151
\\
2152
\caption{\it Determination of Ertel's PV anomaly and its transformation into
2153
an anomaly of quasi-geostrophic PV. The calculated Ertel's PV is subtracted from 
2154
Ertel's PV  which should be reached, and then this difference is transformed into
2155
an approximate quasi-geostrophic PV. The input is taken from the MOD file, and the
2156
output is written to the ANO file.}
2157
\label{pvtoqg}
2158
\end{center}
2159
\end{figure}
2160
 
2161
So far only Ertel's PV was used. On the other hand, the inverson problem is formulated for the
2162
quasi-geostrophic PV. Therefore a conversion between the two has to be done. In a first approximation
2163
Ertels's PV is given by (for clarity it is denoted as EPV in this section):\\[-0.2cm]
2164
 
2165
\[
2166
EPV  =   \frac{1}{\rho} \cdot ( \xi + f ) \cdot \frac{\partial \theta}{\partial z}        
2167
\]
2168
 
2169
\vspace{0.3cm}
2170
\noindent
2171
where $\rho$ is the density, $\xi$ the relative vorticity, $f$ the Coriolis parameter and $\theta$ the potential temperature.
2172
Ertel's PV can be expressed in terms of the reference profile and deviation thereof. If we set
2173
$\theta=\theta_0 + \theta^*$ and $\rho=\rho_0 + \rho^*$, consider the definition
2174
of the reference stratification $N^2_0=g/\theta_0 \cdot \partial {\theta_0}/{\partial z}$ and furthermore
2175
apply the quasi-geostrophic assumption $\xi \ll f$, the following approximate
2176
expression hold in first order (we have neglected the density perturbation $\rho^*$ in the denominator):\\[-2mm]
2177
 
2178
\[
2179
EPV = \frac{\theta_0 N_0^2}{g \rho_0} \cdot (\xi + \frac{f g}{\theta_0 N_0^2} \cdot \frac{\partial \theta^*}{\partial z})
2180
\]
2181
 
2182
\vspace{0.3cm}
2183
\noindent
2184
On the other hand, the quasi-geostrophic PV (denoted by qgPV in this section) is defined by the streamfunction $\psi$\\[-0.2cm]
2185
 
2186
\[ 
2187
qgPV = \frac{\partial^2\psi}{\partial x^2} + \frac{\partial^2\psi}{\partial y^2} +
2188
    \frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} (\frac{\rho_0}{N_0^2} 
2189
    \cdot \frac{\partial \psi}{\partial z} )
2190
\]
2191
 
2192
\vspace{0.3cm}
2193
\noindent
2194
where $\rho_0$ and $N_0^2$ denotes a reference profile of density and stratification (as defined in the
2195
preparatory steps and written to the REF file). The following relationship between the streamfunction and the meteorological fields persists:\\[-2mm]
2196
 
2197
\[
2198
g \cdot \frac{\theta^*}{\theta_0} = f \cdot \frac{\partial \psi}{\partial z}
2199
\quad \quad
2200
u = -\frac{\partial \psi}{\partial y}
2201
\quad \quad
2202
v  =  -\frac{\partial \psi}{\partial x} 
2203
\]
2204
 
2205
\vspace{0.3cm}
2206
\noindent
2207
If these expressions are inserted into the above equation for $q$, one gets:\\[-2mm]
2208
 
2209
\[
2210
qgPV = \xi + \frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} 
2211
          (\frac{\rho_0 g}{N_0^2 f \theta_0} \cdot \theta^* )
2212
\]
2213
 
2214
\vspace{0.3cm}
2215
\noindent
2216
In a first approximation, we treat the reference profile and the Coriolis parameter as constant. Then, 
2217
this last expression is further simplified to:\\[-2mm]
2218
 
2219
\[
2220
qgPV = \xi + \frac{f g}{N_0^2 \theta_0} \cdot \frac{\partial \theta^*}{\partial z}
2221
\]
2222
 
2223
 
2224
\vspace{0.3cm}
2225
\noindent
2226
With this form, it is easy to see that the following approximate relationship between Ertel's and the
2227
quasi-geostrophic PV holds. \\[-2mm]
2228
 
2229
\[
2230
qgPV \approx \frac{\rho_0 g}{\theta_0 N_0^2} \cdot EPV - f
2231
\]
2232
 
2233
\vspace{0.3cm}
2234
\noindent
2235
Note that according to the previous derivation, this equation does not hold exactly. It is based upon
2236
an assumption of linearisation and on approximate forms of Ertel's PV. Nevertheless, we can expect it
2237
to be a good first-order approximation. In the PV inversion tool, use is made of this relationship,
2238
but since it is only approximate, an iterative technique has to be applied. Finally note that this 
2239
formula can be easily applied to PV anomalies. Indeed, if $\Delta PV$ refers to a anomaly in Ertel's
2240
PV, the corresponding anomaly in quasi-geostrophic PV is given by:\\[-2mm]
2241
 
2242
\[
2243
\Delta(qgPV) \approx \frac{\rho_0 g}{\theta_0 N_0^2} \cdot \Delta(EPV) 
2244
\]
2245
 
2246
 
2247
\vspace{0.3cm}
2248
\noindent
2249
It is in this latter form that the program call\\[-0.3cm]
2250
\begin{center}
2251
\begin{minipage}[t]{13cm}
2252
\begin{verbatim}
2253
inversion.sh pvin2
2254
\end{verbatim}
2255
\end{minipage}
2256
\end{center}
2257
 
2258
\begin{figure}[t]
2259
\begin{center}
2260
\begin{minipage}[t]{8.1cm}
2261
  \ForceWidth{1.0\textwidth}
2262
  \BoxedEPSF{qgpv_ano_ew.eps}
2263
\end{minipage}
2264
\hspace{-0.5cm}
2265
\begin{minipage}[t]{8.1cm}
2266
  \ForceWidth{1.0\textwidth}
2267
  \BoxedEPSF{qgpv_ano_ns.eps}
2268
\end{minipage}
2269
\\
2270
\caption{\it Quasi-geostrophic PV anomaly in an east/west (left) and an north/south (right)
2271
vertical cross-section  for 16 January 2006, 18\,UTC. }
2272
\label{qgano}
2273
\end{center}
2274
\end{figure}
2275
 
2276
\vspace{0.3cm}
2277
\noindent
2278
 makes the conversion. It takes the Ertel-PV from the MOD file, and subtracts it from the PV\_AIM which is also
2279
 available on the MOD file. The difference between the two PV is the new anomaly in Ertel's PV which has to
2280
 be inverted in this iterative step. The approximate relationship between quasi-geostrophic PV and Ertel's
2281
 PV is then used to get a corresponding anomaly of the former one (see Fig.\,ref{pvtoqg}). 
2282
Note that this program handles also missing data values. If at some grid point Ertel's PV is not defined,
2283
i.e. the missing data flag is set, the corresponding value of quasi-geostrophic PV is set to zero. It is not
2284
set to the missing data value since no check will be done by the PV inversion program. Therefore, it is
2285
best to treat every missing value as a vanishing anomaly of quasi-geostrophic PV. A vertical cross-section
2286
of the anomaly in quasi-geostrophic PV is shown in Fig.\,\ref{qgano}.
2287
The additional or changed fields on the file ANO\_20060116\_18 are given in the following table:\\
2288
 
2289
\begin{center}
2290
\begin{tabular}{|l|l|l|}
2291
\hline
2292
PV       & Ertel's PV anomaly ($pvu$)                       & ANO\_20060116\_18 \\
2293
QGPV     & Anomaly in quasi-geostrophic PV ($s^{-1}$)      & ANO\_20060116\_18 \\
2294
\hline
2295
\end{tabular}
2296
\end{center}
2297
 
2298
 
2299
 
2300
 
2301
 
2302
\subsubsection{Inversion of the quasi-geostrophic PV [pvin3]}
2303
 
2304
At this stage the interior distribution of quasi-geostrophic PV and the boundary values
2305
are given, and therefore the inversion can be performed in order to get the streamfunction. 
2306
Numerical aspects of the inversion were already presented in section~2. Here, we focus on the
2307
practical aspects. The numerical problem solved in this step is expressed in the following
2308
boundary value problem: \\[-0.3cm]
2309
 
2310
\[
2311
q = \frac{\partial^2\psi}{\partial x^2} + \frac{\partial^2\psi}{\partial y^2} +
2312
\frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} ( \frac{\rho_0}{N_0^2}
2313
\cdot \frac{\partial \psi}{\partial z})
2314
\]
2315
 
2316
\vspace{0.3cm}
2317
\noindent
2318
with the pre-described values\\[-0.3cm]
2319
 
2320
\[
2321
g \cdot \frac{\theta^*}{\theta_0} = f \cdot \frac{\partial \psi}{\partial z}
2322
\quad \quad
2323
u = -\frac{\partial \psi}{\partial y}
2324
\quad \quad
2325
v  =  -\frac{\partial \psi}{\partial x} 
2326
\]
2327
 
2328
\vspace{0.3cm}
2329
\noindent
2330
on the upper and lower boundaries (for $\theta^*$) and on the lateral boundaries (for $u$ and $v$). The inversion program is called by\\[-0.3cm]
2331
\begin{center}
2332
\begin{minipage}[t]{13cm}
2333
\begin{verbatim}
2334
inversion.sh pvin3
2335
\end{verbatim}
2336
\end{minipage}
2337
\end{center}
2338
 
2339
\vspace{0.3cm}
2340
\noindent
2341
Note that the inversion affects only the file ANO\_20060116\_18 because the inversion is
2342
performed for an anomaly of quasi-geostrophic PV. 
2343
The final aim of this step is to calculate the wind, temperature, pressure and potential temperature
2344
perturbations which are associated with the specified anomaly of quasi-geostrophic PV.
2345
The call to the program yields some information about the ongoing iterative steps. First of all,
2346
the spectral width in the x-, y- and z-direction is written to screen. In the present example this
2347
is:\\[-0.3cm]
2348
\begin{center}
2349
\begin{minipage}[t]{13cm}
2350
\begin{small}
2351
\begin{verbatim}
2352
Spectrum of the matrix in each direction
2353
Spectrum =     1.028528       0.9136161        1.231250
2354
\end{verbatim}
2355
\end{small}
2356
\end{minipage}
2357
\end{center}
2358
 
2359
\vspace{0.3cm}
2360
\noindent
2361
The spectral widths $\lambda_x,\lambda_y, \lambda_z$ (in the same order as in the above program output) are important to decide whether the inversion can be reasonably be performed. The 
2362
criterion is based upon the matrix elements defining the inversion problem. For a reasonable setting
2363
the following inequalities should be fulfilled:
2364
 
2365
\[
2366
\lambda_x > 1/2 \cdot \lambda_y \quad \quad \mbox{and} \quad \quad \lambda_x > 1/2 \cdot \lambda_z
2367
\]
2368
\[
2369
\lambda_y > 1/2 \cdot \lambda_x \quad \quad \mbox{and} \quad \quad \lambda_y > 1/2 \cdot \lambda_z
2370
\]
2371
\[
2372
\lambda_z > 1/2 \cdot \lambda_x \quad \quad \mbox{and} \quad \quad \lambda_z > 1/2 \cdot \lambda_y
2373
\]
2374
 
2375
\vspace{0.3cm}
2376
\noindent
2377
which is evidently fulfilled in our case study (otherwise the program would abort with the error
2378
message that the grid dimensions are not large enough). Then some run-time statistics is provided for the
2379
iterative solution of the elliptical partial differential equation. As described in section~2 the 
2380
solution of the quasi-geostrophic PV equation is found by means of an successive over-relaxation (SOR)
2381
technique. Starting from an initial estimate of the streamfunction $\psi$ several hundred iterations of 
2382
 
2383
 
2384
\[
2385
\psi_i^{(n+1)} = \omega \cdot (b_i - \sum_{j=1}^{i-1} A_{i,j} \cdot \psi_j^{(n+1)}
2386
                                  - \sum_{j=i}^{m}   A_{i,j} \cdot \psi_j^{(n)})
2387
                                  + (1-\omega) \cdot \psi_i^{(n)}
2388
\]
2389
 
2390
\vspace{0.3cm}
2391
\noindent
2392
are performed (see section~2 for details). Essentially two statistical measures are provided: The first one $\psi_{gauge}$
2393
measures the amplitude of the streamfunction which is produced in the course of the iteration, 
2394
the second one is a direct check whether the iteration solution converges. In fact, after several iterations the so-far
2395
reached streamfunction is used to calculate the quasi-geostrophic $PV^{c}$ according to the formula:\\[-0.3cm]
2396
 
2397
\[
2398
PV^c = \frac{\partial^2\psi}{\partial x^2} + \frac{\partial^2\psi}{\partial y^2} +
2399
\frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} ( \frac{\rho_0}{N_0^2}
2400
\cdot \frac{\partial \psi}{\partial z})
2401
\]
2402
 
2403
\vspace{0.3cm}
2404
\noindent
2405
This value can then be compared to the quasi-geostrophic
2406
$PV^{i}$ distribution which was given as input to the inversion algorithm. The following norm $\Delta^2$ is then
2407
 calculated as a measure of the convergence:\\[-0.3cm]
2408
 
2409
 \[
2410
 \Delta^2 = \sum_{i,j,k} (\psi^{i}_{i,j,k}-\psi^{c}_{i,j,k})^2
2411
\]
2412
 
2413
\vspace{0.3cm}
2414
\noindent
2415
Some sample output is reproduced below for the case study, the first column corresponding to $\psi_{gauge}$ and the
2416
second one to $\Delta^2$:\\[-0.3cm]
2417
\begin{center}
2418
\begin{minipage}[t]{13cm}
2419
\begin{verbatim}
2420
psigauge =  0.000E+00    deltasq =  0.850E-09
2421
psigauge =  0.000E+00    deltasq =  0.112E-09
2422
psigauge = -0.681E+03    deltasq =  0.643E-10
2423
psigauge = -0.681E+03    deltasq =  0.466E-10
2424
psigauge = -0.806E+03    deltasq =  0.367E-10
2425
psigauge = -0.806E+03    deltasq =  0.303E-10
2426
psigauge = -0.547E+03    deltasq =  0.259E-10
2427
psigauge = -0.547E+03    deltasq =  0.228E-10
2428
psigauge = -0.398E+03    deltasq =  0.206E-10
2429
psigauge = -0.398E+03    deltasq =  0.191E-10
2430
psigauge = -0.309E+03    deltasq =  0.180E-10
2431
\end{verbatim}
2432
\end{minipage}
2433
\end{center}
2434
 
2435
\vspace{0.6cm}
2436
\noindent
2437
Note that the gauge streamfunction reaches a value of order -3000 (corresponding to a substantial anomaly of wind
2438
and temperature), and that the convergence measure $\Delta^2$ decreases
2439
by an order of magnitude from the beginning to the end. At the end of this step, the streamfunction associated with the quasi-geostrophic PV anomaly is determined. It is shown in Fig.\,\ref{stream} at three horizontal cross-sections. The
2440
minimum of the streamfunction is found in the interior of the domain, in agreement with the cyclonic flow around the
2441
positive anomaly of quasi-geostrophic PV. \\
2442
 
2443
\begin{figure}[t]
2444
\begin{center}
2445
\begin{minipage}[t]{5cm}
2446
  \ForceWidth{1.0\textwidth}
2447
  \BoxedEPSF{psi_ano_k01.eps}
2448
\end{minipage}
2449
\hspace{0.0cm}
2450
\begin{minipage}[t]{5cm}
2451
  \ForceWidth{1.0\textwidth}
2452
  \BoxedEPSF{psi_ano_k20.eps}
2453
\end{minipage}
2454
\hspace{0.0cm}
2455
\begin{minipage}[t]{5cm}
2456
  \ForceWidth{1.0\textwidth}
2457
  \BoxedEPSF{psi_ano_k40.eps}
2458
\end{minipage}
2459
\\
2460
\caption{\it Streamfunction associated with the quasi-geostrophic PV anomaly shown in Fig.\,ref{qgano}. The three panels show horizontal cross-sections at 0, 4\,km and 8\,km above ground.}
2461
\label{stream}
2462
\end{center}
2463
\end{figure}
2464
 
2465
\noindent
2466
Now, additional perturbation fields can be computed from this streamfunction: Potential temperature, 
2467
wind components in x and y direction, pressure, and temperature. The corresponding formula are:\\[-0.5cm]
2468
 
2469
\begin{eqnarray*}
2470
\theta^* & = & \frac{f}{g} \cdot \theta_0 \cdot \frac{\partial \psi}{\partial z}\\[0.2cm]
2471
u        & = & - \frac{\partial \psi}{\partial y}\\
2472
\end{eqnarray*}
2473
\begin{eqnarray*}
2474
v        & = &   \frac{\partial \psi}{\partial x}\\
2475
\end{eqnarray*}
2476
 
2477
\vspace{0.3cm}
2478
\noindent
2479
The anomaly of potential temperature $\theta^*$ and the two horizontal wind components $u$ and $v$ can directly determined from the
2480
streamfunction. Moreover, the pressure anomaly is directly proportional to the streamfunction, which is only
2481
determined up to an additive constant. In order to obtain a vanishing pressure at the boundary of the
2482
inversion domain, we firstly calculate such a constant $\psi_0$ (essentially the average over the domain boundary) and then set the pressure to:\\[-0.2cm]
2483
 
2484
\[
2485
p^* = \rho_0 \cdot f \cdot (\psi - \psi_0)
2486
\]
2487
 
2488
\vspace{0.3cm}
2489
\noindent
2490
The temperature anomaly is now easily calculated from pressure and potential temperature according the relationship
2491
$\theta = T \cdot (p_ref/p)^\kappa$, where $T$ is the temperature in Kelvin, $p_ref$ is the reference pressure level (1000\,hPa) and $\kappa$ is the ratio between the gas constant for dry air ($R_d$) and the specific heat at constant pressure ($c_p$). Consistent with previous approximations we set:\\[-0.2cm]
2492
 
2493
\[
2494
T^* = (\frac{p_0}{p_ref})^\kappa \cdot (\theta^* + \kappa \cdot \theta_0 \cdot \frac{p^*}{p_0} )
2495
\]
2496
 
2497
\vspace{0.3cm}
2498
\noindent     
2499
Figure\,\ref{anofield} shows some of these perturbation fields. The positive anomaly of quasi-geostrophic PV is 
2500
associated with a cyclonic (anti-clockwise) flow field, which reaches down to surface levels. Furthermore, we know from theoretical studies that a positive PV anomaly goes along with an increase of potential temperature above the anomaly, and correspondingly a decrease of 
2501
potential temperature below. This is nicely confirmed in the perturbation field of the calculation. 
2502
Finally, the cyclonic flow must be associated with a local pressure minimum, according to the
2503
geostrophic wind equation. This is also fulfilled in our calculation. The following table gives all anomaly fields on the ANO\_10060116\_18 file which are calculated:
2504
 
2505
\begin{figure}[t]
2506
\begin{center}
2507
\begin{minipage}[t]{7.5cm}
2508
  \ForceWidth{1.0\textwidth}
2509
  \BoxedEPSF{ano_00_k35_pr.eps}
2510
\end{minipage}
2511
\hspace{-0.6cm}
2512
\begin{minipage}[t]{7.5cm}
2513
  \ForceWidth{1.0\textwidth}
2514
  \BoxedEPSF{ano_00_k35_tt.eps}
2515
\end{minipage}
2516
\\[-0.3cm]
2517
\begin{minipage}[t]{7.5cm}
2518
  \ForceWidth{1.0\textwidth}
2519
  \BoxedEPSF{ano_00_k35_uv.eps}
2520
\end{minipage}
2521
\hspace{-0.6cm}
2522
\begin{minipage}[t]{7.5cm}
2523
  \ForceWidth{1.0\textwidth}
2524
  \BoxedEPSF{ano_00_k35_psi.eps}
2525
\end{minipage}
2526
\\
2527
\caption{\it Pressure, temperature, wind vectors and streamfunction (from upper-left to lower-right) 
2528
associated with the quasi-geostrophic PV anomaly. The horizontal cross-section is at level 7\,km. For clarity, 
2529
some isolines of quasi-geostrophic PV are also shown.}
2530
\label{anofield}
2531
\end{center}
2532
\end{figure}
2533
 
2534
\vspace{0.3cm}
2535
\begin{center}
2536
\begin{tabular}{|l|l|l|}
2537
\hline
2538
STREAM      & Streamfunction ($m^2/s$)                          & ANO\_20060116\_18 \\
2539
THETA       & Potential temperature ($K$)                       & ANO\_20060116\_18 \\
2540
U           & Velocity component in X direction ($m/s$)         & ANO\_20060116\_18 \\
2541
V           & Velocity in Y direction ($m/s$)                   & ANO\_20060116\_18 \\
2542
T           & Temperature  ($^\circ C$)                         & ANO\_20060116\_18 \\
2543
P           & Pressure    ($hPa$)                               & ANO\_20060116\_18 \\
2544
\hline
2545
\end{tabular}
2546
\end{center}
2547
 
2548
\vspace{0.3cm}
2549
\noindent
2550
Finally, the question emerges whether the convergence of the algorithm was sufficient. In order to assess the
2551
quality of convergence a diagnostic tool is presented in section~5.2, which allows to calculate the
2552
quasi-geostrophic PV according to its definition and then to compare it with the anomaly given at 
2553
the beginning of the PV inversion.
2554
 
2555
 
2556
\subsubsection{Preparing the next step for iteration [pvin4]}
2557
 
2558
 
2559
\noindent
2560
At this point, the quasi-geostrophic PV anomaly is inverted and the associated streamfunction and
2561
other flow fields have been determined. But the inversion problem is not yet solved. In fact,
2562
we specified an anomaly of Ertel's PV, but in the previous step a anomaly of quasi-geostrophic PV
2563
was inverted. By the above reasoning, we expect the two anomalies to be closely linked. However,
2564
inversion of the quasi-geostrophic PV equation is a linear problem, whereas the inversion of Ertel's
2565
PV is inherently non-linear. That is why some further iteration must be performed.\\ 
2566
 
2567
\noindent
2568
In a first step, we take the basic flow fields (temperature, velocity, pressure) from the anomaly (ANO)
2569
file and subtract it from the MOD file (Fig.\,\ref{prepiter}). This is done by call to\\[-0.3cm]
2570
\begin{center}
2571
\begin{minipage}[t]{13cm}
2572
\begin{verbatim}
2573
inversion.sh pvin3
2574
\end{verbatim}
2575
\end{minipage}
2576
\end{center}
2577
 
2578
\begin{figure}[t]
2579
\begin{center}
2580
\begin{minipage}[t]{10cm}
2581
  \ForceWidth{1.0\textwidth}
2582
  \BoxedEPSF{prepiter.eps}
2583
\end{minipage}
2584
\\
2585
\caption{\it Preparation for the next iteration: The fields (pressure, temperature, velocity, potential
2586
temperature) from  iteration n and the anomalies of iteration n are combined to give the fields at iteration
2587
n+1.}
2588
\label{prepiter}
2589
\end{center}
2590
\end{figure}
2591
 
2592
\vspace{0.3cm}
2593
\noindent
2594
There is one external parameter involved in this step. It is found in the NUMERICS section of the
2595
parameter file and is called ALPHA. This value determines which fraction of the perturbation has to
2596
be subtracted from the MOD fields. Formally, we do the following transformation (see also Fig.\,\ref{prepiter}):
2597
 
2598
\begin{eqnarray*}
2599
u^{n+1}_{MOD} & \leftarrow & u^n_{MOD} - \alpha \cdot u^n_{ANO}\\[0.2cm]
2600
v^{n+1}_{MOD} & \leftarrow & v^n_{MOD} - \alpha \cdot v^n_{ANO}\\[0.2cm]
2601
T^{n+1}_{MOD} & \leftarrow & T^n_{MOD} - \alpha \cdot T^n_{ANO}\\[0.2cm]
2602
p^{n+1}_{MOD} & \leftarrow & p^n_{MOD} - \alpha \cdot p^n_{ANO}
2603
\end{eqnarray*}
2604
 
2605
\vspace{0.3cm}
2606
\noindent
2607
A value $\alpha < 1$ slows down the convergence because only part of the inversion result is used. On the other hand, it was found that the stability of the algorithm is enhanced by values $\alpha < 1$. In
2608
the case study a value of 0.5 was used, and good convergence reached, whereas a value of 1 resulted in unrealistic small-scale perturbations which diverge with continuing iterative steps.\\
2609
 
2610
\noindent
2611
The variables which are adjusted in the MOD\_20060116\_18 file  are given in the following table and an example 
2612
for the adjustment is shown in Fig.\,\ref{prepsub}:
2613
 
2614
\begin{center}
2615
\begin{tabular}{|l|l|l|}
2616
\hline
2617
THETA       & Potential temperature                       & MOD\_20060115\_18 \\
2618
U           & Velocity component in X direction ($m/s$)    & MOD\_20060115\_18 \\
2619
V           & Velocity in Y direction ($m/s$)              & MOD\_20060115\_18 \\
2620
T           & Temperature  ($^\circ C$)                    & MOD\_20060115\_18 \\
2621
P           & Pressure    ($hPa$)              & MOD\_20060115\_18 \\
2622
\hline
2623
\end{tabular}
2624
\end{center}
2625
 
2626
\vspace{0.5cm}
2627
\noindent
2628
It might be valuable to study the convergence of the inversion in greater detail. To this aim, the
2629
master script allows the call:\\[-0.3cm]
2630
\begin{center}
2631
\begin{minipage}[t]{13cm}
2632
\begin{verbatim}
2633
inversion.sh pvin5
2634
\end{verbatim}
2635
\end{minipage}
2636
\end{center}
2637
 
2638
\vspace{0.3cm}
2639
\noindent
2640
which makes a copy of the momentarily reached MOD and ANO file. For this save option to work, the
2641
SAVEITER flag in the NUMERICS section of the parameter file must be set to "yes".
2642
\begin{center}
2643
\begin{minipage}[t]{13cm}
2644
\begin{verbatim}
2645
BEGIN NUMERICS  
2646
  SAVEITER =    yes;     
2647
END NUMERICS
2648
\end{verbatim}
2649
\end{minipage}
2650
\end{center}
2651
 
2652
\begin{figure}[t]
2653
\begin{center}
2654
\begin{minipage}[t]{8.3cm}
2655
  \ForceWidth{1.0\textwidth}
2656
  \BoxedEPSF{prep_k35_org_ano.eps}
2657
\end{minipage}
2658
\hspace{-1cm}
2659
\begin{minipage}[t]{8.3cm}
2660
  \ForceWidth{1.0\textwidth}
2661
  \BoxedEPSF{prep_k35_mod.eps}
2662
\end{minipage}
2663
\\
2664
\caption{\it Left: Temperature in the modified MOD file (in color) and in the anomaly ANO file (with contour lines)
2665
at the end of the quasi-geostrophic PV inversion. The temperature anomaly in ANO is subtracted from the initial temperature in MOD. Right: New modified temperature in the MOD file after the subtraction.
2666
This new modified field gives the next entry for the PV inversion.  }
2667
\label{prepsub}
2668
\end{center}
2669
\end{figure}
2670
 
2671
 
2672
\subsubsection{Convergence after several iterations [pvin5]}
2673
 
2674
At this stage, the next iterative steps can be performed. The MOD file has been adjusted according to
2675
the outcome of the quasi-geostrophic PV inversion. The modified wind and temperature fields can be used to calculate a new Ertel-PV field, which in turn can be compared with the pre-specified aim-PV field.
2676
Hopefully, after several iterative steps, the re-currently calculated PV of the MOD file converges
2677
toward the aim-PV. If so, the non-linear inversion problem for Ertel's PV is solved. Figure\,\ref{convergence}
2678
illustrates the convergence for the case study. Note that the iterative steps need not be 
2679
launched by hand, but can be run automatically with call to\\[-0.3cm]
2680
\begin{center}
2681
\begin{minipage}[t]{13cm}
2682
\begin{verbatim}
2683
inversion.sh pvin
2684
\end{verbatim}
2685
\end{minipage}
2686
\end{center}
2687
 
2688
\vspace{0.3cm}
2689
\noindent
2690
The script will run through all inversion steps and will loop through the number of iterations specified in NOFITER in the NUMERICS section of the parameter file.
2691
\begin{center}
2692
\begin{minipage}[t]{13cm}
2693
\begin{verbatim}
2694
BEGIN NUMERICS  
2695
  NOFITER  =      6;   
2696
END NUMERICS
2697
\end{verbatim}
2698
\end{minipage}
2699
\end{center}
2700
 
2701
\vspace{0.3cm}
2702
\noindent
2703
The panels of Fig.\,\ref{convergence} show the streamfunction at three consecutive iterative steps.
2704
Note that the amplitiude of the streamfunction clearly decreases, indicating that the iteration
2705
process converges. 
2706
Generally, after six steps good convergence is reached. This is further supported by
2707
 the standard output during the quasi-geostrophic inversion (see listing on page~38). The final line of this output
2708
 is shown below for several consecutive iterations (the first one corresponding to the line on page~38):
2709
 
2710
 \begin{figure}[t]
2711
\begin{center}
2712
\begin{minipage}[t]{5cm}
2713
  \ForceWidth{1.0\textwidth}
2714
  \BoxedEPSF{con_01_k35_psi.eps}
2715
\end{minipage}
2716
\hspace{0cm}
2717
\begin{minipage}[t]{5cm}
2718
  \ForceWidth{1.0\textwidth}
2719
  \BoxedEPSF{con_02_k35_psi.eps}
2720
\end{minipage}
2721
\hspace{0cm}
2722
\begin{minipage}[t]{5cm}
2723
  \ForceWidth{1.0\textwidth}
2724
  \BoxedEPSF{con_03_k35_psi.eps}
2725
\end{minipage}
2726
\\
2727
\caption{\it streamfunction for three iterative steps. Note the different contour intervals
2728
for the three sub panels. The decrease of the amplitude clearly indicates a convergence of the
2729
PV inversion.}
2730
\label{convergence}
2731
\end{center}
2732
\end{figure}
2733
 
2734
\begin{center}
2735
\begin{minipage}[t]{13cm}
2736
\begin{verbatim} 
2737
psigauge = -0.309E+03    deltasq =  0.180E-10
2738
psigauge = -0.128E+03    deltasq =  0.548E-11
2739
psigauge = -0.570E+02    deltasq =  0.233E-11
2740
psigauge = -0.265E+02    deltasq =  0.117E-11
2741
\end{verbatim}
2742
\end{minipage}
2743
\end{center}
2744
 
2745
\vspace{0.3cm}
2746
\noindent
2747
Note that with each iterative step "less" streamfunction is produced. Since the basic perturbation
2748
fields (temperature, pressure, horizontal wind, potential temperature) are directly proportional 
2749
to the streamfunction, the corrections to the flow fields also
2750
become smaller and smaller.
2751
 
2752
\subsection{Post processing - Changing the P file [post]}
2753
 
2754
The PV inversion was completed in the previous step and the modified temperature, pressure and wind field is available in the run files. It is the aim of the post processing steps to bring these modified
2755
fields back to the format of the input fields. The steps are summarised in Fig.\,\ref{postproc}.\\
2756
 
2757
\begin{figure}[t]
2758
\begin{center}
2759
\begin{minipage}[t]{12cm}
2760
  \ForceWidth{1.0\textwidth}
2761
  \BoxedEPSF{postproc.eps}
2762
\end{minipage}
2763
\\
2764
\caption{\it Different steps of post processing. Additionally, to the left of the different
2765
blocks the main flow of information is indicated. For instance, MOD $\rightarrow$ GEO means
2766
that the input is taken from the MOD file and the output written to the GEO file.  }
2767
\label{postproc}
2768
\end{center}
2769
\end{figure}
2770
 
2771
\noindent
2772
But at first the input field and the link to the modified output field must be made available with a call to:\\[-0.3cm]
2773
\begin{center}
2774
\begin{minipage}[t]{13cm}
2775
\begin{verbatim}
2776
inversion.sh post1
2777
\end{verbatim}
2778
\end{minipage}
2779
\end{center}
2780
 
2781
\vspace{0.3cm}
2782
\noindent
2783
The P file is copied from the input directory to the output directory and a symbolic link is set to the
2784
MOD file in the run directory. 
2785
 
2786
 
2787
 
2788
 
2789
\subsubsection{Rotating to the geographical latitude/longitude grid [post2]}
2790
 
2791
Figure~\ref{backrot} illustrates the step which is necessary to transform the meteorological fields to a geographical co-ordinate system. The left panel shows the temperature at 2000\,m above sea level in the local-cartesian co-ordinate system, the right panel is the same field, but projected back to a geographical grid. Note that in this latter frame only a small section is filled by temperature values, whereas most are
2792
undefined.\\ 
2793
 
2794
\begin{figure}[t]
2795
\begin{center}
2796
\begin{minipage}[t]{8.3cm}
2797
  \ForceWidth{1.0\textwidth}
2798
  \BoxedEPSF{rot_k35_rot_t.eps}
2799
\end{minipage}
2800
\hspace{-1.2cm}
2801
\begin{minipage}[t]{8.3cm}
2802
  \ForceWidth{1.0\textwidth}
2803
  \BoxedEPSF{rot_k35_geo_t.eps}
2804
\end{minipage}
2805
\\
2806
\caption{\it Modified temperature field at 7\,km above ground in the rotated co-ordinate system (left) and transformed back into the geographical latitude/longitude grid (right). Additionally
2807
the wind vectors are shown in both co-ordinate systems. Note that the transformation of the vectorial
2808
wind is much more complicated than the transformation of the scalar temperature.}
2809
\label{backrot}
2810
\end{center}
2811
\end{figure}
2812
 
2813
\noindent
2814
The rotation itself is the reverse transformation performed in the preparatory steps (section~4.4.2). It is called by (and its effect shown in Fig.\,\ref{backrot})\\[-0.3cm]
2815
\begin{center}
2816
\begin{minipage}[t]{13cm}
2817
\begin{verbatim}
2818
inversion.sh post2
2819
\end{verbatim}
2820
\end{minipage}
2821
\end{center}
2822
 
2823
\vspace{0.3cm}
2824
\noindent
2825
and its behaviour is controlled by the following entries in the parameter file:
2826
\begin{center}
2827
\begin{minipage}[t]{13cm}
2828
\begin{verbatim}
2829
BEGIN GRID
2830
  GEO_XMIN = -180.;    
2831
  GEO_NX   =  361 ;    
2832
  GEO_DX   =    1.;
2833
  GEO_YMIN =    0.;    
2834
  GEO_NY   =   91 ;
2835
  GEO_DY   =    1.;
2836
  CLON     =  -65.;    
2837
  CLAT     =   45.;     
2838
  CROT     =    0.;     
2839
END GRID
2840
\end{verbatim}
2841
\end{minipage}
2842
\end{center}
2843
 
2844
\vspace{0.3cm}
2845
\noindent
2846
The first six parameters define the geographical grid of the input files. More specifically the left grid boundary is at $180^\circ$\,W (GEO\_XMIN), the number of grid points in the zonal (west-to-east) direction is 361 (GEO\_NX) and 
2847
the grid resolution in zonal direction is $1^\circ$\,longitude (GEO\_DX). Analogously, the parameters of the
2848
grid in meridional (south-to-north) direction are given: Lowest latitude $0^\circ$\,N (GEO\_YMIN), number of grid
2849
points 91 (GEO\_NY) and grid resolution $1^\circ$\,latitude (GEO\_DY). The rotation itself is described by
2850
the last three entries (CLON, CLAT and CROT), which have the exactly same meaning as given in section~4.4.2\\
2851
 
2852
\noindent
2853
Note again, that the transformation of a scalar quantity is considerably easier than the transformation of a vectorial quantity. In the latter case, the specific transformation
2854
of the vectorial components must be correctly handled. The transformation algorithm for a scalar quantity is based
2855
upon the transformation rules given in Appendix~9.1 (Fortran subroutines {\em lmtolms} and {\em phtophs}). Essentially, the
2856
steps are the reverse of the ones presented in section~4.4.2. 
2857
The rotated (quasi-cartesian) latitude/longitude corresponding to a grid point in the geographical co-ordinate system is obtained in the following way. Firstly, the geographical latitude/longitude $\phi_{geo},\lambda_{geo}$ is transformed into
2858
 
2859
\begin{eqnarray*}
2860
 \lambda'_{rot} & = & lmtolms(\phi_{geo},\lambda_{geo},90-\phi_{cen},\lambda_{cen}-180) \\[0.2cm]
2861
 \phi'_{rot}    & = & phtophs(\phi_{geo},\lambda_{geo},90-\phi_{cen},\lambda_{cen}-180))            
2862
\end{eqnarray*}
2863
 
2864
\vspace{0.3cm}
2865
\noindent
2866
where the centre of the PV anomaly (the centre of the quasi-cartesian co-ordinate system in geographical
2867
latitude/longitude co-ordinates) is given by $\phi_{cen}$ and $\lambda_{cen}$ (CLAT and CLON in the 
2868
parameter file, see above).
2869
These two
2870
values are then, in a second rotation, transformed into rotated latitude and longitude:
2871
 
2872
\begin{eqnarray*}
2873
 \lambda_{rot} & = & 90+lmtolms(\phi'_{rot},\lambda'_{rot}-90,90+\alpha,-180) \\[0.2cm]
2874
 \phi_{rot}    & = & phtophs(\phi'_{rot},\lambda'_{rot}-90,90+\alpha,-180)            
2875
\end{eqnarray*}
2876
 
2877
\vspace{0.3cm}
2878
\noindent
2879
where $\alpha$ is the rotation angle given in the parameter file (CROT, see below). With the correspondence
2880
$(\lambda_{geo},\phi_{geo}) \leftrightarrow (\lambda_{rot},\phi_{rot})$ it is straightforward to perform
2881
the transformation of a scalar field. In the program package this is done by means of linear interpolation.\\ 
2882
 
2883
\noindent
2884
The fields which are written to GEO\_20060116\_18 are given in the following table:\\
2885
 
2886
\begin{center}
2887
\begin{tabular}{|l|l|l|}
2888
\hline
2889
U    & Zonal velocity ($m/s$)      & GEO\_20060116\_18 \\
2890
V    & Meridional velocity ($m/s$) & GEO\_20060116\_18 \\
2891
T    & Temperature ($^\circ C$)    & GEO\_20060116\_18 \\
2892
P    & Pressure ($hPa$)            & GEO\_20060116\_18 \\
2893
\hline
2894
\end{tabular}
2895
\end{center}
2896
\vspace{0.5cm}
2897
 
2898
\begin{figure}[t]
2899
\vspace{-3cm}
2900
\begin{center}
2901
\begin{minipage}[t]{16cm}
2902
  \ForceWidth{1.0\textwidth}
2903
  \BoxedEPSF{weight1.eps}
2904
\end{minipage}  
2905
\\[-4.2cm]
2906
\caption{\it Weighting function (in color) for the insertion of the modified fields into the original
2907
P file. Additionally, the distance from the boundary of insertion region is plotted as contour lines (positive
2908
inside the region, negative outside region). The zero contour line of the distance corresponds to the
2909
boundary of the insertion domain.}
2910
\label{comparep}
2911
\end{center}
2912
\end{figure}
2913
 
2914
 
2915
\subsubsection{Transformation from height to hybrid ECMWF co-ordinates [post3]}
2916
 
2917
\begin{figure}[t]
2918
\vspace{-1cm}
2919
\begin{center}
2920
\begin{minipage}[t]{8.2cm}
2921
  \ForceWidth{1.0\textwidth}
2922
  \BoxedEPSF{inp_tt_k38.eps}
2923
\end{minipage}
2924
\hspace{-0.7cm}
2925
\begin{minipage}[t]{8.2cm}
2926
  \ForceWidth{1.0\textwidth}
2927
  \BoxedEPSF{out_tt_k38.eps}
2928
\end{minipage}  
2929
\\[-2.8cm]
2930
\begin{minipage}[t]{8.2cm}
2931
  \ForceWidth{1.0\textwidth}
2932
  \BoxedEPSF{inp_uv_k38.eps}
2933
\end{minipage}
2934
\hspace{-0.7cm}
2935
\begin{minipage}[t]{8.2cm}
2936
  \ForceWidth{1.0\textwidth}
2937
  \BoxedEPSF{out_uv_k38.eps}
2938
\end{minipage}  
2939
\\[-1.5cm]
2940
\caption{\it Comparison of original (with PV streamer, left) and modified (without PV streamer, right) 
2941
temperature (top panels) and velocity/wind vectors bottom panels) at model level 38 of the ECMWF grid.}
2942
\label{comparep2}
2943
\end{center}
2944
\end{figure}
2945
 
2946
\noindent
2947
The vertical co-ordinate in the back-rotated field is still geometrical height, whereas the input
2948
fields are given on the hybrid ECMWF grid. In this step the transformation to the hybrid vertical co-ordinate is performed. The call is:\\[-0.3cm]
2949
\begin{center}
2950
\begin{minipage}[t]{13cm}
2951
\begin{verbatim}
2952
inversion.sh post3
2953
\end{verbatim}
2954
\end{minipage}
2955
\end{center}
2956
 
2957
\vspace{0.3cm}
2958
\noindent
2959
The transformation is based upon a cubic spline interpolation. The fields which are overwritten
2960
in the P20060116\_18 file are:\\
2961
 
2962
\begin{center}
2963
\begin{tabular}{|l|l|l|}
2964
\hline
2965
U           & Velocity component in zonal direction ($m/s$)    & P20060115\_18 \\
2966
V           & Velocity in meridional direction ($m/s$)              & P20060115\_18 \\
2967
T           & Temperature  ($^\circ C$)                    & P20060115\_18 \\
2968
PS          & Surface pressure    ($hPa$)                  & P20060115\_18 \\
2969
\hline
2970
\end{tabular}
2971
\end{center}
2972
 
2973
\vspace{0.3cm}
2974
\noindent
2975
An impression of the modified flow field is given in Fig.\,\ref{comparep2}.
2976
 
2977
 
2978
\subsubsection{Calculating secondary fields [post4]}
2979
 
2980
\begin{figure}[t]
2981
\begin{center}
2982
\begin{minipage}[t]{7.8cm}
2983
  \ForceWidth{1.0\textwidth}
2984
  \BoxedEPSF{inp_pv.th_45n.eps}
2985
\end{minipage}
2986
\hspace{0cm}
2987
\begin{minipage}[t]{7.8cm}
2988
  \ForceWidth{1.0\textwidth}
2989
  \BoxedEPSF{out_pv.th_45n.eps}
2990
\end{minipage}  
2991
\\[-1.5cm]
2992
\begin{minipage}[t]{7.8cm}
2993
  \ForceWidth{1.0\textwidth}
2994
  \BoxedEPSF{inp_pv_350hPa.eps}
2995
\end{minipage}
2996
\hspace{0cm}
2997
\begin{minipage}[t]{7.8cm}
2998
  \ForceWidth{1.0\textwidth}
2999
  \BoxedEPSF{out_pv_350hPa.eps}
3000
\end{minipage}  
3001
\\[-1.5cm]
3002
\caption{\it Comparison of original (with PV streamer, left) and modified (without PV streamer, right) 
3003
potential temperature and PV in a west/east cross section along the $45^\circ$\,N latitude circle (top panels) 
3004
and PV at 350\,hPa (bottom panels)}
3005
\label{compares}
3006
\end{center}
3007
\end{figure}
3008
 
3009
In this last step, Ertel's PV and potential temperature are calculated on the ECMWF grid. This allows
3010
to directly check whether the PV anomaly was removed and to investigate how the corresponding potential temperature is
3011
changed in the absence of the PV anomaly. The call to this step is:\\[-0.3cm]
3012
\begin{center}
3013
\begin{minipage}[t]{13cm}
3014
\begin{verbatim}
3015
inversion.sh post4
3016
\end{verbatim}
3017
\end{minipage}
3018
\end{center}
3019
 
3020
\vspace{0.3cm}
3021
\noindent
3022
The program creates the S file and writes the following two fields onto it:\\[-0.3cm]
3023
 
3024
\begin{center}
3025
\begin{tabular}{|l|l|l|}
3026
\hline
3027
TH   & Potential temperature ($K$)      & S20060116\_18 \\
3028
PV    & Ertel's PV ($pvu$)               & S20060116\_18 \\
3029
\hline
3030
\end{tabular}
3031
\end{center}
3032
 
3033
\vspace{0.3cm}
3034
\noindent
3035
Figure~\ref{compares} shows a direct comparison of the input and of the output Ertel-PV and potential temperature.
3036
It can clearly be seen that the stratospheric PV streamer is essentially removed from the output
3037
file. Moreover, the potential temperature is considerably changed. Whereas in the presence of the
3038
PV streamer the isolines of potential temperature are pulled upwards, they are much more horizontally
3039
aligned in its absence. This "vacuum cleaner" effect of upper-level PV structures is well documented
3040
and predicted by theoretical considerations (see also Fig.\,2 in section~1). 
3041
 
3042
 
3043
% ----------------------------------------------------------------------------------------------
3044
% PV Inversion for Idealised Cases
3045
% ----------------------------------------------------------------------------------------------
3046
 
3047
\newpage
3048
 
3049
 
3050
\section{Diagnostic Tools}
3051
 
3052
\subsection{A consistency check for the boundary condition [diag1]}
3053
 
3054
The problem posed by the inversion equations constitutes a von Neumann boundary value problem. 
3055
It has only a solution if some additional conditions are fulfilled between the interior PV distribution and the  values of potential temperature on the upper and lower boundaries and the values of horizontal wind components on the lateral sides of the inversion domain. What follows is a
3056
detailed description of these additional requirements. The discussion very closely follows the one given
3057
in Fehlmann (1997).\\
3058
 
3059
\noindent
3060
To facilitate the derivation, let's define a new vertical co-ordinate such theta the quasi-geostrophic PV q can be expressed as the divergence of a vector field $\vec{E}$. Let\\[-0.2cm]
3061
 
3062
\[
3063
\eta(z) = - \frac{p_0(z)}{g f^2} \quad \quad \mbox{and} \quad \quad 
3064
\Delta_h = \frac{\partial^2}{\partial x^2} +  \frac{\partial^2}{\partial y^2}
3065
\]
3066
 
3067
\vspace{0.3cm}
3068
\noindent
3069
where $p_o(z)$ is the reference profile of pressure, $f$ is the Coriolis parameter and $g$ is the Earth's gravity.  Note that $\eta$ is a scaled pressure co-ordinate. If we use the hydrostatic assumption $\partial{\eta}/{\partial z} = \rho_0/f^2$, the following expression for the quasi-geostrophic PV q results:
3070
 
3071
\[
3072
q = \Delta_h\psi + \frac{\partial}{\partial \eta} ( \frac{\rho_0^2}{f^2 N_0^2}
3073
\cdot \frac{\partial \psi}{\partial \eta} )
3074
\]
3075
 
3076
\vspace{0.3cm}
3077
\noindent
3078
Here, $\rho_o(z)$ and $N_o^2(z)$ are the reference profiles of density and squared Brunt-Vais\"al\"a frequency, 
3079
respectively, and $\psi$ is the streamfunction. Hence, q is now expressed as the divergence of a vector field ${\vec E}$, and Gauss' theorem can be
3080
applied:
3081
 
3082
\[
3083
\int_G q(x,y,\eta) dx dy d\eta = \int_{\partial G} \vec{E}(x,y,\eta) \vec{d\sigma} \quad \quad
3084
\mbox{with} \quad \quad
3085
\vec{E} = ( \frac{\partial \psi}{\partial x}, \frac{\partial \psi}{\partial y},
3086
\frac{\rho_0^2}{f^2 N_0^2} \cdot \frac{\partial \psi}{\partial \eta} )
3087
\] 
3088
 
3089
\vspace{0.3cm}
3090
\noindent
3091
Note that this integration has to be carried out in the co-ordinate system (x,y,$\eta$). If we now specify
3092
the inversion domain B as a two-dimensional domain in the (x,y)-plane and $[z_a,z_b]$ be the vertical domain, then $G=B \times [z_a,z_b]$ in the Cartesian space. This compatibility condition can be 
3093
transformed back into the Cartesian co-ordinate system and the integration be split over the boundary of
3094
the domain G into an integration over the surface, the lid and the lateral boundaries of the domain. It then
3095
follows that 
3096
 
3097
\begin{eqnarray*}
3098
 \int_G \rho_0(z) q(x,y,z) dx dy dz & = &
3099
     \int _{z_a}^{z_b} (\int_{\partial B} \vec{v}(x,y,z) \cdot \vec{dr} ) \rho_0(z) dz\\[4mm]
3100
 & - &  \int_B \frac{\rho_0(z_a) g f \theta^*(x,y,z_a)}{\theta_0(z_a) N_0^2(z_a)} dx dy \\[4mm]
3101
 & + &  \int_B \frac{\rho_0(z_b) g f \theta^*(x,y,z_b)}{\theta_0(z_b) N_0^2(z_b)} dx dy \\
3102
\end{eqnarray*}
3103
 
3104
\vspace{0.3cm}
3105
\noindent
3106
Only if this condition is fulfilled, does there exist a unique solution (up to a constant). This means
3107
that not every formulation of the inversion problem needs to have a solution.\\
3108
 
3109
\noindent 
3110
The inversion program has to check whether the just discussed integral constraint is fulfilled to 
3111
satisfactory accuracy.  In order to estimate, how big these inconsistencies really are, we ask for a constant perturbation potential temperature $\theta^*$ which is needed in order to fulfill the integral
3112
constraint. If readily follows from the above discussion that this value is:
3113
 
3114
\begin{eqnarray*}
3115
 \theta^* & = &
3116
 ( \int_G \rho_0(z) q(x,y,z) dx dy dz - 
3117
  \int _{z_a}^{z_b} (\int_{\partial B} \vec{v}(x,y,z) \cdot \vec{dr} ) \rho_0(z) dz )\\[4mm]
3118
 &  &
3119
  (
3120
  -   \int_B \frac{\rho_0(z_a) g f}{\theta_0(z_a) N_0^2(z_a)} dx dy 
3121
  +   \int_B \frac{\rho_0(z_b) g f}{\theta_0(z_b) N_0^2(z_b)} dx dy )^{-1}\\
3122
\end{eqnarray*}
3123
 
3124
\vspace{0.3cm}
3125
\noindent
3126
If this quantity is calculated for the present example, $\theta^*=$-2.8\,K results. This value seems 
3127
sufficiently small that problem can be solved despite the inconsistency. But note that the problems due
3128
to the ill-posedness of the problem are not well understood (see references in Fehlmann, 1997).\\
3129
 
3130
\noindent
3131
The program handling the consistency check related to the boundary values is:\\[-0.3cm]
3132
\begin{center}
3133
\begin{minipage}[t]{13cm}
3134
\begin{verbatim}
3135
inversion.sh diag1
3136
\end{verbatim}
3137
\end{minipage}
3138
\end{center}
3139
 
3140
\vspace{0.3cm}
3141
\noindent
3142
The output from this program is given in the following table (the labels A,B,C and D are entered for easier
3143
reference in the text):\\[-0.3cm]
3144
\begin{center}
3145
\begin{minipage}[t]{13cm}
3146
\begin{verbatim}
3147
A   integ                      =    1.7558686E+12
3148
B   denombot                   =    5.6644076E+11
3149
C   denomtop                   =    5.9614413E+09
3150
D   denom                      =   -5.6047934E+11
3151
    theta adjustment           =    -3.132798
3152
    theta shift @ top          =     0.000000        613.2715
3153
    theta shift @ bot          =     0.000000        271.9355
3154
\end{verbatim}
3155
\end{minipage}
3156
\end{center}
3157
 
3158
\vspace{0.3cm}
3159
\noindent
3160
The first line is the integral which includes the quasi-geostrophic PV in the interior, the 
3161
velocity integrals on the laterals boundaries and the potential temperature integrals at the
3162
lower and upper boundary:
3163
 
3164
\begin{eqnarray*}
3165
 A & = & \int_G \rho_0(z) q(x,y,z) dx dy dz -
3166
              \int _{z_a}^{z_b} (\int_{\partial B} \vec{v}(x,y,z) \cdot \vec{dr} ) \rho_0(z) dz\\[6mm]
3167
        &   &  + \int_B \frac{\rho_0(z_a) g f \theta^*(x,y,z_a)}{\theta_0(z_a) N_0^2(z_a)} dx dy 
3168
               - \int_B \frac{\rho_0(z_b) g f \theta^*(x,y,z_b)}{\theta_0(z_b) N_0^2(z_b)} dx dy \\
3169
\end{eqnarray*}
3170
 
3171
\vspace{0.3cm}
3172
\noindent
3173
In exact fulfillment of the integral constraint, this term A would vanish, i.e. $A=0$. 
3174
The second and third line give the integrals over the upper and lower boundary only:
3175
 
3176
\begin{eqnarray*}
3177
 B & = & \int_B \frac{\rho_0(z_a) g f \theta^*(x,y,z_a)}{\theta_0(z_a) N_0^2(z_a)} dx dy\\[6mm]
3178
 C & = & \int_B \frac{\rho_0(z_b) g f \theta^*(x,y,z_b)}{\theta_0(z_b) N_0^2(z_b)} dx dy\\
3179
\end{eqnarray*}
3180
 
3181
\vspace{0.3cm}
3182
\noindent
3183
The difference between these two lines is the contents of the next line:
3184
 
3185
\begin{eqnarray*}
3186
 D  & = & \int_B \frac{\rho_0(z_a) g f \theta^*(x,y,z_a)}{\theta_0(z_a) N_0^2(z_a)} dx dy
3187
                     - \int_B \frac{\rho_0(z_b) g f \theta^*(x,y,z_b)}{\theta_0(z_b) N_0^2(z_b)} dx dy\\
3188
\end{eqnarray*}
3189
 
3190
\noindent 
3191
Note that this term D corresponds to the last two terms in expression~A.
3192
With these expressions an estimate can be made for the correction which would eliminate the inconsistency
3193
of the boundary conditions with respect to the interior distribution of quasi-geostrophic PV. This adjustment
3194
of potential temperature is the next line
3195
 
3196
\begin{eqnarray*}
3197
 \theta^* & = & A / D
3198
\end{eqnarray*}
3199
 
3200
\vspace{0.3cm}
3201
\noindent
3202
and corresponds with the aforementioned expression for $\theta^*$.
3203
Finally, in the last two lines the shift in potential temperature at the upper and at the
3204
lower boundary is given, together with the mean potential temperatures at these two boundaries.
3205
At the moment, no shift (value 0 in the output lines) is performed, i.e. the inconsistency in the boundary conditions
3206
is not "solved". 
3207
 
3208
 
3209
\subsection{Convergence of the quasi-geostrophic inversion [diag2]}
3210
 
3211
The key numerical algorithm is the inversion of the quasi-geostrophic PV equation (see section~4.5.3). 
3212
It relates the PV to the streamfunction by\\[-0.3cm]
3213
 
3214
\[
3215
q_a = \frac{\partial^2\psi}{\partial x^2} + \frac{\partial^2\psi}{\partial y^2} +
3216
\frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} ( \frac{\rho_0}{N_0^2}
3217
\cdot \frac{\partial \psi}{\partial z}
3218
\]
3219
 
3220
\vspace{0.3cm}
3221
\noindent
3222
with the boundary conditions of potential temperature at the lower and upper lid, and of horizontal wind
3223
components at the lateral sides of the inversion domain:\\[-0.3cm]
3224
 
3225
\[
3226
g \cdot \frac{\theta^*}{\theta_0} = f \cdot \frac{\partial \psi}{\partial z}
3227
\quad \quad
3228
u = -\frac{\partial \psi}{\partial y}
3229
\quad \quad
3230
v  =  \frac{\partial \psi}{\partial x} 
3231
\]
3232
 
3233
\begin{figure}[t]
3234
\begin{center}
3235
\begin{minipage}[t]{8.3cm}
3236
  \ForceWidth{1.0\textwidth}
3237
  \BoxedEPSF{qgpv_k35_calc.eps}
3238
\end{minipage}
3239
\hspace{-1cm}
3240
\begin{minipage}[t]{8.3cm}
3241
  \ForceWidth{1.0\textwidth}
3242
  \BoxedEPSF{qgpv_k35_spec.eps}
3243
\end{minipage}  
3244
\\
3245
\caption{\it Comparison of calculated (left) and pre-described (right) quasi-geostrophic PV. }
3246
\label{compqg}
3247
\end{center}
3248
\end{figure}
3249
 
3250
\vspace{0.3cm}
3251
\noindent
3252
The numerical solution by means of the successive over-relaxation (SOR) technique
3253
then completely determines the perturbations of potential temperature and of horizontal wind. These meteorological fields can be expressed
3254
in the following way by the streamfunction (see also section~2):
3255
 
3256
\begin{eqnarray*}
3257
\theta^* & = & \frac{f}{g} \cdot \theta_0 \cdot \frac{\partial \psi}{\partial z}\\
3258
u        & = & - \frac{\partial \psi}{\partial y}\\
3259
v        & = &   \frac{\partial \psi}{\partial x}\\
3260
\end{eqnarray*}
3261
 
3262
\vspace{0.3cm}
3263
\noindent
3264
This allows a simple test whether the inversion of the quasi-geostrophic equation was successful. Indeed, the
3265
quasi-geostrophic PV can be calculated from the perturbation fields:
3266
 
3267
\[
3268
q_c = \frac{\partial^2\psi}{\partial x^2} + \frac{\partial^2\psi}{\partial y^2} +
3269
\frac{f^2}{\rho_0} \cdot \frac{\partial}{\partial z} ( \frac{\rho_0}{N_0^2}
3270
\cdot \frac{\partial \psi}{\partial z})
3271
\]
3272
 
3273
\vspace{0.3cm}
3274
\noindent
3275
If the inversion was successful, this calculated quasi-geostrophic PV ($q_c$) must coincide with the 
3276
pre-described PV ($q_a$). For the present case study, the validation is shown in Fig.\,\ref{compqg} for the first step
3277
of the iteration. The two panels show the calculated and the pre-described PV, respectively, and it becomes
3278
immediately clear that a reasonable degree of convergence was reached.\\
3279
 
3280
 
3281
\noindent
3282
The calculation of the quasi-geostrophic PV is accomplished with the call\\[-0.3cm]
3283
\begin{center}
3284
\begin{minipage}[t]{13cm}
3285
\begin{verbatim}
3286
inversion.sh diag2 ANO
3287
\end{verbatim}
3288
\end{minipage}
3289
\end{center}
3290
 
3291
\vspace{0.3cm}
3292
\noindent
3293
where the second argument (ANO) specifies that the ANO\_20060116\_18 file is taken for the
3294
calculation. It is implictely assumed that the reference file is available on the corresponding REF file. The output of the calculation is then written to the same ANO\_20060116\_18 file,
3295
with the name QGPV\_DIAG. Hence the table of modified fields and files is:
3296
 
3297
\begin{center}
3298
\begin{tabular}{|l|l|l|}
3299
\hline
3300
QGPV\_DIAG           & Calculated quasi-geostrophic PV ($1/s$)    & ANO\_20060116\_18 \\
3301
\hline
3302
\end{tabular}
3303
\end{center}
3304
\vspace{0.3cm}
3305
 
3306
\subsection{Difference between two files [diag3]}
3307
 
3308
\begin{figure}[t]
3309
\begin{center}
3310
\begin{minipage}[t]{16cm}
3311
  \vspace{-1cm}
3312
  \ForceWidth{1.0\textwidth}
3313
  \BoxedEPSF{difference.eps}
3314
\end{minipage}
3315
\\[-0.5cm]
3316
\caption{\it Difference between the ORG and the MOD file in a vertical cross section. In color, the difference of the meridional
3317
wind velocity is shown. The difference of potential temperature is given by the thin lines (black:positive,
3318
blue:negative). The bold black line is the 2.5 isoline of the difference of Ertel's PV. }
3319
\label{diff}
3320
\end{center}
3321
\end{figure}
3322
 
3323
The impact of a PV anomaly is most easily determined if the meteorological fields (temperature, velocity,
3324
pressure,...) in the presence of the anomaly is subtracted from the corresponding fields in the absence 
3325
of the anomaly. The change in the meteorological fields can then be attributed to the PV anomaly. In order
3326
to facilitate this with/without comparison, a diagnostic tool is provide which calculates the difference.
3327
For instance, the call to 
3328
\begin{center}
3329
\begin{minipage}[t]{11cm}
3330
\begin{verbatim}
3331
inversion.sh diag3 ORG MOD
3332
\end{verbatim}
3333
\end{minipage}
3334
\end{center}
3335
 
3336
\vspace{0.3cm}
3337
\noindent
3338
takes the ORG and MOD file in the run directory and calculates the difference of all fields which
3339
are available on both input files. The difference fields are then written to a new file with prefix DIA. 
3340
An example is shown in Fig.\,\ref{diff}.
3341
 
3342
% ---------------------------------------------------------------------------------------------
3343
% Final Remarks  
3344
% ---------------------------------------------------------------------------------------------
3345
 
3346
\newpage
3347
 
3348
\section{Final Remarks and Outlook}
3349
 
3350
Several additional extensions are possible for the PV inversion tool introduced in this study. Most of them will attract a lot of interest in the research and education community. Some extensions which are and will be undertaken recently in our institute are:
3351
 
3352
\begin{itemize}
3353
\item [a] The PV inversion is not only of interest in real-case studies, as was described in this work. Considerable insight can also be gained by looking at highly idealised experiments. Such experiments enforce the existence of a tool which allows to set set up them. In the course of this diploma thesis, such a tool was developed. However, it was considered to be preferable to limit 
3354
the thesis's documentation itself to the real-case experiments.\\ 
3355
\item [b] Removing and adding, or more generally modifying the initial PV distribution, is particularly interesting if the modified state of the atmosphere is used as the input -initial
3356
and boundary values- for a regional weather prediction model. This kind of experiments allows to
3357
assess in a quantitative way how the PV field influences the future weather development. In parallel to this thesis a program package has been developed at the Institute for Atmospheric and Climate Science at ETH Zurich (IACETH) which allows to transform
3358
the (modified) P files of the PV inversion directly into the input and boundary files for the
3359
Climate HRM model. It is the aim that some case studies will be undertaken in this way by a
3360
diploma student at our institute.\\
3361
\item [c] From the quasi-geostrophic omega equation it is well known that PV structures are able to
3362
enforce vertical motions. These are particularly interesting because vertical motion leads to
3363
condensation or convective instability, if the vertical temperature and humidity profile are suitable. Therefore,
3364
it would be of great interest to see how the modified PV distribution is associated with different
3365
vertical motions. Technically this means that an additional equation, the aforementioned
3366
quasi-geostrophic omega equation, has to be solved. In the coming summer semester, a student with focus on scientific 
3367
programming will attack this problem.\\
3368
\item [d] Teaching atmospheric dynamics at the graduate level involves several challenges. One 
3369
particular challenge is associated with the abstract concept of potential vorticity. An easy-to-use
3370
PV inversion tool might be of great relieve to the teacher since he can easily illustrate and
3371
apply the concepts to real and idealised cases. It is quite certain that such a visualisation help 
3372
would be much appreciated by graduate students in atmospheric dynamics. It is one aim of the
3373
dynamic's group at {\it IAC}ETHto improve teaching in this respect, while keeping the mathematical and physical
3374
level of the taught contents.
3375
\end{itemize}
3376
 
3377
 
3378
\newpage
3379
\section{Acknowledgment}
3380
 
3381
 
3382
There are many persons which need to be mentioned in this acknowledgment. Perhaps, most crucially is
3383
a heartily thanks to Rene Fehlmann who initially developed the inversion tool. I had the joy to start my atmospheric research under Rene's supervision, and his enthusiasm for mathematics, numerics and atmosphere
3384
always was and still is very inspiring for me. \\
3385
 
3386
\noindent
3387
Recently I read that success in science cannot be attributed solely to one's own intelligence an
3388
"superiority". And with my long experience in science, I fully agree with that statement. Success needs
3389
luck, and last but not least it needs excellent teachers, supervisors and colleagues. I had the great pleasure
3390
to work together and get help from excellent scientists and teachers: Christoph Sch\"ar, Heini Wernli and Huw Davies. I appreciated very much their scientific qualities, but probably still more their warmth and
3391
friendliness as colleagues.\\
3392
 
3393
\noindent
3394
Many research colleagues were indirectly important in the development of this PV inversion tool. Conny Schwierz, Olivia Martius, Mischa Croci-Maspoli, Sarah Kew. Certainly, thanks should also go to Linda Schlemmer who 
3395
accepted a diploma thesis based on this tool, and is now testing all aspects of it.\\ 
3396
 
3397
\noindent 
3398
Finally, this work was done in the frame of the postgraduate course in Computer Science at the Fernfachhochschule Schweiz. Thanks goes to all teachers, and in particular to Lars Kruse who accepted to  supervise this diploma thesis and discussed with me the different steps. Although we had some 
3399
different views what should be included into this thesis ("Why do you want to send this part to the appendix? This is a diploma thesis,...") I enjoyed working with him, particularly because of his interest in the atmospheric sciences. 
3400
 
3401
 
3402
\newpage
3403
\section{References}
3404
 
3405
\noindent 
3406
{\bf [1]} Acheson, D.\,J., 1990:
3407
Elementary Fluid Dynamics.
3408
{\sl Oxford Applied Mathematics and Computing Science Series,}, Oxford UP, 395pp.\\
3409
 
3410
\noindent 
3411
{\bf [2]} Appenzeller, C., H.~C.~Davies, and W.~A.~Norton, 1996:
3412
Fragmentation of stratospheric intrusions.
3413
{\sl J.~Geophys.~Res.,} {\bf 101,} 1435-1456.\\
3414
 
3415
\noindent
3416
{\bf [3]} Hoskins, B.\,J., M.\,E.\,McIntyre, and A.\,W.\,Robertson, 1985: 
3417
On the use and significance of isentropic potential vorticity maps. Quart.\,J.\,Roy.\,Meteor.\,Soc.,{\bf 111}, 877-946.\\
3418
 
3419
\noindent
3420
{\bf [4]} Bluestein,\,H.\,B., 1993:
3421
Synoptic-Dynamic Meteorology in Midlatitudes. Volume II: Observations and Theory of Weather Systems, Oxford University Press, {594 pp}.\\
3422
 
3423
\noindent
3424
{\bf [5]} Charney, J.\,B., 1993:
3425
On the scale of atmospheric motions. Geofysisk.\,Publ.,{\bf 17}, No.\,2.\\
3426
 
3427
\noindent
3428
{\bf [6]} Davis, C.\,A., 1992:
3429
 Piecewise potential vorticity inversion. J.\,Atmos.\,Sci., {\bf 49}, 1397-1411.\\
3430
 
3431
\noindent
3432
{\bf [7]} Davis, C.\,A., and K.\,A.\,Emanuel, 1992:
3433
Potential vorticity diagnostic of cyclogenesis. Mon.\,Wea.\,Rev., {\bf 119}, 1929-1953.\\
3434
 
3435
\noindent
3436
{\bf [8]} Ertel, H., 1942:
3437
Ein neuer hydrodynamischer Wirbelsatz. Meteor.\,Z., {\bf 59}, 277-281.\\
3438
 
3439
\noindent
3440
{\bf [9]} Fehlmann, R., 1997:
3441
Dynamics of seminal PV elements.
3442
PhD thesis No. 12229, ETH Z\"urich, 143 pp.\\
3443
 
3444
\noindent
3445
{\bf [10]} Fehlmann, R. and H.\,C.\,Davies, 1997:
3446
Misforecasts of synoptic systems: Diagnosis via PV retrodiction. Mon.\,Wea.\,Rev., {\bf 125}, 2247-2264.\\
3447
 
3448
 
3449
\noindent
3450
{\bf [11]} Holton, J.\,R., 1992:
3451
An Introduction to Dynamic Meteorology. Third Edition.
3452
Academic Press, San Diego, California, 511pp.\\
3453
 
3454
\noindent
3455
{\bf [12]} Kleinschmidt, E., 1950:
3456
\"Uber Aufbau und Entstehung von Zyklonen. Teil 1. Meteor.\,Rundsch., {\bf 3}, 1-6.\\
3457
 
3458
\noindent
3459
{\bf [13]} Martius, O., E.\,Zenklusen, C. Schwierz, and H.\,C.\,Davies 2006:
3460
Episodes of alpine heavy precipitation with an overlying elongated stratospheric intrusion: a climatology. Intl.\,J.\,Climatology., {\bf Vol. 96, Issue 9}, 1149-1164.\\
3461
 
3462
\noindent
3463
{\bf [14]} McIntyre, M., 1997:
3464
GEFD (Geophysical and Environmental Fluid Dynamics) Summer School, DAMPTP University of Cambridge.\\
3465
 
3466
\noindent
3467
{\bf [15]} Lynch, P., 2006:
3468
The Emergence of Numerical Weather Prediction. Richardson's Dream.
3469
Cambridge UP, Cambridge, UK. 279pp.\\
3470
 
3471
\noindent
3472
{\bf [16]} Nebeker, F., 1995:
3473
Calculating the Weather. Meteorology in the 20th Century..
3474
Academic Press, San Diego, California, 255pp.\\
3475
 
3476
\noindent
3477
{\bf [17]} Press, W.\,H., Flannery, B.\,P., Teukolsky, S.\,A., and Vetterling, W.\,T., 1992:
3478
Numerical Recipes in FORTRAN: The Art of Scientific Computing.
3479
Cambridge University Press, Cambridge, UK, 1447pp.\\
3480
 
3481
 
3482
\noindent
3483
{\bf [18]} Sprenger, M.~and H.~Wernli, 2003:
3484
A northern hemispheric climatology of cross-tropopause exchange for the ERA15
3485
time period (1979-1993).
3486
{\sl J.~Geophys.~Res.,} {\bf 108}(D12), 8521, doi:10.1029/2002JD002636.\\
3487
 
3488
\noindent
3489
{\bf [19]} Stohl, A., P. Bonasoni, P. Cristofanelli, W. Collins, J. Feichter,
3490
A. Frank, C. Forster, E. Gerasopoulos, H. G\"uggeler, P. James,
3491
T. Kentarchos, H. Kromp-Kolb, B. Kr\"uger, C. Land, J. Meloen,
3492
A. Papayannis, A. Priller, P. Seibert, M. Sprenger, G. J. Roelofs,
3493
H. E. Scheel, C. Schnabel, P. Siegmund, L. Tobler, T. Trickl,
3494
H. Wernli, V. Wirth, P. Zanis, and C. Zerefos: 2003.
3495
Stratosphere-troposphere exchange: A review, and what we have learned from STACCATO.
3496
J.\,Geophys.\,Res.,{\bf Vol. 108}, No. D12, 8516, doi:10.1029/2002JD002490.\\
3497
 
3498
 
3499
\noindent
3500
{\bf [20]} Wallace, J.\,M. and P.\,V.\,Hobbs, R., 1977:
3501
Atmospheric Science. An Introductory Survey.
3502
Academic Press, San Diego, California, 467pp.\\
3503
 
3504
 
3505
 
3506
\newpage
3507
\section{Appendix}
3508
 
3509
\subsection{Scalar co-ordinate transformation}
3510
 
3511
Four real function are needed for the transformation between the geographical latitude/-longitude grid
3512
used by ECMWF and the quasi-cartesian grid used by the PV inversion. Physically the new quasi-cartesian
3513
co-ordinate system is obtained by introducing a new latitude/longitude grid, but now the two co-ordinates
3514
being defined relative to a rotated north pole. Therefore, the new longitude and latitude are referred to as rotated co-ordinates. The position (in geographical latitude and longitude) of the new north pole is given as parameters POLPHI and POLLAM. Then, the functions\\[-0.3cm]
3515
\begin{center}
3516
\begin{minipage}[t]{13cm}
3517
\begin{verbatim}
3518
 LAM = REAL FUNCTION LMSTOLM (PHIS, LAMS, POLPHI, POLLAM)
3519
 PHI = REAL FUNCTION PHSTOPH (PHIS, LAMS, POLPHI, POLLAM)
3520
\end{verbatim}
3521
\end{minipage}
3522
\end{center}
3523
 
3524
\vspace{0.3cm}
3525
\noindent
3526
relate the rotated latitude (PHIS) and longitude (LAMS) to corresponding latitude (PHI) and
3527
longitude (LAM) in the geographical system. Correspondingly, the following two functions give
3528
the reverse transformation, i.e. to every position in geographical latitude/longitude a rotated
3529
pair of co-ordinates is attributed. Again, the pole position (in the geographical grid) must be
3530
passed as parameters (POLPHI and POLLAT).\\[-0.3cm]
3531
\begin{center}
3532
\begin{minipage}[t]{13cm}
3533
\begin{verbatim}
3534
 LAMS = REAL FUNCTION LMTOLMS (PHI, LAM, POLPHI, POLLAM)
3535
 PHIS = REAL FUNCTION PHTOPHS (PHI, LAM, POLPHI, POLLAM)
3536
\end{verbatim}
3537
\end{minipage}
3538
\end{center}
3539
 
3540
\vspace{0.3cm}
3541
\noindent
3542
Here, the geographical co-ordinates (PHI, LAM) are transformed into rotated co-ordinates (PHIS, LAMS).
3543
If the corresponding pair of coordinates are given, any scalar field can easily be transformed. The following
3544
Fortran functions are taken from the source code from the numerical weather prediction model of the German/Swiss weather service.
3545
 
3546
 
3547
\begin{small}
3548
\begin{verbatim}
3549
C     -------------------------------------------------------------------------
3550
      REAL FUNCTION LMSTOLM (PHIS, LAMS, POLPHI, POLLAM)
3551
C     -------------------------------------------------------------------------      
3552
C
3553
C**** LMSTOLM  -   FC:BERECHNUNG DER WAHREN GEOGRAPHISCHEN LAENGE FUER
3554
C****                 EINEN PUNKT MIT DEN KOORDINATEN (PHIS, LAMS)
3555
C****                 IM ROTIERTEN SYSTEM. DER NORDPOL DES SYSTEMS HAT
3556
C****                 DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3557
C**   AUFRUF   :   LAM = LMSTOLM (PHIS, LAMS, POLPHI, POLLAM)
3558
C**   ENTRIES  :   KEINE
3559
C**   ZWECK    :   BERECHNUNG DER WAHREN GEOGRAPHISCHEN LAENGE FUER
3560
C**                EINEN PUNKT MIT DEN KOORDINATEN (PHIS, LAMS)
3561
C**                IM ROTIERTEN SYSTEM. DER NORDPOL DIESES SYSTEMS HAT
3562
C**                DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3563
C**   VERSIONS-
3564
C**   DATUM    :   03.05.90
3565
C**
3566
C**   EXTERNALS:   KEINE
3567
C**   EINGABE-
3568
C**   PARAMETER:   PHIS     REAL   GEOGR. BREITE DES PUNKTES IM ROT.SYS.
3569
C**                LAMS     REAL   GEOGR. LAENGE DES PUNKTES IM ROT.SYS.
3570
C**                POLPHI   REAL   WAHRE GEOGR. BREITE DES NORDPOLS
3571
C**                POLLAM   REAL   WAHRE GEOGR. LAENGE DES NORDPOLS
3572
C**   AUSGABE-
3573
C**   PARAMETER:   WAHRE GEOGRAPHISCHE LAENGE ALS WERT DER FUNKTION
3574
C**                ALLE WINKEL IN GRAD (NORDEN>0, OSTEN>0)
3575
C**
3576
C**   COMMON-
3577
C**   BLOECKE  :   KEINE
3578
C**
3579
C**   FEHLERBE-
3580
C**   HANDLUNG :   KEINE
3581
C**   VERFASSER:   D.MAJEWSKI
3582
 
3583
      REAL        LAMS,PHIS,POLPHI,POLLAM
3584
 
3585
      DATA        ZRPI18 , ZPIR18  / 57.2957795 , 0.0174532925 /
3586
 
3587
      ZSINPOL = SIN(ZPIR18*POLPHI)
3588
      ZCOSPOL = COS(ZPIR18*POLPHI)
3589
      ZLAMPOL = ZPIR18*POLLAM
3590
      ZPHIS   = ZPIR18*PHIS
3591
      ZLAMS   = LAMS
3592
      IF(ZLAMS.GT.180.0) ZLAMS = ZLAMS - 360.0
3593
      ZLAMS   = ZPIR18*ZLAMS
3594
 
3595
      ZARG1   = SIN(ZLAMPOL)*(- ZSINPOL*COS(ZLAMS)*COS(ZPHIS)  +
3596
     1                          ZCOSPOL*           SIN(ZPHIS)) -
3597
     2          COS(ZLAMPOL)*           SIN(ZLAMS)*COS(ZPHIS)
3598
      ZARG2   = COS(ZLAMPOL)*(- ZSINPOL*COS(ZLAMS)*COS(ZPHIS)  +
3599
     1                          ZCOSPOL*           SIN(ZPHIS)) +
3600
     2          SIN(ZLAMPOL)*           SIN(ZLAMS)*COS(ZPHIS)
3601
      IF (ABS(ZARG2).LT.1.E-30) THEN
3602
        IF (ABS(ZARG1).LT.1.E-30) THEN
3603
          LMSTOLM =   0.0
3604
        ELSEIF (ZARG1.GT.0.) THEN
3605
              LMSTOLAM =  90.0
3606
            ELSE
3607
              LMSTOLAM = -90.0
3608
            ENDIF
3609
      ELSE
3610
        LMSTOLM = ZRPI18*ATAN2(ZARG1,ZARG2)
3611
      ENDIF
3612
 
3613
      RETURN
3614
      END
3615
 
3616
C     -------------------------------------------------------------------------     
3617
      REAL FUNCTION PHSTOPH (PHIS, LAMS, POLPHI, POLLAM)
3618
C     -------------------------------------------------------------------------
3619
C
3620
C**** PHSTOPH  -   FC:BERECHNUNG DER WAHREN GEOGRAPHISCHEN BREITE FUER
3621
C****                 EINEN PUNKT MIT DEN KOORDINATEN (PHIS, LAMS) IM
3622
C****                 ROTIERTEN SYSTEM. DER NORDPOL DIESES SYSTEMS HAT
3623
C****                 DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3624
C**   AUFRUF   :   PHI = PHSTOPH (PHIS, LAMS, POLPHI, POLLAM)
3625
C**   ENTRIES  :   KEINE
3626
C**   ZWECK    :   BERECHNUNG DER WAHREN GEOGRAPHISCHEN BREITE FUER
3627
C**                EINEN PUNKT MIT DEN KOORDINATEN (PHIS, LAMS) IM
3628
C**                ROTIERTEN SYSTEM. DER NORDPOL DIESES SYSTEMS HAT
3629
C**                DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3630
C**   VERSIONS-
3631
C**   DATUM    :   03.05.90
3632
C**
3633
C**   EXTERNALS:   KEINE
3634
C**   EINGABE-
3635
C**   PARAMETER:   PHIS     REAL   GEOGR. BREITE DES PUNKTES IM ROT.SYS.
3636
C**                LAMS     REAL   GEOGR. LAENGE DES PUNKTES IM ROT.SYS.
3637
C**                POLPHI   REAL   WAHRE GEOGR. BREITE DES NORDPOLS
3638
C**                POLLAM   REAL   WAHRE GEOGR. LAENGE DES NORDPOLS
3639
C**   AUSGABE-
3640
C**   PARAMETER:   WAHRE GEOGRAPHISCHE BREITE ALS WERT DER FUNKTION
3641
C**                ALLE WINKEL IN GRAD (NORDEN>0, OSTEN>0)
3642
C**
3643
C**   COMMON-
3644
C**   BLOECKE  :   KEINE
3645
C**
3646
C**   FEHLERBE-
3647
C**   HANDLUNG :   KEINE
3648
C**   VERFASSER:   D.MAJEWSKI
3649
 
3650
      REAL        LAMS,PHIS,POLPHI,POLLAM
3651
 
3652
      DATA        ZRPI18 , ZPIR18  / 57.2957795 , 0.0174532925 /
3653
 
3654
      SINPOL = SIN(ZPIR18*POLPHI)
3655
      COSPOL = COS(ZPIR18*POLPHI)
3656
      ZPHIS  = ZPIR18*PHIS
3657
      ZLAMS  = LAMS
3658
      IF(ZLAMS.GT.180.0) ZLAMS = ZLAMS - 360.0
3659
      ZLAMS  = ZPIR18*ZLAMS
3660
      ARG     = COSPOL*COS(ZPHIS)*COS(ZLAMS) + SINPOL*SIN(ZPHIS)
3661
 
3662
      PHSTOPH = ZRPI18*ASIN(ARG)
3663
 
3664
      RETURN
3665
      END
3666
 
3667
C     -------------------------------------------------------------------------         
3668
      REAL FUNCTION LMTOLMS (PHI, LAM, POLPHI, POLLAM)
3669
C     -------------------------------------------------------------------------   
3670
C
3671
C%Z% Modul %M%, V%I% vom %G%, extrahiert am %H%
3672
C
3673
C**** LMTOLMS  -   FC:UMRECHNUNG DER WAHREN GEOGRAPHISCHEN LAENGE LAM
3674
C****                 AUF EINEM PUNKT MIT DEN KOORDINATEN (PHIS, LAMS)
3675
C****                 IM ROTIERTEN SYSTEM. DER NORDPOL DES SYSTEMS HAT
3676
C****                 DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3677
C**   AUFRUF   :   LAM = LMTOLMS (PHI, LAM, POLPHI, POLLAM)
3678
C**   ENTRIES  :   KEINE
3679
C**   ZWECK    :   UMRECHNUNG DER WAHREN GEOGRAPHISCHEN LAENGE LAM AUF
3680
C**                EINEM PUNKT MIT DEN KOORDINATEN (PHIS, LAMS) IM
3681
C**                ROTIERTEN SYSTEM. DER NORDPOL DIESES SYSTEMS HAT
3682
C**                DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3683
C**   VERSIONS-
3684
C**   DATUM    :   03.05.90
3685
C**
3686
C**   EXTERNALS:   KEINE
3687
C**   EINGABE-
3688
C**   PARAMETER:   PHI    REAL BREITE DES PUNKTES IM GEOGR. SYSTEM
3689
C**                LAM    REAL LAENGE DES PUNKTES IM GEOGR. SYSTEM
3690
C**                POLPHI REAL GEOGR.BREITE DES N-POLS DES ROT. SYSTEMS
3691
C**                POLLAM REAL GEOGR.LAENGE DES N-POLS DES ROT. SYSTEMS
3692
C**   AUSGABE-
3693
C**   PARAMETER:   WAHRE GEOGRAPHISCHE LAENGE ALS WERT DER FUNKTION
3694
C**                ALLE WINKEL IN GRAD (NORDEN>0, OSTEN>0)
3695
C**
3696
C**   COMMON-
3697
C**   BLOECKE  :   KEINE
3698
C**
3699
C**   FEHLERBE-
3700
C**   HANDLUNG :   KEINE
3701
C**   VERFASSER:   G. DE MORSIER
3702
 
3703
      REAL        LAM,PHI,POLPHI,POLLAM
3704
 
3705
      DATA        ZRPI18 , ZPIR18  / 57.2957795 , 0.0174532925 /
3706
 
3707
      ZSINPOL = SIN(ZPIR18*POLPHI)
3708
      ZCOSPOL = COS(ZPIR18*POLPHI)
3709
      ZLAMPOL =     ZPIR18*POLLAM
3710
      ZPHI    =     ZPIR18*PHI
3711
      ZLAM    = LAM
3712
      IF(ZLAM.GT.180.0) ZLAM = ZLAM - 360.0
3713
      ZLAM    = ZPIR18*ZLAM
3714
 
3715
      ZARG1   = - SIN(ZLAM-ZLAMPOL)*COS(ZPHI)
3716
      ZARG2   = - ZSINPOL*COS(ZPHI)*COS(ZLAM-ZLAMPOL)+ZCOSPOL*SIN(ZPHI)
3717
      IF (ABS(ZARG2).LT.1.E-30) THEN
3718
        IF (ABS(ZARG1).LT.1.E-30) THEN
3719
          LMTOLMS =   0.0
3720
        ELSEIF (ZARG1.GT.0.) THEN
3721
              LMTOLMS =  90.0
3722
            ELSE
3723
              LMTOLMS = -90.0
3724
            ENDIF
3725
      ELSE
3726
        LMTOLMS = ZRPI18*ATAN2(ZARG1,ZARG2)
3727
      ENDIF
3728
 
3729
      RETURN
3730
      END
3731
 
3732
C     -------------------------------------------------------------------------   
3733
      REAL FUNCTION PHTOPHS (PHI, LAM, POLPHI, POLLAM)
3734
C     -------------------------------------------------------------------------         
3735
C
3736
C%Z% Modul %M%, V%I% vom %G%, extrahiert am %H%
3737
C
3738
C**** PHTOPHS  -   FC:UMRECHNUNG DER WAHREN GEOGRAPHISCHEN BREITE PHI
3739
C****                 AUF EINEM PUNKT MIT DEN KOORDINATEN (PHIS, LAMS)
3740
C****                 IM ROTIERTEN SYSTEM. DER NORDPOL DES SYSTEMS HAT
3741
C****                 DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3742
C**   AUFRUF   :   PHI = PHTOPHS (PHI, LAM, POLPHI, POLLAM)
3743
C**   ENTRIES  :   KEINE
3744
C**   ZWECK    :   UMRECHNUNG DER WAHREN GEOGRAPHISCHEN BREITE PHI AUF
3745
C**                EINEM PUNKT MIT DEN KOORDINATEN (PHIS, LAMS) IM
3746
C**                ROTIERTEN SYSTEM. DER NORDPOL DIESES SYSTEMS HAT
3747
C**                DIE WAHREN KOORDINATEN (POLPHI, POLLAM)
3748
C**   VERSIONS-
3749
C**   DATUM    :   03.05.90
3750
C**
3751
C**   EXTERNALS:   KEINE
3752
C**   EINGABE-
3753
C**   PARAMETER:   PHI    REAL BREITE DES PUNKTES IM GEOGR. SYSTEM
3754
C**                LAM    REAL LAENGE DES PUNKTES IM GEOGR. SYSTEM
3755
C**                POLPHI REAL GEOGR.BREITE DES N-POLS DES ROT. SYSTEMS
3756
C**                POLLAM REAL GEOGR.LAENGE DES N-POLS DES ROT. SYSTEMS
3757
C**   AUSGABE-
3758
C**   PARAMETER:   ROTIERTE BREITE PHIS ALS WERT DER FUNKTION
3759
C**                ALLE WINKEL IN GRAD (NORDEN>0, OSTEN>0)
3760
C**
3761
C**   COMMON-
3762
C**   BLOECKE  :   KEINE
3763
C**
3764
C**   FEHLERBE-
3765
C**   HANDLUNG :   KEINE
3766
C**   VERFASSER:   G. DE MORSIER
3767
 
3768
      REAL        LAM,PHI,POLPHI,POLLAM
3769
 
3770
      DATA        ZRPI18 , ZPIR18  / 57.2957795 , 0.0174532925 /
3771
 
3772
      ZSINPOL = SIN(ZPIR18*POLPHI)
3773
      ZCOSPOL = COS(ZPIR18*POLPHI)
3774
      ZLAMPOL = ZPIR18*POLLAM
3775
      ZPHI    = ZPIR18*PHI
3776
      ZLAM    = LAM
3777
      IF(ZLAM.GT.180.0) ZLAM = ZLAM - 360.0
3778
      ZLAM    = ZPIR18*ZLAM
3779
      ZARG    = ZCOSPOL*COS(ZPHI)*COS(ZLAM-ZLAMPOL) + ZSINPOL*SIN(ZPHI)
3780
 
3781
      PHTOPHS = ZRPI18*ASIN(ZARG)
3782
 
3783
      RETURN
3784
      END
3785
\end{verbatim}
3786
\end{small}
3787
 
3788
\newpage
3789
\subsection{Controlling Linux Shell Script}
3790
 
3791
In this appendix the controlling Linux Shell script of the PV inversion is reproduced. This script
3792
offers a user-friendly interface to the inversion. It is essentially split into five
3793
different section: (1) installation and parameter settings, (2) preparatory steps, (3) 
3794
iterative solution of the PV inversion problem, (4) post-processing, and (5) diagnostic 
3795
tools.\\  
3796
 
3797
\begin{small}
3798
\begin{verbatim}
3799
#!/bin/csh
3800
 
3801
# Master Linux script for PV inversion
3802
# Michael Sprenger / Winter 2006,2007
3803
 
3804
# -------------------------------------------------------------------
3805
# Set some variables and paths
3806
# -------------------------------------------------------------------
3807
 
3808
# Handling of input parameters
3809
set step="help"
3810
if ( $#argv == 1 ) then
3811
  set step=$1
3812
endif
3813
if ( $#argv == 2 ) then
3814
  set step=$1
3815
  set file1=$2
3816
endif
3817
if ( $#argv == 3 ) then
3818
  set step=$1
3819
  set file1=$2
3820
  set file2=$3
3821
endif
3822
 
3823
# Set base directory for programmes
3824
set bdir=/home/sprenger/PV_Inversion_Tool/real/
3825
 
3826
# Set name of the parameter file, the coastline file and the sample files
3827
set parafile="${PWD}/inversion.param"
3828
set coastfile="${bdir}/prep/coastline.dat"
3829
set sampledir="/net/rossby/lhome/sprenger/PV_Inversion_Tool/real/inp/"
3830
 
3831
# Extract parameters from parameter file
3832
set progex=${bdir}/inversion.perl
3833
set    date=`${progex} ${parafile} date           | awk '{ print $2}'`
3834
set nofiter=`${progex} ${parafile} n_of_iteration | awk '{ print $2}'`
3835
set    save=`${progex} ${parafile} save_iteration | awk '{ print $2}'`
3836
set    idir=`${progex} ${parafile} inp_dir        | awk '{ print $2}'`
3837
set    rdir=`${progex} ${parafile} run_dir        | awk '{ print $2}'`
3838
set    odir=`${progex} ${parafile} out_dir        | awk '{ print $2}'`
3839
 
3840
# ---------------------------------------------------------------------------
3841
# Installation, help and sample
3842
# ---------------------------------------------------------------------------
3843
 
3844
# Create the needed directories
3845
if ( ${step} == "inst" ) then  
3846
  if ( ! -d ${idir} ) mkdir ${idir}
3847
  if ( ! -d ${rdir} ) mkdir ${rdir}
3848
  if ( ! -d ${odir} ) mkdir ${odir}
3849
endif
3850
 
3851
# Create the needed directories
3852
if ( ${step} == "help" ) then 
3853
  echo 
3854
  echo "Installation"
3855
  echo "   inst:   Creates the input, run and output directory"
3856
  echo 
3857
  echo "Sample case study"
3858
  echo "   sample: Copy all files for a sample case study"
3859
  echo 
3860
  echo "Preparing input files [prep]"
3861
  echo "   prep0:  Calculate S file with PV and TH"
3862
  echo "   prep1:  Interpolate onto height levels"
3863
  echo "   prep2:  Rotate into local cartesian co-ordinate system"
3864
  echo "   prep3:  Add TH,PV,NSQ and RHO to the data file"
3865
  echo "   prep4:  Define modified and anomaly PV field and boundary values"
3866
  echo "   prep5:  Reduce the domain size and split the input files" 
3867
  echo "   prep6:  Add the reference profile"
3868
  echo "   prep7:  Add coastlines to REF file"
3869
  echo "   prep8:  Move the files to the run directory"
3870
  echo
3871
  echo "Perform the PV inversion [pvin]"
3872
  echo "   pvin1:  Add NSQ, TH, RHO, and PV"
3873
  echo "   pvin2:  Change Ertel's PV anomaly into one of quasi-geostrophic PV"
3874
  echo "   pvin3:  Inversion of quasi-geostrophic PV anomaly"
3875
  echo "   pvin4:  Subtract anomaly from MOD file"
3876
  echo "   pvin5:  Keep iterative steps if save flag is set"
3877
  echo
3878
  echo "Postprocessing [post]"
3879
  echo "   post1:  Copy needed files from input and run directory" 
3880
  echo "   post2:  Rotate from quasi-cartesian co-ordinate frame to lat/lon system"
3881
  echo "   post3:  Bring modified fields back to P file" 
3882
  echo "   post4:  Calculate S file with PV and TH"
3883
  echo "   post5:  Make clean"
3884
  echo
3885
  echo "Diagnostic Tools"
3886
  echo "   diag1:  Check the consistency of the boundary conditions"
3887
  echo "   diag2:  Calculate the quasi-geostrophic PV"
3888
  echo "   diag3:  Get the difference between two files"' 
3889
  echo
3890
endif
3891
 
3892
 
3893
# Copy sample files (if specified)
3894
if ( ${step} == "sample" ) then 
3895
  \cp ${sampledir}/P20060116_18 ${idir}
3896
  \cp ${sampledir}/ml_cst       ${idir}
3897
  \cp ${sampledir}/Z20060116_18 ${idir}
3898
  \cp ${sampledir}/pl_cst       ${idir}
3899
endif
3900
 
3901
# ---------------------------------------------------------------------------
3902
# Preparatory steps
3903
# ---------------------------------------------------------------------------
3904
 
3905
# Change to data directory
3906
cd ${idir}
3907
 
3908
# Step 0: Calculate S file with PV and TH (not in prep mode)
3909
if ( ${step} == "prep0" ) then
3910
    \rm -f S${date}
3911
    p2s P${date} TH PV    
3912
endif
3913
 
3914
# Step 1: Interpolate onto height levels
3915
if ( ${step} == "prep1" | ${step} == "prep" ) then
3916
  echo "P${date}"                        >! fort.10
3917
  echo "Z${date}"                        >> fort.10
3918
  echo "H${date}"                        >> fort.10
3919
  ${bdir}/inversion.perl ${parafile} p2z >> fort.10
3920
  echo "U        U       P${date}"       >> fort.10
3921
  echo "V        V       P${date}"       >> fort.10
3922
  echo "T        T       P${date}"       >> fort.10
3923
  echo "Q        Q       P${date}"       >> fort.10
3924
  ${bdir}/prep/p2z
3925
  \mv H${date}_cst zl_cst
3926
  changecst H${date} zl_cst
3927
   #\rm -f fort.10 
3928
endif
3929
 
3930
# Step 2: Rotate into local cartesian co-ordinate system 
3931
if ( ${step} == "prep2" | ${step} == "prep" ) then
3932
  echo "H${date}"                                >! fort.10
3933
  echo "R${date}"                                >> fort.10 
3934
  ${bdir}/inversion.perl ${parafile} rotate_grid >> fort.10
3935
  echo "5"                                       >> fort.10
3936
  echo "ORO"                                     >> fort.10                                   
3937
  echo "U.V"                                     >> fort.10
3938
  echo "P"                                       >> fort.10
3939
  echo "T"                                       >> fort.10
3940
  echo "Q"                                       >> fort.10
3941
  ${bdir}/prep/rotate_grid
3942
  \mv R${date}_cst ro_cst
3943
  changecst R${date} ro_cst
3944
  \rm -f fort.10
3945
endif
3946
 
3947
# Step 3: Add TH,PV,NSQ and RHO to the data file
3948
if ( ${step} == "prep3" | ${step} == "prep" ) then
3949
  echo "TH"         >! fort.10
3950
  echo "R${date}"   >> fort.10
3951
  echo "R${date}"   >> fort.10
3952
  echo "5       "   >> fort.10
3953
  ${bdir}/prep/z2s
3954
  echo "PV"         >! fort.10
3955
  echo "R${date}"   >> fort.10
3956
  echo "R${date}"   >> fort.10
3957
  echo "5       "   >> fort.10
3958
  ${bdir}/prep/z2s
3959
  echo "NSQ"        >! fort.10
3960
  echo "R${date}"   >> fort.10
3961
  echo "R${date}"   >> fort.10
3962
  echo "5       "   >> fort.10
3963
  ${bdir}/prep/z2s
3964
  echo "RHO"        >! fort.10
3965
  echo "R${date}"   >> fort.10
3966
  echo "R${date}"   >> fort.10
3967
  echo "5       "   >> fort.10
3968
  ${bdir}/prep/z2s
3969
  \rm -f fort.10
3970
endif
3971
 
3972
# Step 4: Set the modified PV field and boundary values
3973
if ( ${step} == "prep4" | ${step} == "prep" ) then
3974
  echo "R${date}"                                >! fort.10
3975
  ${bdir}/inversion.perl ${parafile} def_anomaly >> fort.10
3976
  ${bdir}/prep/def_anomaly
3977
  \rm -f fort.10 
3978
endif
3979
 
3980
# Step 5: Reduce the domain size and split the input files
3981
if ( ${step} == "prep5" | ${step} == "prep" ) then
3982
  echo "PV        PV        R${date}    ORG_${date}" >! fort.10
3983
  echo "U         U         R${date}    ORG_${date}" >> fort.10
3984
  echo "V         V         R${date}    ORG_${date}" >> fort.10
3985
  echo "TH        TH        R${date}    ORG_${date}" >> fort.10
3986
  echo "Q         Q         R${date}    ORG_${date}" >> fort.10
3987
  echo "P         P         R${date}    ORG_${date}" >> fort.10
3988
  echo "T         T         R${date}    ORG_${date}" >> fort.10
3989
  echo "PV_FILT   PV_AIM    R${date}    MOD_${date}" >> fort.10
3990
  echo "U         U         R${date}    MOD_${date}" >> fort.10
3991
  echo "V         V         R${date}    MOD_${date}" >> fort.10
3992
  echo "Q         Q         R${date}    MOD_${date}" >> fort.10
3993
  echo "P         P         R${date}    MOD_${date}" >> fort.10
3994
  echo "T         T         R${date}    MOD_${date}" >> fort.10
3995
  echo "NSQ       NSQ       R${date}    MOD_${date}" >> fort.10
3996
  echo "RHO       RHO       R${date}    MOD_${date}" >> fort.10
3997
  echo "TH        TH        R${date}    MOD_${date}" >> fort.10
3998
  echo "PV_ANOM   PV        R${date}    ANO_${date}" >> fort.10
3999
  echo "TH_ANOM   TH        R${date}    ANO_${date}" >> fort.10
4000
  echo "UU_ANOM   U         R${date}    ANO_${date}" >> fort.10
4001
  echo "VV_ANOM   V         R${date}    ANO_${date}" >> fort.10
4002
  echo "ORO       ORO       R${date}    REF_${date}" >> fort.10
4003
  echo "X         X         R${date}    REF_${date}" >> fort.10
4004
  echo "Y         Y         R${date}    REF_${date}" >> fort.10
4005
  echo "LAT       LAT       R${date}    REF_${date}" >> fort.10
4006
  echo "LON       LON       R${date}    REF_${date}" >> fort.10
4007
  echo "CORIOL    CORIOL    R${date}    REF_${date}" >> fort.10
4008
  ${bdir}/prep/cutnetcdf
4009
  \rm -f fort.10 
4010
endif
4011
 
4012
# Step 6: Add the reference profile 
4013
if ( ${step} == "prep6" | ${step} == "prep" ) then
4014
  \rm -f fort.10 
4015
  echo "MOD_${date}"     >! fort.10
4016
  echo "REF_${date}"     >> fort.10
4017
  ${bdir}/prep/ref_profile
4018
  \rm -f fort.10 
4019
endif
4020
 
4021
# Step 7: Add coastlines to REF file
4022
if ( ${step} == "prep7" | ${step} == "prep" ) then
4023
  \rm -f fort.10 
4024
  echo \"REF_${date}\"                         >! fort.10
4025
  echo \"${coastfile}\"                        >> fort.10
4026
  ${bdir}/inversion.perl ${parafile} coastline >> fort.10
4027
  ${bdir}/prep/coastline
4028
  \rm -f fort.10 
4029
endif
4030
 
4031
# Step 8: Move the files to the run directory
4032
if ( ${step} == "prep8" | ${step} == "prep" ) then
4033
  \mv MOD_${date} MOD_${date}_cst ${rdir}
4034
  \mv ORG_${date} ORG_${date}_cst ${rdir}
4035
  \mv ANO_${date} ANO_${date}_cst ${rdir}
4036
  \mv REF_${date} REF_${date}_cst ${rdir}
4037
  \rm -f fort.10
4038
endif
4039
 
4040
# ---------------------------------------------------------------------------
4041
# Inversion
4042
# ---------------------------------------------------------------------------
4043
 
4044
# Change to data directory
4045
cd ${rdir}
4046
 
4047
# Start loop
4048
set count=0
4049
loop:
4050
 
4051
# Step 1: Add NSQ, TH, RHO, and PV to MOD file, take grid from REF file
4052
if ( ${step} == "pvin1" | ${step} == "pvin" ) then
4053
  echo "NSQ"           >! fort.10
4054
  echo "MOD_${date}"   >> fort.10
4055
  echo "REF_${date}"   >> fort.10
4056
  echo "5          "   >> fort.10
4057
  ${bdir}/pvin/z2s
4058
  echo "RHO"           >! fort.10
4059
  echo "MOD_${date}"   >> fort.10
4060
  echo "REF_${date}"   >> fort.10
4061
  echo "5          "   >> fort.10
4062
  ${bdir}/pvin/z2s
4063
  echo "TH"            >! fort.10
4064
  echo "MOD_${date}"   >> fort.10
4065
  echo "REF_${date}"   >> fort.10
4066
  echo "5          "   >> fort.10
4067
  ${bdir}/pvin/z2s
4068
  echo "PV"            >! fort.10
4069
  echo "MOD_${date}"   >> fort.10
4070
  echo "REF_${date}"   >> fort.10
4071
  echo "5          "   >> fort.10
4072
  ${bdir}/pvin/z2s
4073
  \rm -f fort.10
4074
endif
4075
 
4076
# Step 2: Change Ertel's PV anomaly into an anomaly of quasi-geostrophic PV
4077
if ( ${step} == "pvin2" | ${step} == "pvin" ) then
4078
  echo "MOD_${date}"   >! fort.10
4079
  echo "REF_${date}"   >> fort.10
4080
  echo "ANO_${date}"   >> fort.10
4081
  ${bdir}/pvin/pv_to_qgpv
4082
  \rm -f fort.10 
4083
endif
4084
 
4085
# Step 3: Inversion of quasi-geostrophic PV anomaly with Neumann boundary 
4086
if ( ${step} == "pvin3" | ${step} == "pvin" ) then
4087
  echo "ANO_${date}"   >! fort.10
4088
  echo "REF_${date}"   >> fort.10
4089
  ${bdir}/pvin/inv_cart
4090
  \rm -f fort.10 
4091
endif
4092
 
4093
# Step 4: Prepare the output of the inversion for next iteration step
4094
if ( ${step} == "pvin4" | ${step} == "pvin" ) then
4095
  \rm -f fort.10 
4096
  echo "MOD_${date}"                                >! fort.10
4097
  echo "ANO_${date}"                                >> fort.10
4098
  ${bdir}/inversion.perl ${parafile} prep_iteration >> fort.10  
4099
  ${bdir}/pvin/prep_iteration
4100
  \rm -f fort.10 
4101
endif
4102
 
4103
# Step 5: Keep iterative steps if save flag is set
4104
if ( ${step} == "pvin5" | ${step} == "pvin" ) then
4105
  if ( "${save}" == "yes" ) then
4106
    set pre=''
4107
    if ( ${count} < 10 ) then
4108
      set pre='0'
4109
    endif
4110
    \cp MOD_${date} MOD_${date}_${pre}${count}
4111
    \cp ANO_${date} ANO_${date}_${pre}${count}
4112
  endif
4113
endif
4114
 
4115
# End loop for iterations
4116
if ( ${step} == "pvin" ) then
4117
  @ count = ${count} + 1
4118
  if ( ${count} < ${nofiter} ) goto loop
4119
endif
4120
 
4121
# ---------------------------------------------------------------------------
4122
# Postprocessing
4123
# ---------------------------------------------------------------------------
4124
 
4125
# Change to data directory
4126
cd ${odir}
4127
 
4128
# Step 1: Copy needed files from input and run directory
4129
if ( ${step} == "post1" | ${step} == "post" ) then
4130
    ln -sf ${rdir}/MOD_${date} ${rdir}/MOD_${date}_cst .
4131
    \cp ${idir}/P${date} ${idir}/ml_cst .
4132
endif
4133
 
4134
# Step 2:  Rotate from quasi-cartesian co-ordinate frame to lat/lon system
4135
if ( ${step} == "post2" | ${step} == "post" ) then
4136
    echo "MOD_${date}"                                >! fort.10
4137
    echo "GEO_${date}"                                >> fort.10   
4138
    ${bdir}/inversion.perl ${parafile} rotate_lalo    >> fort.10
4139
    echo "3"                                          >> fort.10
4140
    echo "T"                                          >> fort.10                                   
4141
    echo "U.V"                                        >> fort.10
4142
    echo "P"                                          >> fort.10
4143
    ${bdir}/post/rotate_lalo
4144
    \rm -f fort.10 
4145
endif
4146
 
4147
# Step 3: Bring modified fields back to P file
4148
if ( ${step} == "post3" | ${step} == "post" ) then
4149
    \rm -f fort.10 
4150
    echo "P${date}"                                   >! fort.10
4151
    echo "GEO_${date}"                                >> fort.10   
4152
    ${bdir}/inversion.perl ${parafile} add2p          >> fort.10
4153
    ${bdir}/post/add2p
4154
    \rm -f fort.10 
4155
endif
4156
 
4157
# Step 4: Calculate S file with PV and TH
4158
if ( ${step} == "post4" | ${step} == "post" ) then
4159
    \rm -f S${date}
4160
    p2s P${date} TH PV    
4161
endif
4162
 
4163
# Step 5: Make clean
4164
if ( ${step} == "post5" | ${step} == "post" ) then
4165
    \rm -f MOD_${date} MOD_${date}_cst
4166
    \rm -f GEO_${date} GEO_${date}_cst
4167
endif
4168
 
4169
# ---------------------------------------------------------------------------
4170
# Diagnostic Tools
4171
# ---------------------------------------------------------------------------
4172
 
4173
# Change to run directory
4174
cd ${rdir}
4175
 
4176
# Step 1: Check the consistency of the boundary conditions (diag1)
4177
if ( ${step} == "diag1"  ) then
4178
    \rm -f fort.10 
4179
    echo "ANO_${date}"  >! fort.10
4180
    echo "REF_${date}"  >> fort.10   
4181
    ${bdir}/diag/check_boundcon
4182
    \rm -f fort.10 
4183
endif
4184
 
4185
# Step 2: Calculate the quasi-geostrophic PV (diag2 [ORG|MOD|ANO]
4186
if ( ${step} == "diag2"  ) then
4187
    \rm -f fort.10 
4188
    echo "${file1}_${date}"  >! fort.10
4189
    echo "REF_${date}"       >> fort.10  
4190
    ${bdir}/diag/calc_qgpv
4191
    \rm -f fort.10 
4192
endif
4193
 
4194
# Step 3: Get difference between two files (diag3 [ORG|MOD|ANO] - [ORG|MOD|ANO])
4195
if ( ${step} == "diag3"  ) then
4196
    \rm -f fort.10 
4197
    echo "${file1}_${date}"  >! fort.10
4198
    echo "${file2}_${date}"  >> fort.10  
4199
    echo "DIA_${date}"       >> fort.10  
4200
    ${bdir}/diag/difference
4201
    \rm -f fort.10 
4202
endif
4203
\end{verbatim}
4204
\end{small}
4205
 
4206
\newpage
4207
\subsection{Controlling Parameter File}
4208
 
4209
The inversion problem is specified in a parameter file. This file is set as a parameter in the
4210
controlling Linux Shell script (see Appendix~9.2) and is often the only file which has to be adapted.
4211
 
4212
\begin{small}
4213
\begin{verbatim}
4214
BEGIN DATA
4215
  DATE    = 20060116_18;                                 ! Date for case study
4216
  INP_DIR = /lhome/sprenger/PV_Inversion_Tool/real/inp;  ! Input directory 
4217
  RUN_DIR = /lhome/sprenger/PV_Inversion_Tool/real/run;  ! Run directory
4218
  OUT_DIR = /lhome/sprenger/PV_Inversion_Tool/real/out;  ! Output directory
4219
END DATA
4220
 
4221
BEGIN GRID
4222
  GEO_XMIN = -180.;     ! Geographical grid in zonal direction
4223
  GEO_NX   =  361 ;    
4224
  GEO_DX   =    1.;
4225
  GEO_YMIN =    0.;     ! Geographical grid in meridional direction
4226
  GEO_NY   =   91 ;
4227
  GEO_DY   =    1.;
4228
  GEO_ZMIN =    0.;     ! Vertical levels ( ZMIN and DZ in [m] )
4229
  GEO_NZ   =  125 ;
4230
  GEO_DZ   =  200.;
4231
  ROT_NX   =  250 ;     ! Rotated grid ( DX and DY in [deg] )
4232
  ROT_NY   =  250 ;  
4233
  ROT_DX   =  0.25;     
4234
  ROT_DY   =  0.25;
4235
  CLON     =  -65.;     ! Longitude, latitude [deg] and angle of rotated grid
4236
  CLAT     =   45.;     
4237
  CROT     =    0.;     
4238
END GRID
4239
 
4240
BEGIN ANOMALY
4241
  BOX_XMIN = -1200.;    ! Box where to apply the digital filter
4242
  BOX_XMAX =  1200.;
4243
  BOX_YMIN = -1200.;
4244
  BOX_YMAX =  1200.;
4245
  BOX_ZMIN =  2000.;
4246
  BOX_ZMAX = 10000.;
4247
  NFILTER  =     5 ;    ! Number of filter iterations;
4248
  BOUND_XY =   500.;    ! Transition zone for horizontal boundaries ( in [km] )
4249
  BOUND_Z  =   500.;    ! Transition zone for vertical boundaries ( in [m] )
4250
END ANOMALY
4251
 
4252
BEGIN NUMERICS
4253
  ALPHA    =    0.5;    ! Adjustment factor after one iteration step
4254
  NOFITER  =      6;    ! Number of "external" iterations
4255
  SAVEITER =     no;    ! Flag whether to save iteration steps 
4256
END NUMERICS
4257
\end{verbatim}
4258
\end{small}
4259
 
4260
\newpage
4261
\subsection{List of Fortran, Perl and Linux programs}
4262
 
4263
The main tasks of the PV inversion are handled by Fortran programs. The following table contains a complete list
4264
of these programs with some details. The first column gives the name of the program, the second column the section
4265
(pre-processing, inversion, post-processing, diagnostics) where this program is needed, the third column the authors (in 
4266
order of their contribution), and the fourth column is a short description of the code. In the table, Fortran programs 
4267
are marked with the appendix ".f", Perl programs with the appendix ".perl", and Linux Shell scripts with the appendix ".sh".
4268
 
4269
\begin{center}
4270
\begin{tabular}{|l|l|l|l|}
4271
\hline
4272
{\bf Name of program}          & {\bf Section}    & {\bf Author}            &  {\bf Short description} \\[2mm]
4273
\hline
4274
{\bf p2z.f}                & prep       & Michael Sprenger  & Interpolation onto height levels\\[2mm]
4275
\hline
4276
{\bf rotate\_grid.f}       & prep       & Michael Sprenger  & Rotation to quâsi-cartesian system\\[2mm]
4277
\hline
4278
{\bf z2s.f}                & prep, pvin & Michael Sprenger  & Calculation of secondary fields\\[2mm]
4279
\hline
4280
{\bf def\_anomaly.f}       & prep       & Michael Sprenger  & Definition of modified Ertel's PV\\[2mm]
4281
\hline
4282
{\bf cutnetcdf.f   }       & prep       & Michael Sprenger  & Splitting of netcdf files\\
4283
                         &            & Heini Wernli      &                          \\[2mm]
4284
\hline
4285
{\bf ref\_profile.f}       & prep       & Michael Sprenger  & Definition of reference profile\\
4286
                         &            & Olivia Martius    &                          \\[2mm]
4287
\hline
4288
{\bf coastline.f}          & prep       & Michael Sprenger  & Add coastlines to reference file\\[2mm]
4289
\hline
4290
{\bf pv\_to\_qgpv.f}       & pvin       & Michael Sprenger  & Calculate quasi-geostrophic PV\\[2mm]
4291
\hline
4292
{\bf inv\_cart.f}          & pvin       & Rene Fehlmann     & Inversion of  quasi-geostrophic PV\\
4293
                         &            & Michael Sprenger  &                          \\[2mm]
4294
\hline
4295
{\bf prep\_iteration.f}    & pvin       & Michael Sprenger  & Prepare next iteration step\\
4296
                         &            & Rene Fehlmann  &                          \\[2mm]
4297
\hline
4298
{\bf rotate\_lalo.f}       & post       & Michael Sprenger  & Rotate to geographical grid\\[2mm]
4299
\hline
4300
{\bf add2p.f}              & post       & Michael Sprenger  & Interpolation to hybrid grid\\[2mm]
4301
\hline
4302
{\bf p2s.f}                & prep, post & Heini Wernli      & Secondary fields on hybrid grid\\[2mm]
4303
\hline
4304
{\bf check\_boundcon.f}    & diag       & Rene Fehlmann      & Consistency check for boundaries\\
4305
                        &             & Michael Sprenger  &                          \\[2mm]
4306
\hline
4307
{\bf calc\_qgpv.f}        & diag       & Sebastien Dirren      & Convergence check for inversion\\
4308
                        &             & Michael Sprenger  &                          \\[2mm]
4309
\hline
4310
{\bf difference.f}              & diag       & Michael Sprenger  & Difference of two netcdf files\\[2mm]
4311
\hline
4312
{\bf inversion.sh}              &            & Michael Sprenger  & Master Linux Shell script\\[2mm]
4313
\hline
4314
{\bf inversion.perl}              &            & Michael Sprenger  & Extraction of parameters\\[2mm]
4315
\hline
4316
\end{tabular}
4317
\end{center}
4318
 
4319
 
4320
\end{document}