diff --git a/joss.05988/10.21105.joss.05988.crossref.xml b/joss.05988/10.21105.joss.05988.crossref.xml new file mode 100644 index 0000000000..5d023d876c --- /dev/null +++ b/joss.05988/10.21105.joss.05988.crossref.xml @@ -0,0 +1,150 @@ + + + + 20240103T153007-12b16ce125c906bd704f61cd40f5bbeecd5fa1cd + 20240103153007 + + JOSS Admin + admin@theoj.org + + The Open Journal + + + + + Journal of Open Source Software + JOSS + 2475-9066 + + 10.21105/joss + https://joss.theoj.org + + + + + 01 + 2024 + + + 9 + + 93 + + + + Gibbs Sea Water Oceanographic Toolbox of TEOS-10 +implemented in Rust + + + + Guilherme P. + Castelao + https://orcid.org/0000-0002-6765-0708 + + + Luiz + Irber + https://orcid.org/0000-0003-4371-9659 + + + + 01 + 03 + 2024 + + + 5988 + + + 10.21105/joss.05988 + + + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + + + + Software archive + 10.5281/zenodo.10422483 + + + GitHub review issue + https://github.com/openjournals/joss-reviews/issues/5988 + + + + 10.21105/joss.05988 + https://joss.theoj.org/papers/10.21105/joss.05988 + + + https://joss.theoj.org/papers/10.21105/joss.05988.pdf + + + + + + Getting started with TEOS-10 and the Gibbs +Seawater (GSW) oceanographic toolbox + McDougall + 2011 + McDougall, T. J., & Barker, P. M. +(2011). Getting started with TEOS-10 and the Gibbs Seawater (GSW) +oceanographic toolbox (WG 127, pp. 1–28). +SCOR/IAPSO. + + + TEOS-10/GSW-python: v3.4.1.post0 +(v3.4.1.post0) + Firing + 10.5281/zenodo.5214122 + 2021 + Firing, E., Filipe, Barna, A., & +Abernathey, R. (2021). TEOS-10/GSW-python: v3.4.1.post0 (v3.4.1.post0). +https://doi.org/10.5281/zenodo.5214122 + + + The international thermodynamic equation of +seawater – 2010: Calculation and use of thermodynamic +properties + IOC, SCOR, and IAPSO + 2010 + IOC, SCOR, and IAPSO. (2010). The +international thermodynamic equation of seawater – 2010: Calculation and +use of thermodynamic properties (June 2015, Intergovernmental +Oceanographic Commission, Manuals and Guides No. 56). +UNESCO. + + + TEOS-10/GibbsSeaWater.jl + Barth + 2020 + Barth, A., & al., et. (2020). +TEOS-10/GibbsSeaWater.jl. +https://github.com/TEOS-10/GibbsSeaWater.jl + + + TEOS-10/GSW-r + Kelley + 2022 + Kelley, D., & Richards, C. +(2022). TEOS-10/GSW-r. +https://github.com/TEOS-10/GSW-R + + + Delahoyde + 2022 + Delahoyde, F., Firing, E., & al., +et. (2022). https://github.com/TEOS-10/GSW-C + + + + + + diff --git a/joss.05988/10.21105.joss.05988.jats b/joss.05988/10.21105.joss.05988.jats new file mode 100644 index 0000000000..e95f574339 --- /dev/null +++ b/joss.05988/10.21105.joss.05988.jats @@ -0,0 +1,219 @@ + + +
+ + + + +Journal of Open Source Software +JOSS + +2475-9066 + +Open Journals + + + +5988 +10.21105/joss.05988 + +Gibbs Sea Water Oceanographic Toolbox of TEOS-10 +implemented in Rust + + + +https://orcid.org/0000-0002-6765-0708 + +Castelao +Guilherme P. + + + + +https://orcid.org/0000-0003-4371-9659 + +Irber +Luiz + + + + + +Scripps Institution of Oceanography + + + + +UC Davis + + + + +2 +10 +2022 + +9 +93 +5988 + +Authors of papers retain copyright and release the +work under a Creative Commons Attribution 4.0 International License (CC +BY 4.0) +2022 +The article authors + +Authors of papers retain copyright and release the work under +a Creative Commons Attribution 4.0 International License (CC BY +4.0) + + + +Rust +oceanography + + + + + + Summary +

The Gibbs Seawater Toolbox (GSW) is a key software for Oceanography + since it provides consistent thermodynamic properties of seawater, + conversions, and other utilities. GSW has been adopted since 2009 by + the Intergovernmental Oceanographic Commission as the official + description of seawater. Although it is available in several computer + languages, most implementations, such as Python + (Firing + et al., 2021), Julia + (Barth + & al., 2020), and R + (Kelley + & Richards, 2022), are wrappers around the C library + (Delahoyde + et al., 2022).

+

Here we introduce a version of GSW implemented in pure Rust + (GSW-rs), initially developed for inclusion in microcontroller + firmware to support autonomous decisions and onboard Machine Learning. + The same implementation also works on regular computers and can + seamlessly replace GSW-C on apps and libraries by maintaining + compatibility with the GSW-C Foreign Function Interface (FFI). Thanks + to zero-cost abstraction, GSW-rs does not impose performance and + readability trade-off, allowing it to be written for clear + understanding and closer to the original scientific publications. + Therefore, it is easier to verify and maintain. Another key aspect is + the support for testing. GSW-rs is subject to unit tests as well as + validation against the reference dataset from TEOS-10, allowing for + consistent development through continuous integration.

+

Modern oceanography strongly relies on autonomous platforms - such + as Argo floats, Spray underwater gliders, and Saildrones - to provide + sustained observations. Software robustness and performance are + critical requirements for these platforms to operate with low energy + budgets and up to several years in a single deployment, making Rust an + optimal language for this task. At the same time, the expanding cloud + infrastructure can give the illusion of infinite computing, but + convenient program languages such as Python must rely on + high-performance languages in the backend to optimize bottlenecks. A + Rust implementation of GSW allows sustainable and efficient progress, + from embedded to high-performance computing.

+
+ + Statement of Need +

While GSW is already implemented in several languages, there is no + uniformity among those. The Matlab implementation (GSW-m) + (McDougall + & Barker, 2011) is the most complete (see Appendix N from + IOC, + SCOR, and IAPSO, 2010) and up to date, but it is based on a + commercial language, restricting its use. Several other + implementations, including those for Julia, Python, and R, are + wrappers around the C implementation (GSW-C), which is hence the + actual foundation for the alternative Open Source family of solutions. + Although it is powerful, C lacks some features and conveniences of + modern languages. Here we present an alternative using Rust language, + resulting in comparable performance to GSW-C, while providing an + efficient framework that accelerates the development effort and + minimizes errors. For embedded systems, GSW-rs is a requirement for a + pure Rust firmware able to make sense of sensor measurements in real + time. In addition, for any application, GSW-rs provides the option to + conform more closely to GSW-m than does the present GSW-C + implementation. Function coverage, however, does not yet match either + GSW-C or GSW-m.

+
+ + + + + + + McDougallTrevor J + BarkerPaul M + + Getting started with TEOS-10 and the Gibbs Seawater (GSW) oceanographic toolbox + SCOR/IAPSO + 2011 + 1 + 28 + + + + + + FiringEric + Filipe + BarnaAndrew + AbernatheyRyan + + TEOS-10/GSW-python: v3.4.1.post0 (v3.4.1.post0) + 2021 + 10.5281/zenodo.5214122 + + + + + + IOC, SCOR, and IAPSO + + The international thermodynamic equation of seawater – 2010: Calculation and use of thermodynamic properties + UNESCO + 2010 + June 2015 + + + + + + BarthAlexander + al. + + TEOS-10/GibbsSeaWater.jl + 2020 + https://github.com/TEOS-10/GibbsSeaWater.jl + + + + + + KelleyDan + RichardsClark + + TEOS-10/GSW-r + 2022 + https://github.com/TEOS-10/GSW-R + + + + + + DelahoydeFrank + FiringEric + al. + + + 2022 + https://github.com/TEOS-10/GSW-C + + + + +
diff --git a/joss.05988/10.21105.joss.05988.pdf b/joss.05988/10.21105.joss.05988.pdf new file mode 100644 index 0000000000..6bf93620f7 Binary files /dev/null and b/joss.05988/10.21105.joss.05988.pdf differ