Calamitaceae

Calamitaceae is an extinct family of plants related to the modern horsetails.[1] Some members of this family attained tree-like stature during the Carboniferous Period (around 360 to 300 million years ago) and in Permian Period, reaching heights of up to 20 meters. The family takes its name from its principal genus Calamites.

Calamitaceae
Temporal range: Carboniferous
Annularia stellata
Scientific classification
Kingdom: Plantae
Clade: Tracheophytes
Class: Polypodiopsida
Subclass: Equisetidae
Order: Equisetales
Family: Calamitaceae
Unger, 1840
Genera

See text

Because some proposed species are based on partial fossil records, it is not clear if these are merely different parts of the same type.

Proposed genera and species of Calamitaceae

Asterophyllites equisetiformis
  • Calamites.
    • C. carinatus.
    • C. suckowi.
    • C. undulatus.
  • Calamocarpon.
  • Calamostachys.
    • C. binneyana.
  • Cingularia.
  • Mazostachys.
  • Paleostachya.
gollark: Anyway, good news systemd-dislikers, I made an EXCELLENT and AMAZING replacement using the RUST programming language.
gollark: I have DashMap in here because of some vague dream of concurrently doing... stuff.
gollark: ```rustuse std::process::Command;use anyhow::Result;use std::path::Path;use std::fs;#[derive(serde::Serialize, serde::Deserialize, Debug)]struct RawServiceSpec { command: String, args: Vec<String>, name: Option<String>}#[derive(Debug)]struct ServiceSpec { command: String, args: Vec<String>, name: String}fn load_spec(path: &Path) -> Result<ServiceSpec> { let file = fs::read_to_string(path)?; let raw: RawServiceSpec = toml::from_str(&file)?; Ok(ServiceSpec { command: raw.command, args: raw.args, name: path.file_stem().unwrap().to_string_lossy().to_string() })}fn run_service(serv: ServiceSpec) -> Result<()> { println!("thread {:?}", serv); loop { println!("Starting"); let mut child = Command::new("/bin/env") .arg("python3") .arg("test.py") .spawn()?; child.wait()?; } Ok(())}fn main() -> Result<()> { let services = dashmap::DashMap::new(); for entry in fs::read_dir("./services")? { let s = load_spec(&entry?.path())?; services.insert(s.name.clone(), s); } let mut handles = Vec::new(); for e in services { handles.push(std::thread::spawn(|| run_service(e.1))); } for handle in handles { handle.join().unwrap(); } Ok(())}```
gollark: Well, I guess that's systemd replaced.
gollark: I can define a service in a TOML file and it's automatically restarted on exit and all.

References

  1. Elgorriaga, A.; Escapa, I.H.; Rothwell, G.W.; Tomescu, A.M.F.; Cúneo, N.R. (2018). "Origin of Equisetum: Evolution of horsetails (Equisetales) within the major euphyllophyte clade Sphenopsida". American Journal of Botany. 105 (8): 1286–1303. doi:10.1002/ajb2.1125. PMID 30025163.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.