The traceur.def Input File

From Planets
Revision as of 14:59, 18 September 2024 by SandrineSaturne (talk | contribs) (In 1D)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

What is it for?

Tracers need to be listed in traceur.def.

Characteristics of the tracers can be also specified in traceur.def.

What is a tracer?

Tracers are elements which will be defined at each grid point and tracked in the model. They may interact with the atmosphere in different ways.

The model may include different types of tracers:

  • condensed species (e.g., CO2, H2O, dust)
  • chemically active species
  • radiatively active gases (e.g., water vapor)

In the code, all tracers are stored in one three-dimensional array q, the third index of which corresponds to each individual tracer. In input (start.nc, startfi.nc) and output files tracers are stored separately using their individual names. Loading specific tracers requires that the approriate tracer names are set in the traceur.def file, and specific computations for given tracers (e.g. computing the water or CO2 cycles) is controlled by setting the corresponding options in the callphys.def file.

File structure

"Old" version

Number of tracers need to be specified, followed by tracers names. The following example will set up water tracers to compute water cloud and water cycle in general.

2
h2o_vap
h2o_ice

"Modern" version

An update version named ModernTrac-v1 need to be used with chemistry in order to set up properly the chemical tracers. This gives also the opportunity to specify for each tracers specific characteristics.

#ModernTrac-v1
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# !! README !!
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Welcome, this is the modern traceur.def !
# 
#         ---> DON'T TOUCH/REMOVE THE FIRST LINE OF HEADER #ModernTrac-v1 <---
#
# * You can use this area to write as many comments as you want starting lines with #.
# * You cannot have comment lines in the middle nor at the end, only at the top.
#
#
# 0. Philosophy  This modern version of traceur.def gather in a single file what was
# ~~~~~~~~~~~~~  previously in traceur.def AND gases.def plus some hard-coded things.
#
# 1. Structure  After the header, first line is the total number of modern tracers in
# ~~~~~~~~~~~~  your file, ie not only tracers sent to dynamics, but also species that
#               takes part in the composition, radiative transfer, chemistry, etc.
#
#               Then, each line needs to start with the specie name ... and that's the
#               only mandatory information ! But you can specify all the options you
#               want in separate blocks following 'option=value', assuming this option
#               is defined in traceur_h.F90 & initracer.F for physics, infotrac.F90 
#               for dynamics or chimiedata_h.F90 & calchim_asis.F90 for chemistry.
#               Indeed this file is read once by dynamics, once by physics and once by
#               chemistry who keep only the information needed.
#
#               Note that by default a tracer listed below will be sent to dynamics
#               except if you specify is_dyn=0. If nothing is given, then is_dyn=1.
#               Not yet fully implemented.
#
# 3. Options.   Implemented options listed below.
# ~~~~~~~~~~~~  For dynamic see "infotrac.F90".
#               For physic see "initracer.F90".
#               For chemistry see "calchim_asis.F90".
#                        init see "inichim_1D.F90" and "inichim_newstart.F90"
#
# Dynamic:      vadv           ! index of vertical trasport schema
#               hadv           ! index of horizontal trasport schema
#               tnom_transp    ! transporting fluid short name: CRisi
#
# Physic:       mmol           ! mole mass of tracer [g.mol-1]
#               aki            ! coefficient of thermal concduction
#               cpi            ! heat capacity [J.kg-1.K-1]
#               is_chim        ! 1 if tracer used in chemistry, else 0
#               is_rad         ! 1 if tracer used in radiative transfer, else 0
#               is_recomb      ! 1 if tracer used in recombining scheme, else 0
#                                (if 1, must have is_rad=1)
#               is_recomb_qset ! 1 if tracer k-corr assume predefined vmr, else 0
#                                (if 1, must have is_recomb=1)
#               is_recomb_qotf ! 1 if tracer recombination is done on-the-fly, else 0
#                                (if 1, must have is_recomb_qset=0)
#
# Chemistry:    SF_mode        ! 1 if surface set up value, else 2 sedimentation velocity
#               SF_value       ! [vmr] if SF_mode=1, else [cm.s-1]
#               prod_rate      ! if SF_mode=2 production flux [molecules.m-2.s-1]
#
#      init:    qx             ! value that initialize constant profile [vmr]
#               qxf            ! file that initialize profile [Pa,vmr] (1 line header)
#
#
#
# Random Ex :
#               4
#               n2 is_dyn=0
#               co2 cpi=450.0 is_dyn=1 mmol=44.
#               hdo hadv=14 vadv=10 tnom_transp=air
#               h2s
#
# Insert your tracers list and options below !
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29
h2o_ice                 mmol=18   
co2                     mmol=44   is_chim=1    SF_mode=1    SF_value=4.0e-4    is_rad=1
co                      mmol=28   is_chim=1
o                       mmol=16   is_chim=1
o1d                     mmol=16   is_chim=1
o2                      mmol=32   is_chim=1    SF_mode=1    SF_value=2.1e-1
o3                      mmol=48   is_chim=1    is_rad=1 is_recomb=1 is_recomb_qotf=1
h                       mmol=1    is_chim=1
h2                      mmol=2    is_chim=1
oh                      mmol=17   is_chim=1
ho2                     mmol=33   is_chim=1
h2o2                    mmol=34   is_chim=1
h2o_vap                 mmol=18   is_chim=1    is_rad=1
ch4                     mmol=16   is_chim=1    SF_mode=1    SF_value=1.8e-6    is_rad=1
ch3                     mmol=15   is_chim=1
cho                     mmol=29   is_chim=1
ch2o                    mmol=30   is_chim=1
ch3o                    mmol=31   is_chim=1
ch3o2                   mmol=47   is_chim=1
ch3o2h                  mmol=48   is_chim=1
n                       mmol=14   is_chim=1
no                      mmol=30   is_chim=1
no2                     mmol=46   is_chim=1
n2                      mmol=28   is_chim=1    is_rad=1
hno3                    mmol=63   is_chim=1
hno4                    mmol=79   is_chim=1
n2o                     mmol=44   is_chim=1    SF_mode=1    SF_value=3.3e-7
no3                     mmol=62   is_chim=1
n2o5                    mmol=108  is_chim=1

Initialisation

In 3D

In 3D, the initial distribution of tracers is in the start.def file. In order to change it, you have to modify the start.def, for example using newstart.

In 1D

In 1D, the initial distribution of each tracer can be read from a file named "profile_<tracer name>" (e.g. profile_h2o_vap for the water vapour initial profile), located in the run directory. This file has Nlayer + 1 lines (with Nlayer the number of horizontal layers): its first line is the surface value (in kg/m^2), and then each line is the value at the corresponding level (in kg/kg).

For giant planets, as there is no condensation at the surface and as we evaporate the condensates above the bottom of the model (we set the bottom level as deep as necessary for it to be a dry level), the total column of the tracer (initialized with profile_xxx_vap) should be conserved during the run. Hence the choice of initial profile matters a lot. For giant planets as well: you can additionally set qvap_deep = value to force the deep specific concentration to remain constant (bottomless planet) (works with either the generic tracer or the water = .true. option). In that case, note that the total column of the tracer will not remain the same as the column set from the initial profile_xxx_vap.

Using photochemistry

When you use photochemistry (both in 3D and 1D), the initial distribution of tracers can be given as options in the traceur.def file, as explained above.