{-# OPTIONS_GHC -Wall #-} module Atmosphere.Constants ( _FT2METERS , _KELVIN2RANKINE , _PSF2NSM , _SCF2KCM , _TZERO , _PZERO , _RHOZERO , _AZERO , _BETAVISC , _SUTH , _REARTH , _GMR , htpgTable ) where import Data.List( zip4 ) _FT2METERS :: (Ord a, Floating a) => a _KELVIN2RANKINE :: (Ord a, Floating a) => a _PSF2NSM :: (Ord a, Floating a) => a _SCF2KCM :: (Ord a, Floating a) => a _TZERO :: (Ord a, Floating a) => a _PZERO :: (Ord a, Floating a) => a _RHOZERO :: (Ord a, Floating a) => a _AZERO :: (Ord a, Floating a) => a _BETAVISC :: (Ord a, Floating a) => a _SUTH :: (Ord a, Floating a) => a _REARTH :: (Ord a, Floating a) => a _GMR :: (Ord a, Floating a) => a -- | mult. ft. to get meters (exact) _FT2METERS = 0.3048 -- | mult deg K to get deg R _KELVIN2RANKINE = 1.8 -- | mult lb/sq.ft to get sq.m _PSF2NSM = 47.880258 -- | mult slugs/cu.ft to get kg/cu.m _SCF2KCM = 515.379 -- | sea-level temperature, kelvins _TZERO = 288.15 -- | sea-level pressure, N/sq.m _PZERO = 101325.0 -- | sea-level density, kg/cu.m _RHOZERO = 1.225 -- | speed of sound at S.L. m/sec _AZERO = 340.294 -- | viscosity constant _BETAVISC = 1.458E-6 -- | Sutherland's constant, kelvins _SUTH = 110.4 -- | radius of the Earth, km _REARTH = 6369.0 -- | gas constant _GMR = 34.163195 -- | table of (height, temperature, pressure, temperature gradient) over altitude htpgTable :: (Floating a, Ord a) => [(a,a,a,a)] htpgTable = zip4 htab ttab ptab gtab where htab = [ 0.0, 11.0, 20.0, 32.0, 47.0 , 51.0, 71.0, 84.852 ] ttab = [ _TZERO, 216.65, 216.65, 228.65, 270.65 , 270.65, 214.65, 186.946 ] ptab = [ 1.0, 2.2336110E-1, 5.4032950E-2, 8.5666784E-3, 1.0945601E-3 , 6.6063531E-4, 3.9046834E-5, 3.68501E-6 ] gtab = [ -6.5, 0.0, 1.0, 2.8, 0.0, -2.8, -2.0, 0.0 ]