NRLMSISE-00 initial C release
[~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 - devel@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 Please check for updates often during the next weeks, since the C
69 package probably has some bugs. Additionally, some modifications
70 to the NRLMSISE-00 FORTRAN package will be published soon, and I'll
71 try to update the C package accordingly within a few days.
72
73
74
75 4. THIS C RELEASE
76 =================
77
78 When "INLINE" is not externally defined the source code should be
79 clean, plain ANSI which any C compiler should be able to work with. If
80 you find any problems, please report them to the maintainer Dominik
81 Brodowski at devel@brodo.de. Thank you!
82
83
84 4.1 Files
85 ---------
86
87 DOCUMENTATION      - this Documentation
88 nrlmsise-00.h      - header file for nrlmsise-00
89 nrlmsise-00.c      - source code for nrlmsise-00
90 nrlmsise-00_data.c - block data for nrlmsise-00
91 nrlmsise-00_test.c - test-driver for nrlmsise-00
92 makefile           - makefile for nrlmsise-test (gnu-make and gcc)
93
94
95 4.2 Differences between FORTRAN and C version
96 ---------------------------------------------
97
98 The C package does not save the last results internally to speed up
99 program execution as the FORTRAN version does.
100
101 The "switches" have to be specified before _every_ call.
102
103 The "DL" array is not printed in the testing routine since it's not an
104 output value.
105
106 The C version probably contains some bugs and still has to be regarded
107 more unstable than the FORTRAN relase. Please report any bugs or
108 incorrect values to the maintainer at devel@brodo.de
109
110
111
112 5. INTERFACE
113 ============
114
115 To access the NRLMSISE-00 functions you need to include the header
116 file nrlmsise-00.h. In this file you can find comments which explain
117 the in- and output, and the differences between the various functions.
118
119
120
121 6. RELEASE NOTES
122 ================
123
124 20020302        -       first release
125
126
127
128 7. TESTING OUTPUT
129 =================
130
131 nrlmsise-test should generate the following output:
132
133
134 6.665177E+05 1.138806E+08 1.998211E+07 3.964051E+05 3.557465E+03 4.074402E-15 3.475312E+04 4.095913E+06 2.667273E+04 1.250540E+03 1.241416E+03 
135
136 3.407293E+06 1.586333E+08 1.391117E+07 3.214942E+05 1.559618E+03 5.001593E-15 4.854208E+04 4.380967E+06 6.956682E+03 1.166754E+03 1.161710E+03 
137
138 1.123767E+05 6.934130E+04 4.247105E+01 1.303616E-01 2.618848E-05 2.756772E-18 2.016750E+04 5.741256E+03 2.374394E+04 1.239892E+03 1.239891E+03 
139
140 7.078194E+07 1.946309E+11 6.115826E+12 1.183637E+12 6.023212E+10 3.563077E-10 1.059880E+07 2.615737E+05 2.819879E-42 1.027318E+03 2.068878E+02 
141
142 1.851122E+06 1.476555E+08 1.579356E+07 2.595354E+05 1.588781E+03 4.809426E-15 5.816167E+04 5.478984E+06 1.264446E+03 1.212396E+03 1.208135E+03 
143
144 8.673095E+05 1.278862E+08 1.822577E+07 2.879564E+05 2.402962E+03 4.355639E-15 3.686389E+04 3.897276E+06 2.667273E+04 1.220146E+03 1.212712E+03 
145
146 5.776251E+05 6.979139E+07 1.236814E+07 2.456484E+05 1.405739E+03 2.470458E-15 5.291986E+04 1.069814E+06 2.667273E+04 1.116385E+03 1.112999E+03 
147
148 3.740304E+05 4.782720E+07 5.240380E+06 1.711538E+05 5.501649E+02 1.571632E-15 8.896776E+04 1.979741E+06 9.121815E+03 1.031247E+03 1.024848E+03 
149
150 6.748339E+05 1.245315E+08 2.369010E+07 4.839898E+05 4.578781E+03 4.564039E-15 3.244595E+04 5.370833E+06 2.667273E+04 1.306052E+03 1.293374E+03 
151
152 5.528601E+05 1.198041E+08 3.495798E+07 9.203305E+05 1.096255E+04 4.973819E-15 2.686428E+04 4.889974E+06 2.805445E+04 1.361868E+03 1.347389E+03 
153
154 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 
155
156 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 
157
158 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 
159
160 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 
161
162 1.261027E+10 0.000000E+00 1.874533E+15 4.809049E+14 2.239685E+13 1.141612E-07 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.190732E+02 
163
164 5.196477E+05 1.274494E+08 4.850450E+07 1.695722E+06 2.354487E+04 5.880606E-15 2.500078E+04 6.279210E+06 2.667273E+04 1.426412E+03 1.408608E+03 
165
166 5.673929E+07 1.259077E+11 4.929562E+12 1.021646E+12 4.993465E+10 2.900560E-10 8.831229E+06 2.252516E+05 2.415246E-42 1.027318E+03 1.934071E+02 
167
168
169 DAY            172          81         172         172         172
170 UT           29000       29000       75000       29000       29000
171 ALT            400         400        1000         100         400
172 LAT             60          60          60          60           0
173 LONG           -70         -70         -70         -70         -70
174 LST             16          16          16          16          16
175 F107A          150         150         150         150         150
176 F107           150         150         150         150         150
177
178
179 TINF       1250.54     1166.75     1239.89     1027.32     1212.40
180 TG         1241.42     1161.71     1239.89      206.89     1208.14
181 HE       6.665e+05   3.407e+06   1.124e+05   7.078e+07   1.851e+06
182 O        1.139e+08   1.586e+08   6.934e+04   1.946e+11   1.477e+08
183 N2       1.998e+07   1.391e+07   4.247e+01   6.116e+12   1.579e+07
184 O2       3.964e+05   3.215e+05   1.304e-01   1.184e+12   2.595e+05
185 AR       3.557e+03   1.560e+03   2.619e-05   6.023e+10   1.589e+03
186 H        3.475e+04   4.854e+04   2.017e+04   1.060e+07   5.816e+04
187 N        4.096e+06   4.381e+06   5.741e+03   2.616e+05   5.479e+06
188 ANM 0    2.667e+04   6.957e+03   2.374e+04   2.820e-42   1.264e+03
189 RHO      4.074e-15   5.002e-15   2.757e-18   3.563e-10   4.809e-15
190
191
192 DAY            172         172         172         172         172
193 UT           29000       29000       29000       29000       29000
194 ALT            400         400         400         400         400
195 LAT             60          60          60          60          60
196 LONG             0         -70         -70         -70         -70
197 LST             16           4          16          16          16
198 F107A          150         150          70         150         150
199 F107           150         150         150         180         150
200
201
202 TINF       1220.15     1116.39     1031.25     1306.05     1361.87
203 TG         1212.71     1113.00     1024.85     1293.37     1347.39
204 HE       8.673e+05   5.776e+05   3.740e+05   6.748e+05   5.529e+05
205 O        1.279e+08   6.979e+07   4.783e+07   1.245e+08   1.198e+08
206 N2       1.823e+07   1.237e+07   5.240e+06   2.369e+07   3.496e+07
207 O2       2.880e+05   2.456e+05   1.712e+05   4.840e+05   9.203e+05
208 AR       2.403e+03   1.406e+03   5.502e+02   4.579e+03   1.096e+04
209 H        3.686e+04   5.292e+04   8.897e+04   3.245e+04   2.686e+04
210 N        3.897e+06   1.070e+06   1.980e+06   5.371e+06   4.890e+06
211 ANM 0    2.667e+04   2.667e+04   9.122e+03   2.667e+04   2.805e+04
212 RHO      4.356e-15   2.470e-15   1.572e-15   4.564e-15   4.974e-15
213
214
215 DAY            172         172         172         172         172
216 UT           29000       29000       29000       29000       29000
217 ALT              0          10          30          50          70
218 LAT             60          60          60          60          60
219 LONG           -70         -70         -70         -70         -70
220 LST             16          16          16          16          16
221 F107A          150         150         150         150         150
222 F107           150         150         150         150         150
223
224
225 TINF       1027.32     1027.32     1027.32     1027.32     1027.32
226 TG          281.46      227.42      237.44      279.56      219.07
227 HE       1.375e+14   4.427e+13   2.128e+12   1.412e+11   1.261e+10
228 O        0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
229 N2       2.050e+19   6.598e+18   3.171e+17   2.104e+16   1.875e+15
230 O2       5.499e+18   1.770e+18   8.506e+16   5.645e+15   4.809e+14
231 AR       2.452e+17   7.892e+16   3.793e+15   2.517e+14   2.240e+13
232 H        0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
233 N        0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
234 ANM 0    0.000e+00   0.000e+00   0.000e+00   0.000e+00   0.000e+00
235 RHO      1.261e-03   4.059e-04   1.951e-05   1.295e-06   1.142e-07
236
237
238 Note: These values equal those of the official FORTRAN package with
239 one notable exception: the FORTRAN version reports for "anomalous
240 oxygen" in test-runs 4 and 17 exactly 0.000E-00, while my C compiler
241 generates code which calculates 2.820e-42. When only 16-bit wide
242 double variables are used, this value reduces to 0.000E-00 as well.
243
244
245
246 ========================================================
247
248 Rosenheim, Germany, on March 5th, 2002
249
250 Dominik Brodowski