<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-15-15-2022</article-id><title-group><article-title>PyCO2SYS v1.8: marine carbonate system calculations in Python</article-title><alt-title>PyCO2SYS v1.8: marine carbonate system calculations in Python</alt-title>
      </title-group><?xmltex \runningtitle{PyCO2SYS v1.8: marine carbonate system calculations in Python}?><?xmltex \runningauthor{M. P. Humphreys et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Humphreys</surname><given-names>Matthew P.</given-names></name>
          <email>matthew.humphreys@nioz.nl</email>
        <ext-link>https://orcid.org/0000-0002-9371-7128</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Lewis</surname><given-names>Ernie R.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-2023-7406</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3 aff4">
          <name><surname>Sharp</surname><given-names>Jonathan D.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-1344-0107</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff5">
          <name><surname>Pierrot</surname><given-names>Denis</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-0374-3825</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Department of Ocean Systems (OCS), NIOZ Royal Netherlands Institute for Sea Research, Texel, the Netherlands</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Environmental and Climate Sciences Department, Brookhaven National Laboratory, Upton, NY, USA</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Cooperative Institute for Climate, Ocean, and Ecosystem Studies, University of Washington, Seattle, WA, USA</institution>
        </aff>
        <aff id="aff4"><label>4</label><institution>Pacific Marine Environmental Laboratory, National Oceanic and Atmospheric Administration, Seattle, WA, USA</institution>
        </aff>
        <aff id="aff5"><label>5</label><institution>Atlantic Oceanographic and Meteorological Laboratory, National Oceanic and Atmospheric Administration,<?xmltex \hack{\break}?> Miami, FL, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Matthew P. Humphreys (matthew.humphreys@nioz.nl)</corresp></author-notes><pub-date><day>4</day><month>January</month><year>2022</year></pub-date>
      
      <volume>15</volume>
      <issue>1</issue>
      <fpage>15</fpage><lpage>43</lpage>
      <history>
        <date date-type="received"><day>17</day><month>May</month><year>2021</year></date>
           <date date-type="rev-request"><day>8</day><month>June</month><year>2021</year></date>
           <date date-type="rev-recd"><day>27</day><month>October</month><year>2021</year></date>
           <date date-type="accepted"><day>25</day><month>November</month><year>2021</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2022 Matthew P. Humphreys et al.</copyright-statement>
        <copyright-year>2022</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022.html">This article is available from https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d1e138">Oceanic dissolved inorganic carbon (<inline-formula><mml:math id="M1" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) is the largest pool of carbon that substantially interacts with the atmosphere on human timescales.  Oceanic <inline-formula><mml:math id="M2" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is increasing through uptake of anthropogenic carbon dioxide (<inline-formula><mml:math id="M3" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>), and seawater pH is decreasing as a consequence.  Both the exchange of <inline-formula><mml:math id="M4" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> between the ocean and atmosphere and the pH response are governed by a set of parameters that interact through chemical equilibria, collectively known as the marine carbonate system.  To investigate these processes, at least two of the marine carbonate system's parameters are typically measured – most commonly, two from <inline-formula><mml:math id="M5" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, total alkalinity (<inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), pH, and seawater <inline-formula><mml:math id="M7" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> fugacity (<inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>; or its partial pressure, <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, or its dry-air mole fraction, <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) – from which the remaining parameters can be calculated and the equilibrium state of seawater solved.  Several software tools exist to carry out these calculations, but no fully functional and rigorously validated tool written in Python, a popular scientific programming language, was previously available.  Here, we present PyCO2SYS, a Python package intended to fill this capability gap.  We describe the elements of PyCO2SYS that have been inherited from the existing CO2SYS family of software and explain subsequent adjustments and improvements.  For example, PyCO2SYS uses automatic differentiation to solve the marine carbonate system and calculate chemical buffer factors, ensuring that the effect of every modelled solute and reaction is accurately included in all its results.  We validate PyCO2SYS with internal consistency tests and comparisons against other software, showing that PyCO2SYS produces results that are either virtually identical or different for known reasons, with the differences negligible for all practical purposes.  We discuss insights that guided the development of PyCO2SYS: for example, the fact that the marine carbonate system cannot be unambiguously solved from certain pairs of parameters.  Finally, we consider potential future developments to PyCO2SYS and discuss the outlook for this and other software for solving the marine carbonate system.  The code for PyCO2SYS is distributed via GitHub (<uri>https://github.com/mvdh7/PyCO2SYS</uri>, last access: 23 December 2021) under the GNU General Public License v3, archived on Zenodo <xref ref-type="bibr" rid="bib1.bibx36" id="paren.1"/>, and documented online (<uri>https://pyco2sys.readthedocs.io/en/latest/</uri>, last access: 23 December 2021).</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

      <?xmltex \hack{\allowdisplaybreaks}?>
<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e288">The ocean absorbs about a quarter of the anthropogenic carbon dioxide (<inline-formula><mml:math id="M11" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) currently emitted each year <xref ref-type="bibr" rid="bib1.bibx27" id="paren.2"/>.  This absorption is a double-edged sword.  Removing <inline-formula><mml:math id="M12" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> from the atmosphere reduces the impact of these emissions on Earth's climate.  However, <inline-formula><mml:math id="M13" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> uptake causes seawater pH and calcium carbonate mineral saturation states (<inline-formula><mml:math id="M14" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula>) to decline through a process termed ocean acidification, which has adverse effects on some marine species and ecosystems <xref ref-type="bibr" rid="bib1.bibx22" id="paren.3"/>.</p>
      <p id="d1e338">Exchange of <inline-formula><mml:math id="M15" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> between the atmosphere and ocean, and the biogeochemical consequences of this process, are governed by a series of equilibrium chemical reactions and parameters collectively known as the <italic>marine carbonate system</italic> <xref ref-type="bibr" rid="bib1.bibx54" id="paren.4"/>.  The core parameters are the substance contents of aqueous <inline-formula><mml:math id="M16" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, the bicarbonate and carbonate ions formed by its hydration and dissociation (<inline-formula><mml:math id="M17" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M18" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>),<?pagebreak page16?> and the sum of these three components (dissolved inorganic carbon, <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>); total alkalinity <xref ref-type="bibr" rid="bib1.bibx16" id="paren.5"><named-content content-type="pre"><inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>;</named-content></xref>; the fugacity, partial pressure, or dry-air mole fraction of <inline-formula><mml:math id="M21" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in seawater <xref ref-type="bibr" rid="bib1.bibx96" id="paren.6"><named-content content-type="pre"><inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>;</named-content></xref>; and pH <xref ref-type="bibr" rid="bib1.bibx21" id="paren.7"/>.  If any valid pair of these parameters is known, plus auxiliary data including temperature, pressure, salinity, and nutrient contents, then all the other parameters can be calculated <xref ref-type="bibr" rid="bib1.bibx69 bib1.bibx101" id="paren.8"/>.</p>
      <p id="d1e493">Many research questions require solving the marine carbonate system from some measured or modelled pair of its parameters.  Several software tools have been developed for this purpose such that most scientific software environments and programming languages have a widely accepted marine carbonate system solver <xref ref-type="bibr" rid="bib1.bibx66" id="paren.9"/>.  However, there is not yet an established and fully functional tool for the popular scientific programming language Python, although partial solutions exist <xref ref-type="bibr" rid="bib1.bibx6" id="paren.10"><named-content content-type="pre">e.g.</named-content></xref>.  Here, we present PyCO2SYS, a Python package designed to fill this capability gap and provide a robust platform for future developments in calculating marine chemical speciation.  Being free, open-source, and working across all major operating systems, a Python package is a highly accessible, desirable, and useful tool.</p>
      <p id="d1e504">As its name suggests, PyCO2SYS originates from the existing CO2SYS family of software.  The original CO2SYS program for MS-DOS <xref ref-type="bibr" rid="bib1.bibx46" id="paren.11"/> has been further developed and “translated”, with implementations now available for Microsoft Excel <xref ref-type="bibr" rid="bib1.bibx72 bib1.bibx68 bib1.bibx73" id="paren.12"/> and MATLAB/GNU Octave <xref ref-type="bibr" rid="bib1.bibx92 bib1.bibx99 bib1.bibx68 bib1.bibx82 bib1.bibx84" id="paren.13"/>.  PyCO2SYS was created as an as-close-as-possible translation of CO2SYS-MATLAB v2.0.5 <xref ref-type="bibr" rid="bib1.bibx68" id="paren.14"/>, but we have since made several additional developments to it.  Many of these developments involved reshaping the internal code into a more Pythonic style.  These changes did not affect the calculations and so are not discussed further.  Other developments added new functionality or made minor differences to the calculated results; these are documented and justified here.</p>
      <p id="d1e520">As the original CO2SYS software is so well-established in the research field, we provide a relatively brief summary of the components of PyCO2SYS that are identical to CO2SYS-MATLAB in Sect. <xref ref-type="sec" rid="Ch1.S2"/>, before describing the areas where PyCO2SYS differs in more detail in Sect. <xref ref-type="sec" rid="Ch1.S3"/>.  Equations that were inherited from CO2SYS-MATLAB or taken from the literature are generally reported in appendices rather than being reproduced in these sections.  We go on to validate PyCO2SYS in Sect. <xref ref-type="sec" rid="Ch1.S4"/> by examining its internal consistency and by comparing its calculations with another CO2SYS implementation.  In Sect. <xref ref-type="sec" rid="Ch1.S5"/>, we discuss some nuances of solving the marine carbonate system that were explored during development and compare its computational speed with CO2SYS-MATLAB, before concluding with our perspectives on the outlook for PyCO2SYS and other related software.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Methods inherited from CO2SYS</title>
      <p id="d1e539">The components of PyCO2SYS that have been inherited directly from CO2SYS-MATLAB v2.0.5 <xref ref-type="bibr" rid="bib1.bibx68" id="paren.15"/>, with only the minimal changes needed to translate to Python plus aesthetic code restructuring, are described in this section.</p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Units and pH scales</title>
      <p id="d1e552">The abundances of all solutes and total alkalinity provided as arguments to PyCO2SYS or returned from it as results are in units of micromoles per kilogram (<inline-formula><mml:math id="M25" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M26" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>), with kilograms (kg) being of the total solution.  This means that they are neither concentrations nor molarity values, which are both per unit volume rather than mass, nor are they molality values, which are per kilogram of <inline-formula><mml:math id="M27" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow></mml:math></inline-formula>.  Although sometimes referred to as <italic>molinity</italic>, the correct term is <italic>substance content</italic> <xref ref-type="bibr" rid="bib1.bibx39" id="paren.16"/>, which we abbreviate to <italic>content</italic>.</p>
      <p id="d1e601">Temperature is in degrees Celsius (<inline-formula><mml:math id="M28" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C) and salinity is practical salinity, which is dimensionless <xref ref-type="bibr" rid="bib1.bibx58" id="paren.17"/>.</p>
      <p id="d1e616">Pressure is in decibars (dbar) and represents the hydrostatic pressure exerted by the overlying water column, consistent with typical oceanographic conductivity–temperature–depth (CTD) measurement reporting.  Atmospheric pressure is not included, so pressure is effectively zero in the laboratory and at the sea surface.</p>
      <p id="d1e619">The pH can be provided on the free, total, seawater, and/or NBS (now NIST) scale, with <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> as a substance content, as noted above, and thus in moles per kilogram of solution (mol kg solution<inline-formula><mml:math id="M30" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) <xref ref-type="bibr" rid="bib1.bibx101 bib1.bibx93" id="paren.18"><named-content content-type="pre">Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>;</named-content></xref>.  In the results, pH is returned on all four of these scales.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Parameterisations and constants</title>
      <p id="d1e665">A notable feature of all CO2SYS software is the variety of different parameterisation options to calculate the various equilibrium constants and some components' total contents from salinity, temperature, and pressure.  Which parameterisations the user selects can appreciably alter the results, so these choices should always be explicitly reported.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1" specific-use="star"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e671">Parameterisations of the dissociation constants of carbonic acid available in PyCO2SYS and corresponding implicit settings (Table <xref ref-type="table" rid="Ch1.T2"/>).</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Option no. in</oasis:entry>
         <oasis:entry colname="col2">Carbonic acid constants</oasis:entry>
         <oasis:entry colname="col3">“Other settings” case</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">PyCO2SYS</oasis:entry>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"/>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx79" id="text.24"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx29" id="text.25"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">3</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx15" id="text.26"/>
                  <inline-formula><mml:math id="M36" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">4</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx15" id="text.27"/>
                  <inline-formula><mml:math id="M37" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">5</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx15" id="text.28"/>
                  <inline-formula><mml:math id="M38" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">6</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx50" id="text.29"/>
                  </oasis:entry>
         <oasis:entry colname="col3">GEOSECS-Takahashi</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx50" id="text.30"/>
                  </oasis:entry>
         <oasis:entry colname="col3">GEOSECS-Peng</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">8</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx51" id="text.31"/>
                  <inline-formula><mml:math id="M39" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">d</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Freshwater</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">9</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx8" id="text.32"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">10</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx48" id="text.33"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">11</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx59" id="text.34"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">12</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx56" id="text.35"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">13</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx57" id="text.36"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">14</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx55" id="text.37"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">15</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx95" id="text.38"/>
                  <inline-formula><mml:math id="M40" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">e</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">16</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx86" id="text.39"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">17</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx80" id="text.40"/>
                  </oasis:entry>
         <oasis:entry colname="col3">Standard</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><table-wrap-foot><p id="d1e676"><inline-formula><mml:math id="M31" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula> Refit of <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx32" id="text.19"/> data. <inline-formula><mml:math id="M32" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula> Refit of <xref ref-type="bibr" rid="bib1.bibx50" id="text.20"/> data. <inline-formula><mml:math id="M33" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula> Refit of <?xmltex \notforhtml{\newline}?> <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx32" id="text.21"/> and <xref ref-type="bibr" rid="bib1.bibx50" id="text.22"/> data. <inline-formula><mml:math id="M34" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">d</mml:mi></mml:msup></mml:math></inline-formula> Constants for zero-salinity<?xmltex \notforhtml{\newline}?> freshwater. <inline-formula><mml:math id="M35" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">e</mml:mi></mml:msup></mml:math></inline-formula> Including the corrections of <xref ref-type="bibr" rid="bib1.bibx94" id="text.23"/>.</p></table-wrap-foot></table-wrap>

<?xmltex \floatpos{p}?><table-wrap id="Ch1.T2" specific-use="star"><?xmltex \currentcnt{2}?><label>Table 2</label><caption><p id="d1e1082">Parameterisations that vary depending on the case of the selected carbonic acid constants (Table <xref ref-type="table" rid="Ch1.T1"/>).  <inline-formula><mml:math id="M41" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula>: pressure.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Setting</oasis:entry>
         <oasis:entry colname="col2">Standard</oasis:entry>
         <oasis:entry colname="col3">GEOSECS</oasis:entry>
         <oasis:entry colname="col4">Freshwater</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Salinity</oasis:entry>
         <oasis:entry colname="col2">User-defined</oasis:entry>
         <oasis:entry colname="col3">User-defined</oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total ammonia</oasis:entry>
         <oasis:entry colname="col2">User-defined</oasis:entry>
         <oasis:entry colname="col3">User-defined</oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total borate</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx91" id="text.41"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx13" id="text.42"/>
                  </oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">or<inline-formula><mml:math id="M52" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula><xref ref-type="bibr" rid="bib1.bibx45" id="text.43"/></oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total calcium</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx78" id="text.44"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx13" id="text.45"/>
                  </oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total fluoride</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx77" id="text.46"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx77" id="text.47"/>
                  </oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total silicate</oasis:entry>
         <oasis:entry colname="col2">User-defined</oasis:entry>
         <oasis:entry colname="col3">User-defined</oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total sulfate</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx60" id="text.48"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx60" id="text.49"/>
                  </oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total phosphate</oasis:entry>
         <oasis:entry colname="col2">User-defined</oasis:entry>
         <oasis:entry colname="col3">User-defined<inline-formula><mml:math id="M53" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total sulfide</oasis:entry>
         <oasis:entry colname="col2">User-defined</oasis:entry>
         <oasis:entry colname="col3">User-defined</oasis:entry>
         <oasis:entry colname="col4">Zero</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M56" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effects</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx53" id="text.50"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx87" id="text.51"/>
                  </oasis:entry>
         <oasis:entry colname="col4">
                    <xref ref-type="bibr" rid="bib1.bibx52" id="text.52"/>
                  </oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> value</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx53" id="text.53"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx51" id="text.54"/>
                  </oasis:entry>
         <oasis:entry colname="col4">
                    <xref ref-type="bibr" rid="bib1.bibx51" id="text.55"/>
                  </oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M59" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effect</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx53" id="text.56"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx53" id="text.57"/>
                  </oasis:entry>
         <oasis:entry colname="col4">
                    <xref ref-type="bibr" rid="bib1.bibx52" id="text.58"/>
                  </oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> value</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx18" id="text.59"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx47" id="text.60"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M62" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effect</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx51" id="text.61"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx23" id="text.62"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> value<inline-formula><mml:math id="M64" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx100" id="text.63"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx41" id="text.64"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M66" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effect<inline-formula><mml:math id="M67" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx52" id="text.65"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx52" id="text.66"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> value</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx100" id="text.67"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx85" id="text.68"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M70" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effect</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx53" id="text.69"/>
                  <inline-formula><mml:math id="M71" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">d</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx53" id="text.70"/>
                  <inline-formula><mml:math id="M72" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">d</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(calcite) value</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx52" id="text.71"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx37" id="text.72"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(calcite) <inline-formula><mml:math id="M75" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effect</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx37" id="text.73"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx87" id="text.74"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(aragonite) value</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx52" id="text.75"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx38" id="text.76"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(aragonite) <inline-formula><mml:math id="M78" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> effect</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx37" id="text.77"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx87" id="text.78"/>
                  </oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Fugacity factor</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx96" id="text.79"/>
                  </oasis:entry>
         <oasis:entry colname="col3">1<inline-formula><mml:math id="M79" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">e</mml:mi></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">
                    <xref ref-type="bibr" rid="bib1.bibx96" id="text.80"/>
                  </oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><table-wrap-foot><p id="d1e1094"><inline-formula><mml:math id="M42" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula> Depending on user input. <inline-formula><mml:math id="M43" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula> In GEOSECS-Takahashi, phosphate is not included in the definition of total alkalinity; in GEOSECS-Peng, phosphate is included, though the contribution of each species to alkalinity is determined incorrectly based on charge rather than a zero level of protons at p<inline-formula><mml:math id="M44" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> 4.5. <inline-formula><mml:math id="M45" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula> Includes all dissociation constants for this system: <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> (Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/>).    <inline-formula><mml:math id="M49" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">d</mml:mi></mml:msup></mml:math></inline-formula> Copies the pressure correction for boric acid.   <inline-formula><mml:math id="M50" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">e</mml:mi></mml:msup></mml:math></inline-formula> A constant value of 1 is used in this case, i.e. <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p></table-wrap-foot></table-wrap>

      <p id="d1e2033">Some of these options also influence other, seemingly unrelated, parameters of other chemical systems.  This is not widely appreciated because this happens internally, hidden within the code.  The most influential choice is for the carbonic acid dissociation constants, <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, for which there are 17 different options in PyCO2SYS (Table <xref ref-type="table" rid="Ch1.T1"/>).  We organise these options into three groups based on their effect on the “hidden” internal parameterisations (Table <xref ref-type="table" rid="Ch1.T2"/>).
<list list-type="order"><list-item>
      <p id="d1e2068"><italic>Standard case</italic>.  These are all identical, aside from their varying carbonic acid constants.</p></list-item><list-item>
      <p id="d1e2074"><italic>GEOSECS cases: GEOSECS-Takahashi and GEOSECS-Peng</italic>.  GEOSECS-Peng treats phosphate differently with respect to its contribution to alkalinity, and this difference is reported in the results as the “Peng correction”; see <xref ref-type="bibr" rid="bib1.bibx46" id="text.81"/> for a more detailed explanation.</p></list-item><list-item>
      <p id="d1e2083"><italic>Freshwater case</italic>.  Salinity and other total salt contents (ammonia, borate, calcium, fluoride, phosphate, silicate, sulfate, and sulfide) are set to zero, irrespective of the user inputs.</p></list-item></list></p>

<?xmltex \floatpos{p}?><table-wrap id="Ch1.T3" specific-use="star"><?xmltex \currentcnt{3}?><label>Table 3</label><caption><p id="d1e2091">Parameterisations that (except where noted) are not influenced by the case of the selected carbonic acid constants (Table <xref ref-type="table" rid="Ch1.T1"/>).</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Setting</oasis:entry>
         <oasis:entry colname="col2">References</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><xref ref-type="bibr" rid="bib1.bibx42" id="text.83"/>, <xref ref-type="bibr" rid="bib1.bibx17" id="text.84"/>, or <xref ref-type="bibr" rid="bib1.bibx95" id="text.85"/><inline-formula><mml:math id="M86" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula>; <inline-formula><mml:math id="M87" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> correction follows <xref ref-type="bibr" rid="bib1.bibx53" id="text.86"/></oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><xref ref-type="bibr" rid="bib1.bibx19" id="text.87"/> or <xref ref-type="bibr" rid="bib1.bibx71" id="text.88"/><inline-formula><mml:math id="M89" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula>; <inline-formula><mml:math id="M90" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> correction follows <xref ref-type="bibr" rid="bib1.bibx53" id="text.89"/></oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><xref ref-type="bibr" rid="bib1.bibx12" id="text.90"/>; <inline-formula><mml:math id="M92" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> correction follows <xref ref-type="bibr" rid="bib1.bibx53" id="text.91"/></oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><xref ref-type="bibr" rid="bib1.bibx100" id="text.92"/>; <inline-formula><mml:math id="M94" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> correction follows <xref ref-type="bibr" rid="bib1.bibx53" id="text.93"/></oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M95" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> activity coefficient</oasis:entry>
         <oasis:entry colname="col2"><xref ref-type="bibr" rid="bib1.bibx87" id="text.94"/>, except for GEOSECS-Peng, which uses <xref ref-type="bibr" rid="bib1.bibx70" id="text.95"/></oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Humidity correction</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx97" id="text.96"/>
                  </oasis:entry>
       <?xmltex \interline{[2.845276pt]}?></oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M96" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> solubility (<inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx96" id="text.97"/>
                  </oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><table-wrap-foot><p id="d1e2096"><inline-formula><mml:math id="M82" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">a</mml:mi></mml:msup></mml:math></inline-formula> As selected by the user. <inline-formula><mml:math id="M83" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">b</mml:mi></mml:msup></mml:math></inline-formula> Including the corrections of <xref ref-type="bibr" rid="bib1.bibx94" id="text.82"/>. <inline-formula><mml:math id="M84" display="inline"><mml:msup><mml:mi/><mml:mi mathvariant="normal">c</mml:mi></mml:msup></mml:math></inline-formula> This option was written into the code for CO2SYS-MATLAB v2.0.5 and other versions, but commented out and therefore not directly usable. It is available in CO2SYS-MATLAB v3.2.0.</p></table-wrap-foot></table-wrap>

      <p id="d1e2393">Other internal settings are consistent across all cases (Table <xref ref-type="table" rid="Ch1.T3"/>).  These three cases have been present since the original CO2SYS for MS-DOS <xref ref-type="bibr" rid="bib1.bibx46" id="paren.98"/>.  That program included only options 1–8 for the carbonic acid dissociation constants (Table <xref ref-type="table" rid="Ch1.T1"/>), with the others being published subsequent to its release.  All subsequently added carbonic acid options follow the standard case.  While it is beyond the scope of this paper to judge the relative merits of the different options, in general we recommend that one of the standard cases be used unless there is a specific reason for doing otherwise.</p>
      <p id="d1e2403">In addition to the carbonic acid equilibria, the user has multiple parameterisation options for each of the following: (i) the ratio between total borate and salinity, (ii) the bisulfate dissociation constant <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, and (iii) the hydrogen fluoride dissociation constant <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> (Tables <xref ref-type="table" rid="Ch1.T2"/> and <xref ref-type="table" rid="Ch1.T3"/>).  However, note that for (i), the user's choice is not respected in the GEOSECS cases, and neither (ii) nor (iii) is included at all in the freshwater case (Table <xref ref-type="table" rid="Ch1.T2"/>).  It should also be noted that choices (ii) and (iii) affect pH scale conversions, including of equilibrium constants, which can have a small (but practically negligible) effect on the results.</p>
      <p id="d1e2443">Equilibrium constants in PyCO2SYS are all stoichiometric rather than thermodynamic and thus denoted with <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>.  This means that they represent the equilibrium balance of solute substance contents, not of their chemical activities.  They are evaluated as follows:
<list list-type="order"><list-item>
      <p id="d1e2459">calculated on the pH scale reported in the literature as a function of temperature and salinity at zero in-water pressure;</p></list-item><list-item>
      <p id="d1e2463">converted to the seawater pH scale (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>);</p></list-item><list-item>
      <p id="d1e2469">corrected to the in situ pressure;</p></list-item><list-item>
      <p id="d1e2473">converted to the pH scale indicated by the user's input (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>).</p></list-item></list></p>
      <p id="d1e2479">There are some exceptions to the evaluation steps listed above.  First, the pH scale conversions (steps 2 and 4) are not applied to <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(calcite), <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(aragonite), or <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>.  For <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, this is because these constants always remain on the free pH scale.  The other constants in this list are for equilibria that do not directly involve <inline-formula><mml:math id="M108" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and are therefore independent of the pH scale.  Second, no pressure correction (step 3) is applied to the <inline-formula><mml:math id="M109" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> solubility factor <inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx96" id="paren.99"/>.   This value and calculations of <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are thus valid only for the surface ocean (Sect. <xref ref-type="sec" rid="Ch1.S5.SS3"/>).</p>
      <?pagebreak page19?><p id="d1e2670">In PyCO2SYS, users can also specify their own values for any or all of the equilibrium constants or total salt contents.  Any values specified in this way are used as-is throughout PyCO2SYS: no pH scale or pressure corrections are applied, so it is left to the user to ensure that the values are provided on the appropriate pH scale and at the relevant temperature and pressure.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Input and output conditions</title>
      <p id="d1e2681">A useful feature of all CO2SYS software that can nonetheless cause confusion is calculations at “input” and “output” conditions; “conditions” refers to temperature and pressure.  There is an unhelpful overlap of nomenclature, with input and output used firstly in a programming context to refer to arguments that are passed into functions and returned from them as results, and secondly in a measurement context in which they refer to the temperatures and pressures under which the known parameter pairs are provided and at which results are to be calculated.  For clarity, we therefore use the terms “arguments” and “results” in the programming context, while input and output always refer to the measurement context.  Thus, we provide values at both input and output conditions as arguments to PyCO2SYS and we receive calculations at both input and output conditions as results from the program.</p>
      <p id="d1e2684">Input and output conditions are used when measurements were conducted at a different temperature and/or pressure from what the sample would experience in situ or to evaluate the effect of changing these conditions on the solution chemistry.  All core carbonate system parameters except for <inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are temperature- and pressure-sensitive, so the values of other measured arguments and calculated results may differ between the input and output conditions.  For example, measurements might be conducted in a laboratory at 25 <inline-formula><mml:math id="M116" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C on samples that were collected from several kilometres' depth in the ocean at sub-zero temperatures.  In this case, we would provide the measurement conditions (i.e. temperature and pressure in the laboratory) as input arguments and the environmental conditions (i.e. temperature and pressure in the ocean) as output arguments.  The corresponding output-condition results from PyCO2SYS then represent the true state of the sample in situ in its environment.  The input-condition results are of less environmental interest but may be useful for quality-control purposes.</p>
      <p id="d1e2719">If calculations are conducted using only in situ values, for example from model output or with the temperature and pressure corrections already applied, then output-condition arguments need not be supplied.  Results are then calculated only under the input conditions for computational efficiency.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Solving the marine carbonate system</title>
      <p id="d1e2731">We refer to the parameters from which PyCO2SYS can solve the marine carbonate system as the “core” marine carbonate system parameters.  These are <inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, pH (on any scale), <inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.  Any pair of these can be provided, except for two of <inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, which would not be valid because these are all directly proportional to each other at a given temperature, salinity, and atmospheric pressure.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1" specific-use="star"><?xmltex \currentcnt{1}?><?xmltex \def\figurename{Figure}?><label>Figure 1</label><caption><p id="d1e2934">Overview of the process by which PyCO2SYS and other CO2SYS implementations solve the marine carbonate system (MCS) and calculate other results.  Arguments provided by the user are shown as open symbols on a yellow background, while calculations and results use filled symbols.  Components under input conditions are shown in light blue, those under output conditions are in red towards the right, and components that are independent of input/output conditions are in dark blue.  Any pair of the parameters in the “MCS arguments” box at the top left can be provided, noting that only one of <inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> may be included in a pair.  Coupled with user-provided nutrients, total salts calculated from salinity (Totals), and stoichiometric dissociation constants calculated from salinity and input temperature and pressure (<inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> values), all core MCS parameters are determined (Input MCS results) from the known pair (Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/>).  Other results (e.g. carbonate mineral saturation states, buffer factors) are then calculated from the results under input conditions (Others).  If the user provides output-condition temperature and/or pressure values, then the dissociation constants are recalculated under these new conditions, the core MCS is solved again (Output MCS results) from these updated constants (<inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> values out), the original “totals”, and the now-known <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, which are independent of temperature and pressure.  Finally, other results are calculated again from the output-condition results (Others out).</p></caption>
          <?xmltex \igopts{width=497.923228pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f01.png"/>

        </fig>

      <p id="d1e3058">To calculate its results (Fig. <xref ref-type="fig" rid="Ch1.F1"/>), PyCO2SYS first determines the unknown core parameters from whichever pair is provided by the user under the input conditions (Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/>).  The parameter pairs that require an iterative solver to find pH (i.e. <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> plus <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> or one of its components) are solved using a scheme that has been updated from previous versions of CO2SYS (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>).  The <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> provided or determined under the input conditions are then used to solve the core marine carbonate system again under the output conditions if these have been provided.  This is possible because both <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are unaffected by temperature and pressure changes.</p>
      <p id="d1e3138">Other properties of interest are subsequently calculated from whichever core parameters are most convenient under both input and (if provided) output conditions.  These properties include all the individual components of alkalinity (Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/>), calcite, and aragonite saturation states (Appendix <xref ref-type="sec" rid="App1.Ch1.S4"/>), as well as various chemical buffer factors (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS4"/>).</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>New developments in PyCO2SYS</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Solving the alkalinity–pH equation</title>
<sec id="Ch1.S3.SS1.SSS1">
  <label>3.1.1</label><title>Automatic differentiation</title>
      <p id="d1e3170">Solving the alkalinity–pH equation is a critical component of marine carbonate system modelling.  Like other implementations of CO2SYS, PyCO2SYS uses the Newton–Raphson method.  The general equation is
              <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M143" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            where <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:msubsup><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">dpH</mml:mi></mml:mrow></mml:math></inline-formula> and
              <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M145" display="block"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">known</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            in which <inline-formula><mml:math id="M146" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> is any of <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.  <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is determined as described in Sects. <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS1"/> (when <inline-formula><mml:math id="M152" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> is <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) and <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS3"/>–<xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS5"/> (when <inline-formula><mml:math id="M154" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> is one of <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>).</p>
      <p id="d1e3520">Unlike other implementations of CO2SYS, the equations that determine the relative abundances of different chemical species as functions of pH and their total contents (Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/>) appear only once in PyCO2SYS in what we term the “main chemical speciation function”.  While this approach does not alter the calculated results, it does make the software more robust by reducing the opportunity for typographical errors when similar equations are repeated across the code.</p>
      <?pagebreak page20?><p id="d1e3525">The derivative term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) is evaluated from the main chemical speciation function using automatic differentiation, as implemented by the Python package Autograd <xref ref-type="bibr" rid="bib1.bibx49" id="paren.100"/>.  Distinct from numerical or symbolic differentiation, the automatic approach breaks down the code to be differentiated into a sequence of individual arithmetic operations (addition, subtraction, etc.) and simple functions (logarithms, exponentials, etc.), then combines the derivatives of these components together using the chain rule.  The overall differentials to arbitrary order of complicated functions can thus be evaluated efficiently and are accurate to the computer's precision.</p>
      <p id="d1e3533">Through our approach, the effect of every component of alkalinity in the main chemical speciation equation is included in the derivative term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>).  In contrast, some other implementations of CO2SYS use simplified expressions that only include the contributions of carbonate, borate, and water to the total alkalinity.  Under typical open-ocean conditions, this makes little practical difference because the simplified equations include the most important components of the seawater solution.  However, including every modelled component does make the solver more robust for more unusual solution compositions.</p>
      <p id="d1e3539">Automatic differentiation is also used to evaluate chemical buffer factors, again ensuring that the influence of every modelled equilibrium system is accurately included.  The calculated buffer factors are described in more detail in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS4"/>.</p>
      <p id="d1e3544">A further advantage of the automatic differentiation approach is that if the main chemical speciation function is modified in the future, for example to include additional components of alkalinity, then these changes are automatically incorporated into all the alkalinity–pH solvers without needing to modify the various solver functions.  In short, our approach ensures that PyCO2SYS calculations will remain internally consistent and reflect the influence of every solute and equilibrium modelled in the main chemical speciation function, even if this function is modified in the course of future development (Sect. <xref ref-type="sec" rid="Ch1.S5.SS5"/>).</p>
</sec>
<?pagebreak page21?><sec id="Ch1.S3.SS1.SSS2">
  <label>3.1.2</label><title>Vectorised arguments and solver jumps</title>
      <p id="d1e3557">PyCO2SYS adjusts how to determine when the alkalinity–pH solver should stop solving for vectorised arguments.  In CO2SYS-MATLAB v2.0.5, the solvers continue to iterate and update all values until the change in every element of the array satisfies the <inline-formula><mml:math id="M158" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula>pH tolerance threshold (<inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in CO2SYS-MATLAB, <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in PyCO2SYS).  This means that a given set of arguments could return slightly different results depending on what data appear in the other, supposedly independent, elements of the argument arrays.  Although negligible for all practical purposes, these differences are detectable in code validation exercises.  In PyCO2SYS <xref ref-type="bibr" rid="bib1.bibx84" id="paren.101"><named-content content-type="pre">and in CO2SYS-MATLAB v3.2.0;</named-content></xref> this process has been changed such that each element stops being updated once it has reached the tolerance threshold, independent of the other elements.</p>
      <p id="d1e3600">The maximum solver jump – which constrains the greatest change in pH possible between solver iterations, thus helping to prevent overshoot – is implemented slightly differently in PyCO2SYS than in other CO2SYS programs.  In CO2SYS-MATLAB, any <inline-formula><mml:math id="M161" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula>pH values with a magnitude greater than 1 are halved.  In PyCO2SYS, the same applies, but any <inline-formula><mml:math id="M162" display="inline"><mml:mi mathvariant="normal">Δ</mml:mi></mml:math></inline-formula>pH values with a magnitude still greater than 1 after halving are decreased to 1 (while preserving the sign).  This has a negligible effect on calculations, but it is sometimes detectable in intercomparisons.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS3">
  <label>3.1.3</label><title>pH scale conversions</title>
      <p id="d1e3625">PyCO2SYS fixes a simplification in earlier CO2SYS implementations regarding how pH scales are converted within the main chemical speciation function.  This simplification is noted in the programmer's comments in the relevant CO2SYS-MATLAB functions, carried through from the original MS-DOS implementation <xref ref-type="bibr" rid="bib1.bibx46" id="paren.102"/>: “Though it is coded for <inline-formula><mml:math id="M163" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> on the total pH scale, for the pH values occurring in seawater (pH <inline-formula><mml:math id="M164" display="inline"><mml:mo>&gt;</mml:mo></mml:math></inline-formula> 6) it will be equally valid on any pH scale (<inline-formula><mml:math id="M165" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> terms negligible) as long as the <inline-formula><mml:math id="M166" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> Constants are on that scale.”</p>
      <p id="d1e3659">In short, pH and the equilibrium constants are provided to these functions on the same pH scale as each other – except for <inline-formula><mml:math id="M167" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M168" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, which are always on the free scale (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>).  Calculations of all alkalinity components except <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> have therefore always been correct.  However, because <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> are always on the free scale, pH must be converted to this scale in order to determine the contributions of <inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> to total alkalinity.  Other versions of CO2SYS prior to CO2SYS-MATLAB v3.2.0 <xref ref-type="bibr" rid="bib1.bibx84" id="paren.103"/> and CO2SYS-Excel v3 <xref ref-type="bibr" rid="bib1.bibx73" id="paren.104"/> assume that the user-selected pH scale is total and thus apply the total-to-free scale conversion (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>) regardless of what the user-selected pH scale actually is.</p>
      <p id="d1e3798">This simplification makes a negligible difference to calculations at typical seawater pH (because [<inline-formula><mml:math id="M175" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>] and [<inline-formula><mml:math id="M176" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow></mml:math></inline-formula>] are each on the order of <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M178" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M179" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> relative to <inline-formula><mml:math id="M180" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> on the order of 2000 <inline-formula><mml:math id="M181" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M182" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and then only when the user-selected pH scale is not total.  But, as implied in the original programmer's note, it can have a noticeable adverse effect under other conditions, such as the low pH values encountered during the acidimetric titrations of seawater used to measure <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.  In PyCO2SYS, CO2SYS-MATLAB v3.2.0, and CO2SYS-Excel v3, the correct conversion factor is used based on the user-selected pH scale.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Initial pH estimates</title>
      <p id="d1e3908">Like most iterative solvers, the Newton–Raphson method (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>) requires an initial pH value that is near  the true value in order to prevent overshoot and guarantee convergence to a root. Previous versions of CO2SYS used 8 as the initial pH estimate in every case. This works well for typical open-ocean seawater but may be less appropriate in niche environments or when modelling acidimetric titrations.  <xref ref-type="bibr" rid="bib1.bibx62" id="text.105"/> found a better initial pH estimate for solving from known <inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by considering only the contributions of carbonate and borate species to <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, simplifying the <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> equation.
            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M188" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e4026">Following <xref ref-type="bibr" rid="bib1.bibx62" id="text.106"/> and as also implemented elsewhere <xref ref-type="bibr" rid="bib1.bibx65" id="paren.107"><named-content content-type="pre">e.g.</named-content></xref>, PyCO2SYS and CO2SYS-MATLAB v3.2.0 also take this approach (Appendix <xref ref-type="sec" rid="App1.Ch1.S6"/>).  Furthermore, we have extended it to apply to the pH solvers that use one of the components of <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> as the second known parameter, as follows.  We note that these extensions are equivalent to those described and discussed in greater detail by <xref ref-type="bibr" rid="bib1.bibx63" id="text.108"/>, although they were added to the PyCO2SYS code in its v1.3.0 release (<ext-link xlink:href="https://doi.org/10.5281/zenodo.3780139" ext-link-type="DOI">10.5281/zenodo.3780139</ext-link>, <xref ref-type="bibr" rid="bib1.bibx35" id="altparen.109"/>​​​​​​​) before the publication of that study.</p>
<sec id="Ch1.S3.SS2.SSS1">
  <label>3.2.1</label><?xmltex \opttitle{Solving from $A_{\mathrm{T}}$ and $f_{{\protect\chem{CO_{2}}}}$}?><title>Solving from <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e4094">For clarity in the equations in this section, we abbreviate <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> as <inline-formula><mml:math id="M193" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> as <inline-formula><mml:math id="M195" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>.  As noted in Appendix <xref ref-type="sec" rid="App1.Ch1.S3.SS1.SSS2"/>, the approach described here is also used for known parameter pairs of <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> plus any of <inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <?pagebreak page22?><p id="d1e4215">First, <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is converted to <inline-formula><mml:math id="M201" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E65"/>).  Carbonate–borate alkalinity (<inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) as a function of <inline-formula><mml:math id="M203" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M204" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is
              <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M205" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
            This can be rearranged into a third-order polynomial in <inline-formula><mml:math id="M206" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>:
              <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M207" display="block"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            with the following.

                  <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M208" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E6"><mml:mtd><mml:mtext>6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E7"><mml:mtd><mml:mtext>7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E8"><mml:mtd><mml:mtext>8</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e4643">Following a scheme equivalent to <xref ref-type="bibr" rid="bib1.bibx62" id="text.110"/>, the initial <inline-formula><mml:math id="M209" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> value is determined by
              <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M210" display="block"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="cases" columnspacing="1em" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:msqrt></mml:mfrac></mml:mstyle></mml:mstyle></mml:mrow></mml:msqrt></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>
            Negative <inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is impossible because both terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E4"/>) are always positive, so the equations given above cannot be applied if <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is indeed negative (e.g. after the alkalinity end point in an acidimetric titration).  The default <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> mol kg<inline-formula><mml:math id="M215" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, corresponding to a pH of 3, is therefore used in this case.  Otherwise, <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) is found following <xref ref-type="bibr" rid="bib1.bibx62" id="text.111"/>.
              <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M217" display="block"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable columnspacing="1em" class="cases" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:msqrt></mml:mrow></mml:mfenced><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>/</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:msqrt></mml:mrow></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>
            When <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is positive, the square-rooted term <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is always greater than zero, and thus <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> has a real value.  However, there is an additional constraint: <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">CB</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> cannot be greater than <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx62" id="paren.112"/>.  If <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is actually greater than this limit, then we use a default <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> mol kg<inline-formula><mml:math id="M226" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> instead (pH 7).</p>
</sec>
<sec id="Ch1.S3.SS2.SSS2">
  <label>3.2.2</label><?xmltex \opttitle{Solving from $A_{\mathrm{T}}$ and {[}{$\protect\chem{HCO_{3}^{-}}$}{]}}?><title>Solving from <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and [<inline-formula><mml:math id="M228" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>]</title>
      <p id="d1e5124">For clarity in the equations in this section, we abbreviate [<inline-formula><mml:math id="M229" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>] as <inline-formula><mml:math id="M230" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> and [<inline-formula><mml:math id="M231" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>] as <inline-formula><mml:math id="M232" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>.</p>
      <p id="d1e5165">Carbonate–borate alkalinity as a function of <inline-formula><mml:math id="M233" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> is
              <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M234" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>b</mml:mi><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>b</mml:mi></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
            This can be rearranged into a second-order polynomial in <inline-formula><mml:math id="M235" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>:
              <disp-formula id="Ch1.E12" content-type="numbered"><label>12</label><mml:math id="M236" display="block"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            with the following.

                  <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M237" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E13"><mml:mtd><mml:mtext>13</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>b</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E14"><mml:mtd><mml:mtext>14</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>b</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E15"><mml:mtd><mml:mtext>15</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mi>b</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e5471">The initial <inline-formula><mml:math id="M238" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> value is estimated following
              <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M239" display="block"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable rowspacing="0.2ex" class="cases" columnspacing="1em" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:mi>b</mml:mi><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:mi>b</mml:mi><mml:mo>≥</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>
            When <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:mi>b</mml:mi><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the square-rooted term <inline-formula><mml:math id="M241" display="inline"><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is always positive, and thus <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>b</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> has a real value.  Otherwise, <inline-formula><mml:math id="M243" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> can only be greater than <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> if the negative components of <inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> such as [<inline-formula><mml:math id="M246" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>] are dominant, as happens at low pH.  The default initial pH estimate used by PyCO2SYS in that case is therefore 3.</p>
</sec>
<sec id="Ch1.S3.SS2.SSS3">
  <label>3.2.3</label><?xmltex \opttitle{Solving from $A_{\mathrm{T}}$ and {[}{$\protect\chem{CO_{3}^{{2-}}}$}{]}}?><title>Solving from <inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and [<inline-formula><mml:math id="M248" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>]</title>
      <p id="d1e5724">For clarity in the equations in this section, we abbreviate [<inline-formula><mml:math id="M249" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>] here as <inline-formula><mml:math id="M250" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> and [<inline-formula><mml:math id="M251" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>] as <inline-formula><mml:math id="M252" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>.</p>
      <p id="d1e5768">Carbonate–borate alkalinity as a function of <inline-formula><mml:math id="M253" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> is
              <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M254" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>c</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
            This can be rearranged into a second-order polynomial in <inline-formula><mml:math id="M255" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>:
              <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M256" display="block"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            with the following.

                  <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M257" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E19"><mml:mtd><mml:mtext>19</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>c</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E20"><mml:mtd><mml:mtext>20</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E21"><mml:mtd><mml:mtext>21</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e6080">The initial <inline-formula><mml:math id="M258" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> value is estimated following
              <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M259" display="block"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable columnspacing="1em" class="cases" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>
            When <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the square-rooted term <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is always positive, and thus <inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> has a real value.  Otherwise, <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> can only be greater than <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> if the negative components of <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> such as [<inline-formula><mml:math id="M266" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>] are dominant, as happens at low pH.  The default initial pH estimate used by PyCO2SYS in that case is therefore 3.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>New calculations, components, and constants</title>
<sec id="Ch1.S3.SS3.SSS1">
  <label>3.3.1</label><title>Additional alkalinity components</title>
      <p id="d1e6353">The contributions of ammonia and bisulfide to alkalinity <xref ref-type="bibr" rid="bib1.bibx9 bib1.bibx99" id="paren.113"/> plus the ability to solve from carbonate and/or bicarbonate ion content have been added in collaboration with <xref ref-type="bibr" rid="bib1.bibx84" id="text.114"/> to ensure consistency between PyCO2SYS and CO2SYS-MATLAB v3.2.0.  However, the GEOSECS alkalinity definition did not account for these species, so if using one of the GEOSECS options for the carbonic acid constants (Table <xref ref-type="table" rid="Ch1.T1"/>) then  users should be sure to set their total contents to zero for GEOSECS-compatible results.  If values are provided, then they will be included in the alkalinity equation just as for the non-GEOSECS cases.</p>
      <?pagebreak page23?><p id="d1e6364">The total substance contents and stoichiometric dissociation constants for up to two additional acid–base systems that contribute to total alkalinity can be provided as arguments to PyCO2SYS and are part of its speciation model.  The effects of these extra components are automatically incorporated into all PyCO2SYS calculations, including the iterative pH solvers (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>), buffer factors (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS4"/>), and uncertainty propagation (Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>).  These extra components are modelled following <xref ref-type="bibr" rid="bib1.bibx83" id="text.115"/>, as described in Appendix <xref ref-type="sec" rid="App1.Ch1.S2.SS11"/>.  No corrections of any sort (e.g. for pressure or pH scale; Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>) are made to the dissociation constants for these user-defined additional components within PyCO2SYS; the user must ensure that they are already suitable for the conditions being analysed and on the user-indicated pH scale.</p>
</sec>
<sec id="Ch1.S3.SS3.SSS2">
  <label>3.3.2</label><title>Gas constant</title>
      <p id="d1e6389">Previous versions of CO2SYS used an old value for the universal gas constant (<inline-formula><mml:math id="M267" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula>) of 8.31451 J mol<inline-formula><mml:math id="M268" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> K<inline-formula><mml:math id="M269" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>.  PyCO2SYS uses the 2018 CODATA-recommended value by default instead (i.e. 8.314462618 J mol<inline-formula><mml:math id="M270" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> K<inline-formula><mml:math id="M271" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>), consistent with CO2SYS-MATLAB v3.2.0 and CO2SYS-Excel v3.  This has a minor effect on conversions between <inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (less than <inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> %), as well as on the pressure corrections for the equilibrium constants (less than <inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % at 5000 dbar).  It is detectable in comparisons with other versions of CO2SYS, but it is of no practical consequence.</p>
</sec>
<sec id="Ch1.S3.SS3.SSS3">
  <label>3.3.3</label><?xmltex \opttitle{Substrate\,:\,inhibitor ratio}?><title>Substrate : inhibitor ratio</title>
      <p id="d1e6530">Like CO2SYS-MATLAB v3.2.0, PyCO2SYS calculates the “substrate : inhibitor ratio” of <xref ref-type="bibr" rid="bib1.bibx3" id="text.116"/>, which quantifies the balance between the availability of a substrate for calcification (i.e. <inline-formula><mml:math id="M277" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>) and the inhibition of calcification by <inline-formula><mml:math id="M278" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> (Eq. <xref ref-type="disp-formula" rid="App1.Ch1.S4.E81"/>).</p>
</sec>
<sec id="Ch1.S3.SS3.SSS4">
  <label>3.3.4</label><title>Buffer factors</title>
      <p id="d1e6570">A buffer factor quantifies the sensitivity of a certain marine carbonate system parameter to a change in another parameter.  Best known is the Revelle factor, which is the ratio of the fractional change in <inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> corresponding to a fractional change in <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> at constant <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx75" id="paren.117"/>.  <xref ref-type="bibr" rid="bib1.bibx25" id="text.118"/> derived a broader set of buffer factors for the marine carbonate system, quantifying the responses of several different parameters to changes in <inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>; these were later rediscovered by <xref ref-type="bibr" rid="bib1.bibx24" id="text.119"/> and further extended by <xref ref-type="bibr" rid="bib1.bibx30" id="text.120"/>.  PyCO2SYS calculates the buffer factors of <xref ref-type="bibr" rid="bib1.bibx24" id="text.121"/> and uses the nomenclature of that paper.</p>
      <p id="d1e6650">Closely related to these buffer factors, <xref ref-type="bibr" rid="bib1.bibx26" id="text.122"/> introduced the factor <inline-formula><mml:math id="M284" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula>, which quantifies the change in <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> required to return to the original seawater <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> after the action of calcification (which reduces <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> in a 2 : 1 ratio) or <inline-formula><mml:math id="M289" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CaCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> dissolution (the reverse).  <xref ref-type="bibr" rid="bib1.bibx34" id="text.123"/> introduced the “isocapnic quotient” (<inline-formula><mml:math id="M290" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula>), which is the ratio of <inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> change that does not affect seawater <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, thus generalising the concept of <inline-formula><mml:math id="M294" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula> for application to all biogeochemical processes that affect <inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (denoted <inline-formula><mml:math id="M297" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula>).  PyCO2SYS calculates both <inline-formula><mml:math id="M298" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M299" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula>, the latter of which can be used to calculate <inline-formula><mml:math id="M300" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> for any biogeochemical process <xref ref-type="bibr" rid="bib1.bibx34" id="paren.124"/>.</p>
      <p id="d1e6836">PyCO2SYS offers two independent ways to evaluate the various buffer factors of the marine carbonate system: with explicit equations and by automatic differentiation.  The latter is used by default.</p>
      <p id="d1e6839">The “explicit” approach follows equations reported in the literature <xref ref-type="bibr" rid="bib1.bibx26 bib1.bibx24 bib1.bibx34" id="paren.125"/>, noting that the typographical errors in <xref ref-type="bibr" rid="bib1.bibx24" id="text.126"/> identified in several studies <xref ref-type="bibr" rid="bib1.bibx64 bib1.bibx2 bib1.bibx76 bib1.bibx68" id="paren.127"><named-content content-type="pre">e.g.</named-content></xref> have been corrected.  In general, these equations do not include the effect of species beyond the carbonate, borate, and water contributions to total alkalinity, except that the buffer factors of <xref ref-type="bibr" rid="bib1.bibx24" id="text.128"/> were extended to include phosphate and silicate effects by <xref ref-type="bibr" rid="bib1.bibx68" id="text.129"/>.</p>
      <p id="d1e6860">The “automatic” approach uses automatic differentiation to find the derivative necessary to evaluate each buffer factor.  The appropriate derivatives are taken from the functions that calculate a third carbonate system parameter from a known pair (Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/>).  All species modelled in the main chemical speciation function are therefore included, including any extra alkalinity components (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS1"/>), and typographical errors from the literature cannot influence these calculations.  The details of the derivatives used are provided in Appendix <xref ref-type="sec" rid="App1.Ch1.S5"/>.</p>
      <p id="d1e6869">Of the buffer factors, only the Revelle factor was included in previous versions of CO2SYS.  It was evaluated using finite-central-difference derivatives, which is replicated as the explicit option in PyCO2SYS (with the corrections described in Appendix <xref ref-type="sec" rid="App1.Ch1.S7"/>).  However, as for all other buffer factors, the Revelle factor calculation uses automatic differentiation by default.  To calculate the Revelle factor using a mathematical approach equivalent to the explicit calculation of the other buffer factors, one could calculate <inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of <xref ref-type="bibr" rid="bib1.bibx24" id="text.130"/> (see Appendix <xref ref-type="sec" rid="App1.Ch1.S5.SS1"/>) with the explicit approach and then use Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S5.E88"/>).</p>
</sec>
<sec id="Ch1.S3.SS3.SSS5">
  <label>3.3.5</label><title>Atmospheric pressure</title>
      <p id="d1e6906">For conversions between <inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, atmospheric pressure is assumed to be 1 atm by default, and it remains fixed at this value in CO2SYS-MATLAB and CO2SYS-Excel.  However, in PyCO2SYS, the user can also specify a value other than 1 atm if necessary.  Different values can be provided for input and output conditions (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>).</p>
      <?pagebreak page24?><p id="d1e6956">Atmospheric pressure can have a non-negligible effect on calculations in some regions: for example, over much of the Southern Ocean, atmospheric pressure is typically 3 % lower than the global mean, corresponding to a 10 <inline-formula><mml:math id="M305" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm reduction in <inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> relative to the values calculated at 1 atm <xref ref-type="bibr" rid="bib1.bibx67" id="paren.131"/>.</p>
      <p id="d1e7000">This optional argument is only intended for modelling the effects of variations in atmospheric pressure on samples from the surface ocean or in the laboratory.  It is not suitable for determining interior ocean <inline-formula><mml:math id="M308" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> values that are corrected for the pressure of the overlying water column.  This separate issue is discussed further in Sect. <xref ref-type="sec" rid="Ch1.S5.SS3"/>.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS4">
  <label>3.4</label><title>No-solve modes</title>
      <p id="d1e7059">As well as solving from a pair of parameters, PyCO2SYS can be run with one or no marine carbonate system parameter arguments.</p>
      <p id="d1e7062">If no parameters are provided, then PyCO2SYS returns all the equilibrium constants and total salt contents that are calculated from temperature, pressure, and salinity (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>) without actually using these to do any further computations.</p>
      <p id="d1e7067">If one parameter is provided, then the results that can be computed with that parameter alone are returned.  This applies to pH, <inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and [<inline-formula><mml:math id="M314" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>], as follows.</p>
      <p id="d1e7132">The pH can be converted between the different scales without knowledge of a second carbonate system parameter.  Therefore, if pH alone is provided to PyCO2SYS, it is converted to every pH scale under the input conditions (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>).  Conversion to a different temperature and/or pressure does require solving the carbonate system (Fig. <xref ref-type="fig" rid="Ch1.F1"/>), so output-condition values are not calculated.</p>
      <p id="d1e7140">Seawater <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and [<inline-formula><mml:math id="M318" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>] can also be interconverted without knowledge of a second carbonate system parameter (Appendix <xref ref-type="sec" rid="App1.Ch1.S3.SS1.SSS2"/>).  Therefore, if any of these parameters alone are provided to PyCO2SYS, all the others are calculated under the input conditions.  If an output-condition temperature is provided, then <inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is also adjusted to the new temperature following <xref ref-type="bibr" rid="bib1.bibx88" id="text.132"/>, and all others in this set of parameters are calculated under output conditions from the new <inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> value.</p>
</sec>
<sec id="Ch1.S3.SS5">
  <label>3.5</label><title>Multidimensional arguments</title>
      <p id="d1e7250">All arguments to PyCO2SYS, including settings, can be multidimensional.  A combination of scalar and multidimensional arguments can be provided, with the latter formatted as NumPy <monospace>ndarray</monospace>s <xref ref-type="bibr" rid="bib1.bibx33" id="paren.133"/>.  Results that depend only on scalar arguments are themselves scalar, while results depending on multidimensional inputs are “broadcasted” into consistently shaped arrays (Fig. <xref ref-type="fig" rid="Ch1.F2"/>).  The code is optimised to efficiently compute across multidimensional arrays following the approach of CO2SYS-MATLAB since its v1.1 <xref ref-type="bibr" rid="bib1.bibx92" id="paren.134"/>.  However, all multidimensional arrays in CO2SYS-MATLAB are flattened into one-dimensional vectors and returned in the results in that same format.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><?xmltex \currentcnt{2}?><?xmltex \def\figurename{Figure}?><label>Figure 2</label><caption><p id="d1e7266">Schematic representation of broadcasting array shapes with NumPy in PyCO2SYS.  <bold>(a)</bold> Two of the arguments to PyCO2SYS are provided as arrays, each containing 11 different values for <inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and temperature.  Other arguments could be similarly shaped vectors or single scalar values.  <bold>(b)</bold> If the array arguments were all provided as one-dimensional rows, then the calculated results (e.g. aragonite saturation state) would also be one-dimensional rows.  Each element of the results array corresponds to the element in the same position in each argument array.  For scalar arguments, the same value is used across each result array.  <bold>(c)</bold> If the array arguments are provided as a mixture of rows and columns, then the results are calculated on a broadcasted grid including every combination of the arguments' elements.  The same principle applies to arguments and results of arbitrarily higher dimensionality.</p></caption>
          <?xmltex \igopts{width=193.47874pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f02.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS6">
  <label>3.6</label><title>Uncertainty propagation</title>
      <p id="d1e7304">Propagating the uncertainty in an argument through to a result requires knowing the derivative of the result with respect to the argument.  Uncertainty propagation is available for a subset of the arguments in the original MS-DOS CO2SYS <xref ref-type="bibr" rid="bib1.bibx46" id="paren.135"/> and was added to the Excel and MATLAB implementations more recently <xref ref-type="bibr" rid="bib1.bibx68" id="paren.136"/>.  However, while much of the code to solve the marine carbonate system in PyCO2SYS has been directly inherited from<?pagebreak page25?> CO2SYS-MATLAB, its implementation of uncertainty propagation differs.</p>
      <p id="d1e7313">PyCO2SYS evaluates the derivatives using a finite-forward-difference approach.  We use finite differences rather than automatic differentiation here because the latter, while possible, is computationally inefficient to apply over the entire PyCO2SYS program.  We use forward- rather than central-difference derivatives because the former can be safely evaluated at zero for variables for which negative values are impossible (e.g. salinity).  The derivative of a result <inline-formula><mml:math id="M322" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> with respect to an argument <inline-formula><mml:math id="M323" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula> is thus calculated.
            <disp-formula id="Ch1.E23" content-type="numbered"><label>23</label><mml:math id="M324" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>a</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>
          The value of <inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> is fixed for each argument (Appendix <xref ref-type="sec" rid="App1.Ch1.S8"/>).  Different values for different arguments are necessary because some arguments can differ by over 20 orders of magnitude from others.  If <inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> is too large, then the derivative may be inaccurate because the equations governing the marine carbonate system are non-linear, but if <inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> is too small, then the derivative may be inaccurate due to the limitations of solver tolerance and computer precision.  We therefore tested a range of <inline-formula><mml:math id="M328" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> values for each variable under typical open-ocean conditions and selected an appropriate value between these extremes (e.g. Fig. <xref ref-type="fig" rid="Ch1.F3"/>).  The full list of <inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> values is provided in Table <xref ref-type="table" rid="App1.Ch1.S8.T6"/>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><?xmltex \currentcnt{3}?><?xmltex \def\figurename{Figure}?><label>Figure 3</label><caption><p id="d1e7448">An example figure used to select a suitable <inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> value for uncertainty propagation, in this case for <inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>.  The pH was calculated from <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and then the value of <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> was incremented by the amounts shown on the horizontal axis; the vertical axis is for the corresponding gradient calculated from the pH response, shown by the red curve.  The perpendicular blue lines show the <inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> value selected in this case (i.e. <inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>), which falls within the flat section towards the centre of the figure.  To the left of this (i.e. at higher <inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula>), the upwards curvature of the red line is due to non-linearity, while the erratic deviations to the right (i.e. at lower <inline-formula><mml:math id="M338" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula>) are due to solver tolerance and computer precision limitations.</p></caption>
          <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f03.png"/>

        </fig>

      <p id="d1e7564">PyCO2SYS can conveniently obtain derivatives of all its results with respect to all of its arguments and also with respect to all parameters that are normally calculated internally from temperature, pressure, and/or salinity, such as equilibrium constants and total salt contents.</p>
      <p id="d1e7567">The derivatives are calculated by a function that wraps the entire PyCO2SYS program, rather than by adding extra internal variables that keep track of the effects of differences in to the arguments, as has been implemented elsewhere <xref ref-type="bibr" rid="bib1.bibx68" id="paren.137"><named-content content-type="pre">e.g.</named-content></xref>.  The PyCO2SYS approach means that if the main program is producing valid results, then the derivatives can also be considered reliable without needing to verify some separate calculation mechanism.</p>
      <p id="d1e7575">To determine the overall uncertainty in each result, the uncertainty components from different arguments are combined using
            <disp-formula id="Ch1.E24" content-type="numbered"><label>24</label><mml:math id="M339" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>(</mml:mo><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M340" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> is the uncertainty as a standard deviation (thus, <inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> is a variance).   However, Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) is only valid if the uncertainties in all arguments are independent from each other.  Propagation of co-varying uncertainties can still be carried out with PyCO2SYS because, as noted above, the derivative of any result with respect to any argument can be calculated.  The user can therefore assemble the Jacobian matrix of partial derivatives needed to propagate any arbitrary set of co-varying argument uncertainties through to any result <xref ref-type="bibr" rid="bib1.bibx40" id="paren.138"/>.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Validation</title>
      <p id="d1e7671">There are no “certified” results of marine carbonate system calculations against which software like PyCO2SYS can be validated.  But we can test its internal consistency, and we can compare its results with the calculations of other programs and values reported in the literature.</p>
      <p id="d1e7674">PyCO2SYS is developed and hosted on GitHub (<uri>https://github.com/mvdh7/PyCO2SYS</uri>), with releases archived on Zenodo <xref ref-type="bibr" rid="bib1.bibx36" id="paren.139"/>.  Every validation test described in this section is built into PyCO2SYS's test suite; therefore, these tests are executed automatically by GitHub's continuous integration service every time the code is updated.  Were any test to fail, an email report would be sent to us, the developers, and the failure displayed publicly in a badge on the GitHub repository's public web page (Fig. <xref ref-type="fig" rid="Ch1.F4"/>).  Updates to PyCO2SYS are made in a developmental branch of the repository, and the tests must all pass before these changes may be incorporated into the main branch and publicly released in a new version.  All validation tests described below were run with PyCO2SYS v1.8.0 (<ext-link xlink:href="https://doi.org/10.5281/zenodo.5602840" ext-link-type="DOI">10.5281/zenodo.5602840</ext-link>, <xref ref-type="bibr" rid="bib1.bibx36" id="altparen.140"/>), but these protocols should ensure that the quantitative statements made here will hold true as the code continues to be developed.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><?xmltex \currentcnt{4}?><?xmltex \def\figurename{Figure}?><label>Figure 4</label><caption><p id="d1e7693">The status badge for the validation tests, which are publicly visible at PyCO2SYS's GitHub repository (<uri>https://github.com/mvdh7/PyCO2SYS#pyco2sys</uri>, last access: 23 December 2021), when the current version of the code <bold>(a)</bold> passes every test or <bold>(b)</bold> fails any test.</p></caption>
        <?xmltex \igopts{width=113.811024pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f04.png"/>

      </fig>

      <p id="d1e7712">For all versions of PyCO2SYS up to v1.8.0, the test suite runs on Python v3.7, 3.8, and 3.9.  Other versions of Python may also work but are untested.</p>
<?pagebreak page26?><sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Internal consistency</title>
<sec id="Ch1.S4.SS1.SSS1">
  <label>4.1.1</label><title>Round-robin test</title>
      <p id="d1e7729">In a “round-robin” test, we first determine all of the core carbonate system parameters from one pair and then solve the system again using every possible pair of determined parameters.  Under typical seawater conditions, we find the same results for every parameter pair to within better than the tolerance of the iterative pH solvers (i.e. <inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in pH).  The maximum absolute difference in each parameter across all possible input pair combinations is acceptably small (Table <xref ref-type="table" rid="Ch1.T4"/>).</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T4"><?xmltex \currentcnt{4}?><label>Table 4</label><caption><p id="d1e7751">Results of an example round-robin test with PyCO2SYS with default parameterisation options.  Other conditions: salinity 33, temperature 22 <inline-formula><mml:math id="M343" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, pressure 1234 dbar, total silicate 10 <inline-formula><mml:math id="M344" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M345" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, total phosphate 1 <inline-formula><mml:math id="M346" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M347" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, total ammonia 2 <inline-formula><mml:math id="M348" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M349" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, total sulfide 3 <inline-formula><mml:math id="M350" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M351" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>.  The pH solver tolerance in PyCO2SYS is <inline-formula><mml:math id="M352" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in terms of pH.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Parameter</oasis:entry>
         <oasis:entry colname="col2">Value</oasis:entry>
         <oasis:entry colname="col3">Maximum absolute</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3">difference</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M353" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M354" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M355" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col2">2300.0</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M356" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.91</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M358" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M359" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col2">2100.0</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.55</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">pH<inline-formula><mml:math id="M361" display="inline"><mml:msub><mml:mi/><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">7.871</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.15</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">14</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M363" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M364" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm)</oasis:entry>
         <oasis:entry colname="col2">572.6</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M365" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.51</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M367" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm)</oasis:entry>
         <oasis:entry colname="col2">570.7</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M368" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M369" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M370" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm)</oasis:entry>
         <oasis:entry colname="col2">587.7</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M371" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.55</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M372" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mrow></mml:math></inline-formula>] (<inline-formula><mml:math id="M373" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M374" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col2">143.8</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M375" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.81</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M376" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M377" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M378" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col2">1938.5</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M379" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.16</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M381" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M382" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col2">17.7</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M383" display="inline"><mml:mrow><mml:mn mathvariant="normal">6.54</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">13</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
<sec id="Ch1.S4.SS1.SSS2">
  <label>4.1.2</label><title>Buffer factors</title>
      <p id="d1e8409">If we include only the solution components that appear in the explicit equations for the buffer factors (i.e. zero nutrients and total salts, except for <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) then we can compare these results with the automatic values (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS4"/>).  Under a range of typical seawater conditions, we find that the differences between these two calculation approaches are totally negligible: on the order of <inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % for the <xref ref-type="bibr" rid="bib1.bibx24" id="text.141"/> buffers, <inline-formula><mml:math id="M386" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % for <inline-formula><mml:math id="M387" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M388" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M389" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % for the Revelle factor.  The Revelle factor is less well-matched because its explicit value is computed using a finite-difference scheme (for consistency with CO2SYS-MATLAB), which is inherently less accurate than using a direct equation.</p>
      <p id="d1e8486">Typically, one would not set the total salt contents to zero when computing buffer factors with the default automatic approach.  As a consequence, differences between the explicit and automatic buffer factors may be larger than described above but still practically negligible: keeping nutrients at zero but using <inline-formula><mml:math id="M390" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M391" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> calculated from a salinity of 35, we find that the automatic buffer factors change such that their differences with the corresponding explicit buffer factors increase to the order of 0.01 %.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS3">
  <label>4.1.3</label><title>Uncertainty propagation simulations</title>
      <p id="d1e8524">The propagation of independent uncertainties using forward-difference derivatives (Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>) is tested by comparison with Monte Carlo simulations for all equilibrium constants and all known parameter pair combinations.  In every case, the uncertainty determined from the simulations (<inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>) as a standard deviation is either within 3 % of the directly calculated value if the latter is non-zero or negligibly small if it is zero (absolute value less than <inline-formula><mml:math id="M393" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>).  The 3 % cutoff is relatively high because of the relatively small number of simulations; the cutoff can be reduced if a greater number of simulations is used, but then the computation time for the test suite becomes impractically long.</p>
</sec>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Comparison with other CO2SYS software</title>
      <p id="d1e8567">We used CO2SYS-MATLAB v2.0.5 <xref ref-type="bibr" rid="bib1.bibx68" id="paren.142"/> as the main alternative software to compare our results with.  PyCO2SYS was originally created as an as-close-as-possible Python translation of this particular version, so any differences in the results should be both understood and intentional.  Its predecessor, CO2SYS-MATLAB v1.1 <xref ref-type="bibr" rid="bib1.bibx92" id="paren.143"/>, was included in the software intercomparison study of <xref ref-type="bibr" rid="bib1.bibx66" id="text.144"/>.  Indeed, it was selected as the reference software to test the others against.  CO2SYS-MATLAB v2.0.5 differs from v1.1 only in that it contains one additional parameterisation for the carbonic acid dissociation constants plus some extra internal variables associated with uncertainty propagation.  Comparing PyCO2SYS with CO2SYS-MATLAB v2.0.5 therefore also shows PyCO2SYS's performance and reliability in the context of the wider set of software tested and discussed by <xref ref-type="bibr" rid="bib1.bibx66" id="text.145"/>.</p>
      <?pagebreak page27?><p id="d1e8582">However, these CO2SYS-MATLAB versions do not permit solving with either carbonate or bicarbonate ion content as a known parameter, nor do they include ammonia or sulfide speciation.  They also lack the parameterisations of <xref ref-type="bibr" rid="bib1.bibx86" id="text.146"/> and <xref ref-type="bibr" rid="bib1.bibx80" id="text.147"/> for the carbonic acid dissociation constants (options 16 and 17 in Table <xref ref-type="table" rid="Ch1.T1"/>) and the parameterisation of <xref ref-type="bibr" rid="bib1.bibx95" id="text.148"/> for bisulfate dissociation (Table <xref ref-type="table" rid="Ch1.T3"/>).  We therefore also tested PyCO2SYS against CO2SYS-MATLAB v3.2.0 <xref ref-type="bibr" rid="bib1.bibx84" id="paren.149"/>, which does include all these options.</p><?xmltex \hack{\newpage}?>
<sec id="Ch1.S4.SS2.SSS1">
  <label>4.2.1</label><title>Temperature–salinity–pressure parameterisations</title>
      <p id="d1e8610">All equilibrium constants and total salt contents, calculated from salinity, temperature, and pressure, are virtually identical (absolute tolerance <inline-formula><mml:math id="M394" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, relative tolerance <inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, in  p<inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> values or in <inline-formula><mml:math id="M397" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M398" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) to those in both CO2SYS-MATLAB v2.0.5 and v3.2.0.  These tests are run across a range of practical salinity from 0 to 50, temperature from <inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> to 50 <inline-formula><mml:math id="M400" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, and pressure from 0 to <inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> dbar, including values of exactly zero in every case.  Every pH scale and parameterisation option is included (Tables <xref ref-type="table" rid="Ch1.T1"/> and <xref ref-type="table" rid="Ch1.T2"/>).</p>
</sec>
<sec id="Ch1.S4.SS2.SSS2">
  <label>4.2.2</label><title>Solving the marine carbonate system</title>
      <p id="d1e8716">If PyCO2SYS is adjusted to match CO2SYS-MATLAB v2.0.5, i.e. if the following points are true, then the differences between PyCO2SYS and CO2SYS-MATLAB calculations are virtually zero (no greater than <inline-formula><mml:math id="M402" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> %, excluding the Revelle factor as noted above):
<list list-type="order"><list-item>
      <p id="d1e8735">approximate slopes are used for the pH solvers, including only carbonate–borate–water alkalinity, instead of using automatic differentiation to determine these exactly (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS1"/>);</p></list-item><list-item>
      <p id="d1e8741">pH solver tolerance is set to <inline-formula><mml:math id="M403" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> instead of <inline-formula><mml:math id="M404" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS2"/>);</p></list-item><list-item>
      <p id="d1e8775">the original approach to prevent overshoot from solver jumps in pH that are too great is used (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS2"/>);</p></list-item><list-item>
      <p id="d1e8781">the iterative pH solver continues updating all elements until all pH changes fall beneath the tolerance threshold (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS2"/>);</p></list-item><list-item>
      <p id="d1e8787">the pH scale conversion simplification is reinstated (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/>);</p></list-item><list-item>
      <p id="d1e8793">initial pH guesses are always set to 8 instead of using our extended <xref ref-type="bibr" rid="bib1.bibx62" id="text.150"/> approach (Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>);</p></list-item></list>
The Revelle factor is an exception, but this is due to minor errors in its encoding in CO2SYS-MATLAB (Appendix <xref ref-type="sec" rid="App1.Ch1.S7"/>).  If we replicate these errors in PyCO2SYS, then we do return virtually identical Revelle factor values.</p>
      <p id="d1e8804">If the adjustments above, other than fixing the pH scale conversion simplification, are not made, then the differences between PyCO2SYS and CO2SYS-MATLAB v2.0.5 are up to the order of <inline-formula><mml:math id="M405" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> %: greater, but still negligible for all practical purposes.</p>
      <?pagebreak page28?><p id="d1e8821">Fixing the pH scale conversion simplification too (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/>) makes no difference to calculations for which the user-defined input pH scale is total but causes discrepancies between PyCO2SYS and CO2SYS-MATLAB v2.0.5 of up to 50 % in the “free” hydrogen ion content and <inline-formula><mml:math id="M406" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % in other results when other input pH scale options are selected.  The differences are amplified at low pH, as the assumptions of the pH scale conversion simplification do not hold (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/>).</p>
      <p id="d1e8842">Repeating the exercise above for CO2SYS-MATLAB v3.2.0 has similar results, with differences negligible for all practical purposes.  Only adjustments 1, 2, and 3 from the list above need to be made to PyCO2SYS in this case.  With PyCO2SYS fully adjusted to match CO2SYS-MATLAB v3.2.0, differences in calculated values are still mostly less than <inline-formula><mml:math id="M407" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % and with one exception all less than <inline-formula><mml:math id="M408" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> %.  The exception, a difference still less than <inline-formula><mml:math id="M409" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> %, is for the aqueous <inline-formula><mml:math id="M410" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> content under a limited set of input conditions and only with the new known parameter pair combinations added since CO2SYS-MATLAB v2.0.5.  It arises because there are several different ways to calculate <inline-formula><mml:math id="M411" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>: by difference from known <inline-formula><mml:math id="M412" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M413" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M414" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>; from any one of these three variables, [<inline-formula><mml:math id="M415" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>], and <inline-formula><mml:math id="M416" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> equilibrium constants using the equations in Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/> (Sects. <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS6"/>, <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS11"/>, and <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS12"/>); or from <inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M419" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and the <inline-formula><mml:math id="M420" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> solubility constant (<inline-formula><mml:math id="M421" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>).  While these approaches are identical in theory, in practice they return different results due to the limitations of solver tolerance and floating-point precision.  PyCO2SYS and CO2SYS-MATLAB do not always use the same approach to calculate <inline-formula><mml:math id="M422" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> in each situation (this also varies between CO2SYS-MATLAB versions), hence their greater – but still negligible – differences from each other.  Whatever the known parameter pair, PyCO2SYS always follows the principles that (i) the values of parameters provided as arguments by the user should never be overwritten with recalculations, and (ii) the final unknown from <inline-formula><mml:math id="M423" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M424" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M425" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M426" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> should always be calculated from the other three by addition or by difference as appropriate.</p>
</sec>
<sec id="Ch1.S4.SS2.SSS3">
  <label>4.2.3</label><title>Uncertainty propagation comparisons</title>
      <p id="d1e9177">PyCO2SYS reproduces all the derivatives reported by <xref ref-type="bibr" rid="bib1.bibx68" id="text.151"/> in their Tables 2 and 3 to within <inline-formula><mml:math id="M427" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % under the same input conditions and all the propagated uncertainties reported by <xref ref-type="bibr" rid="bib1.bibx68" id="text.152"/> in their Table 4 to within <inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> %.  We consider all these differences to be negligible.</p>
      <p id="d1e9214">Across all combinations of optional parameters, mean uncertainties in <inline-formula><mml:math id="M429" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M430" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M434" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M435" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M436" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">calcite</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M437" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aragonite</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M438" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> propagated from the standard values suggested by <xref ref-type="bibr" rid="bib1.bibx68" id="text.153"/> are within 0.5 % of the corresponding uncertainty values calculated with CO2SYS-MATLAB v3.2.0 under the same input conditions.  Greater differences in uncertainties calculated under output conditions arise because CO2SYS-MATLAB does not propagate the uncertainties from input-condition equilibrium constants through to output-condition results.</p><?xmltex \hack{\newpage}?>
</sec>
</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Simulated seawater titration</title>
      <p id="d1e9388">PyCO2SYS can be used to reproduce the closed-cell seawater titration datasets simulated by <xref ref-type="bibr" rid="bib1.bibx16" id="text.154"/>.  Each simulated dataset contains pH values for a seawater sample as it is titrated with incremental HCl additions across a pH range from approximately 8 to 3.</p>
      <p id="d1e9394"><xref ref-type="bibr" rid="bib1.bibx16" id="text.155"/> specified exact values for all stoichiometric equilibrium constants.  PyCO2SYS allows these to be provided instead of  being calculated internally from temperature and salinity (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>).  The titration is then simulated by calculating how <inline-formula><mml:math id="M439" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> should change through the titration due to acid addition, accounting for dilution of <inline-formula><mml:math id="M440" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M441" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and all other dissolved solutes by acid addition, and then solving the carbonate system for pH from the so-determined <inline-formula><mml:math id="M442" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M443" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.  Being tested here is the ability to solve for pH from known <inline-formula><mml:math id="M444" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M445" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> across a wide range of pH and <inline-formula><mml:math id="M446" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> values, including negative <inline-formula><mml:math id="M447" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e9504">The first titration dataset, without phosphate, is reproduced perfectly by PyCO2SYS to the number of decimal places reported by <xref ref-type="bibr" rid="bib1.bibx16" id="text.156"/>.  The second titration, with 10 <inline-formula><mml:math id="M448" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M449" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> of total phosphate included, is reproduced perfectly by PyCO2SYS with the exception of three values at different titrant masses.
<list list-type="bullet"><list-item>
      <p id="d1e9532">0.45 g: pH either 6.5<bold>88</bold>221 (Dickson) or 6.5<bold>99</bold>221 (PyCO2SYS)</p></list-item><list-item>
      <p id="d1e9542">0.60 g: pH either 6.366<bold>84</bold>6 (Dickson) or 6.366<bold>48</bold>6 (PyCO2SYS)</p></list-item><list-item>
      <p id="d1e9552">1.25 g: pH either 5.54995<bold>7</bold> (Dickson) or 5.54995<bold>1</bold> (PyCO2SYS)</p></list-item></list></p>
      <p id="d1e9561">The other 48 data points in this titration agree perfectly.  The noted discrepancies occur in non-consecutive data points and are therefore unlikely to all be associated with an error in a particular equilibrium.  Coupled with the nature of the differences (underlined above), which is one or two specific digits switched or replaced rather than the entire number being different, we conclude that these differences most likely represent minor typographical errors and therefore that PyCO2SYS does accurately reproduce these simulations in full.</p>
</sec>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Discussion</title>
<sec id="Ch1.S5.SS1">
  <label>5.1</label><title>Initial pH estimates</title>
      <p id="d1e9580">The aim of our revised scheme for initial pH estimates, following <xref ref-type="bibr" rid="bib1.bibx62" id="text.157"/>, was to find values that were closer to the final solution across a wide range of pH, thus providing a more suitable starting point for the iterative solvers and thereby reducing the number of iterations required to converge at the solution.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5" specific-use="star"><?xmltex \currentcnt{5}?><?xmltex \def\figurename{Figure}?><label>Figure 5</label><caption><p id="d1e9588">Initial estimates (solid lines) and final solutions (dashed lines) of pH from known parameter pairs of total alkalinity (2.3 mmol kg<inline-formula><mml:math id="M450" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) with a range of values for <bold>(a)</bold> dissolved inorganic carbon (<inline-formula><mml:math id="M451" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>), <bold>(b)</bold> aqueous <inline-formula><mml:math id="M452" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> fugacity, <bold>(c)</bold> bicarbonate ion content, and <bold>(d)</bold> carbonate ion content.  The initial estimates track the final solution very closely across the range of typical seawater conditions.  This is expected because these estimates were derived under the assumption that the carbonate and borate contributions are dominant in total alkalinity (Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>), as is true for typical seawater.  The default high and low pH values of 10 and 3 used where the initial estimate equations are not valid for the argument values (Eqs. <xref ref-type="disp-formula" rid="Ch1.E16"/> and <xref ref-type="disp-formula" rid="App1.Ch1.S6.E96"/>) appear as flat sections in <bold>(a)</bold> and <bold>(c)</bold>, respectively.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f05.png"/>

        </fig>

      <?pagebreak page29?><p id="d1e9658"><?xmltex \hack{\newpage}?>We find that the initial pH estimates determined according to the scheme described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/> do follow a pattern similar to the final solutions across wide ranges of argument values, including at the extremes at which the initial-estimate equations become invalid and default pH values are used instead (Fig. <xref ref-type="fig" rid="Ch1.F5"/>).  The number of iterations required to fall beneath the solver's tolerance threshold (<inline-formula><mml:math id="M453" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in pH) is also reduced compared with the original approach of always using an initial pH of 8.  Indeed, for typical ocean conditions we find that the iterative solver often does not alter the initial estimate at all.  Suitable starting points for the iterative solvers are clearly being found.</p>
</sec>
<sec id="Ch1.S5.SS2">
  <label>5.2</label><title>Parameter pairs with multiple solutions</title>
      <p id="d1e9688">It is not strictly true that the marine carbonate system can always be solved from any pair of its parameters.  Some combinations have multiple solutions.  For example, both the <inline-formula><mml:math id="M454" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>–<inline-formula><mml:math id="M455" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M456" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>–<inline-formula><mml:math id="M457" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> pairs can correspond to two different pH values <xref ref-type="bibr" rid="bib1.bibx14 bib1.bibx101 bib1.bibx63" id="paren.158"/>.  In this section, we show how PyCO2SYS is designed to return the root corresponding to typical seawater.  However, it is important to realise that these alternative pH values are real solutions that could be made up in the laboratory or be found in nature; they are not simply mathematical anomalies to be ignored.  We therefore used PyCO2SYS to explore the compositions of these alternatives.</p>
<sec id="Ch1.S5.SS2.SSS1">
  <label>5.2.1</label><title>Total alkalinity and carbonate ion content</title>
      <p id="d1e9763">The iterative <inline-formula><mml:math id="M458" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>–pH solvers can be thought of as working by evaluating <inline-formula><mml:math id="M459" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> at a sequence of different possible pH values until the pH that returns the true <inline-formula><mml:math id="M460" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is found.  This pH is known as the “root” of the <inline-formula><mml:math id="M461" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>–pH equation.  The difference between the true <inline-formula><mml:math id="M462" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and these estimates from pH is the “residual” alkalinity, which is zero at the root.  We find that the equations for initial pH estimates and final pH values have very similar roots and similar residuals in the region around these roots (Fig. <xref ref-type="fig" rid="Ch1.F6"/>).  This similarity is why the initial pH estimates provide such suitable starting points for the final solvers.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6" specific-use="star"><?xmltex \currentcnt{6}?><?xmltex \def\figurename{Figure}?><label>Figure 6</label><caption><p id="d1e9826">Residuals between known <inline-formula><mml:math id="M463" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (2.3 mmol kg<inline-formula><mml:math id="M464" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and (i) carbonate–borate alkalinity (solid lines; <inline-formula><mml:math id="M465" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) from Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S6.E91"/>), (<xref ref-type="disp-formula" rid="Ch1.E4"/>), (<xref ref-type="disp-formula" rid="Ch1.E11"/>), and (<xref ref-type="disp-formula" rid="Ch1.E17"/>), as well as (ii) total alkalinity (dashed lines; <inline-formula><mml:math id="M466" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) from Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), calculated across a range of pH, with a second known parameter of <bold>(a)</bold> dissolved inorganic carbon (2.15 mmol kg<inline-formula><mml:math id="M467" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>), <bold>(b)</bold> <inline-formula><mml:math id="M468" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> fugacity (600 <inline-formula><mml:math id="M469" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm), <bold>(c)</bold> bicarbonate ion content (2011 <inline-formula><mml:math id="M470" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M471" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>), and <bold>(d)</bold> carbonate ion content (116 <inline-formula><mml:math id="M472" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M473" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>), all at a salinity of 35 and temperature of 15 <inline-formula><mml:math id="M474" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C.  Each possible pH value returns a different residual alkalinity, and the true pH root is where the residual alkalinity is zero.  Both the initial estimates and the final solutions find this zero-residual pH root using the <inline-formula><mml:math id="M475" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M476" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> equations, respectively (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS1"/> and <xref ref-type="sec" rid="Ch1.S3.SS2"/>).  The similarity between the <inline-formula><mml:math id="M477" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M478" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> residual curves, particularly around zero residual alkalinity, shows that the initial estimates provide excellent starting values for the subsequent iterative solvers.  In <bold>(d)</bold>, the final iterative solver has two possible roots, where residual alkalinity is zero.  However, the initial estimate has only one root, corresponding to the lower-pH final root.  This ensures that the final solver will always converge to the lower-pH root, which is usually appropriate for the seawater system.</p></caption>
            <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f06.png"/>

          </fig>

      <?pagebreak page30?><p id="d1e10037">For the <inline-formula><mml:math id="M479" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>–<inline-formula><mml:math id="M480" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> parameter pair, there are generally two real pH roots and thus two possible equilibrium states of the marine carbonate system (Fig. <xref ref-type="fig" rid="Ch1.F6"/>d).  We used PyCO2SYS to conceptualise the two pH roots for the <inline-formula><mml:math id="M481" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>–<inline-formula><mml:math id="M482" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> parameter pair, as follows.  The lower-pH root corresponds to typical seawater: a relatively high-<inline-formula><mml:math id="M483" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> system, wherein bicarbonate ions are the main component of <inline-formula><mml:math id="M484" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and carbonate alkalinity (<inline-formula><mml:math id="M485" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>) is the main component of <inline-formula><mml:math id="M486" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.  The higher-pH root corresponds to a low-<inline-formula><mml:math id="M487" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> system, wherein virtually all of <inline-formula><mml:math id="M488" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is in the form of carbonate ion, and <inline-formula><mml:math id="M489" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is dominated by non-carbonate species (Fig. <xref ref-type="fig" rid="Ch1.F7"/>).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><?xmltex \currentcnt{7}?><?xmltex \def\figurename{Figure}?><label>Figure 7</label><caption><p id="d1e10220">Main components of <bold>(a)</bold> total alkalinity (<inline-formula><mml:math id="M490" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and <bold>(b)</bold> dissolved inorganic carbon (<inline-formula><mml:math id="M491" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) at the two possible pH roots for a known parameter pair of <inline-formula><mml:math id="M492" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (2300 <inline-formula><mml:math id="M493" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M494" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and <inline-formula><mml:math id="M495" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> (120 <inline-formula><mml:math id="M496" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M497" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>).  The low-pH root (left) represents typical seawater, with relatively high <inline-formula><mml:math id="M498" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (2143 <inline-formula><mml:math id="M499" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M500" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and both <inline-formula><mml:math id="M501" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M502" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> dominated by the bicarbonate ion (<inline-formula><mml:math id="M503" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>).  The high-pH root (right) has the same <inline-formula><mml:math id="M504" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M505" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, but <inline-formula><mml:math id="M506" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is dominated by hydroxide (<inline-formula><mml:math id="M507" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">OH</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>), and <inline-formula><mml:math id="M508" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is much lower (122 <inline-formula><mml:math id="M509" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M510" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and comprised almost entirely of <inline-formula><mml:math id="M511" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>.  These calculations were carried out at 15 <inline-formula><mml:math id="M512" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, with a practical salinity of 35 and zero nutrients.  If nutrients were present, then like borate (<inline-formula><mml:math id="M513" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>) they would have different contributions to <inline-formula><mml:math id="M514" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> at the different pH roots;  pH is on the total scale (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>).</p></caption>
            <?xmltex \igopts{width=221.931496pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f07.png"/>

          </fig>

      <p id="d1e10545">Which root the solver finds depends on the initial pH estimate and the residual alkalinity–pH slope at that point (Eq. <xref ref-type="disp-formula" rid="Ch1.E1"/>).  This is an advantage of the improved initial pH estimates in PyCO2SYS when working with seawater and similar systems: the initial-estimate equation has only a single real root (Fig. <xref ref-type="fig" rid="Ch1.F6"/>d).  Because the initial estimate is based on equations for a system that only includes carbonate and borate alkalinity (Sect. <xref ref-type="sec" rid="Ch1.S3.SS2.SSS3"/>), the carbonate system contribution to total alkalinity will always dominate, so the single root of the initial estimate will coincide with the lower-pH true root, which is appropriate for seawater.  The solver will thus more robustly find the correct root each time.</p>
      <p id="d1e10554">In typical open-ocean work this is largely academic: the true pH is typically around 8 and the higher root greater than 10, so a constant initial pH estimate of 8 would also return the correct root.  But in more unusual environments, the new algorithm introduced here could help ensure that the solver identifies the correct root.  It is possible for the user to specify a different initial pH estimate to control which root PyCO2SYS obtains (as we did to create Fig. <xref ref-type="fig" rid="Ch1.F7"/>).</p>
</sec>
<sec id="Ch1.S5.SS2.SSS2">
  <label>5.2.2</label><title>Dissolved inorganic carbon and bicarbonate ion content</title>
      <p id="d1e10567">As noted previously <xref ref-type="bibr" rid="bib1.bibx101" id="paren.159"><named-content content-type="pre">e.g.</named-content></xref>, there are also two possible pH solutions for the <inline-formula><mml:math id="M515" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>–<inline-formula><mml:math id="M516" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> parameter pair.  We conceptualise these roots as follows: the remaining portion of <inline-formula><mml:math id="M517" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> not accounted for by <inline-formula><mml:math id="M518" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is either dominantly composed of <inline-formula><mml:math id="M519" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> if the solution's pH is closer to p<inline-formula><mml:math id="M520" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> (i.e. higher) or of <inline-formula><mml:math id="M521" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> if the pH is closer to p<inline-formula><mml:math id="M522" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> (i.e. lower).</p>
      <?pagebreak page31?><p id="d1e10690">Solving from <inline-formula><mml:math id="M523" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M524" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is more straightforward than from <inline-formula><mml:math id="M525" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M526" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> because the unknown pH can be determined from a second-order polynomial, which can be calculated directly using the quadratic formula rather than needing to use an iterative solver.  Here, the root found does not depend upon the value of some initial pH estimate.  Instead, the quadratic formula generates two possible roots, which must be chosen between.  The usual approach, as advised by e.g. <xref ref-type="bibr" rid="bib1.bibx101" id="text.160"/>, is to take the higher-pH root, and this is the default behaviour of PyCO2SYS.  However, PyCO2SYS can be set to return the other root instead, which we used to illustrate the differing chemistry of the two possibilities (Fig. <xref ref-type="fig" rid="Ch1.F8"/>).  <xref ref-type="bibr" rid="bib1.bibx63" id="text.161"/> discusses root-selection strategy for this parameter pair combination in more detail.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8"><?xmltex \currentcnt{8}?><?xmltex \def\figurename{Figure}?><label>Figure 8</label><caption><p id="d1e10766">Main components of <bold>(a)</bold> total alkalinity (<inline-formula><mml:math id="M527" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and <bold>(b)</bold> dissolved inorganic carbon (<inline-formula><mml:math id="M528" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) at the two possible pH roots for a known parameter pair of <inline-formula><mml:math id="M529" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (2100 <inline-formula><mml:math id="M530" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M531" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and bicarbonate ion content (<inline-formula><mml:math id="M532" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>; 1900 <inline-formula><mml:math id="M533" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M534" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>).  The high-pH root (left) represents typical seawater, in which most of the <inline-formula><mml:math id="M535" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> not accounted for by <inline-formula><mml:math id="M536" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is composed of <inline-formula><mml:math id="M537" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>; <inline-formula><mml:math id="M538" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is relatively high (2364 <inline-formula><mml:math id="M539" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M540" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and <inline-formula><mml:math id="M541" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> low (331 <inline-formula><mml:math id="M542" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm).  In the low-pH root (right), the non-<inline-formula><mml:math id="M543" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> portion of <inline-formula><mml:math id="M544" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is instead dominated by <inline-formula><mml:math id="M545" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>; alkalinity is lower (1932 <inline-formula><mml:math id="M546" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M547" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) and <inline-formula><mml:math id="M548" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> high (5008 <inline-formula><mml:math id="M549" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>atm).  These calculations were carried out at 15 <inline-formula><mml:math id="M550" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, with a practical salinity of 35 and zero nutrients;  pH is on the total scale (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>).</p></caption>
            <?xmltex \igopts{width=221.931496pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/15/15/2022/gmd-15-15-2022-f08.png"/>

          </fig>

</sec>
</sec>
<sec id="Ch1.S5.SS3">
  <label>5.3</label><?xmltex \opttitle{Pressure corrections for $p_{{\protect\chem{CO_{2}}}}$}?><title>Pressure corrections for <inline-formula><mml:math id="M551" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e11103">In PyCO2SYS, <inline-formula><mml:math id="M552" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (and by extension, <inline-formula><mml:math id="M553" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M554" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) is always evaluated at a total pressure near 1 atm; it is not corrected for the pressure of the overlying water column (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>).  This approach is consistent with all existing implementations of CO2SYS.  In practice, it means that these values represent the approximate <inline-formula><mml:math id="M555" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> that seawater would have if it were brought to the surface ocean without changing the solution composition – “approximate” because this calculation should use potential temperature, rather than in situ temperature, to retrieve the true value expected after adiabatic decompression <xref ref-type="bibr" rid="bib1.bibx65" id="paren.162"/>.  PyCO2SYS does not calculate potential temperature, but this could be provided by the user in place of in situ temperature.</p>
      <p id="d1e11172">Although a pressure correction for <inline-formula><mml:math id="M556" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (i.e. a pressure correction for <inline-formula><mml:math id="M557" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and the fugacity factor; Appendix <xref ref-type="sec" rid="App1.Ch1.S3.SS1.SSS2"/>) is theoretically possible <xref ref-type="bibr" rid="bib1.bibx96 bib1.bibx65" id="paren.163"/>, it could be argued that this is unnecessary.  First, the vast majority of <inline-formula><mml:math id="M558" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> measurements are carried out only at the surface ocean <xref ref-type="bibr" rid="bib1.bibx4" id="paren.164"><named-content content-type="pre">e.g.</named-content></xref>, in part due to practical constraints of the “gold-standard” equilibrator-based methodology.  Second, the concept of <inline-formula><mml:math id="M559" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> has utility only in the context of air–sea <inline-formula><mml:math id="M560" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> exchange, which takes place only at the surface ocean.</p>
      <p id="d1e11255">However, recent developments in sensor technology are beginning to enable direct measurements of in situ <inline-formula><mml:math id="M561" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> at depth in the ocean <xref ref-type="bibr" rid="bib1.bibx11" id="paren.165"/>.  There is also growing interest in calculating in situ <inline-formula><mml:math id="M562" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> values at depth for<?pagebreak page32?> intercomparison exercises in which the marine carbonate system has been overdetermined by measuring more than two of its core parameters <xref ref-type="bibr" rid="bib1.bibx74" id="paren.166"><named-content content-type="pre">e.g.</named-content></xref>, and the relevant pressure correction is implemented in software tools such as seacarb and mocsy <xref ref-type="bibr" rid="bib1.bibx65 bib1.bibx66" id="paren.167"/>.  Therefore, we  anticipate an increasing need for pressure-corrected <inline-formula><mml:math id="M563" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> values, and while we have kept the approach in PyCO2SYS consistent with other CO2SYS software for now, we consider a robust implementation of these calculations to be an important target for future code development.</p>
</sec>
<sec id="Ch1.S5.SS4">
  <label>5.4</label><title>Computational speed</title>
      <p id="d1e11323">One does not choose to write code in Python for its computational speed.  Therefore, while optimising performance was not ignored in developing PyCO2SYS, it was not a main focus.  We compared the computational speed of PyCO2SYS against that of CO2SYS-MATLAB v3.2.0 across a few different tasks for reference purposes.  We ran CO2SYS-MATLAB in both MATLAB itself (expensive, proprietary software) and  GNU Octave, a free and open-source MATLAB clone.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T5" specific-use="star"><?xmltex \currentcnt{5}?><label>Table 5</label><caption><p id="d1e11329">Comparison of computational speed for various tasks with PyCO2SYS and CO2SYS-MATLAB running in both MATLAB and GNU Octave.  Values shown are the mean <inline-formula><mml:math id="M564" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> standard deviation of seven runs.  The tasks are described in Sect. <xref ref-type="sec" rid="Ch1.S5.SS4"/>.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Task</oasis:entry>
         <oasis:entry colname="col2">Python time (s)</oasis:entry>
         <oasis:entry colname="col3">MATLABtime (s)</oasis:entry>
         <oasis:entry colname="col4">GNU Octave time (s)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">All combinations</oasis:entry>
         <oasis:entry colname="col2">0.95 <inline-formula><mml:math id="M565" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.04</oasis:entry>
         <oasis:entry colname="col3">0.68 <inline-formula><mml:math id="M566" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.11</oasis:entry>
         <oasis:entry colname="col4">0.64 <inline-formula><mml:math id="M567" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.01</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">GLODAP – input only</oasis:entry>
         <oasis:entry colname="col2">23.8 <inline-formula><mml:math id="M568" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.3</oasis:entry>
         <oasis:entry colname="col3">13.1 <inline-formula><mml:math id="M569" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.3</oasis:entry>
         <oasis:entry colname="col4">16.5 <inline-formula><mml:math id="M570" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.9</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">GLODAP – input and output</oasis:entry>
         <oasis:entry colname="col2">49.9 <inline-formula><mml:math id="M571" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 2.7</oasis:entry>
         <oasis:entry colname="col3">13.1 <inline-formula><mml:math id="M572" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.3</oasis:entry>
         <oasis:entry colname="col4">16.5 <inline-formula><mml:math id="M573" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula> 0.9</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e11484">The different tasks are described in the subsequent sections, and the results are summarised in Table <xref ref-type="table" rid="Ch1.T5"/>.  Details of the computer and software used for testing are provided in Appendix <xref ref-type="sec" rid="App1.Ch1.S9"/>.</p>
      <p id="d1e11492">Overall, the PyCO2SYS computation time has the same order of magnitude as CO2SYS-MATLAB, but it is generally somewhat slower.  However, the difference is negligible in practice for relatively small datasets (up to about 10<inline-formula><mml:math id="M574" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:math></inline-formula> data points) but may become more noticeable in larger calculations.  Potential future improvements to PyCO2SYS's computational speed are discussed in Sect. <xref ref-type="sec" rid="Ch1.S5.SS5"/>.</p><?xmltex \hack{\newpage}?>
<sec id="Ch1.S5.SS4.SSS1">
  <label>5.4.1</label><title>All combinations</title>
      <p id="d1e11514">The “all combinations” task was the validation test described in Sect. <xref ref-type="sec" rid="Ch1.S4.SS2.SSS2"/>: that is, a single call to the (Py)CO2SYS function that includes one calculation using every possible combination of parameter pair and optional setting (e.g. choices of parameterisations for the equilibrium constants) for a total of 40 800 data points.  Both input and output conditions were computed.</p>
      <p id="d1e11519">CO2SYS-MATLAB completed this task in a very similar time in both MATLAB and GNU Octave, with the latter slightly faster, and PyCO2SYS took about 1.5 times longer (Table <xref ref-type="table" rid="Ch1.T5"/>).  However, this difference would generally be negligible, as all three implementations of the test had an average run time of less than  1 s.</p>
</sec>
<sec id="Ch1.S5.SS4.SSS2">
  <label>5.4.2</label><title>GLODAP</title>
      <p id="d1e11532">In this task, (Py)CO2SYS was run across the entire GLODAPv2.2021 Merged Master File <xref ref-type="bibr" rid="bib1.bibx44" id="paren.168"/> with <inline-formula><mml:math id="M575" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M576" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> as the known parameter pair.  This file contains a little over 1.3 million data points for each variable.  The results in Table <xref ref-type="table" rid="Ch1.T5"/> show the mean and standard deviation of seven runs in each case.</p>
      <p id="d1e11563">This calculation is an example in which results would only be required under one set of temperature and pressure conditions rather than needing to evaluate both input and output conditions.  This allows PyCO2SYS to be used more efficiently, as it only calculates output-condition results if they are explicitly requested (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>), whereas CO2SYS-MATLAB always calculates its results at both input and output conditions.</p>
      <p id="d1e11568">The results in Table <xref ref-type="table" rid="Ch1.T5"/> show that CO2SYS-MATLAB running in MATLAB was the fastest, with GNU Octave taking longer by a factor of about 1.3.  When calculating only under input conditions, PyCO2SYS took longer by a factor of about 1.8 than CO2SYS-MATLAB running in MATLAB and by 3.8 if both the input- and output-condition calculations were carried out.</p>
</sec>
</sec>
<sec id="Ch1.S5.SS5">
  <label>5.5</label><title>Outlook</title>
      <p id="d1e11583">The Autograd package that PyCO2SYS uses for automatic differentiation is still being maintained, and its most recent release (v1.3, July 2019) is stable, but it is no longer in active development.  Its successor, JAX <xref ref-type="bibr" rid="bib1.bibx5" id="paren.169"/>, has further benefits including “just-in-time” code compilation and parallelisation.  These features could speed up computation speed in PyCO2SYS, especially the components involving automatic differentiation, potentially by several orders of magnitude.  However, JAX cannot currently run natively on the Microsoft Windows operating system, which would greatly restrict the usability of PyCO2SYS for the oceanographic research community.  This limitation is due to JAX's dependence on the separate XLA (accelerated linear<?pagebreak page33?> algebra) compiler rather than being an intrinsic issue with JAX itself.  Should this compatibility issue be resolved in the future, we envision updating PyCO2SYS to use JAX instead of Autograd.  This should be relatively straightforward thanks to the close similarities between the API (application programming interface) of these packages.</p>
      <p id="d1e11589">As future developments are made to PyCO2SYS, we will aim to maintain consistency with other CO2SYS-family tools but cannot guarantee that all new features or updates will be added simultaneously across all implementations.  In practice, the workload required to achieve this is not currently feasible, and we would not wish to hold back development because of the time required to replicate changes across multiple implementations.  That said, the results should remain consistent enough that users can select which implementation to use based on their preferred software environment rather than the other way around.</p>
      <p id="d1e11592">This ambition could also extend beyond the CO2SYS family of software.  Independently developed tools for solving the marine carbonate system exist in other languages, such as seacarb in R <xref ref-type="bibr" rid="bib1.bibx28" id="paren.170"/> and mocsy in Fortran <xref ref-type="bibr" rid="bib1.bibx65" id="paren.171"/>.  These give sufficiently consistent results with each other that the selection of which tool to use does not affect scientific interpretation <xref ref-type="bibr" rid="bib1.bibx66" id="paren.172"/>, and we have shown that PyCO2SYS is, and will remain, no exception.  Even so, development and validation of PyCO2SYS so far have focused on comparisons with only CO2SYS-family software for practical reasons.  Now that the basis of PyCO2SYS is established, we would welcome more direct interaction with the groups developing these other tools, working towards a set of marine–carbonate system-solving tools that return identical results regardless of the software platform.  There can be a great advantage in having independent implementations led by different groups of researchers and developers.  For example, this approach can help catch bugs and typographical errors, especially if each group extracts equations and parameterisations from the original literature instead of copying existing code.  Working together, the groups would have a greater pool of knowledge and experience to identify errors in the literature (see e.g. <xref ref-type="bibr" rid="bib1.bibx46" id="altparen.173"/>, their Appendix A), which are often unpublished and known only through personal communications.  But calculations must be regularly compared with each other if this advantage is to be realised.</p>
      <p id="d1e11607">Thanks largely to the efforts of <xref ref-type="bibr" rid="bib1.bibx68" id="text.174"/>, many tools now have an uncertainty propagation capability, as does PyCO2SYS.  However, we still lack meaningful and statistically equivalent estimates for the actual uncertainties in the equilibrium constants.  The software therefore stands ahead of our knowledge: as more work is done to robustly quantify these uncertainties, the tools are already in place to propagate them through to all marine carbonate system calculations.</p>
      <p id="d1e11614">As development of PyCO2SYS continues, we do not anticipate changing its fundamental approach to solving the marine carbonate system, but we will try to incorporate the latest research, including keeping up to date with new parameterisations, for example of stoichiometric equilibrium constants <xref ref-type="bibr" rid="bib1.bibx86 bib1.bibx80" id="paren.175"><named-content content-type="pre">e.g.</named-content></xref>.  Integration with a speciation model that can determine the equilibrium constants based on chemical activities, rather than parameterising these based on salinity, is an area of interest <xref ref-type="bibr" rid="bib1.bibx89" id="paren.176"/> but would likely require such substantial changes  to constitute a separate software tool.  We do envision further additions to the main chemical speciation function in PyCO2SYS, for example to better represent the impact of organic contributions to alkalinity <xref ref-type="bibr" rid="bib1.bibx10 bib1.bibx61 bib1.bibx43 bib1.bibx1 bib1.bibx90" id="paren.177"><named-content content-type="pre">e.g.</named-content></xref> – noting that a simplified representation of such extra components can already be modelled in PyCO2SYS (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS1"/>).</p>
      <p id="d1e11632">Through all these efforts, we aim to ensure that PyCO2SYS remains a reliable and comprehensive tool for analysing seawater chemistry from samples and experiments in the laboratory through to the changing marine carbonate system across the global ocean.</p>
</sec>
</sec>

      
      </body>
    <back><app-group>

<app id="App1.Ch1.S1">
  <?xmltex \currentcnt{A}?><label>Appendix A</label><title>pH scales and conversions</title>
      <?pagebreak page34?><p id="d1e11647">The pH scales in PyCO2SYS are free (pH<inline-formula><mml:math id="M577" display="inline"><mml:msub><mml:mi/><mml:mi mathvariant="normal">F</mml:mi></mml:msub></mml:math></inline-formula>), total (pH<inline-formula><mml:math id="M578" display="inline"><mml:msub><mml:mi/><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:math></inline-formula>), seawater (pH<inline-formula><mml:math id="M579" display="inline"><mml:msub><mml:mi/><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:math></inline-formula>), and NBS (pH<inline-formula><mml:math id="M580" display="inline"><mml:msub><mml:mi/><mml:mi mathvariant="normal">N</mml:mi></mml:msub></mml:math></inline-formula>), defined following e.g. <xref ref-type="bibr" rid="bib1.bibx101" id="text.178"/> and <xref ref-type="bibr" rid="bib1.bibx93" id="text.179"/>.

              <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M581" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S1.E25"><mml:mtd><mml:mtext>A1</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi mathvariant="normal">F</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo mathvariant="italic">{</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E26"><mml:mtd><mml:mtext>A2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo mathvariant="italic">{</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E27"><mml:mtd><mml:mtext>A3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo mathvariant="italic">{</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E28"><mml:mtd><mml:mtext>A4</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi mathvariant="normal">N</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo mathvariant="italic">{</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          Here, <inline-formula><mml:math id="M582" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the chemical activity coefficient for <inline-formula><mml:math id="M583" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> (Table <xref ref-type="table" rid="Ch1.T3"/>).  Note that in PyCO2SYS, <inline-formula><mml:math id="M584" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> in all these definitions is a substance content (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>). The pH values and stoichiometric equilibrium constants (<inline-formula><mml:math id="M585" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>) are thus converted between these different pH scales using the following factors.

              <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M586" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S1.E29"><mml:mtd><mml:mtext>A5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">F</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>;</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mi mathvariant="normal">F</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">F</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E30"><mml:mtd><mml:mtext>A6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">F</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">F</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">F</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E31"><mml:mtd><mml:mtext>A7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">N</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">N</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">N</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          Here, <inline-formula><mml:math id="M587" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the hydrogen ion activity calculated from temperature and salinity following either <xref ref-type="bibr" rid="bib1.bibx70" id="text.180"/> or <xref ref-type="bibr" rid="bib1.bibx87" id="text.181"/> (see Table <xref ref-type="table" rid="Ch1.T3"/>).  The different scales are denoted by the subscript and superscript letters, with F for free, T for total, S for seawater, and N for NBS.  Convert from any pH scale <inline-formula><mml:math id="M588" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> to any other pH scale <inline-formula><mml:math id="M589" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> using these factors:
          <disp-formula id="App1.Ch1.S1.E32" content-type="numbered"><label>A8</label><mml:math id="M590" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>B</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>A</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">p</mml:mi><mml:msubsup><mml:mi>Y</mml:mi><mml:mi>A</mml:mi><mml:mi>B</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>A</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi>Y</mml:mi><mml:mi>A</mml:mi><mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        or alternatively and equivalently
          <disp-formula id="App1.Ch1.S1.E33" content-type="numbered"><label>A9</label><mml:math id="M591" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msub><mml:mo>]</mml:mo><mml:mi>B</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mi>A</mml:mi><mml:mi>B</mml:mi></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msub><mml:mo>]</mml:mo><mml:mi>A</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
        The equations above are used in the same way to convert <inline-formula><mml:math id="M592" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> values between pH scales.</p>
</app>

<app id="App1.Ch1.S2">
  <?xmltex \currentcnt{B}?><label>Appendix B</label><title>Total alkalinity and its components</title>
      <p id="d1e12396">Each equation here is written assuming that <inline-formula><mml:math id="M593" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and all equilibrium constants (<inline-formula><mml:math id="M594" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>) are supplied on the same pH scale as each other.</p>
<sec id="App1.Ch1.S2.SS1">
  <label>B1</label><title>Total alkalinity</title>
      <p id="d1e12433">Total alkalinity (<inline-formula><mml:math id="M595" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) is calculated as the sum of all its components <xref ref-type="bibr" rid="bib1.bibx16 bib1.bibx98 bib1.bibx83" id="paren.182"/>.
            <disp-formula id="App1.Ch1.S2.E34" content-type="numbered"><label>B1</label><mml:math id="M596" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          Equations for all the individual alkalinity components (<inline-formula><mml:math id="M597" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M598" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, etc.) are given in the subsequent sections in terms of pH-independent total substance contents (<inline-formula><mml:math id="M599" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M600" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, etc.) and [<inline-formula><mml:math id="M601" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>].</p>
</sec>
<sec id="App1.Ch1.S2.SS2">
  <label>B2</label><title>Water</title>
      <p id="d1e12635"><disp-formula id="App1.Ch1.S2.E35" content-type="numbered"><label>BR1</label><mml:math id="M602" display="block"><mml:mrow><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">OH</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">OH</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E36" content-type="numbered"><label>B2</label><mml:math id="M603" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">OH</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S2.SS3">
  <label>B3</label><title>Carbonic acid</title>
      <p id="d1e12778"><disp-formula id="App1.Ch1.S2.E37" content-type="numbered"><label>B3</label><mml:math id="M604" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M605" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S2.Ex1"><mml:mtd><mml:mtext>BR2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex2"><mml:mtd><mml:mtext>BR3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e13046"><inline-formula><mml:math id="M606" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> can be expressed in terms of <inline-formula><mml:math id="M607" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and any of <inline-formula><mml:math id="M608" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M609" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M610" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M611" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M612" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S2.Ex3"><mml:mtd><mml:mtext>B4</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex4"><mml:mtd><mml:mtext>B5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex5"><mml:mtd><mml:mtext>B6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex6"><mml:mtd><mml:mtext>B7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex7"><mml:mtd><mml:mtext>B8</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e13621">Undissociated <inline-formula><mml:math id="M613" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is considered negligible and thus not explicitly modelled, but rather implicitly included as part of the [<inline-formula><mml:math id="M614" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>] term <xref ref-type="bibr" rid="bib1.bibx101" id="paren.183"/>.</p><?xmltex \hack{\newpage}?>
</sec>
<?pagebreak page35?><sec id="App1.Ch1.S2.SS4">
  <label>B4</label><title>Boric acid</title>
      <p id="d1e13670"><disp-formula id="App1.Ch1.S2.E38" content-type="numbered"><label>B9</label><mml:math id="M615" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E39" content-type="numbered"><label>BR4</label><mml:math id="M616" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">O</mml:mi></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E40" content-type="numbered"><label>B10</label><mml:math id="M617" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S2.SS5">
  <label>B5</label><title>Phosphoric acid</title>
      <p id="d1e13922"><disp-formula id="App1.Ch1.S2.E41" content-type="numbered"><label>B11</label><mml:math id="M618" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HPO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M619" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S2.Ex8"><mml:mtd><mml:mtext>BR5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex9"><mml:mtd><mml:mtext>BR6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HPO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HPO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.Ex10"><mml:mtd><mml:mtext>BR7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HPO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HPO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E42" content-type="numbered"><label>B12</label><mml:math id="M620" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{9.3}{9.3}\selectfont$\displaystyle}?><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HPO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">PO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{9.3}{9.3}\selectfont$\displaystyle}?><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S2.SS6">
  <label>B6</label><title>Orthosilicic acid</title>
      <p id="d1e14600"><disp-formula id="App1.Ch1.S2.E43" content-type="numbered"><label>B13</label><mml:math id="M621" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E44" content-type="numbered"><label>BR8</label><mml:math id="M622" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E45" content-type="numbered"><label>B14</label><mml:math id="M623" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e14827">Further deprotonation of <inline-formula><mml:math id="M624" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="normal">SiO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is considered negligible and thus not modelled.</p>
</sec>
<sec id="App1.Ch1.S2.SS7">
  <label>B7</label><title>Ammonium</title>
      <p id="d1e14856"><disp-formula id="App1.Ch1.S2.E46" content-type="numbered"><label>B15</label><mml:math id="M625" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>+</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E47" content-type="numbered"><label>BR9</label><mml:math id="M626" display="block"><mml:mrow><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>+</mml:mo></mml:msubsup></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>+</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E48" content-type="numbered"><label>B16</label><mml:math id="M627" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p><?xmltex \hack{\newpage}?>
</sec>
<?pagebreak page36?><sec id="App1.Ch1.S2.SS8">
  <label>B8</label><title>Sulfide</title>
      <p id="d1e15065"><disp-formula id="App1.Ch1.S2.E49" content-type="numbered"><label>B17</label><mml:math id="M628" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">HS</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E50" content-type="numbered"><label>BR10</label><mml:math id="M629" display="block"><mml:mrow><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">HS</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">HS</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E51" content-type="numbered"><label>B18</label><mml:math id="M630" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">HS</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e15277">Further deprotonation of <inline-formula><mml:math id="M631" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">HS</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is considered negligible and thus not modelled <xref ref-type="bibr" rid="bib1.bibx81" id="paren.184"/>.</p>
</sec>
<sec id="App1.Ch1.S2.SS9">
  <label>B9</label><title>Sulfate</title>
      <p id="d1e15302"><disp-formula id="App1.Ch1.S2.E52" content-type="numbered"><label>B19</label><mml:math id="M632" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E53" content-type="numbered"><label>BR11</label><mml:math id="M633" display="block"><mml:mrow><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E54" content-type="numbered"><label>B20</label><mml:math id="M634" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HSO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>/</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e15516">Undissociated <inline-formula><mml:math id="M635" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is considered negligible and thus not modelled.</p>
</sec>
<sec id="App1.Ch1.S2.SS10">
  <label>B10</label><title>Fluoride</title>
      <p id="d1e15544"><disp-formula id="App1.Ch1.S2.E55" content-type="numbered"><label>B21</label><mml:math id="M636" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">F</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E56" content-type="numbered"><label>BR12</label><mml:math id="M637" display="block"><mml:mrow><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">F</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">F</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E57" content-type="numbered"><label>B22</label><mml:math id="M638" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mo>/</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S2.SS11">
  <label>B11</label><title>Arbitrary additional components</title>
      <p id="d1e15716"><disp-formula id="App1.Ch1.S2.E58" content-type="numbered"><label>B23</label><mml:math id="M639" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="italic">α</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E59" content-type="numbered"><label>BR13</label><mml:math id="M640" display="block"><mml:mrow><mml:mrow class="chem"><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mo>⇌</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="italic">α</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>+</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="italic">α</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            <disp-formula id="App1.Ch1.S2.E60" content-type="numbered"><label>B24</label><mml:math id="M641" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="cases" columnspacing="1em" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:mi mathvariant="normal">H</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">4.5</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="italic">α</mml:mi><mml:mo>-</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">4.5</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e15919">The reactions and equations for the second additional component <inline-formula><mml:math id="M642" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> and its alkalinity contribution <inline-formula><mml:math id="M643" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are identical to those given for <inline-formula><mml:math id="M644" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> above.  PyCO2SYS automatically determines how to modify the alkalinity equation following Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E60"/>) based on the user-provided <inline-formula><mml:math id="M645" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M646" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="italic">β</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> values, with a zero level of protons corresponding to a p<inline-formula><mml:math id="M647" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> of 4.5 <xref ref-type="bibr" rid="bib1.bibx98" id="paren.185"/>.</p>
      <p id="d1e15990">Though the definition of alkalinity <xref ref-type="bibr" rid="bib1.bibx16" id="paren.186"/> states that species are separated into proton acceptors and donors based on their dissociation constant at zero ionic strength and 25 <inline-formula><mml:math id="M648" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, we use the user-defined dissociation constants at the given conditions because one cannot convert arbitrary dissociation constants to their alkalinity-relevant values.  Interpretations of results when arbitrary components are supplied to PyCO2SYS with p<inline-formula><mml:math id="M649" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> values close to 4.5 should consider this nuance.</p>
</sec>
</app>

<app id="App1.Ch1.S3">
  <?xmltex \currentcnt{C}?><label>Appendix C</label><title>Solving the core marine carbonate system</title>
      <p id="d1e16025">Here, we lay out all the equations that are used to convert between different carbonate system parameters in PyCO2SYS.  These follow long-established approaches from the literature <xref ref-type="bibr" rid="bib1.bibx101 bib1.bibx20" id="paren.187"/>.  The equations are organised based on which parameter pair is initially known.</p>
<sec id="App1.Ch1.S3.SS1">
  <label>C1</label><title>General considerations</title>
<sec id="App1.Ch1.S3.SS1.SSS1">
  <label>C1.1</label><?xmltex \opttitle{pH to ${[}{\protect\chem{H^{+}}}{]}$ conversions}?><title>pH to <inline-formula><mml:math id="M650" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> conversions</title>
      <p id="d1e16062">As the stoichiometric equilibrium constants are converted to the user-specified pH scale, i.e. consistent with the pH values, pH and <inline-formula><mml:math id="M651" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> are interconverted in the equations throughout this section using
              <disp-formula id="App1.Ch1.S3.E61" content-type="numbered"><label>C1</label><mml:math id="M652" display="block"><mml:mrow><mml:mi mathvariant="normal">pH</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>
            regardless of which pH scale is being used.</p>
</sec>
<sec id="App1.Ch1.S3.SS1.SSS2">
  <label>C1.2</label><?xmltex \opttitle{Known $p_{{\protect\chem{CO_{2}}}}$, $x_{{\protect\chem{CO_{2}}}}$ or {[}{$\protect\chem{CO_{2}(aq)}$}{]}}?><title>Known <inline-formula><mml:math id="M653" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M654" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> or [<inline-formula><mml:math id="M655" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>]</title>
      <p id="d1e16164">If one of <inline-formula><mml:math id="M656" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M657" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, or <inline-formula><mml:math id="M658" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is in the known parameter pair, then its values are first converted to <inline-formula><mml:math id="M659" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> as follows.</p>
      <p id="d1e16234">For known <inline-formula><mml:math id="M660" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>,
              <disp-formula id="App1.Ch1.S3.E62" content-type="numbered"><label>C2</label><mml:math id="M661" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            where <inline-formula><mml:math id="M662" display="inline"><mml:mi>G</mml:mi></mml:math></inline-formula> is the fugacity factor (Table <xref ref-type="table" rid="Ch1.T2"/>), typically near 0.997.</p>
      <p id="d1e16291">For known <inline-formula><mml:math id="M663" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>,
              <disp-formula id="App1.Ch1.S3.E63" content-type="numbered"><label>C3</label><mml:math id="M664" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            where <inline-formula><mml:math id="M665" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the humidity correction (Table <xref ref-type="table" rid="Ch1.T3"/>):
              <disp-formula id="App1.Ch1.S3.E64" content-type="numbered"><label>C4</label><mml:math id="M666" display="block"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            in which <inline-formula><mml:math id="M667" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is total atmospheric pressure (assumed to be 1 atm unless a different value is provided by the user) and <inline-formula><mml:math id="M668" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the water vapour pressure <xref ref-type="bibr" rid="bib1.bibx97" id="paren.188"/>.</p>
      <?pagebreak page37?><p id="d1e16411">For known <inline-formula><mml:math id="M669" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>,
              <disp-formula id="App1.Ch1.S3.E65" content-type="numbered"><label>C5</label><mml:math id="M670" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            where <inline-formula><mml:math id="M671" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is the solubility factor for <inline-formula><mml:math id="M672" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> (Table <xref ref-type="table" rid="Ch1.T3"/>).</p>
      <p id="d1e16508">The calculation steps given below for <inline-formula><mml:math id="M673" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then followed to solve the core marine carbonate system.  Afterwards, <inline-formula><mml:math id="M674" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M675" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M676" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> are calculated where they were not in the original known parameter pair: <inline-formula><mml:math id="M677" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M678" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are calculated using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E62"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E63"/>), while <inline-formula><mml:math id="M679" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is calculated by difference using the definition of <inline-formula><mml:math id="M680" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E37"/>).</p>
</sec>
</sec>
<sec id="App1.Ch1.S3.SS2">
  <label>C2</label><title>Solving routines</title>
<sec id="App1.Ch1.S3.SS2.SSS1">
  <label>C2.1</label><?xmltex \opttitle{From $A_{\mathrm{T}}$ and $T_{{\protect\chem{C}}}$}?><title>From <inline-formula><mml:math id="M681" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M682" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e16688">An initial pH estimate is determined as described in Appendix <xref ref-type="sec" rid="App1.Ch1.S6"/>.  The estimate is then revised using the iterative approach of Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>, in which the <inline-formula><mml:math id="M683" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is calculated from Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) for <inline-formula><mml:math id="M684" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> substituting in Eq. (B5) for the <inline-formula><mml:math id="M685" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> term.  Equation (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is the automatically differentiated with respect to pH to obtain the <inline-formula><mml:math id="M686" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>).</p>
      <p id="d1e16766">The components of <inline-formula><mml:math id="M687" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M688" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and the final pH value.

                  <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M689" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S3.E66"><mml:mtd><mml:mtext>C6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S3.E67"><mml:mtd><mml:mtext>C7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S3.E68"><mml:mtd><mml:mtext>C8</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS2">
  <label>C2.2</label><?xmltex \opttitle{From $A_{\mathrm{T}}$ and pH}?><title>From <inline-formula><mml:math id="M690" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and pH</title>
      <p id="d1e17111">First, we determine <inline-formula><mml:math id="M691" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> from known <inline-formula><mml:math id="M692" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and pH by using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>).  <inline-formula><mml:math id="M693" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated from <inline-formula><mml:math id="M694" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.
              <disp-formula id="App1.Ch1.S3.E69" content-type="numbered"><label>C9</label><mml:math id="M695" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>
            The components of <inline-formula><mml:math id="M696" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M697" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
      <p id="d1e17301">There is an upper limit on pH for each given <inline-formula><mml:math id="M698" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> value, above which negative <inline-formula><mml:math id="M699" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> would be required to balance Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>).  PyCO2SYS prints a warning if such an impossible pairing is used and returns NaN (not a number) for <inline-formula><mml:math id="M700" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (and all other results calculated from it) instead of a negative value.</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS3">
  <label>C2.3</label><?xmltex \opttitle{From $A_{\mathrm{T}}$ and $f_{{\protect\chem{CO_{2}}}}$}?><title>From <inline-formula><mml:math id="M701" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M702" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e17375">An initial pH estimate is determined as described in Appendix <xref ref-type="sec" rid="App1.Ch1.S6"/>.  The estimate is then revised using the iterative approach of Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>, in which the <inline-formula><mml:math id="M703" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is calculated from Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) for <inline-formula><mml:math id="M704" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> substituting in Eq. (B6) for the <inline-formula><mml:math id="M705" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> term.  Equation (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is the automatically differentiated with respect to pH to obtain the <inline-formula><mml:math id="M706" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>).</p>
      <p id="d1e17453"><inline-formula><mml:math id="M707" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated from <inline-formula><mml:math id="M708" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and pH following Sect. <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS2"/> and its remaining unknown components with Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS4">
  <label>C2.4</label><?xmltex \opttitle{From $A_{\mathrm{T}}$ and ${[}{\protect\chem{CO_{3}^{{2-}}}}{]}$}?><title>From <inline-formula><mml:math id="M709" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M710" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e17524">An initial pH estimate is determined as described in Appendix <xref ref-type="sec" rid="App1.Ch1.S6"/>.  The estimate is then revised using the iterative approach of Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>, in which the <inline-formula><mml:math id="M711" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is calculated from Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) for <inline-formula><mml:math id="M712" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> substituting in Eq. (B8) for the <inline-formula><mml:math id="M713" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> term.  Equation (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is the automatically differentiated with respect to pH to obtain the <inline-formula><mml:math id="M714" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>).  The lower of the two pH roots is returned by default, as discussed in Sect. <xref ref-type="sec" rid="Ch1.S5.SS2.SSS2"/>.</p>
      <p id="d1e17604"><inline-formula><mml:math id="M715" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated from <inline-formula><mml:math id="M716" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and pH following Sect. <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS2"/> and its remaining unknown components with Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS5">
  <label>C2.5</label><?xmltex \opttitle{From $A_{\mathrm{T}}$ and ${[}{\protect\chem{HCO_{3}^{-}}}{]}$}?><title>From <inline-formula><mml:math id="M717" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M718" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e17673">An initial pH estimate is determined as described in Appendix <xref ref-type="sec" rid="App1.Ch1.S6"/>.  The estimate is then revised using the iterative approach of Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>, in which the <inline-formula><mml:math id="M719" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">pH</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is calculated from Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) for <inline-formula><mml:math id="M720" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> substituting in Eq. (B7) for the <inline-formula><mml:math id="M721" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> term.  Equation (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is the automatically differentiated with respect to pH to obtain the <inline-formula><mml:math id="M722" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>).</p>
      <p id="d1e17751"><inline-formula><mml:math id="M723" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated from <inline-formula><mml:math id="M724" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and pH following Sect. <xref ref-type="sec" rid="App1.Ch1.S3.SS2.SSS2"/> and its remaining unknown components with Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS6">
  <label>C2.6</label><?xmltex \opttitle{From $T_{{\protect\chem{C}}}$ and pH}?><title>From <inline-formula><mml:math id="M725" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH</title>
      <p id="d1e17803">First, <inline-formula><mml:math id="M726" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from <inline-formula><mml:math id="M727" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>).  The components of <inline-formula><mml:math id="M728" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M729" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS7">
  <label>C2.7</label><?xmltex \opttitle{From $T_{{\protect\chem{C}}}$ and $f_{{\protect\chem{CO_{2}}}}$}?><title>From <inline-formula><mml:math id="M730" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M731" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e17897">First, pH is calculated from <inline-formula><mml:math id="M732" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M733" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E70" content-type="numbered"><label>C10</label><mml:math id="M734" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>r</mml:mi><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>r</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>r</mml:mi></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>r</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            where
              <disp-formula id="App1.Ch1.S3.E71" content-type="numbered"><label>C11</label><mml:math id="M735" display="block"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>⋅</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e18060"><inline-formula><mml:math id="M736" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the remaining unknown components of <inline-formula><mml:math id="M737" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M738" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p><?xmltex \hack{\newpage}?>
</sec>
<?pagebreak page38?><sec id="App1.Ch1.S3.SS2.SSS8">
  <label>C2.8</label><?xmltex \opttitle{From $T_{{\protect\chem{C}}}$ and ${[}{\protect\chem{CO_{3}^{{2-}}}}{]}$}?><title>From <inline-formula><mml:math id="M739" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M740" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e18145">First, pH is calculated from <inline-formula><mml:math id="M741" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M742" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E72" content-type="numbered"><label>C12</label><mml:math id="M743" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>*</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msqrt></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e18278"><inline-formula><mml:math id="M744" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the remaining unknown components of <inline-formula><mml:math id="M745" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M746" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS9">
  <label>C2.9</label><?xmltex \opttitle{From $T_{{\protect\chem{C}}}$ and ${[}{\protect\chem{HCO_{3}^{-}}}{]}$}?><title>From <inline-formula><mml:math id="M747" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M748" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e18359">First, pH is calculated from <inline-formula><mml:math id="M749" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M750" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E73" content-type="numbered"><label>C13</label><mml:math id="M751" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mstyle scriptlevel="+1"><mml:mtable class="substack"><mml:mtr><mml:mtd><?xmltex \hack{\textstyle}?><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>-</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><?xmltex \hack{\textstyle}?><mml:msqrt><mml:mrow><mml:mo>(</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:msqrt></mml:mtd></mml:mtr></mml:mtable></mml:mstyle><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>/</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e18532"><inline-formula><mml:math id="M752" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the remaining unknown components of <inline-formula><mml:math id="M753" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M754" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS10">
  <label>C2.10</label><?xmltex \opttitle{From pH and $f_{{\protect\chem{CO_{2}}}}$}?><title>From pH and <inline-formula><mml:math id="M755" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e18598">First, <inline-formula><mml:math id="M756" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from pH and <inline-formula><mml:math id="M757" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E74" content-type="numbered"><label>C14</label><mml:math id="M758" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>⋅</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e18728"><inline-formula><mml:math id="M759" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the remaining unknown components of <inline-formula><mml:math id="M760" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M761" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS11">
  <label>C2.11</label><?xmltex \opttitle{From pH and ${[}{\protect\chem{CO_{3}^{{2-}}}}{]}$}?><title>From pH and <inline-formula><mml:math id="M762" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e18801">First, <inline-formula><mml:math id="M763" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from pH and <inline-formula><mml:math id="M764" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E75" content-type="numbered"><label>C15</label><mml:math id="M765" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e18911"><inline-formula><mml:math id="M766" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated from pH and <inline-formula><mml:math id="M767" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E74"/>).  Finally, <inline-formula><mml:math id="M768" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M769" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> are calculated from <inline-formula><mml:math id="M770" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>), respectively.</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS12">
  <label>C2.12</label><?xmltex \opttitle{From pH and ${[}{\protect\chem{HCO_{3}^{-}}}{]}$}?><title>From pH and <inline-formula><mml:math id="M771" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e19014">First, <inline-formula><mml:math id="M772" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from pH and <inline-formula><mml:math id="M773" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E76" content-type="numbered"><label>C16</label><mml:math id="M774" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e19124"><inline-formula><mml:math id="M775" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the remaining unknown components of <inline-formula><mml:math id="M776" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then calculated from <inline-formula><mml:math id="M777" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS13">
  <label>C2.13</label><?xmltex \opttitle{From $f_{{\protect\chem{CO_{2}}}}$ and ${[}{\protect\chem{CO_{3}^{{2-}}}}{]}$}?><title>From <inline-formula><mml:math id="M778" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M779" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e19211">First, pH is calculated from <inline-formula><mml:math id="M780" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M781" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E77" content-type="numbered"><label>C17</label><mml:math id="M782" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:msqrt><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>⋅</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:msqrt><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e19321"><inline-formula><mml:math id="M783" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated from pH and <inline-formula><mml:math id="M784" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E74"/>).  Finally, <inline-formula><mml:math id="M785" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M786" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> are calculated from <inline-formula><mml:math id="M787" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E67"/>), respectively.</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS14">
  <label>C2.14</label><?xmltex \opttitle{From $f_{{\protect\chem{CO_{2}}}}$ and ${[}{\protect\chem{HCO_{3}^{-}}}{]}$}?><title>From <inline-formula><mml:math id="M788" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M789" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e19439">First, <inline-formula><mml:math id="M790" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is calculated from <inline-formula><mml:math id="M791" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M792" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E78" content-type="numbered"><label>C18</label><mml:math id="M793" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>⋅</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e19571">The pH is then calculated from <inline-formula><mml:math id="M794" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M795" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E77"/>).  Next, <inline-formula><mml:math id="M796" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from pH and <inline-formula><mml:math id="M797" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E74"/>).  Finally, <inline-formula><mml:math id="M798" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from <inline-formula><mml:math id="M799" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>).</p>
</sec>
<sec id="App1.Ch1.S3.SS2.SSS15">
  <label>C2.15</label><?xmltex \opttitle{From ${[}{\protect\chem{CO_{3}^{{2-}}}}{]}$ and ${[}{\protect\chem{HCO_{3}^{-}}}{]}$}?><title>From <inline-formula><mml:math id="M800" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M801" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e19714">First, <inline-formula><mml:math id="M802" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from <inline-formula><mml:math id="M803" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M804" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using
              <disp-formula id="App1.Ch1.S3.E79" content-type="numbered"><label>C19</label><mml:math id="M805" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:msup><mml:mo>]</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e19844">The pH is then calculated from <inline-formula><mml:math id="M806" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M807" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E77"/>).  Next, <inline-formula><mml:math id="M808" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from pH and <inline-formula><mml:math id="M809" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E74"/>).  Finally, <inline-formula><mml:math id="M810" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from <inline-formula><mml:math id="M811" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and pH using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>).</p>
</sec>
</sec>
</app>

<app id="App1.Ch1.S4">
  <?xmltex \currentcnt{D}?><label>Appendix D</label><title>Other marine carbonate system variables</title>
      <p id="d1e19950">Calcite and aragonite saturation states (<inline-formula><mml:math id="M812" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula>) are calculated from the definition
          <disp-formula id="App1.Ch1.S4.E80" content-type="numbered"><label>D1</label><mml:math id="M813" display="block"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">Ca</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo></mml:mrow><mml:mo>]</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        where <inline-formula><mml:math id="M814" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is the solubility product, a function of salinity, temperature, and pressure that is different for each mineral (Table <xref ref-type="table" rid="Ch1.T2"/>).</p>
      <p id="d1e20025">The “substrate : inhibitor ratio” of <xref ref-type="bibr" rid="bib1.bibx3" id="text.189"/> is calculated from the bicarbonate and free hydrogen ion contents.
          <disp-formula id="App1.Ch1.S4.E81" content-type="numbered"><label>D2</label><mml:math id="M815" display="block"><mml:mrow><mml:mi mathvariant="normal">SIR</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>
        Note that in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S4.E81"/>), the <inline-formula><mml:math id="M816" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> term is always calculated on the free pH scale of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S1.E25"/>).</p>
</app>

<?pagebreak page39?><app id="App1.Ch1.S5">
  <?xmltex \currentcnt{E}?><label>Appendix E</label><title>Buffer factors with automatic differentiation</title>
<sec id="App1.Ch1.S5.SS1">
  <label>E1</label><title>Buffer factors of Egleston et al. (2010)</title>
      <p id="d1e20102">To evaluate the buffer factors of <xref ref-type="bibr" rid="bib1.bibx24" id="text.190"/> with automatic differentiation (AD), we first evaluated the following partial differentials (with the subscripted variable held constant):
<list list-type="bullet"><list-item>
      <p id="d1e20110"><inline-formula><mml:math id="M817" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by AD of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E69"/>) with respect to pH;</p></list-item><list-item>
      <p id="d1e20146"><inline-formula><mml:math id="M818" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by AD of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>), substituting <inline-formula><mml:math id="M819" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by Eq. (B5), with respect to pH;</p></list-item><list-item>
      <p id="d1e20194"><inline-formula><mml:math id="M820" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by taking the natural log of the product of <inline-formula><mml:math id="M821" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), then AD with respect to pH;</p></list-item><list-item>
      <p id="d1e20256"><inline-formula><mml:math id="M822" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by taking the natural log of the product of <inline-formula><mml:math id="M823" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E66"/>), substituting <inline-formula><mml:math id="M824" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>), then AD with respect to pH.</p></list-item></list>
The buffer factors <inline-formula><mml:math id="M825" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M826" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M827" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M828" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are thus defined <xref ref-type="bibr" rid="bib1.bibx24" id="paren.191"/> and calculated in PyCO2SYS.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M829" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S5.E82"><mml:mtd><mml:mtext>E1</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S5.E83"><mml:mtd><mml:mtext>E2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S5.E84"><mml:mtd><mml:mtext>E3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>e</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S5.E85"><mml:mtd><mml:mtext>E4</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>e</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            Here, <inline-formula><mml:math id="M830" display="inline"><mml:mi>e</mml:mi></mml:math></inline-formula> is Euler's number (2.71828<inline-formula><mml:math id="M831" display="inline"><mml:mi mathvariant="normal">…</mml:mi></mml:math></inline-formula>).</p>
      <p id="d1e20892">For the saturation-state buffers <inline-formula><mml:math id="M832" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ω</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M833" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ω</mml:mi><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> we also evaluate
<list list-type="bullet"><list-item>
      <p id="d1e20928"><inline-formula><mml:math id="M834" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> by AD of the natural log of <inline-formula><mml:math id="M835" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aragonite</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, calculated with Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S4.E80"/>), with respect to <inline-formula><mml:math id="M836" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> (note that this is the same value as for <inline-formula><mml:math id="M837" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">calcite</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, due to the logarithm and the fact that these terms differ by the constant ratio of their solubility products);</p></list-item><list-item>
      <p id="d1e21017"><inline-formula><mml:math id="M838" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by AD of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>) with respect to pH;</p></list-item><list-item>
      <p id="d1e21063"><inline-formula><mml:math id="M839" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by AD of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E68"/>), substituting <inline-formula><mml:math id="M840" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E69"/>), with respect to pH.</p></list-item></list>
The buffer factors are then given by the following.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M841" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S5.E86"><mml:mtd><mml:mtext>E5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ω</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:msubsup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S5.E87"><mml:mtd><mml:mtext>E6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ω</mml:mi><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>ln⁡</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:msubsup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e21456">The approach taken here avoids AD evaluations over the iterative solvers because, while possible, that is computationally slower than over non-iterative functions.</p>
</sec>
<sec id="App1.Ch1.S5.SS2">
  <label>E2</label><title>Revelle factor</title>
      <p id="d1e21467">The Revelle factor <xref ref-type="bibr" rid="bib1.bibx7" id="paren.192"><named-content content-type="pre"><inline-formula><mml:math id="M842" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">F</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>;</named-content></xref> is computed from <inline-formula><mml:math id="M843" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M844" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, with the latter evaluated as described in Sect. <xref ref-type="sec" rid="App1.Ch1.S5.SS1"/>, following <xref ref-type="bibr" rid="bib1.bibx24" id="text.193"/>.
            <disp-formula id="App1.Ch1.S5.E88" content-type="numbered"><label>E7</label><mml:math id="M845" display="block"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">F</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S5.SS3">
  <label>E3</label><?xmltex \opttitle{Isocapnic quotient and $\psi$}?><title>Isocapnic quotient and <inline-formula><mml:math id="M846" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula></title>
      <p id="d1e21612">To evaluate the isocapnic quotient (<inline-formula><mml:math id="M847" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula>) of <xref ref-type="bibr" rid="bib1.bibx34" id="text.194"/>, we first evaluate the derivatives:
<list list-type="bullet"><list-item>
      <p id="d1e21627"><inline-formula><mml:math id="M848" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by AD of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E74"/>) with respect to pH;</p></list-item><list-item>
      <p id="d1e21667"><inline-formula><mml:math id="M849" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by AD of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S2.E34"/>) using Eq. (B6) for the <inline-formula><mml:math id="M850" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> term with respect to pH.</p></list-item></list>
The isocapnic quotient is defined and calculated in PyCO2SYS as follows.
            <disp-formula id="App1.Ch1.S5.E89" content-type="numbered"><label>E8</label><mml:math id="M851" display="block"><mml:mrow><mml:mi>Q</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msubsup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">pH</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e21820">Finally, the “released <inline-formula><mml:math id="M852" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> : precipitated carbonate ratio” (<inline-formula><mml:math id="M853" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula>) of <xref ref-type="bibr" rid="bib1.bibx26" id="text.195"/> is calculated following <xref ref-type="bibr" rid="bib1.bibx34" id="text.196"/>.
            <disp-formula id="App1.Ch1.S5.E90" content-type="numbered"><label>E9</label><mml:math id="M854" display="block"><mml:mrow><mml:mi mathvariant="italic">ψ</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">2</mml:mn><mml:mi>Q</mml:mi></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></disp-formula></p>
</sec>
</app>

<app id="App1.Ch1.S6">
  <?xmltex \currentcnt{F}?><label>Appendix F</label><?xmltex \opttitle{Initial pH estimate when solving from $A_{\mathrm{T}}$ and $T_{{\protect\chem{C}}}$}?><title>Initial pH estimate when solving from <inline-formula><mml:math id="M855" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M856" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></title>
      <p id="d1e21899">For clarity in the equations in this section, we abbreviate <inline-formula><mml:math id="M857" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> as <inline-formula><mml:math id="M858" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>.</p>
      <?pagebreak page40?><p id="d1e21925">Following <xref ref-type="bibr" rid="bib1.bibx62" id="text.197"/>, carbonate–borate alkalinity (<inline-formula><mml:math id="M859" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) from Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>) as a function of <inline-formula><mml:math id="M860" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M861" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is
          <disp-formula id="App1.Ch1.S6.E91" content-type="numbered"><label>F1</label><mml:math id="M862" display="block"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow><mml:mrow><mml:mi>h</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
        This can be rearranged into a third-order polynomial in <inline-formula><mml:math id="M863" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula>:
          <disp-formula id="App1.Ch1.S6.E92" content-type="numbered"><label>F2</label><mml:math id="M864" display="block"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        with the following.

              <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M865" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S6.E93"><mml:mtd><mml:mtext>F3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S6.E94"><mml:mtd><mml:mtext>F4</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><?xmltex \hack{\hbox\bgroup\fontsize{9.7}{9.7}\selectfont$\displaystyle}?><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced close="]" open="["><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S6.E95"><mml:mtd><mml:mtext>F5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e22462">The initial <inline-formula><mml:math id="M866" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> value is determined by
          <disp-formula id="App1.Ch1.S6.E96" content-type="numbered"><label>F6</label><mml:math id="M867" display="block"><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{9.5}{9.5}\selectfont$\displaystyle}?><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="cases" columnspacing="1em" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:msqrt></mml:mfrac></mml:mstyle></mml:mstyle></mml:mrow></mml:msqrt></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>for </mml:mtext><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula>
        where <inline-formula><mml:math id="M868" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is defined in Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>).  Negative <inline-formula><mml:math id="M869" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is impossible because its equation contains only positive terms, so the equations above cannot be applied if <inline-formula><mml:math id="M870" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is indeed negative.  The default <inline-formula><mml:math id="M871" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M872" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> mol kg<inline-formula><mml:math id="M873" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, corresponding to a pH of 3, is therefore used for that case (e.g. after the alkalinity end point in an acidimetric titration).  The maximum possible <inline-formula><mml:math id="M874" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">CB</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is <inline-formula><mml:math id="M875" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M876" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is entirely <inline-formula><mml:math id="M877" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M878" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is entirely <inline-formula><mml:math id="M879" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msubsup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>.  Where <inline-formula><mml:math id="M880" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is actually higher than this limit of this simplified expression, we expect a high pH (given the dominance of <inline-formula><mml:math id="M881" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> within <inline-formula><mml:math id="M882" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) and therefore use an initial estimate pH of 10.  Otherwise, <inline-formula><mml:math id="M883" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S6.E96"/>) is found using Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>).  A default <inline-formula><mml:math id="M884" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M885" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> mol kg<inline-formula><mml:math id="M886" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> (pH 7) is used when <inline-formula><mml:math id="M887" display="inline"><mml:mrow><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S6.E96"/>) <xref ref-type="bibr" rid="bib1.bibx62" id="paren.198"/>.</p>
</app>

<app id="App1.Ch1.S7">
  <?xmltex \currentcnt{G}?><label>Appendix G</label><title>Revelle factor calculation errors in older versions of CO2SYS-MATLAB</title>
      <p id="d1e22929">Older versions of CO2SYS-MATLAB, including v2.0.5 <xref ref-type="bibr" rid="bib1.bibx68" id="paren.199"/> from which PyCO2SYS was originally converted, have minor errors in how the Revelle factor is evaluated.  These have been corrected in PyCO2SYS (also in CO2SYS-MATLAB v3.2.0 and CO2SYS-Excel v3), leading to small differences in the calculated values.  These differences are on the order of 0.1; for context, the Revelle factor typically has a value on the order of 10.  The differences are thus notable from a computational perspective (i.e. many orders of magnitude greater than solver tolerance and floating-point errors) but still mostly negligible in practical applications.</p>
      <p id="d1e22935">Rather than being corrected explicitly in PyCO2SYS, these errors are corrected automatically thanks to the approach of using automatic differentiation instead of finite-difference derivatives.  The key errors in the original CO2SYS-MATLAB implementation of the finite-difference approach are the following.
<list list-type="order"><list-item>
      <p id="d1e22940">An incorrect reference <inline-formula><mml:math id="M888" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> value is used in the final evaluation.  Rather than using the “central” <inline-formula><mml:math id="M889" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> value, the change in <inline-formula><mml:math id="M890" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is divided by the adjusted <inline-formula><mml:math id="M891" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item><list-item>
      <p id="d1e23009">Under output conditions, the Peng correction is not included in the evaluation of the Revelle factor (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>).</p></list-item></list></p>
      <p id="d1e23014">The lower accuracy of the finite-difference method relative to automatic differentiation, particularly given the relatively large <inline-formula><mml:math id="M892" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> used in the original finite-difference implementation (i.e. 1 <inline-formula><mml:math id="M893" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>mol kg<inline-formula><mml:math id="M894" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>), explains the differences between the two approaches that remain after the errors above have been corrected.</p>
</app>

<app id="App1.Ch1.S8">
  <?xmltex \currentcnt{H}?><label>Appendix H</label><?xmltex \opttitle{Fixed $\Delta a$ values for uncertainty analysis}?><title>Fixed <inline-formula><mml:math id="M895" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> values for uncertainty analysis</title>

<?xmltex \floatpos{h!}?><table-wrap id="App1.Ch1.S8.T6"><?xmltex \currentcnt{H1}?><label>Table H1</label><caption><p id="d1e23073">Fixed <inline-formula><mml:math id="M896" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> values for uncertainty analysis.</p></caption><oasis:table frame="topbot"><?xmltex \begin{scaleboxenv}{.99}[.99]?><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right" colsep="1"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Argument(s)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M897" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Argument(s)</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M898" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Core parameters</oasis:entry>
         <oasis:entry colname="col2">4</oasis:entry>
         <oasis:entry colname="col3">Pressure</oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M899" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">16</oasis:entry>
         <oasis:entry colname="col3">Salinity</oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M900" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(aragonite)</oasis:entry>
         <oasis:entry colname="col2">13</oasis:entry>
         <oasis:entry colname="col3">Temperature</oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M901" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">7</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M902" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M903" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">15</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M904" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">NH</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M905" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sp</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>(calcite)</oasis:entry>
         <oasis:entry colname="col2">13</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M906" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M907" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">12</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M908" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M909" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">15</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M910" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Ca</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M911" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">8</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M912" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M913" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">HF</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">9</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M914" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M915" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">4</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M916" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M917" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">12</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M918" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M919" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">15</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M920" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M921" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">16</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M922" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">5</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M923" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">13</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M924" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">4</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M925" display="inline"><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mi mathvariant="normal">w</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">20</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M926" display="inline"><mml:mi>G</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">5</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Any p<inline-formula><mml:math id="M927" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">4</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M928" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">4</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup><?xmltex \end{scaleboxenv}?></oasis:table></table-wrap>

</app>

<app id="App1.Ch1.S9">
  <?xmltex \currentcnt{I}?><label>Appendix I</label><title>Set-up for computational speed testing</title>
      <p id="d1e23760">The computational speed tests described in Sect. <xref ref-type="sec" rid="Ch1.S5.SS4"/> were run on an HP Spectre x360 laptop with an Intel Core i7-8565U CPU (1.80 GHz) and 16 GB of RAM.  The operating system was Windows 10.</p>
      <p id="d1e23765">The Python tests were run using Python v3.9.7, Autograd v1.3, NumPy v1.21.2, and PyCO2SYS v1.8.0.</p>
      <?pagebreak page41?><p id="d1e23768">The MATLAB tests were run using MATLAB R2019b (Update 9) and CO2SYS-MATLAB v3.2.0.</p>
      <p id="d1e23771">The GNU Octave tests were run using GNU Octave v6.3.0 via its command-line interface and CO2SYS-MATLAB v3.2.0.</p><?xmltex \hack{\newpage}?>
</app>
  </app-group><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d1e23779">The current version of PyCO2SYS is freely available from its GitHub repository at <uri>https://github.com/mvdh7/PyCO2SYS</uri> (last access: 23 December 2021) under the GNU General Public License v3.  Installation is recommended from the Python Package Index (PyPI) via <monospace>pip</monospace>, and documentation is available online (<uri>https://PyCO2SYS.readthedocs.io</uri>, last access: 23 December 2021). The exact version of PyCO2SYS used to produce the results discussed in this paper (v1.8.0), including input data and scripts to run the model and perform all validation tests described here, is archived on Zenodo (<ext-link xlink:href="https://doi.org/10.5281/zenodo.5602840" ext-link-type="DOI">10.5281/zenodo.5602840</ext-link>, <xref ref-type="bibr" rid="bib1.bibx36" id="altparen.200"/>).</p>
  </notes><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d1e23800">No data sets were used in this article.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d1e23806">MPH was responsible for conceptualisation, methodology, software, validation, writing the original draft,  and visualisation. ERL was responsible for software and writing (review and editing).  JDS was responsible for software, validation,  and writing (review and editing). DP was responsible for  software and writing (review and editing).​​​​​​​</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e23812">The contact author has declared that neither they nor their co-authors have any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d1e23818">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e23824">We thank Doug Wallace for providing useful comments on this paper, and we acknowledge his important role in the creation of the original CO2SYS software.  We further acknowledge the developers of all subsequent versions of CO2SYS upon whose work PyCO2SYS was built.  We thank Luke Gregor, Daniel Sandborn, and Abigail Schiller for code contributions including extending the range of data types with which PyCO2SYS can be used.  We are grateful to Guy Munhoven and James Orr for their detailed and constructive reviews.</p></ack><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e23830">This paper was edited by Paul Halloran and reviewed by James Orr and Guy Munhoven.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><?xmltex \def\ref@label{{Abril et~al.(2015)}}?><label>Abril et al.(2015)</label><?label abril_technical_2015?><mixed-citation>Abril, G., Bouillon, S., Darchambeau, F., Teodoru, C. R., Marwick, T. R., Tamooh, F., Ochieng Omengo, F., Geeraert, N., Deirmendjian, L., Polsenaere, P., and Borges, A. V.: Technical Note: Large overestimation of <inline-formula><mml:math id="M929" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>CO<inline-formula><mml:math id="M930" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> calculated from pH and alkalinity in acidic, organic-rich freshwaters, Biogeosciences, 12, 67–78, <ext-link xlink:href="https://doi.org/10.5194/bg-12-67-2015" ext-link-type="DOI">10.5194/bg-12-67-2015</ext-link>, 2015.</mixed-citation></ref>
      <?pagebreak page42?><ref id="bib1.bibx2"><?xmltex \def\ref@label{{Álvarez et~al.(2014)}}?><label>Álvarez et al.(2014)</label><?label alvarez_co2_2014?><mixed-citation>Álvarez, M., Sanleón-Bartolomé, H., Tanhua, T., Mintrop, L., Luchetta, A., Cantoni, C., Schroeder, K., and Civitarese, G.: The CO<inline-formula><mml:math id="M931" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> system in the Mediterranean Sea: a basin wide perspective, Ocean Sci., 10, 69–92, <ext-link xlink:href="https://doi.org/10.5194/os-10-69-2014" ext-link-type="DOI">10.5194/os-10-69-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx3"><?xmltex \def\ref@label{{Bach(2015)}}?><label>Bach(2015)</label><?label bach_reconsidering_2015?><mixed-citation>Bach, L. T.: Reconsidering the role of carbonate ion concentration in calcification by marine organisms, Biogeosciences, 12, 4939–4951, <ext-link xlink:href="https://doi.org/10.5194/bg-12-4939-2015" ext-link-type="DOI">10.5194/bg-12-4939-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx4"><?xmltex \def\ref@label{{Bakker et~al.(2016)}}?><label>Bakker et al.(2016)</label><?label bakker_multidecade_2016?><mixed-citation>Bakker, D. C. E., Pfeil, B., Landa, C. S., Metzl, N., O'Brien, K. M., Olsen, A., Smith, K., Cosca, C., Harasawa, S., Jones, S. D., Nakaoka, S., Nojiri, Y., Schuster, U., Steinhoff, T., Sweeney, C., Takahashi, T., Tilbrook, B., Wada, C., Wanninkhof, R., Alin, S. R., Balestrini, C. F., Barbero, L., Bates, N. R., Bianchi, A. A., Bonou, F., Boutin, J., Bozec, Y., Burger, E. F., Cai, W.-J., Castle, R. D., Chen, L., Chierici, M., Currie, K., Evans, W., Featherstone, C., Feely, R. A., Fransson, A., Goyet, C., Greenwood, N., Gregor, L., Hankin, S., Hardman-Mountford, N. J., Harlay, J., Hauck, J., Hoppema, M., Humphreys, M. P., Hunt, C. W., Huss, B., Ibánhez, J. S. P., Johannessen, T., Keeling, R., Kitidis, V., Körtzinger, A., Kozyr, A., Krasakopoulou, E., Kuwata, A., Landschützer, P., Lauvset, S. K., Lefèvre, N., Lo Monaco, C., Manke, A., Mathis, J. T., Merlivat, L., Millero, F. J., Monteiro, P. M. S., Munro, D. R., Murata, A., Newberger, T., Omar, A. M., Ono, T., Paterson, K., Pearce, D., Pierrot, D., Robbins, L. L., Saito, S., Salisbury, J., Schlitzer, R., Schneider, B., Schweitzer, R., Sieger, R., Skjelvan, I., Sullivan, K. F., Sutherland, S. C., Sutton, A. J., Tadokoro, K., Telszewski, M., Tuma, M., van Heuven, S. M. A. C., Vandemark, D., Ward, B., Watson, A. J., and Xu, S.: A multi-decade record of high-quality <inline-formula><mml:math id="M932" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula>CO<inline-formula><mml:math id="M933" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> data in version 3 of the Surface Ocean CO2 Atlas (SOCAT), Earth Syst. Sci. Data, 8, 383–413, <ext-link xlink:href="https://doi.org/10.5194/essd-8-383-2016" ext-link-type="DOI">10.5194/essd-8-383-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx5"><?xmltex \def\ref@label{{Bradbury et~al.(2018)}}?><label>Bradbury et al.(2018)</label><?label jax_github_2018?><mixed-citation>Bradbury, J., Frostig, R., Hawkins, P., Johnson, M. J., Leary, C., Maclaurin,
D., and Wanderman-Milne, S.: JAX: composable transformations of
Python+NumPy programs, GitHub, available at: <uri>http://github.com/google/jax</uri> (last access: 23 December 2021), 2018.</mixed-citation></ref>
      <ref id="bib1.bibx6"><?xmltex \def\ref@label{{Branson(2018)}}?><label>Branson(2018)</label><?label branson_cbsyst_2018?><mixed-citation>Branson, O.: oscarbranson/cbsyst: beta, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.1402261" ext-link-type="DOI">10.5281/zenodo.1402261</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx7"><?xmltex \def\ref@label{{Broecker et~al.(1979)}}?><label>Broecker et al.(1979)</label><?label broecker_fate_1979?><mixed-citation>Broecker, W. S., Takahashi, T., Simpson, H. J., and Peng, T.-H.: Fate of
Fossil Fuel Carbon Dioxide and the Global Carbon Budget,
Science, 206, 409–418, <ext-link xlink:href="https://doi.org/10.1126/science.206.4417.409" ext-link-type="DOI">10.1126/science.206.4417.409</ext-link>, 1979.</mixed-citation></ref>
      <ref id="bib1.bibx8"><?xmltex \def\ref@label{{Cai and Wang(1998)}}?><label>Cai and Wang(1998)</label><?label cai_chemistry_1998?><mixed-citation>Cai, W.-J. and Wang, Y.: The chemistry, fluxes, and sources of carbon dioxide
in the estuarine waters of the Satilla and Altamaha Rivers, Georgia,
Limnol. Oceanogr., 43, 657–668, <ext-link xlink:href="https://doi.org/10.4319/lo.1998.43.4.0657" ext-link-type="DOI">10.4319/lo.1998.43.4.0657</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx9"><?xmltex \def\ref@label{{Cai et~al.(2017)}}?><label>Cai et al.(2017)</label><?label cai_redox_2017?><mixed-citation>Cai, W.-J., Huang, W.-J., Luther, G. W., Pierrot, D., Li, M., Testa, J., Xue,
M., Joesoef, A., Mann, R., Brodeur, J., Xu, Y.-Y., Chen, B., Hussain, N.,
Waldbusser, G. G., Cornwell, J., and Kemp, W. M.: Redox reactions and weak
buffering capacity lead to acidification in the Chesapeake Bay, Nat.
Commun., 8, 369, <ext-link xlink:href="https://doi.org/10.1038/s41467-017-00417-7" ext-link-type="DOI">10.1038/s41467-017-00417-7</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx10"><?xmltex \def\ref@label{{Cantrell et~al.(1990)}}?><label>Cantrell et al.(1990)</label><?label cantrell_evaluation_1990?><mixed-citation>Cantrell, K. J., Serkiz, S. M., and Perdue, E. M.: Evaluation of acid
neutralizing capacity data for solutions containing natural organic acids,
Geochim. Cosmochim. Acta, 54, 1247–1254,
<ext-link xlink:href="https://doi.org/10.1016/0016-7037(90)90150-J" ext-link-type="DOI">10.1016/0016-7037(90)90150-J</ext-link>, 1990.</mixed-citation></ref>
      <ref id="bib1.bibx11"><?xmltex \def\ref@label{{Clarke et~al.(2017)}}?><label>Clarke et al.(2017)</label><?label clarke_developments_2017?><mixed-citation>Clarke, J. S., Achterberg, E. P., Connelly, D. P., Schuster, U., and Mowlem,
M.: Developments in marine <inline-formula><mml:math id="M934" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>CO<inline-formula><mml:math id="M935" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> measurement
technology; towards sustained <italic>in situ</italic> observations, Trends Anal.
Chem., 88, 53–61, <ext-link xlink:href="https://doi.org/10.1016/j.trac.2016.12.008" ext-link-type="DOI">10.1016/j.trac.2016.12.008</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx12"><?xmltex \def\ref@label{{Clegg and Whitfield(1995)}}?><label>Clegg and Whitfield(1995)</label><?label clegg_chemical_1995?><mixed-citation>Clegg, S. L. and Whitfield, M.: A chemical model of seawater including
dissolved ammonia and the stoichiometric dissociation constant of ammonia in
estuarine water and seawater from <inline-formula><mml:math id="M936" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2 to 40 <inline-formula><mml:math id="M937" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, Geochim. Cosmochim. Acta, 59, 2403–2421, <ext-link xlink:href="https://doi.org/10.1016/0016-7037(95)00135-2" ext-link-type="DOI">10.1016/0016-7037(95)00135-2</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx13"><?xmltex \def\ref@label{{Culkin(1965)}}?><label>Culkin(1965)</label><?label culkin_major_1965?><mixed-citation>
Culkin, F.: The major constituents of sea water, in: Chemical Oceanography,
edited by: Riley, J. P. and Skirrow, G., Academic Press,
London, UK, vol. 1, 121–161, 1965.</mixed-citation></ref>
      <ref id="bib1.bibx14"><?xmltex \def\ref@label{{Deffeyes(1965)}}?><label>Deffeyes(1965)</label><?label deffeyes_carbonate_1965?><mixed-citation>Deffeyes, K. S.: Carbonate Equilibria: A Graphic and Algebraic
Approach, Limnol. Oceanogr., 10, 412–426,
<ext-link xlink:href="https://doi.org/10.4319/lo.1965.10.3.0412" ext-link-type="DOI">10.4319/lo.1965.10.3.0412</ext-link>, 1965.</mixed-citation></ref>
      <ref id="bib1.bibx15"><?xmltex \def\ref@label{{Dickson and Millero(1987)}}?><label>Dickson and Millero(1987)</label><?label dickson_comparison_1987?><mixed-citation>Dickson, A. and Millero, F.: A comparison of the equilibrium constants for the dissociation of carbonic acid in seawater media, Deep-Sea Res. Pt. A, 34,
1733–1743, <ext-link xlink:href="https://doi.org/10.1016/0198-0149(87)90021-5" ext-link-type="DOI">10.1016/0198-0149(87)90021-5</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx16"><?xmltex \def\ref@label{{Dickson(1981)}}?><label>Dickson(1981)</label><?label dickson_exact_1981?><mixed-citation>Dickson, A. G.: An exact definition of total alkalinity and a procedure for the estimation of alkalinity and total inorganic carbon from titration data, Deep-Sea Res. Pt. A, 28, 609–623,
<ext-link xlink:href="https://doi.org/10.1016/0198-0149(81)90121-7" ext-link-type="DOI">10.1016/0198-0149(81)90121-7</ext-link>, 1981.</mixed-citation></ref>
      <ref id="bib1.bibx17"><?xmltex \def\ref@label{{Dickson(1990a)}}?><label>Dickson(1990a)</label><?label dickson_standard_1990?><mixed-citation>Dickson, A. G.: Standard potential of the reaction: <inline-formula><mml:math id="M938" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">AgCl</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">s</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn><mml:msub><mml:mi mathvariant="normal">H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Ag</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">s</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="normal">HCl</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">aq</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and the standard acidity constant of the ion HSO<inline-formula><mml:math id="M939" display="inline"><mml:mrow><mml:msubsup><mml:mi/><mml:mn mathvariant="normal">4</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> in synthetic sea water from 273.15 to 318.15 K, J. Chem. Thermodyn., 22, 113–127, <ext-link xlink:href="https://doi.org/10.1016/0021-9614(90)90074-Z" ext-link-type="DOI">10.1016/0021-9614(90)90074-Z</ext-link>,
1990a.</mixed-citation></ref>
      <ref id="bib1.bibx18"><?xmltex \def\ref@label{{Dickson(1990b)}}?><label>Dickson(1990b)</label><?label dickson_thermodynamics_1990?><mixed-citation>Dickson, A. G.: Thermodynamics of the dissociation of boric acid in synthetic
seawater from 273.15 to 318.15 K, Deep-Sea Res. Pt. A, 37, 755–766,
<ext-link xlink:href="https://doi.org/10.1016/0198-0149(90)90004-F" ext-link-type="DOI">10.1016/0198-0149(90)90004-F</ext-link>, 1990b.</mixed-citation></ref>
      <ref id="bib1.bibx19"><?xmltex \def\ref@label{{Dickson and Riley(1979)}}?><label>Dickson and Riley(1979)</label><?label dickson_estimation_1979?><mixed-citation>Dickson, A. G. and Riley, J. P.: The estimation of acid dissociation constants in sea-water media from potentiometric titrations with strong base. II. The dissociation of phosphoric acid, Mar. Chem., 7, 101–109,
<ext-link xlink:href="https://doi.org/10.1016/0304-4203(79)90002-1" ext-link-type="DOI">10.1016/0304-4203(79)90002-1</ext-link>, 1979.</mixed-citation></ref>
      <ref id="bib1.bibx20"><?xmltex \def\ref@label{{Dickson et~al.(2007)}}?><label>Dickson et al.(2007)</label><?label dickson_guide_2007?><mixed-citation>Dickson, A. G., Sabine, C. L., and Christian, J. R. (Eds.): Guide to Best
Practices for Ocean CO<inline-formula><mml:math id="M940" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> Measurements, PICES Special
Publication 3, North Pacific Marine Science Organization, Sidney, BC, Canada, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx21"><?xmltex \def\ref@label{{Dickson et~al.(2015)}}?><label>Dickson et al.(2015)</label><?label dickson_metrological_2015?><mixed-citation>Dickson, A. G., Camões, M. F., Spitzer, P., Fisicaro, P., Stoica, D.,
Pawlowicz, R., and Feistel, R.: Metrological challenges for measurements of
key climatological observables. Part 3: seawater pH, Metrologia, 53,
R26–R39, <ext-link xlink:href="https://doi.org/10.1088/0026-1394/53/1/R26" ext-link-type="DOI">10.1088/0026-1394/53/1/R26</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx22"><?xmltex \def\ref@label{{Doney et~al.(2009)}}?><label>Doney et al.(2009)</label><?label doney_ocean_2009?><mixed-citation>Doney, S. C., Fabry, V. J., Feely, R. A., and Kleypas, J. A.: Ocean
Acidification: The Other CO<inline-formula><mml:math id="M941" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> Problem, Annu. Rev.
Marine Sci., 1, 169–192, <ext-link xlink:href="https://doi.org/10.1146/annurev.marine.010908.163834" ext-link-type="DOI">10.1146/annurev.marine.010908.163834</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx23"><?xmltex \def\ref@label{{Edmond and Gieskes(1970)}}?><label>Edmond and Gieskes(1970)</label><?label edmond_calculation_1970?><mixed-citation>Edmond, J. M. and Gieskes, J. M. T. M.: On the calculation of the degree of
saturation of sea water with respect to calcium carbonate under in situ
conditions, Geochim. Cosmochim. Acta, 34, 1261–1291,
<ext-link xlink:href="https://doi.org/10.1016/0016-7037(70)90041-4" ext-link-type="DOI">10.1016/0016-7037(70)90041-4</ext-link>, 1970.</mixed-citation></ref>
      <ref id="bib1.bibx24"><?xmltex \def\ref@label{{Egleston et~al.(2010)}}?><label>Egleston et al.(2010)</label><?label egleston_revelle_2010?><mixed-citation>Egleston, E. S., Sabine, C. L., and Morel, F. M. M.: Revelle revisited:
Buffer factors that quantify the response of ocean chemistry to changes in
DIC and alkalinity, Global Biogeochem. Cy., 24, GB1002,
<ext-link xlink:href="https://doi.org/10.1029/2008GB003407" ext-link-type="DOI">10.1029/2008GB003407</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx25"><?xmltex \def\ref@label{{Frankignoulle(1994)}}?><label>Frankignoulle(1994)</label><?label frankignoulle_complete_1994?><mixed-citation>Frankignoulle, M.: A complete set of buffer factors for acid/base
CO<inline-formula><mml:math id="M942" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> system in seawater, J. Mar. Syst., 5, 111–118,
<ext-link xlink:href="https://doi.org/10.1016/0924-7963(94)90026-4" ext-link-type="DOI">10.1016/0924-7963(94)90026-4</ext-link>, 1994.</mixed-citation></ref>
      <?pagebreak page43?><ref id="bib1.bibx26"><?xmltex \def\ref@label{{Frankignoulle et~al.(1994)}}?><label>Frankignoulle et al.(1994)</label><?label frankignoulle_marine_1994?><mixed-citation>Frankignoulle, M., Canon, C., and Gattuso, J.-P.: Marine calcification as a
source of carbon dioxide: Positive feedback of increasing atmospheric
CO<inline-formula><mml:math id="M943" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, Limnol. Oceanogr., 39, 458–462,
<ext-link xlink:href="https://doi.org/10.4319/lo.1994.39.2.0458" ext-link-type="DOI">10.4319/lo.1994.39.2.0458</ext-link>, 1994.</mixed-citation></ref>
      <ref id="bib1.bibx27"><?xmltex \def\ref@label{{Friedlingstein et~al.(2020)}}?><label>Friedlingstein et al.(2020)</label><?label friedlingstein_global_2020?><mixed-citation>Friedlingstein, P., O'Sullivan, M., Jones, M. W., Andrew, R. M., Hauck, J., Olsen, A., Peters, G. P., Peters, W., Pongratz, J., Sitch, S., Le Quéré, C., Canadell, J. G., Ciais, P., Jackson, R. B., Alin, S., Aragão, L. E. O. C., Arneth, A., Arora, V., Bates, N. R., Becker, M., Benoit-Cattin, A., Bittig, H. C., Bopp, L., Bultan, S., Chandra, N., Chevallier, F., Chini, L. P., Evans, W., Florentie, L., Forster, P. M., Gasser, T., Gehlen, M., Gilfillan, D., Gkritzalis, T., Gregor, L., Gruber, N., Harris, I., Hartung, K., Haverd, V., Houghton, R. A., Ilyina, T., Jain, A. K., Joetzjer, E., Kadono, K., Kato, E., Kitidis, V., Korsbakken, J. I., Landschützer, P., Lefèvre, N., Lenton, A., Lienert, S., Liu, Z., Lombardozzi, D., Marland, G., Metzl, N., Munro, D. R., Nabel, J. E. M. S., Nakaoka, S.-I., Niwa, Y., O'Brien, K., Ono, T., Palmer, P. I., Pierrot, D., Poulter, B., Resplandy, L., Robertson, E., Rödenbeck, C., Schwinger, J., Séférian, R., Skjelvan, I., Smith, A. J. P., Sutton, A. J., Tanhua, T., Tans, P. P., Tian, H., Tilbrook, B., van der Werf, G., Vuichard, N., Walker, A. P., Wanninkhof, R., Watson, A. J., Willis, D., Wiltshire, A. J., Yuan, W., Yue, X., and Zaehle, S.: Global Carbon Budget 2020, Earth Syst. Sci. Data, 12, 3269–3340, <ext-link xlink:href="https://doi.org/10.5194/essd-12-3269-2020" ext-link-type="DOI">10.5194/essd-12-3269-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx28"><?xmltex \def\ref@label{{Gattuso et~al.(2021)}}?><label>Gattuso et al.(2021)</label><?label gattuso_seacarb_2021?><mixed-citation>Gattuso, J.-P., Epitalon, J.-M., Lavigne, H., Orr, J., Gentili, B., Hagens, M., Hofmann, A., Mueller, J.-D., Proye, A., Rae, J., and Soetaert, K.: seacarb: Seawater Carbonate Chemistry, available at: <uri>https://CRAN.R-project.org/package=seacarb</uri>, last access: 23 December 2021.</mixed-citation></ref>
      <ref id="bib1.bibx29"><?xmltex \def\ref@label{{Goyet and Poisson(1989)}}?><label>Goyet and Poisson(1989)</label><?label goyet_new_1989?><mixed-citation>Goyet, C. and Poisson, A.: New determination of carbonic acid dissociation
constants in seawater as a function of temperature and salinity, Deep-Sea
Res. Pt. A, 36, 1635–1654, <ext-link xlink:href="https://doi.org/10.1016/0198-0149(89)90064-2" ext-link-type="DOI">10.1016/0198-0149(89)90064-2</ext-link>, 1989.</mixed-citation></ref>
      <ref id="bib1.bibx30"><?xmltex \def\ref@label{{Hagens and Middelburg(2016)}}?><label>Hagens and Middelburg(2016)</label><?label hagens_generalised_2016?><mixed-citation>Hagens, M. and Middelburg, J. J.: Generalised expressions for the response of
pH to changes in ocean chemistry, Geochim. Cosmochim. Acta, 187,
334–349, <ext-link xlink:href="https://doi.org/10.1016/j.gca.2016.04.012" ext-link-type="DOI">10.1016/j.gca.2016.04.012</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx31"><?xmltex \def\ref@label{{Hansson(1973a)}}?><label>Hansson(1973a)</label><?label hansson_determination_1973?><mixed-citation>Hansson, I.: The Determination of Dissociation Constants of Carbonic
Acid in Synthetic Sea Water in the Salinity Range of 20–40 ‰ and Temperature Range of 5–30 <inline-formula><mml:math id="M944" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, Acta Chem. Scand., 27, 931–944, <ext-link xlink:href="https://doi.org/10.3891/acta.chem.scand.27-0931" ext-link-type="DOI">10.3891/acta.chem.scand.27-0931</ext-link>, 1973a.</mixed-citation></ref>
      <ref id="bib1.bibx32"><?xmltex \def\ref@label{{Hansson(1973b)}}?><label>Hansson(1973b)</label><?label hansson_new_1973?><mixed-citation>Hansson, I.: A new set of acidity constants for carbonic acid and boric acid in sea water, Deep-Sea Res., 20, 461–478, <ext-link xlink:href="https://doi.org/10.1016/0011-7471(73)90100-9" ext-link-type="DOI">10.1016/0011-7471(73)90100-9</ext-link>, 1973b.</mixed-citation></ref>
      <ref id="bib1.bibx33"><?xmltex \def\ref@label{{Harris et~al.(2020)}}?><label>Harris et al.(2020)</label><?label harris_array_2020?><mixed-citation>Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R.,
Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río,
J. F., Wiebe, M., Peterson, P., Gérard-Marchant, P., Sheppard, K., Reddy,
T., Weckesser, W., Abbasi, H., Gohlke, C., and Oliphant, T. E.: Array
programming with NumPy, Nature, 585, 357–362,
<ext-link xlink:href="https://doi.org/10.1038/s41586-020-2649-2" ext-link-type="DOI">10.1038/s41586-020-2649-2</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx34"><?xmltex \def\ref@label{{Humphreys et~al.(2018)}}?><label>Humphreys et al.(2018)</label><?label humphreys_influence_2018?><mixed-citation>Humphreys, M. P., Daniels, C. J., Wolf-Gladrow, D. A., Tyrrell, T., and
Achterberg, E. P.: On the influence of marine biogeochemical processes over
CO<inline-formula><mml:math id="M945" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> exchange between the atmosphere and ocean, Mar. Chem.,
199, 1–11, <ext-link xlink:href="https://doi.org/10.1016/j.marchem.2017.12.006" ext-link-type="DOI">10.1016/j.marchem.2017.12.006</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx35"><?xmltex \def\ref@label{{Humphreys et~al.(2020)}}?><label>Humphreys et al.(2020)</label><?label humphreys2020_code?><mixed-citation>Humphreys, M. P., Gregor, L., Pierrot, D., van Heuven, S. M. A. C., Lewis, E. R., and Wallace, D. W. R.: PyCO2SYS: marine carbonate system calculations in Python (v1.3.0), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.3780139" ext-link-type="DOI">10.5281/zenodo.3780139</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx36"><?xmltex \def\ref@label{{Humphreys et~al.(2021)}}?><label>Humphreys et al.(2021)</label><?label humphreys_code_zenodo?><mixed-citation>Humphreys, M. P., Schiller, A. J., Sandborn, D., Gregor, L., Pierrot, D., van Heuven, S. M. A. C., Lewis, E. R.,  and Wallace, D. W. R.: PyCO2SYS: marine carbonate system calculations in Python (v1.8.0), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.5602840" ext-link-type="DOI">10.5281/zenodo.5602840</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx37"><?xmltex \def\ref@label{{Ingle(1975)}}?><label>Ingle(1975)</label><?label ingle_solubility_1975?><mixed-citation>Ingle, S. E.: Solubility of calcite in the ocean, Mar. Chem., 3, 301–319,
<ext-link xlink:href="https://doi.org/10.1016/0304-4203(75)90010-9" ext-link-type="DOI">10.1016/0304-4203(75)90010-9</ext-link>, 1975.</mixed-citation></ref>
      <ref id="bib1.bibx38"><?xmltex \def\ref@label{{Ingle et~al.(1973)}}?><label>Ingle et al.(1973)</label><?label ingle_solubility_1973?><mixed-citation>Ingle, S. E., Culberson, C. H., Hawley, J. E., and Pytkowicz, R. M.: The
solubility of calcite in seawater at atmospheric pressure and 35 ‰ salinity, Mar. Chem., 1, 295–307, <ext-link xlink:href="https://doi.org/10.1016/0304-4203(73)90019-4" ext-link-type="DOI">10.1016/0304-4203(73)90019-4</ext-link>, 1973.</mixed-citation></ref>
      <ref id="bib1.bibx39"><?xmltex \def\ref@label{{IUPAC(1997)}}?><label>IUPAC(1997)</label><?label iupac_compendium_1997?><mixed-citation>IUPAC: Compendium of Chemical Terminology, 2nd edn. (the “Gold Book”), Blackwell Scientific Publications, Oxford, UK,
<ext-link xlink:href="https://doi.org/10.1351/goldbook" ext-link-type="DOI">10.1351/goldbook</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx40"><?xmltex \def\ref@label{{{JCGM}(2008)}}?><label>JCGM(2008)</label><?label jcgm_jcgm_2008?><mixed-citation>JCGM: JCGM 100:2008 Evaluation of measurement data – Guide to the
expression of uncertainty in measurement, Bureau International des Poids et
Mesures, Sèvres, France, available at: <uri>https://www.bipm.org/utils/common/documents/jcgm/JCGM_100_2008_E.pdf</uri> (last access: 23 December 2021), 2008.</mixed-citation></ref>
      <ref id="bib1.bibx41"><?xmltex \def\ref@label{{Kester and Pytkowicz(1967)}}?><label>Kester and Pytkowicz(1967)</label><?label kester_determination_1967?><mixed-citation>Kester, D. R. and Pytkowicz, R. M.: Determination of the Apparent
Dissociation Constants of Phosphoric Acid in Seawater, Limnol.
Oceanogr., 12, 243–252, <ext-link xlink:href="https://doi.org/10.4319/lo.1967.12.2.0243" ext-link-type="DOI">10.4319/lo.1967.12.2.0243</ext-link>, 1967.</mixed-citation></ref>
      <ref id="bib1.bibx42"><?xmltex \def\ref@label{{Khoo et~al.(1977)}}?><label>Khoo et al.(1977)</label><?label khoo_determination_1977?><mixed-citation>Khoo, K. H., Ramette, R. W., Culberson, C. H., and Bates, R. G.: Determination of hydrogen ion concentrations in seawater from 5 to 40C: standard potentials at salinities from 20 to 45 per mille, Anal. Chem., 49, 29–34, <ext-link xlink:href="https://doi.org/10.1021/ac50009a016" ext-link-type="DOI">10.1021/ac50009a016</ext-link>, 1977.</mixed-citation></ref>
      <ref id="bib1.bibx43"><?xmltex \def\ref@label{{Kuliński et~al.(2014)}}?><label>Kuliński et al.(2014)</label><?label kulinski_influence_2014?><mixed-citation>Kuliński, K., Schneider, B., Hammer, K., Machulik, U., and Schulz-Bull, D.:
The influence of dissolved organic matter on the acid–base system of the
Baltic Sea, J. Mar. Syst., 132, 106–115,
<ext-link xlink:href="https://doi.org/10.1016/j.jmarsys.2014.01.011" ext-link-type="DOI">10.1016/j.jmarsys.2014.01.011</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx44"><?xmltex \def\ref@label{{Lauvset et~al.(2021)}}?><label>Lauvset et al.(2021)</label><?label lauvset_updated_2021?><mixed-citation>Lauvset, S. K., Lange, N., Tanhua, T., Bittig, H. C., Olsen, A., Kozyr, A., Álvarez, M., Becker, S., Brown, P. J., Carter, B. R., Cotrim da Cunha, L., Feely, R. A., van Heuven, S., Hoppema, M., Ishii, M., Jeansson, E., Jutterström, S., Jones, S. D., Karlsen, M. K., Lo Monaco, C., Michaelis, P., Murata, A., Pérez, F. F., Pfeil, B., Schirnick, C., Steinfeldt, R., Suzuki, T., Tilbrook, B., Velo, A., Wanninkhof, R., Woosley, R. J., and Key, R. M.: An updated version of the global interior ocean biogeochemical data product, GLODAPv2.2021, Earth Syst. Sci. Data, 13, 5565–5589, <ext-link xlink:href="https://doi.org/10.5194/essd-13-5565-2021" ext-link-type="DOI">10.5194/essd-13-5565-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx45"><?xmltex \def\ref@label{{Lee et~al.(2010)}}?><label>Lee et al.(2010)</label><?label lee_universal_2010?><mixed-citation>Lee, K., Kim, T.-W., Byrne, R. H., Millero, F. J., Feely, R. A., and Liu,
Y.-M.: The universal ratio of boron to chlorinity for the North Pacific
and North Atlantic oceans, Geochim. Cosmochim. Acta, 74, 1801–1811,
<ext-link xlink:href="https://doi.org/10.1016/j.gca.2009.12.027" ext-link-type="DOI">10.1016/j.gca.2009.12.027</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx46"><?xmltex \def\ref@label{{Lewis and Wallace(1998)}}?><label>Lewis and Wallace(1998)</label><?label lewis_program_1998?><mixed-citation>Lewis, E. and Wallace, D. W. R.: Program Developed for CO<inline-formula><mml:math id="M946" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>
System Calculations, ORNL/CDIAC-105, Carbon Dioxide Information Analysis
Center, Oak Ridge National Laboratory, U.S. Department of Energy, Oak Ridge,
TN, USA, <ext-link xlink:href="https://doi.org/10.15485/1464255" ext-link-type="DOI">10.15485/1464255</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx47"><?xmltex \def\ref@label{{Li et~al.(1969)}}?><label>Li et al.(1969)</label><?label li_degree_1969?><mixed-citation>Li, Y.-H., Takahashi, T., and Broecker, W. S.: Degree of saturation of
CaCO<inline-formula><mml:math id="M947" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> in the oceans, J. Geophys. Res., 74, 5507–5525,
<ext-link xlink:href="https://doi.org/10.1029/JC074i023p05507" ext-link-type="DOI">10.1029/JC074i023p05507</ext-link>, 1969.</mixed-citation></ref>
      <?pagebreak page44?><ref id="bib1.bibx48"><?xmltex \def\ref@label{{Lueker et~al.(2000)}}?><label>Lueker et al.(2000)</label><?label lueker_ocean_2000?><mixed-citation>Lueker, T. J., Dickson, A. G., and Keeling, C. D.: Ocean <inline-formula><mml:math id="M948" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>CO<inline-formula><mml:math id="M949" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> calculated from dissolved inorganic carbon, alkalinity, and equations for K<inline-formula><mml:math id="M950" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:math></inline-formula> and K<inline-formula><mml:math id="M951" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>: validation based on laboratory measurements of CO<inline-formula><mml:math id="M952" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> in gas and seawater at equilibrium, Mar. Chem., 70, 105–119,
<ext-link xlink:href="https://doi.org/10.1016/S0304-4203(00)00022-0" ext-link-type="DOI">10.1016/S0304-4203(00)00022-0</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx49"><?xmltex \def\ref@label{{Maclaurin(2016)}}?><label>Maclaurin(2016)</label><?label maclaurin_autograd_2016?><mixed-citation>Maclaurin, D.: Autograd: Automatic Differentiation for Python, in:
Modeling, Inference and Optimization with Composable Differentiable
Procedures, PhD thesis, Harvard University, Cambridge, MA, USA, 41–57, available at: <uri>https://dougalmaclaurin.com/phd-thesis.pdf</uri> (last access: 23 December 2021), 2016.</mixed-citation></ref>
      <ref id="bib1.bibx50"><?xmltex \def\ref@label{{Mehrbach et~al.(1973)}}?><label>Mehrbach et al.(1973)</label><?label mehrbach_measurement_1973?><mixed-citation>Mehrbach, C., Culberson, C. H., Hawley, J. E., and Pytkowicz, R. M.:
Measurement of the Apparent Dissociation Constants of Carbonic Acid
in Seawater at Atmospheric Pressure, Limnol. Oceanogr., 18, 897–907,
<ext-link xlink:href="https://doi.org/10.4319/lo.1973.18.6.0897" ext-link-type="DOI">10.4319/lo.1973.18.6.0897</ext-link>, 1973.</mixed-citation></ref>
      <ref id="bib1.bibx51"><?xmltex \def\ref@label{{Millero(1979)}}?><label>Millero(1979)</label><?label millero_thermodynamics_1979?><mixed-citation>Millero, F. J.: The thermodynamics of the carbonate system in seawater,
Geochim. Cosmochim. Acta, 43, 1651–1661, <ext-link xlink:href="https://doi.org/10.1016/0016-7037(79)90184-4" ext-link-type="DOI">10.1016/0016-7037(79)90184-4</ext-link>,
1979.</mixed-citation></ref>
      <ref id="bib1.bibx52"><?xmltex \def\ref@label{{Millero(1983)}}?><label>Millero(1983)</label><?label millero_influence_1983?><mixed-citation>
Millero, F. J.: Influence of pressure on chemical processes in the sea, in:
Chemical Oceanography, edited by: Riley, J. P. and Chester, R., Academic
Press, 1983.</mixed-citation></ref>
      <ref id="bib1.bibx53"><?xmltex \def\ref@label{{Millero(1995)}}?><label>Millero(1995)</label><?label millero_thermodynamics_1995?><mixed-citation>Millero, F. J.: Thermodynamics of the carbon dioxide system in the oceans,
Geochim. Cosmochim. Acta, 59, 661–677, <ext-link xlink:href="https://doi.org/10.1016/0016-7037(94)00354-O" ext-link-type="DOI">10.1016/0016-7037(94)00354-O</ext-link>,
1995.</mixed-citation></ref>
      <ref id="bib1.bibx54"><?xmltex \def\ref@label{{Millero(2000)}}?><label>Millero(2000)</label><?label millero_carbonate_2000?><mixed-citation>Millero, F. J.: The Carbonate System in Marine Environments, in:
Chemical Processes in Marine Environments, edited by: Gianguzza, A.,
Pelizetti, E., and Sammartano, S., Environmental Science,
Springer, Berlin, Heidelberg, 9–41, <ext-link xlink:href="https://doi.org/10.1007/978-3-662-04207-6_2" ext-link-type="DOI">10.1007/978-3-662-04207-6_2</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx55"><?xmltex \def\ref@label{{Millero(2010)}}?><label>Millero(2010)</label><?label millero_carbonate_2010?><mixed-citation>Millero, F. J.: Carbonate constants for estuarine waters, Mar. Freshw. Res., 61, 139–142, <ext-link xlink:href="https://doi.org/10.1071/MF09254" ext-link-type="DOI">10.1071/MF09254</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx56"><?xmltex \def\ref@label{{Millero et~al.(2002)}}?><label>Millero et al.(2002)</label><?label millero_dissociation_2002?><mixed-citation>Millero, F. J., Pierrot, D., Lee, K., Wanninkhof, R., Feely, R., Sabine, C. L., Key, R. M., and Takahashi, T.: Dissociation constants for carbonic acid determined from field measurements, Deep-Sea Res. Pt. I, 49, 1705–1723,
<ext-link xlink:href="https://doi.org/10.1016/S0967-0637(02)00093-6" ext-link-type="DOI">10.1016/S0967-0637(02)00093-6</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx57"><?xmltex \def\ref@label{{Millero et~al.(2006)}}?><label>Millero et al.(2006)</label><?label millero_dissociation_2006?><mixed-citation>Millero, F. J., Graham, T. B., Huang, F., Bustos-Serrano, H., and Pierrot, D.: Dissociation constants of carbonic acid in seawater as a function of salinity and temperature, Mar. Chem., 100, 80–94,
<ext-link xlink:href="https://doi.org/10.1016/j.marchem.2005.12.001" ext-link-type="DOI">10.1016/j.marchem.2005.12.001</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx58"><?xmltex \def\ref@label{{Millero et~al.(2008)}}?><label>Millero et al.(2008)</label><?label millero_composition_2008?><mixed-citation>Millero, F. J., Feistel, R., Wright, D. G., and McDougall, T. J.: The
composition of Standard Seawater and the definition of the
Reference-Composition Salinity Scale, Deep-Sea Res. Pt. I, 55, 50–72, <ext-link xlink:href="https://doi.org/10.1016/j.dsr.2007.10.001" ext-link-type="DOI">10.1016/j.dsr.2007.10.001</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx59"><?xmltex \def\ref@label{{Mojica~Prieto and Millero(2002)}}?><label>Mojica Prieto and Millero(2002)</label><?label mojica_prieto_values_2002?><mixed-citation>Mojica Prieto, F. J. and Millero, F. J.: The values of pK<inline-formula><mml:math id="M953" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:math></inline-formula> <inline-formula><mml:math id="M954" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> pK<inline-formula><mml:math id="M955" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> for the dissociation of carbonic acid in seawater, Geochim. Cosmochim. Acta, 66, 2529–2540,
<ext-link xlink:href="https://doi.org/10.1016/S0016-7037(02)00855-4" ext-link-type="DOI">10.1016/S0016-7037(02)00855-4</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx60"><?xmltex \def\ref@label{{Morris and Riley(1966)}}?><label>Morris and Riley(1966)</label><?label morris_bromide_chlorinity_1966?><mixed-citation>Morris, A. W. and Riley, J. P.: The bromide/chlorinity and sulphate/chlorinity ratio in sea water, Deep-Sea Res., 13, 699–705,
<ext-link xlink:href="https://doi.org/10.1016/0011-7471(66)90601-2" ext-link-type="DOI">10.1016/0011-7471(66)90601-2</ext-link>, 1966.</mixed-citation></ref>
      <ref id="bib1.bibx61"><?xmltex \def\ref@label{{Muller and Bleie(2008)}}?><label>Muller and Bleie(2008)</label><?label muller_estimating_2008?><mixed-citation>Muller, F. L. L. and Bleie, B.: Estimating the organic acid contribution to
coastal seawater alkalinity by potentiometric titrations in a closed cell,
Anal. Chim. Acta, 619, 183–191, <ext-link xlink:href="https://doi.org/10.1016/j.aca.2008.05.018" ext-link-type="DOI">10.1016/j.aca.2008.05.018</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx62"><?xmltex \def\ref@label{{Munhoven(2013)}}?><label>Munhoven(2013)</label><?label munhoven_mathematics_2013?><mixed-citation>Munhoven, G.: Mathematics of the total alkalinity–pH equation – pathway to robust and universal solution algorithms: the SolveSAPHE package v1.0.1, Geosci. Model Dev., 6, 1367–1388, <ext-link xlink:href="https://doi.org/10.5194/gmd-6-1367-2013" ext-link-type="DOI">10.5194/gmd-6-1367-2013</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx63"><?xmltex \def\ref@label{{Munhoven(2021)}}?><label>Munhoven(2021)</label><?label munhoven_solvesaphe_r2_2021?><mixed-citation>Munhoven, G.: SolveSAPHE-r2 (v2.0.1): revisiting and extending the Solver Suite for Alkalinity-PH Equations for usage with CO<inline-formula><mml:math id="M956" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, HCO<inline-formula><mml:math id="M957" display="inline"><mml:mrow><mml:msubsup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn><mml:mi mathvariant="normal">−</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> or CO<inline-formula><mml:math id="M958" display="inline"><mml:mrow><mml:msubsup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="normal">−</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> input data, Geosci. Model Dev., 14, 4225–4240, <ext-link xlink:href="https://doi.org/10.5194/gmd-14-4225-2021" ext-link-type="DOI">10.5194/gmd-14-4225-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx64"><?xmltex \def\ref@label{{Orr(2011)}}?><label>Orr(2011)</label><?label orr_recent_2011?><mixed-citation>Orr, J. C.: Recent and future changes in ocean carbonate chemistry, in: Ocean
Acidification, edited by: Gattuso, J. P. and Hansson, L., Oxford
University Press, 41–66, <ext-link xlink:href="https://doi.org/10.1093/oso/9780199591091.003.0008" ext-link-type="DOI">10.1093/oso/9780199591091.003.0008</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx65"><?xmltex \def\ref@label{{Orr and Epitalon(2015)}}?><label>Orr and Epitalon(2015)</label><?label orr_improved_2015?><mixed-citation>Orr, J. C. and Epitalon, J.-M.: Improved routines to model the ocean carbonate system: mocsy 2.0, Geosci. Model Dev., 8, 485–499, <ext-link xlink:href="https://doi.org/10.5194/gmd-8-485-2015" ext-link-type="DOI">10.5194/gmd-8-485-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx66"><?xmltex \def\ref@label{{Orr et~al.(2015)Orr, Epitalon, and Gattuso}}?><label>Orr et al.(2015)Orr, Epitalon, and Gattuso</label><?label orr_comparison_2015?><mixed-citation>Orr, J. C., Epitalon, J.-M., and Gattuso, J.-P.: Comparison of ten packages that compute ocean carbonate chemistry, Biogeosciences, 12, 1483–1510, <ext-link xlink:href="https://doi.org/10.5194/bg-12-1483-2015" ext-link-type="DOI">10.5194/bg-12-1483-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx67"><?xmltex \def\ref@label{{Orr et~al.(2017)}}?><label>Orr et al.(2017)</label><?label orr_biogeochemical_2017?><mixed-citation>Orr, J. C., Najjar, R. G., Aumont, O., Bopp, L., Bullister, J. L., Danabasoglu, G., Doney, S. C., Dunne, J. P., Dutay, J.-C., Graven, H., Griffies, S. M., John, J. G., Joos, F., Levin, I., Lindsay, K., Matear, R. J., McKinley, G. A., Mouchet, A., Oschlies, A., Romanou, A., Schlitzer, R., Tagliabue, A., Tanhua, T., and Yool, A.: Biogeochemical protocols and diagnostics for the CMIP6 Ocean Model Intercomparison Project (OMIP), Geosci. Model Dev., 10, 2169–2199, <ext-link xlink:href="https://doi.org/10.5194/gmd-10-2169-2017" ext-link-type="DOI">10.5194/gmd-10-2169-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx68"><?xmltex \def\ref@label{{Orr et~al.(2018)}}?><label>Orr et al.(2018)</label><?label orr_routine_2018?><mixed-citation>Orr, J. C., Epitalon, J.-M., Dickson, A. G., and Gattuso, J.-P.: Routine
uncertainty propagation for the marine carbon dioxide system, Mar.
Chem., 207, 84–107, <ext-link xlink:href="https://doi.org/10.1016/j.marchem.2018.10.006" ext-link-type="DOI">10.1016/j.marchem.2018.10.006</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx69"><?xmltex \def\ref@label{{Park(1969)}}?><label>Park(1969)</label><?label park_oceanic_1969?><mixed-citation>Park, P. K.: Oceanic CO<inline-formula><mml:math id="M959" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> system: an evaluation of ten methods
of investigation, Limnol. Oceanogr., 14, 179–186,
<ext-link xlink:href="https://doi.org/10.4319/lo.1969.14.2.0179" ext-link-type="DOI">10.4319/lo.1969.14.2.0179</ext-link>, 1969.</mixed-citation></ref>
      <ref id="bib1.bibx70"><?xmltex \def\ref@label{{Peng et~al.(1987)}}?><label>Peng et al.(1987)</label><?label peng_seasonal_1987?><mixed-citation>Peng, T.-H., Takahashi, T., Broecker, W. S., and Olafsson, J.: Seasonal
variability of carbon dioxide, nutrients and oxygen in the northern North
Atlantic surface water: observations and a model, Tellus B, 39, 439–458,
<ext-link xlink:href="https://doi.org/10.3402/tellusb.v39i5.15361" ext-link-type="DOI">10.3402/tellusb.v39i5.15361</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx71"><?xmltex \def\ref@label{{Perez and Fraga(1987)}}?><label>Perez and Fraga(1987)</label><?label perez_association_1987?><mixed-citation>Perez, F. F. and Fraga, F.: Association constant of fluoride and hydrogen ions in seawater, Mar. Chem., 21, 161–168, <ext-link xlink:href="https://doi.org/10.1016/0304-4203(87)90036-3" ext-link-type="DOI">10.1016/0304-4203(87)90036-3</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx72"><?xmltex \def\ref@label{{Pierrot et~al.(2006)}}?><label>Pierrot et al.(2006)</label><?label pierrot_ms_2006?><mixed-citation>Pierrot, D., Lewis, E., and Wallace, D. W. R.: MS Excel Program
Developed for CO<inline-formula><mml:math id="M960" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> System Calculations, available at: <uri>https://cdiac.ess-dive.lbl.gov/ftp/co2sys/CO2SYS_calc_XLS_v2.1/</uri> (last access: 23 December 2021),
2006.</mixed-citation></ref>
      <ref id="bib1.bibx73"><?xmltex \def\ref@label{{Pierrot et~al.(2021)}}?><label>Pierrot et al.(2021)</label><?label pierrot_ms_2021?><mixed-citation>Pierrot, D., Epitalon, J.-M., Orr, J. C., Lewis, E. R., and Wallace, D.: MS
Excel program developed for CO<inline-formula><mml:math id="M961" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> system calculations –
version 3.0, available at: <uri>https://github.com/dpierrot/co2sys_xl</uri>, last access: 23 December 2021.</mixed-citation></ref>
      <ref id="bib1.bibx74"><?xmltex \def\ref@label{{Raimondi et~al.(2019)}}?><label>Raimondi et al.(2019)</label><?label raimondi_internal_2019?><mixed-citation>Raimondi, L., Matthews, J. B. R., Atamanchuk, D., Azetsu-Scott, K., and
Wallace, D. W. R.: The internal consistency of the marine carbon dioxide
system for high latitude shipboard and <italic>in situ</italic> monitoring, Mar.
Chem., 213, 49–70, <ext-link xlink:href="https://doi.org/10.1016/j.marchem.2019.03.001" ext-link-type="DOI">10.1016/j.marchem.2019.03.001</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx75"><?xmltex \def\ref@label{{Revelle and Suess(1957)}}?><label>Revelle and Suess(1957)</label><?label revelle_carbon_1957?><mixed-citation>Revelle, R. and Suess, H. E.: Carbon Dioxide Exchange Between
Atmosphere and Ocean and the Question of an Increase of Atmospheric
CO<inline-formula><mml:math id="M962" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> during the Past Decades, Tellus, 9, 18–27,
<ext-link xlink:href="https://doi.org/10.3402/tellusa.v9i1.9075" ext-link-type="DOI">10.3402/tellusa.v9i1.9075</ext-link>, 1957.</mixed-citation></ref>
      <ref id="bib1.bibx76"><?xmltex \def\ref@label{{Richier et~al.(2018)}}?><label>Richier et al.(2018)</label><?label richier_geographical_2018?><mixed-citation>Richier, S., Achterberg, E. P., Humphreys, M. P., Poulton, A. J., Suggett,
D. J., Tyrrell, T., and Moore, C. M.: Geogra<?pagebreak page45?>phical CO<inline-formula><mml:math id="M963" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>
sensitivity of phytoplankton correlates with ocean buffer capacity, Glob.
Change Biol., 24, 4438–4452, <ext-link xlink:href="https://doi.org/10.1111/gcb.14324" ext-link-type="DOI">10.1111/gcb.14324</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx77"><?xmltex \def\ref@label{{Riley(1965)}}?><label>Riley(1965)</label><?label riley_occurrence_1965?><mixed-citation>Riley, J. P.: The occurrence of anomalously high fluoride concentrations in the North Atlantic, Deep-Sea Res., 12, 219–220,
<ext-link xlink:href="https://doi.org/10.1016/0011-7471(65)90027-6" ext-link-type="DOI">10.1016/0011-7471(65)90027-6</ext-link>, 1965.</mixed-citation></ref>
      <ref id="bib1.bibx78"><?xmltex \def\ref@label{{Riley and Tongudai(1967)}}?><label>Riley and Tongudai(1967)</label><?label riley_major_1967?><mixed-citation>Riley, J. P. and Tongudai, M.: The major cation/chlorinity ratios in sea water, Chem. Geol., 2, 263–269, <ext-link xlink:href="https://doi.org/10.1016/0009-2541(67)90026-5" ext-link-type="DOI">10.1016/0009-2541(67)90026-5</ext-link>, 1967.</mixed-citation></ref>
      <ref id="bib1.bibx79"><?xmltex \def\ref@label{{Roy et~al.(1993)}}?><label>Roy et al.(1993)</label><?label roy_dissociation_1993?><mixed-citation>Roy, R. N., Roy, L. N., Vogel, K. M., Porter-Moore, C., Pearson, T., Good,
C. E., Millero, F. J., and Campbell, D. M.: The dissociation constants of
carbonic acid in seawater at salinities 5 to 45 and temperatures 0 to
45 <inline-formula><mml:math id="M964" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, Mar. Chem., 44, 249–267, <ext-link xlink:href="https://doi.org/10.1016/0304-4203(93)90207-5" ext-link-type="DOI">10.1016/0304-4203(93)90207-5</ext-link>, 1993.</mixed-citation></ref>
      <ref id="bib1.bibx80"><?xmltex \def\ref@label{{Schockman and Byrne(2021)}}?><label>Schockman and Byrne(2021)</label><?label schockman_spectrophotometric_2021?><mixed-citation>Schockman, K. M. and Byrne, R. H.: Spectrophotometric Determination of the
Bicarbonate Dissociation Constant in Seawater, Geochim. Cosmochim.
Acta, 300, 231–245, <ext-link xlink:href="https://doi.org/10.1016/j.gca.2021.02.008" ext-link-type="DOI">10.1016/j.gca.2021.02.008</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx81"><?xmltex \def\ref@label{{Schoonen and Barnes(1988)}}?><label>Schoonen and Barnes(1988)</label><?label schoonen_approximation_1988?><mixed-citation>Schoonen, M. A. A. and Barnes, H. L.: An approximation of the second
dissociation constant for H<inline-formula><mml:math id="M965" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>S, Geochim. Cosmochim. Acta,
52, 649–654, <ext-link xlink:href="https://doi.org/10.1016/0016-7037(88)90326-2" ext-link-type="DOI">10.1016/0016-7037(88)90326-2</ext-link>, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx82"><?xmltex \def\ref@label{{Sharp and Byrne(2019)}}?><label>Sharp and Byrne(2019)</label><?label sharp_carbonate_2019?><mixed-citation>Sharp, J. D. and Byrne, R. H.: Carbonate ion concentrations in seawater:
Spectrophotometric determination at ambient temperatures and evaluation of
propagated calculation uncertainties, Mar. Chem., 209, 70–80,
<ext-link xlink:href="https://doi.org/10.1016/j.marchem.2018.12.001" ext-link-type="DOI">10.1016/j.marchem.2018.12.001</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx83"><?xmltex \def\ref@label{{Sharp and Byrne(2020)}}?><label>Sharp and Byrne(2020)</label><?label sharp_interpreting_2020?><mixed-citation>Sharp, J. D. and Byrne, R. H.: Interpreting measurements of total alkalinity in marine and estuarine waters in the presence of proton-binding organic matter, Deep-Sea Res. Pt. I, 165, 103 338, <ext-link xlink:href="https://doi.org/10.1016/j.dsr.2020.103338" ext-link-type="DOI">10.1016/j.dsr.2020.103338</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx84"><?xmltex \def\ref@label{{Sharp et~al.(2020)}}?><label>Sharp et al.(2020)</label><?label sharp_co2sysv3_2020?><mixed-citation>Sharp, J. D., Pierrot, D., Humphreys, M. P., Epitalon, J.-M., Orr, J. C.,
Lewis, E. R., and Wallace, D. W.: CO2SYSv3 for MATLAB, Zenodo [code],
<ext-link xlink:href="https://doi.org/10.5281/zenodo.3952803" ext-link-type="DOI">10.5281/zenodo.3952803</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx85"><?xmltex \def\ref@label{{Sillén et~al.(1964)}}?><label>Sillén et al.(1964)</label><?label sillen_stability_1964?><mixed-citation>
Sillén, L. G., Martell, A. E., and Bjerrum, J.: Stability constants of
metal-ion complexes, special publication, 17th edn., Chemical Society, London, UK, 1964.</mixed-citation></ref>
      <ref id="bib1.bibx86"><?xmltex \def\ref@label{{Sulpis et~al.(2020)}}?><label>Sulpis et al.(2020)</label><?label sulpis_current_2020?><mixed-citation>Sulpis, O., Lauvset, S. K., and Hagens, M.: Current estimates of K<inline-formula><mml:math id="M966" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:math></inline-formula>* and K<inline-formula><mml:math id="M967" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>* appear inconsistent with measured CO<inline-formula><mml:math id="M968" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> system parameters in cold oceanic regions, Ocean Sci., 16, 847–862, <ext-link xlink:href="https://doi.org/10.5194/os-16-847-2020" ext-link-type="DOI">10.5194/os-16-847-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx87"><?xmltex \def\ref@label{{Takahashi et~al.(1982)}}?><label>Takahashi et al.(1982)</label><?label takahashi_carbonate_1982?><mixed-citation>
Takahashi, T., Williams, R. T., and Bos, D. L.: Carbonate Chemistry, in:
GEOSECS Pacific Expedition: Hydrographic Data, vol. 3, 77–105,
National Science Foundation, Washington, D.C., 1982.</mixed-citation></ref>
      <ref id="bib1.bibx88"><?xmltex \def\ref@label{{Takahashi et~al.(2009)}}?><label>Takahashi et al.(2009)</label><?label takahashi_climatological_2009?><mixed-citation>Takahashi, T., Sutherland, S. C., Wanninkhof, R., Sweeney, C., Feely, R. A.,
Chipman, D. W., Hales, B., Friederich, G., Chavez, F., Sabine, C., Watson,
A., Bakker, D. C., Schuster, U., Metzl, N., Yoshikawa-Inoue, H., Ishii, M.,
Midorikawa, T., Nojiri, Y., Körtzinger, A., Steinhoff, T., Hoppema, M.,
Olafsson, J., Arnarson, T. S., Tilbrook, B., Johannessen, T., Olsen, A.,
Bellerby, R., Wong, C., Delille, B., Bates, N., and de Baar, H. J.:
Climatological mean and decadal change in surface ocean
<italic>p</italic>CO<inline-formula><mml:math id="M969" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, and net sea–air CO<inline-formula><mml:math id="M970" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> flux
over the global oceans, Deep-Sea Res. Pt. II, 56, 554–577,
<ext-link xlink:href="https://doi.org/10.1016/j.dsr2.2008.12.009" ext-link-type="DOI">10.1016/j.dsr2.2008.12.009</ext-link>, 2009.
</mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bibx89"><?xmltex \def\ref@label{{Turner et~al.(2016)}}?><label>Turner et al.(2016)</label><?label turner_toward_2016?><mixed-citation>Turner, D. R., Achterberg, E. P., Chen, C.-T. A., Clegg, S. L., Hatje, V.,
Maldonado, M. T., Sander, S. G., Berg, V. D., G, C. M., and Wells, M.: Toward
a Quality-Controlled and Accessible Pitzer Model for Seawater and
Related Systems, Front. Mar. Sci., 3, 139, <ext-link xlink:href="https://doi.org/10.3389/fmars.2016.00139" ext-link-type="DOI">10.3389/fmars.2016.00139</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx90"><?xmltex \def\ref@label{{Ulfsbo et~al.(2015)}}?><label>Ulfsbo et al.(2015)</label><?label ulfsbo_modelling_2015?><mixed-citation>Ulfsbo, A., Kuliński, K., Anderson, L. G., and Turner, D. R.: Modelling
organic alkalinity in the Baltic Sea using a Humic-Pitzer approach,
Mar. Chem., 168, 18–26, <ext-link xlink:href="https://doi.org/10.1016/j.marchem.2014.10.013" ext-link-type="DOI">10.1016/j.marchem.2014.10.013</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx91"><?xmltex \def\ref@label{{Uppström(1974)}}?><label>Uppström(1974)</label><?label uppstrom_boron_chlorinity_1974?><mixed-citation>Uppström, L. R.: The boron/chlorinity ratio of deep-sea water from the
Pacific Ocean, Deep-Sea Res., 21, 161–162,
<ext-link xlink:href="https://doi.org/10.1016/0011-7471(74)90074-6" ext-link-type="DOI">10.1016/0011-7471(74)90074-6</ext-link>, 1974.</mixed-citation></ref>
      <ref id="bib1.bibx92"><?xmltex \def\ref@label{{van Heuven et~al.(2011)}}?><label>van Heuven et al.(2011)</label><?label van_heuven_co2sys_2011?><mixed-citation>van Heuven, S., Pierrot, D., Rae, J. W. B., Lewis, E., and Wallace, D. W. R.:
CO<inline-formula><mml:math id="M971" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>SYS v 1.1, MATLAB program developed for CO<inline-formula><mml:math id="M972" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> system calculations, ORNL/CDIAC-105b, Carbon Dioxide Information Analysis Center, Oak Ridge National Laboratory, U.S. Department of Energy, Oak Ridge, TN, USA,
available at: <uri>https://cdiac.ess-dive.lbl.gov/ftp/co2sys/CO2SYS_calc_MATLAB_v1.1/</uri> (last access: 23 December 2021), 2011.</mixed-citation></ref>
      <ref id="bib1.bibx93"><?xmltex \def\ref@label{{Velo et~al.(2010)}}?><label>Velo et al.(2010)</label><?label velo_carina_2010?><mixed-citation>Velo, A., Pérez, F. F., Lin, X., Key, R. M., Tanhua, T., de la Paz, M., Olsen, A., van Heuven, S., Jutterström, S., and Ríos, A. F.: CARINA data synthesis project: pH data scale unification and cruise adjustments, Earth Syst. Sci. Data, 2, 133–155, <ext-link xlink:href="https://doi.org/10.5194/essd-2-133-2010" ext-link-type="DOI">10.5194/essd-2-133-2010</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx94"><?xmltex \def\ref@label{{Waters et~al.(2014)}}?><label>Waters et al.(2014)</label><?label waters_corrigendum_2014?><mixed-citation>Waters, J., Millero, F. J., and Woosley, R. J.: Corrigendum to “The free
proton concentration scale for seawater pH”, [MARCHE: 149 (2013)
8–22], Mar. Chem., 165, 66–67, <ext-link xlink:href="https://doi.org/10.1016/j.marchem.2014.07.004" ext-link-type="DOI">10.1016/j.marchem.2014.07.004</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx95"><?xmltex \def\ref@label{{Waters and Millero(2013)}}?><label>Waters and Millero(2013)</label><?label waters_free_2013?><mixed-citation>Waters, J. F. and Millero, F. J.: The free proton concentration scale for
seawater pH, Mar. Chem., 149, 8–22, <ext-link xlink:href="https://doi.org/10.1016/j.marchem.2012.11.003" ext-link-type="DOI">10.1016/j.marchem.2012.11.003</ext-link>,
2013.</mixed-citation></ref>
      <ref id="bib1.bibx96"><?xmltex \def\ref@label{{Weiss(1974)}}?><label>Weiss(1974)</label><?label weiss_carbon_1974?><mixed-citation>Weiss, R. F.: Carbon dioxide in water and seawater: the solubility of a
non-ideal gas, Mar. Chem., 2, 203–215, <ext-link xlink:href="https://doi.org/10.1016/0304-4203(74)90015-2" ext-link-type="DOI">10.1016/0304-4203(74)90015-2</ext-link>,
1974.</mixed-citation></ref>
      <ref id="bib1.bibx97"><?xmltex \def\ref@label{{Weiss and Price(1980)}}?><label>Weiss and Price(1980)</label><?label weiss_nitrous_1980?><mixed-citation>Weiss, R. F. and Price, B. A.: Nitrous oxide solubility in water and seawater, Mar. Chem., 8, 347–359, <ext-link xlink:href="https://doi.org/10.1016/0304-4203(80)90024-9" ext-link-type="DOI">10.1016/0304-4203(80)90024-9</ext-link>, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx98"><?xmltex \def\ref@label{{Wolf-Gladrow et~al.(2007)}}?><label>Wolf-Gladrow et al.(2007)</label><?label wolfgladrow_total_2007?><mixed-citation>Wolf-Gladrow, D. A., Zeebe, R. E., Klaas, C., Körtzinger, A., and Dickson,
A. G.: Total alkalinity: The explicit conservative expression and its
application to biogeochemical processes, Mar. Chem., 106, 287–300,
<ext-link xlink:href="https://doi.org/10.1016/j.marchem.2007.01.006" ext-link-type="DOI">10.1016/j.marchem.2007.01.006</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx99"><?xmltex \def\ref@label{{Xu et~al.(2017)Xu, Pierrot, and Cai}}?><label>Xu et al.(2017)Xu, Pierrot, and Cai</label><?label xu_ocean_2017?><mixed-citation>Xu, Y.-Y., Pierrot, D., and Cai, W.-J.: Ocean carbonate system computation for anoxic waters using an updated CO2SYS program, Mar. Chem., 195, 90–93,
<ext-link xlink:href="https://doi.org/10.1016/j.marchem.2017.07.002" ext-link-type="DOI">10.1016/j.marchem.2017.07.002</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx100"><?xmltex \def\ref@label{{Yao and Millero(1995)}}?><label>Yao and Millero(1995)</label><?label yao_chemistry_1995?><mixed-citation>Yao, W. and Millero, F. J.: The chemistry of the anoxic waters in the
Framvaren Fjord, Norway, Aquat. Geochem., 1, 53–88,
<ext-link xlink:href="https://doi.org/10.1007/BF01025231" ext-link-type="DOI">10.1007/BF01025231</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx101"><?xmltex \def\ref@label{{Zeebe and Wolf-Gladrow(2001)}}?><label>Zeebe and Wolf-Gladrow(2001)</label><?label zeebe_co2_2001?><mixed-citation>Zeebe, R. E. and Wolf-Gladrow, D.: CO<inline-formula><mml:math id="M973" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> in Seawater: Equilibrium, Kinetics, Isotopes, Elsevier Oceanography Series 65,
Elsevier B.V., Amsterdam, the Netherlands, 2001.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>PyCO2SYS v1.8: marine carbonate system calculations in Python</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Abril et al.(2015)</label><mixed-citation>
Abril, G., Bouillon, S., Darchambeau, F., Teodoru, C. R., Marwick, T. R., Tamooh, F., Ochieng Omengo, F., Geeraert, N., Deirmendjian, L., Polsenaere, P., and Borges, A. V.: Technical Note: Large overestimation of <i>p</i>CO<sub>2</sub> calculated from pH and alkalinity in acidic, organic-rich freshwaters, Biogeosciences, 12, 67–78, <a href="https://doi.org/10.5194/bg-12-67-2015" target="_blank">https://doi.org/10.5194/bg-12-67-2015</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Álvarez et al.(2014)</label><mixed-citation>
Álvarez, M., Sanleón-Bartolomé, H., Tanhua, T., Mintrop, L., Luchetta, A., Cantoni, C., Schroeder, K., and Civitarese, G.: The CO<sub>2</sub> system in the Mediterranean Sea: a basin wide perspective, Ocean Sci., 10, 69–92, <a href="https://doi.org/10.5194/os-10-69-2014" target="_blank">https://doi.org/10.5194/os-10-69-2014</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Bach(2015)</label><mixed-citation>
Bach, L. T.: Reconsidering the role of carbonate ion concentration in calcification by marine organisms, Biogeosciences, 12, 4939–4951, <a href="https://doi.org/10.5194/bg-12-4939-2015" target="_blank">https://doi.org/10.5194/bg-12-4939-2015</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Bakker et al.(2016)</label><mixed-citation>
Bakker, D. C. E., Pfeil, B., Landa, C. S., Metzl, N., O'Brien, K. M., Olsen, A., Smith, K., Cosca, C., Harasawa, S., Jones, S. D., Nakaoka, S., Nojiri, Y., Schuster, U., Steinhoff, T., Sweeney, C., Takahashi, T., Tilbrook, B., Wada, C., Wanninkhof, R., Alin, S. R., Balestrini, C. F., Barbero, L., Bates, N. R., Bianchi, A. A., Bonou, F., Boutin, J., Bozec, Y., Burger, E. F., Cai, W.-J., Castle, R. D., Chen, L., Chierici, M., Currie, K., Evans, W., Featherstone, C., Feely, R. A., Fransson, A., Goyet, C., Greenwood, N., Gregor, L., Hankin, S., Hardman-Mountford, N. J., Harlay, J., Hauck, J., Hoppema, M., Humphreys, M. P., Hunt, C. W., Huss, B., Ibánhez, J. S. P., Johannessen, T., Keeling, R., Kitidis, V., Körtzinger, A., Kozyr, A., Krasakopoulou, E., Kuwata, A., Landschützer, P., Lauvset, S. K., Lefèvre, N., Lo Monaco, C., Manke, A., Mathis, J. T., Merlivat, L., Millero, F. J., Monteiro, P. M. S., Munro, D. R., Murata, A., Newberger, T., Omar, A. M., Ono, T., Paterson, K., Pearce, D., Pierrot, D., Robbins, L. L., Saito, S., Salisbury, J., Schlitzer, R., Schneider, B., Schweitzer, R., Sieger, R., Skjelvan, I., Sullivan, K. F., Sutherland, S. C., Sutton, A. J., Tadokoro, K., Telszewski, M., Tuma, M., van Heuven, S. M. A. C., Vandemark, D., Ward, B., Watson, A. J., and Xu, S.: A multi-decade record of high-quality <i>f</i>CO<sub>2</sub> data in version 3 of the Surface Ocean CO2 Atlas (SOCAT), Earth Syst. Sci. Data, 8, 383–413, <a href="https://doi.org/10.5194/essd-8-383-2016" target="_blank">https://doi.org/10.5194/essd-8-383-2016</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Bradbury et al.(2018)</label><mixed-citation>
Bradbury, J., Frostig, R., Hawkins, P., Johnson, M. J., Leary, C., Maclaurin,
D., and Wanderman-Milne, S.: JAX: composable transformations of
Python+NumPy programs, GitHub, available at: <a href="http://github.com/google/jax" target="_blank"/> (last access: 23 December 2021), 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Branson(2018)</label><mixed-citation>
Branson, O.: oscarbranson/cbsyst: beta, Zenodo [code], <a href="https://doi.org/10.5281/zenodo.1402261" target="_blank">https://doi.org/10.5281/zenodo.1402261</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Broecker et al.(1979)</label><mixed-citation>
Broecker, W. S., Takahashi, T., Simpson, H. J., and Peng, T.-H.: Fate of
Fossil Fuel Carbon Dioxide and the Global Carbon Budget,
Science, 206, 409–418, <a href="https://doi.org/10.1126/science.206.4417.409" target="_blank">https://doi.org/10.1126/science.206.4417.409</a>, 1979.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Cai and Wang(1998)</label><mixed-citation>
Cai, W.-J. and Wang, Y.: The chemistry, fluxes, and sources of carbon dioxide
in the estuarine waters of the Satilla and Altamaha Rivers, Georgia,
Limnol. Oceanogr., 43, 657–668, <a href="https://doi.org/10.4319/lo.1998.43.4.0657" target="_blank">https://doi.org/10.4319/lo.1998.43.4.0657</a>, 1998.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Cai et al.(2017)</label><mixed-citation>
Cai, W.-J., Huang, W.-J., Luther, G. W., Pierrot, D., Li, M., Testa, J., Xue,
M., Joesoef, A., Mann, R., Brodeur, J., Xu, Y.-Y., Chen, B., Hussain, N.,
Waldbusser, G. G., Cornwell, J., and Kemp, W. M.: Redox reactions and weak
buffering capacity lead to acidification in the Chesapeake Bay, Nat.
Commun., 8, 369, <a href="https://doi.org/10.1038/s41467-017-00417-7" target="_blank">https://doi.org/10.1038/s41467-017-00417-7</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Cantrell et al.(1990)</label><mixed-citation>
Cantrell, K. J., Serkiz, S. M., and Perdue, E. M.: Evaluation of acid
neutralizing capacity data for solutions containing natural organic acids,
Geochim. Cosmochim. Acta, 54, 1247–1254,
<a href="https://doi.org/10.1016/0016-7037(90)90150-J" target="_blank">https://doi.org/10.1016/0016-7037(90)90150-J</a>, 1990.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Clarke et al.(2017)</label><mixed-citation>
Clarke, J. S., Achterberg, E. P., Connelly, D. P., Schuster, U., and Mowlem,
M.: Developments in marine <i>p</i>CO<sub>2</sub> measurement
technology; towards sustained <i>in situ</i> observations, Trends Anal.
Chem., 88, 53–61, <a href="https://doi.org/10.1016/j.trac.2016.12.008" target="_blank">https://doi.org/10.1016/j.trac.2016.12.008</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Clegg and Whitfield(1995)</label><mixed-citation>
Clegg, S. L. and Whitfield, M.: A chemical model of seawater including
dissolved ammonia and the stoichiometric dissociation constant of ammonia in
estuarine water and seawater from −2 to 40&thinsp;°C, Geochim. Cosmochim. Acta, 59, 2403–2421, <a href="https://doi.org/10.1016/0016-7037(95)00135-2" target="_blank">https://doi.org/10.1016/0016-7037(95)00135-2</a>, 1995.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Culkin(1965)</label><mixed-citation>
Culkin, F.: The major constituents of sea water, in: Chemical Oceanography,
edited by: Riley, J. P. and Skirrow, G., Academic Press,
London, UK, vol. 1, 121–161, 1965.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Deffeyes(1965)</label><mixed-citation>
Deffeyes, K. S.: Carbonate Equilibria: A Graphic and Algebraic
Approach, Limnol. Oceanogr., 10, 412–426,
<a href="https://doi.org/10.4319/lo.1965.10.3.0412" target="_blank">https://doi.org/10.4319/lo.1965.10.3.0412</a>, 1965.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Dickson and Millero(1987)</label><mixed-citation>
Dickson, A. and Millero, F.: A comparison of the equilibrium constants for the dissociation of carbonic acid in seawater media, Deep-Sea Res. Pt. A, 34,
1733–1743, <a href="https://doi.org/10.1016/0198-0149(87)90021-5" target="_blank">https://doi.org/10.1016/0198-0149(87)90021-5</a>, 1987.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Dickson(1981)</label><mixed-citation>
Dickson, A. G.: An exact definition of total alkalinity and a procedure for the estimation of alkalinity and total inorganic carbon from titration data, Deep-Sea Res. Pt. A, 28, 609–623,
<a href="https://doi.org/10.1016/0198-0149(81)90121-7" target="_blank">https://doi.org/10.1016/0198-0149(81)90121-7</a>, 1981.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Dickson(1990a)</label><mixed-citation>
Dickson, A. G.: Standard potential of the reaction: AgCl(s) + 0.5H<sub>2</sub>(g) = Ag(s) + HCl(aq), and the standard acidity constant of the ion HSO<sub>4</sub><sup>−</sup> in synthetic sea water from 273.15 to 318.15&thinsp;K, J. Chem. Thermodyn., 22, 113–127, <a href="https://doi.org/10.1016/0021-9614(90)90074-Z" target="_blank">https://doi.org/10.1016/0021-9614(90)90074-Z</a>,
1990a.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Dickson(1990b)</label><mixed-citation>
Dickson, A. G.: Thermodynamics of the dissociation of boric acid in synthetic
seawater from 273.15 to 318.15&thinsp;K, Deep-Sea Res. Pt. A, 37, 755–766,
<a href="https://doi.org/10.1016/0198-0149(90)90004-F" target="_blank">https://doi.org/10.1016/0198-0149(90)90004-F</a>, 1990b.
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Dickson and Riley(1979)</label><mixed-citation>
Dickson, A. G. and Riley, J. P.: The estimation of acid dissociation constants in sea-water media from potentiometric titrations with strong base. II. The dissociation of phosphoric acid, Mar. Chem., 7, 101–109,
<a href="https://doi.org/10.1016/0304-4203(79)90002-1" target="_blank">https://doi.org/10.1016/0304-4203(79)90002-1</a>, 1979.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Dickson et al.(2007)</label><mixed-citation>
Dickson, A. G., Sabine, C. L., and Christian, J. R. (Eds.): Guide to Best
Practices for Ocean CO<sub>2</sub> Measurements, PICES Special
Publication 3, North Pacific Marine Science Organization, Sidney, BC, Canada, 2007.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Dickson et al.(2015)</label><mixed-citation>
Dickson, A. G., Camões, M. F., Spitzer, P., Fisicaro, P., Stoica, D.,
Pawlowicz, R., and Feistel, R.: Metrological challenges for measurements of
key climatological observables. Part 3: seawater pH, Metrologia, 53,
R26–R39, <a href="https://doi.org/10.1088/0026-1394/53/1/R26" target="_blank">https://doi.org/10.1088/0026-1394/53/1/R26</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Doney et al.(2009)</label><mixed-citation>
Doney, S. C., Fabry, V. J., Feely, R. A., and Kleypas, J. A.: Ocean
Acidification: The Other CO<sub>2</sub> Problem, Annu. Rev.
Marine Sci., 1, 169–192, <a href="https://doi.org/10.1146/annurev.marine.010908.163834" target="_blank">https://doi.org/10.1146/annurev.marine.010908.163834</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Edmond and Gieskes(1970)</label><mixed-citation>
Edmond, J. M. and Gieskes, J. M. T. M.: On the calculation of the degree of
saturation of sea water with respect to calcium carbonate under in situ
conditions, Geochim. Cosmochim. Acta, 34, 1261–1291,
<a href="https://doi.org/10.1016/0016-7037(70)90041-4" target="_blank">https://doi.org/10.1016/0016-7037(70)90041-4</a>, 1970.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Egleston et al.(2010)</label><mixed-citation>
Egleston, E. S., Sabine, C. L., and Morel, F. M. M.: Revelle revisited:
Buffer factors that quantify the response of ocean chemistry to changes in
DIC and alkalinity, Global Biogeochem. Cy., 24, GB1002,
<a href="https://doi.org/10.1029/2008GB003407" target="_blank">https://doi.org/10.1029/2008GB003407</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Frankignoulle(1994)</label><mixed-citation>
Frankignoulle, M.: A complete set of buffer factors for acid/base
CO<sub>2</sub> system in seawater, J. Mar. Syst., 5, 111–118,
<a href="https://doi.org/10.1016/0924-7963(94)90026-4" target="_blank">https://doi.org/10.1016/0924-7963(94)90026-4</a>, 1994.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Frankignoulle et al.(1994)</label><mixed-citation>
Frankignoulle, M., Canon, C., and Gattuso, J.-P.: Marine calcification as a
source of carbon dioxide: Positive feedback of increasing atmospheric
CO<sub>2</sub>, Limnol. Oceanogr., 39, 458–462,
<a href="https://doi.org/10.4319/lo.1994.39.2.0458" target="_blank">https://doi.org/10.4319/lo.1994.39.2.0458</a>, 1994.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Friedlingstein et al.(2020)</label><mixed-citation>
Friedlingstein, P., O'Sullivan, M., Jones, M. W., Andrew, R. M., Hauck, J., Olsen, A., Peters, G. P., Peters, W., Pongratz, J., Sitch, S., Le Quéré, C., Canadell, J. G., Ciais, P., Jackson, R. B., Alin, S., Aragão, L. E. O. C., Arneth, A., Arora, V., Bates, N. R., Becker, M., Benoit-Cattin, A., Bittig, H. C., Bopp, L., Bultan, S., Chandra, N., Chevallier, F., Chini, L. P., Evans, W., Florentie, L., Forster, P. M., Gasser, T., Gehlen, M., Gilfillan, D., Gkritzalis, T., Gregor, L., Gruber, N., Harris, I., Hartung, K., Haverd, V., Houghton, R. A., Ilyina, T., Jain, A. K., Joetzjer, E., Kadono, K., Kato, E., Kitidis, V., Korsbakken, J. I., Landschützer, P., Lefèvre, N., Lenton, A., Lienert, S., Liu, Z., Lombardozzi, D., Marland, G., Metzl, N., Munro, D. R., Nabel, J. E. M. S., Nakaoka, S.-I., Niwa, Y., O'Brien, K., Ono, T., Palmer, P. I., Pierrot, D., Poulter, B., Resplandy, L., Robertson, E., Rödenbeck, C., Schwinger, J., Séférian, R., Skjelvan, I., Smith, A. J. P., Sutton, A. J., Tanhua, T., Tans, P. P., Tian, H., Tilbrook, B., van der Werf, G., Vuichard, N., Walker, A. P., Wanninkhof, R., Watson, A. J., Willis, D., Wiltshire, A. J., Yuan, W., Yue, X., and Zaehle, S.: Global Carbon Budget 2020, Earth Syst. Sci. Data, 12, 3269–3340, <a href="https://doi.org/10.5194/essd-12-3269-2020" target="_blank">https://doi.org/10.5194/essd-12-3269-2020</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Gattuso et al.(2021)</label><mixed-citation>
Gattuso, J.-P., Epitalon, J.-M., Lavigne, H., Orr, J., Gentili, B., Hagens, M., Hofmann, A., Mueller, J.-D., Proye, A., Rae, J., and Soetaert, K.: seacarb: Seawater Carbonate Chemistry, available at: <a href="https://CRAN.R-project.org/package=seacarb" target="_blank"/>, last access: 23 December 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Goyet and Poisson(1989)</label><mixed-citation>
Goyet, C. and Poisson, A.: New determination of carbonic acid dissociation
constants in seawater as a function of temperature and salinity, Deep-Sea
Res. Pt. A, 36, 1635–1654, <a href="https://doi.org/10.1016/0198-0149(89)90064-2" target="_blank">https://doi.org/10.1016/0198-0149(89)90064-2</a>, 1989.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Hagens and Middelburg(2016)</label><mixed-citation>
Hagens, M. and Middelburg, J. J.: Generalised expressions for the response of
pH to changes in ocean chemistry, Geochim. Cosmochim. Acta, 187,
334–349, <a href="https://doi.org/10.1016/j.gca.2016.04.012" target="_blank">https://doi.org/10.1016/j.gca.2016.04.012</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Hansson(1973a)</label><mixed-citation>
Hansson, I.: The Determination of Dissociation Constants of Carbonic
Acid in Synthetic Sea Water in the Salinity Range of 20–40&thinsp;‰ and Temperature Range of 5–30&thinsp;°C, Acta Chem. Scand., 27, 931–944, <a href="https://doi.org/10.3891/acta.chem.scand.27-0931" target="_blank">https://doi.org/10.3891/acta.chem.scand.27-0931</a>, 1973a.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Hansson(1973b)</label><mixed-citation>
Hansson, I.: A new set of acidity constants for carbonic acid and boric acid in sea water, Deep-Sea Res., 20, 461–478, <a href="https://doi.org/10.1016/0011-7471(73)90100-9" target="_blank">https://doi.org/10.1016/0011-7471(73)90100-9</a>, 1973b.
</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Harris et al.(2020)</label><mixed-citation>
Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R.,
Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río,
J. F., Wiebe, M., Peterson, P., Gérard-Marchant, P., Sheppard, K., Reddy,
T., Weckesser, W., Abbasi, H., Gohlke, C., and Oliphant, T. E.: Array
programming with NumPy, Nature, 585, 357–362,
<a href="https://doi.org/10.1038/s41586-020-2649-2" target="_blank">https://doi.org/10.1038/s41586-020-2649-2</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Humphreys et al.(2018)</label><mixed-citation>
Humphreys, M. P., Daniels, C. J., Wolf-Gladrow, D. A., Tyrrell, T., and
Achterberg, E. P.: On the influence of marine biogeochemical processes over
CO<sub>2</sub> exchange between the atmosphere and ocean, Mar. Chem.,
199, 1–11, <a href="https://doi.org/10.1016/j.marchem.2017.12.006" target="_blank">https://doi.org/10.1016/j.marchem.2017.12.006</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Humphreys et al.(2020)</label><mixed-citation>
Humphreys, M. P., Gregor, L., Pierrot, D., van Heuven, S. M. A. C., Lewis, E. R., and Wallace, D. W. R.: PyCO2SYS: marine carbonate system calculations in Python (v1.3.0), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.3780139" target="_blank">https://doi.org/10.5281/zenodo.3780139</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Humphreys et al.(2021)</label><mixed-citation>
Humphreys, M. P., Schiller, A. J., Sandborn, D., Gregor, L., Pierrot, D., van Heuven, S. M. A. C., Lewis, E. R.,  and Wallace, D. W. R.: PyCO2SYS: marine carbonate system calculations in Python (v1.8.0), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.5602840" target="_blank">https://doi.org/10.5281/zenodo.5602840</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Ingle(1975)</label><mixed-citation>
Ingle, S. E.: Solubility of calcite in the ocean, Mar. Chem., 3, 301–319,
<a href="https://doi.org/10.1016/0304-4203(75)90010-9" target="_blank">https://doi.org/10.1016/0304-4203(75)90010-9</a>, 1975.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Ingle et al.(1973)</label><mixed-citation>
Ingle, S. E., Culberson, C. H., Hawley, J. E., and Pytkowicz, R. M.: The
solubility of calcite in seawater at atmospheric pressure and 35&thinsp;‰ salinity, Mar. Chem., 1, 295–307, <a href="https://doi.org/10.1016/0304-4203(73)90019-4" target="_blank">https://doi.org/10.1016/0304-4203(73)90019-4</a>, 1973.
</mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>IUPAC(1997)</label><mixed-citation>
IUPAC: Compendium of Chemical Terminology, 2nd edn. (the “Gold Book”), Blackwell Scientific Publications, Oxford, UK,
<a href="https://doi.org/10.1351/goldbook" target="_blank">https://doi.org/10.1351/goldbook</a>, 1997.
</mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>JCGM(2008)</label><mixed-citation>
JCGM: JCGM 100:2008 Evaluation of measurement data – Guide to the
expression of uncertainty in measurement, Bureau International des Poids et
Mesures, Sèvres, France, available at: <a href="https://www.bipm.org/utils/common/documents/jcgm/JCGM_100_2008_E.pdf" target="_blank"/> (last access: 23 December 2021), 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Kester and Pytkowicz(1967)</label><mixed-citation>
Kester, D. R. and Pytkowicz, R. M.: Determination of the Apparent
Dissociation Constants of Phosphoric Acid in Seawater, Limnol.
Oceanogr., 12, 243–252, <a href="https://doi.org/10.4319/lo.1967.12.2.0243" target="_blank">https://doi.org/10.4319/lo.1967.12.2.0243</a>, 1967.
</mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Khoo et al.(1977)</label><mixed-citation>
Khoo, K. H., Ramette, R. W., Culberson, C. H., and Bates, R. G.: Determination of hydrogen ion concentrations in seawater from 5 to 40C: standard potentials at salinities from 20 to 45 per mille, Anal. Chem., 49, 29–34, <a href="https://doi.org/10.1021/ac50009a016" target="_blank">https://doi.org/10.1021/ac50009a016</a>, 1977.
</mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Kuliński et al.(2014)</label><mixed-citation>
Kuliński, K., Schneider, B., Hammer, K., Machulik, U., and Schulz-Bull, D.:
The influence of dissolved organic matter on the acid–base system of the
Baltic Sea, J. Mar. Syst., 132, 106–115,
<a href="https://doi.org/10.1016/j.jmarsys.2014.01.011" target="_blank">https://doi.org/10.1016/j.jmarsys.2014.01.011</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Lauvset et al.(2021)</label><mixed-citation>
Lauvset, S. K., Lange, N., Tanhua, T., Bittig, H. C., Olsen, A., Kozyr, A., Álvarez, M., Becker, S., Brown, P. J., Carter, B. R., Cotrim da Cunha, L., Feely, R. A., van Heuven, S., Hoppema, M., Ishii, M., Jeansson, E., Jutterström, S., Jones, S. D., Karlsen, M. K., Lo Monaco, C., Michaelis, P., Murata, A., Pérez, F. F., Pfeil, B., Schirnick, C., Steinfeldt, R., Suzuki, T., Tilbrook, B., Velo, A., Wanninkhof, R., Woosley, R. J., and Key, R. M.: An updated version of the global interior ocean biogeochemical data product, GLODAPv2.2021, Earth Syst. Sci. Data, 13, 5565–5589, <a href="https://doi.org/10.5194/essd-13-5565-2021" target="_blank">https://doi.org/10.5194/essd-13-5565-2021</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Lee et al.(2010)</label><mixed-citation>
Lee, K., Kim, T.-W., Byrne, R. H., Millero, F. J., Feely, R. A., and Liu,
Y.-M.: The universal ratio of boron to chlorinity for the North Pacific
and North Atlantic oceans, Geochim. Cosmochim. Acta, 74, 1801–1811,
<a href="https://doi.org/10.1016/j.gca.2009.12.027" target="_blank">https://doi.org/10.1016/j.gca.2009.12.027</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Lewis and Wallace(1998)</label><mixed-citation>
Lewis, E. and Wallace, D. W. R.: Program Developed for CO<sub>2</sub>
System Calculations, ORNL/CDIAC-105, Carbon Dioxide Information Analysis
Center, Oak Ridge National Laboratory, U.S. Department of Energy, Oak Ridge,
TN, USA, <a href="https://doi.org/10.15485/1464255" target="_blank">https://doi.org/10.15485/1464255</a>, 1998.
</mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Li et al.(1969)</label><mixed-citation>
Li, Y.-H., Takahashi, T., and Broecker, W. S.: Degree of saturation of
CaCO<sub>3</sub> in the oceans, J. Geophys. Res., 74, 5507–5525,
<a href="https://doi.org/10.1029/JC074i023p05507" target="_blank">https://doi.org/10.1029/JC074i023p05507</a>, 1969.
</mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Lueker et al.(2000)</label><mixed-citation>
Lueker, T. J., Dickson, A. G., and Keeling, C. D.: Ocean <i>p</i>CO<sub>2</sub> calculated from dissolved inorganic carbon, alkalinity, and equations for K<sub>1</sub> and K<sub>2</sub>: validation based on laboratory measurements of CO<sub>2</sub> in gas and seawater at equilibrium, Mar. Chem., 70, 105–119,
<a href="https://doi.org/10.1016/S0304-4203(00)00022-0" target="_blank">https://doi.org/10.1016/S0304-4203(00)00022-0</a>, 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Maclaurin(2016)</label><mixed-citation>
Maclaurin, D.: Autograd: Automatic Differentiation for Python, in:
Modeling, Inference and Optimization with Composable Differentiable
Procedures, PhD thesis, Harvard University, Cambridge, MA, USA, 41–57, available at: <a href="https://dougalmaclaurin.com/phd-thesis.pdf" target="_blank"/> (last access: 23 December 2021), 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Mehrbach et al.(1973)</label><mixed-citation>
Mehrbach, C., Culberson, C. H., Hawley, J. E., and Pytkowicz, R. M.:
Measurement of the Apparent Dissociation Constants of Carbonic Acid
in Seawater at Atmospheric Pressure, Limnol. Oceanogr., 18, 897–907,
<a href="https://doi.org/10.4319/lo.1973.18.6.0897" target="_blank">https://doi.org/10.4319/lo.1973.18.6.0897</a>, 1973.
</mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Millero(1979)</label><mixed-citation>
Millero, F. J.: The thermodynamics of the carbonate system in seawater,
Geochim. Cosmochim. Acta, 43, 1651–1661, <a href="https://doi.org/10.1016/0016-7037(79)90184-4" target="_blank">https://doi.org/10.1016/0016-7037(79)90184-4</a>,
1979.
</mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Millero(1983)</label><mixed-citation>
Millero, F. J.: Influence of pressure on chemical processes in the sea, in:
Chemical Oceanography, edited by: Riley, J. P. and Chester, R., Academic
Press, 1983.
</mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Millero(1995)</label><mixed-citation>
Millero, F. J.: Thermodynamics of the carbon dioxide system in the oceans,
Geochim. Cosmochim. Acta, 59, 661–677, <a href="https://doi.org/10.1016/0016-7037(94)00354-O" target="_blank">https://doi.org/10.1016/0016-7037(94)00354-O</a>,
1995.
</mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Millero(2000)</label><mixed-citation>
Millero, F. J.: The Carbonate System in Marine Environments, in:
Chemical Processes in Marine Environments, edited by: Gianguzza, A.,
Pelizetti, E., and Sammartano, S., Environmental Science,
Springer, Berlin, Heidelberg, 9–41, <a href="https://doi.org/10.1007/978-3-662-04207-6_2" target="_blank">https://doi.org/10.1007/978-3-662-04207-6_2</a>, 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Millero(2010)</label><mixed-citation>
Millero, F. J.: Carbonate constants for estuarine waters, Mar. Freshw. Res., 61, 139–142, <a href="https://doi.org/10.1071/MF09254" target="_blank">https://doi.org/10.1071/MF09254</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Millero et al.(2002)</label><mixed-citation>
Millero, F. J., Pierrot, D., Lee, K., Wanninkhof, R., Feely, R., Sabine, C. L., Key, R. M., and Takahashi, T.: Dissociation constants for carbonic acid determined from field measurements, Deep-Sea Res. Pt. I, 49, 1705–1723,
<a href="https://doi.org/10.1016/S0967-0637(02)00093-6" target="_blank">https://doi.org/10.1016/S0967-0637(02)00093-6</a>, 2002.
</mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Millero et al.(2006)</label><mixed-citation>
Millero, F. J., Graham, T. B., Huang, F., Bustos-Serrano, H., and Pierrot, D.: Dissociation constants of carbonic acid in seawater as a function of salinity and temperature, Mar. Chem., 100, 80–94,
<a href="https://doi.org/10.1016/j.marchem.2005.12.001" target="_blank">https://doi.org/10.1016/j.marchem.2005.12.001</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Millero et al.(2008)</label><mixed-citation>
Millero, F. J., Feistel, R., Wright, D. G., and McDougall, T. J.: The
composition of Standard Seawater and the definition of the
Reference-Composition Salinity Scale, Deep-Sea Res. Pt. I, 55, 50–72, <a href="https://doi.org/10.1016/j.dsr.2007.10.001" target="_blank">https://doi.org/10.1016/j.dsr.2007.10.001</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Mojica Prieto and Millero(2002)</label><mixed-citation>
Mojica Prieto, F. J. and Millero, F. J.: The values of pK<sub>1</sub>&thinsp;+&thinsp;pK<sub>2</sub> for the dissociation of carbonic acid in seawater, Geochim. Cosmochim. Acta, 66, 2529–2540,
<a href="https://doi.org/10.1016/S0016-7037(02)00855-4" target="_blank">https://doi.org/10.1016/S0016-7037(02)00855-4</a>, 2002.
</mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Morris and Riley(1966)</label><mixed-citation>
Morris, A. W. and Riley, J. P.: The bromide/chlorinity and sulphate/chlorinity ratio in sea water, Deep-Sea Res., 13, 699–705,
<a href="https://doi.org/10.1016/0011-7471(66)90601-2" target="_blank">https://doi.org/10.1016/0011-7471(66)90601-2</a>, 1966.
</mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Muller and Bleie(2008)</label><mixed-citation>
Muller, F. L. L. and Bleie, B.: Estimating the organic acid contribution to
coastal seawater alkalinity by potentiometric titrations in a closed cell,
Anal. Chim. Acta, 619, 183–191, <a href="https://doi.org/10.1016/j.aca.2008.05.018" target="_blank">https://doi.org/10.1016/j.aca.2008.05.018</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Munhoven(2013)</label><mixed-citation>
Munhoven, G.: Mathematics of the total alkalinity–pH equation – pathway to robust and universal solution algorithms: the SolveSAPHE package v1.0.1, Geosci. Model Dev., 6, 1367–1388, <a href="https://doi.org/10.5194/gmd-6-1367-2013" target="_blank">https://doi.org/10.5194/gmd-6-1367-2013</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Munhoven(2021)</label><mixed-citation>
Munhoven, G.: SolveSAPHE-r2 (v2.0.1): revisiting and extending the Solver Suite for Alkalinity-PH Equations for usage with CO<sub>2</sub>, HCO<sub>3</sub><sup>−</sup> or CO<sub>3</sub><sup>2−</sup> input data, Geosci. Model Dev., 14, 4225–4240, <a href="https://doi.org/10.5194/gmd-14-4225-2021" target="_blank">https://doi.org/10.5194/gmd-14-4225-2021</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Orr(2011)</label><mixed-citation>
Orr, J. C.: Recent and future changes in ocean carbonate chemistry, in: Ocean
Acidification, edited by: Gattuso, J. P. and Hansson, L., Oxford
University Press, 41–66, <a href="https://doi.org/10.1093/oso/9780199591091.003.0008" target="_blank">https://doi.org/10.1093/oso/9780199591091.003.0008</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Orr and Epitalon(2015)</label><mixed-citation>
Orr, J. C. and Epitalon, J.-M.: Improved routines to model the ocean carbonate system: mocsy 2.0, Geosci. Model Dev., 8, 485–499, <a href="https://doi.org/10.5194/gmd-8-485-2015" target="_blank">https://doi.org/10.5194/gmd-8-485-2015</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Orr et al.(2015)Orr, Epitalon, and Gattuso</label><mixed-citation>
Orr, J. C., Epitalon, J.-M., and Gattuso, J.-P.: Comparison of ten packages that compute ocean carbonate chemistry, Biogeosciences, 12, 1483–1510, <a href="https://doi.org/10.5194/bg-12-1483-2015" target="_blank">https://doi.org/10.5194/bg-12-1483-2015</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>Orr et al.(2017)</label><mixed-citation>
Orr, J. C., Najjar, R. G., Aumont, O., Bopp, L., Bullister, J. L., Danabasoglu, G., Doney, S. C., Dunne, J. P., Dutay, J.-C., Graven, H., Griffies, S. M., John, J. G., Joos, F., Levin, I., Lindsay, K., Matear, R. J., McKinley, G. A., Mouchet, A., Oschlies, A., Romanou, A., Schlitzer, R., Tagliabue, A., Tanhua, T., and Yool, A.: Biogeochemical protocols and diagnostics for the CMIP6 Ocean Model Intercomparison Project (OMIP), Geosci. Model Dev., 10, 2169–2199, <a href="https://doi.org/10.5194/gmd-10-2169-2017" target="_blank">https://doi.org/10.5194/gmd-10-2169-2017</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>Orr et al.(2018)</label><mixed-citation>
Orr, J. C., Epitalon, J.-M., Dickson, A. G., and Gattuso, J.-P.: Routine
uncertainty propagation for the marine carbon dioxide system, Mar.
Chem., 207, 84–107, <a href="https://doi.org/10.1016/j.marchem.2018.10.006" target="_blank">https://doi.org/10.1016/j.marchem.2018.10.006</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Park(1969)</label><mixed-citation>
Park, P. K.: Oceanic CO<sub>2</sub> system: an evaluation of ten methods
of investigation, Limnol. Oceanogr., 14, 179–186,
<a href="https://doi.org/10.4319/lo.1969.14.2.0179" target="_blank">https://doi.org/10.4319/lo.1969.14.2.0179</a>, 1969.
</mixed-citation></ref-html>
<ref-html id="bib1.bib70"><label>Peng et al.(1987)</label><mixed-citation>
Peng, T.-H., Takahashi, T., Broecker, W. S., and Olafsson, J.: Seasonal
variability of carbon dioxide, nutrients and oxygen in the northern North
Atlantic surface water: observations and a model, Tellus B, 39, 439–458,
<a href="https://doi.org/10.3402/tellusb.v39i5.15361" target="_blank">https://doi.org/10.3402/tellusb.v39i5.15361</a>, 1987.
</mixed-citation></ref-html>
<ref-html id="bib1.bib71"><label>Perez and Fraga(1987)</label><mixed-citation>
Perez, F. F. and Fraga, F.: Association constant of fluoride and hydrogen ions in seawater, Mar. Chem., 21, 161–168, <a href="https://doi.org/10.1016/0304-4203(87)90036-3" target="_blank">https://doi.org/10.1016/0304-4203(87)90036-3</a>, 1987.
</mixed-citation></ref-html>
<ref-html id="bib1.bib72"><label>Pierrot et al.(2006)</label><mixed-citation>
Pierrot, D., Lewis, E., and Wallace, D. W. R.: MS Excel Program
Developed for CO<sub>2</sub> System Calculations, available at: <a href="https://cdiac.ess-dive.lbl.gov/ftp/co2sys/CO2SYS_calc_XLS_v2.1/" target="_blank"/> (last access: 23 December 2021),
2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib73"><label>Pierrot et al.(2021)</label><mixed-citation>
Pierrot, D., Epitalon, J.-M., Orr, J. C., Lewis, E. R., and Wallace, D.: MS
Excel program developed for CO<sub>2</sub> system calculations –
version 3.0, available at: <a href="https://github.com/dpierrot/co2sys_xl" target="_blank"/>, last access: 23 December 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib74"><label>Raimondi et al.(2019)</label><mixed-citation>
Raimondi, L., Matthews, J. B. R., Atamanchuk, D., Azetsu-Scott, K., and
Wallace, D. W. R.: The internal consistency of the marine carbon dioxide
system for high latitude shipboard and <i>in situ</i> monitoring, Mar.
Chem., 213, 49–70, <a href="https://doi.org/10.1016/j.marchem.2019.03.001" target="_blank">https://doi.org/10.1016/j.marchem.2019.03.001</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib75"><label>Revelle and Suess(1957)</label><mixed-citation>
Revelle, R. and Suess, H. E.: Carbon Dioxide Exchange Between
Atmosphere and Ocean and the Question of an Increase of Atmospheric
CO<sub>2</sub> during the Past Decades, Tellus, 9, 18–27,
<a href="https://doi.org/10.3402/tellusa.v9i1.9075" target="_blank">https://doi.org/10.3402/tellusa.v9i1.9075</a>, 1957.
</mixed-citation></ref-html>
<ref-html id="bib1.bib76"><label>Richier et al.(2018)</label><mixed-citation>
Richier, S., Achterberg, E. P., Humphreys, M. P., Poulton, A. J., Suggett,
D. J., Tyrrell, T., and Moore, C. M.: Geographical CO<sub>2</sub>
sensitivity of phytoplankton correlates with ocean buffer capacity, Glob.
Change Biol., 24, 4438–4452, <a href="https://doi.org/10.1111/gcb.14324" target="_blank">https://doi.org/10.1111/gcb.14324</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib77"><label>Riley(1965)</label><mixed-citation>
Riley, J. P.: The occurrence of anomalously high fluoride concentrations in the North Atlantic, Deep-Sea Res., 12, 219–220,
<a href="https://doi.org/10.1016/0011-7471(65)90027-6" target="_blank">https://doi.org/10.1016/0011-7471(65)90027-6</a>, 1965.
</mixed-citation></ref-html>
<ref-html id="bib1.bib78"><label>Riley and Tongudai(1967)</label><mixed-citation>
Riley, J. P. and Tongudai, M.: The major cation/chlorinity ratios in sea water, Chem. Geol., 2, 263–269, <a href="https://doi.org/10.1016/0009-2541(67)90026-5" target="_blank">https://doi.org/10.1016/0009-2541(67)90026-5</a>, 1967.
</mixed-citation></ref-html>
<ref-html id="bib1.bib79"><label>Roy et al.(1993)</label><mixed-citation>
Roy, R. N., Roy, L. N., Vogel, K. M., Porter-Moore, C., Pearson, T., Good,
C. E., Millero, F. J., and Campbell, D. M.: The dissociation constants of
carbonic acid in seawater at salinities 5 to 45 and temperatures 0 to
45&thinsp;°C, Mar. Chem., 44, 249–267, <a href="https://doi.org/10.1016/0304-4203(93)90207-5" target="_blank">https://doi.org/10.1016/0304-4203(93)90207-5</a>, 1993.
</mixed-citation></ref-html>
<ref-html id="bib1.bib80"><label>Schockman and Byrne(2021)</label><mixed-citation>
Schockman, K. M. and Byrne, R. H.: Spectrophotometric Determination of the
Bicarbonate Dissociation Constant in Seawater, Geochim. Cosmochim.
Acta, 300, 231–245, <a href="https://doi.org/10.1016/j.gca.2021.02.008" target="_blank">https://doi.org/10.1016/j.gca.2021.02.008</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib81"><label>Schoonen and Barnes(1988)</label><mixed-citation>
Schoonen, M. A. A. and Barnes, H. L.: An approximation of the second
dissociation constant for H<sub>2</sub>S, Geochim. Cosmochim. Acta,
52, 649–654, <a href="https://doi.org/10.1016/0016-7037(88)90326-2" target="_blank">https://doi.org/10.1016/0016-7037(88)90326-2</a>, 1988.
</mixed-citation></ref-html>
<ref-html id="bib1.bib82"><label>Sharp and Byrne(2019)</label><mixed-citation>
Sharp, J. D. and Byrne, R. H.: Carbonate ion concentrations in seawater:
Spectrophotometric determination at ambient temperatures and evaluation of
propagated calculation uncertainties, Mar. Chem., 209, 70–80,
<a href="https://doi.org/10.1016/j.marchem.2018.12.001" target="_blank">https://doi.org/10.1016/j.marchem.2018.12.001</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib83"><label>Sharp and Byrne(2020)</label><mixed-citation>
Sharp, J. D. and Byrne, R. H.: Interpreting measurements of total alkalinity in marine and estuarine waters in the presence of proton-binding organic matter, Deep-Sea Res. Pt. I, 165, 103&thinsp;338, <a href="https://doi.org/10.1016/j.dsr.2020.103338" target="_blank">https://doi.org/10.1016/j.dsr.2020.103338</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib84"><label>Sharp et al.(2020)</label><mixed-citation>
Sharp, J. D., Pierrot, D., Humphreys, M. P., Epitalon, J.-M., Orr, J. C.,
Lewis, E. R., and Wallace, D. W.: CO2SYSv3 for MATLAB, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.3952803" target="_blank">https://doi.org/10.5281/zenodo.3952803</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib85"><label>Sillén et al.(1964)</label><mixed-citation>
Sillén, L. G., Martell, A. E., and Bjerrum, J.: Stability constants of
metal-ion complexes, special publication, 17th edn., Chemical Society, London, UK, 1964.
</mixed-citation></ref-html>
<ref-html id="bib1.bib86"><label>Sulpis et al.(2020)</label><mixed-citation>
Sulpis, O., Lauvset, S. K., and Hagens, M.: Current estimates of K<sub>1</sub>* and K<sub>2</sub>* appear inconsistent with measured CO<sub>2</sub> system parameters in cold oceanic regions, Ocean Sci., 16, 847–862, <a href="https://doi.org/10.5194/os-16-847-2020" target="_blank">https://doi.org/10.5194/os-16-847-2020</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib87"><label>Takahashi et al.(1982)</label><mixed-citation>
Takahashi, T., Williams, R. T., and Bos, D. L.: Carbonate Chemistry, in:
GEOSECS Pacific Expedition: Hydrographic Data, vol. 3, 77–105,
National Science Foundation, Washington, D.C., 1982.
</mixed-citation></ref-html>
<ref-html id="bib1.bib88"><label>Takahashi et al.(2009)</label><mixed-citation>
Takahashi, T., Sutherland, S. C., Wanninkhof, R., Sweeney, C., Feely, R. A.,
Chipman, D. W., Hales, B., Friederich, G., Chavez, F., Sabine, C., Watson,
A., Bakker, D. C., Schuster, U., Metzl, N., Yoshikawa-Inoue, H., Ishii, M.,
Midorikawa, T., Nojiri, Y., Körtzinger, A., Steinhoff, T., Hoppema, M.,
Olafsson, J., Arnarson, T. S., Tilbrook, B., Johannessen, T., Olsen, A.,
Bellerby, R., Wong, C., Delille, B., Bates, N., and de Baar, H. J.:
Climatological mean and decadal change in surface ocean
<i>p</i>CO<sub>2</sub>, and net sea–air CO<sub>2</sub> flux
over the global oceans, Deep-Sea Res. Pt. II, 56, 554–577,
<a href="https://doi.org/10.1016/j.dsr2.2008.12.009" target="_blank">https://doi.org/10.1016/j.dsr2.2008.12.009</a>, 2009.

</mixed-citation></ref-html>
<ref-html id="bib1.bib89"><label>Turner et al.(2016)</label><mixed-citation>
Turner, D. R., Achterberg, E. P., Chen, C.-T. A., Clegg, S. L., Hatje, V.,
Maldonado, M. T., Sander, S. G., Berg, V. D., G, C. M., and Wells, M.: Toward
a Quality-Controlled and Accessible Pitzer Model for Seawater and
Related Systems, Front. Mar. Sci., 3, 139, <a href="https://doi.org/10.3389/fmars.2016.00139" target="_blank">https://doi.org/10.3389/fmars.2016.00139</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib90"><label>Ulfsbo et al.(2015)</label><mixed-citation>
Ulfsbo, A., Kuliński, K., Anderson, L. G., and Turner, D. R.: Modelling
organic alkalinity in the Baltic Sea using a Humic-Pitzer approach,
Mar. Chem., 168, 18–26, <a href="https://doi.org/10.1016/j.marchem.2014.10.013" target="_blank">https://doi.org/10.1016/j.marchem.2014.10.013</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib91"><label>Uppström(1974)</label><mixed-citation>
Uppström, L. R.: The boron/chlorinity ratio of deep-sea water from the
Pacific Ocean, Deep-Sea Res., 21, 161–162,
<a href="https://doi.org/10.1016/0011-7471(74)90074-6" target="_blank">https://doi.org/10.1016/0011-7471(74)90074-6</a>, 1974.
</mixed-citation></ref-html>
<ref-html id="bib1.bib92"><label>van Heuven et al.(2011)</label><mixed-citation>
van Heuven, S., Pierrot, D., Rae, J. W. B., Lewis, E., and Wallace, D. W. R.:
CO<sub>2</sub>SYS v 1.1, MATLAB program developed for CO<sub>2</sub> system calculations, ORNL/CDIAC-105b, Carbon Dioxide Information Analysis Center, Oak Ridge National Laboratory, U.S. Department of Energy, Oak Ridge, TN, USA,
available at: <a href="https://cdiac.ess-dive.lbl.gov/ftp/co2sys/CO2SYS_calc_MATLAB_v1.1/" target="_blank"/> (last access: 23 December 2021), 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib93"><label>Velo et al.(2010)</label><mixed-citation>
Velo, A., Pérez, F. F., Lin, X., Key, R. M., Tanhua, T., de la Paz, M., Olsen, A., van Heuven, S., Jutterström, S., and Ríos, A. F.: CARINA data synthesis project: pH data scale unification and cruise adjustments, Earth Syst. Sci. Data, 2, 133–155, <a href="https://doi.org/10.5194/essd-2-133-2010" target="_blank">https://doi.org/10.5194/essd-2-133-2010</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib94"><label>Waters et al.(2014)</label><mixed-citation>
Waters, J., Millero, F. J., and Woosley, R. J.: Corrigendum to “The free
proton concentration scale for seawater pH”, [MARCHE: 149 (2013)
8–22], Mar. Chem., 165, 66–67, <a href="https://doi.org/10.1016/j.marchem.2014.07.004" target="_blank">https://doi.org/10.1016/j.marchem.2014.07.004</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib95"><label>Waters and Millero(2013)</label><mixed-citation>
Waters, J. F. and Millero, F. J.: The free proton concentration scale for
seawater pH, Mar. Chem., 149, 8–22, <a href="https://doi.org/10.1016/j.marchem.2012.11.003" target="_blank">https://doi.org/10.1016/j.marchem.2012.11.003</a>,
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib96"><label>Weiss(1974)</label><mixed-citation>
Weiss, R. F.: Carbon dioxide in water and seawater: the solubility of a
non-ideal gas, Mar. Chem., 2, 203–215, <a href="https://doi.org/10.1016/0304-4203(74)90015-2" target="_blank">https://doi.org/10.1016/0304-4203(74)90015-2</a>,
1974.
</mixed-citation></ref-html>
<ref-html id="bib1.bib97"><label>Weiss and Price(1980)</label><mixed-citation>
Weiss, R. F. and Price, B. A.: Nitrous oxide solubility in water and seawater, Mar. Chem., 8, 347–359, <a href="https://doi.org/10.1016/0304-4203(80)90024-9" target="_blank">https://doi.org/10.1016/0304-4203(80)90024-9</a>, 1980.
</mixed-citation></ref-html>
<ref-html id="bib1.bib98"><label>Wolf-Gladrow et al.(2007)</label><mixed-citation>
Wolf-Gladrow, D. A., Zeebe, R. E., Klaas, C., Körtzinger, A., and Dickson,
A. G.: Total alkalinity: The explicit conservative expression and its
application to biogeochemical processes, Mar. Chem., 106, 287–300,
<a href="https://doi.org/10.1016/j.marchem.2007.01.006" target="_blank">https://doi.org/10.1016/j.marchem.2007.01.006</a>, 2007.
</mixed-citation></ref-html>
<ref-html id="bib1.bib99"><label>Xu et al.(2017)Xu, Pierrot, and Cai</label><mixed-citation>
Xu, Y.-Y., Pierrot, D., and Cai, W.-J.: Ocean carbonate system computation for anoxic waters using an updated CO2SYS program, Mar. Chem., 195, 90–93,
<a href="https://doi.org/10.1016/j.marchem.2017.07.002" target="_blank">https://doi.org/10.1016/j.marchem.2017.07.002</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib100"><label>Yao and Millero(1995)</label><mixed-citation>
Yao, W. and Millero, F. J.: The chemistry of the anoxic waters in the
Framvaren Fjord, Norway, Aquat. Geochem., 1, 53–88,
<a href="https://doi.org/10.1007/BF01025231" target="_blank">https://doi.org/10.1007/BF01025231</a>, 1995.
</mixed-citation></ref-html>
<ref-html id="bib1.bib101"><label>Zeebe and Wolf-Gladrow(2001)</label><mixed-citation>
Zeebe, R. E. and Wolf-Gladrow, D.: CO<sub>2</sub> in Seawater: Equilibrium, Kinetics, Isotopes, Elsevier Oceanography Series 65,
Elsevier B.V., Amsterdam, the Netherlands, 2001.
</mixed-citation></ref-html>--></article>
