1 | This directory contains executable files (and their source) that can be |
---|
2 | used to process the LMD Mars GCM output files (like "diagfi" or |
---|
3 | "stats"), whatever the dimension. |
---|
4 | In addition most output file from one of these program can be |
---|
5 | processes by another. |
---|
6 | |
---|
7 | The executable files should run on any Linux platform. |
---|
8 | |
---|
9 | Inputs can be provided by (1) replying to questions on screen or |
---|
10 | (2) filling the corresponding *.def and direct the input of these *.def |
---|
11 | files instead. For example : |
---|
12 | > concatnc.e < concatnc.def |
---|
13 | > zrecast.e < zrecast.def |
---|
14 | |
---|
15 | -------------------------------------------------------------------- |
---|
16 | 1) concatnc.e |
---|
17 | -------------------------------------------------------------------- |
---|
18 | |
---|
19 | This program is used to concatenate consecutive |
---|
20 | output files ("diagfi", and even "stats") for a selection of |
---|
21 | variable, in order to obtain one single big file. The time simension can |
---|
22 | be "sols" or "Ls" (in that last case, Ls will not be linear, and |
---|
23 | software like Grads may not be able to use it. To have a linear "Ls" |
---|
24 | timescale, you can use "Ls_Linear.e" (see below). |
---|
25 | |
---|
26 | Output file is : concat.nc |
---|
27 | |
---|
28 | MODIFICATION: |
---|
29 | 07/2008 Utility concatnc.F90 (not used by the gcm): improvement in order |
---|
30 | to 1) concatenate 1D variable and 2) increase the number of input files |
---|
31 | up to 1000 |
---|
32 | |
---|
33 | |
---|
34 | -------------------------------------------------------------------- |
---|
35 | 2) localtime.e |
---|
36 | -------------------------------------------------------------------- |
---|
37 | |
---|
38 | Program to redistribute and interpolate the variable a the same |
---|
39 | local times everywhere (useful to mimic satellite observations, or |
---|
40 | analyse day to day variations at a given local time). |
---|
41 | input : diagfi.nc / concat.nc / stats.nc kind of files |
---|
42 | |
---|
43 | output file is : |
---|
44 | name_of_input_file_LT.nc with pressure coordinate |
---|
45 | |
---|
46 | -------------------------------------------------------------------- |
---|
47 | 3) zrecast.e |
---|
48 | -------------------------------------------------------------------- |
---|
49 | |
---|
50 | This program reads 4D (lon-lat-alt-time) fields from GCM output files |
---|
51 | (ie: diagfi.nc time series or concat.nc or stats.nc files) and, by |
---|
52 | integrating the hydrostatic equation, recasts data along the vertical |
---|
53 | direction. |
---|
54 | The vertical coordinate can be either 1) pressure, 2) above areoid |
---|
55 | altitudes, 3) above local surface altitudes or 4) distance to center of |
---|
56 | the planet. Some interpolation along the vertical direction is also |
---|
57 | done, following instructions given by user (levels may be specified |
---|
58 | or given as minimu,maximum and number of levels). |
---|
59 | For "above areoid altitudes" output, Atmospheric pressure is added to |
---|
60 | output dataset; for "pressure coordinate" outputs, the above areoid |
---|
61 | altitude of pressure is added to output dataset. |
---|
62 | |
---|
63 | Minimal requirements and dependencies: |
---|
64 | The dataset must include the following data: |
---|
65 | - surface pressure |
---|
66 | - atmospheric temperature |
---|
67 | - hybrid coordinates aps() and bps(), or sigma levels() (see section |
---|
68 | 1.3.2) |
---|
69 | - ground geopotential (in input file; if not found, it is sought |
---|
70 | in a 'diagfi.nc' file. If not found there, it is then sought in |
---|
71 | a 'phisinit.nc' file (see section 1.3.3 of program) |
---|
72 | |
---|
73 | - When integration the hydrostatic equation, we assume that R, the |
---|
74 | molecular Gas Constant, may not be constant, so it is computed as |
---|
75 | R=P/(rho*T) (P=Pressure, rho=density, T=temperature) |
---|
76 | If 'rho' is not available, then we use a constant R (see section |
---|
77 | 2.2 in source file) |
---|
78 | |
---|
79 | output file is : |
---|
80 | name_of_input_file_P.nc with pressure coordinate |
---|
81 | name_of_input_file_A.nc with altitude above areoid coordinate |
---|
82 | name_of_input_file_S.nc with altitude above local surface coordinate |
---|
83 | name_of_input_file_R.nc with altitude as distance to center of planet |
---|
84 | |
---|
85 | MODIFICATION : |
---|
86 | 01/2010 : correction to interpolate above surface if density is not available. |
---|
87 | 03/2011 : added possibility to have output as distance to center of planet |
---|
88 | |
---|
89 | -------------------------------------------------------------------- |
---|
90 | 4) lslin.e |
---|
91 | -------------------------------------------------------------------- |
---|
92 | |
---|
93 | This program has been designed to interpol data in Solar Longitude (Ls) |
---|
94 | linear time coordinate (usable with grads) from Netcdf diagfi or concatnc |
---|
95 | files. |
---|
96 | output file is : lslin.nc |
---|
97 | lslin also create a lslin.ctl file that can be read |
---|
98 | directly by grads (>xdfopen lsllin.ctl) to plot in Ls coordinate to |
---|
99 | avoid some problem with grads when grads think that "the time interval |
---|
100 | is too small"... |
---|
101 | |
---|
102 | MODIFICATION |
---|
103 | 10/2007 Utility lslin.F90 (not used by the gcm) |
---|
104 | changed evaluation of 'start_var' from hard-coded values to a computed value |
---|
105 | 04/2015 Added possibility to bin data (instead of interpolating) over |
---|
106 | the time intervals |
---|
107 | |
---|
108 | -------------------------------------------------------------------- |
---|
109 | 5) hrecast.e |
---|
110 | -------------------------------------------------------------------- |
---|
111 | |
---|
112 | This program can interpolate GCM output on any horizontal grid (regular lat - lon) as long as it cover all the |
---|
113 | planet. The grid can be given points by points. The best way is to use the redirected input hrecast.def |
---|
114 | |
---|
115 | hrecast.e < hrecast.def |
---|
116 | |
---|
117 | |
---|
118 | -------------------------------------------------------------------- |
---|
119 | 6) expandstartfi.e |
---|
120 | -------------------------------------------------------------------- |
---|
121 | |
---|
122 | This program takes a physics start file ("startfi.nc") and recasts it |
---|
123 | on the corresponding lonxlat grid (so it contents may easily be displayed |
---|
124 | using Grads, Ferret, etc.) |
---|
125 | |
---|
126 | Simply run expandstartfi.e as a command line with arguments: |
---|
127 | |
---|
128 | expandstartfi.e [infile.nc] [outfile.nc] |
---|
129 | |
---|
130 | (if infile is not specified, "startfi.nc" is used as default) |
---|
131 | (if outfile is not specified, it is built as "infile_ex.nc") |
---|
132 | |
---|
133 | -------------------------------------------------------------------- |
---|
134 | 6) extract.e |
---|
135 | -------------------------------------------------------------------- |
---|
136 | |
---|
137 | This program extracts (ie: interpolates) pointwise values of an atmospheric |
---|
138 | variable from a 'zrecast'ed diagfi file (works if altitude is geometrical |
---|
139 | height or a pressure vertical coordinates) |
---|
140 | user has to specify: |
---|
141 | - name of input file |
---|
142 | - date (in sols) offset wrt the input file (e.g. if the input file "begins" |
---|
143 | at Ls=0, then the offset is 0; if the input file begins at Ls=30, the |
---|
144 | offset date corresponding to the first 3 months is 61+66+66=193 sols, etc.) |
---|
145 | - the "extraction mode": |
---|
146 | 1: extract individual values; user will specify values of |
---|
147 | lon lat alt Ls LT (all on a same line) |
---|
148 | on as many lines as there are sought values |
---|
149 | 2: extract a profile: user will specify on a first line the values of |
---|
150 | lon lat Ls LT (all on a same line) |
---|
151 | and then only specify values of altitudes (m or Pa depending on the |
---|
152 | coordinate in the input file), one per line, at which values are |
---|
153 | sought |
---|
154 | - output values are sent to (ASCII) output file 'infile_var_.dat', where |
---|
155 | 'infile' is the input file name (without trailing '.nc') and |
---|
156 | 'var' is the sought variable, for extraction mode 1 as |
---|
157 | lines of "lon lat alt Ls LT value" and for a profile (extraction mode 2) |
---|
158 | as lines of "alt value" |
---|
159 | |
---|
160 | NB: If there is no data to do an appropriate interpolation to extract |
---|
161 | the sought value, then a "missing_value" (taken from the variable's |
---|
162 | attribute in the input file, most likely -9.99E33) is returned. |
---|
163 | |
---|
164 | See files "extract.points.def" and "extract.profile.def" for examples of |
---|
165 | input format that would simply need to be redirected to extract.e, e.g.: |
---|
166 | |
---|
167 | extract.e < extract.points.def |
---|
168 | |
---|
169 | |
---|