[]
Home response.text()) .then(data => new DOMParser().parseFromString(data, “text/html”)) .then(dom => dom.querySelector(“div.uos-sitemap”)) .then(sitemap => getBreadcrumbsFromSitemap(sitemap)) .catch(() => getBreadcrumbsFromPath()) .then(breadcrumbs => buildBreadcrumbsHtml(breadcrumbs)) function findElementToStartFrom(sitemap) { let element = sitemap.querySelector(“a[href='” + windowPath + “?’]”) || sitemap.querySelector(“a[href='” + windowPath + “‘]”) if (element) { return element } let pathParts = windowPath.split(“/”).filter(part => part !== ”) for(let i = pathParts.length; i >=1 ; i–) { let path = (‘/’ + pathParts.slice(0, i).join(‘/’)) let element = sitemap.querySelector(“a[href='” + path + “‘]”) || sitemap.querySelector(“a[href='” + path + “/index.page’]”) || sitemap.querySelector(“a[href='” + path + “?’]”) || sitemap.querySelector(“a[href='” + path + “/index.page?’]”) if (element) { return element } } throw new Error(“Can’t find starting element in sitemap”) } function getBreadcrumbsFromSitemap(sitemap) { let breadcrumbs = [] let element = findElementToStartFrom(sitemap); while (element) { breadcrumbs.push(makeBreadcrumb((new URL(element.href)).pathname, element.innerText.trim())) element = getParentLink(element) } let homeTitle = sitemap.querySelector(“h2”).innerText.trim() let homeUrl = sitemap.querySelector(“a”).href.trim() breadcrumbs.push(makeBreadcrumb((new URL(homeUrl).pathname), homeTitle)) return breadcrumbs.reverse() } function getBreadcrumbsFromPath() { console.log(“Building breadcrumbs from path”) let breadcrumbs = [] let pathParts = windowPath.split(“/”).filter(part => part !== ”) for(let i = 1; i char.toUpperCase()) breadcrumbs.push(makeBreadcrumb(url, title)) } return breadcrumbs } function makeBreadcrumb(url, name) { return {href: url.trim(), name: name.trim()} } function buildBreadcrumbsHtml(breadcrumbs) { let rootElement = document.querySelector(“#BreadcrumbListNavElem”) breadcrumbs.forEach(crumb => { if (crumb.href === windowPath) { return } let rootDiv = document.createElement(“div”) rootDiv.setAttribute(“typeof”, “ListItem”) rootDiv.setAttribute(“property”, “itemListElement”) rootDiv.setAttribute(“class”, “uos-breadcrumb-child”) let link = document.createElement(“a”) link.href = crumb.href link.setAttribute(“title”, crumb.name) link.setAttribute(“typeOf”, “WebPage”) link.setAttribute(“property”, “item”) let titleSpan = document.createElement(“span”) titleSpan.innerText = crumb.name rootDiv.appendChild(link) link.appendChild(titleSpan) rootElement.innerHTML += “>” rootElement.appendChild(rootDiv) }) } function getParentLink(element) { while (element.tagName !== “UL”) { element = element.parentElement if (!element) { return null } } return Array.from(element.parentElement.children).find(item => item.tagName === “A”) } ]]>
Published: 2025-11-25 09:23:00
Cores of lava breccia, cemented with white calcium carbonate minerals, recovered from IODP Site U1557. Credit: IODP JRSO
Sixty-million-year-old rock samples from deep under the ocean have revealed how huge amounts of carbon dioxide are stored for millennia in piles of lava rubble that accumulate on the seafloor.
Scientists have analysed lavas drilled from deep under the South Atlantic Ocean to understand how much CO 2 is captured within the rocks due to reactions between the rocks and ocean.
The research, led by the University of Southampton, found that piles of lava rubble, formed due to erosion of seafloor mountains, form geological sponges for CO 2 .
It’s the first time the role of lava rubble as carbon sponges has been fully appreciated, and the research reveals secrets about Earth’s long-term carbon cycle.
Lead author of the research Dr Rosalind Coggon, Royal Society Research Fellow at the University of Southampton, said: “We’ve known for a long time that erosion on the slopes of underwater mountains produces large volumes of volcanic rubble, known as breccia – much like scree slopes on continental mountains.
Dr Rosalind Coggon examining cores of upper ocean crust lavas cored during IODP Expedition 390. Credit: Alyssa Stephens, IODP JRSO
“However, our drilling efforts recovered the first cores of this material after it has spent tens of millions of years being rafted across the seafloor as Earth’s tectonic plates spread apart.
“Excitingly, the cores revealed that these porous, permeable deposits have the capacity to store large volumes of seawater CO 2 as they are gradually cemented by calcium carbonate minerals that form from seawater as it flows through them.”
The movement of carbon between Earth’s interior, oceans, and atmosphere over millions of years controls how much CO 2 is in the air, which affects Earth’s climate.
To understand past climate changes, scientists study how much carbon moves in and out of different parts of the Earth system.
Dr Coggon explained: “The oceans are paved with volcanic rocks that form at mid-ocean ridges, as the tectonic plates move apart creating new ocean crust. This volcanic activity releases CO 2 from deep inside the Earth into the ocean and atmosphere.
“However, ocean basins are not just a container for seawater. Seawater flows through the cracks in the cooling lavas for millions of years and reacts with the rocks, transferring elements between the ocean and rock. This process removes CO 2 from the water and stores it in minerals like calcium carbonate in the rock.”
Research vessel Joides Resolution. Credit: Dr Rosalind Coggon
The study determined how much CO 2 is stored in the ocean crust, due to this process.
“While drilling deep into the seafloor of the South Atlantic, we discovered lava rubble that contained between two and 40 times more CO 2 than previously sampled lavas,” said Dr Coggon.
“This study revealed the importance of such breccia, which forms due to the erosion of seafloor mountains along mid-ocean ridges, as a sponge for carbon in the long-term carbon cycle.”
The research was part of Expedition 390/393 of the International Ocean Discovery Program , and is published in Nature Geoscience .