guisdap Code
Brought to you by:
haggstrom
| File | Date | Author | Commit |
|---|---|---|---|
| CMakeLists.txt | 2021-03-02 |
|
[ec693a] msis bugs |
| Makefile | 2021-03-01 |
|
[60b477] model updates |
| alt2gph.F90 | 2021-03-01 |
|
[60b477] model updates |
| matface.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_calc.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_constants.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_dfn.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_gfn.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_gtd8d.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_init.F90 | 2021-03-01 |
|
[60b477] model updates |
| msis_tfn.F90 | 2021-03-01 |
|
[60b477] model updates |
| readme.txt | 2021-03-01 |
|
[60b477] model updates |
===============================================================================
MSIS® (NRL-SOF-014-1) SOFTWARE
MSIS® is a registered trademark of the Government of the United States of
America, as represented by the Secretary of the Navy. Unauthorized use of
the trademark is prohibited.
The MSIS® Software (hereinafter Software) is property of the United States
Government, as represented by the Secretary of the Navy. Methods performed
by this software are covered by U.S. Patent Number 10,641,925. The Government
of the United States of America, as represented by the Secretary of the Navy,
herein grants a non-exclusive, non-transferable license to the Software for
academic, non-commercial, purposes only. A user of the Software shall not:
(i) use the Software for any non-academic, commercial purposes, (ii) make
any modification or improvement to the Software, (iii) disseminate the
Software or any supporting data to any other person or entity who will use
the Software for any non-academic, commercial purposes, or (iv) copy the
Software or any documentation related thereto except for (a) distribution
among the user’s personal computer systems, archival, or emergency repair
purposes, or (b) distribution for non-commercial, academic purposes, without
first obtaining the written consent of IP Counsel for the Naval Research
Laboratory.
As the owner of MSIS®, the United States, the United States Department of
Defense, and their employees: (1) Disclaim any warranties, express, or
implied, including but not limited to any implied warranties of
merchantability, fitness for a particular purpose, title or non-infringement,
(2) Do not assume any legal liability or responsibility for the accuracy,
completeness, or usefulness of the software, (3) Do not represent that use of
the software would not infringe privately owned rights, (4) Do not warrant
that the software will function uninterrupted, that is error-free or that any
errors will be corrected.
BY USING THIS SOFTWARE YOU ARE AGREEING TO THE ABOVE TERMS AND CONDITIONS.
===============================================================================
NRLMSIS 2.0 Whole-Atmosphere Empirical Model of Temperature and Neutral Species
Densities
This software package is a major upgrade to the NRLMSISE-00 model.
VERSION HISTORY
08 MAR 19 Version 1.97 (Beta version)
27 APR 20 Version 1.99 (Beta version)
26 MAY 20 Version 2.0 (Release version)
AUTHORS
Douglas Drob (douglas.drob@nrl.navy.mil)
John Emmert (john.emmert@nrl.navy.mil)
REFERENCE
Emmert, J.T., Drob, D. P., Picone, J. M., Siskind, D. E., Jones Jr., M.,
et al. (2020). NRLMSIS 2.0: A whole-atmosphere empirical model of temperature
and neutral species densities. Manuscript in preparation, to be submitted to
Earth and Space Science.
PACKAGE CONTENTS
readme.txt This file
msis2.0_test.F90 Test program
msis_init.F90 Subroutines to initialize the model, set switches and
options, and load parameter file
msis_gtd8d.F90 Subroutine to evaluate the model using the legacy
interface
msis_calc.F90 Subroutine for evaluating the model using the new
interface
msis_constants.F90 Module containing model constants
msis_gfn.F90 Subroutines to calculate horizontal expansion
functions
msis_tfn.F90 Subroutines to calculate the vertical temperature
profile
msis_dfn.F90 Subroutines to calculate vertical density profiles
alt2gph.F90 Subroutines to convert between geodetic height and
geopotential height
subroutine_dir.jpg Graphical directory of modules and subroutines
contained in the source code files
msis2.0.parm Binary data file containing model parameters
msis2.0_test_in.txt ASCII file containing input for test program.
msis2.0_test_ref_dp.txt ASCII file containing expected output of test program
(double-precision internally)
msis2.0_test_ref_sp.txt ASCII file containing expected output of test program
(single-precision internally)
RELEASE NOTES: MODEL FORMULATION
Major changes to the NRLMSISE-00 formulation include:
- The transition from a fully mixed atmosphere to diffusive separation is now
represented via height-dependent effective mass for each species.
- The temperature profile is now C2 continuous.
- A global geopotential height function is now used internally.
- Atomic oxygen now extends down to 50 km; below 85 km, the O profile is
represented by cubic B splines decoupled from temperature.
- Thermal diffusion is no longer applied to any species.
RELEASE NOTES: PARAMETER ESTIMATION
- The parameters of the model were tuned to extensive new data in the
troposphere, stratosphere, and mesosphere, and to NRLMSISE-00 in the
thermosphere. In the thermosphere, the model atomic oxygen was additionally
tuned to global average orbit-derived density data.
- Thermospheric N2 is now controlled entirely by the temperature profile and
the constant mixing ratio of N2 in the lower atmosphere. See paper for
details. To instead retrieve the NRLMSISE-00 thermospheric N2, set
lN2_msis00 = .true. in the call to MSISINIT.
COMPILING THE MODEL CODE
The model package was tested on Windows, Linux, and Mac systems using the
following Fortran compilers and compile statements:
gfortran 4.8.5, 6.3.0, 8.1.0
gfortran -O3 -cpp -o msis2.0_test.exe alt2gph.F90 msis_constants.F90
msis_init.F90 msis_gfn.F90 msis_tfn.F90 msis_dfn.F90 msis_calc.F90
msis_gtd8d.F90 msis2.0_test.F90
NOTES:
- For double precision, add the flag -DDBLE
- The following optimization flags may improve performance:
-march=native -ffast-math
Intel 17.0.2.163, 18.0.1.156
ifort -O2 -fpp -o msis2.0_test.exe alt2gph.F90 msis_constants.F90
msis_init.F90 msis_gfn.F90 msis_tfn.F90 msis_dfn.F90 msis_calc.F90
msis_gtd8d.F90 msis2.0_test.F90
NOTES:
- For double precision, add the flag -DDBLE
- The following optimization flags may improve performance:
Windows: -Qipo -QxHost
Linux/macOS: -ipo -xHost
INITIALIZING AND RUNNING THE MODEL
- The model must be initialized using the MSISINIT subroutine, which sets
switches and options and loads the model parameter values from a file.
- The switch_legacy optional argument to MSISINIT performs the same function
as TSELEC(SW) in NRLSMSISE-00, except that switches 15-25 are not used in
NRLMSIS 2.0. The change in the switch-setting call is illustrated as
follows, where SW is the 25-element array of switches:
NRLMSISE-00: CALL TSELEC(SW)
NRLMSIS 2.0: call msisinit(switch_legacy=SW)
- The MSISCALC subroutine checks for initialization and does a default
initialization if necessary. This self-initialization will be removed in
future versions.
- The model can be called using either the legacy interface (subroutine
GTD8D) or the new interface (subroutine MSISCALC).
- Details of the input and output arguments of MSISINIT, GTD8D, and MSISCALC
are provided in the headers of the respective source code files.
COMPUTATIONAL PERFORMANCE
- The model should be initialized (by calling MSISINIT) only before first use
or when switches and options need to be changed. Re-initializing before each
model call will significantly slow down the code.
- The code is most efficient when computing vertical profiles at the same
horizontal location and time, in which case the computed vertical profile
parameters are re-used from call to call. Therefore, altitude should be in
the inner loop of multiple calls, when possible.
- For "column" calls (inner loop on altitude) with 100 vertical levels,
NRLMSIS 2.0 is 4-5 times faster than NRLMSISE-00.
- For applications in which the horizontal location or time changes with every
call (e.g., satellite ephemerides), users may find that NRLMSIS 2.0 is 1/3
to 1/2 as fast as NRLMSISE-00. The reduction in speed is due to the greater
number of model parameters in NRLMSIS 2.0, as well its stronger coupling
with the lower atmosphere, compared to NRLMSISE-00. However, the model is
still very fast: a typical desktop system can process at least 100,000
serial calls per second.
- Additional improvement in speed can be obtained by computing only those
species that are needed, via the lspec_select input argument of MSISINIT.
ACKNOWLEDGEMENTS
This work was supported by the Chief of Naval Research, the Office of Naval
Research (BSION program), and NASA (Grants NNH16ZDA001N-HSR/ITM16_2-0013,
NNH14ZDA001N-GIODDE14_2/NNH15AZ72I)