From 1daf607ecfd464fe121da3feb6aed020eed210e6 Mon Sep 17 00:00:00 2001 From: Dominik Brodowski Date: Tue, 5 Mar 2002 12:00:00 +0100 Subject: NRLMSISE-00 initial C release C source code for the NRLMSISE-00 empirical atmosphere model The NRLMSIS-00 (sic!) empirical atmosphere model was developed by Mike Picone, Alan Hedin, and Doug Drob. It describes the neutral temperature and densities in Earth's atmosphere from ground to thermospheric heights. (quoted from http://modelweb.gsfc.nasa.gov/ ) - you can find a longer explanation of this model there, too. The authors of NRLMSISE-00 have released a FORTRAN version which is available at http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm. Based on the Official Beta Release 1.0 (NRLMSISE-00.DIST12.TXT) Dominik Brodowski wrote an implementation in C. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please inform the maintainer of the C release (Dominik Brodowski - mail@brodo.de) of any patches and bug-fixes you implement for NRLMSISE-00 so that this C package can be updated with these improvements. Signed-off-by: Dominik Brodowski --- DOCUMENTATION | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 DOCUMENTATION (limited to 'DOCUMENTATION') diff --git a/DOCUMENTATION b/DOCUMENTATION new file mode 100644 index 0000000..5562a2c --- /dev/null +++ b/DOCUMENTATION @@ -0,0 +1,250 @@ +-------------------------------------------------------------------- +--------- N R L M S I S E - 0 0 M O D E L 2 0 0 1 ---------- +-------------------------------------------------------------------- + + +Table of Contents +----------------- + +1. Legal Information +2. Brief Description +3. Source Code Availability +4. This C Release + 4.1 Files + 4.2 Differences between FORTRAN and C version +5. Interface +6. Release Notes +7. Testing Output + + + +1. LEGAL INFORMATION +==================== + +This package is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please inform the +maintainer of the C release (Dominik Brodowski - devel@brodo.de) of +any patches and bug-fixes you implement for NRLMSISE-00 so that this C +package can be updated with these improvements. + + + +2. BRIEF DESCRIPTION +==================== + +The NRLMSIS-00 empirical atmosphere model was developed by Mike +Picone, Alan Hedin, and Doug Drob based on the MSISE90 model. + +The MSISE90 model describes the neutral temperature and densities in +Earth's atmosphere from ground to thermospheric heights. Below 72.5 km +the model is primarily based on the MAP Handbook (Labitzke et al., +1985) tabulation of zonal average temperature and pressure by Barnett +and Corney, which was also used for the CIRA-86. Below 20 km these +data were supplemented with averages from the National Meteorological +Center (NMC). In addition, pitot tube, falling sphere, and grenade +sounder rocket measurements from 1947 to 1972 were taken into +consideration. Above 72.5 km MSISE-90 is essentially a revised MSIS-86 +model taking into account data derived from space shuttle flights and +newer incoherent scatter results. For someone interested only in the +thermosphere (above 120 km), the author recommends the MSIS-86 +model. MSISE is also not the model of preference for specialized +tropospheric work. It is rather for studies that reach across several +atmospheric boundaries. +(quoted from http://nssdc.gsfc.nasa.gov/space/model/atmos/nrlmsise00.html) + + + +3. SOURCE CODE AVAILABILITY +=========================== + +The authors of the NRLMSISE-00 model have released a FORTRAN version +which is available at +http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm + +Based on the Official Beta Release 1.0 (NRLMSISE-00.DIST12.TXT) +Dominik Brodowski wrote an implementation in C which is available on +http://www.brodo.de/english/pub/nrlmsise/ +Please check for updates often during the next weeks, since the C +package probably has some bugs. Additionally, some modifications +to the NRLMSISE-00 FORTRAN package will be published soon, and I'll +try to update the C package accordingly within a few days. + + + +4. THIS C RELEASE +================= + +When "INLINE" is not externally defined the source code should be +clean, plain ANSI which any C compiler should be able to work with. If +you find any problems, please report them to the maintainer Dominik +Brodowski at devel@brodo.de. Thank you! + + +4.1 Files +--------- + +DOCUMENTATION - this Documentation +nrlmsise-00.h - header file for nrlmsise-00 +nrlmsise-00.c - source code for nrlmsise-00 +nrlmsise-00_data.c - block data for nrlmsise-00 +nrlmsise-00_test.c - test-driver for nrlmsise-00 +makefile - makefile for nrlmsise-test (gnu-make and gcc) + + +4.2 Differences between FORTRAN and C version +--------------------------------------------- + +The C package does not save the last results internally to speed up +program execution as the FORTRAN version does. + +The "switches" have to be specified before _every_ call. + +The "DL" array is not printed in the testing routine since it's not an +output value. + +The C version probably contains some bugs and still has to be regarded +more unstable than the FORTRAN relase. Please report any bugs or +incorrect values to the maintainer at devel@brodo.de + + + +5. INTERFACE +============ + +To access the NRLMSISE-00 functions you need to include the header +file nrlmsise-00.h. In this file you can find comments which explain +the in- and output, and the differences between the various functions. + + + +6. RELEASE NOTES +================ + +20020302 - first release + + + +7. TESTING OUTPUT +================= + +nrlmsise-test should generate the following output: + + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + + +DAY 172 81 172 172 172 +UT 29000 29000 75000 29000 29000 +ALT 400 400 1000 100 400 +LAT 60 60 60 60 0 +LONG -70 -70 -70 -70 -70 +LST 16 16 16 16 16 +F107A 150 150 150 150 150 +F107 150 150 150 150 150 + + +TINF 1250.54 1166.75 1239.89 1027.32 1212.40 +TG 1241.42 1161.71 1239.89 206.89 1208.14 +HE 6.665e+05 3.407e+06 1.124e+05 7.078e+07 1.851e+06 +O 1.139e+08 1.586e+08 6.934e+04 1.946e+11 1.477e+08 +N2 1.998e+07 1.391e+07 4.247e+01 6.116e+12 1.579e+07 +O2 3.964e+05 3.215e+05 1.304e-01 1.184e+12 2.595e+05 +AR 3.557e+03 1.560e+03 2.619e-05 6.023e+10 1.589e+03 +H 3.475e+04 4.854e+04 2.017e+04 1.060e+07 5.816e+04 +N 4.096e+06 4.381e+06 5.741e+03 2.616e+05 5.479e+06 +ANM 0 2.667e+04 6.957e+03 2.374e+04 2.820e-42 1.264e+03 +RHO 4.074e-15 5.002e-15 2.757e-18 3.563e-10 4.809e-15 + + +DAY 172 172 172 172 172 +UT 29000 29000 29000 29000 29000 +ALT 400 400 400 400 400 +LAT 60 60 60 60 60 +LONG 0 -70 -70 -70 -70 +LST 16 4 16 16 16 +F107A 150 150 70 150 150 +F107 150 150 150 180 150 + + +TINF 1220.15 1116.39 1031.25 1306.05 1361.87 +TG 1212.71 1113.00 1024.85 1293.37 1347.39 +HE 8.673e+05 5.776e+05 3.740e+05 6.748e+05 5.529e+05 +O 1.279e+08 6.979e+07 4.783e+07 1.245e+08 1.198e+08 +N2 1.823e+07 1.237e+07 5.240e+06 2.369e+07 3.496e+07 +O2 2.880e+05 2.456e+05 1.712e+05 4.840e+05 9.203e+05 +AR 2.403e+03 1.406e+03 5.502e+02 4.579e+03 1.096e+04 +H 3.686e+04 5.292e+04 8.897e+04 3.245e+04 2.686e+04 +N 3.897e+06 1.070e+06 1.980e+06 5.371e+06 4.890e+06 +ANM 0 2.667e+04 2.667e+04 9.122e+03 2.667e+04 2.805e+04 +RHO 4.356e-15 2.470e-15 1.572e-15 4.564e-15 4.974e-15 + + +DAY 172 172 172 172 172 +UT 29000 29000 29000 29000 29000 +ALT 0 10 30 50 70 +LAT 60 60 60 60 60 +LONG -70 -70 -70 -70 -70 +LST 16 16 16 16 16 +F107A 150 150 150 150 150 +F107 150 150 150 150 150 + + +TINF 1027.32 1027.32 1027.32 1027.32 1027.32 +TG 281.46 227.42 237.44 279.56 219.07 +HE 1.375e+14 4.427e+13 2.128e+12 1.412e+11 1.261e+10 +O 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 +N2 2.050e+19 6.598e+18 3.171e+17 2.104e+16 1.875e+15 +O2 5.499e+18 1.770e+18 8.506e+16 5.645e+15 4.809e+14 +AR 2.452e+17 7.892e+16 3.793e+15 2.517e+14 2.240e+13 +H 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 +N 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 +ANM 0 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 +RHO 1.261e-03 4.059e-04 1.951e-05 1.295e-06 1.142e-07 + + +Note: These values equal those of the official FORTRAN package with +one notable exception: the FORTRAN version reports for "anomalous +oxygen" in test-runs 4 and 17 exactly 0.000E-00, while my C compiler +generates code which calculates 2.820e-42. When only 16-bit wide +double variables are used, this value reduces to 0.000E-00 as well. + + + +======================================================== + +Rosenheim, Germany, on March 5th, 2002 + +Dominik Brodowski -- cgit v1.2.3