chgres_cube
1.9.0
|
Process vertical profile climatologic data for WAM. More...
Go to the source code of this file.
Modules | |
module | gettemp_mod |
Use moduke for common blocks. | |
module | wam_gtd7bk_mod |
Use moduke for blockdata gtd7bk. | |
Functions/Subroutines | |
function | ccor (alt, r, h1, zh) |
Chemistry/dissociation correction. More... | |
function | ccor2 (alt, r, h1, zh, h2) |
O and O2 chemistry/dissociation correction. More... | |
function | densm (alt, d0, xm, tz, mn3, zn3, tn3, tgn3, mn2, zn2, tn2, tgn2) |
Calculate temperature and density profiles for lower atmos. More... | |
function | densu (alt, dlb, tinf, tlb, xm, alpha, tz, zlb, s2, mn1, zn1, tn1, tgn1) |
Calculate temperature and density profiles. More... | |
function | dnet (dd, dm, zhm, xmm, xm) |
Turbopause correction. More... | |
subroutine | gettemp (iday, nday, xlat, nlat, pr, np, temp, n_o, n_o2, n_n2) |
Entry routine to get WAM needed temperature and composition profiles. More... | |
subroutine | ghp7 (iyd, sec, alt, glat, glong, stl, f107a, f107, ap, d, t, press) |
Find altitude of pressure surface (press) from gtd7. More... | |
subroutine | glatf (lat, gv, reff) |
Calculate latitude variable. More... | |
function | glob7s (p) |
Version of globe for lower atmosphere. More... | |
function | globe7 (yrd, sec, lat, long, tloc, f107a, f107, ap, p) |
Calculate g(l) function for upper thermosphere parameters More... | |
subroutine | gtd7 (iyd, sec, alt, glat, glong, stl, f107a, f107, ap, mass, d, t) |
The nrlmsise-00 subroutine gtd7. More... | |
subroutine | gtd7d (iyd, sec, alt, glat, glong, stl, f107a, f107, ap, mass, d, t) |
The nrlmsise-00 subroutine gtd7d. More... | |
subroutine | gts7 (iyd, sec, alt, glat, glong, stl, f107a, f107, ap, mass, d, t) |
Thermospheric portion of nrlmsise-00. More... | |
subroutine | meters (meter) |
Convert outputs to kg & meters if meter true. More... | |
function | scalh (alt, xm, temp) |
Calculate scale height (km) More... | |
subroutine | spline (x, y, n, yp1, ypn, y2) |
Calculate 2nd derivatives of cubic spline interp function. More... | |
subroutine | splini (xa, ya, y2a, n, x, yi) |
Integrate cubic spline function. More... | |
subroutine | splint (xa, ya, y2a, n, x, y) |
Calculate cubic spline interp value. More... | |
subroutine | tselec (sv) |
Set switches. More... | |
function | vtst7 (iyd, sec, glat, glong, stl, f107a, f107, ap, ic) |
Test variable condition. More... | |
Variables | |
real | gettemp_mod::apd |
parameter calcumate for magnetic activity More... | |
real | gettemp_mod::apdf |
the same as apd More... | |
real, dimension(4) | gettemp_mod::apt |
daily magnetic activity More... | |
real | gettemp_mod::c2tloc |
cosine of 2 time location More... | |
real | gettemp_mod::c3tloc |
cosine of 3 time location More... | |
real | gettemp_mod::ctloc |
cosine of the location More... | |
real | gettemp_mod::day |
day in a year More... | |
real | gettemp_mod::db01 |
diffusive density at zlb for g01 More... | |
real | gettemp_mod::db04 |
diffusive density at zlb for g4 More... | |
real | gettemp_mod::db14 |
diffusive density at zlb for g14 More... | |
real | gettemp_mod::db16 |
diffusive density at zlb for g18 More... | |
real | gettemp_mod::db28 |
diffusive density at zlb for g28 More... | |
real | gettemp_mod::db32 |
diffusive density at zlb for g32 More... | |
real | gettemp_mod::db40 |
diffusive density at zlb for g40 More... | |
real | gettemp_mod::db48 |
diffusive density at zlb for g48 More... | |
real | gettemp_mod::dd |
diffusive density at alt More... | |
real | gettemp_mod::df |
the difference of f10.7 effect More... | |
real | gettemp_mod::dfa |
the difference to reference value More... | |
real | gettemp_mod::dm01 |
mixed density at alt01 More... | |
real | gettemp_mod::dm04 |
mixed density at alt04 More... | |
real | gettemp_mod::dm14 |
mixed density at alt14 More... | |
real | gettemp_mod::dm16 |
mixed density at alt16 More... | |
real | gettemp_mod::dm28 |
mixed density at alt28 More... | |
real | gettemp_mod::dm32 |
mixed density at alt32 More... | |
real | gettemp_mod::dm40 |
mixed density at alt40 More... | |
real | gettemp_mod::g0 |
initial gradient variations More... | |
real | gettemp_mod::gsurf |
surface gravitation force at given latitude More... | |
integer | wam_gtd7bk_mod::imr |
define version More... | |
character *4, dimension(3) | wam_gtd7bk_mod::isdate |
define date More... | |
character *4, dimension(2) | wam_gtd7bk_mod::istime |
define time More... | |
integer | gettemp_mod::isw |
indix for sw More... | |
integer | gettemp_mod::iyr |
integer for a given year More... | |
character *4, dimension(2) | wam_gtd7bk_mod::name |
define data name More... | |
real, dimension(50) | wam_gtd7bk_mod::pa1 |
block space data for he denisity More... | |
real, dimension(50) | wam_gtd7bk_mod::pa2 |
block space data for he denisity More... | |
real, dimension(50) | wam_gtd7bk_mod::pa3 |
block space data for he denisity More... | |
real, dimension(50) | wam_gtd7bk_mod::paa1 |
block space data for semiannual mult sam More... | |
real, dimension(50) | wam_gtd7bk_mod::paa2 |
block space data for semiannual mult sam More... | |
real, dimension(10) | wam_gtd7bk_mod::pavgm |
block space data for middle atmosphere averages More... | |
real, dimension(50) | wam_gtd7bk_mod::pb1 |
block space data for o density More... | |
real, dimension(50) | wam_gtd7bk_mod::pb2 |
block space data for o density More... | |
real, dimension(50) | wam_gtd7bk_mod::pb3 |
block space data for o density More... | |
real, dimension(50) | wam_gtd7bk_mod::pc1 |
block space data for n2 density More... | |
real, dimension(50) | wam_gtd7bk_mod::pc2 |
block space data for n2 density More... | |
real, dimension(50) | wam_gtd7bk_mod::pc3 |
block space data for n2 density More... | |
real, dimension(150, 9) | gettemp_mod::pd |
he density More... | |
real, dimension(50) | wam_gtd7bk_mod::pd1 |
block space data for tlb More... | |
real, dimension(50) | wam_gtd7bk_mod::pd2 |
block space data for tlb More... | |
real, dimension(50) | wam_gtd7bk_mod::pd3 |
block space data for tlb More... | |
real, dimension(25, 2) | gettemp_mod::pdl |
turbo More... | |
real, dimension(10, 8) | wam_gtd7bk_mod::pdm |
block space data for lower boundary More... | |
real, dimension(50) | wam_gtd7bk_mod::pe1 |
block space data for o2 density More... | |
real, dimension(50) | wam_gtd7bk_mod::pe2 |
block space data for o2 density More... | |
real, dimension(50) | wam_gtd7bk_mod::pe3 |
block space data for o2 density More... | |
real, dimension(50) | wam_gtd7bk_mod::pf1 |
block space data for ar density More... | |
real, dimension(50) | wam_gtd7bk_mod::pf2 |
block space data for ar density More... | |
real, dimension(50) | wam_gtd7bk_mod::pf3 |
block space data for ar density More... | |
real, dimension(50) | wam_gtd7bk_mod::pg1 |
block space data for h density More... | |
real, dimension(50) | wam_gtd7bk_mod::pg2 |
block space data for h density More... | |
real, dimension(50) | wam_gtd7bk_mod::pg3 |
block space data for h density More... | |
real, dimension(50) | wam_gtd7bk_mod::ph1 |
block space data for n density More... | |
real, dimension(50) | wam_gtd7bk_mod::ph2 |
block space data for n density More... | |
real, dimension(50) | wam_gtd7bk_mod::ph3 |
block space data for n density More... | |
real, dimension(50) | wam_gtd7bk_mod::pi1 |
block space data for hot o density More... | |
real, dimension(50) | wam_gtd7bk_mod::pi2 |
block space data for hot o density More... | |
real, dimension(50) | wam_gtd7bk_mod::pi3 |
block space data for hot o density More... | |
real, dimension(50) | wam_gtd7bk_mod::pj1 |
block space data for s param More... | |
real, dimension(50) | wam_gtd7bk_mod::pj2 |
block space data for s param More... | |
real, dimension(50) | wam_gtd7bk_mod::pj3 |
block space data for s param More... | |
real, dimension(50) | wam_gtd7bk_mod::pk1 |
block space data for turbo More... | |
real, dimension(50) | wam_gtd7bk_mod::pl1 |
block space data for tn1(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::pl2 |
block space data for tn1(2) More... | |
real, dimension(9, 4) | gettemp_mod::plg |
Legendre polynomial points. More... | |
real, dimension(50) | wam_gtd7bk_mod::pm1 |
block space data for tn1(3) More... | |
real, dimension(50) | wam_gtd7bk_mod::pm2 |
block space data for tn1(3) More... | |
real, dimension(100, 10) | gettemp_mod::pma |
middle and low temperature More... | |
real, dimension(50) | wam_gtd7bk_mod::pn1 |
block space data for tn1(4) More... | |
real, dimension(50) | wam_gtd7bk_mod::pn2 |
block space data for tn1(4) More... | |
real, dimension(50) | wam_gtd7bk_mod::po1 |
block space data for tn1(5) tn2(1) More... | |
real, dimension(50) | wam_gtd7bk_mod::po2 |
block space data for tn1(5) tn2(1) More... | |
real, dimension(50) | wam_gtd7bk_mod::pp1 |
block space data for tn2(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::pp2 |
block space data for tn2(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::pq1 |
block space data for tn2(3) More... | |
real, dimension(50) | wam_gtd7bk_mod::pq2 |
block space data for tn2(3) More... | |
real, dimension(50) | wam_gtd7bk_mod::pr1 |
block space data for tn2(4) tn3(1) More... | |
real, dimension(2, 151) | wam_gtd7bk_mod::pr151 |
define pressures More... | |
real, dimension(50) | wam_gtd7bk_mod::pr2 |
block space data for tn2(4) tn3(1) More... | |
real, dimension(2, 65) | wam_gtd7bk_mod::pr65 |
define pressures More... | |
real, dimension(150) | gettemp_mod::ps |
s parameter More... | |
real, dimension(50) | wam_gtd7bk_mod::ps1 |
block space data for tn3(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::ps2 |
block space data for tn3(2) More... | |
real, dimension(150) | gettemp_mod::pt |
temperature More... | |
real, dimension(50) | wam_gtd7bk_mod::pt1 |
block space data for temperature More... | |
real, dimension(50) | wam_gtd7bk_mod::pt2 |
block space data for temperature More... | |
real, dimension(50) | wam_gtd7bk_mod::pt3 |
block space data for temperature More... | |
real, dimension(100, 4) | gettemp_mod::ptl |
upper temperature More... | |
real, dimension(10) | wam_gtd7bk_mod::ptm |
block space data for lower boundary More... | |
real, dimension(50) | wam_gtd7bk_mod::pu1 |
block space data for tn3(3) More... | |
real, dimension(50) | wam_gtd7bk_mod::pu2 |
block space data for tn3(3) More... | |
real, dimension(50) | wam_gtd7bk_mod::pv1 |
block space data for tn3(4) More... | |
real, dimension(50) | wam_gtd7bk_mod::pv2 |
block space data for tn3(4) More... | |
real, dimension(50) | wam_gtd7bk_mod::pw1 |
block space data for tn3(5) surface temperature tsl More... | |
real, dimension(50) | wam_gtd7bk_mod::pw2 |
block space data for tn3(5) surface temperature tsl More... | |
real, dimension(50) | wam_gtd7bk_mod::px1 |
block space data for tgn3(2) surface grad tslg More... | |
real, dimension(50) | wam_gtd7bk_mod::px2 |
block space data for tgn3(2) surface grad tslg More... | |
real, dimension(50) | wam_gtd7bk_mod::py1 |
block space data for tgn2(1) tgn1(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::py2 |
block space data for tgn2(1) tgn1(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::pz1 |
block space data for tgn3(1) tgn2(2) More... | |
real, dimension(50) | wam_gtd7bk_mod::pz2 |
block space data for tgn3(1) tgn2(2) More... | |
real | gettemp_mod::re |
referenced height related to gsurf More... | |
real | gettemp_mod::rl |
correction to specified mixing ratio at ground More... | |
real | gettemp_mod::s |
scale inverse to temperature difference More... | |
real | gettemp_mod::s2tloc |
sine of 2 time location More... | |
real | gettemp_mod::s3tloc |
sine of 3 time location More... | |
real, dimension(100) | gettemp_mod::sam |
semiannual mult sam More... | |
real | gettemp_mod::stloc |
sine of the location More... | |
real, dimension(25) | gettemp_mod::sw |
weighting More... | |
real, dimension(25) | gettemp_mod::swc |
weighting More... | |
real | gettemp_mod::t0 |
initial temperature More... | |
real, dimension(2) | gettemp_mod::tgn1 |
temperature gradient at node 1 (~mesosphere) More... | |
real, dimension(2) | gettemp_mod::tgn2 |
temperature gradient at node 2 (~stratosphere) More... | |
real, dimension(2) | gettemp_mod::tgn3 |
temperature gradient at node 3 (~troposphere) More... | |
real | gettemp_mod::tinfg |
startinf referenced point for tt More... | |
real | gettemp_mod::tlb |
labeled temperature More... | |
real, dimension(5) | gettemp_mod::tn1 |
temperature at node 1 (~mesosphere) More... | |
real, dimension(4) | gettemp_mod::tn2 |
temperature at node 2 (~stratosphere) More... | |
real, dimension(5) | gettemp_mod::tn3 |
temperature at node 3 (~troposphere) More... | |
real | gettemp_mod::tr12 |
try factor 1 or 2 More... | |
real, dimension(15) | gettemp_mod::tt |
referenced temperature More... | |
real | gettemp_mod::xlong |
a given longitude More... | |
real | gettemp_mod::z0 |
initial height More... | |
real | gettemp_mod::za |
joining altitude of bates and spline More... | |
Process vertical profile climatologic data for WAM.
This file contains all data need to form exosphere and used whole atmsopheric modeling (WAM). it has two modules and some routines to compute the temperature and compositions of neutral density in specific values. the original package contains fortran 77 blockdata and common statement they are all recoded to use modules and use-statements.
Definition in file wam_climo_data.f90.
function ccor | ( | alt, | |
r, | |||
h1, | |||
zh | |||
) |
Chemistry/dissociation correction.
[in] | alt | altitude |
[in] | r | target ratio |
[in] | h1 | transition scale length |
[in] | zh | altitude of 1/2 r |
Definition at line 2754 of file wam_climo_data.f90.
Referenced by gts7().
function ccor2 | ( | alt, | |
r, | |||
h1, | |||
zh, | |||
h2 | |||
) |
O and O2 chemistry/dissociation correction.
[in] | alt | altitude |
[in] | r | target ratio |
[in] | h1 | transition scale length 1 |
[in] | zh | altitude of 1/2 r |
[in] | h2 | transition scale length 2 |
Definition at line 2782 of file wam_climo_data.f90.
Referenced by gts7().
function densm | ( | alt, | |
d0, | |||
xm, | |||
tz, | |||
mn3, | |||
dimension(mn3) | zn3, | ||
dimension(mn3) | tn3, | ||
dimension(2) | tgn3, | ||
mn2, | |||
dimension(mn2) | zn2, | ||
dimension(mn2) | tn2, | ||
dimension(2) | tgn2 | ||
) |
Calculate temperature and density profiles for lower atmos.
[in] | alt | altitude (km) |
[in] | d0 | initial guess |
[in] | xm | molecular weight |
[out] | tz | temperature |
[in] | mn3 | size of array zn3 amd tn3 |
[in] | zn3 | altitude (km) |
[in] | tn3 | temperature |
[in] | tgn3 | altitude (km) |
[in] | mn2 | size of array zn2 and tn2 |
[in] | zn2 | altitude (km) |
[in] | tn2 | temperature |
[in] | tgn2 | end point temperature |
Definition at line 2504 of file wam_climo_data.f90.
References gettemp_mod::gsurf, gettemp_mod::re, spline(), splini(), and splint().
Referenced by gtd7().
function densu | ( | alt, | |
dlb, | |||
tinf, | |||
tlb, | |||
xm, | |||
alpha, | |||
tz, | |||
zlb, | |||
s2, | |||
mn1, | |||
dimension(mn1) | zn1, | ||
dimension(mn1) | tn1, | ||
dimension(2) | tgn1 | ||
) |
Calculate temperature and density profiles.
New lower thermo polynomial 10/30/89
[in] | alt | altitude (km) |
[in] | dlb | altitude (km) |
[in] | tinf | initial guess |
[in] | tlb | molecular weight |
[in] | xm | molecular weight |
[in] | alpha | initial guess |
[in] | tz | temperature |
[in] | zlb | altitude (km) |
[in] | s2 | altitude (km) |
[in] | mn1 | size of array zn2 and tn2 |
[in] | zn1 | altitude (km) |
[in] | tn1 | temperature |
[in] | tgn1 | end point temperature |
Definition at line 2405 of file wam_climo_data.f90.
References gettemp_mod::gsurf, gettemp_mod::re, spline(), splini(), and splint().
Referenced by gts7().
function dnet | ( | dd, | |
dm, | |||
zhm, | |||
xmm, | |||
xm | |||
) |
Turbopause correction.
[in] | dd | diffusive density |
[in] | dm | full mixed density |
[in] | zhm | transition scale length |
[in] | xmm | full mixed molecular weight |
[in] | xm | species molecular weight |
Definition at line 2720 of file wam_climo_data.f90.
Referenced by gts7().
subroutine gettemp | ( | integer, dimension(nday), intent(in) | iday, |
integer, intent(in) | nday, | ||
real, dimension(nlat), intent(in) | xlat, | ||
integer, intent(in) | nlat, | ||
real, dimension(np), intent(in) | pr, | ||
integer, intent(in) | np, | ||
real, dimension(np,nlat,nday), intent(out) | temp, | ||
real, dimension(np,nlat,nday), intent(out) | n_o, | ||
real, dimension(np,nlat,nday), intent(out) | n_o2, | ||
real, dimension(np,nlat,nday), intent(out) | n_n2 | ||
) |
Entry routine to get WAM needed temperature and composition profiles.
Calculate temperature at each grid point useing nrlmsise00_sub
[in] | iday | calendat date with array dimension of nday |
[in] | nday | dimension length of iday |
[in] | xlat | latitudes with dimension nlat |
[in] | nlat | dimension length of xlat |
[in] | pr | pressure in vertical with dimension of np |
[in] | np | dimension length of pr |
[out] | temp | temperature |
[out] | n_o | single oxygen number |
[out] | n_o2 | oxygen number |
[out] | n_n2 | nitrogen number |
Definition at line 968 of file wam_climo_data.f90.
References ghp7(), and tselec().
Referenced by atmosphere::VINTG_WAM().
subroutine ghp7 | ( | iyd, | |
sec, | |||
alt, | |||
glat, | |||
glong, | |||
stl, | |||
f107a, | |||
f107, | |||
dimension(7) | ap, | ||
dimension(9) | d, | ||
dimension(2) | t, | ||
press | |||
) |
Find altitude of pressure surface (press) from gtd7.
input:
[in] | iyd | year and day as yyddd |
[in] | sec | ut(sec) |
[in] | glat | geodetic latitude(deg) |
[in] | glong | geodetic longitude(deg) |
[in] | stl | local apparent solar time(hrs) |
[in] | f107a | 3 month average of f10.7 flux |
[in] | f107 | daily f10.7 flux for previous day |
[in] | ap | magnetic index(daily) or when sw(9)=-1. : array containing: ap(1) daily ap ap(2) 3 hr ap index for current time ap(3) 3 hr ap index for 3 hrs before current time ap(4) 3 hr ap index for 6 hrs before current time ap(5) 3 hr ap index for 9 hrs before current time ap(6) average of eight 3 hr ap indicies from 12 to 33 hrs pr to current time ap(7) average of eight 3 hr ap indicies from 36 to 59 hrs pr to current time |
[in] | press | pressure level(mb) output: |
[out] | alt | altitude(km) |
[out] | d | density array with length of 8 d(1) he number density(cm-3) d(2) o number density(cm-3) d(3) n2 number density(cm-3) d(4) o2 number density(cm-3) d(5) ar number density(cm-3) d(6) total mass density(gm/cm3) d(7) h number density(cm-3) d(8) n number density(cm-3) d(9) hot o number density(cm-3) |
[out] | t | temperature array with length of 2 t(1) exospheric temperature t(2) temperature at alt |
Definition at line 1412 of file wam_climo_data.f90.
References gettemp_mod::gsurf, gtd7(), wam_gtd7bk_mod::imr, and gettemp_mod::re.
Referenced by gettemp().
subroutine glatf | ( | real | lat, |
gv, | |||
reff | |||
) |
Calculate latitude variable.
[in] | lat | latitude in degree |
[out] | gv | gravity |
[out] | reff | effective radius |
Definition at line 1479 of file wam_climo_data.f90.
Referenced by gtd7().
function glob7s | ( | dimension(*) | p | ) |
Version of globe for lower atmosphere.
[in] | p | pressure (mb) |
Definition at line 2292 of file wam_climo_data.f90.
References gettemp_mod::apdf, gettemp_mod::apt, gettemp_mod::c2tloc, gettemp_mod::c3tloc, gettemp_mod::ctloc, gettemp_mod::day, gettemp_mod::dfa, gettemp_mod::plg, gettemp_mod::s2tloc, gettemp_mod::s3tloc, gettemp_mod::stloc, gettemp_mod::sw, gettemp_mod::swc, and gettemp_mod::xlong.
function globe7 | ( | yrd, | |
sec, | |||
real | lat, | ||
real | long, | ||
tloc, | |||
f107a, | |||
f107, | |||
dimension(*) | ap, | ||
dimension(*) | p | ||
) |
Calculate g(l) function for upper thermosphere parameters
[in] | yrd | year and day as yyddd |
[in] | sec | ut(sec) |
[in] | lat | geodetic latitude(deg) |
[in] | long | geodetic longitude(deg) |
[in] | tloc | local apparent solar time(hrs) |
[in] | f107a | 3 month average of f10.7 flux |
[in] | f107 | daily f10.7 flux for previous day |
[in] | ap | magnetic index(daily) or when sw(9)=-1. : array containing: ap(1) daily ap ap(2) 3 hr ap index for current time ap(3) 3 hr ap index for 3 hrs before current time ap(4) 3 hr ap index for 6 hrs before current time ap(5) 3 hr ap index for 9 hrs before current time ap(6) average of eight 3 hr ap indicies from 12 to 33 hrs pr to current time ap(7) average of eight 3 hr ap indicies from 36 to 59 hrs pr to current time |
[in] | p | pressure level(mb) |
Definition at line 2029 of file wam_climo_data.f90.
References gettemp_mod::apd, gettemp_mod::apdf, gettemp_mod::apt, gettemp_mod::c2tloc, gettemp_mod::c3tloc, gettemp_mod::ctloc, gettemp_mod::day, gettemp_mod::df, gettemp_mod::dfa, gettemp_mod::isw, gettemp_mod::iyr, gettemp_mod::plg, gettemp_mod::s2tloc, gettemp_mod::s3tloc, gettemp_mod::stloc, gettemp_mod::sw, gettemp_mod::swc, gettemp_mod::tinfg, tselec(), gettemp_mod::tt, and gettemp_mod::xlong.
Referenced by gts7().
subroutine gtd7 | ( | iyd, | |
sec, | |||
alt, | |||
glat, | |||
glong, | |||
stl, | |||
f107a, | |||
f107, | |||
dimension(7) | ap, | ||
mass, | |||
dimension(9) | d, | ||
dimension(2) | t | ||
) |
The nrlmsise-00 subroutine gtd7.
Neutral atmosphere empirical model from the surface to lower exosphere.
New features:
Extensive satellite drag database used in model generation
Revised o2 (and o) in lower thermosphere
Additional nonlinear solar activity term
"anomalous oxygen" number density, output d(9)
at high altitudes (> 500 km), hot atomic oxygen or ionized
oxygen can become appreciable for some ranges of subroutine inputs, thereby affecting drag on satellites and debris. we group these species under the term "anomalous oxygen," since their individual variations are not presently separable with the drag data used to define this model component.
And d(6) is the sum of the mass densities of t species labeled by indices 1-5 and 7-8 in output variable d. this includes he, o, n2, o2, ar, h, and n but does not includ anomalous oxygen (species index 9).
Notes on input variables:
ut, local time, and longitude are used independently in the
model and are not of equal importance for every situation.
for the most physically realistic calculation these three
variables should be consistent (stl=sec/3600+glong/15).
the equation of time departures from the above formula
for apparent local time can be included if available but
are of minor importance.
f107 and f107a values used to generate the model correspond
to the 10.7 cm radio flux at the actual distance of the earth
from the sun rather than the radio flux at 1 au. the following site provides both classes of values:
ftp://ftp.ngdc.noaa.gov/stp/solar_data/solar_radio/flux/
f107, f107a, and ap effects are neither large nor well
established below 80 km and these parameters should be set to
150., 150., and 4. respectively.
Subroutines for special outputs:
High altitude drag: effective total mass density
(subroutine gtd7d, output d(6))
for atmospheric drag calculations at altitudes above 500 km, call subroutine gtd7d to compute the "effective total mass
<br> density" by including contributions from "anomalous oxygen." see "notes on output variables" below on d(6).
Pressure grid (subroutine ghp7)
see subroutine ghp7 to specify outputs at a pressure level
rather than at an altitude.
Output in m-3 and kg/m3: call meters(.true.)
Notes on output variables:
To get output in m-3 and kg/m3: call meters(.true.)
o, h, and n are set to zero below 72.5 km
t(1), exospheric temperature, is set to global average for
altitudes below 120 km. the 120 km gradient is left at global
average value for altitudes below 72 km.
d(6), total mass density, is not the same for subroutines gtd7 and gtd7d
Switches: the following is for test and special purposes:
To turn on and off particular variations call tselec(sw),
where sw is a 25 element array containing 0. for off, 1.
for on, or 2. for main effects off but cross terms on
for the following variations
1 f10.7 effect on mean
2 time independent
3 symmetrical annual
4 symmetrical semiannual
5 asymmetrical annual
6 asymmetrical semiannual
7 diurnal
8 semidiurnal
9 daily ap
10 all ut/long effects
11 longitudinal
12 ut and mixed ut/long
13 mixed ap/ut/long
14 terdiurnal
15 departures from diffusive equilibrium
16 all tinf var
17 all tlb var
18 all tn1 var
19 all s var
20 all tn2 var
21 all nlb var
22 all tn3 var
23 turbo scale height var
[in] | iyd | year and day as yyddd (day of year from 1 to 365 or 366) |
[in] | sec | ut(sec) |
[in] | alt | altitude(km) |
[in] | glat | geodetic latitude(deg) |
[in] | glong | geodetic longitude(deg) |
[in] | stl | local apparent solar time(hrs; see note below) |
[in] | f107a | 81 day average of f10.7 flux (centered on day ddd) |
[in] | f107 | daily f10.7 flux for previous day |
[in] | ap | magnetic index(daily) or when sw(9)=-1. : array containing: ap(1) daily ap ap(2) 3 hr ap index for current time ap(3) 3 hr ap index for 3 hrs before current time ap(4) 3 hr ap index for 6 hrs before current time ap(5) 3 hr ap index for 9 hrs before current time ap(6) average of eight 3 hr ap indicies from 12 to 33 hrs pr to current time ap(7) average of eight 3 hr ap indicies from 36 to 57 hrs pr to current time |
[in] | mass | mass number (only density for selected gas is calculated. mass 0 is temperature. mass 48 for all. mass 17 is anomalous o only.) |
[out] | d | size of 9 with following definition. d(1) he number density(cm-3) d(2) o number density(cm-3) d(3) n2 number density(cm-3) d(4) o2 number density(cm-3) d(5) ar number density(cm-3) d(6) total mass density(gm/cm3) d(7) h number density(cm-3) d(8) n number density(cm-3) d(9) anomalous oxygen number density(cm-3) |
[out] | t | - size of 2 array with following definition. t(1) exospheric temperature t(2) temperature at alt |
Definition at line 1144 of file wam_climo_data.f90.
References gettemp_mod::dd, densm(), gettemp_mod::dm28, glatf(), glob7s(), gettemp_mod::gsurf, gts7(), wam_gtd7bk_mod::imr, gettemp_mod::isw, wam_gtd7bk_mod::pa1, wam_gtd7bk_mod::pa2, wam_gtd7bk_mod::pa3, wam_gtd7bk_mod::paa1, wam_gtd7bk_mod::paa2, wam_gtd7bk_mod::pavgm, wam_gtd7bk_mod::pb1, wam_gtd7bk_mod::pb2, wam_gtd7bk_mod::pb3, wam_gtd7bk_mod::pc1, wam_gtd7bk_mod::pc2, wam_gtd7bk_mod::pc3, gettemp_mod::pd, wam_gtd7bk_mod::pd1, wam_gtd7bk_mod::pd2, wam_gtd7bk_mod::pd3, gettemp_mod::pdl, wam_gtd7bk_mod::pdm, wam_gtd7bk_mod::pe1, wam_gtd7bk_mod::pe2, wam_gtd7bk_mod::pe3, wam_gtd7bk_mod::pf1, wam_gtd7bk_mod::pf2, wam_gtd7bk_mod::pf3, wam_gtd7bk_mod::pg1, wam_gtd7bk_mod::pg2, wam_gtd7bk_mod::pg3, wam_gtd7bk_mod::ph1, wam_gtd7bk_mod::ph2, wam_gtd7bk_mod::ph3, wam_gtd7bk_mod::pi1, wam_gtd7bk_mod::pi2, wam_gtd7bk_mod::pi3, wam_gtd7bk_mod::pj1, wam_gtd7bk_mod::pj2, wam_gtd7bk_mod::pj3, wam_gtd7bk_mod::pk1, wam_gtd7bk_mod::pl1, wam_gtd7bk_mod::pl2, wam_gtd7bk_mod::pm1, wam_gtd7bk_mod::pm2, gettemp_mod::pma, wam_gtd7bk_mod::pn1, wam_gtd7bk_mod::pn2, wam_gtd7bk_mod::po1, wam_gtd7bk_mod::po2, wam_gtd7bk_mod::pp1, wam_gtd7bk_mod::pp2, wam_gtd7bk_mod::pq1, wam_gtd7bk_mod::pq2, wam_gtd7bk_mod::pr1, wam_gtd7bk_mod::pr2, gettemp_mod::ps, wam_gtd7bk_mod::ps1, wam_gtd7bk_mod::ps2, gettemp_mod::pt, wam_gtd7bk_mod::pt1, wam_gtd7bk_mod::pt2, wam_gtd7bk_mod::pt3, gettemp_mod::ptl, wam_gtd7bk_mod::pu1, wam_gtd7bk_mod::pu2, wam_gtd7bk_mod::pv1, wam_gtd7bk_mod::pv2, wam_gtd7bk_mod::pw1, wam_gtd7bk_mod::pw2, wam_gtd7bk_mod::px1, wam_gtd7bk_mod::px2, wam_gtd7bk_mod::py1, wam_gtd7bk_mod::py2, wam_gtd7bk_mod::pz1, wam_gtd7bk_mod::pz2, gettemp_mod::re, gettemp_mod::sam, gettemp_mod::sw, gettemp_mod::tgn1, gettemp_mod::tgn2, gettemp_mod::tgn3, gettemp_mod::tn1, gettemp_mod::tn2, gettemp_mod::tn3, tselec(), and vtst7().
subroutine gtd7d | ( | iyd, | |
sec, | |||
alt, | |||
glat, | |||
glong, | |||
stl, | |||
f107a, | |||
f107, | |||
dimension(7) | ap, | ||
mass, | |||
dimension(9) | d, | ||
dimension(2) | t | ||
) |
The nrlmsise-00 subroutine gtd7d.
This subroutine provides effective total mass density for
output d(6) which includes contributions from "anomalous
<br> oxygen" which can affect satellite drag above 500 km. this
subroutine is part of the distribution package for the
neutral atmosphere empirical model from the surface to lower
exosphere. see subroutine gtd7 for more extensive comments.
And d(6) is the "effective total mass density
for drag" and is the sum of the mass densities of all species in this model, including anomalous oxygen.
[in] | iyd | year and day as yyddd (day of year from 1 to 365 (or 366) |
[in] | sec | ut(sec) |
[in] | alt | altitude(km) |
[in] | glat | geodetic latitude(deg) |
[in] | glong | geodetic longitude(deg) |
[in] | stl | local apparent solar time(hrs; see note below) |
[in] | f107a | 81 day average of f10.7 flux (centered on day ddd) |
[in] | f107 | daily f10.7 flux for previous day |
[in] | ap | magnetic index(daily) or when sw(9)=-1. : ap array containing: ap(1) daily ap ap(2) 3 hr ap index for current time ap(3) 3 hr ap index for 3 hrs before current time ap(4) 3 hr ap index for 6 hrs before current time ap(5) 3 hr ap index for 9 hrs before current time ap(6) average of eight 3 hr ap indicies from 12 to 33 hrs pr to current time ap(7) average of eight 3 hr ap indicies from 36 to 57 hrs pr to current time |
[in] | mass | mass number (only density for selected gas is calculated. mass 0 is temperature. mass 48 for all. mass 17 is anomalous o only.) |
[out] | d | density array with length of 9 |
[out] | t | temperature array with length of 2 d array contains: d(1) he number density(cm-3) d(2) o number density(cm-3) d(3) n2 number density(cm-3) d(4) o2 number density(cm-3) d(5) ar number density(cm-3) d(6) total mass density(gm/cm3) [includes anomalous oxygen] d(7) h number density(cm-3) d(8) n number density(cm-3) d(9) anomalous oxygen number density(cm-3) t array conyains: t(1) exospheric temperature t(2) temperature at alt |
Definition at line 1357 of file wam_climo_data.f90.
References gtd7(), and wam_gtd7bk_mod::imr.
subroutine gts7 | ( | iyd, | |
sec, | |||
alt, | |||
glat, | |||
glong, | |||
stl, | |||
f107a, | |||
f107, | |||
dimension(*) | ap, | ||
mass, | |||
dimension(9) | d, | ||
dimension(2) | t | ||
) |
Thermospheric portion of nrlmsise-00.
See gtd7 for more extensive comments
Output in m-3 and kg/m3: call meters(.true.)
[in] | iyd | year and day as yyddd (day of year from 1 to 365 or 366 |
[in] | sec | ut(sec) |
[in] | alt | altitude(km) (>72.5 km) |
[in] | glat | geodetic latitude(deg) |
[in] | glong | geodetic longitude(deg) |
[in] | stl | local apparent solar time(hrs) |
[in] | f107a | 3 month average of f10.7 flux |
[in] | f107 | daily f10.7 flux for previous day |
[in] | ap | magnetic index(daily) or when sw(9)=-1. : array containing: ap(1) daily ap ap(2) 3 hr ap index for current time ap(3) 3 hr ap index for 3 hrs before current time ap(4) 3 hr ap index for 6 hrs before current time ap(5) 3 hr ap index for 9 hrs before current time ap(6) average of eight 3 hr ap indicies from 12 to 33 hrs pr to current time ap(7) average of eight 3 hr ap indicies from 36 to 59 hrs pr to current time |
[in] | mass | - mass number (only density for selected gas is calculated. mass 0 is temperature. mass 48 for all. mass 17 is anomalous o only.) |
[out] | d | density array with length of 8 d(1) he number density(cm-3) d(2) o number density(cm-3) d(3) n2 number density(cm-3) d(4) o2 number density(cm-3) d(5) ar number density(cm-3) d(6) total mass density(gm/cm3) d(7) h number density(cm-3) d(8) n number density(cm-3) d(9) anomalous oxygen number density(cm-3) |
[out] | t | temperature array with length of 2 t(1) exospheric temperature t(2) temperature at alt |
Definition at line 1606 of file wam_climo_data.f90.
References ccor(), ccor2(), gettemp_mod::db01, gettemp_mod::db04, gettemp_mod::db14, gettemp_mod::db16, gettemp_mod::db28, gettemp_mod::db32, gettemp_mod::db40, gettemp_mod::db48, gettemp_mod::dd, densu(), gettemp_mod::dm01, gettemp_mod::dm04, gettemp_mod::dm14, gettemp_mod::dm16, gettemp_mod::dm28, gettemp_mod::dm32, gettemp_mod::dm40, dnet(), gettemp_mod::g0, glob7s(), globe7(), wam_gtd7bk_mod::imr, gettemp_mod::pd, gettemp_mod::pdl, wam_gtd7bk_mod::pdm, gettemp_mod::pma, gettemp_mod::ps, gettemp_mod::pt, gettemp_mod::ptl, wam_gtd7bk_mod::ptm, gettemp_mod::rl, gettemp_mod::s, scalh(), gettemp_mod::sw, gettemp_mod::t0, gettemp_mod::tgn1, gettemp_mod::tlb, gettemp_mod::tn1, gettemp_mod::tr12, vtst7(), gettemp_mod::z0, and gettemp_mod::za.
Referenced by gtd7().
subroutine meters | ( | logical | meter | ) |
Convert outputs to kg & meters if meter true.
[in] | meter | logical true or false |
Definition at line 1978 of file wam_climo_data.f90.
References wam_gtd7bk_mod::imr.
function scalh | ( | alt, | |
xm, | |||
temp | |||
) |
Calculate scale height (km)
[in] | alt | altitude [km] |
[in] | xm | molecular weihjt |
[in] | temp | temperature |
Definition at line 1995 of file wam_climo_data.f90.
References gettemp_mod::gsurf, and gettemp_mod::re.
Referenced by gts7().
subroutine spline | ( | dimension(n) | x, |
dimension(n) | y, | ||
n, | |||
yp1, | |||
ypn, | |||
dimension(n) | y2 | ||
) |
Calculate 2nd derivatives of cubic spline interp function.
Adapted from numerical recipes by press et al.
[in] | x | arrays of tabulated function in ascending order by x |
[in] | y | arrays of tabulated function in ascending order by x |
[in] | n | size of arrays x,y |
[in] | yp1 | specified derivatives at x(1) |
[in] | ypn | specified derivatives at x(n) values >= 1e30 signal signal second derivative zero. |
[out] | y2 | output array of second derivatives |
Definition at line 2605 of file wam_climo_data.f90.
subroutine splini | ( | dimension(n) | xa, |
dimension(n) | ya, | ||
dimension(n) | y2a, | ||
n, | |||
x, | |||
yi | |||
) |
Integrate cubic spline function.
[in] | xa | arrays of tabulated function in ascending order by x |
[in] | ya | arrays of tabulated function in ascending order by x |
[in] | y2a | array of second derivatives |
[in] | n | size of arrays xa,ya,y2a |
[in] | x | abscissa endpoint for integration |
[out] | yi | output value |
Definition at line 2684 of file wam_climo_data.f90.
subroutine splint | ( | dimension(n) | xa, |
dimension(n) | ya, | ||
dimension(n) | y2a, | ||
n, | |||
x, | |||
y | |||
) |
Calculate cubic spline interp value.
Adapted from numerical recipes by press et al.
[in] | xa | arrays of tabulated function in ascending order by x |
[in] | ya | arrays of tabulated function in ascending order by x |
[in] | y2a | array of second derivatives |
[in] | n | size of arrays xa,ya,y2a |
[in] | x | abscissa for interpolation |
[out] | y | output value |
Definition at line 2649 of file wam_climo_data.f90.
subroutine tselec | ( | dimension(*) | sv | ) |
Set switches.
Output in sw(25),isw,swc(25)
The sw for main terms, swc for cross terms
To turn on and off particular variations call tselec(sv),
where sv is a 25 element array containing 0. for off, 1.
for on, or 2. for main effects off but cross terms on
To get current values of sw: call tretrv(sw)
[in] | sv | array contains switches. |
Definition at line 2263 of file wam_climo_data.f90.
References gettemp_mod::isw, gettemp_mod::sw, and gettemp_mod::swc.
function vtst7 | ( | iyd, | |
sec, | |||
glat, | |||
glong, | |||
stl, | |||
f107a, | |||
f107, | |||
dimension(7) | ap, | ||
ic | |||
) |
Test variable condition.
Test if geophysical variables or switches changed and save
return 0 if unchanged and 1 if changed
[in] | iyd | year and day as yyddd |
[in] | sec | ut(sec) |
[in] | glat | geodetic latitude(deg) |
[in] | glong | geodetic longitude(deg) |
[in] | stl | local apparent solar time(hrs) |
[in] | f107a | 3 month average of f10.7 flux |
[in] | f107 | daily f10.7 flux for previous day |
[in] | ap | magnetic index(daily) or when sw(9)=-1. : array containing: ap(1) daily ap ap(2) 3 hr ap index for current time ap(3) 3 hr ap index for 3 hrs before current time ap(4) 3 hr ap index for 6 hrs before current time ap(5) 3 hr ap index for 9 hrs before current time ap(6) average of eight 3 hr ap indicies from 12 to 33 hrs pr to current time ap(7) average of eight 3 hr ap indicies from 36 to 59 hrs pr to current time |
[in] | ic | initial point |
Definition at line 1518 of file wam_climo_data.f90.
References gettemp_mod::sw, and gettemp_mod::swc.