Skip to content

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

SILVIA is a registered Trademark of Cognitive Code Corp.