pub struct AncientOcean {
pub name: &'static str,
pub estimated_volume_km3: f64,
pub estimated_depth_m: f64,
pub estimated_area_km2: f64,
pub epoch: &'static str,
}
impl AncientOcean {
pub fn oceanus_borealis() -> Self {
Self {
name: "Oceanus Borealis",
estimated_volume_km3: 1.56e7,
estimated_depth_m: 550.0,
estimated_area_km2: 2.84e7,
epoch: "Late Hesperian (~3.2 Gyr ago)",
}
}
pub fn arabia_ocean() -> Self {
Self {
name: "Arabia Ocean",
estimated_volume_km3: 1.2e7,
estimated_depth_m: 250.0,
estimated_area_km2: 4.8e7,
epoch: "Early Noachian (~4.0 Gyr ago)",
}
}
pub fn mass_kg(&self) -> f64 {
self.estimated_volume_km3 * 1e9 * 1000.0
}
pub fn equivalent_global_layer_m(&self) -> f64 {
self.estimated_volume_km3 * 1e9 / crate::MARS_SURFACE_AREA
}
}
pub fn subsurface_water_estimate_km3() -> f64 {
5e6
}
pub fn total_water_inventory_m_gel() -> f64 {
35.0
}
pub struct RecurringSlopeLineae {
pub latitude_deg: f64,
pub length_m: f64,
pub active_season: &'static str,
}
impl RecurringSlopeLineae {
pub fn typical() -> Self {
Self {
latitude_deg: -30.0,
length_m: 300.0,
active_season: "Southern spring/summer",
}
}
pub fn count_observed() -> u32 {
1000
}
}