Appearance
Source files: 1 | Classes: 1 | Methods: 67 | Enums: 0
GTOS.AtmosphericScience.Core
AtmosphericScienceCoreAtomics
static class
Source: AtmosphericScienceCoreAtomics.cs
Constants and Fields
CalculationFailure
const double
DRY_AIR_GAS_CONSTANT_J_per_kg_K
const double
EARTH_RADIUS_m
const double
EARTH_ROTATION_RATE_rad_per_s
const double
GRAVITY_m_per_s2
const double
LAPSE_RATE_K_per_m
const double
LATENT_HEAT_FUSION_J_per_kg
const double
LATENT_HEAT_VAPORIZATION_J_per_kg
const double
SOLAR_CONSTANT_W_per_m2
const double
SPECIFIC_HEAT_DRY_AIR_J_per_kg_K
const double
STANDARD_PRESSURE_Pa
const double
STANDARD_TEMPERATURE_K
const double
STEFAN_BOLTZMANN_CONSTANT
const double
WATER_VAPOR_GAS_CONSTANT_J_per_kg_K
const double
Methods
CalculateAbsoluteVorticity
double CalculateAbsoluteVorticity ( double relative_vorticity_per_s, double coriolis_parameter_per_s )
Calculate absolute vorticity
η = ζ + f
CalculateAlbedo_Surface
double CalculateAlbedo_Surface ( double reflected_radiation_W_per_m2, double incident_radiation_W_per_m2 )
Calculate surface albedo
α = I_reflected / I_incident
CalculateAltitude_Pressure
double CalculateAltitude_Pressure ( double pressure_Pa, double pressure_sea_level_Pa, double temperature_K )
Calculate altitude from pressure (inverse barometric formula)
z = (RT/g) × ln(p_0/p)
CalculateBlackbodyRadiation
double CalculateBlackbodyRadiation ( double temperature_K )
Calculate blackbody radiation (Stefan-Boltzmann law)
E = σT⁴
CalculateBulkRichardsonNumber
double CalculateBulkRichardsonNumber ( double wind_shear_per_s, double temperature_gradient_K_per_m, double reference_temperature_K )
Calculate bulk Richardson number (atmospheric stability parameter)
Ri = (g/T) × (ΔT/Δz) / (ΔU/Δz)²
CalculateCloudBaseHeight
double CalculateCloudBaseHeight ( double temperature_surface_K, double dewpoint_surface_K, double lapse_rate_K_per_m )
Calculate cloud base height
z_base ≈ 125 × (T - T_d) meters (simplified)
CalculateCoalescenceEfficiency
double CalculateCoalescenceEfficiency ( double droplet_radius_1_um, double droplet_radius_2_um )
Calculate coalescence efficiency (simplified)
E ≈ (r_1 - r_2)² / (r_1 + r_2)² for r_1 > r_2
CalculateCoriolisParameter
double CalculateCoriolisParameter ( double latitude_degrees )
Calculate Coriolis parameter
f = 2Ω×sin(φ) where Ω = Earth rotation rate
CalculateDensity_IdealGas
double CalculateDensity_IdealGas ( double pressure_Pa, double temperature_K, double gas_constant_J_per_kg_K )
Calculate density from ideal gas law
ρ = p/(RT)
CalculateDerivative_BackwardDifference
double CalculateDerivative_BackwardDifference ( double f_previous, double f_current, double dx )
Calculate backward difference derivative
df/dx ≈ (f(x) - f(x-dx)) / dx
CalculateDerivative_CentralDifference
double CalculateDerivative_CentralDifference ( double f_minus, double f_plus, double dx )
Calculate central difference derivative
df/dx ≈ (f(x+dx) - f(x-dx)) / (2dx)
CalculateDerivative_ForwardDifference
double CalculateDerivative_ForwardDifference ( double f_current, double f_next, double dx )
Calculate forward difference derivative
df/dx ≈ (f(x+dx) - f(x)) / dx
CalculateDewPoint
double CalculateDewPoint ( double temperature_K, double relative_humidity_fraction )
Calculate dew point from temperature and relative humidity
Uses Magnus formula
CalculateDivergence
double CalculateDivergence ( double du_dx_per_s, double dv_dy_per_s )
Calculate divergence
D = ∂u/∂x + ∂v/∂y
CalculateDryAdiabaticLapseRate
double CalculateDryAdiabaticLapseRate ( )
Calculate dry adiabatic lapse rate
Γ_d = g/c_p ≈ 9.8 K/km
CalculateEnhancedFujitaScale
int CalculateEnhancedFujitaScale ( double wind_speed_m_per_s )
Calculate Enhanced Fujita Scale rating
EF0: 29-38 m/s, EF1: 38-49, EF2: 49-60, EF3: 60-73, EF4: 73-89, EF5: 89+
CalculateEquivalentPotentialTemperature
double CalculateEquivalentPotentialTemperature ( double temperature_K, double pressure_Pa, double mixing_ratio )
Calculate equivalent potential temperature (includes latent heat)
θ_e = θ × exp((L_v × w) / (c_p × T))
CalculateGeostrophicWind_U
double CalculateGeostrophicWind_U ( double pressure_gradient_y_Pa_per_m, double coriolis_parameter_per_s, double air_density_kg_per_m3 )
Calculate geostrophic wind U-component (west-east)
u_g = -(1/fρ) × ∂p/∂y
CalculateGeostrophicWind_V
double CalculateGeostrophicWind_V ( double pressure_gradient_x_Pa_per_m, double coriolis_parameter_per_s, double air_density_kg_per_m3 )
Calculate geostrophic wind V-component (south-north)
v_g = (1/fρ) × ∂p/∂x
CalculateGreenhouseEffect
double CalculateGreenhouseEffect ( double surface_temp_K, double atmospheric_emissivity )
Calculate greenhouse effect warming
ΔT = T_surf - T_eff where T_eff = (S/4σ)^(1/4)
CalculateIceNucleation
double CalculateIceNucleation ( double temperature_K, double supersaturation_ice_fraction, double nuclei_concentration_per_m3 )
Calculate ice nucleation rate (simplified Fletcher)
N_ice = N_0 × exp(-β × (T_0 - T)) where T_0 = 273.15 K
CalculateInsolation_TopOfAtmosphere
double CalculateInsolation_TopOfAtmosphere ( double solar_constant_W_per_m2, double solar_zenith_angle_rad )
Calculate insolation at top of atmosphere
I = S_0 × cos(θ) where θ = solar zenith angle
CalculateKIndex
double CalculateKIndex ( double temperature_850mb_K, double temperature_500mb_K, double dewpoint_850mb_K, double dewpoint_700mb_K, double temperature_700mb_K )
Calculate K-Index (thunderstorm/heavy rain potential)
KI = (T_850 - T_500) + T_d850 - (T_700 - T_d700)
CalculateLiftedCondensationLevel
double CalculateLiftedCondensationLevel ( double temperature_K, double dewpoint_K, double pressure_Pa )
Calculate lifted condensation level (LCL) height
Approximation: z_LCL ≈ 125 × (T - T_d) meters
CalculateLiftedIndex
double CalculateLiftedIndex ( double temperature_500mb_K, double parcel_temperature_500mb_K )
Calculate Lifted Index (thunderstorm potential)
LI = T_500mb - T_parcel_500mb (negative = unstable)
CalculateLiquidWaterContent
double CalculateLiquidWaterContent ( double temperature_K, double pressure_Pa, double supersaturation_fraction )
Calculate liquid water content (adiabatic approximation)
LWC ≈ ρ_w × (w_s - w) where w_s = saturation mixing ratio
CalculateMaximumPotentialIntensity
double CalculateMaximumPotentialIntensity ( double SST_K, double outflow_temperature_K )
Calculate Maximum Potential Intensity (hurricane)
MPI ≈ C_k/C_d × (SST - T_out) / T_out (simplified)
CalculateMixingRatio
double CalculateMixingRatio ( double vapor_pressure_Pa, double total_pressure_Pa )
Calculate mixing ratio
w = ε × (e / (p - e)) where ε = Rd/Rv ≈ 0.622
CalculateMoninObukhovLength
double CalculateMoninObukhovLength ( double friction_velocity_m_per_s, double temperature_K, double sensible_heat_flux_W_per_m2 )
Calculate Monin-Obukhov length (stability parameter)
L = -(ρ × c_p × T × u*³) / (κ × g × H) where H = sensible heat flux
CalculateNAO_Index
double CalculateNAO_Index ( double pressure_iceland_mb, double pressure_azores_mb, double long_term_stddev_mb )
Calculate North Atlantic Oscillation Index
NAO = (P_Azores - P_Iceland) / σ
CalculateNetRadiativeFlux
double CalculateNetRadiativeFlux ( double shortwave_down_W_per_m2, double shortwave_up_W_per_m2, double longwave_down_W_per_m2, double longwave_up_W_per_m2 )
Calculate net radiative flux
Net = (SW_down - SW_up) + (LW_down - LW_up)
CalculateParcelTemperature_DryAdiabatic
double CalculateParcelTemperature_DryAdiabatic ( double initial_temp_K, double initial_pressure_Pa, double final_pressure_Pa )
Calculate parcel temperature after dry adiabatic ascent/descent
T_2 = T_1 × (p_2/p_1)^(R/c_p)
CalculatePasquillCategory
int CalculatePasquillCategory ( double solar_radiation_W_per_m2, double wind_speed_m_per_s, double cloud_cover_fraction )
Calculate Pasquill stability category (A-F for dispersion modeling)
A = very unstable, D = neutral, F = very stable
CalculatePotentialTemperature
double CalculatePotentialTemperature ( double temperature_K, double pressure_Pa, double reference_pressure_Pa )
Calculate potential temperature (temperature if brought to reference pressure adiabatically)
θ = T × (p_0/p)^(R/c_p)
CalculatePotentialVorticity
double CalculatePotentialVorticity ( double absolute_vorticity_per_s, double potential_temp_gradient_K_per_Pa )
Calculate potential vorticity (Ertel PV)
PV = -g × (ζ + f) × ∂θ/∂p
CalculatePrecipitationRate
double CalculatePrecipitationRate ( double liquid_water_content_kg_per_m3, double terminal_velocity_m_per_s, double collection_efficiency )
Calculate precipitation rate
P = LWC × v_t × E where E = collection efficiency
CalculatePressure_Altitude
double CalculatePressure_Altitude ( double pressure_sea_level_Pa, double altitude_m, double temperature_K )
Calculate pressure at altitude (barometric formula)
p(z) = p_0 × exp(-gz/(RT))
CalculatePressure_IdealGas
double CalculatePressure_IdealGas ( double density_kg_per_m3, double temperature_K, double gas_constant_J_per_kg_K )
Calculate pressure from ideal gas law
p = ρRT
CalculateRadiativeForcing_Aerosols
double CalculateRadiativeForcing_Aerosols ( double aerosol_optical_depth, double single_scattering_albedo )
Calculate radiative forcing from aerosols
ΔF = -β × τ × (1 - ω) where β = efficiency factor
CalculateRadiativeForcing_CO2
double CalculateRadiativeForcing_CO2 ( double CO2_concentration_ppm )
Calculate radiative forcing from CO2 (IPCC formula)
ΔF = 5.35 × ln(C/C_0) where C_0 = 280 ppm (pre-industrial)
CalculateRelativeHumidity
double CalculateRelativeHumidity ( double temperature_K, double dewpoint_K )
Calculate relative humidity from temperature and dew point
RH = (e/e_s) where e = e_s(T_d)
CalculateRelativeVorticity
double CalculateRelativeVorticity ( double du_dy_per_s, double dv_dx_per_s )
Calculate relative vorticity
ζ = ∂v/∂x - ∂u/∂y
CalculateRiming
double CalculateRiming ( double liquid_water_content_kg_per_m3, double ice_particle_radius_m, double terminal_velocity_m_per_s, double collection_efficiency )
Calculate riming (ice particle mass growth from liquid water accretion)
dm/dt = π × r² × v_t × LWC × E
CalculateRossbyWaveSpeed
double CalculateRossbyWaveSpeed ( double beta_parameter_per_m_per_s, double wavenumber_per_m, double mean_wind_m_per_s )
Calculate Rossby wave phase speed
c = U - β/(k² + l²) where β = df/dy
CalculateSaffirSimpsonCategory
int CalculateSaffirSimpsonCategory ( double max_sustained_wind_m_per_s )
Calculate Saffir-Simpson Category
Cat 1: 33-42 m/s, Cat 2: 43-49, Cat 3: 50-58, Cat 4: 59-69, Cat 5: 70+
CalculateSaturatedAdiabaticLapseRate
double CalculateSaturatedAdiabaticLapseRate ( double temperature_K, double pressure_Pa )
Calculate saturated adiabatic lapse rate (moist adiabatic)
Γ_s = Γ_d × (1 + (L_v × w_s)/(R_d × T)) / (1 + (L_v² × w_s × ε)/(c_p × R_d × T²))
CalculateSaturationVaporPressure_ClausiusClapeyron
double CalculateSaturationVaporPressure_ClausiusClapeyron ( double temperature_K )
Calculate saturation vapor pressure using Clausius-Clapeyron
August-Roche-Magnus approximation
CalculateScaleHeight
double CalculateScaleHeight ( double temperature_K, double gas_constant_J_per_kg_K, double gravity_m_per_s2 )
Calculate atmospheric scale height
H = RT/g
CalculateShowalterStabilityIndex
double CalculateShowalterStabilityIndex ( double temperature_500mb_K, double parcel_temperature_500mb_K )
Calculate Showalter Stability Index
SSI = T_500mb - T_parcel_500mb (negative = unstable)
CalculateSignificantTornadoParameter
double CalculateSignificantTornadoParameter ( double CAPE_J_per_kg, double bulk_shear_m_per_s, double storm_relative_helicity_m2_per_s2, double LCL_height_m )
Calculate Significant Tornado Parameter
STP = (CAPE/1500) × ((2000-LCL)/1000) × (SRH/150) × (Shear/10)
CalculateSnowflakeGrowth_VaporDeposition
double CalculateSnowflakeGrowth_VaporDeposition ( double supersaturation_ice_fraction, double temperature_K, double time_s )
Calculate snowflake growth rate (simplified)
dm/dt ≈ 4πrDS_ice where D = diffusivity, S_ice = supersaturation
CalculateSOI
double CalculateSOI ( double pressure_tahiti_mb, double pressure_darwin_mb, double long_term_stddev_mb )
Calculate Southern Oscillation Index (ENSO indicator)
SOI = 10 × (P_Tahiti - P_Darwin) / σ
CalculateSolarRadiation_Surface
double CalculateSolarRadiation_Surface ( double TOA_radiation_W_per_m2, double atmospheric_transmissivity, double cloud_cover_fraction, double solar_zenith_angle_rad )
Calculate solar radiation at surface
I_surf = I_TOA × τ^(1/cos(θ)) × (1 - cloud_cover × 0.75)
CalculateSpecificHumidity
double CalculateSpecificHumidity ( double mixing_ratio )
Calculate specific humidity from mixing ratio
q = w / (1 + w)
CalculateStormSurge
double CalculateStormSurge ( double wind_speed_m_per_s, double storm_radius_m, double water_depth_m )
Calculate storm surge height (simplified)
h ≈ 0.01 × V² × (R/d)^0.5 where V = wind, R = radius, d = depth
CalculateSupercellCompositeParameter
double CalculateSupercellCompositeParameter ( double CAPE_J_per_kg, double storm_relative_helicity_m2_per_s2, double bulk_shear_m_per_s )
Calculate Supercell Composite Parameter
SCP = (CAPE/1000) × (SRH/50) × (Shear/20)
CalculateTemperature_IdealGas
double CalculateTemperature_IdealGas ( double pressure_Pa, double density_kg_per_m3, double gas_constant_J_per_kg_K )
Calculate temperature from ideal gas law
T = p/(ρR)
CalculateTerminalVelocity_Raindrop
double CalculateTerminalVelocity_Raindrop ( double droplet_diameter_mm )
Calculate raindrop terminal velocity (Gunn-Kinzer)
v_t ≈ 9.65 - 10.3×exp(-0.6×D) m/s for D in mm
CalculateThermalWind
double CalculateThermalWind ( double temperature_gradient_K_per_m, double coriolis_parameter_per_s, double reference_temperature_K )
Calculate thermal wind (wind shear due to temperature gradient)
∂u/∂z = -(R/fT) × ∂T/∂y
CalculateVentilationCoefficient
double CalculateVentilationCoefficient ( double mixing_height_m, double wind_speed_m_per_s )
Calculate ventilation coefficient (pollutant dispersion capacity)
VC = h × U where h = mixing height, U = wind speed
CalculateVirtualTemperature
double CalculateVirtualTemperature ( double temperature_K, double mixing_ratio )
Calculate virtual temperature (temperature moist air would have if dry)
T_v = T × (1 + 0.61w)
CalculateWindShear_Vertical
double CalculateWindShear_Vertical ( double wind_top_m_per_s, double wind_bottom_m_per_s, double height_difference_m )
Calculate vertical wind shear
Shear = (V_top - V_bottom) / Δz
EstimateLightningFrequency
double EstimateLightningFrequency ( double CAPE_J_per_kg, double precipitation_rate_mm_per_hr, double cloud_top_height_m )
Estimate lightning frequency (flashes per hour)
f ≈ 0.1 × CAPE × P_rate × H_top (empirical)
ParameterizeBoundaryLayer
double ParameterizeBoundaryLayer ( double surface_heat_flux_W_per_m2, double wind_speed_m_per_s, double stability_parameter )
Parameterize boundary layer height (simplified)
h_BL ≈ 0.2 × u* × f^-1 where u* = friction velocity, f = Coriolis
ParameterizeConvection
double ParameterizeConvection ( double CAPE_J_per_kg, double CIN_J_per_kg, double precipitable_water_mm )
Parameterize convection (simplified mass flux)
M = α × CAPE × (1 - CIN/CAPE_threshold)
ParameterizeTurbulentFlux
double ParameterizeTurbulentFlux ( double wind_shear_per_s, double richardson_number )
Parameterize turbulent flux (simplified K-theory)
F = -K × ∂φ/∂z where K = turbulent diffusivity
TimeStep_Euler
double TimeStep_Euler ( double variable_current, double derivative, double dt )
Forward Euler time step
f(t+dt) = f(t) + dt × df/dt
Generated from GTOS Savants source -- 2026-03-22

