org.orekit.forces.atmospheres.MSIS2000
Class NRLMSISE00

java.lang.Object
  extended by org.orekit.forces.atmospheres.MSIS2000.NRLMSISE00

public final class NRLMSISE00
extends Object

NRLMSISE-00 atmospheric model.
Methods of this class are adapted from the C source code of the NRLMSISE-00 model developed by Mike Picone, Alan Hedin, and Doug Drob, and implemented by Dominik Brodowski. The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and Doug Drob. They also wrote a NRLMSISE-00 distribution package in FORTRAN which is available at http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm Dominik Brodowski implemented and maintains this C version. You can reach him at mail@brodo.de. See the file "DOCUMENTATION" for details, and check http://www.brodo.de/english/pub/nrlmsise/index.html for updated releases of this package.

Since:
1.2
Version:
$Id: NRLMSISE00.java 9755 2014-01-06 17:06:13Z houdroge $
Author:
Vincent Ruch, Rami Houdroge
Concurrency :
thread-hostile

Constructor Summary
NRLMSISE00()
          Constructor.
 
Method Summary
protected  double ccor(double alt, double r, double h1, double zh)
          ccor.
CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS.
protected  double ccor2(double alt, double r, double h1, double zh, double h2)
          ccor2.
CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS
protected  double densm(double alt, double d0, double xm, double tz, int mn3, double[] zn3, double[] tn3, double[] tgn3, int mn2, double[] zn2, double[] tn2, double[] tgn2)
          Calculate temperature and density profiles for lower atmosphere.
protected  double densu(double alt, double dlb, double tinf, double tlb, double xm, double alpha, Double[] tz, double zlb, double s2, int mn1, double[] zn1, double[] tn1, double[] tgn1)
          Calculate temperature and density profiles for MSIS models.
protected  double dnet(double dd, double dm, double zhm, double xmm, double xm)
          dnet Turbopause correction for MSIS models root mean density.
protected  void gtd7(Input input, Flags flags, Output output)
          gtd7 : Neutral Atmosphere Empirical Model from the surface to lower exosphere.
 void gtd7d(Input input, Flags flags, Output output)
          gtd7d.
This subroutine provides Effective Total Mass Density for output d[5] which includes contributions from "anomalous oxygen" which can affect satellite drag above 500 km.
protected  void spline(double[] x, double[] y, int n, double yp1, double ypn, double[] y2)
          spline.
Calculate 2nd derivatives of cubic spline interpolation function adapted from numerical recipes by press et al.
protected  double splint(double[] xa, double[] ya, double[] y2a, int n, double x)
          splint calculate cubic spline interpolation value adapted from numerical recipes by press et al.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NRLMSISE00

public NRLMSISE00()
Constructor.

Method Detail

ccor

protected double ccor(double alt,
                      double r,
                      double h1,
                      double zh)
ccor.
CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS.

Parameters:
alt - altitude
r - target ratio
h1 - transition scale length
zh - altitude of 1/2 r
Returns:
exp(e)

ccor2

protected double ccor2(double alt,
                       double r,
                       double h1,
                       double zh,
                       double h2)
ccor2.
CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS

Parameters:
alt - altitude
r - target ratio
h1 - transition scale length
zh - altitude of 1/2 r
h2 - transition scale length #2
Returns:
exp(ccor2v)

densm

protected double densm(double alt,
                       double d0,
                       double xm,
                       double tz,
                       int mn3,
                       double[] zn3,
                       double[] tn3,
                       double[] tgn3,
                       int mn2,
                       double[] zn2,
                       double[] tn2,
                       double[] tgn2)
Calculate temperature and density profiles for lower atmosphere.

Parameters:
alt - alt
d0 - d0
xm - xm
tz - tz
mn3 - mn3
zn3 - zn3
tn3 - tn3
tgn3 - tgn3
mn2 - mn2
zn2 - zn2
tn2 - tn2
tgn2 - tgn2
Returns:
density for lower atmosphere

densu

protected double densu(double alt,
                       double dlb,
                       double tinf,
                       double tlb,
                       double xm,
                       double alpha,
                       Double[] tz,
                       double zlb,
                       double s2,
                       int mn1,
                       double[] zn1,
                       double[] tn1,
                       double[] tgn1)
Calculate temperature and density profiles for MSIS models. New lower thermo polynomial.

Parameters:
alt - alt
dlb - dlb
tinf - tinf
tlb - tlb
xm - xm
alpha - alpha
tz - tz
zlb - zlb
s2 - s2
mn1 - mn1
zn1 - zn1
tn1 - tn1
tgn1 - tgn1
Returns:
densu

dnet

protected double dnet(double dd,
                      double dm,
                      double zhm,
                      double xmm,
                      double xm)
dnet Turbopause correction for MSIS models root mean density.

Parameters:
dd - diffusive density
dm - full mixed density
zhm - transition scale length
xmm - full mixed molecular weight
xm - species molecular weight
Returns:
combined density

gtd7

protected void gtd7(Input input,
                    Flags flags,
                    Output output)
gtd7 : Neutral Atmosphere Empirical Model from the surface to lower exosphere.

Parameters:
input - ipnut
flags - flags
output - output

spline

protected void spline(double[] x,
                      double[] y,
                      int n,
                      double yp1,
                      double ypn,
                      double[] y2)
spline.
Calculate 2nd derivatives of cubic spline interpolation function adapted from numerical recipes by press et al.

Parameters:
x - array of abscissa in ascending order by x
y - array of tabulated function in ascending order by x
n - size of arrays x,y
yp1 - specified derivative at x[0]; values >= 1E30 signal second derivative zero
ypn - specified derivative at x[n-1]; values >= 1E30 signal second derivative zero
y2 - output array of second derivatives

splint

protected double splint(double[] xa,
                        double[] ya,
                        double[] y2a,
                        int n,
                        double x)
splint calculate cubic spline interpolation value adapted from numerical recipes by press et al.

Parameters:
xa - array of abscissa in ascending order by x
ya - array of tabulated function in ascending order by x
y2a - array of second derivatives
n - size of arrays xa,ya,y2a
x - abscissa for interpolation
Returns:
splint

gtd7d

public void gtd7d(Input input,
                  Flags flags,
                  Output output)
gtd7d.
This subroutine provides Effective Total Mass Density for output d[5] which includes contributions from "anomalous oxygen" which can affect satellite drag above 500 km. See the section "output" for additional details.

Parameters:
input - input
flags - flags
output - output


Copyright © 2016 CNES. All Rights Reserved.