1 | \chapter{Main features of the model} |
---|
2 | |
---|
3 | \label{sc:apercu} |
---|
4 | |
---|
5 | \section{Basic principles} |
---|
6 | The General Circulation Model (GCM) calculates the temporal evolution of |
---|
7 | the different {\bf variables} (listed below) |
---|
8 | that control or describe the Martian meteorology and climate |
---|
9 | at different points of a {\bf 3D ``grid" } (see below) that covers |
---|
10 | the entire atmosphere. |
---|
11 | |
---|
12 | From an initial state, the model calculates the evolution of these variables, |
---|
13 | timestep by timestep: |
---|
14 | \begin{itemize} |
---|
15 | \item At instant $t$, we know variable $X_t$ (temperature for example) |
---|
16 | at one point in the atmosphere. |
---|
17 | |
---|
18 | \item We calculate the evolution (the {\bf tendencies}) |
---|
19 | $(\frac{\partial X}{\partial t})_1$ , |
---|
20 | $(\frac{\partial X}{\partial t})_2$ , etc. |
---|
21 | arising from each physical phenomenon, |
---|
22 | calculated by a {\bf parameterization} of each of these phenomenon |
---|
23 | (for example, heating due to absorption of solar radiation). |
---|
24 | |
---|
25 | \item At the next time step $t + \delta t$, we can calculate $X_{t+ \delta t}$ |
---|
26 | from $X_t$ and $(\frac{\partial X}{\partial t})$. |
---|
27 | This is the {\bf``integration''} of the variables in time. |
---|
28 | (For example, $X_{t+ \delta t}=X_t + |
---|
29 | \delta t(\frac{\partial X}{\partial t})_1 + |
---|
30 | \delta t(\frac{\partial X}{\partial t})_2 + ...$) |
---|
31 | |
---|
32 | \end{itemize} |
---|
33 | |
---|
34 | {\bf The main task of the model is to calculate these tendencies} |
---|
35 | $(\frac{\partial X}{\partial t})$ |
---|
36 | {\bf arising from the different parameterized phenomenon.} |
---|
37 | |
---|
38 | \section{Dynamical-Physical separation} |
---|
39 | |
---|
40 | In practice, the 3D model operates in two parts:\\ |
---|
41 | - one {\bf dynamical part} containing the numerical solution of |
---|
42 | the general equations for atmospheric circulation. |
---|
43 | This part (including the programming) is common to the Earth and Martian model, |
---|
44 | and in general for all atmospheres of the terrestrial type.\\ |
---|
45 | - a second {\bf physical part} that is specific to the planet in question and |
---|
46 | which calculates the forced circulation and the climate details at each point. |
---|
47 | |
---|
48 | The calculations for the dynamical part are made on a 3D grid |
---|
49 | with horizontal exchanges between the grid boxes, |
---|
50 | whereas the physical part can be seen as a juxtaposition of atmosphere |
---|
51 | ``columns'' that do not interact with each other (see diagram~\ref{fg:fidyn}). |
---|
52 | |
---|
53 | The dynamical and physical parts deal with variables of different natures, |
---|
54 | and operate on grids that are differently constructed. |
---|
55 | The temporal integration of the variables is based |
---|
56 | on different numerical schemes |
---|
57 | (simple, such as the one above for the physical part, |
---|
58 | and more complicated, the ``Matsuno-Leapfrog'' scheme for the dynamical part). |
---|
59 | The timesteps are also different. |
---|
60 | The physical timestep is {\tt iphysiq} times longer than the dynamical |
---|
61 | timestep, as the solution of the dynamic equations requires a shorter timestep |
---|
62 | than the forced calculation for the physical part. |
---|
63 | |
---|
64 | In practice, the main program that handles the whole model (\verb+gcm.F+) |
---|
65 | is located in the dynamical part. |
---|
66 | When the temporal evolution is being calculated, |
---|
67 | at each timestep the program calls the following: |
---|
68 | \begin{enumerate} |
---|
69 | \item Call to the subroutine that handles the total tendency calculation |
---|
70 | $(\frac{\partial X}{\partial t})$ arising from the dynamical part |
---|
71 | (\verb+caldyn.F+) |
---|
72 | \item Integration of these dynamical tendencies to calculate the evolution |
---|
73 | of the variables at the following timesteps (subroutine \verb+integrd.F+) |
---|
74 | \item Every {\tt iphysiq} dynamical timestep, a call to the interface |
---|
75 | subroutine (\verb+calfis.F+) with the physical model (\verb+physiq.F+), |
---|
76 | that calculates the evolution of some of the purely physical variables |
---|
77 | (e.g: surface temperature {\tt tsurf}) and returns the tendencies |
---|
78 | $(\frac{\partial X}{\partial t})$ |
---|
79 | arising from the physical part. |
---|
80 | \item Integration of the physical variables (subroutine \verb+addfi.F+) |
---|
81 | \item Similarly, calculation and integration of tendencies due to |
---|
82 | the horizontal dissipation and the ``sponge layer'' is done |
---|
83 | every {\tt idissip} dynamical time step. |
---|
84 | \end{enumerate} |
---|
85 | {\em {Remark:} The physical part can be run separately for a 1-D calculation |
---|
86 | for a single column using program \verb+testphys1d.F+.} |
---|
87 | |
---|
88 | |
---|
89 | \section{Grid boxes:} Examples of typical grid values are 64x48x25, |
---|
90 | 64x48x32 or 32x24x25 in longitudexlatitudexaltitude. |
---|
91 | For Mars (radius$\sim$3400~km), a 64x48 horizontal grid corresponds |
---|
92 | to grid boxes of the order of 330x220 kilometers near the equator. |
---|
93 | |
---|
94 | |
---|
95 | \subsection{Horizontal grids} |
---|
96 | |
---|
97 | \begin{figure} |
---|
98 | \begin{center} |
---|
99 | \centerline{\framebox{\epsfig{figure=Fig/didi.pdf,width=12.cm,clip=true}}} |
---|
100 | \caption{Physical/dynamical interface} |
---|
101 | \label{fg:fidyn} |
---|
102 | \end{center} |
---|
103 | \end{figure} |
---|
104 | |
---|
105 | \begin{figure} |
---|
106 | \centerline{\framebox[1.4\textwidth][c]{\includegraphics[width=1.2\textwidth] |
---|
107 | {Fig/grid.pdf}}} |
---|
108 | \caption{Dynamical and physical grids for a 6 $\times$ 7 horizontal resolution. |
---|
109 | In the dynamics (but not in the physics) winds u and v are on specific |
---|
110 | staggered grids. Other dynamical variables are on the dynamical ``scalar'' grid. |
---|
111 | The physics uses the same ``scalar'' grid for all the variables, |
---|
112 | except that nodes are indexed in a single vector containing |
---|
113 | NGRID=2+(JM-1)$\times$IM points when counting from the north pole.\\ |
---|
114 | N.B.: In the Fortran program, the following variables are used: |
---|
115 | {\tt iim=IM , iip1=IM+1, jjm=JM , jjp1=JM+1}.} |
---|
116 | \label{fg:grid} |
---|
117 | \end{figure} |
---|
118 | |
---|
119 | |
---|
120 | |
---|
121 | |
---|
122 | |
---|
123 | |
---|
124 | Dynamics and physics use different grids. |
---|
125 | Figure~\ref{fg:grid} shows the correspondance and indexing |
---|
126 | of the physical and dynamical grids |
---|
127 | as well as the different locations of variables on these grids. |
---|
128 | To identify the coordinates of a variable (at one grid point up, |
---|
129 | down, right or left) |
---|
130 | we use coordinates {\tt rlonu}, {\tt rlatu}, |
---|
131 | {\tt rlonv}, {\tt rlatv} (longitudes and |
---|
132 | latitudes, in {\bf radians}). |
---|
133 | |
---|
134 | On the dynamical grid, values at {\tt i=1} are the same as at {\tt i=IM+1} |
---|
135 | as the latter node is a redundant point (due to the periodicity in longitude, |
---|
136 | these two nodes are actualy located at the same place). |
---|
137 | Similarly, the extreme {\tt j=1} and {\tt j=JM+1} nodes on the |
---|
138 | dynamical grid (respectively corresponding to North and South poles) |
---|
139 | are duplicated IM+1 times.\\ |
---|
140 | In contrast, the physical grid does not contain redundant points |
---|
141 | (only one value for each pole and no extra point along longitudes), |
---|
142 | as shown in figure~\ref{fg:grid}. |
---|
143 | In practice, computations relative to the physics are made |
---|
144 | for a series of {\tt ngrid} atmospheric |
---|
145 | columns, where {\tt NGRID}={\tt IM}x({\tt JM}-1)+2. |
---|
146 | |
---|
147 | \subsection{Vertical grids} |
---|
148 | |
---|
149 | \begin{figure}[htbp] |
---|
150 | |
---|
151 | {\includegraphics[scale=0.85,clip=true]{Fig/coord.pdf}} |
---|
152 | \caption[hybrides] |
---|
153 | {Sketch illustrating the difference between hybrid and non-hybrid coordinates} |
---|
154 | \label{fg:hybrid} |
---|
155 | \end{figure} |
---|
156 | |
---|
157 | |
---|
158 | The GCM was initially programmed using sigma coordinates $\sigma = p/ps$ |
---|
159 | (atmospheric pressure over surface pressure ratio) |
---|
160 | which had the advantage of using a constant domain |
---|
161 | ($\sigma=1$ at the surface and $\sigma=0$ at the top of the atmosphere) |
---|
162 | whatever the underlying topography. |
---|
163 | However, it is obvious that these coordinates significantly disturb |
---|
164 | the stratospheric dynamical representation as the topography is propagated |
---|
165 | to the top of the model by the coordinate system. |
---|
166 | This problem can elegantly be solved by using a hybrid sigma-P (sima-pressure) |
---|
167 | hybrid coordinate which is equivalent to using $\sigma$ coordinates |
---|
168 | near the surface and gradualy shifting to purely pressure $p$ |
---|
169 | coordinates with increasing altitude. |
---|
170 | Figure~\ref{fg:hybrid} illustrates the importance of using these |
---|
171 | hybrid coordinates compared to simple $\sigma$ coordinates. |
---|
172 | The distribution of the vertical layers is irregular, |
---|
173 | to enable greater precision at ground level. |
---|
174 | In general we use 25 levels to describe the atmosphere to a height of 80 km, |
---|
175 | 32 levels for simulations up to 120~km, or 50 levels to rise |
---|
176 | up to thermosphere. |
---|
177 | The first layer describes the first few meters above the ground, |
---|
178 | whereas the upper layers span several kilometers. |
---|
179 | Figure~\ref{fg:sigma} describes the vertical grid representation |
---|
180 | and associated variables. |
---|
181 | |
---|
182 | \begin{figure} |
---|
183 | \begin{verbatim} |
---|
184 | DYNAMICS PHYSICS |
---|
185 | -------- ------- |
---|
186 | [coordinates ap(),bp()] [pressures] |
---|
187 | |
---|
188 | ap(llm+1)=0,bp(llm+1)=0 **************************** plev(nlayer+1)=0 |
---|
189 | aps(llm),bps(llm) .. llm .......... nlayer ... play(nlayer) |
---|
190 | ap(llm),bp(llm) **************************** plev(nlayer) |
---|
191 | aps(llm-1),bps(llm-1) .. llm-1 ........ nlayer-1 . play(nlayer-1) |
---|
192 | ap(llm-1),bp(llm-1) **************************** plev(nlayer-1) |
---|
193 | : : |
---|
194 | : : |
---|
195 | : : |
---|
196 | aps(2),bps(2) ... 2 ............. 2 .... play(2) |
---|
197 | ap(2),bp(2) **************************** plev(2) |
---|
198 | aps(1),bps(1) ... 1 ............. 1 .... play(1) |
---|
199 | ap(1)=1,bp(1)=0 **********surface*********** plev(1)=Ps |
---|
200 | \end{verbatim} |
---|
201 | \caption{Vertical grid description of the {\tt llm (or nlayer)} |
---|
202 | atmospheric layers |
---|
203 | in the programming code ({\tt llm} is the variable used in the dynamical part, |
---|
204 | and {\tt nlayer} is used in the physical part). |
---|
205 | Variables {\tt ap, bp} and {\tt aps, bps} indicate the hybrid levels at |
---|
206 | the interlayer levels and at middle of the layers respectively. |
---|
207 | Pressure at the interlayer is $Plev(l)=ap(l)+bp(l) \times Ps$ and pressure |
---|
208 | in the middle of the layer is defined by $Play(l)=aps(l)+bps(l) \times Ps$, |
---|
209 | (where $Ps$ is surface pressure). |
---|
210 | Sigma coordinates are merely a specific case of hybrid |
---|
211 | coordinates such that $aps=0$ and $bps=P/Ps$. |
---|
212 | Note that for the hybrid coordinates, $bps=0$ above $\sim50$~km, leading to |
---|
213 | purely pressure levels. |
---|
214 | The user can choose whether to run the model using hybrid coordinates or not |
---|
215 | by setting variable {\tt hybrid} in run.def to True or False.} |
---|
216 | \label{fg:sigma} |
---|
217 | \end{figure} |
---|
218 | |
---|
219 | \section{Variables used in the model} |
---|
220 | |
---|
221 | \subsection{Dynamical variables} |
---|
222 | The dynamical state variables are the atmospheric temperature, |
---|
223 | surface pressure, winds and tracer concentrations. |
---|
224 | In practice, the formulation selected to solve the equations in |
---|
225 | the dynamics %(see chapter~\ref{sc:dynamic}) |
---|
226 | is optimised using the following less ``natural'' variables: |
---|
227 | |
---|
228 | \begin{description} |
---|
229 | \item - {\bf potential temperature} $\theta$ ({\tt teta} in the code), |
---|
230 | linked to temperature {\bf T} by $\theta = T{(P/Pref)}^{-\kappa}$ |
---|
231 | with $\kappa = R/C_p$ |
---|
232 | (note that $\kappa$ is called {\tt kappa} in the dynamical code, and {\tt rcp} |
---|
233 | in the physical code). We take $Pref=610$ Pa on Mars. |
---|
234 | \item - {\bf surface pressure} ({\tt ps} in the code). |
---|
235 | \item - {\bf mass} the atmosphere mass in each grid box ({\tt masse} |
---|
236 | in the code). |
---|
237 | \item - {\bf the covariant meridional and zonal winds} |
---|
238 | {\tt ucov} and {\tt vcov}. |
---|
239 | These variables are linked to the "natural" winds by |
---|
240 | \verb+ucov = cu * u+ and \verb+vcov = cv * v+, where |
---|
241 | \verb+cu+ and \verb+cv+ are constants that only depend on the latitude. |
---|
242 | %(see Appendix A). |
---|
243 | \item - {\bf mixing ratio of tracers} in the atmosphere, typically |
---|
244 | expressed in kg/kg (array {\tt q} in the code). |
---|
245 | \end{description} |
---|
246 | |
---|
247 | {\tt ucov} and {\tt vcov}, ``vectorial'' variables, are stored on |
---|
248 | ``scalari'' grids u and v respectively, in the dynamics |
---|
249 | (see section \ref{fg:grid}). |
---|
250 | {\tt teta}, {\tt q}, {\tt ps}, {\tt masse}, ``scalar variables'', |
---|
251 | are stored on the ``scalar'' grid of the dynamics. |
---|
252 | |
---|
253 | |
---|
254 | |
---|
255 | \subsection{Physical variables} |
---|
256 | |
---|
257 | In the physics, the state variables of the dynamics are transmitted |
---|
258 | via an interface that interpolates the winds on the scalar grid |
---|
259 | (that corresponds to the physical grid) and transforms the dynamical variables |
---|
260 | into more ``natural'' variables. |
---|
261 | Thus we have winds {\bf u} and {\bf v} (m.s$^{-1}$), |
---|
262 | temperature {\bf T} (K), pressure at the middle of the layers |
---|
263 | {\bf play} (Pa) and at interlayers {\bf plev} (Pa), tracers |
---|
264 | {\bf q}, etc. (kg/kg) on the same grid. |
---|
265 | |
---|
266 | Furthermore, the physics also handle the evolution of the purely |
---|
267 | physical state variables: |
---|
268 | \begin{description} |
---|
269 | \item - {\bf co2ice} CO$_2$ ice on the surface (kg.m$^{-2}$) |
---|
270 | \item - {\bf tsurf} surface temperature (K), |
---|
271 | \item - {\bf tsoil} temperature at different layers under the surface (K), |
---|
272 | \item - {\bf emis} surface emissivity, |
---|
273 | \item - {\bf q2} wind variance, or more precisely the square root of |
---|
274 | the turbulent kinetic energy. |
---|
275 | \item - {\bf qsurf} tracer on the surface (kg.m$^{-2}$). |
---|
276 | \end{description} |
---|
277 | |
---|
278 | \subsection{Tracers} |
---|
279 | The model may include different types of tracers: |
---|
280 | \begin{description} |
---|
281 | \item - dust particles, which may have several modes |
---|
282 | \item - chemical species which depict the chemical composition of the |
---|
283 | atmosphere %\\ \\ |
---|
284 | %$co2 = nqchem\_min\\ |
---|
285 | %co = nqchem\_min + 1\\ |
---|
286 | %o = nqchem\_min + 2\\ |
---|
287 | %o(1d) = nqchem\_min + 3\\ |
---|
288 | %o2 = nqchem\_min + 4\\ |
---|
289 | %o3 = nqchem\_min + 5\\ |
---|
290 | %h = nqchem\_min + 6\\ |
---|
291 | %h2 = nqchem\_min + 7\\ |
---|
292 | %oh = nqchem\_min + 8\\ |
---|
293 | %ho2 = nqchem\_min + 9\\ |
---|
294 | %h2o2 = nqchem\_min + 10\\ |
---|
295 | %n2 = nqchem\_min + 11\\ |
---|
296 | %ar = nqchem\_min + 12\\ \\ $ |
---|
297 | %If you choose not to handle dust particles (general case), then nqchem\_min=1 |
---|
298 | \item - water vapor and water ice particles %\\ |
---|
299 | %h2o corresponds to the nqmx tracer (nqmx is chosen when compiling |
---|
300 | %with the option {\tt -t nqmx})\\ |
---|
301 | %If the option "ice" is chosen, water ice corresponds to the (nqmx-1)th tracer. |
---|
302 | \item - ... |
---|
303 | \end{description} |
---|
304 | |
---|
305 | |
---|
306 | In the code, all tracers are stored in one three-dimensional array {\tt q}, |
---|
307 | the third index of which corresponds to each individual tracer. |
---|
308 | In input and output files (``start.nc'', ``startfi.nc'', |
---|
309 | see Section~\ref{loc:contact1}) tracers are stored seperately using their |
---|
310 | individual names. Loading specific tracers requires that |
---|
311 | the approriate tracer names are set in the {\tt traceur.def} file |
---|
312 | (see Section~\ref{sc:traceur.def}), and specific computations |
---|
313 | for given tracers (e.g.: computing the water cycle, chemistry in the |
---|
314 | upper atmosphere, ...) is controled by setting coresponding options in the |
---|
315 | {\tt callphys.def} file (see Section~\ref{sc:callphys.def}). |
---|