gtd7: fix output at 32.5 km
[~brodo/nrlmsise-00.git] / DOCUMENTATION
1 --------------------------------------------------------------------
2 ---------  N R L M S I S E - 0 0    M O D E L    2 0 0 1  ----------
3 --------------------------------------------------------------------
4
5
6 Table of Contents
7 -----------------
8
9 1. Legal Information
10 2. Brief Description
11 3. Source Code Availability
12 4. This C Release
13     4.1  Files
14     4.2  Differences between FORTRAN and C version
15 5. Interface
16 6. Release Notes
17 7. Testing Output
18
19
20
21 1. LEGAL INFORMATION
22 ====================
23
24 This package is distributed in the hope that it will be useful,
25 but WITHOUT ANY WARRANTY; without even the implied warranty of
26 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please inform the
27 maintainer of the C release (Dominik Brodowski - mail@brodo.de) of
28 any patches and bug-fixes you implement for NRLMSISE-00 so that this C
29 package can be updated with these improvements.
30
31
32
33 2. BRIEF DESCRIPTION
34 ====================
35
36 The NRLMSIS-00 empirical atmosphere model was developed by Mike
37 Picone, Alan Hedin, and Doug Drob based on the MSISE90 model.
38
39 The MSISE90 model describes the neutral temperature and densities in
40 Earth's atmosphere from ground to thermospheric heights. Below 72.5 km
41 the model is primarily based on the MAP Handbook (Labitzke et al.,
42 1985) tabulation of zonal average temperature and pressure by Barnett
43 and Corney, which was also used for the CIRA-86. Below 20 km these
44 data were supplemented with averages from the National Meteorological
45 Center (NMC). In addition, pitot tube, falling sphere, and grenade
46 sounder rocket measurements from 1947 to 1972 were taken into
47 consideration. Above 72.5 km MSISE-90 is essentially a revised MSIS-86
48 model taking into account data derived from space shuttle flights and
49 newer incoherent scatter results. For someone interested only in the
50 thermosphere (above 120 km), the author recommends the MSIS-86
51 model. MSISE is also not the model of preference for specialized
52 tropospheric work. It is rather for studies that reach across several
53 atmospheric boundaries.
54 (quoted from http://nssdc.gsfc.nasa.gov/space/model/atmos/nrlmsise00.html)
55
56
57
58 3. SOURCE CODE AVAILABILITY
59 ===========================
60
61 The authors of the NRLMSISE-00 model have released a FORTRAN version
62 which is available at
63 http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm
64
65 Based on the Official Beta Release 1.0 (NRLMSISE-00.DIST12.TXT)
66 Dominik Brodowski wrote an implementation in C which is available on
67 http://www.brodo.de/english/pub/nrlmsise/
68 This release is based on the Official Beta Release 2.0 
69 (NRLMSISE-00.DIST17.TXT).
70
71
72
73 4. THIS C RELEASE
74 =================
75
76 When "INLINE" is not externally defined the source code should be
77 clean, plain ANSI which any C compiler should be able to work with. If
78 you find any problems, please report them to the maintainer Dominik
79 Brodowski at mail@brodo.de. Thank you!
80
81
82 4.1 Files
83 ---------
84
85 DOCUMENTATION      - this Documentation
86 nrlmsise-00.h      - header file for nrlmsise-00
87 nrlmsise-00.c      - source code for nrlmsise-00
88 nrlmsise-00_data.c - block data for nrlmsise-00
89 nrlmsise-00_test.c - test-driver for nrlmsise-00
90 makefile           - makefile for nrlmsise-test (gnu-make and gcc)
91
92
93 4.2 Differences between FORTRAN and C version
94 ---------------------------------------------
95
96 The C package does not save the last results internally to speed up
97 program execution as the FORTRAN version does.
98
99 The "switches" have to be specified before _every_ call.
100
101 The "DL" array is not printed in the testing routine since it's not an
102 output value.
103
104 The C version probably contains some bugs and still has to be regarded
105 more unstable than the FORTRAN release. Please report any bugs or
106 incorrect values to the maintainer at mail@brodo.de
107
108
109
110 5. INTERFACE
111 ============
112
113 To access the NRLMSISE-00 functions you need to include the header
114 file nrlmsise-00.h. In this file you can find comments which explain
115 the in- and output, and the differences between the various functions.
116
117
118
119 6. RELEASE NOTES
120 ================
121
122 20020302        -       first release
123
124 20040322        -       fix gtd7d output if sw->flags[0] is set 
125                         (noted by Dr. Vasiliy Yurasov)
126
127 20041227        -       bugfix against memory corruption 
128                         (Donald F. Linton)
129
130 20070727        -       bugfix concerning DFA being masked
131                         (Stacey Gage)
132
133 20100516        -       bugfix concerning Argon densities
134                         (Dr. Choliy Vasyl)
135
136 20131225        -       fix comment on switch 0, silence compiler warnings
137                         (David F. Crouse)
138
139 20150329        -       use fabs() instead of abs()
140                         (David F. Crouse)
141
142 20151122        -       fixes for gcc5, spelling fixes
143                         (Jacco Geul)
144
145 20170830        -       fix some compiler warninges
146                         (noted by Steven Queen)
147
148 20190709                fix output at 32.5 km
149                         (Yoshiaki Ando)
150
151
152 7. TESTING OUTPUT
153 =================
154
155 nrlmsise-test should generate the following output:
156
157
158
159 6.665177E+05 1.138806E+08 1.998211E+07 4.022764E+05 3.557465E+03 4.074714E-15 3.475312E+04 4.095913E+06 2.667273E+04 1.250540E+03 1.241416E+03 
160
161 3.407293E+06 1.586333E+08 1.391117E+07 3.262560E+05 1.559618E+03 5.001846E-15 4.854208E+04 4.380967E+06 6.956682E+03 1.166754E+03 1.161710E+03 
162
163 1.123767E+05 6.934130E+04 4.247105E+01 1.322750E-01 2.618848E-05 2.756772E-18 2.016750E+04 5.741256E+03 2.374394E+04 1.239892E+03 1.239891E+03 
164
165 5.411554E+07 1.918893E+11 6.115826E+12 1.225201E+12 6.023212E+10 3.584426E-10 1.059880E+07 2.615737E+05 2.819879E-42 1.027318E+03 2.068878E+02 
166
167 1.851122E+06 1.476555E+08 1.579356E+07 2.633795E+05 1.588781E+03 4.809630E-15 5.816167E+04 5.478984E+06 1.264446E+03 1.212396E+03 1.208135E+03 
168
169 8.673095E+05 1.278862E+08 1.822577E+07 2.922214E+05 2.402962E+03 4.355866E-15 3.686389E+04 3.897276E+06 2.667273E+04 1.220146E+03 1.212712E+03 
170
171 5.776251E+05 6.979139E+07 1.236814E+07 2.492868E+05 1.405739E+03 2.470651E-15 5.291986E+04 1.069814E+06 2.667273E+04 1.116385E+03 1.112999E+03 
172
173 3.740304E+05 4.782720E+07 5.240380E+06 1.759875E+05 5.501649E+02 1.571889E-15 8.896776E+04 1.979741E+06 9.121815E+03 1.031247E+03 1.024848E+03 
174
175 6.748339E+05 1.245315E+08 2.369010E+07 4.911583E+05 4.578781E+03 4.564420E-15 3.244595E+04 5.370833E+06 2.667273E+04 1.306052E+03 1.293374E+03 
176
177 5.528601E+05 1.198041E+08 3.495798E+07 9.339618E+05 1.096255E+04 4.974543E-15 2.686428E+04 4.889974E+06 2.805445E+04 1.361868E+03 1.347389E+03 
178
179 1.375488E+14 0.000000E+00 2.049687E+19 5.498695E+18 2.451733E+17 1.261066E-03 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.814648E+02 
180
181 4.427443E+13 0.000000E+00 6.597567E+18 1.769929E+18 7.891680E+16 4.059139E-04 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.274180E+02 
182
183 2.127829E+12 0.000000E+00 3.170791E+17 8.506280E+16 3.792741E+15 1.950822E-05 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.374389E+02 
184
185 1.412184E+11 0.000000E+00 2.104370E+16 5.645392E+15 2.517142E+14 1.294709E-06 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.795551E+02 
186
187 1.254884E+10 0.000000E+00 1.874533E+15 4.923051E+14 2.239685E+13 1.147668E-07 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.190732E+02 
188
189 5.196477E+05 1.274494E+08 4.850450E+07 1.720838E+06 2.354487E+04 5.881940E-15 2.500078E+04 6.279210E+06 2.667273E+04 1.426412E+03 1.408608E+03 
190
191 4.260860E+07 1.241342E+11 4.929562E+12 1.048407E+12 4.993465E+10 2.914304E-10 8.831229E+06 2.252516E+05 2.415246E-42 1.027318E+03 1.934071E+02 
192
193
194 DAY            172          81         172         172         172
195 UT           29000       29000       75000       29000       29000
196 ALT            400         400        1000         100         400
197 LAT             60          60          60          60           0
198 LONG           -70         -70         -70         -70         -70
199 LST             16          16          16          16          16
200 F107A          150         150         150         150         150
201 F107           150         150         150         150         150
202
203
204 TINF       1250.54     1166.75     1239.89     1027.32     1212.40
205 TG         1241.42     1161.71     1239.89      206.89     1208.14
206 HE       6.665e+05   3.407e+06   1.124e+05   5.412e+07   1.851e+06
207 O        1.139e+08   1.586e+08   6.934e+04   1.919e+11   1.477e+08
208 N2       1.998e+07   1.391e+07   4.247e+01   6.116e+12   1.579e+07
209 O2       4.023e+05   3.263e+05   1.323e-01   1.225e+12   2.634e+05
210 AR       3.557e+03   1.560e+03   2.619e-05   6.023e+10   1.589e+03
211 H        3.475e+04   4.854e+04   2.017e+04   1.060e+07   5.816e+04
212 N        4.096e+06   4.381e+06   5.741e+03   2.616e+05   5.479e+06
213 ANM 0    2.667e+04   6.957e+03   2.374e+04   2.820e-42   1.264e+03
214 RHO      4.075e-15   5.002e-15   2.757e-18   3.584e-10   4.810e-15
215
216
217 DAY            172         172         172         172         172
218 UT           29000       29000       29000       29000       29000
219 ALT            400         400         400         400         400
220 LAT             60          60          60          60          60
221 LONG             0         -70         -70         -70         -70
222 LST             16           4          16          16          16
223 F107A          150         150          70         150         150
224 F107           150         150         150         180         150
225
226
227 TINF       1220.15     1116.39     1031.25     1306.05     1361.87
228 TG         1212.71     1113.00     1024.85     1293.37     1347.39
229 HE       8.673e+05   5.776e+05   3.740e+05   6.748e+05   5.529e+05
230 O        1.279e+08   6.979e+07   4.783e+07   1.245e+08   1.198e+08
231 N2       1.823e+07   1.237e+07   5.240e+06   2.369e+07   3.496e+07
232 O2       2.922e+05   2.493e+05   1.760e+05   4.912e+05   9.340e+05
233 AR       2.403e+03   1.406e+03   5.502e+02   4.579e+03   1.096e+04
234 H        3.686e+04   5.292e+04   8.897e+04   3.245e+04   2.686e+04
235 N        3.897e+06   1.070e+06   1.980e+06   5.371e+06   4.890e+06
236 ANM 0    2.667e+04   2.667e+04   9.122e+03   2.667e+04   2.805e+04
237 RHO      4.356e-15   2.471e-15   1.572e-15   4.564e-15   4.975e-15
238
239
240 DAY            172         172         172         172         172
241 UT           29000       29000       29000       29000       29000
242 ALT              0          10          30          50          70
243 LAT             60          60          60          60          60
244 LONG           -70         -70         -70         -70         -70
245 LST             16          16          16          16          16
246 F107A          150         150         150         150         150
247 F107           150         150         150         150         150
248
249
250 TINF       1027.32     1027.32     1027.32     1027.32     1027.32
251 TG          281.46      227.42      237.44      279.56      219.07
252 HE       1.375e+14   4.427e+13   2.128e+12   1.412e+11   1.255e+10
253 O        0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
254 N2       2.050e+19   6.598e+18   3.171e+17   2.104e+16   1.875e+15
255 O2       5.499e+18   1.770e+18   8.506e+16   5.645e+15   4.923e+14
256 AR       2.452e+17   7.892e+16   3.793e+15   2.517e+14   2.240e+13
257 H        0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
258 N        0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
259 ANM 0    0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
260 RHO      1.261e-03   4.059e-04   1.951e-05   1.295e-06   1.148e-07
261
262
263 Note: These values equal those of the official FORTRAN package with
264 one notable exception: the FORTRAN version reports for "anomalous
265 oxygen" in test-run 4 exactly 0.000E-00, while my C compiler
266 generates code which calculates 2.820e-42. When only 16-bit wide
267 double variables are used, this value reduces to 0.000E-00 as well.
268
269
270
271 ========================================================
272
273 Frankfurt, Germany, on August 30, 2017
274
275 Dominik Brodowski