1 | \documentclass[a4paper,10pt]{article} |
---|
2 | %\usepackage{graphicx} |
---|
3 | \usepackage{natbib} % si appel à bibtex |
---|
4 | %\usepackage[francais]{babel} |
---|
5 | %\usepackage[latin1]{inputenc} % accents directs (é...), avec babel |
---|
6 | %\usepackage{rotating} |
---|
7 | |
---|
8 | \setlength{\hoffset}{-1.in} |
---|
9 | \setlength{\oddsidemargin}{3.cm} |
---|
10 | \setlength{\textwidth}{15.cm} |
---|
11 | \setlength{\marginparsep}{0.mm} |
---|
12 | \setlength{\marginparwidth}{0.mm} |
---|
13 | |
---|
14 | \setlength{\voffset}{-1.in} |
---|
15 | \setlength{\topmargin}{0.mm} |
---|
16 | \setlength{\headheight}{0.mm} |
---|
17 | \setlength{\headsep}{30.mm} |
---|
18 | \setlength{\textheight}{24.cm} |
---|
19 | \setlength{\footskip}{1.cm} |
---|
20 | |
---|
21 | \setlength{\parindent}{0.mm} |
---|
22 | \setlength{\parskip}{0 ex} |
---|
23 | \newcommand{\ten}[1]{$\times 10^{#1}$~} |
---|
24 | \renewcommand{\baselinestretch}{1.} |
---|
25 | |
---|
26 | \begin{document} |
---|
27 | \pagestyle{plain} |
---|
28 | |
---|
29 | \begin{center} |
---|
30 | {\bf \LARGE |
---|
31 | Documentation for LMDZ, Planets version |
---|
32 | |
---|
33 | \vspace{1cm} |
---|
34 | \Large |
---|
35 | The Cp(T) dependency |
---|
36 | } |
---|
37 | |
---|
38 | \vspace{1cm} |
---|
39 | S\'ebastien Lebonnois |
---|
40 | |
---|
41 | \vspace{1cm} |
---|
42 | Latest version: \today |
---|
43 | \end{center} |
---|
44 | |
---|
45 | \section{Theoretical aspects} |
---|
46 | |
---|
47 | Taken from \cite{lebonnois10}. |
---|
48 | |
---|
49 | The standard version of the LMDZ dynamical core uses a single value for the |
---|
50 | specific heat $C_p$, but $C_p$ varies in the atmosphere of Venus from |
---|
51 | 738~J/kg/K at 100~km altitude to 1181~J/kg/K near the surface |
---|
52 | \cite[values taken from the Venus International Reference Atmosphere,][]{seiff85}. |
---|
53 | This variation of $C_p$ with temperature needs to be taken into account, |
---|
54 | in order to get realistic adiabatic lapse rates in the whole atmosphere. |
---|
55 | We use an analytic approximation for this temperature dependence, |
---|
56 | that yields values very close to the VIRA profile for $C_p$ |
---|
57 | (within 4\% for temperatures below 200~K, below 1\% everywhere else): |
---|
58 | |
---|
59 | \begin{equation} |
---|
60 | C_p(T) = C_{p_0} \times \left(\frac{T}{T_0}\right)^{\nu}, |
---|
61 | \label{eq:cpdet} |
---|
62 | \end{equation} |
---|
63 | with $C_{p_0} = 1000$~J/kg/K, $T_0 = 460$~K, and $\nu = 0.35$. |
---|
64 | |
---|
65 | In the LMDZ model, the potential temperature is one of the fundamental |
---|
66 | pronostic variable in the equations of energy conservation. |
---|
67 | The potential temperature $\theta$ is the temperature an air parcel initially at |
---|
68 | temperature $T$ and pressure $p$ would reach when brought to a reference |
---|
69 | pressure $p_{\rm ref}$ (typically, the surface pressure) adiabatically: |
---|
70 | |
---|
71 | \begin{equation} |
---|
72 | \int_\theta^T{C_p \frac{dT}{T}} = \int_{p_{\rm ref}}^p{R \frac{dp}{p}} |
---|
73 | \label{eq:tpot} |
---|
74 | \end{equation} |
---|
75 | ($R$ is the atmospheric gas constant). Equation~\ref{eq:tpot} is |
---|
76 | obtained from the first principle of thermodynamics when a parcel of air at |
---|
77 | pressure $p$ and temperature $T$ is brought adiabatically to the reference |
---|
78 | pressure $p_{\rm ref}$. |
---|
79 | |
---|
80 | When $C_p$ is taken as constant with temperature, Eq.~\ref{eq:tpot} yields |
---|
81 | the classical expression of potential temperature |
---|
82 | $\theta = T \times (p_{\rm ref}/p)^\kappa$, with $\kappa = R/C_p$. |
---|
83 | However, when $C_p$ depends on temperature, this expression is no longer valid. |
---|
84 | |
---|
85 | To keep modifications of the dynamical core to the minimum, we have kept |
---|
86 | potential temperature as a key variable in the dynamics. Thus, we have |
---|
87 | calculated the new expression of potential temperature under these conditions. |
---|
88 | Introducing the expression of $C_p(T)$ (Eq.~\ref{eq:cpdet}) in Eq.~\ref{eq:tpot} yields |
---|
89 | |
---|
90 | \begin{equation} |
---|
91 | \int_\theta^T{\frac{T^{\nu-1}}{T_0^\nu}dT} |
---|
92 | = \frac{R}{C_{p_0}} \ln \frac{p}{p_{\rm ref}}, |
---|
93 | \end{equation} |
---|
94 | then (for $\nu \neq 0$) |
---|
95 | |
---|
96 | \begin{equation} |
---|
97 | \frac{1}{\nu T_0^\nu} \left( T^\nu - \theta^\nu \right) |
---|
98 | = \ln \left( \frac{p}{p_{\rm ref}} \right)^{\kappa_0}, |
---|
99 | \end{equation} |
---|
100 | where $\kappa_0 = \frac{R}{C_{p_0}}$. This yields the new expression for the |
---|
101 | potential temperature: |
---|
102 | |
---|
103 | \begin{equation} |
---|
104 | \theta^\nu = T^\nu + \nu T_0^\nu \ln \left( \frac{p_{\rm ref}}{p} \right)^{\kappa_0}. |
---|
105 | \label{eq:newtpot} |
---|
106 | \end{equation} |
---|
107 | |
---|
108 | The adjustments done in the dynamical core enable us to run the GCM with any |
---|
109 | formulation of $C_p$ and the corresponding potential temperature based on |
---|
110 | Eq.~\ref{eq:tpot}. |
---|
111 | |
---|
112 | \section{Pratical aspects in the code} |
---|
113 | |
---|
114 | A specific file has been added to the dynamical core, \textsf{dyn3d\_common/cpdet\_mod.F90}, which includes |
---|
115 | all the needed routines to take the $C_p(T)$ possibility into account. |
---|
116 | These routines take advantage of the boolean flag \textsf{cpofT} (declared in \textsf{gcm.def}, default is T for Venus, F otherwise) |
---|
117 | to implement different expressions of $C_p(T)$. |
---|
118 | It could also use the keyword \textsf{planet\_type} if needed to distinguish different planets. |
---|
119 | |
---|
120 | These routines are: |
---|
121 | \begin{itemize} |
---|
122 | \item \textsf{ini\_cpdet}: initializes the parameters $\nu$ (\textsf{nu\_venus}) |
---|
123 | and $T_0$ (\textsf{t0\_venus}) to either the Venus values, or zero. |
---|
124 | It is called just once at the begining of the main routine. |
---|
125 | These parameters are declared in \textsf{comconst\_mod.F90}. |
---|
126 | \item \textsf{cpdet}: function, that computes $C_p$ for a given $T$. |
---|
127 | For other planets than Venus, it is just \textsf{cpdet(T)=cpp}. |
---|
128 | \item \textsf{t2tpot}: converts a temperature vector to a potential temperature |
---|
129 | vector. Serial \textsf{t2tpot} and parallel \textsf{t2tpot\_p} versions. |
---|
130 | \item \textsf{tpot2t}: converts a potential temperature vector to a temperature |
---|
131 | vector. Serial \textsf{tpot2t} and parallel \textsf{tpot2t\_p} versions. |
---|
132 | \end{itemize} |
---|
133 | |
---|
134 | In the physics, these routines are also defined \textsf{phyvenus/cpdet\_phy\_mod.F90}. |
---|
135 | They are initialized with \textsf{init\_cpdet\_phy} that is called from the dynamics/physics interface, |
---|
136 | passing the \textsf{cpp}, \textsf{t0\_venus} and \textsf{nu\_venus} variables. |
---|
137 | The value of \textsf{t0\_venus} (0 or not) is used to determine the expression of $C_p(T)$. |
---|
138 | |
---|
139 | For Venus, in the dynamics/physics interface, the routine \textsf{suphec(cpp)} needed to be called to initialize \textsf{RCPD=cpp} in the physics. |
---|
140 | In the routines, instead of using the constants \textsf{cpp} (dynamical core) or \textsf{RCPD} (physical module), we need to use the function \textsf{cpdet(T)} where T is the temperature at a given point. |
---|
141 | |
---|
142 | Since the potential temperature is the variable used in the dynamical core, |
---|
143 | the temperature is scarcely used. But in some places, it was computed directly |
---|
144 | from the potential temperature and the Exner function |
---|
145 | ${\rm pk} = {\rm cpp}\times(\frac{\rm play}{\rm pref})^{\rm kappa}$. |
---|
146 | The routine \textsf{tpot2t} is now used to compute the temperature when needed, |
---|
147 | and the variable \textsf{tsurpk}, which is the temperature over the Exner |
---|
148 | function can be used as an argument instead of the former potential |
---|
149 | temperature (for \textsf{sortvarc0.F}, \textsf{sortvarc.F}, \textsf{dudv2.F} |
---|
150 | and \textsf{geopot.F}). |
---|
151 | This affects the routines (in \textsf{dyn3d}): |
---|
152 | \begin{itemize} |
---|
153 | \item \textsf{caldyn0.F} |
---|
154 | \item \textsf{caldyn.F} |
---|
155 | \item \textsf{calfis.F} |
---|
156 | \item \textsf{diagedyn.F} |
---|
157 | \item \textsf{leapfrog.F} |
---|
158 | \item \textsf{vlspltqs.F} |
---|
159 | \end{itemize} |
---|
160 | |
---|
161 | \begin{thebibliography}{2} |
---|
162 | \providecommand{\natexlab}[1]{#1} |
---|
163 | \expandafter\ifx\csname urlstyle\endcsname\relax |
---|
164 | \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else |
---|
165 | \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup |
---|
166 | \urlstyle{rm}\Url}\fi |
---|
167 | |
---|
168 | \bibitem[{\textit{Lebonnois et~al.}(2010)\textit{Lebonnois, Hourdin, Eymet, |
---|
169 | Crespin, Fournier, and Forget}}]{lebonnois10} |
---|
170 | Lebonnois, S., F.~Hourdin, V.~Eymet, A.~Crespin, R.~Fournier, and F.~Forget |
---|
171 | (2010), {Superrotation of Venus' atmosphere analysed with a full General |
---|
172 | Circulation Model}, \textit{J. Geophys. Res.}, \textit{115}, E06006, |
---|
173 | \doi{10.1029/2009JE003458}. |
---|
174 | |
---|
175 | \bibitem[{\textit{Seiff et~al.}(1985)\textit{Seiff, Schofield, Kliore |
---|
176 | et~al.}}]{seiff85} |
---|
177 | Seiff, A., J.~T. Schofield, A.~J. Kliore, et~al. (1985), {Model of the |
---|
178 | structure of the atmosphere of Venus from surface to 100 km altitude}, |
---|
179 | \textit{Adv. Space Res.}, \textit{5}(11), 3--58. |
---|
180 | |
---|
181 | \end{thebibliography} |
---|
182 | |
---|
183 | \end{document} |
---|