source: trunk/LMDZ.MARS/util/README @ 3325

Last change on this file since 3325 was 2830, checked in by abierjon, 2 years ago

Mars GCM:
The program util/aeroptical.F90 can now compute column-integrated optical depths
of the aerosols, in addition to the opacity profiles. The user has to specify it
('yes' or 'no') in aeroptical.def
Detailed changes :

  • update of the aeroptical.def file to ask the user if the column optical depth should be computed (non-retrocompatible change)
  • add in the init2 subroutine a computation of the layers' height delta_z, with adaptable method depending on the availability of some variables in the input file and on wether or not the input file has been zrecasted before. Preliminary validation shows that these different methods yield a +/-3% error on the output column optical depth tau_[aer]. The delta_z variable is also written in the output file.
  • add a log file for warnings in the interpolation subroutine in aeropt_mod.F90 + add some comments in the code
  • add the ouput "zzlev" (= interlayer altitudes) in libf/phymars/physiq_mod.F so that it can be directly used by aeroptical.F90 to compute delta_z

AB

File size: 9.5 KB
RevLine 
[2432]1This directory contains source codes of utilities (programs) that can be
[137]2used to process the LMD Mars GCM output files (like "diagfi" or
[2432]3"stats").
4In addition most output file from one of these program can then be
5processed by another.
[137]6
[2432]7See script "compile" for instructions and recommendations to compile
8the utilities. Once adequately modified, that script can be used to
9compile each utility; e.g. to build the zrecast.e utility program:
10> compile zrecast
[137]11
[2432]12Note that inputs can be provided by (1) replying to questions on screen or
13(2) filling the corresponding  *.def and redirecting the input of these *.def
[137]14files instead. For example :
15> concatnc.e < concatnc.def
16> zrecast.e < zrecast.def
17
18--------------------------------------------------------------------
[2432]191) concatnc.e : concatenate successive GCM output files
[137]20--------------------------------------------------------------------
21
22This program is used to concatenate consecutive
23output files ("diagfi", and even "stats") for a selection of
[2435]24variable, in order to obtain one single big file. The time dimension can
[137]25be "sols" or "Ls" (in that last case, Ls will not be linear, and
26software like Grads may not be able to use it. To have a linear "Ls"
27timescale, you can use "Ls_Linear.e" (see below).
[2432]28You can also add a "Ls" variable corresponding solar longitude for each
29timestep by using the "adls" option.
[137]30
31Output file is : concat.nc
32
33--------------------------------------------------------------------
[2432]342) zrecast.e : put GCM data in physical vertical coordinate
[137]35--------------------------------------------------------------------
36
[2432]37GCM outputs are in GCM hybrid coordinate which do not correspond to any
38physical vertical coordinate ! zrecast is NECESSARY to make any publishable
39scientific figure.
[137]40
41This program reads 4D (lon-lat-alt-time) fields from GCM output files
42(ie: diagfi.nc time series or concat.nc or stats.nc files) and, by
43integrating the hydrostatic equation, recasts data along the vertical
44direction.
[281]45The vertical coordinate can be either 1) pressure, 2) above areoid
46altitudes, 3) above local surface altitudes or 4) distance to center of
47the planet. Some interpolation along the vertical direction is also
48done, following instructions given by user (levels may be specified
49or given as minimu,maximum and number of levels).
[137]50For "above areoid altitudes" output, Atmospheric pressure is added to
51output dataset; for "pressure coordinate" outputs, the above areoid
52altitude of pressure is added to output dataset.
53
54Minimal requirements and dependencies:
55The dataset must include the following data:
56- surface pressure
57- atmospheric temperature
[2432]58- hybrid coordinates aps() and bps(), or sigma levels()
[137]59- ground geopotential (in input file; if not found, it is sought
60  in a 'diagfi.nc' file. If not found there, it is then sought in
61  a 'phisinit.nc' file  (see section 1.3.3 of program)
62
63- When integration the hydrostatic equation, we assume that R, the
64molecular Gas Constant, may not be constant, so it is computed as
65R=P/(rho*T) (P=Pressure, rho=density, T=temperature)
66If 'rho' is not available, then we use a constant R (see section
672.2 in source file)
68
[2432]69- Vertical interpolation : note that density (kg.m-3) and species density
70(e.g. in molecules.cm-3) must be vertically interpolated in log-space. For
71that purpose, these variables names must start with "rho" (exemple : rho for
72density, rho_co2, rho_o2, etc....)
73
[137]74output file is :
75name_of_input_file_P.nc with pressure coordinate
[281]76name_of_input_file_A.nc with altitude above areoid coordinate
77name_of_input_file_S.nc with altitude above local surface coordinate
78name_of_input_file_R.nc with altitude as distance to center of planet
[137]79
[2432]80--------------------------------------------------------------------
813) localtime.e : put GCM data in local time coordinate
82--------------------------------------------------------------------
[137]83
[2432]84Program to redistribute and interpolate the variable a the same
85local times everywhere (useful to mimic satellite observations, or
86analyse day to day variations at a given local time).
87input : diagfi.nc  / concat.nc / stats.nc kind of files
88
89output file is : name_of_input_file_LT.nc
90
[137]91--------------------------------------------------------------------
[2450]924) lslin.e : redistribute and average gcm output in Ls coordinate.
[137]93--------------------------------------------------------------------
94
[2450]95This program has been designed to interpolate data in Solar Longitude (Ls)
[137]96linear time coordinate (usable with grads) from Netcdf diagfi or concatnc 
[2450]97files, and to average the instantaneous data in periodic Ls intervals
98(for comparison with binned dataset, for instance).
[2432]99
100lslin also creates a lslin.ctl file that can be read
[137]101directly by grads (>xdfopen lsllin.ctl) to plot in Ls coordinate to
102avoid some problem with grads when grads think that "the time interval
103is too small"...
104
[2450]105Output file is : name_of_input_file_Ls.nc
[137]106
107--------------------------------------------------------------------
[2432]1085) solzenangle.e : select GCM data at a given solar zenith angle
[137]109--------------------------------------------------------------------
110
[2432]111Program to redistribute and interpolate the variable a the same
112solar zenith angle (notably useful to mimic satellite observations and in particular
113SOLAR OCCULTATIONS by choosing solar zenith angle = 90°)
114The user choose between Morning and Evening side.
[137]115
[2432]116input : diagfi.nc  / concat.nc / stats.nc kind of files
117
118On the morning side output file (1 output per sol per grid point) is :
119 name_of_input_file_MO.nc 
120
121On the evening side output file is (1 output per sol per grid point):
122 name_of_input_file_EV.nc 
123
124--------------------------------------------------------------------
1256) hrecast.e : interpolate data at another horizontal grid resolution.
126--------------------------------------------------------------------
127
128This program can interpolate GCM output on any horizontal grid (regular
129lat - lon) as long as it cover all the planet.
130The grid can be given points by points. The best way is to use the
131redirected input hrecast.def
132
[137]133hrecast.e < hrecast.def
134
135
[275]136--------------------------------------------------------------------
[2432]1377) expandstartfi.e : to plot data in a startfi.nc file
[275]138--------------------------------------------------------------------
[137]139
[2432]140In startfi.nc file, data are not plotable because the horizontal coordinate
141in only a 1D list of all atmospheric columns on the planets.
[275]142This program takes a physics start file ("startfi.nc") and recasts it
143on the corresponding  lonxlat grid (so it contents may easily be displayed
[2432]144using Python, Grads, Ferret, etc.)
[137]145
[275]146Simply run expandstartfi.e as a command line with arguments:
147
148expandstartfi.e  [infile.nc] [outfile.nc]
149
150     (if infile is not specified, "startfi.nc" is used as default)
151     (if outfile is not specified, it is built as "infile_ex.nc")
[282]152
153--------------------------------------------------------------------
[2432]1548) extract.e : get data at specific coordinates for comparison with observations
[282]155--------------------------------------------------------------------
156
157This program extracts (ie: interpolates) pointwise values of an atmospheric
158variable from a 'zrecast'ed diagfi file (works if altitude is geometrical
159height or a pressure vertical coordinates)
160user has to specify:
161- name of input file
162- date (in sols) offset wrt the input file (e.g. if the input file "begins"
[2571]163  at Ls=0, then the offset is 0; if the input file begins at Ls=90, the
[282]164  offset date corresponding to the first 3 months is 61+66+66=193 sols, etc.)
[2571]165  NB: that means the input file must have its "Time" coordinate in sols
[282]166- the "extraction mode":
167     1: extract individual values; user will specify values of
168        lon lat alt Ls LT (all on a same line)
169        on as many lines as there are sought values
170     2: extract a profile: user will specify on a first line the values of
171        lon lat Ls LT (all on a same line)
172        and then only specify values of altitudes (m or Pa depending on the
173        coordinate in the input file), one per line, at which values are
174        sought
[293]175 - output values are sent to (ASCII) output file 'infile_var_.dat', where
176   'infile' is the input file name (without trailing '.nc') and
177   'var' is the sought variable, for extraction mode 1 as
178   lines of "lon lat alt Ls LT value" and for a profile (extraction mode 2)
179   as lines of "alt value"
180
[282]181  NB: If there is no data to do an appropriate interpolation to extract
182      the sought value, then a "missing_value" (taken from the variable's
183      attribute in the input file, most likely -9.99E33) is returned.
184
185See files "extract.points.def" and "extract.profile.def" for examples of
186input format that would simply need to be redirected to extract.e, e.g.:
187
188extract.e < extract.points.def
189
[2435]190--------------------------------------------------------------------
1919) aeroptical.e : compute aerosol opacities at a given wavelength
192--------------------------------------------------------------------
193
[2830]194Program to compute opacity profiles opa_[aer] (1/km) of aerosols
195at a wavelength given by the user.
[2435]196Computation is made from the aerosol mass mixing ratios and effective radius,
197associated with air density (rho) and files containing the aerosol
198optical properties (generally present in the GCM datadir/ directory).
[2443]199The user have to precise the type of opacity : extinction or absorption.
[2830]200The user can also ask to compute the column-integrated optical depth tau_[aer].
[2435]201
[2817]202NB : this program requires to compile the module aeropt_mod.F90
203at the same time
[2435]204
205input : diagfi.nc  / concat.nc / stats.nc kind of files
206
[2443]207output file is :
208 name_of_input_file_OPAext.nc for extinction opacities
209 name_of_input_file_OPAabs.nc for absorption opacities
210
[2435]211aeroptical.e < aeroptical.def
Note: See TracBrowser for help on using the repository browser.