Dust Cycle in Mars PCM5
This page details at different levels how to use and what is featured in the dust cycle in Mars PCM5.
Contents
Brief Overview
The reference work leading to the implementation in the PCM is the PhD work of J.-B. Madeleine; check out his PhD manuscript and 2011 JGR article "Revisiting the radiative impact of dust on Mars using the LMD Global Climate Model" https://doi.org/10.1029/2011JE003855
The main features and concepts on how the dust is handled are:
- Dust is modeled as a log-normal population (varying in size), which in the end requires managing only two tracers, the first two moments of the distribution, which are the dust mass mixing ratio and number (tracers dust_mass and dust_number).
- All the physical processes like large scale advection, mixing by the turbulence in the planetary boundary layer, sedimentation, etc. are modeled.
- How the dust gets injected in the atmosphere (i.e. the details of dust lifting from the surface) is not modeled; instead we use a simple assumption that there is always some injection of dust from the surface (most of it simply falling back down; but some of it, when the conditions are right, propagates)
- In addition, the dust in each column is rescaled so that its column opacity then matches that of a driving dust scenario (typically derived from observations).
Flags concerning the dust cycle in a PCM version 5 setup
A setup including adequate flags and parameters for a PCM5 dust cycle can be found in the reference [[callphys.def.GCM5|https://trac.lmd.jussieu.fr/Planeto/browser/trunk/LMDZ.MARS/deftank/callphys.def.GCM5] reference provided in deftank.
As mentioned above, there should be the 2 dedicated tracers (dust moments) at hand (i.e. in the traceur.def file):
dust_mass dust_number
In practice the relevant callphys.def parameters are:
#Directory where external input files are:
datadir=/users/lmdz/WWW/planets/mars/datadir
## Dust scenario. Used if the dust is prescribed (i.e. if active=F)
## ~~~~~~~~~~~~~
# =1 Dust opt.deph read in startfi; =2 Viking scenario; =3 MGS scenario,
# =4 Mars Year 24 from TES assimilation (old version of MY24; dust_tes.nc file)
# =6 "cold" (low dust) scenario ; =7 "warm" (high dust) scenario
# =8 "climatology" (our best guess of a typical Mars year) scenario
# =24 Mars Year 24 ; =25 Mars Year 25 (year with a global dust storm) ; ...
# =30 Mars Year 30
iaervar = 26
# Dust opacity at 610 Pa (when constant, i.e. for the iaervar=1 case)
tauvis=0.2
# Dust vertical distribution:
# (=0: old distrib. (Pollack90), =1: top set by "topdustref",
# =2: Viking scenario; =3 MGS scenario)
iddist = 3
# Dust top altitude (km). (Matters only if iddist=1)
topdustref = 55.
- iaervar points to the driving dust scenario (daily maps; netcdf files located under datadir) to use: e.g. dust_clim.nc if
iaervar=8
, dust_MY30.nc ifiaervar=30
, etc. In the special case whereiaervar=1
then the driving dust column opacity is constant (over space and time) to the value specified by flag tauvis. - tauvis is only used when
iaervar=1
in which case it is the imposed value of the column dust opacity (at reference pressure of 610Pa). - iddist and topdustref are not used (date back to even simpler setup)
## Tracer (dust water, ice and/or chemical species) options :
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DUST: Transported dust ? (if >0, use 'dustbin' dust bins)
dustbin = 2
# DUST: Radiatively active dust ? (matters if dustbin>0)
active = .true.
# DUST: use mass and number mixing ratios to predict dust size ?
doubleq = .true.
# DUST: use a small population of dust particules (submicron dust)?
submicron = .false.
# DUST: lifted by GCM surface winds ?
lifting = .true.
# DUST: lifted by dust devils ?
callddevil = .false.
# DUST: Scavenging by H2O/CO2 snowfall ?
scavenging = .true.
- dustbin should be 2, because using the 2-moment scheme (with
doubleq=.true.
). - active should definitely be set to
.true.
, to account for the radiative effect of dust. - doubleq should be
.true.
(withdustbin=2
), to use the two-moment scheme - submicron should be
.false.
; was put there to eventually have a second distribution of small particles around. Not used nor validated. - lifting should be
.true.
, to impose continuous dust injection from the surface into the first atmospheric layer. - callddevil should be
.false.
; was put there to eventually account for dust injection via dust devils. Not used nor validated. - scavenging should be
.true.
to include scavenging of dust by H2O and or CO2 snowfall (assuming CO2 and/or H2O cycles are also computed). Significant effect in the polar night.
# SCATTERERS: set number of scatterers. must be compliant with preceding options.
naerkind = 2
- nearkind is the number of radiatively active scatterers. Dust is one of them (if
active=.true.
) so nearkind should be at least 1; and if the water cycle is also computed with radiatively active clouds (water=.true.
andactivice=.true.
) thennaerkind=2
More technical stuff, and how/where it is managed in the Mars PCM code
....TODO....
Routines
- initracer : Initialize some dust properties stored in the tracer_mod module: dedicated tracer indexes
igcm_dust_mass
andigcm_dust_number
, reference dust densityrho_q(igcm_dust_mass)
, variance of the lifted/injected dust distributionvarian
, reference effective radius of the lifted dustreff_lift
and injection/lifting coefficientalpha_lift(igcm_dust_mass)
- aeropacity : where the optical depth of the aerosols is computed (see e.g. the "dust_doubleq" case for dust) and the call to compute_dustscaling is done
- compute_dustscaling (in dust_scaling_mod) : where "tauscaling", the dust rescaling coefficient, is computed
- vdifc : where the dust is lifted/injected from the surface into the atmosphere
Parameters and variables in the code
- tauscaling : dust rescaling coefficient (one value per column)
- tau_pref_gcm : dust column opacity at 610 Pa (should be equal to "tau_pref_scenario", the dust column opacity from the driving scenario)
- freedust : this parameter should be
freedust=.false.
, so that there is rescaling of the dust using the "tauscaling" coefficient - dustscaling_mode : this parameter should be
dustscaling_mode=1
Using an old but simple dust scheme
If one wants to use a very simple scheme for dust instead of the usual 'doubleq' (and 'active') dust, it is possible to use an old parametrization based on "Conrath dust". In this case, the dust follows the "Conrath profile" and the radiative effect of dust is still included. This simple parametrization can be useful for some tests under idealized conditions like for the 1D model.
In "callphys.def", the necessary flags are doubleq = .false.
and dustbin = 0
. So there is no dust-related tracer in "traceur.def" and naerkind = 1
.
This is actually the default choice for the main scatterer. The "Conrath dust" can be used with different dust scenarios (iaervar
) and dust vertical distributions (iddist
). In line with the aim to get the simplest case, one can choose iddist = 0
to set the old dust vertical distribution function (pollack90) depending only on the dust scenario (for example iaervar = 1
to define a simple case).