<?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"><?xmltex \makeatother\@nolinetrue\makeatletter?>
  <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-14-2351-2021</article-id><title-group><article-title>pyPI (v1.3): Tropical Cyclone Potential Intensity <?xmltex \hack{\break}?>Calculations in Python</article-title><alt-title>pyPI (v1.3): Tropical Cyclone Potential Intensity Calculations in Python</alt-title>
      </title-group><?xmltex \runningtitle{pyPI (v1.3): Tropical Cyclone Potential Intensity Calculations in Python}?><?xmltex \runningauthor{D.~M.~Gilford}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Gilford</surname><given-names>Daniel M.</given-names></name>
          <email>daniel.gilford@rutgers.edu</email>
        <ext-link>https://orcid.org/0000-0003-2422-0887</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Institute of Earth, Ocean, and Atmospheric Sciences and Department of Earth and Planetary Sciences, Rutgers University, <?xmltex \hack{\break}?>71 Dudley Road, Suite 205, New Brunswick, NJ 08901, USA</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Climate Central, Princeton, NJ, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Daniel M. Gilford (daniel.gilford@rutgers.edu)</corresp></author-notes><pub-date><day>3</day><month>May</month><year>2021</year></pub-date>
      
      <volume>14</volume>
      <issue>5</issue>
      <fpage>2351</fpage><lpage>2369</lpage>
      <history>
        <date date-type="received"><day>18</day><month>August</month><year>2020</year></date>
           <date date-type="accepted"><day>21</day><month>March</month><year>2021</year></date>
           <date date-type="rev-recd"><day>5</day><month>March</month><year>2021</year></date>
           <date date-type="rev-request"><day>20</day><month>October</month><year>2020</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2021 Daniel M. Gilford</copyright-statement>
        <copyright-year>2021</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/14/2351/2021/gmd-14-2351-2021.html">This article is available from https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021.pdf</self-uri>
      <abstract><title>Abstract</title>
    <p id="d1e91">Potential intensity (PI) is the maximum speed limit of a tropical cyclone
found by modeling the storm as a thermal heat engine. Because there are
significant correlations between PI and actual storm wind speeds, PI is a
useful diagnostic for evaluating or predicting tropical cyclone intensity
climatology and variability. Previous studies have calculated PI given a set
of atmospheric and oceanographic conditions, but although a PI algorithm –
originally developed by Kerry Emanuel – is in widespread use, it remains
under-documented. The Tropical Cyclone Potential Intensity Calculations in
Python (pyPI, v1.3) package develops the PI algorithm in Python and for the
first time details the full background and algorithm (line by line) used to
compute tropical cyclone potential intensity constrained by
thermodynamics. The pyPI package (1) provides a freely available, flexible,
validated Python PI algorithm, (2) carefully documents the PI algorithm and
its Python implementation, and (3) demonstrates and encourages the use of PI
theory in tropical cyclone analyses. Validation shows pyPI output is nearly
identical to the previous potential intensity computation but is an
improvement on the algorithm's consistency and handling of missing
data. Example calculations with reanalyses data demonstrate pyPI's usefulness
in climatological and meteorological research. Planned future improvements
will improve on pyPI's assumptions, flexibility, and range of applications and
tropical cyclone thermodynamic calculations.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

      <?xmltex \hack{\newpage}?>
<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e105">Tropical cyclones pose significant risks to coastal societies, being among the
costliest and deadliest of global natural hazards
<xref ref-type="bibr" rid="bib1.bibx50 bib1.bibx56 bib1.bibx36" id="paren.1"><named-content content-type="pre">e.g.,</named-content></xref>. Damages increase
exponentially with tropical cyclone intensity <xref ref-type="bibr" rid="bib1.bibx48" id="paren.2"><named-content content-type="pre"><inline-formula><mml:math id="M1" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> % per <inline-formula><mml:math id="M2" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>;</named-content></xref>, so it is crucial to understand and
accurately bound tropical cyclone maximum wind speeds. Theoretical and
numerical models <xref ref-type="bibr" rid="bib1.bibx22 bib1.bibx70 bib1.bibx64 bib1.bibx75" id="paren.3"><named-content content-type="pre">e.g.,</named-content></xref>
along with recent observations <xref ref-type="bibr" rid="bib1.bibx40" id="paren.4"/> indicate that climate change
has already increased storm intensities – a trend expected to continue as the
Earth system warms. <xref ref-type="bibr" rid="bib1.bibx25" id="text.5"/> showed the total destructive potential
of tropical cyclones (derived from time-integrated maximum intensity) has
increased since the 1970s. <xref ref-type="bibr" rid="bib1.bibx14" id="text.6"/> showed that the most intense
observed tropical cyclones are getting stronger, and a more recent
comprehensive study shows that the number of major (Category 3<inline-formula><mml:math id="M3" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>) tropical
cyclones has increased over the past 40 years <xref ref-type="bibr" rid="bib1.bibx40" id="paren.7"/>. Given the
links between intensity and tropical cyclone impacts, it is worthwhile to
develop and improve modeling tools for diagnosing and predicting tropical
cyclone intensities.</p>
      <?pagebreak page2352?><p id="d1e169">Potential intensity (PI) is a theoretical model for the upper bound
(colloquially known as the “speed limit”) on tropical cyclone intensity,
given environmental conditions and energetic constraints
<xref ref-type="bibr" rid="bib1.bibx21 bib1.bibx35" id="paren.8"><named-content content-type="pre">e.g.,</named-content></xref>. PI has several properties which make
it a particularly useful model for studying tropical cyclones. First, PI is
statistically linked to the lifetime maximum intensities of observed storms
<xref ref-type="bibr" rid="bib1.bibx15" id="paren.9"/>, so it can be used to assess and interpret real-world
intensity trends and variability
<xref ref-type="bibr" rid="bib1.bibx76 bib1.bibx32 bib1.bibx62" id="paren.10"><named-content content-type="pre">e.g.,</named-content></xref>. Second, PI can be readily
calculated from standard atmospheric profiles (either modeled or observed),
making it flexible across many applications and spatiotemporal scales. Third,
PI may be decomposed into thermodynamic and parametric contributions that
enable budget and sensitivity analyses – with direct implications for
real-world storms. Finally, as a theoretical model grounded in meteorological
data, it is well-suited for incorporation into prognostic and diagnostic
indices of intensification <xref ref-type="bibr" rid="bib1.bibx67" id="paren.11"><named-content content-type="pre">e.g., the ventilation index,
VI;</named-content></xref>, tropical cyclogenesis (e.g., VI; the genesis potential index,
GPI; <xref ref-type="bibr" rid="bib1.bibx7" id="altparen.12"/>; the tropical cyclone genesis index, TCGI;
<xref ref-type="bibr" rid="bib1.bibx68" id="altparen.13"/>), and destructive potential <xref ref-type="bibr" rid="bib1.bibx25" id="paren.14"><named-content content-type="pre">e.g., the power
dissipation index, PDI;</named-content></xref>.</p>
      <p id="d1e202">The algorithm to compute PI was originally developed by <xref ref-type="bibr" rid="bib1.bibx3" id="text.15"/>
(hereafter BE02), coded as a FORTRAN subroutine. It was later converted for
use as a MATLAB function by Kerry Emanuel and has been irregularly revised by
Kerry Emanuel and other collaborators/colleagues. The BE02 PI function has
been extensively (and nearly universally) used and/or adapted by the tropical
meteorology community to calculate PI for modeling, observational, and
theoretical research applications <xref ref-type="bibr" rid="bib1.bibx46 bib1.bibx34 bib1.bibx10 bib1.bibx63 bib1.bibx68 bib1.bibx6 bib1.bibx71 bib1.bibx53 bib1.bibx8 bib1.bibx11 bib1.bibx66 bib1.bibx65 bib1.bibx77 bib1.bibx64 bib1.bibx51 bib1.bibx43 bib1.bibx31 bib1.bibx78 bib1.bibx32 bib1.bibx18 bib1.bibx62 bib1.bibx9" id="paren.16"><named-content content-type="pre">e.g.,</named-content><named-content content-type="post">and many
others</named-content></xref>. The
BE02 function is also used to compute daily maps of North Atlantic PI for
meteorological assessment in real time (produced by the Center for
Land–Atmosphere Prediction<fn id="Ch1.Footn1"><p id="d1e215">online at
<uri>http://wxmaps.org/pix/hurpot</uri> (last access: 26 April 2021)</p></fn>; <xref ref-type="bibr" rid="bib1.bibx19" id="altparen.17"/>).</p>
      <p id="d1e225">Despite widespread use, the BE02 algorithm itself has never (to my knowledge)
been fully documented. Because it is an important modeling tool for tropical
cyclone intensity, there is a need for a transparent and documented PI
algorithm. It is also advantageous to implement a PI algorithm in Python
(which is freely available and has many advantages in scientific research;
<xref ref-type="bibr" rid="bib1.bibx47" id="altparen.18"/>), to complement the existing counterparts in MATLAB
(which is proprietary and therefore less accessible) and FORTRAN (which is not
easily extensible for a broad range of applications; <xref ref-type="bibr" rid="bib1.bibx57" id="altparen.19"/>).</p>
      <p id="d1e235">I developed Tropical Cyclone Potential Intensity Calculations in Python
(i.e., “pyPI”) to meet these needs. In addition to adapting the BE02
algorithm in Python and thoroughly documenting the model, pyPI provides a
maintained and regularly archived repository to support open science in the
tropical meteorological community. pyPI is also ideally suited for ongoing
community development and improvement and for research applications which
require flexibility in particular PI input parameters or components (for
example, the computation of the lifting condensation level) or integration
with other Python packages. This article provides context for the initial
package release of pyPI (v1.3) and details its development, algorithm,
validation, and sample applications.</p>
      <p id="d1e238">The proceeding Sect. <xref ref-type="sec" rid="Ch1.S2"/> provides a brief overview of potential
intensity theory and introduces its key components including thermodynamic
efficiency and disequilibrium. Section <xref ref-type="sec" rid="Ch1.S3"/> presents the
mathematical basis of pyPI's potential intensity computations. We describe the
Python implementation of the pyPI algorithm in Sect. <xref ref-type="sec" rid="Ch1.S4"/>,
including its adjustable input parameters and handling of missing data. Model
validation in Sect. <xref ref-type="sec" rid="Ch1.S5"/> demonstrates that pyPI output is
nearly identical to the previously published MATLAB algorithm, with minor
improvements for consistency. Section <xref ref-type="sec" rid="Ch1.S6"/> illustrates several
climatological applications of pyPI. The study concludes with a discussion of
planned pyPI advancements in Sect. <xref ref-type="sec" rid="Ch1.S7"/>.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Potential intensity theory</title>
      <p id="d1e262">Tropical cyclones arise as an indirect response to a thermodynamic gap in the
tropical atmosphere's energy budget <xref ref-type="bibr" rid="bib1.bibx17" id="paren.20"><named-content content-type="pre">e.g.,</named-content></xref>. The tropical
surface's output longwave radiative cooling is outpaced by combined solar and
longwave radiative heating (terrestrially sourced by greenhouse gases and
clouds) received at the surface. In the absence of any balancing outgoing
process, the resulting thermodynamic disequilibrium would lead to a buildup
of heat driving substantially higher surface temperatures
<xref ref-type="bibr" rid="bib1.bibx44" id="paren.21"><named-content content-type="pre">e.g.,</named-content></xref>. Instead, atmospheric convection plays the leading
role in removing this excess heat; tropical cyclones are a well-known
expression of this convection.</p>
      <p id="d1e275">Driven by thermodynamic disequilibrium – which is largest in the summer and
autumn seasons – an existing mature tropical cycle will transfer heat from
the surface to the atmospheric boundary layer, largely through latent heat
release of evaporation and from the sea surface and dissipative heating
<xref ref-type="bibr" rid="bib1.bibx2" id="paren.22"/>. Viewed from this perspective, it is useful and convenient
to model tropical cyclones as Carnot heat engines <xref ref-type="bibr" rid="bib1.bibx22" id="paren.23"/> which
convert this fuel (i.e., thermodynamic disequilibrium) to kinetic energy in the
form of azimuthal winds. Figure 1 shows a diagram of a Carnot cycle overlaid
on a cross section of a mature tropical cyclone, along with the pyPI algorithm
inputs and outputs.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1"><?xmltex \currentcnt{1}?><?xmltex \def\figurename{Figure}?><label>Figure 1</label><caption><p id="d1e286">The cross section (along radius, <inline-formula><mml:math id="M4" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula>, and pressure, <inline-formula><mml:math id="M5" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>) of an
idealized and mature tropical cyclone and its thermodynamic cycle. pyPI inputs
and outputs are in blue and red text, respectively, and are defined in
Table 1. Bold blue lines and black letters indicate the four branches of the
Carnot cycle, A through D (see text). The tropical cyclone maximum potential
intensity (<inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>) is found at the radius of maximum winds (RMW) and
is directed into the page in the Northern Hemisphere. The minimum central
pressure (<inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>) is found in the storm's eye. Based on Carnot cycle
illustrations in <xref ref-type="bibr" rid="bib1.bibx22 bib1.bibx17" id="text.24"/>.</p></caption>
        <?xmltex \igopts{width=213.395669pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f01.png"/>

      </fig>

      <p id="d1e335">Following the entropy gradient, air at the outer reaches of the storm spirals
inward (branch A) toward the minimum central pressure in the eye
(<inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>) and the entropy maximum near the radius of maximum winds
(RMW). Along its<?pagebreak page2353?> motion this air gathers entropy through isothermal heat
absorption (through the two processes noted above) with the temperature of the
sea surface, <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. When the air reaches an entropy maximum at the
RMW it bends upward through adiabatic expansion (branch B), conserving its
entropy as it rises through the eyewall and then along the outflow at the
storm top. This outflow layer is called the “outflow temperature level”
(OTL), and here the air undergoes isothermal radiative heat loss (branch C)
with temperature <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, transferring the entropy generated by the storm to its
surroundings. Finally, the Carnot cycle closes as the air undergoes adiabatic
compression with lower entropy back towards the sea surface (branch D) while
its temperature rises once again.</p>
      <p id="d1e371">An advantage of this theoretical model of a tropical cyclone is that it
permits a formulation of the storm's theoretical maximum intensity – i.e., its
PI – in terms of the heat engine efficiency, defined by the temperatures at
each extent (reservoir) of the engine (<inline-formula><mml:math id="M11" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>),
and in terms of the heat source itself (i.e., thermodynamic
disequilibrium). These quantities may be estimated with atmospheric and
oceanic observations (Sect. <xref ref-type="sec" rid="Ch1.S5.SS1"/>).</p>
      <p id="d1e406">As derived in <xref ref-type="bibr" rid="bib1.bibx2" id="text.25"/> and <xref ref-type="bibr" rid="bib1.bibx16" id="text.26"/>, the maximum (near-surface) potential intensity of a tropical cyclone, <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, may be approximated by

              <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M13" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>(</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are the enthalpy and momentum surface exchange
coefficients, respectively, <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:msubsup><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is the saturation moist static energy at
the sea surface, and <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:msup><mml:mi>h</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is the saturation moist static energy of the air
above the boundary layer (often evaluated at <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula>–600 <inline-formula><mml:math id="M19" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>;
cf. <xref ref-type="bibr" rid="bib1.bibx77" id="altparen.27"/>). Tropical cyclone thermodynamic disequilibrium and
efficiency are represented by the terms <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math id="M21" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>, respectively; the ratio <inline-formula><mml:math id="M22" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>
is a defined constant that may be estimated from theory or observations
(Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>).</p>
      <p id="d1e652">In physically based axisymmetric models, mature tropical cyclone wind speeds
tend to reach their PI <xref ref-type="bibr" rid="bib1.bibx59" id="paren.28"><named-content content-type="pre">e.g.,</named-content></xref>. In contrast, observed
storms rarely attain their thermodynamically constrained potential intensities
(see limitations discussed in Sect. <xref ref-type="sec" rid="Ch1.S7"/>). However,
<xref ref-type="bibr" rid="bib1.bibx15" id="text.29"/> combined climatologically derived PI with observed tracks
and intensities of real-world storms to show that any observed storm
statistically has an equal likelihood of attaining any lifetime maximum speed
between some lower bound and the PI along its track. This is a powerful
statistical property, because it implies that any shift in the PI distribution
– either on short timescales such as during an anomalously cold summer or on
long timescales such as a response to a warming climate – will be accompanied
by similar shifts in the observed intensity distribution
<xref ref-type="bibr" rid="bib1.bibx76" id="paren.30"><named-content content-type="pre">cf.</named-content></xref>. <xref ref-type="bibr" rid="bib1.bibx32" id="text.31"/> showed that randomly sampled
observed intensity distributions which have at least 25 tropical cyclones (of
hurricane strength or greater) will robustly follow their associated
along-track potential intensity distributions.</p>
      <p id="d1e673">Links between observed and potential intensities have been shown on seasonal
<xref ref-type="bibr" rid="bib1.bibx69 bib1.bibx32" id="paren.32"/>, interannual <xref ref-type="bibr" rid="bib1.bibx76 bib1.bibx62" id="paren.33"/>, and
climatological <xref ref-type="bibr" rid="bib1.bibx15" id="paren.34"><named-content content-type="pre">e.g.,</named-content></xref> timescales. The relationship is
more robust when PI is evaluated along the track of a storm rather than as a
basin-wide average <xref ref-type="bibr" rid="bib1.bibx76 bib1.bibx32 bib1.bibx62" id="paren.35"/>. Other studies
have examined the roles of volcanic eruptions/lower stratospheric variability
<xref ref-type="bibr" rid="bib1.bibx20" id="paren.36"><named-content content-type="pre">e.g.,</named-content></xref>, the Montreal Protocol <xref ref-type="bibr" rid="bib1.bibx51" id="paren.37"/>, or
climate change on potential intensity
<xref ref-type="bibr" rid="bib1.bibx25 bib1.bibx72 bib1.bibx64" id="paren.38"/>. Any oceanic or atmospheric
variability or trend which alters the thermodynamic environments of tropical
cyclones could have some effect on PI (though the relative importance and/or
statistical significance of these effects will vary). The connection between
tropical cyclone PI and climate change will likely remain a critical topic to
understand: the troposphere continues to warm and moisten in response to
anthropogenic emissions of greenhouse gases while simultaneously the lower
stratosphere is cooling <xref ref-type="bibr" rid="bib1.bibx37 bib1.bibx61" id="paren.39"><named-content content-type="pre">e.g.,</named-content></xref>.</p>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>The pyPI algorithm</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>BE02 PI formulation</title>
      <?pagebreak page2354?><p id="d1e722">This section provides a detailed description and record (including relevant
citations) of the PI algorithm with its thermodynamic/meteorological origins,
assumptions, and computations.<?xmltex \hack{\newpage}?></p>
      <p id="d1e726">Potential intensity may be derived following <xref ref-type="bibr" rid="bib1.bibx3" id="text.40"/> (which is
largely based on the formulation of <xref ref-type="bibr" rid="bib1.bibx24" id="altparen.41"/>) idealizing a
tropical cyclone as a Carnot heat engine <xref ref-type="bibr" rid="bib1.bibx22" id="paren.42"><named-content content-type="pre">e.g.,</named-content></xref> and
assuming the following: (1) the work done against friction by the outflow is ignored, (2)
when the storm intensity reaches its maximum, the anticyclone at the top of the
storm is fully developed, and (3) the gradient wind may be approximated by
cyclostrophic wind at the RMW. Under these conditions, the Carnot cycle
formulation yields an expression for the maximum potential intensity (which
roughly scales with the approximated PI expression, Eq. <xref ref-type="disp-formula" rid="Ch1.E1"/>;
<xref ref-type="bibr" rid="bib1.bibx77" id="altparen.43"/>):

                <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M23" display="block"><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>(</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub><mml:mo>)</mml:mo><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is the convective available potential energy of saturated air lifted from sea level to the outflow level referencing the environmental profile, and <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the convective available potential energy of the environment. Because the final term is evaluated at the RMW and <inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is pressure dependant, an expression for the surface pressure at the RMW is needed. Following <xref ref-type="bibr" rid="bib1.bibx3" id="text.44"/> (cf. also <xref ref-type="bibr" rid="bib1.bibx27" id="altparen.45"/>, their Eq. 6), the minimum pressure of the tropical cyclone at the RMW, <inline-formula><mml:math id="M27" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, is found with<fn id="Ch1.Footn2"><p id="d1e871">Equation (4) in <xref ref-type="bibr" rid="bib1.bibx3" id="text.46"/> mistakenly replaces <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. pyPI includes the correct factor of <inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></fn>

                <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M31" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">υ</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M32" 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> is the surface environmental virtual temperature, and <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the environmental convective available potential energy evaluated at the RMW. Because the boundary layer water vapor mixing ratio is higher in the tropical cyclone eyewall than the storm's outer region (assuming a constant relative humidity in the boundary layer across the storm's radius), <inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is slightly larger than <inline-formula><mml:math id="M35" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> (discussed more below).</p>
      <p id="d1e1027"><?xmltex \hack{\noindent}?><?xmltex \igopts{width=184.942913pt}?><inline-graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-g01.png"/></p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1" specific-use="star"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e1038">Input and output variables and adjustable algorithm parameters for the PI module. Default parameter values are specified in the “pyPI variable” column. Parameters adjusted by the user <italic>should never</italic> be set outside the “Values” column prescriptions without physical justification and/or appropriate module modification.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <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:colspec colnum="5" colname="col5" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Symbol</oasis:entry>
         <oasis:entry colname="col2">Name</oasis:entry>
         <oasis:entry colname="col3">pyPI variable</oasis:entry>
         <oasis:entry colname="col4">Units</oasis:entry>
         <oasis:entry colname="col5">Values</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry namest="col1" nameend="col5">Inputs </oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Sea-surface temperature</oasis:entry>
         <oasis:entry colname="col3"><monospace>SSTC</monospace></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M37" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Mean sea-level pressure</oasis:entry>
         <oasis:entry colname="col3"><monospace>MSL</monospace></oasis:entry>
         <oasis:entry colname="col4">hPa</oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Temperature profile</oasis:entry>
         <oasis:entry colname="col3"><monospace>T</monospace></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M40" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Mixing ratio profile</oasis:entry>
         <oasis:entry colname="col3"><monospace>R</monospace></oasis:entry>
         <oasis:entry colname="col4">g <inline-formula><mml:math id="M42" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M43" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Ratio of exchange coefficients</oasis:entry>
         <oasis:entry colname="col3"><monospace>CKCD=0.9</monospace></oasis:entry>
         <oasis:entry colname="col4">unitless</oasis:entry>
         <oasis:entry colname="col5">0.17–1.05</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">–</oasis:entry>
         <oasis:entry colname="col2">Ascent process proportion</oasis:entry>
         <oasis:entry colname="col3"><monospace>ascent_flag=0</monospace></oasis:entry>
         <oasis:entry colname="col4">fraction</oasis:entry>
         <oasis:entry colname="col5">0.0–1.0</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">–</oasis:entry>
         <oasis:entry colname="col2">Dissipative heating flag</oasis:entry>
         <oasis:entry colname="col3"><monospace>diss_flag=1</monospace></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">0 or 1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">–</oasis:entry>
         <oasis:entry colname="col2">Reduction of gradient winds</oasis:entry>
         <oasis:entry colname="col3"><monospace>V_reduc=0.8</monospace></oasis:entry>
         <oasis:entry colname="col4">fraction</oasis:entry>
         <oasis:entry colname="col5">0.0–1.0</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">–</oasis:entry>
         <oasis:entry colname="col2">Upper level pressure bound</oasis:entry>
         <oasis:entry colname="col3"><monospace>ptop=50</monospace></oasis:entry>
         <oasis:entry colname="col4">hPa</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">–</oasis:entry>
         <oasis:entry colname="col2">Missing data flag</oasis:entry>
         <oasis:entry colname="col3"><monospace>miss_handle=1</monospace></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">0 or 1</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry namest="col1" nameend="col5">Outputs </oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Potential intensity</oasis:entry>
         <oasis:entry colname="col3"><monospace>VMAX</monospace></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M46" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Minimum central pressure</oasis:entry>
         <oasis:entry colname="col3"><monospace>PMIN</monospace></oasis:entry>
         <oasis:entry colname="col4">hPa</oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">–</oasis:entry>
         <oasis:entry colname="col2">Algorithm status flag</oasis:entry>
         <oasis:entry colname="col3"><monospace>IFL</monospace></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">0, 1, 2, or 3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Outflow temperature</oasis:entry>
         <oasis:entry colname="col3"><monospace>TO</monospace></oasis:entry>
         <oasis:entry colname="col4">K</oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">OTL</oasis:entry>
         <oasis:entry colname="col2">Outflow temperature level</oasis:entry>
         <oasis:entry colname="col3"><monospace>OTL</monospace></oasis:entry>
         <oasis:entry colname="col4">hPa</oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e1525">The pressure dependence of CAPE requires solving
Eqs. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) and (<xref ref-type="disp-formula" rid="Ch1.E3"/>) with numerical iteration, which pyPI
performs with individual PI and CAPE modules. Algorithm 1 summarizes
how pyPI computes maximum potential intensity by modeling a tropical cyclone
as a Carnot heat engine. Algorithm inputs and outputs are provided in Table 1 and
described in Sect. <xref ref-type="sec" rid="Ch1.S4"/>; meteorological constants are provided in
the Appendix (Table <xref ref-type="table" rid="App1.Ch1.S1.T2"/>). We begin by describing the
CAPE calculation, which is used throughout the pyPI algorithm.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><?xmltex \opttitle{$\text{CAPE}$ module}?><title>CAPE module</title>
      <p id="d1e1545">CAPE is defined as the sum of positive and negative areas of buoyancy energy of a lifted parcel on a sounding (e.g., <xref ref-type="bibr" rid="bib1.bibx23" id="altparen.47"/>, their Eq. 6.3.6, discussed more below) and is calculated by pyPI with the procedure in Algorithm 2.</p>
      <p id="d1e1551"><?xmltex \hack{\noindent}?><?xmltex \igopts{width=236.157874pt}?><inline-graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-g02.png"/></p>
      <?pagebreak page2355?><p id="d1e1558">Given an initial surface parcel temperature, pressure, and mixing ratio, the
procedure begins by finding the parcel's reversible entropy, which is
conserved as it is lifted on the sounding. The parcel's water vapor pressure
is found via the ideal gas law (e.g., <xref ref-type="bibr" rid="bib1.bibx5" id="altparen.48"/>, their Eq. 16):

                <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M49" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>e</mml:mi><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>p</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mo>+</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Saturation vapor pressure (in hPa) is given empirically as a function of <inline-formula><mml:math id="M50" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>
in degrees Celsius by <xref ref-type="bibr" rid="bib1.bibx5" id="text.49"/>, their Eq. (10), following the
Clausius–Clapeyron relation:

                <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M51" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">6.112</mml:mn><mml:mo>×</mml:mo><mml:mi>exp⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">17.67</mml:mn><mml:mo>×</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">243.5</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Then fractional relative humidity is defined as <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:mtext>RH</mml:mtext><mml:mo>≡</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>e</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula>. Assuming the temperature dependence of specific heats is negligible over
the range of temperatures in the tropical atmosphere and integrating
Kirchhoff's equation (e.g., <xref ref-type="bibr" rid="bib1.bibx23" id="altparen.50"/>, Eqs. 4.4.3–4.4.4), the
temperature dependence of the latent heat of vaporization is

                <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M53" display="block"><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>×</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with <inline-formula><mml:math id="M54" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> in degrees Celsius. Finally, we are equipped to calculate the parcel's reversible total specific entropy (per unit mass of dry air), <inline-formula><mml:math id="M55" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula>, which is conserved as the parcel is lifted along the sounding (<xref ref-type="bibr" rid="bib1.bibx23" id="altparen.51"/>, their Eq. 4.5.9):

                <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M56" display="block"><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi>r</mml:mi></mml:mrow><mml:mi>T</mml:mi></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mi>r</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mtext>RH</mml:mtext><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the total water content mixing ratio, which is identical to the
parcel mixing ratio at the surface.</p>
      <p id="d1e1853">Having determined the parcel's initial moisture properties, we next find the
lifting condensation level (LCL) of the parcel, in order to partition the
upcoming buoyancy calculation between saturated and unsaturated regions of the
profile. The pressure of the LCL, <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, is found empirically
with<fn id="Ch1.Footn3"><p id="d1e1867">This is likely derived empirically from <xref ref-type="bibr" rid="bib1.bibx5" id="text.52"/> and
was developed for <xref ref-type="bibr" rid="bib1.bibx23" id="text.53"/> (Kerry Emanuel, personal
communication, 2020). Modern calculations of
<inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> are made following exact expressions from <xref ref-type="bibr" rid="bib1.bibx58" id="text.54"/>;
cf. Sect. <xref ref-type="sec" rid="Ch1.S4.SS3"/>.</p></fn>

                <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M60" display="block"><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mi>p</mml:mi><mml:mo>×</mml:mo><mml:msup><mml:mtext>RH</mml:mtext><mml:mo>∧</mml:mo></mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>-</mml:mo><mml:mi>B</mml:mi><mml:mo>×</mml:mo><mml:mtext>RH</mml:mtext><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1669</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">122</mml:mn></mml:mrow></mml:math></inline-formula>. Note that the LCL of a lifted parcel that is
already saturated is identical to its original pressure level,
i.e., <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub><mml:mo>≡</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula>. Likewise, parcels at levels below the LCL are
(by definition) not saturated. After finding <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> the CAPE
algorithm begins an “updraft loop”, where the positive and negative buoyancy
of the parcel is calculated at every <inline-formula><mml:math id="M65" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th pressure level below the upper
boundary on pressure (<monospace>ptop</monospace>, Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>).</p>
      <p id="d1e2002">Starting with calculations at levels <italic>below</italic> the LCL
(<inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&gt;</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>), at each <inline-formula><mml:math id="M67" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th level the algorithm calculates the
unsaturated parcel temperature by following a dry adiabat with the same
temperature as the surface parcel. Applying Poisson's equation,

                <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M68" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>T</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mo>×</mml:mo><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mi>p</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Because CAPE is proportional to the positive and negative areas
enclosed by the environmental and lifted parcel density temperatures
(<inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">env</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M70" 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>, respectively), we calculate the density
temperature as (<xref ref-type="bibr" rid="bib1.bibx23" id="altparen.55"/>, their Eq. 4.3.6)

                <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M71" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mo>×</mml:mo><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi>r</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">ϵ</mml:mi></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the net water mixing ratio (<inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) is the same as the parcel water
mixing ratio at the surface and in the environment below the LCL before
condensation has occurred (i.e., <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mi mathvariant="normal">≡</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>&lt;</mml:mo><mml:mtext>LCL</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>).</p>
      <p id="d1e2219">Next the algorithm finds the density temperature differences for all levels
<italic>above</italic> the LCL (<inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>). Because the parcel is saturated
above the LCL, its moisture characteristics and temperature must be found
iteratively at each <inline-formula><mml:math id="M76" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th level. First the algorithm solves for <inline-formula><mml:math id="M77" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> by
rearranging Eq. (<xref ref-type="disp-formula" rid="Ch1.E4"/>); then until the numerical iteration converges
(with objective for the parcel temperature: <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>T</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.001</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M79" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula>) it
solves for parcel moisture characteristics which conserve the parcel's
specific entropy <inline-formula><mml:math id="M80" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> (Eq. <xref ref-type="disp-formula" rid="Ch1.E7"/>) following a moist adiabat;
finding<?pagebreak page2356?> these permits an estimation of the density temperature differences at
each level. At the beginning of the loop, <inline-formula><mml:math id="M81" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M82" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> are set equal to the
previous iteration's findings; then the loop steps forward updating the
parcel's temperature (and the dependant <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and water vapor
mixing ratios) assuming <inline-formula><mml:math id="M84" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> is conserved following saturated reversible
adiabatic displacement. Following Newton's method (<inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi>T</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>T</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula>; <xref ref-type="bibr" rid="bib1.bibx73" id="altparen.56"/>), when the difference between
<inline-formula><mml:math id="M86" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> and this iteration's entropy, <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, scaled by the rate of change of
entropy with temperature, <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, is small
(i.e., <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&lt;</mml:mo><mml:mtext mathvariant="monospace">AP</mml:mtext><mml:mo>×</mml:mo><mml:mn mathvariant="normal">0.001</mml:mn></mml:mrow></mml:math></inline-formula>), the algorithm will
converge to estimate the parcel temperature at this level, <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Here
<monospace>AP</monospace> is a numerical step size employed to speed convergence, which
changes dynamically depending upon the number of iterations that have taken
place. If at any given level the total number of iterations exceeds 500 (an
excessive number of iterations), or if the water vapor pressure becomes
unrealistically close to the level pressure, then the algorithm fails to
converge and returns zero CAPE.</p>
      <p id="d1e2462">When the algorithm converges for a level, the final parcel mixing ratio is set
depending on the ascent type chosen by the user (Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>). For
pseudoadiabatic ascent (<monospace>ascent_flag</monospace> <inline-formula><mml:math id="M91" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1), liquid water condensed in
the parcel during its ascent is assumed to drop out of the parcel, such that
the heat capacity of liquid water is neglected and the mixing ratio is a
function of the final level temperature (i.e., <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>). For reversible
ascent (<monospace>ascent_flag</monospace> <inline-formula><mml:math id="M93" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0) the total water (and its heat capacity) is
retained following the parcel (i.e., <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>≡</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>). For intermediate
fractions of <monospace>ascent_flag</monospace>, the mixing ratio scales over <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>→</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e2571">Note that the density temperature difference (and hence a parcel's buoyancy)
with height is not strictly higher under either ascent assumption. Parcels
lifted reversibly are always warmer than those lifted psuedoadiabatically, but
the weight of the carried condensate also means these parcels are more dense
until they reach the upper troposphere (<xref ref-type="bibr" rid="bib1.bibx23" id="altparen.57"/>, their
Table 4.2). Accordingly, <xref ref-type="bibr" rid="bib1.bibx31" id="text.58"/> found that psuedoadiabatic
(typically more buoyant) PI calculations generally have higher altitude OTLs
than reversible (typically less buoyant) PI calculations on monthly
timescales.</p>
      <p id="d1e2580">Having determined <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the algorithm computes the density temperature for
the parcel and the environment (Eq. <xref ref-type="disp-formula" rid="Ch1.E10"/>) and calculates each
level's density temperature differences, <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>,</mml:mo><mml:mtext>env</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. We
are now equipped to calculate the lifted parcel's convective available
potential energy. CAPE is given by the vertically integrated buoyant
energy between the level from which the parcel is initially lifted (<inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) and
the level of neutral buoyancy (LNB; <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LNB</mml:mtext></mml:mrow></mml:math></inline-formula>). Following <xref ref-type="bibr" rid="bib1.bibx23" id="text.59"/>,
their Eq. (6.3.6),

                <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M100" display="block"><mml:mstyle class="stylechange" displaystyle="true"/><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>CAPE</mml:mtext><mml:mo>=</mml:mo><mml:mtext>PA</mml:mtext><mml:mo>-</mml:mo><mml:mtext>NA</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where<?xmltex \hack{\newpage}?>

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M101" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E12"><mml:mtd><mml:mtext>12</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>NA</mml:mtext><mml:mo>≡</mml:mo><mml:mo>-</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LFC</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>,</mml:mo><mml:mtext>env</mml:mtext></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E13"><mml:mtd><mml:mtext>13</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtext>PA</mml:mtext><mml:mo>≡</mml:mo><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LNB</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LFC</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>,</mml:mo><mml:mtext>env</mml:mtext></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            Negative areas (NA) are vertical regions of negative buoyancy which inhibit
spontaneous convection in the profile; positive areas (PA) are vertical
regions of positive buoyancy which cause the parcel to rise assuming an
initial upward displacement. Note that CAPE is not defined for
parcels without positive areas. By definition, the level of free convection
(LFC) separates regions that are negatively buoyant (below) from regions that
are positively buoyant (above). When <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LFC</mml:mtext><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:mo>(</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LCL</mml:mtext><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, the regions of the
profile above the LCL and below the LFC may still be negatively buoyant.</p>
      <p id="d1e2860">The CAPE algorithm numerically solves
Eqs. (<xref ref-type="disp-formula" rid="Ch1.E11"/>)–(<xref ref-type="disp-formula" rid="Ch1.E13"/>) in five steps.</p>
      <p id="d1e2867">First, we find the maximum level of positive buoyancy (<monospace>INB</monospace>), i.e., the
highest altitude <inline-formula><mml:math id="M103" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th level where <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">env</mml:mi></mml:mrow></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. If
this highest level remains at <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, then there are no positively buoyant
levels and the function returns zero CAPE.</p>
      <p id="d1e2919">Second, noting that <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>p</mml:mi><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mtext>mean</mml:mtext><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>:</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>≈</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>:</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> at each
layer over the levels <inline-formula><mml:math id="M107" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> – where the average pressure of each
layer is <inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mtext>mean</mml:mtext><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>:</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> – we find the positive and
negative areas between the second-highest altitude level (i.e., <inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>) and the
the maximum level of positive buoyancy.</p>
      <p id="d1e3065">Third, we find the residual negative area (if <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LFC</mml:mtext><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) or positive area (if
<inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mtext>LFC</mml:mtext><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) of the mean layer composed of the surface and the lowest level.</p>
      <p id="d1e3100">Fourth, we find the LNB and the temperature at the LNB, <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mtext>LNB</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>,
along with the residual positive area of the mean layer between the
maximum level of positive buoyancy and the LNB. If the <monospace>INB</monospace> is found
at the highest valid level (constrained by <monospace>ptop</monospace>,
Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>), then the LNB and <inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mtext>LNB</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> are set at that
level.</p>
      <p id="d1e3133">Finally, the negative and positive areas are added together with the residuals
following Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>). After this last step, the algorithm flag is
set to indicate the algorithm has successfully computed CAPE. Then
the values of CAPE, <inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mtext>LNB</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, the LNB, and the flag are
returned to the PI module.</p>
      <p id="d1e3150">A caveat of this approach is that different thermodynamic profile analysis
routines – and especially CAPE calculations – can produce results
which vary substantially from one another <xref ref-type="bibr" rid="bib1.bibx4" id="paren.60"><named-content content-type="pre">e.g.,</named-content></xref>. The
routine presented here contrasts with those of other Python modules such as
MetPy <xref ref-type="bibr" rid="bib1.bibx45" id="paren.61"/> and SHARPpy <xref ref-type="bibr" rid="bib1.bibx4" id="paren.62"/>, particularly in the
<inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> estimate, the feature to scale between psuedoadiabatic and
reversible ascent, and the vertical integration of density temperature
differences when evaluating CAPE (compared to the traditionally<?pagebreak page2357?> used
temperature or virtual temperature vertically integrated differences;
e.g., <xref ref-type="bibr" rid="bib1.bibx13" id="altparen.63"/>). More work is needed to determine the sensitivity
of pyPI to thermodynamic assumptions and functional forms (Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/>); in the
context of potential intensity it is the CAPE <italic>difference</italic>
that is most important (Eq. <xref ref-type="disp-formula" rid="Ch1.E2"/>), which may limit the PI
sensitivity (as long as the routines used remain internally consistent). While
beyond the scope of this study, pyPI's framework could enable further
investigation into this and related model sensitivities.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>PI module</title>
      <p id="d1e3194">The PI module begins by checking to ensure that the input atmospheric profile
is appropriate for the PI calculation. If not, missing values are returned by
the algorithm (see Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/>). Water vapor mixing ratios above
the boundary layer do not influence the PI calculation (they are redundant in
<inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>), so any missing <inline-formula><mml:math id="M118" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> values above
the surface are replaced with 0 <inline-formula><mml:math id="M119" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e3241">Following Algorithm 2 described above, pyPI computes
<inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, assuming the environmental air parcel is lifted
from the lowermost input level in <inline-formula><mml:math id="M121" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>.</p>
      <p id="d1e3262">Next, pyPI iteratively solves Eqs. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) and (<xref ref-type="disp-formula" rid="Ch1.E3"/>)
(with objective<fn id="Ch1.Footn4"><p id="d1e3269">When reduced by an order of magnitude to
<inline-formula><mml:math id="M122" display="inline"><mml:mn mathvariant="normal">0.05</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M123" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> values increase by <inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.3</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M126" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, while computation times increase by <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">25</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M128" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula>.</p></fn>
for the minimum pressure at the RMW: <inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M130" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>). The algorithm begins by calculating the
convective available potential energy (computing Algorithm 2 at each <inline-formula><mml:math id="M131" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th
iteration) iterating from the initial lowest-level environment inward toward
the radius of maximum winds, <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>. At each iteration
the mixing ratio is updated to account for pressure dependence (<inline-formula><mml:math id="M133" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> increases
slightly as <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>→</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> approaching the RMW; <xref ref-type="bibr" rid="bib1.bibx3" id="altparen.64"/>).</p>
      <p id="d1e3428">Next, we calculate the saturation convective available potential energy at the
radius of maximum winds, <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. This calculation assumes the
parcel is lifted directly from the sea surface, such that <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
and <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (where <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is found given <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> via
Eqs. <xref ref-type="disp-formula" rid="Ch1.E5"/> and <xref ref-type="disp-formula" rid="Ch1.E4"/>). pyPI defines the outflow temperature level
(OTL) and <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> as the LNB and <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mtext>LNB</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> found during the final
iteration of <inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> computation, respectively. Note that the OTL and
<inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> could instead be found during the final iteration of the <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>
computation. Flexibility in the outflow definition is a planned improvement
for pyPI. The choice to use <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> follows from defining the
outflow level with a fully saturated parcel lifted directly from the sea
surface (see Sect. <xref ref-type="sec" rid="Ch1.S6.SS2"/>).</p>
      <p id="d1e3578">The ratio of sea-surface and outflow temperatures in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>)
represents the scaling of PI by dissipative heating, which increases PI when
<inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx2" id="paren.65"/>. At each iteration this
ratio is set with the fixed input <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the current <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>≈</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mtext>LNB</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>. The relevance of this ratio for the PI calculation is
set by the user with the adjustable parameter <monospace>diss_flag</monospace>
(Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>). If dissipative heating is permitted to impact the
tropical cyclone potential intensity (<monospace>diss_flag</monospace> <inline-formula><mml:math id="M149" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1), then the ratio
remains as defined above. If dissipative heating is not considered
(<monospace>diss_flag</monospace> <inline-formula><mml:math id="M150" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0), then the algorithm assumes
<?xmltex \igopts{height=8.535827pt}?><inline-graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-g03.png"/> in the following
calculations.</p>
      <p id="d1e3671">Next, <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is estimated in each iteration following
Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>). The surface environmental virtual temperature,
<inline-formula><mml:math id="M152" 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>, is found as the average of virtual temperatures over the mean
layer composed of the parcel (with temperature, <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and the
lowest level, i.e., <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">υ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">υ</mml:mi><mml:mo>,</mml:mo><mml:mtext>s</mml:mtext></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="italic">υ</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The virtual temperature is
identical to the density temperature (Eq. <xref ref-type="disp-formula" rid="Ch1.E10"/>) at the surface
(as <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>) and may be approximated at the lowest level
with <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Combining
Eqs. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) and (<xref ref-type="disp-formula" rid="Ch1.E3"/>) to solve for <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the
algorithm iterates towards a new pressure estimate. If the number of
iterations exceeds 200 (an excessive number of iterations), or if the
estimated pressure drops below an unphysical 400 <inline-formula><mml:math id="M158" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>, then the PI
algorithm fails to converge and returns missing outputs.</p>
      <p id="d1e3832">When the algorithm has successfully converged on a stable value of
<inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the final central minimum pressure, <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>,
is set. Assuming cyclostrophic balance and that the azimuthal velocity in the
eye is given by <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>R</mml:mi><mml:mtext>RMW</mml:mtext></mml:mfrac></mml:mstyle><mml:msup><mml:mo>)</mml:mo><mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, we follow a power law
scaling with exponent <inline-formula><mml:math id="M162" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> (see also <xref ref-type="bibr" rid="bib1.bibx24" id="altparen.66"/>, their
Eqs. 25–26):

                <disp-formula id="Ch1.E14" content-type="numbered"><label>14</label><mml:math id="M163" display="block"><mml:mstyle displaystyle="true" class="stylechange"/><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub><mml:mo>×</mml:mo><mml:mi>exp⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>b</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:msubsup><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="italic">υ</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where pyPI assumes following <xref ref-type="bibr" rid="bib1.bibx3" id="text.67"/> that <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e3989">Note that the difference,
<inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, is typically
small. Historically, when <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> was used to compute PI in
the final term of Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>), it was found to add noise to the PI
algorithm output (Kerry Emanuel, personal communication, 2020). Therefore, pyPI instead replaces this term with
<inline-formula><mml:math id="M167" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup><mml:mo>-</mml:mo><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in the PI computation for
tractability. PI calculations with the original <xref ref-type="bibr" rid="bib1.bibx3" id="text.68"/> formulation
have identical OTLs and outflow temperatures but tend to have higher
<inline-formula><mml:math id="M168" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> values by between 0 and 32 <inline-formula><mml:math id="M169" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> (not
shown). Global and tropical (20<inline-formula><mml:math id="M170" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> S–20<inline-formula><mml:math id="M171" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N) mean biases from
this approximation are <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">2.5</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M174" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, respectively.</p>
      <?pagebreak page2358?><p id="d1e4141">Finally, we may find tropical cyclone potential intensity. Assuming that the
raw computed maximum gradient wind speeds are scaled to 10 <inline-formula><mml:math id="M175" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> winds
with some fraction, we multiply the result from Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) by <monospace>V_reduc</monospace>
(Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>). This step completes the PI computation. The module
sets the flag to indicate the successful computation of pyPI's algorithm and
then outputs <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, the flag, <inline-formula><mml:math id="M178" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and the OTL.<?xmltex \hack{\newpage}?></p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Python implementation</title>
      <p id="d1e4204">pyPI (v1.3) is written in Python v3.7 and its calculations are optimized with Numba
<xref ref-type="bibr" rid="bib1.bibx41" id="paren.69"/>. An average model elapsed run time (on a laptop) is <inline-formula><mml:math id="M179" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M180" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> per 100 000 input profiles. This is <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">18</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M182" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula> slower than
the mean run time of the BE02 MATLAB algorithm (on the same machine); however,
pyPI is now appropriately handling missing input data
(Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/>) which increases its run time relative to the MATLAB
algorithm. We stress that run times will ultimately depend a user's particular
implementation and computing resources.</p>
      <p id="d1e4249">Modeling the maximum intensity of a tropical cyclone with pyPI requires input
environmental state variables: temperature (<inline-formula><mml:math id="M183" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>) and mixing ratio (<inline-formula><mml:math id="M184" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula>)
profiles on pressure levels (<inline-formula><mml:math id="M185" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>), as well as concurrent <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and mean
sea-level pressures (<inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>). Algorithm variables and parameters are
shown in Table 1.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Adjustable parameters</title>
      <p id="d1e4302">pyPI includes six adjustable parameters that may be set in the module call, with
the caveat that each should be chosen within the defined “Values” column of
Table 1. Parameters set outside these values could result in syntax errors or
logical errors in the output or may give rise to unphysical PI estimates.</p>
<sec id="Ch1.S4.SS1.SSS1">
  <label>4.1.1</label><?xmltex \opttitle{\texttt{CKCD} (default\,$=$\,0.9)}?><title><monospace>CKCD</monospace> (default <inline-formula><mml:math id="M188" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0.9)</title>
      <p id="d1e4322">The ratio <inline-formula><mml:math id="M189" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is an uncertain constant which depends on the sea
state and linearly scales potential intensity; its value is an ongoing area of
field and theoretical research <xref ref-type="bibr" rid="bib1.bibx16" id="paren.70"/>. Table 1 includes the
1<inline-formula><mml:math id="M190" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> range of the ratio found with energy and momentum budget methods by
the 2003 Coupled Boundary Layers Air–Sea Transfer (CBLAST) field program
<xref ref-type="bibr" rid="bib1.bibx1" id="paren.71"/>; numerical studies have also probed the sensitivity of
simulated tropical cyclones to these exchange coefficients
<xref ref-type="bibr" rid="bib1.bibx6 bib1.bibx33" id="paren.72"/>. Studies exploring PI variability typically use a
default value of <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.9</mml:mn></mml:mrow></mml:math></inline-formula> when calculating PI
<xref ref-type="bibr" rid="bib1.bibx74 bib1.bibx77" id="paren.73"><named-content content-type="pre">e.g.,</named-content></xref>.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS2">
  <label>4.1.2</label><?xmltex \opttitle{\texttt{ascent\_ flag} (default\,$=$\,0)}?><title><monospace>ascent_flag</monospace> (default <inline-formula><mml:math id="M192" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0)</title>
      <p id="d1e4408">The ascent process proportion determines whether the air parcels displaced in
each CAPE calculation (cf. Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>) follow
reversible adiabatic ascent (<monospace>ascent_flag</monospace> <inline-formula><mml:math id="M193" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0) or pseudoadiabatic
ascent (<monospace>ascent_flag</monospace> <inline-formula><mml:math id="M194" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1). In the case of reversible ascent, the
full moist entropy of the buoyant parcel is conserved along its displacement
following a moist adiabat. In pseudoadiabatic ascent the heat capacity of
liquid water is neglected. Liquid water is assumed to fall out of the parcel
as it condenses, while the parcel ascends following the pseudoadiabatic moist
adiabat; for more details see <xref ref-type="bibr" rid="bib1.bibx23" id="text.74"/>, their Sect. 4.7. For
practical applications of pyPI, <monospace>ascent_flag</monospace> may be set to any value
between 0.0 and 1.0, such that the proportion of ascent is any fraction
intermediate to fully reversible and fully pseudoadiabatic ascent.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS3">
  <label>4.1.3</label><?xmltex \opttitle{\texttt{diss\_ flag} (default\,$=$\,1)}?><title><monospace>diss_flag</monospace> (default <inline-formula><mml:math id="M195" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1)</title>
      <p id="d1e4458">The dissipative heating flag determines whether dissipative heating is
accounted for (<monospace>diss_flag</monospace> <inline-formula><mml:math id="M196" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1) or ignored
(<monospace>diss_flag</monospace> <inline-formula><mml:math id="M197" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0) in potential intensity theory (see
<xref ref-type="bibr" rid="bib1.bibx2" id="altparen.75"/>, their Eq. 22). When dissipative heating is included in
the PI calculation, the leading factor in the BE02 algorithm
(Eq. <xref ref-type="disp-formula" rid="Ch1.E2"/>) is <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>×</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>,
where <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. In the absence of dissipative heating,
the leading factor is <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>×</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> following the original findings of
<xref ref-type="bibr" rid="bib1.bibx21 bib1.bibx24" id="text.76"/>. Scaling arguments and empirical estimates
suggest that dissipative heating increases PI by about 20 %–30 <inline-formula><mml:math id="M201" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula>
(not shown).</p>
</sec>
<sec id="Ch1.S4.SS1.SSS4">
  <label>4.1.4</label><?xmltex \opttitle{\texttt{V\_ reduc} (default\,$=$\,0.8)}?><title><monospace>V_reduc</monospace> (default <inline-formula><mml:math id="M202" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0.8)</title>
      <p id="d1e4609">Raw potential intensities are maximum gradient wind speeds
<xref ref-type="bibr" rid="bib1.bibx15" id="paren.77"/>. Therefore, gradient winds calculated with the BE02
algorithm are not directly comparable with observed intensities at the
near-surface without applying an approximate scaling between gradient and
10 <inline-formula><mml:math id="M203" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> winds. Following <xref ref-type="bibr" rid="bib1.bibx52" id="text.78"/>, a crude reduction of
20 <inline-formula><mml:math id="M204" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula> (<monospace>V_reduc</monospace> <inline-formula><mml:math id="M205" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0.8) is typically applied to scale PI
for comparison with near-surface winds. The percent reduction in the gradient
wind in terms of <monospace>V_reduc</monospace> is
<inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mtext>reduc</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">100</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="italic">%</mml:mi><mml:mo>×</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mtext mathvariant="monospace">V_reduc</mml:mtext><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Note that for some
applications of PI, such as using it as a thermodynamic parameter in climate
science – e.g., incorporation into the genesis potential index,
<xref ref-type="bibr" rid="bib1.bibx7" id="text.79"/> – <monospace>V_reduc</monospace> should be set to 1.0 (no reduction).</p>
</sec>
<sec id="Ch1.S4.SS1.SSS5">
  <label>4.1.5</label><?xmltex \opttitle{\texttt{ptop} (default\,$=$\,50)}?><title><monospace>ptop</monospace> (default <inline-formula><mml:math id="M207" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 50)</title>
      <p id="d1e4702">The upper level pressure bound is the minimum pressure below which the input
profile is ignored during PI computation. Theoretically modeled tropical
cyclone outflow can often exceed the tropical tropopause on climatological
timescales <xref ref-type="bibr" rid="bib1.bibx31" id="paren.80"/>, so setting <monospace>ptop</monospace> <inline-formula><mml:math id="M208" display="inline"><mml:mo>&gt;</mml:mo></mml:math></inline-formula> 100 <inline-formula><mml:math id="M209" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula> it
is not advisable. Reducing the number of considered levels by increasing
<monospace>ptop</monospace> may potentially increase the speed of calculations, at the risk
of finding an unrealistically low-altitude OTL and too warm a <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. Before altering <monospace>ptop</monospace>,
users should consider their particular application and the outflow levels they
anticipate given the stability of their input profiles.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS6">
  <label>4.1.6</label><?xmltex \opttitle{\texttt{miss\_ handle} (default\,$=$\,1)}?><title><monospace>miss_handle</monospace> (default <inline-formula><mml:math id="M211" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1)</title>
      <p id="d1e4762">The missing data flag prescribes how missing values are handled in the
CAPE calculation (discussed below). Following the BE02 MATLAB code
(<monospace>miss_handle</monospace> <inline-formula><mml:math id="M212" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0), if missing values are found in the input
temperature profile, then the algorithm will attempt to calculate PI for all
available levels above the missing values. However, the user may<?pagebreak page2359?> also
conservatively choose that any missing values in the input profile will
immediately set the entire PI calculation output to missing
(<monospace>miss_handle</monospace> <inline-formula><mml:math id="M213" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1).</p>
</sec>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Handling missing data</title>
      <p id="d1e4794">Mirroring the output flag convention of the BE02 MATLAB code,
<monospace>IFL</monospace> <inline-formula><mml:math id="M214" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1 when the PI algorithm successfully returns valid
potential intensity outputs, <monospace>IFL</monospace> <inline-formula><mml:math id="M215" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0 when the algorithm fails
because the input data are improper for a PI calculation (e.g., if
<inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">5</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>), and <monospace>IFL</monospace> <inline-formula><mml:math id="M217" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 2 when the
algorithm fails to converge.</p>
      <p id="d1e4851">One major difference between pyPI and the BE02 MATLAB algorithm is the
handling of missing data and the (related) flag provided in the output. By
convention, missing input variables in pyPI are assigned Python's
“Not a Number”, NaN, to avoid errors. The BE02 MATLAB code default is that
profiles may contain missing values (specifically temperatures on pressure
levels), and the algorithm computes PI over the remaining valid levels.</p>
      <p id="d1e4854">Because missing values may sometimes be found at the surface – and the
primary CAPE calculation (Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>) relies heavily
on the assumption of lifting the parcel within the storm and environment from
that level – errors could arise from estimating PI when ignoring near-surface
buoyancy. In principle, PI should be calculated only over data points with
existent sea-surface temperatures and lowest profile level temperatures. In
practice, missing data may arise at the lowest profile level, which would lead
to errant PI calculations if these profiles are input to the BE02 MATLAB code.</p>
      <p id="d1e4859">pyPI addresses this challenge in three ways. First, an adjustable parameter
(<monospace>miss_handle</monospace>) is implemented to allow the user to specify how pyPI
handles the missing values. If <monospace>miss_handle</monospace> <inline-formula><mml:math id="M218" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 0, the code
attempts to handle missing values akin to the way that the BE02 MATLAB code
did, although there still remain some differences in the outputs between pyPI
and the MATLAB algorithm. Specifically, pyPI's CAPE calculation
proceeds as normal only as long as there are no missing values between the
lowest valid (non-missing) level and the OTL; otherwise, CAPE module
outputs (and hence PI module outputs) are returned as missing. Second, if
<monospace>miss_handle</monospace> <inline-formula><mml:math id="M219" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1, then the CAPE function will
automatically interpret temperature profiles with missing data as invalid and
return missing values to the PI algorithm, resulting in the PI outputs being
set to missing in the return. Third, a new output flag value
(<monospace>IFL</monospace> <inline-formula><mml:math id="M220" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 3) is introduced in pyPI which is returned when missing
values in the temperature profile results in a missing output return from the
PI module (i.e., in either of the two cases described above), which aids in
interpreting pyPI output.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><?xmltex \currentcnt{2}?><?xmltex \def\figurename{Figure}?><label>Figure 2</label><caption><p id="d1e4899">pyPI status flags from September 2004 potential intensity calculations when <monospace>miss_handle</monospace> <inline-formula><mml:math id="M221" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1. Blue grid cells indicate the PI algorithm converged, gray grid cells indicate the PI algorithm failed to pass a check, yellow grid cells indicate the PI algorithm did not converge, and red grid cells indicate the PI algorithm failed due to missing profile data.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f02.png"/>

        </fig>

      <p id="d1e4918">Figure 2 shows an example of the output algorithm status flags from pyPI
calculations with a single month's mean environment (September 2004) from
MERRA2 data (Sect. <xref ref-type="sec" rid="Ch1.S5.SS1"/>), and with the default
<monospace>miss_handle</monospace> <inline-formula><mml:math id="M222" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1. The figure illustrates the few global points
which had at least some missing data, resulting in a missing PI return from
pyPI (<monospace>IFL</monospace> <inline-formula><mml:math id="M223" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 3; red grid points). In contrast, these locations
have an output (but likely errant) PI from the BE02 MATLAB code. The majority
of locations where missing input data results in missing output PI are near
land (e.g., the Caribbean and Indo-Pacific), where missing values arise as an
artifact of the differences between the sample data and the land–sea mask
applied (Sect. <xref ref-type="sec" rid="Ch1.S5.SS1"/>). Missing values in the sample data (which has
lowest data pressure level of 1000 <inline-formula><mml:math id="M224" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>) could also be in locations
where the monthly average <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is below 1000 <inline-formula><mml:math id="M226" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>,
resulting in <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1000</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mtext>NaN</mml:mtext></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e4995">In the example pyPI calculation (Fig. 2) there are no inputs for which the
algorithm does not converge (cf. <xref ref-type="bibr" rid="bib1.bibx3" id="altparen.81"/>). One final complication
is that BE02 MATLAB code occasionally returns <inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> as an
output. In these cases, pyPI instead returns <inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mtext>NaN</mml:mtext></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e5031">pyPI outputs valid (non-missing) potential intensities over <inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">65.6</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M231" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula> of the ocean grid points in the global 2004 sample dataset –
compared with <inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">64.41</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M233" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula> returned by the BE02 MATLAB code. In
addition to how missing data are handled, output differences may also arise
from slight variations in numerical computation between Python and
MATLAB. pyPI validation tests (Sect. <xref ref-type="sec" rid="Ch1.S5"/>) are computed over
all spatiotemporal locations for which both algorithms have
non-missing/non-zero potential intensities (and with
<monospace>miss_handle</monospace> <inline-formula><mml:math id="M234" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1).</p>
</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Opportunities for scientific improvement</title>
      <?pagebreak page2360?><p id="d1e5092">In addition to updating the original BE02 algorithm, pyPI is designed with the
intention to undergo further scientific developments as requested or created
by the community. In addition to including alternative intensity indices
<xref ref-type="bibr" rid="bib1.bibx42 bib1.bibx60" id="paren.82"><named-content content-type="pre">e.g.,</named-content></xref>, potential pyPI improvements
generally fall into two broad categories.</p>
      <p id="d1e5100"><italic>Increased model flexibility</italic>. Such improvements would alter the code
to provide users more parameter choices when the PI module is called, through
either input flags or additional variables. For instance, users may want to
select between the CAPE definition used to estimate <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>
in Eq. (<xref ref-type="disp-formula" rid="Ch1.E14"/>) (i.e., <inline-formula><mml:math id="M236" display="inline"><mml:mrow><mml:mtext>CAPE</mml:mtext><mml:msub><mml:mo>|</mml:mo><mml:mtext>RMW</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> or
<inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>) or explore alternative outflow temperature
definitions (e.g., setting <inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mtext>LNB</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> during the computation of
<inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:msub><mml:mtext>CAPE</mml:mtext><mml:mtext>env</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> compared with the default <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:msup><mml:mtext>CAPE</mml:mtext><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>
calculation).</p>
      <p id="d1e5176"><italic>Incorporation and/or development of fundamental or incremental scientific advances</italic>. As the scientific understanding of tropical cyclone
intensity and potential intensity increases, such knowledge could be brought
into pyPI. For instance, <xref ref-type="bibr" rid="bib1.bibx38" id="text.83"/> showed that the assumption of moist
neutrality in calculating PI may not be appropriate, even when a cyclone is
mature. Multiplying Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) by a factor of
<inline-formula><mml:math id="M241" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">Γ</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in the pyPI codebase, where <inline-formula><mml:math id="M242" display="inline"><mml:mi mathvariant="normal">Γ</mml:mi></mml:math></inline-formula> is the
environmental lapse rate and <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">Γ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is an empirical parameter,
would enable further exploration of how stratification affects PI.</p>
      <p id="d1e5227">A specific goal for future pyPI development is to replace the current
empirical estimate of <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mtext>LCL</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> with a modern formulation
<xref ref-type="bibr" rid="bib1.bibx58" id="paren.84"><named-content content-type="pre">e.g.,</named-content></xref>. Other opportunities for improvement might be more
involved, requiring significantly more research to implement. For example, the
magnitude of <inline-formula><mml:math id="M245" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is nonlinearly related to wind speed
<xref ref-type="bibr" rid="bib1.bibx49" id="paren.85"/>; a mathematical relationship between wind speed and this
ratio could in principle be incorporated into potential intensity theory, but
this would require revisiting PI theory and further theoretical advancements
before inclusion within pyPI.</p>
      <p id="d1e5269">These examples are not exhaustive but show the range of possibilities for
future pyPI development and the potential future value of this model in the
tropical meteorology community.</p>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Validation</title>
<sec id="Ch1.S5.SS1">
  <label>5.1</label><title>Sample reanalysis data</title>
      <p id="d1e5288">The pyPI sample data are monthly means of state variables from the second
Modern-Era Retrospective Analysis for Research and Applications (MERRA2,
<xref ref-type="bibr" rid="bib1.bibx28" id="altparen.86"/>) in 2004, interpolated onto a <inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.5</mml:mn><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mo>×</mml:mo><mml:mn mathvariant="normal">2.5</mml:mn><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> global grid. Note that for these example pyPI calculations the
water vapor mixing ratio, <inline-formula><mml:math id="M247" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula>, is approximated by substituting in the
reanalysis specific humidity, <inline-formula><mml:math id="M248" display="inline"><mml:mi>q</mml:mi></mml:math></inline-formula> (as <inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:mi>q</mml:mi><mml:mo>≡</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>r</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:math></inline-formula>,
because <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>≪</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><?xmltex \currentcnt{3}?><?xmltex \def\figurename{Figure}?><label>Figure 3</label><caption><p id="d1e5368">September 2004 mean potential intensities (<inline-formula><mml:math id="M251" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) calculated with pyPI <bold>(a)</bold> and the BE02 MATLAB code <bold>(b)</bold>.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f03.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><?xmltex \currentcnt{4}?><?xmltex \def\figurename{Figure}?><label>Figure 4</label><caption><p id="d1e5402">September 2004 mean potential intensity differences (<inline-formula><mml:math id="M252" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) between those calculated with pyPI minus those calculated with the BE02 MATLAB code.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f04.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5"><?xmltex \currentcnt{5}?><?xmltex \def\figurename{Figure}?><label>Figure 5</label><caption><p id="d1e5431">2004 mean potential intensities (<inline-formula><mml:math id="M253" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, blue dots) calculated with pyPI (horizontal axis) and the BE02 MATLAB code (vertical axis). The black curve is the 1 : 1 line.</p></caption>
          <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f05.png"/>

        </fig>

      <p id="d1e5457">Potential intensity calculations are generally linear (i.e., mean potential
intensities may be estimated as a function of mean environmental variables):<?xmltex \hack{\newpage}?>

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M254" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E15"><mml:mtd><mml:mtext>15</mml:mtext></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>≈</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>msl</mml:mtext></mml:msub><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:mi>p</mml:mi><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:mi>T</mml:mi><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:mi>r</mml:mi><mml:mo>]</mml:mo><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:mi>E</mml:mi><mml:mo>[</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>⋅</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is the expected value of a function or variable. Using
monthly mean environmental conditions – instead of 6-hourly observations –
to compute climatological monthly means of potential intensity (and the
algorithm's other output variables) generates a small bias of <inline-formula><mml:math id="M256" display="inline"><mml:mrow><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M257" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> globally and <inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M259" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the tropics. PI's
linearity property is convenient, because it reduces the scale of data needed
to compute PI: daily or hourly data are not needed for monthly or longer
(climatological) applications.  Applications on shorter (e.g., operational or
daily) timescales, however, should use appropriately shorter frequency inputs
to the pyPI algorithm.</p>
      <p id="d1e5664">The sample data uses the land–sea mask from the<?pagebreak page2361?> European Centre for
Medium-Range Weather Forecasts Interim (ERA-Interim, <xref ref-type="bibr" rid="bib1.bibx12" id="altparen.87"/>) on a
<inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">2.5</mml:mn><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:msup><mml:mo>×</mml:mo><mml:mn mathvariant="normal">2.5</mml:mn><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> global grid. By definition,
<inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>≡</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mtext>NaN</mml:mtext></mml:mrow></mml:math></inline-formula> (i.e., over land);
in some cases (e.g., if skin temperatures valid over land are used in lieu of
sea-surface temperatures) PI may be mistakenly calculated over land with the
PI module. In these cases, users should assign all PI algorithm outputs over
land to the missing value in post-processing. As an alternative, in this pyPI
example input variables over land are set to missing in a pre-processing
step. Note that the mismatch between using the ERA-I land–sea mask and MERRA2
data in this example results in a set of minor output artifacts caused by
missing (MERRA2 land grid points) input data over ERA-I defined ocean grid
points. This artifact provides a useful demonstration of the missing data flag
employed in pyPI (Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/>).</p>
</sec>
<sec id="Ch1.S5.SS2">
  <label>5.2</label><title>Validating against the BE02 implementation</title>
      <p id="d1e5731">Accompanying the environmental conditions in the sample data are outputs from
the BE02 MATLAB code written by Kerry Emanuel <xref ref-type="bibr" rid="bib1.bibx3" id="paren.88"/>. Potential
intensities calculated over September 2004 with pyPI and the extensively used
BE02 MATLAB code are compared in Fig. 3 over the globe; their difference is
computed and plotted in Fig. 4. There is excellent agreement between the two
algorithms; 98.5 <inline-formula><mml:math id="M263" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula> of output potential intensities have absolute
differences <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M265" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. Potential intensities calculated with the
Python algorithm exhibit a slightly negative bias relative to the MATLAB
calculations, but these differences are negligible compared with other
uncertainties in the PI calculation, such as the ratio of surface exchange
coefficients (Table 1).</p>
      <p id="d1e5772">Figure 5 shows the scatter between all potential intensity values calculated
with the two algorithms over the sample data, plotted against a 1 : 1 line
(values lying on this line exhibit perfect agreement). The <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> of this
comparison is <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> to seven significant digits, such that the
calculations are nearly identical. All other output variables (cf. Table 1)
from the two algorithms have similarly strong levels of agreement.</p>
      <p id="d1e5801">A minor PI difference between pyPI and the BE02 MATLAB algorithm arises when
the pyPI-found outflow level has a higher pressure and warmer temperature than
found by the BE02 code. The outflow property differences result from pyPI's
correction of a minor error that was present in the BE02 algorithm, where
<inline-formula><mml:math id="M268" display="inline"><mml:mi mathvariant="italic">ϵ</mml:mi></mml:math></inline-formula> was defined as 0.622 rather than directly calculated as
<inline-formula><mml:math id="M269" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>. The small rounding error results in a
handful of profiles with lower altitude outflow and lower PI values calculated
by pyPI. In the absence of correcting this error, the correlation between the
two calculations is <inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> to 13 significant digits, and
the absolute maximum difference anywhere is <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.1</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">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M272" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e5880">I conclude that the PI calculations made with the pyPI algorithm are
adequately validated against the BE02 MATLAB code, and that pyPI is
sufficiently accurate for use in research applications.</p>
</sec>
</sec>
<sec id="Ch1.S6">
  <label>6</label><title>Example analyses</title>
<sec id="Ch1.S6.SS1">
  <label>6.1</label><title>Annual mean PI</title>
      <p id="d1e5899">Figure 6 shows 2004 annual mean sea-surface temperatures, as well as pyPI-calculated potential
intensities, outflow temperatures, and outflow temperature levels. The familiar pattern of warm SSTs in the tropics corresponds with high
<inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> values, suggesting that on an annual timescale PI is strongly
influenced by <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. These warm and high-PI regions are accompanied
by outflow temperature levels with annual pressures below 100 <inline-formula><mml:math id="M275" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>,
deep in the tropical tropopause region (e.g., <xref ref-type="bibr" rid="bib1.bibx26" id="altparen.89"/>). Near
the tropical tropopause, annual mean outflow temperatures are remarkably cold,
around 200 <inline-formula><mml:math id="M276" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula>. On average, the coldest outflow temperatures are found
in the western North Pacific basin, where consistent deep convection and
stratospheric circulation act to keep tropopause temperatures very cold and
highly variable (e.g., <xref ref-type="bibr" rid="bib1.bibx54" id="altparen.90"/>).</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="d1e5949">2004 annual mean potential intensities in <bold>(a)</bold>, sea-surface temperatures in K <bold>(b)</bold>, outflow temperatures in K <bold>(c)</bold>, and outflow temperature levels in hPa <bold>(d)</bold> calculated with pyPI.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f06.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7" specific-use="star"><?xmltex \currentcnt{7}?><?xmltex \def\figurename{Figure}?><label>Figure 7</label><caption><p id="d1e5972">2004 seasonal cycles of potential intensity in meters per second <bold>(a)</bold>, sea-surface temperature in K <bold>(b)</bold>, outflow temperature in K <bold>(c)</bold>, and outflow temperature level in hPa <bold>(d)</bold> calculated with pyPI and averaged over the main development regions: the North Atlantic (red), eastern North Pacific (green), western North Pacific (blue), North Indian (yellow), and Southern Hemisphere (black).</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f07.png"/>

        </fig>

</sec>
<sec id="Ch1.S6.SS2">
  <label>6.2</label><title>PI seasonal cycles</title>
      <p id="d1e6001">A slightly more sophisticated application of pyPI is the calculation of
potential intensity seasonal cycles. Reproducing the methodology of
<xref ref-type="bibr" rid="bib1.bibx31" id="text.91"/> with pyPI calculations over 2004, Fig. 7 shows the
seasonal cycles of sea-surface temperatures, as well as outflow temperatures, outflow
temperature levels, and potential intensities in 2004 averaged over tropical
cyclone main development regions (defined in <xref ref-type="bibr" rid="bib1.bibx31" id="altparen.92"/>, their
Table 1).</p>
      <p id="d1e6010">The seasonal cycles of PI are known to be quite robust year over year and
exhibit clear differences between regions.<?pagebreak page2362?> The western North Pacific has a
nearly flat seasonal cycle of PI, while the other basins are more
intraseasonally variable. While the muted sea-surface temperatures certainly
play an important role in this damped cycle, the outflow temperature pattern
is typical of the cold-point tropopause seasonal cycle
(e.g., <xref ref-type="bibr" rid="bib1.bibx79 bib1.bibx55" id="altparen.93"/>) – which the OTLs are reaching –
which acts to damp the seasonal cycle further by decreasing PI in the boreal
summer and increasing PI in the boreal winter. As a result, tropical cyclones
in the western North Pacific have higher speed limits during the boreal winter
months. Consistent with this finding, historical observed typhoons show
intense wind speeds during the winter and spring months
<xref ref-type="bibr" rid="bib1.bibx32" id="paren.94"/>. For example, in early April 2004 Typhoon Sudal reached
Category 4 strength, <inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">67</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M278" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, when the co-located monthly
average PI was about 75 <inline-formula><mml:math id="M279" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e6063">The seasonal cycles of each basin illustrate the complex relationship between
sea-surface temperatures, OTLs, and<?pagebreak page2363?> outflow temperatures. Figure 8 diagrams
this relationship in more detail, showing how one assumption in the pyPI
algorithm impacts the output PI values. pyPI assumes that the outflow
temperature and its level are derived by finding the LNB assuming a saturated
parcel lifted from the sea-surface with temperature, <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. This
implies that, following a moist adiabat, the level of the neutral buoyancy is
a function of only <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the environmental temperature profile,
<inline-formula><mml:math id="M282" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>. Given a fixed temperature profile, a 3 <inline-formula><mml:math id="M283" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C increase in <inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
(e.g., from SST1 <inline-formula><mml:math id="M285" display="inline"><mml:mo>→</mml:mo></mml:math></inline-formula> SST2 in Fig. 8) requires that the associated OTL will be
found at a higher altitude (OTL1 <inline-formula><mml:math id="M286" display="inline"><mml:mo>→</mml:mo></mml:math></inline-formula> OTL2 in Fig. 8), and the associated
outflow temperature will likewise change. As the atmosphere's stratification
increases into the lower stratosphere, increases in <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> become
less effective at changing the OTL and its temperature, with the effect nearly
saturating when the outflow reaches the cold-point tropopause
(e.g., 100 <inline-formula><mml:math id="M288" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula> in Fig. 8). At this point, <inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> variability is almost
completely decoupled from <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> variability. Instead these <inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>
values become influenced by tropopause region variability
(e.g., <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx53 bib1.bibx74 bib1.bibx77 bib1.bibx31" id="altparen.95"/>) which
is controlled by radiation, dynamics, and deep convection
(e.g., <xref ref-type="bibr" rid="bib1.bibx26 bib1.bibx55" id="altparen.96"/>).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8"><?xmltex \currentcnt{8}?><?xmltex \def\figurename{Figure}?><label>Figure 8</label><caption><p id="d1e6192">Skew-T log-P thermodynamic diagram with isotherms (thin black curves), dry adiabats (green curves), and moist adiabats (blue curves). The bold black line is a mean environmental temperature profile from the North Atlantic main development region, the magenta curve is the moist adiabat associated with a mean North Atlantic sea-surface temperature (SST), and the red curve is the moist adiabat associated with a sea-surface temperature 3 <inline-formula><mml:math id="M292" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:math></inline-formula> warmer than the mean.</p></caption>
          <?xmltex \igopts{width=199.169291pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f08.png"/>

        </fig>

      <p id="d1e6213">These properties are borne out in the example 2004 seasonal cycles computed in
Fig. 7. In the North Atlantic basin sea-surface temperature and OTL seasonal
cycles are inversely proportional: colder sea-surface temperatures have higher-pressure OTLs and warmer outflow temperatures found in the upper troposphere
(where <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) in all months except
August–September. In these late summer months the OTL reaches near the
cold-point tropopause, and the outflow temperature slightly increases,
following the seasonal cycle of warmer tropopause temperatures
(e.g., <xref ref-type="bibr" rid="bib1.bibx79" id="altparen.97"/>). A contrasting pattern is observed in the western
North Pacific, where OTLs have almost no seasonal cycle: in this basin the
calculated outflow <italic>always</italic> reaches the lowermost stratosphere (OTL
<inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">90</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M295" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula>). Accordingly, the outflow temperature seasonal cycle
perennially follows the seasonality of lowermost stratospheric temperatures,
which minimize in the boreal winter and maximize in the boreal summer
<xref ref-type="bibr" rid="bib1.bibx79" id="paren.98"/>. Comparing with Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), this <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>
seasonality leads to relatively <italic>increased</italic> PI values in the boreal
winter and relatively <italic>decreased</italic> PI values in the boreal
summer. Overall, the PI seasonal cycle in the western North Pacific is damped
over the year, a pattern that is observed in real-world tropical cyclone
intensities (cf. <xref ref-type="bibr" rid="bib1.bibx32" id="altparen.99"/>).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9"><?xmltex \currentcnt{9}?><?xmltex \def\figurename{Figure}?><label>Figure 9</label><caption><p id="d1e6290">Seasonal amplitudes of each PI decomposition term (Eq. <xref ref-type="disp-formula" rid="Ch1.E16"/>) in 2004 and each main development region, calculated with pyPI. Compare with <xref ref-type="bibr" rid="bib1.bibx31" id="text.100"/>, their Table 2. By convention, negative amplitudes indicate the associated seasonal cycle peaks in the boreal winter. For reference, the dashed black line indicates the magnitude and sign of the seasonally invariant log<inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p></caption>
          <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/2351/2021/gmd-14-2351-2021-f09.png"/>

        </fig>

</sec>
<sec id="Ch1.S6.SS3">
  <label>6.3</label><title>Decomposition analysis</title>
      <?pagebreak page2364?><p id="d1e6336">The relative contributions to potential intensity may be mathematically
derived by decomposing Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>). Taking the natural logarithm of
both sides,

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M298" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mn mathvariant="normal">2</mml:mn><mml:mo>×</mml:mo><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>log⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>+</mml:mo><mml:mi>log⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E16"><mml:mtd><mml:mtext>16</mml:mtext></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>+</mml:mo><mml:mi>log⁡</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            Then PI variability is related to variability in either tropical cyclone
efficiency (<inline-formula><mml:math id="M299" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>) or thermodynamic disequilibrium
(<inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msubsup><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>); recall that <inline-formula><mml:math id="M301" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is taken as a constant. As an
example, Eq. (<xref ref-type="disp-formula" rid="Ch1.E16"/>) is applied to pyPI-calculated 2004
seasonal cycles of potential intensity (from Fig. 7). pyPI calculates PI
directly, and efficiency may be directly computed from input <inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
and output <inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>; following <xref ref-type="bibr" rid="bib1.bibx77" id="text.101"/> the disequilibrium term is taken
as a residual from Eq. (<xref ref-type="disp-formula" rid="Ch1.E16"/>).<?xmltex \hack{\newpage}?></p>
      <p id="d1e6543">After finding each term in Eq. (<xref ref-type="disp-formula" rid="Ch1.E16"/>) over each basin and
seasonal cycle, the amplitude (defined as the annual range evaluated with
monthly observations) of each seasonal cycle is plotted in Fig. 9. By
convention, a negative amplitude indicates the approximately sinusoidal
seasonal cycle reached its maximum in the boreal winter and minimum in the
boreal summer.</p>
      <p id="d1e6548">In all basins, the disequilibrium term drives the largest portion of the
seasonal amplitude. This is consistent with sea-surface temperature seasonal
cycles which dominate the disequilibrium variance (Fig. 7). The efficiency
term is smaller, and in each basin it follows the same cycle as thermodynamic
disequilibrium, with the exception of the western North Pacific (where the
efficiency seasonal cycle maximizes in the boreal winter and minimizes in the
boreal summer). This opposite-signed seasonality between disequilibrium and
efficiency in the western North Pacific is directly related to the influential
seasonality of the near-tropopause outflow temperatures found with the pyPI
calculations (Sect. <xref ref-type="sec" rid="Ch1.S6.SS2"/>; see full discussions in
<xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx32" id="altparen.102"/>). Notably, the Southern Hemisphere shares
this outflow temperature seasonality, which actually amplifies the efficiency
seasonal cycle through both sea-surface temperatures and outflow temperature
intraseasonal variability. In all other basins, outflow temperature
seasonality is offset by the sea-surface temperature seasonality, which acts
to mute the efficiency term and further contribute to disequilibrium
dominating their seasonal cycles. The decomposition in Fig. 9 illustrates how
the roles of environmental conditions in PI seasonality are basin dependant.</p>
      <p id="d1e6556">These simple examples show how pyPI may be used to study tropical cyclone
intensities and likewise demonstrate pyPI's ability to produce findings
similar to those previously computed with the BE02 MATLAB code.</p>
</sec>
</sec>
<sec id="Ch1.S7" sec-type="conclusions">
  <label>7</label><title>Summary, limitations, and future development</title>
      <p id="d1e6568">pyPI is a Python package that models the maximum potential intensity (PI) of a
tropical cyclone given its environmental conditions. pyPI(v1.3) is the first
fully documented PI algorithm, advancing on a previous MATLAB code
<xref ref-type="bibr" rid="bib1.bibx3" id="paren.103"/>, which has been extensively used, but under-documented, in
the literature. In addition to documenting PI computation, allowing dynamic
parameter selection, and correcting minor errors in the previous algorithm,
pyPI is also an open-source, maintained, and archived project which permits
reproducibility, continual updates and improvements, and accountability for
future PI calculations in the tropical meteorology community.<?xmltex \hack{\newpage}?></p>
      <p id="d1e6575">pyPI calculations exactly reproduce outputs from the <xref ref-type="bibr" rid="bib1.bibx3" id="text.104"/>
algorithm, except in rare cases where the original algorithm's implementation
was errant. Sample analyses show the flexibility and usefulness of PI
calculations for understanding variability and thermodynamic contributions to
climatological tropical cyclone maximum intensities.</p>
      <p id="d1e6581">Because of its statistical ties with observed storms
<xref ref-type="bibr" rid="bib1.bibx15 bib1.bibx76 bib1.bibx32 bib1.bibx62" id="paren.105"/> PI is powerful tool for
exploring past and future changes in real-world maximum intensities. pyPI
computations have a broad range of possible applications, which could include
operational meteorology (e.g., the PI maps produced by the Center for
Land–Atmosphere Prediction, <xref ref-type="bibr" rid="bib1.bibx19" id="altparen.106"/>) and climate change
research <xref ref-type="bibr" rid="bib1.bibx64" id="paren.107"/>.</p>
      <p id="d1e6593">Potential intensity is a theoretical model with several notable
limitations. Real-world tropical cyclones rarely are in quasi-steady state or
meet the idealized conditions required for the Carnot cycle model. This makes
PI less suitable for operational purposes, though it may still be incorporated
into real-time genesis or intensification indices (see below). Furthermore, PI
theory does not directly account for complicating factors such as vertical
wind shear or large-scale subsidence, which are known to have important
influences on tropical cyclone intensity. The ratio of surface exchange
coefficients, <inline-formula><mml:math id="M304" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>, is also highly uncertain but important for PI
magnitude. Previous studies have adapted PI to make it more suitable for
various applications <xref ref-type="bibr" rid="bib1.bibx42 bib1.bibx39" id="paren.108"><named-content content-type="pre">e.g.,</named-content></xref>; pyPI users should
carefully consider PI assumptions and applicability in their research problems
<xref ref-type="bibr" rid="bib1.bibx30" id="paren.109"/>, adapting pyPI or suggesting package enhancements as
appropriate.</p>
      <p id="d1e6624">Future planned software improvements of pyPI include an expansion of the
codebase to compute other tropical cyclone thermodynamic and statistical
indices, including the genesis potential index <xref ref-type="bibr" rid="bib1.bibx7 bib1.bibx80" id="paren.110"/>
and ventilation index <xref ref-type="bibr" rid="bib1.bibx67" id="paren.111"/>. A direct disequilibrium calculation
<xref ref-type="bibr" rid="bib1.bibx77" id="paren.112"><named-content content-type="pre">e.g.,</named-content></xref> module would permit comparisons with the residual
approach currently employed in pyPI (Sect. <xref ref-type="sec" rid="Ch1.S6.SS3"/>). Finally, further
improvements in the algorithm's handling of missing data are warranted to
reduce the algorithm run time and improve pyPI's applicability for a wider
range of input profiles.</p><?xmltex \hack{\clearpage}?>
</sec>

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

<?pagebreak page2365?><app id="App1.Ch1.S1">
  <?xmltex \currentcnt{A}?><label>Appendix A</label><title>pyPI constants</title>

<?xmltex \floatpos{h}?><table-wrap id="App1.Ch1.S1.T2"><?xmltex \hack{\hsize\textwidth}?><?xmltex \currentcnt{A1}?><label>Table A1</label><caption><p id="d1e6656">Meteorological constants used in the potential intensity algorithm.</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">Symbol</oasis:entry>
         <oasis:entry colname="col2">Constant name</oasis:entry>
         <oasis:entry colname="col3">pyPI variable</oasis:entry>
         <oasis:entry colname="col4">Value/units</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Specific heat of dry air</oasis:entry>
         <oasis:entry colname="col3"><monospace>CPD</monospace></oasis:entry>
         <oasis:entry colname="col4">1005.7 <inline-formula><mml:math id="M306" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Specific heat of water vapor</oasis:entry>
         <oasis:entry colname="col3"><monospace>CPV</monospace></oasis:entry>
         <oasis:entry colname="col4">1870 <inline-formula><mml:math id="M308" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Specific heat of liquid water</oasis:entry>
         <oasis:entry colname="col3"><monospace>CL</monospace></oasis:entry>
         <oasis:entry colname="col4">2500 <inline-formula><mml:math id="M310" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Gas constant of water vapor</oasis:entry>
         <oasis:entry colname="col3"><monospace>RV</monospace></oasis:entry>
         <oasis:entry colname="col4">461.5 <inline-formula><mml:math id="M312" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Gas constant of dry air</oasis:entry>
         <oasis:entry colname="col3"><monospace>RD</monospace></oasis:entry>
         <oasis:entry colname="col4">287.04 <inline-formula><mml:math id="M314" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M315" display="inline"><mml:mi mathvariant="italic">ϵ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Ratio of gas constants</oasis:entry>
         <oasis:entry colname="col3"><monospace>EPS</monospace></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.6219</mml:mn><mml:mi mathvariant="normal">…</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Latent heat of vaporization at 0 <inline-formula><mml:math id="M318" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><monospace>ALV0</monospace></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.501</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M320" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e7035">Constants used in to model potential intensity in the BE02 algorithm have been directly used in pyPI and are recorded in Table <xref ref-type="table" rid="App1.Ch1.S1.T2"/>.</p>
</app>

<app id="App1.Ch1.S2">
  <?xmltex \currentcnt{B}?><label>Appendix B</label><title>pyPI functions</title>

<?xmltex \floatpos{h}?><table-wrap id="App1.Ch1.S2.T3"><?xmltex \hack{\hsize\textwidth}?><?xmltex \currentcnt{B1}?><label>Table B1</label><caption><p id="d1e7052">Python functions to compute or analyze the potential intensity algorithm.</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 rowsep="1">
         <oasis:entry colname="col1">Name</oasis:entry>
         <oasis:entry colname="col2">Eq. number(s)</oasis:entry>
         <oasis:entry colname="col3">Python function name</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Potential intensity</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E2"/>)–(<xref ref-type="disp-formula" rid="Ch1.E3"/>), (<xref ref-type="disp-formula" rid="Ch1.E14"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>pi</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Parcel vapor pressure</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E4"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>ev</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Parcel mixing ratio</oasis:entry>
         <oasis:entry colname="col2">Invert (<xref ref-type="disp-formula" rid="Ch1.E4"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>rv</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Clausius–Clapeyron</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E5"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>es_cc</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Latent heat of vaporization</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E6"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>Lv</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total specific entropy</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E7"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>entropy_S</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Lifting condensation level</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E8"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>e_pLCL</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Density temperature</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E10"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>Trho</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Convective available potential energy</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E11"/>)–(<xref ref-type="disp-formula" rid="Ch1.E13"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>cape</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Tropical cyclone efficiency</oasis:entry>
         <oasis:entry colname="col2">Term of (<xref ref-type="disp-formula" rid="Ch1.E1"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>pi_efficiency</monospace></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Potential intensity decomposition</oasis:entry>
         <oasis:entry colname="col2">(<xref ref-type="disp-formula" rid="Ch1.E16"/>)</oasis:entry>
         <oasis:entry colname="col3"><monospace>decompose_pi</monospace></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e7256">pyPI performs the calculations of Algorithms 1 and 2 through a set of
functions included in the primary module or loaded from a utility file; these
ensure consistency and enable modular changes to the codebase. Interested
readers are encouraged to review the function list in
Table <xref ref-type="table" rid="App1.Ch1.S2.T3"/> when considering a change to the pyPI codebase. Note
that the CAPE and potential intensity modules include assumptions and
internal calculations supporting Algorithms 1 and 2, which do not have their own Python functions. These are commented where they appear in the code and may be cross-referenced with the fully documented algorithm descriptions in Sects. <xref ref-type="sec" rid="Ch1.S3.SS2"/> and <xref ref-type="sec" rid="Ch1.S3.SS3"/>.</p><?xmltex \hack{\clearpage}?>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d1e7270">pyPI version 1.3 and accompanying
data for validation and sample analyses are available at
<uri>https://github.com/dgilford/pyPI/releases/tag/v1.3</uri> (last access: 26 April 2021) and archived at <ext-link xlink:href="https://doi.org/10.5281/zenodo.3985975" ext-link-type="DOI">10.5281/zenodo.3985975</ext-link> <xref ref-type="bibr" rid="bib1.bibx29" id="paren.113"/>. pyPI is provided under the MIT license.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e7285">The author declares that there is no conflict of interest.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d1e7292">The code is made publicly available without any warranty, and
permissions are provided pursuant to the MIT License
(<uri>https://opensource.org/licenses/MIT</uri>, last access: 26 April 2021).</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e7301">Thanks to the two anonymous reviewers, whose comments improved this study. The author is particularly grateful to Kerry Emanuel for his encouragement and permission to develop, document, and distribute pyPI and for his development of PI theory and the original PI algorithm. Thanks to Daniel Rothenberg for implementing a Numba optimization <xref ref-type="bibr" rid="bib1.bibx41" id="paren.114"/> of the primary pyPI module. Thanks to Allison Wing, Dan Chavas, Jonathan Lin, and Raphael Rousseau-Rizzi for helpful comments and suggestions on pyPI and its documentation.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d1e7309">This research has been supported by the National Science Foundation (grant no. ICER-1663807) and the National Aeronautics and Space Administration (grant no. 80NSSC17K0698).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e7315">This paper was edited by Paul Ullrich and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><?xmltex \def\ref@label{Bell et al.(2012)}?><label>Bell et al.(2012)</label><?label Bell2012?><mixed-citation>Bell, M. M., Montgomery, M. T., and Emanuel, K. A.: Air–Sea Enthalpy and Momentum Exchange at Major Hurricane Wind Speeds Observed during CBLAST, J. Atmos. Sci., 69, 3197–3222, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-11-0276.1" ext-link-type="DOI">10.1175/JAS-D-11-0276.1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx2"><?xmltex \def\ref@label{Bister and Emanuel(1998)}?><label>Bister and Emanuel(1998)</label><?label Bister1998?><mixed-citation>Bister, M. and Emanuel, K. A.: Dissipative heating and hurricane intensity, Meteorol. Atmos. Phys., 65, 233–240, <ext-link xlink:href="https://doi.org/10.1007/BF01030791" ext-link-type="DOI">10.1007/BF01030791</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx3"><?xmltex \def\ref@label{Bister and Emanuel(2002)}?><label>Bister and Emanuel(2002)</label><?label Bister2002?><mixed-citation>Bister, M. and Emanuel, K. A.: Low frequency variability of tropical cyclone potential intensity 1. Interannual to interdecadal variability, J. Geophys. Res.-Atmos., 107, 4801, <ext-link xlink:href="https://doi.org/10.1029/2001JD000776" ext-link-type="DOI">10.1029/2001JD000776</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx4"><?xmltex \def\ref@label{Blumberg et al.(2017)}?><label>Blumberg et al.(2017)</label><?label Blumberg2017?><mixed-citation>Blumberg, W. G., Halbert, K. T., Supinie, T. A., Marsh, P. T., Thompson, R. L., and Hart, J. A.: Sharppy: An open-source sounding analysis toolkit for the atmospheric sciences, B. Am. Meteorol. Soc., 98, 1625–1636, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-15-00309.1" ext-link-type="DOI">10.1175/BAMS-D-15-00309.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx5"><?xmltex \def\ref@label{Bolton(1980)}?><label>Bolton(1980)</label><?label Bolton1980?><mixed-citation>Bolton, D.: The Computation of Equivalent Potential Temperature, Mon. Weather Rev., 108, 1046–1053, <ext-link xlink:href="https://doi.org/10.1175/1520-0493(1980)108&lt;1046:TCOEPT&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0493(1980)108&lt;1046:TCOEPT&gt;2.0.CO;2</ext-link>, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx6"><?xmltex \def\ref@label{Bryan(2012)}?><label>Bryan(2012)</label><?label Bryan2012?><mixed-citation>Bryan, G. H.: Effects of surface exchange coefficients and turbulence length scales on the intensity and structure of numerically simulated hurricanes, Mon. Weather Rev., 140, 1125–1143, <ext-link xlink:href="https://doi.org/10.1175/MWR-D-11-00231.1" ext-link-type="DOI">10.1175/MWR-D-11-00231.1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx7"><?xmltex \def\ref@label{Camargo et al.(2007)}?><label>Camargo et al.(2007)</label><?label Camargo2007?><mixed-citation>Camargo, S., Sobel, A. H., Barnston, A. G., and Emanuel, K. A.: Tropical cyclone genesis potential index in climate models, Tellus A, 59, 428–443, <ext-link xlink:href="https://doi.org/10.1111/j.1600-0870.2007.00238.x" ext-link-type="DOI">10.1111/j.1600-0870.2007.00238.x</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx8"><?xmltex \def\ref@label{Camargo(2013)}?><label>Camargo(2013)</label><?label Camargo2013a?><mixed-citation>Camargo, S. J.: Global and regional aspects of tropical cyclone activity in the CMIP5 models, J. Climate, 26, 9880–9902, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-12-00549.1" ext-link-type="DOI">10.1175/JCLI-D-12-00549.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx9"><?xmltex \def\ref@label{Camargo and Polvani(2019)}?><label>Camargo and Polvani(2019)</label><?label Camargo2019?><mixed-citation>Camargo, S. J. and Polvani, L. M.: Little evidence of a reduced global
tropical cyclone activity following recent volcanic eruptions, npj Climate and
Atmospheric Science, 2, 14, <ext-link xlink:href="https://doi.org/10.1038/s41612-019-0070-z" ext-link-type="DOI">10.1038/s41612-019-0070-z</ext-link>,
2019.</mixed-citation></ref>
      <ref id="bib1.bibx10"><?xmltex \def\ref@label{Camargo et al.(2009)}?><label>Camargo et al.(2009)</label><?label Camargo2009?><mixed-citation>Camargo, S. J., Wheeler, M. C., and Sobel, A. H.: Diagnosis of the MJO modulation of tropical cyclogenesis using an empirical index, J. Atmos. Sci., 66, 3061–3074, <ext-link xlink:href="https://doi.org/10.1175/2009JAS3101.1" ext-link-type="DOI">10.1175/2009JAS3101.1</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx11"><?xmltex \def\ref@label{Chavas and Emanuel(2014)}?><label>Chavas and Emanuel(2014)</label><?label Chavas2014?><mixed-citation>Chavas, D. R. and Emanuel, K.: Equilibrium tropical cyclone size in an idealized state of axisymmetric radiative-convective equilibrium, J. Atmos. Sci., 71, 1663–1680, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-13-0155.1" ext-link-type="DOI">10.1175/JAS-D-13-0155.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx12"><?xmltex \def\ref@label{Dee et al.(2011)}?><label>Dee et al.(2011)</label><?label Dee2011?><mixed-citation>Dee, D. P., Uppala, S. M., Simmons, a. J., Berrisford, P., Poli, P., Kobayashi, S., Andrae, U., Balmaseda, M. a., Balsamo, G., Bauer, P., Bechtold, P., Beljaars, a. C. M., van de Berg, L., Bidlot, J., Bormann, N., Delsol, C., Dragani, R., Fuentes, M., Geer, a. J., Haimberger, L., Healy, S. B., Hersbach, H., Hólm, E. V., Isaksen, L., Kållberg, P., Köhler, M., Matricardi, M., McNally, a. P., Monge-Sanz, B. M., Morcrette, J.-J., Park, B.-K., Peubey, C., de Rosnay, P., Tavolato, C., Thépaut, J.-N., and Vitart, F.: The ERA-Interim reanalysis: configuration and performance of the data assimilation system, Q. J. Roy. Meteor. Soc., 137, 553–597, <ext-link xlink:href="https://doi.org/10.1002/qj.828" ext-link-type="DOI">10.1002/qj.828</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx13"><?xmltex \def\ref@label{Doswell and Rasmussen(1994)}?><label>Doswell and Rasmussen(1994)</label><?label Doswell1994?><mixed-citation>Doswell, C. A. and Rasmussen, E. N.: The effect of neglecting the virtual
temperature correction on CAPE calculations, Weather Forecast., 9, 625–629,
<ext-link xlink:href="https://doi.org/10.1175/1520-0434(1994)009&lt;0625:TEONTV&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0434(1994)009&lt;0625:TEONTV&gt;2.0.CO;2</ext-link>,
1994.</mixed-citation></ref>
      <ref id="bib1.bibx14"><?xmltex \def\ref@label{Elsner et al.(2008)}?><label>Elsner et al.(2008)</label><?label Elsner2008?><mixed-citation>Elsner, J. B., Kossin, J. P., and Jagger, T. H.: The increasing intensity of the strongest tropical cyclones, Nature, 455, 92–95, <ext-link xlink:href="https://doi.org/10.1038/nature07234" ext-link-type="DOI">10.1038/nature07234</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx15"><?xmltex \def\ref@label{Emanuel(2000)}?><label>Emanuel(2000)</label><?label Emanuel2000?><mixed-citation>Emanuel, K.: A Statistical Analysis of Tropical Cyclone Intensity, Mon. Weather Rev., 128, 1139–1152, <ext-link xlink:href="https://doi.org/10.1175/1520-0493(2000)128&lt;1139:ASAOTC&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0493(2000)128&lt;1139:ASAOTC&gt;2.0.CO;2</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx16"><?xmltex \def\ref@label{Emanuel(2003)}?><label>Emanuel(2003)</label><?label Emanuel2003?><mixed-citation>Emanuel, K.: Tropical Cyclones, Annu. Rev. Earth Pl. Sc., 31, 75–104, <ext-link xlink:href="https://doi.org/10.1146/annurev.earth.31.100901.141259" ext-link-type="DOI">10.1146/annurev.earth.31.100901.141259</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx17"><?xmltex \def\ref@label{Emanuel(2006)}?><label>Emanuel(2006)</label><?label Emanuel2006?><mixed-citation>Emanuel, K.: Hurricanes: Tempests in a greenhouse, Physics Today, 59, 74–75, <ext-link xlink:href="https://doi.org/10.1063/1.2349743" ext-link-type="DOI">10.1063/1.2349743</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx18"><?xmltex \def\ref@label{Emanuel(2018)}?><label>Emanuel(2018)</label><?label Emanuel2018?><mixed-citation>Emanuel, K.: 100 Years of Progress in Tropical Cyclone Research, Meteor. Mon., 59, 15.1–15.68, <ext-link xlink:href="https://doi.org/10.1175/AMSMONOGRAPHS-D-18-0016.1" ext-link-type="DOI">10.1175/AMSMONOGRAPHS-D-18-0016.1</ext-link>,
2018.</mixed-citation></ref>
      <?pagebreak page2367?><ref id="bib1.bibx19"><?xmltex \def\ref@label{Emanuel et al.(2004)}?><label>Emanuel et al.(2004)</label><?label Emanuel2004?><mixed-citation>Emanuel, K., DesAutels, C., Holloway, C., and Korty, R.: Environmental control of tropical cyclone intensity, J. Atmos. Sci., 61, 843–858, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(2004)061&lt;0843:ECOTCI&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(2004)061&lt;0843:ECOTCI&gt;2.0.CO;2</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx20"><?xmltex \def\ref@label{Emanuel et al.(2013)}?><label>Emanuel et al.(2013)</label><?label Emanuel2013?><mixed-citation>Emanuel, K., Solomon, S., Folini, D., Davis, S., and Cagnazzo, C.: Influence of Tropical Tropopause Layer Cooling on Atlantic Hurricane Activity, J. Climate, 26, 2288–2301, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-12-00242.1" ext-link-type="DOI">10.1175/JCLI-D-12-00242.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx21"><?xmltex \def\ref@label{Emanuel(1986)}?><label>Emanuel(1986)</label><?label Emanuel1986?><mixed-citation>Emanuel, K. A.: An Air-Sea Interaction Theory for Tropical Cyclones. Part I:
Steady-State Maintenance, J. Atmos. Sci., 43, 585–605, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1986)043&lt;0585:AASITF&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1986)043&lt;0585:AASITF&gt;2.0.CO;2</ext-link>, 1986.</mixed-citation></ref>
      <ref id="bib1.bibx22"><?xmltex \def\ref@label{Emanuel(1987)}?><label>Emanuel(1987)</label><?label Emanuel1987?><mixed-citation>Emanuel, K. A.: The dependence of hurricane intensity on climate, Nature, 326, 483–485, <ext-link xlink:href="https://doi.org/10.1038/326483a0" ext-link-type="DOI">10.1038/326483a0</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx23"><?xmltex \def\ref@label{Emanuel(1994)}?><label>Emanuel(1994)</label><?label Emanuel1994?><mixed-citation>
Emanuel, K. A.: Atmospheric Convection, Oxford University Press, 1994.</mixed-citation></ref>
      <ref id="bib1.bibx24"><?xmltex \def\ref@label{Emanuel(1995)}?><label>Emanuel(1995)</label><?label Emanuel1995?><mixed-citation>Emanuel, K. A.: Sensitivity of tropical cyclones to surface exchange
coefficients and revised steady-state model incorporating eye dynamics,
J. Atmos. Sci., 52, 3969–3976, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1995)052&lt;3969:SOTCTS&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1995)052&lt;3969:SOTCTS&gt;2.0.CO;2</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx25"><?xmltex \def\ref@label{Emanuel(2005)}?><label>Emanuel(2005)</label><?label Emanuel2005?><mixed-citation>Emanuel, K. A.: Increasing destructiveness of tropical cyclones over the past 30 years, Nature, 436, 686–688, <ext-link xlink:href="https://doi.org/10.1038/nature03906" ext-link-type="DOI">10.1038/nature03906</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx26"><?xmltex \def\ref@label{Fueglistaler et al.(2009)}?><label>Fueglistaler et al.(2009)</label><?label Fueglistaler2009?><mixed-citation>Fueglistaler, S., Dessler, A. E., Dunkerton, T. J., Folkins, I., Fu, Q., and Mote, P. W.: Tropical tropopause layer, Rev. Geophys., 47, RG1004, <ext-link xlink:href="https://doi.org/10.1029/2008RG000267" ext-link-type="DOI">10.1029/2008RG000267</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx27"><?xmltex \def\ref@label{Garner(2015)}?><label>Garner(2015)</label><?label Garner2015?><mixed-citation>Garner, S.: The Relationship between Hurricane Potential Intensity and CAPE, J. Atmos. Sci., 72, 141–163, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-14-0008.1" ext-link-type="DOI">10.1175/JAS-D-14-0008.1</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx28"><?xmltex \def\ref@label{Gelaro et al.(2017)}?><label>Gelaro et al.(2017)</label><?label Gelaro2017?><mixed-citation>Gelaro, R., McCarty, W., Suárez, M. J., Todling, R., Molod, A., Takacs, L., Randles, C. A., Darmenov, A., Bosilovich, M. G., Reichle, R., Wargan, K., Coy, L., Cullather, R., Draper, C., Akella, S., Buchard, V., Conaty, A., da Silva, A. M., Gu, W., Kim, G.-K., Koster, R., Lucchesi, R., Merkova, D., Nielsen, J. E., Partyka, G., Pawson, S., Putman, W., Rienecker, M., Schubert, S. D., Sienkiewicz, M., and Zhao, B.: The Modern-Era Retrospective Analysis for Research and Applications, Version 2 (MERRA-2), J. Climate, 30, 5419–5454, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-16-0758.1" ext-link-type="DOI">10.1175/JCLI-D-16-0758.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx29"><?xmltex \def\ref@label{Gilford(2020)}?><label>Gilford(2020)</label><?label Gilford2020?><mixed-citation>Gilford, D.: dgilford/pyPI: pyPI v1.3 (initial package release), <ext-link xlink:href="https://doi.org/10.5281/zenodo.3985975" ext-link-type="DOI">10.5281/zenodo.3985975</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx30"><?xmltex \def\ref@label{Gilford(2018)}?><label>Gilford(2018)</label><?label Gilford2018?><mixed-citation>Gilford, D. M.: The Tropopause Region Thermal Structure and Tropical Cyclones, PhD thesis, Massachusetts Institute of Technology, available at: <uri>https://dspace.mit.edu/handle/1721.1/115639</uri> (last access: 26 April 2021), 2018.</mixed-citation></ref>
      <ref id="bib1.bibx31"><?xmltex \def\ref@label{Gilford et al.(2017)}?><label>Gilford et al.(2017)</label><?label Gilford2017b?><mixed-citation>Gilford, D. M., Solomon, S., and Emanuel, K. A.: On the Seasonal Cycles of Tropical Cyclone Potential Intensity, J. Climate, 30, 6085–6096, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-16-0827.1" ext-link-type="DOI">10.1175/JCLI-D-16-0827.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx32"><?xmltex \def\ref@label{Gilford et al.(2019)}?><label>Gilford et al.(2019)</label><?label Gilford2019?><mixed-citation>Gilford, D. M., Solomon, S., and Emanuel, K. A.: Seasonal Cycles of Along-Track Tropical Cyclone Maximum Intensity, Mon. Weather Rev., 147, 2417–2432, <ext-link xlink:href="https://doi.org/10.1175/MWR-D-19-0021.1" ext-link-type="DOI">10.1175/MWR-D-19-0021.1</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx33"><?xmltex \def\ref@label{Green and Zhang(2014)}?><label>Green and Zhang(2014)</label><?label Green2014?><mixed-citation>Green, B. W. and Zhang, F.: Sensitivity of tropical cyclone simulations to parametric uncertainties in Air-Sea fluxes and implications for parameter estimation, Mon. Weather Rev., 142, 2290–2308, <ext-link xlink:href="https://doi.org/10.1175/MWR-D-13-00208.1" ext-link-type="DOI">10.1175/MWR-D-13-00208.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx34"><?xmltex \def\ref@label{Gualdi et al.(2008)}?><label>Gualdi et al.(2008)</label><?label Gualdi2008?><mixed-citation>Gualdi, S., Scoccimarro, E., and Navarra, A.: Changes in tropical cyclone activity due to global warming: Results from a high-resolution coupled general circulation model, J. Climate, 21, 5204–5228, <ext-link xlink:href="https://doi.org/10.1175/2008JCLI1921.1" ext-link-type="DOI">10.1175/2008JCLI1921.1</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx35"><?xmltex \def\ref@label{Holland(1997)}?><label>Holland(1997)</label><?label Holland1997?><mixed-citation>Holland, G. J.: The Maximum Potential Intensity of Tropical Cyclones, J. Atmos. Sci., 54, 2519–2541, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1997)054&lt;2519:TMPIOT&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1997)054&lt;2519:TMPIOT&gt;2.0.CO;2</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx36"><?xmltex \def\ref@label{Hsiang and Jina(2014)}?><label>Hsiang and Jina(2014)</label><?label Hsiang2014?><mixed-citation>Hsiang, S. M. and Jina, A. S.: The Causal Effect of Environmental Catastrophe on Long-Run Economic Growth: Evidence From 6,700 Cyclones, National Bureau of Economic Research Working Paper Series, 20352, 1–70, <ext-link xlink:href="https://doi.org/10.3386/w20352" ext-link-type="DOI">10.3386/w20352</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx37"><?xmltex \def\ref@label{IPCC(2013)}?><label>IPCC(2013)</label><?label IPCC2013?><mixed-citation>IPCC: Climate Change 2013: The Physical Science Basis. Contribution of Working Group I to the Fifth Assessment Report of the Intergovernmental Panel on Climate Change, Cambridge University Press, Cambridge, UK and New York, USA, <ext-link xlink:href="https://doi.org/10.1017/CBO9781107415324" ext-link-type="DOI">10.1017/CBO9781107415324</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx38"><?xmltex \def\ref@label{Kieu and Wang(2017)}?><label>Kieu and Wang(2017)</label><?label Kieu2017?><mixed-citation>Kieu, C. and Wang, Q.: Stability of the tropical cyclone intensity equilibrium, J. Atmos. Sci., 74, 3591–3608, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-17-0028.1" ext-link-type="DOI">10.1175/JAS-D-17-0028.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx39"><?xmltex \def\ref@label{Kieu and Zhang(2018)}?><label>Kieu and Zhang(2018)</label><?label Kieu2018?><mixed-citation>Kieu, C. and Zhang, D.-L.: The Control of Environmental Stratification on the Hurricane Maximum Potential Intensity, Geophys. Res. Lett., 45, 6272–6280, <ext-link xlink:href="https://doi.org/10.1029/2018GL078070" ext-link-type="DOI">10.1029/2018GL078070</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx40"><?xmltex \def\ref@label{Kossin et al.(2020)}?><label>Kossin et al.(2020)</label><?label Kossin2020?><mixed-citation>Kossin, J. P., Knapp, K. R., Olander, T. L., and Velden, C. S.: Global
increase in major tropical cyclone exceedance probability over the past
40 years, P. Natl. Acad. Sci. USA, 117, 11975–11980, <ext-link xlink:href="https://doi.org/10.1073/pnas.1920849117" ext-link-type="DOI">10.1073/pnas.1920849117</ext-link>,
2020.</mixed-citation></ref>
      <ref id="bib1.bibx41"><?xmltex \def\ref@label{Lam et al.(2015)}?><label>Lam et al.(2015)</label><?label Lam2015?><mixed-citation>Lam, S. K., Pitrou, A., and Seibert, S.: Numba: a LLVM-based Python JIT
compiler, Proceedings of the Second Workshop on the LLVM Compiler
Infrastructure in HPC – LLVM '15, Austin, TX, USA, 15–20 November 2015, 1–6, <ext-link xlink:href="https://doi.org/10.1145/2833157.2833162" ext-link-type="DOI">10.1145/2833157.2833162</ext-link>,
2015.</mixed-citation></ref>
      <ref id="bib1.bibx42"><?xmltex \def\ref@label{Lin et al.(2013)}?><label>Lin et al.(2013)</label><?label Lin2013?><mixed-citation>Lin, I.-I., Black, P., Price, J. F., Yang, C.-Y., Chen, S. S., Lien, C.-C., Harr, P., Chi, N.-H., Wu, C.-C., and D'Asaro, E. A.: An ocean coupling potential intensity index for tropical cyclones, Geophys. Res. Lett., 40, 1878–1882, <ext-link xlink:href="https://doi.org/10.1002/grl.50091" ext-link-type="DOI">10.1002/grl.50091</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx43"><?xmltex \def\ref@label{Lin and Emanuel(2016)}?><label>Lin and Emanuel(2016)</label><?label Lin2016?><mixed-citation>Lin, N. and Emanuel, K.: Grey swan tropical cyclones, Nat. Clim. Change, 6, 106–111, <ext-link xlink:href="https://doi.org/10.1038/nclimate2777" ext-link-type="DOI">10.1038/nclimate2777</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx44"><?xmltex \def\ref@label{Manabe and Strickler(1964)}?><label>Manabe and Strickler(1964)</label><?label Manabe1964?><mixed-citation>Manabe, S. and Strickler, R. F.: Thermal Equilibrium of the Atmosphere with a Convective Adjustment, J. Atmos. Sci., 21, 361–385, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1964)021&lt;0361:TEOTAW&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1964)021&lt;0361:TEOTAW&gt;2.0.CO;2</ext-link>, 1964.</mixed-citation></ref>
      <ref id="bib1.bibx45"><?xmltex \def\ref@label{{May} and Bruick(2019)}?><label>May and Bruick(2019)</label><?label May2019?><mixed-citation>
May, R. and Bruick, Z.: MetPy: An Community-Driven, Open-Source Python Toolkit for Meteorology,  AGU Fall Meeting Abstracts, vol. 2019, pp. NS21A–16, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx46"><?xmltex \def\ref@label{McTaggart-Cowan et al.(2008)}?><label>McTaggart-Cowan et al.(2008)</label><?label McTaggart-Cowan2008?><mixed-citation>McTaggart-Cowan, R., Deane, G. D., Bosart, L. F., Davis, C. A., and Galarneau, T. J.: Climatology of tropical cyclogenesis in the North Atlantic (1948-2004), Mon. Weather Rev., 136, 1284–1304, <ext-link xlink:href="https://doi.org/10.1175/2007MWR2245.1" ext-link-type="DOI">10.1175/2007MWR2245.1</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx47"><?xmltex \def\ref@label{{Millman} and Aivazis(2011)}?><label>Millman and Aivazis(2011)</label><?label Millman2011?><mixed-citation>
Millman, K. J. and Aivazis, M.: Python for Scientists and Engineers, Comput. Sci. Eng., 13, 9–12, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx48"><?xmltex \def\ref@label{Murnane and Elsner(2012)}?><label>Murnane and Elsner(2012)</label><?label Murnane2012?><mixed-citation>Murnane, R. J. and Elsner, J. B.: Maximum wind speeds and US hurricane losses, Geophysical Research Letters, 39, 6–10, <ext-link xlink:href="https://doi.org/10.1029/2012GL052740" ext-link-type="DOI">10.1029/2012GL052740</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx49"><?xmltex \def\ref@label{Nystrom et al.(2020)}?><label>Nystrom et al.(2020)</label><?label Nystrom2020?><mixed-citation>Nystrom, R. G., Chen, X., Zhang, F., and Davis, C. A.: Nonlinear Impacts of Surface Exchange Coefficient Uncertainty on Tropical Cyclone Intensity and Air-Sea Interactions, Geophys. Res. Lett., 47, 1–10, <ext-link xlink:href="https://doi.org/10.1029/2019GL085783" ext-link-type="DOI">10.1029/2019GL085783</ext-link>, 2020.</mixed-citation></ref>
      <?pagebreak page2368?><ref id="bib1.bibx50"><?xmltex \def\ref@label{Pielke et al.(2008)}?><label>Pielke et al.(2008)</label><?label Pielke2008?><mixed-citation>Pielke, R. A., Gratz, J., Landsea, C. W., Collins, D., Saunders, M. A., and Musulin, R.: Normalized hurricane damage in the United States: 1900–2005, Nat. Hazards Rev., 9, 29–42, <ext-link xlink:href="https://doi.org/10.1061/(ASCE)1527-6988(2008)9:1(29)" ext-link-type="DOI">10.1061/(ASCE)1527-6988(2008)9:1(29)</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx51"><?xmltex \def\ref@label{Polvani et al.(2016)}?><label>Polvani et al.(2016)</label><?label Polvani2016?><mixed-citation>Polvani, L. M., Camargo, S. J., and Garcia, R. R.: The Importance of the Montreal Protocol in Mitigating the Potential Intensity of Tropical Cyclones, J. Climate, 29, 2275–2289, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-15-0232.1" ext-link-type="DOI">10.1175/JCLI-D-15-0232.1</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx52"><?xmltex \def\ref@label{Powell(1980)}?><label>Powell(1980)</label><?label Powell1980?><mixed-citation>Powell, M. D.: Evaluations of Diagnostic Marine Boundary-Layer Models Applied to Hurricanes, Mon. Weather Rev., 108, 757–766, <ext-link xlink:href="https://doi.org/10.1175/1520-0493(1980)108&lt;0757:EODMBL&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0493(1980)108&lt;0757:EODMBL&gt;2.0.CO;2</ext-link>, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx53"><?xmltex \def\ref@label{Ramsay(2013)}?><label>Ramsay(2013)</label><?label Ramsay2013?><mixed-citation>Ramsay, H. A.: The Effects of Imposed Stratospheric Cooling on the Maximum Intensity of Tropical Cyclones in Axisymmetric Radiative–Convective Equilibrium, J. Climate, 26, 9977–9985, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-13-00195.1" ext-link-type="DOI">10.1175/JCLI-D-13-00195.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx54"><?xmltex \def\ref@label{Randel and Jensen(2013)}?><label>Randel and Jensen(2013)</label><?label Randel2013?><mixed-citation>Randel, W. J. and Jensen, E. J.: Physical processes in the tropical tropopause
layer and their roles in a changing climate, Nat. Geosci., 6, 169–176,
<ext-link xlink:href="https://doi.org/10.1038/NGEO1733" ext-link-type="DOI">10.1038/NGEO1733</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx55"><?xmltex \def\ref@label{Randel and Wu(2014)}?><label>Randel and Wu(2014)</label><?label Randel2014?><mixed-citation>Randel, W. J. and Wu, F.: Variability of zonal mean tropical temperatures derived from a decade of GPS radio occultation data, J. Atmos. Sci., 72, 1261–1275, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-14-0216.1" ext-link-type="DOI">10.1175/JAS-D-14-0216.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx56"><?xmltex \def\ref@label{Rappaport(2014)}?><label>Rappaport(2014)</label><?label Rappaport2014a?><mixed-citation>Rappaport, E. N.: Fatalities in the united states from atlantic tropical cyclones: New data and interpretation, B. Am. Meteorol. Soc., 95, 341–346, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-12-00074.1" ext-link-type="DOI">10.1175/BAMS-D-12-00074.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx57"><?xmltex \def\ref@label{Rashed and Ahsan(2018)}?><label>Rashed and Ahsan(2018)</label><?label Rashed2012?><mixed-citation>Rashed, M. G. and Ahsan, R.: Python in Computational Science: Applications and Possibilities, Int. J. Comput. Appl., 46, 26–30, <ext-link xlink:href="https://doi.org/10.5120/7058-9799" ext-link-type="DOI">10.5120/7058-9799</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx58"><?xmltex \def\ref@label{Romps(2017)}?><label>Romps(2017)</label><?label Romps2017?><mixed-citation>Romps, D. M.: Exact Expression for the Lifting Condensation Level, J. Atmos. Sci., 74, 3891–3900, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-17-0102.1" ext-link-type="DOI">10.1175/JAS-D-17-0102.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx59"><?xmltex \def\ref@label{Rotunno and Emanuel(1987)}?><label>Rotunno and Emanuel(1987)</label><?label Rotunno1987?><mixed-citation>Rotunno, R. and Emanuel, K. A.: An Air–Sea Interaction Theory for Tropical Cyclones. Part II: Evolutionary Study Using a Nonhydrostatic Axisymmetric Numerical Model, J. Atmos. Sci., 44, 542–561, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1987)044&lt;0542:AAITFT&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1987)044&lt;0542:AAITFT&gt;2.0.CO;2</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx60"><?xmltex \def\ref@label{Rousseau-Rizzi and Emanuel(2019)}?><label>Rousseau-Rizzi and Emanuel(2019)</label><?label Rousseau-Rizzi2019a?><mixed-citation>Rousseau-Rizzi, R. and Emanuel, K.: An evaluation of hurricane superintensity in axisymmetric numerical models, J. Atmos. Sci., 76, 1697–1708, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-18-0238.1" ext-link-type="DOI">10.1175/JAS-D-18-0238.1</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx61"><?xmltex \def\ref@label{Santer et al.(2013)}?><label>Santer et al.(2013)</label><?label Santer2013?><mixed-citation>Santer, B. D., Painter, J. F., Bonfils, C., Mears, C. A., Solomon, S.,
Wigley, T. M., Gleckler, P. J., Schmidt, G. A., Doutriaux, C., Gillett, N. P.,
Taylor, K. E., Thorne, P. W., and Wentz, F. J.: Human and natural influences
on the changing thermal structure of the atmosphere, P. Natl. Acad. Sci. USA, 110, 17235–17240, <ext-link xlink:href="https://doi.org/10.1073/pnas.1305332110" ext-link-type="DOI">10.1073/pnas.1305332110</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx62"><?xmltex \def\ref@label{Shields et al.(2019)}?><label>Shields et al.(2019)</label><?label Shields2019?><mixed-citation>Shields, S., Gilford, D. M., and Wing, A.: A Global Analysis of Interannual
Variability of Potential and Actual Tropical Cyclone Intensities,
Geophys. Res. Lett., 47, e2020GL089512, <ext-link xlink:href="https://doi.org/10.1029/2020GL089512" ext-link-type="DOI">10.1029/2020GL089512</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx63"><?xmltex \def\ref@label{Sobel and Camargo(2011)}?><label>Sobel and Camargo(2011)</label><?label Sobel2011?><mixed-citation>Sobel, A. H. and Camargo, S. J.: Projected Future Seasonal Changes in Tropical Summer Climate, J. Climate, 24, 473–487, <ext-link xlink:href="https://doi.org/10.1175/2010JCLI3748.1" ext-link-type="DOI">10.1175/2010JCLI3748.1</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx64"><?xmltex \def\ref@label{Sobel et al.(2016)}?><label>Sobel et al.(2016)</label><?label Sobel2016?><mixed-citation>
Sobel, A. H., Camargo, S. J., Hall, T. M., Lee, C.-y., Tippett, M. K., and Wing, A. A.: Human influence on tropical cyclone intensity, Science, 353, 242–246, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx65"><?xmltex \def\ref@label{Strazzo et al.(2015)}?><label>Strazzo et al.(2015)</label><?label Strazzo2014b?><mixed-citation>Strazzo, S. E., Elsner, J. B., and LaRow, T. E.: Quantifying the sensitivity ofmaximum, limiting, and potential tropical cyclone intensity to SST: Observations versus the FSU/ COAPS global climate model, J. Adv. Model. Earth Syst., 7, 586–599, <ext-link xlink:href="https://doi.org/10.1002/2015MS000432" ext-link-type="DOI">10.1002/2015MS000432</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx66"><?xmltex \def\ref@label{Strazzo et al.(2016)}?><label>Strazzo et al.(2016)</label><?label Strazzo2014?><mixed-citation>Strazzo, S. E., Elsner, J. B., LaRow, T. E., Murakami, H., Wehner, M., and Zhao, M.: The
influence of model resolution on the simulated sensitivity of North Atlantic
tropical cyclone maximum intensity to sea surface temperature,
J. Adv. Model. Earth Syst., 8, 1037–1054, <ext-link xlink:href="https://doi.org/10.1002/2016MS000635" ext-link-type="DOI">10.1002/2016MS000635</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx67"><?xmltex \def\ref@label{Tang and Emanuel(2012)}?><label>Tang and Emanuel(2012)</label><?label Tang2012?><mixed-citation>Tang, B. and Emanuel, K.: A ventilation index for tropical cyclones, B. Am. Meteorol. Soc., 93, 1901–1912, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-11-00165.1" ext-link-type="DOI">10.1175/BAMS-D-11-00165.1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx68"><?xmltex \def\ref@label{Tippett et al.(2011)}?><label>Tippett et al.(2011)</label><?label Tippett2011a?><mixed-citation>Tippett, M. K., Camargo, S. J., and Sobel, A. H.: A poisson regression index for tropical cyclone genesis and the role of large-scale vorticity in genesis, J. Climate, 24, 2335–2357, <ext-link xlink:href="https://doi.org/10.1175/2010JCLI3811.1" ext-link-type="DOI">10.1175/2010JCLI3811.1</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx69"><?xmltex \def\ref@label{Tonkin et al.(2000)}?><label>Tonkin et al.(2000)</label><?label Tonkin2000?><mixed-citation>Tonkin, H., Holland, G. J., Holbrook, N., and Henderson-Sellers, A.: An Evaluation of Thermodynamic Estimates of Climatological Maximum Potential Tropical Cyclone Intensity, Mon. Weather Rev., 128, 746–762, <ext-link xlink:href="https://doi.org/10.1175/1520-0493(2000)128&lt;0746:AEOTEO&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0493(2000)128&lt;0746:AEOTEO&gt;2.0.CO;2</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx70"><?xmltex \def\ref@label{Tsuboki et al.(2015)}?><label>Tsuboki et al.(2015)</label><?label Tsuboki2015?><mixed-citation>Tsuboki, K., Yoshioka, M. K., Shinoda, T., Kato, M., Kanada, S., and Kitoh, A.: Future increase of supertyphoon intensity associated with climate change, Geophys. Res. Lett., 42, 646–652, <ext-link xlink:href="https://doi.org/10.1002/2014GL061793" ext-link-type="DOI">10.1002/2014GL061793</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx71"><?xmltex \def\ref@label{Vecchi et al.(2013)}?><label>Vecchi et al.(2013)</label><?label Vecchi2013?><mixed-citation>Vecchi, G. A., Fueglistaler, S., Held, I. M., Knutson, T. R., and Zhao, M.: Impacts of atmospheric temperature trends on tropical cyclone activity, J. Climate, 26, 3877–3891, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-12-00503.1" ext-link-type="DOI">10.1175/JCLI-D-12-00503.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx72"><?xmltex \def\ref@label{Vecchi et al.(2014)}?><label>Vecchi et al.(2014)</label><?label Vecchi2014?><mixed-citation>Vecchi, G. A., Delworth, T., Gudgel, R., Kapnick, S., Rosati, A., Wittenberg, A. T., Zeng, F., Anderson, W., Balaji, V., Dixon, K., Jia, L., Kim, H. S., Krishnamurthy, L., Msadek, R., Stern, W. F., Underwood, S. D., Villarini, G., Yang, X., and Zhang, S.: On the seasonal forecasting of regional tropical cyclone activity, J. Climate, 27, 7994–8016, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-14-00158.1" ext-link-type="DOI">10.1175/JCLI-D-14-00158.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx73"><?xmltex \def\ref@label{Wallis(1685)}?><label>Wallis(1685)</label><?label Wallis1685?><mixed-citation>Wallis, J.: A treatise of algebra, both historical and practical, printed by John
Playford, <ext-link xlink:href="https://doi.org/10.3931/E-RARA-8842" ext-link-type="DOI">10.3931/E-RARA-8842</ext-link>, 1685.</mixed-citation></ref>
      <ref id="bib1.bibx74"><?xmltex \def\ref@label{Wang et al.(2014)}?><label>Wang et al.(2014)</label><?label Wang2014?><mixed-citation>Wang, S., Camargo, S. J., Sobel, A. H., and Polvani, L. M.: Impact of the Tropopause Temperature on the Intensity of Tropical Cyclones: An Idealized Study Using a Mesoscale Model, J. Atmos. Sci., 71, 4333–4348, <ext-link xlink:href="https://doi.org/10.1175/JAS-D-14-0029.1" ext-link-type="DOI">10.1175/JAS-D-14-0029.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx75"><?xmltex \def\ref@label{Wehner et al.(2018)}?><label>Wehner et al.(2018)</label><?label Wehner2018?><mixed-citation>Wehner, M. F., Reed, K. A., Loring,
B., Stone, D., and Krishnan, H.: Changes in tropical cyclones under stabilized
1.5 and 2.0 <inline-formula><mml:math id="M321" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:math></inline-formula> global warming scenarios as simulated by the Community Atmospheric Model under the HAPPI protocols, Earth Syst. Dynam., 9, 187–195, <ext-link xlink:href="https://doi.org/10.5194/esd-9-187-2018" ext-link-type="DOI">10.5194/esd-9-187-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx76"><?xmltex \def\ref@label{Wing et al.(2007)}?><label>Wing et al.(2007)</label><?label Wing2007?><mixed-citation>Wing, A. A., Sobel, A. H., and Camargo, S. J.: Relationship between the potential and actual intensities of tropical cyclones on interannual time scales, Geophys. Res. Lett., 34, 1–5, <ext-link xlink:href="https://doi.org/10.1029/2006GL028581" ext-link-type="DOI">10.1029/2006GL028581</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx77"><?xmltex \def\ref@label{Wing et al.(2015)}?><label>Wing et al.(2015)</label><?label Wing2015?><mixed-citation>Wing, A. A., Emanuel, K., and Solomon, S.: On the factors affecting trends and variability in tropical cyclone potential intensity, Geophys. Res. Lett., 42, 8669–8677, <ext-link xlink:href="https://doi.org/10.1002/2015GL066145" ext-link-type="DOI">10.1002/2015GL066145</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx78"><?xmltex \def\ref@label{Xu et al.(2019)}?><label>Xu et al.(2019)</label><?label Xu2019?><mixed-citation>Xu, J., Wang, Y., and Yang, C.: Factors Affecting the Variability of Maximum Potential Intensity (MPI) of Tropical Cyclones Over the North Atlantic, J. Geophys. Res.-Atmos., 6654–6668, <ext-link xlink:href="https://doi.org/10.1029/2019JD030283" ext-link-type="DOI">10.1029/2019JD030283</ext-link>, 2019.</mixed-citation></ref>
      <?pagebreak page2369?><ref id="bib1.bibx79"><?xmltex \def\ref@label{Yulaeva et al.(1994)}?><label>Yulaeva et al.(1994)</label><?label Yulaeva1994?><mixed-citation>Yulaeva, E., Holton, J. R., and Wallace, J. M.: On the Cause of the Annual Cycle in Tropical Lower-Stratospheric Temperatures, J. Atmos. Sci., 51, 169–174, <ext-link xlink:href="https://doi.org/10.1175/1520-0469(1994)051&lt;0169:OTCOTA&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0469(1994)051&lt;0169:OTCOTA&gt;2.0.CO;2</ext-link>, 1994.
</mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bibx80"><?xmltex \def\ref@label{Zhang et al.(2016)}?><label>Zhang et al.(2016)</label><?label Zhang2016?><mixed-citation>Zhang, K., Randel, W. J., and Fu, R.: Relationships between outgoing longwave
radiation and diabatic heating in reanalyses, Clim. Dynam., 49, 2911–2929,
<ext-link xlink:href="https://doi.org/10.1007/s00382-016-3501-0" ext-link-type="DOI">10.1007/s00382-016-3501-0</ext-link>, 2016.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>pyPI (v1.3): Tropical Cyclone Potential Intensity Calculations in Python</article-title-html>
<abstract-html><p>Potential intensity (PI) is the maximum speed limit of a tropical cyclone
found by modeling the storm as a thermal heat engine. Because there are
significant correlations between PI and actual storm wind speeds, PI is a
useful diagnostic for evaluating or predicting tropical cyclone intensity
climatology and variability. Previous studies have calculated PI given a set
of atmospheric and oceanographic conditions, but although a PI algorithm –
originally developed by Kerry Emanuel – is in widespread use, it remains
under-documented. The Tropical Cyclone Potential Intensity Calculations in
Python (pyPI, v1.3) package develops the PI algorithm in Python and for the
first time details the full background and algorithm (line by line) used to
compute tropical cyclone potential intensity constrained by
thermodynamics. The pyPI package (1) provides a freely available, flexible,
validated Python PI algorithm, (2) carefully documents the PI algorithm and
its Python implementation, and (3) demonstrates and encourages the use of PI
theory in tropical cyclone analyses. Validation shows pyPI output is nearly
identical to the previous potential intensity computation but is an
improvement on the algorithm's consistency and handling of missing
data. Example calculations with reanalyses data demonstrate pyPI's usefulness
in climatological and meteorological research. Planned future improvements
will improve on pyPI's assumptions, flexibility, and range of applications and
tropical cyclone thermodynamic calculations.</p></abstract-html>
<ref-html id="bib1.bib1"><label>Bell et al.(2012)</label><mixed-citation>
Bell, M. M., Montgomery, M. T., and Emanuel, K. A.: Air–Sea Enthalpy and Momentum Exchange at Major Hurricane Wind Speeds Observed during CBLAST, J. Atmos. Sci., 69, 3197–3222, <a href="https://doi.org/10.1175/JAS-D-11-0276.1" target="_blank">https://doi.org/10.1175/JAS-D-11-0276.1</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Bister and Emanuel(1998)</label><mixed-citation>
Bister, M. and Emanuel, K. A.: Dissipative heating and hurricane intensity, Meteorol. Atmos. Phys., 65, 233–240, <a href="https://doi.org/10.1007/BF01030791" target="_blank">https://doi.org/10.1007/BF01030791</a>, 1998.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Bister and Emanuel(2002)</label><mixed-citation>
Bister, M. and Emanuel, K. A.: Low frequency variability of tropical cyclone potential intensity 1. Interannual to interdecadal variability, J. Geophys. Res.-Atmos., 107, 4801, <a href="https://doi.org/10.1029/2001JD000776" target="_blank">https://doi.org/10.1029/2001JD000776</a>, 2002.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Blumberg et al.(2017)</label><mixed-citation>
Blumberg, W. G., Halbert, K. T., Supinie, T. A., Marsh, P. T., Thompson, R. L., and Hart, J. A.: Sharppy: An open-source sounding analysis toolkit for the atmospheric sciences, B. Am. Meteorol. Soc., 98, 1625–1636, <a href="https://doi.org/10.1175/BAMS-D-15-00309.1" target="_blank">https://doi.org/10.1175/BAMS-D-15-00309.1</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Bolton(1980)</label><mixed-citation>
Bolton, D.: The Computation of Equivalent Potential Temperature, Mon. Weather Rev., 108, 1046–1053, <a href="https://doi.org/10.1175/1520-0493(1980)108&lt;1046:TCOEPT&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0493(1980)108&lt;1046:TCOEPT&gt;2.0.CO;2</a>, 1980.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Bryan(2012)</label><mixed-citation>
Bryan, G. H.: Effects of surface exchange coefficients and turbulence length scales on the intensity and structure of numerically simulated hurricanes, Mon. Weather Rev., 140, 1125–1143, <a href="https://doi.org/10.1175/MWR-D-11-00231.1" target="_blank">https://doi.org/10.1175/MWR-D-11-00231.1</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Camargo et al.(2007)</label><mixed-citation>
Camargo, S., Sobel, A. H., Barnston, A. G., and Emanuel, K. A.: Tropical cyclone genesis potential index in climate models, Tellus A, 59, 428–443, <a href="https://doi.org/10.1111/j.1600-0870.2007.00238.x" target="_blank">https://doi.org/10.1111/j.1600-0870.2007.00238.x</a>, 2007.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Camargo(2013)</label><mixed-citation>
Camargo, S. J.: Global and regional aspects of tropical cyclone activity in the CMIP5 models, J. Climate, 26, 9880–9902, <a href="https://doi.org/10.1175/JCLI-D-12-00549.1" target="_blank">https://doi.org/10.1175/JCLI-D-12-00549.1</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Camargo and Polvani(2019)</label><mixed-citation>
Camargo, S. J. and Polvani, L. M.: Little evidence of a reduced global
tropical cyclone activity following recent volcanic eruptions, npj Climate and
Atmospheric Science, 2, 14, <a href="https://doi.org/10.1038/s41612-019-0070-z" target="_blank">https://doi.org/10.1038/s41612-019-0070-z</a>,
2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Camargo et al.(2009)</label><mixed-citation>
Camargo, S. J., Wheeler, M. C., and Sobel, A. H.: Diagnosis of the MJO modulation of tropical cyclogenesis using an empirical index, J. Atmos. Sci., 66, 3061–3074, <a href="https://doi.org/10.1175/2009JAS3101.1" target="_blank">https://doi.org/10.1175/2009JAS3101.1</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Chavas and Emanuel(2014)</label><mixed-citation>
Chavas, D. R. and Emanuel, K.: Equilibrium tropical cyclone size in an idealized state of axisymmetric radiative-convective equilibrium, J. Atmos. Sci., 71, 1663–1680, <a href="https://doi.org/10.1175/JAS-D-13-0155.1" target="_blank">https://doi.org/10.1175/JAS-D-13-0155.1</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Dee et al.(2011)</label><mixed-citation>
Dee, D. P., Uppala, S. M., Simmons, a. J., Berrisford, P., Poli, P., Kobayashi, S., Andrae, U., Balmaseda, M. a., Balsamo, G., Bauer, P., Bechtold, P., Beljaars, a. C. M., van de Berg, L., Bidlot, J., Bormann, N., Delsol, C., Dragani, R., Fuentes, M., Geer, a. J., Haimberger, L., Healy, S. B., Hersbach, H., Hólm, E. V., Isaksen, L., Kållberg, P., Köhler, M., Matricardi, M., McNally, a. P., Monge-Sanz, B. M., Morcrette, J.-J., Park, B.-K., Peubey, C., de Rosnay, P., Tavolato, C., Thépaut, J.-N., and Vitart, F.: The ERA-Interim reanalysis: configuration and performance of the data assimilation system, Q. J. Roy. Meteor. Soc., 137, 553–597, <a href="https://doi.org/10.1002/qj.828" target="_blank">https://doi.org/10.1002/qj.828</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Doswell and Rasmussen(1994)</label><mixed-citation>
Doswell, C. A. and Rasmussen, E. N.: The effect of neglecting the virtual
temperature correction on CAPE calculations, Weather Forecast., 9, 625–629,
<a href="https://doi.org/10.1175/1520-0434(1994)009&lt;0625:TEONTV&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0434(1994)009&lt;0625:TEONTV&gt;2.0.CO;2</a>,
1994.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Elsner et al.(2008)</label><mixed-citation>
Elsner, J. B., Kossin, J. P., and Jagger, T. H.: The increasing intensity of the strongest tropical cyclones, Nature, 455, 92–95, <a href="https://doi.org/10.1038/nature07234" target="_blank">https://doi.org/10.1038/nature07234</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Emanuel(2000)</label><mixed-citation>
Emanuel, K.: A Statistical Analysis of Tropical Cyclone Intensity, Mon. Weather Rev., 128, 1139–1152, <a href="https://doi.org/10.1175/1520-0493(2000)128&lt;1139:ASAOTC&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0493(2000)128&lt;1139:ASAOTC&gt;2.0.CO;2</a>, 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Emanuel(2003)</label><mixed-citation>
Emanuel, K.: Tropical Cyclones, Annu. Rev. Earth Pl. Sc., 31, 75–104, <a href="https://doi.org/10.1146/annurev.earth.31.100901.141259" target="_blank">https://doi.org/10.1146/annurev.earth.31.100901.141259</a>, 2003.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Emanuel(2006)</label><mixed-citation>
Emanuel, K.: Hurricanes: Tempests in a greenhouse, Physics Today, 59, 74–75, <a href="https://doi.org/10.1063/1.2349743" target="_blank">https://doi.org/10.1063/1.2349743</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Emanuel(2018)</label><mixed-citation>
Emanuel, K.: 100 Years of Progress in Tropical Cyclone Research, Meteor. Mon., 59, 15.1–15.68, <a href="https://doi.org/10.1175/AMSMONOGRAPHS-D-18-0016.1" target="_blank">https://doi.org/10.1175/AMSMONOGRAPHS-D-18-0016.1</a>,
2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Emanuel et al.(2004)</label><mixed-citation>
Emanuel, K., DesAutels, C., Holloway, C., and Korty, R.: Environmental control of tropical cyclone intensity, J. Atmos. Sci., 61, 843–858, <a href="https://doi.org/10.1175/1520-0469(2004)061&lt;0843:ECOTCI&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(2004)061&lt;0843:ECOTCI&gt;2.0.CO;2</a>, 2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Emanuel et al.(2013)</label><mixed-citation>
Emanuel, K., Solomon, S., Folini, D., Davis, S., and Cagnazzo, C.: Influence of Tropical Tropopause Layer Cooling on Atlantic Hurricane Activity, J. Climate, 26, 2288–2301, <a href="https://doi.org/10.1175/JCLI-D-12-00242.1" target="_blank">https://doi.org/10.1175/JCLI-D-12-00242.1</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Emanuel(1986)</label><mixed-citation>
Emanuel, K. A.: An Air-Sea Interaction Theory for Tropical Cyclones. Part I:
Steady-State Maintenance, J. Atmos. Sci., 43, 585–605, <a href="https://doi.org/10.1175/1520-0469(1986)043&lt;0585:AASITF&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1986)043&lt;0585:AASITF&gt;2.0.CO;2</a>, 1986.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Emanuel(1987)</label><mixed-citation>
Emanuel, K. A.: The dependence of hurricane intensity on climate, Nature, 326, 483–485, <a href="https://doi.org/10.1038/326483a0" target="_blank">https://doi.org/10.1038/326483a0</a>, 1987.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Emanuel(1994)</label><mixed-citation>
Emanuel, K. A.: Atmospheric Convection, Oxford University Press, 1994.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Emanuel(1995)</label><mixed-citation>
Emanuel, K. A.: Sensitivity of tropical cyclones to surface exchange
coefficients and revised steady-state model incorporating eye dynamics,
J. Atmos. Sci., 52, 3969–3976, <a href="https://doi.org/10.1175/1520-0469(1995)052&lt;3969:SOTCTS&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1995)052&lt;3969:SOTCTS&gt;2.0.CO;2</a>, 1995.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Emanuel(2005)</label><mixed-citation>
Emanuel, K. A.: Increasing destructiveness of tropical cyclones over the past 30 years, Nature, 436, 686–688, <a href="https://doi.org/10.1038/nature03906" target="_blank">https://doi.org/10.1038/nature03906</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Fueglistaler et al.(2009)</label><mixed-citation>
Fueglistaler, S., Dessler, A. E., Dunkerton, T. J., Folkins, I., Fu, Q., and Mote, P. W.: Tropical tropopause layer, Rev. Geophys., 47, RG1004, <a href="https://doi.org/10.1029/2008RG000267" target="_blank">https://doi.org/10.1029/2008RG000267</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Garner(2015)</label><mixed-citation>
Garner, S.: The Relationship between Hurricane Potential Intensity and CAPE, J. Atmos. Sci., 72, 141–163, <a href="https://doi.org/10.1175/JAS-D-14-0008.1" target="_blank">https://doi.org/10.1175/JAS-D-14-0008.1</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Gelaro et al.(2017)</label><mixed-citation>
Gelaro, R., McCarty, W., Suárez, M. J., Todling, R., Molod, A., Takacs, L., Randles, C. A., Darmenov, A., Bosilovich, M. G., Reichle, R., Wargan, K., Coy, L., Cullather, R., Draper, C., Akella, S., Buchard, V., Conaty, A., da Silva, A. M., Gu, W., Kim, G.-K., Koster, R., Lucchesi, R., Merkova, D., Nielsen, J. E., Partyka, G., Pawson, S., Putman, W., Rienecker, M., Schubert, S. D., Sienkiewicz, M., and Zhao, B.: The Modern-Era Retrospective Analysis for Research and Applications, Version 2 (MERRA-2), J. Climate, 30, 5419–5454, <a href="https://doi.org/10.1175/JCLI-D-16-0758.1" target="_blank">https://doi.org/10.1175/JCLI-D-16-0758.1</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Gilford(2020)</label><mixed-citation>
Gilford, D.: dgilford/pyPI: pyPI v1.3 (initial package release), <a href="https://doi.org/10.5281/zenodo.3985975" target="_blank">https://doi.org/10.5281/zenodo.3985975</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Gilford(2018)</label><mixed-citation>
Gilford, D. M.: The Tropopause Region Thermal Structure and Tropical Cyclones, PhD thesis, Massachusetts Institute of Technology, available at: <a href="https://dspace.mit.edu/handle/1721.1/115639" target="_blank"/> (last access: 26 April 2021), 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Gilford et al.(2017)</label><mixed-citation>
Gilford, D. M., Solomon, S., and Emanuel, K. A.: On the Seasonal Cycles of Tropical Cyclone Potential Intensity, J. Climate, 30, 6085–6096, <a href="https://doi.org/10.1175/JCLI-D-16-0827.1" target="_blank">https://doi.org/10.1175/JCLI-D-16-0827.1</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Gilford et al.(2019)</label><mixed-citation>
Gilford, D. M., Solomon, S., and Emanuel, K. A.: Seasonal Cycles of Along-Track Tropical Cyclone Maximum Intensity, Mon. Weather Rev., 147, 2417–2432, <a href="https://doi.org/10.1175/MWR-D-19-0021.1" target="_blank">https://doi.org/10.1175/MWR-D-19-0021.1</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Green and Zhang(2014)</label><mixed-citation>
Green, B. W. and Zhang, F.: Sensitivity of tropical cyclone simulations to parametric uncertainties in Air-Sea fluxes and implications for parameter estimation, Mon. Weather Rev., 142, 2290–2308, <a href="https://doi.org/10.1175/MWR-D-13-00208.1" target="_blank">https://doi.org/10.1175/MWR-D-13-00208.1</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Gualdi et al.(2008)</label><mixed-citation>
Gualdi, S., Scoccimarro, E., and Navarra, A.: Changes in tropical cyclone activity due to global warming: Results from a high-resolution coupled general circulation model, J. Climate, 21, 5204–5228, <a href="https://doi.org/10.1175/2008JCLI1921.1" target="_blank">https://doi.org/10.1175/2008JCLI1921.1</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Holland(1997)</label><mixed-citation>
Holland, G. J.: The Maximum Potential Intensity of Tropical Cyclones, J. Atmos. Sci., 54, 2519–2541, <a href="https://doi.org/10.1175/1520-0469(1997)054&lt;2519:TMPIOT&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1997)054&lt;2519:TMPIOT&gt;2.0.CO;2</a>, 1997.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Hsiang and Jina(2014)</label><mixed-citation>
Hsiang, S. M. and Jina, A. S.: The Causal Effect of Environmental Catastrophe on Long-Run Economic Growth: Evidence From 6,700 Cyclones, National Bureau of Economic Research Working Paper Series, 20352, 1–70, <a href="https://doi.org/10.3386/w20352" target="_blank">https://doi.org/10.3386/w20352</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>IPCC(2013)</label><mixed-citation>
IPCC: Climate Change 2013: The Physical Science Basis. Contribution of Working Group I to the Fifth Assessment Report of the Intergovernmental Panel on Climate Change, Cambridge University Press, Cambridge, UK and New York, USA, <a href="https://doi.org/10.1017/CBO9781107415324" target="_blank">https://doi.org/10.1017/CBO9781107415324</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Kieu and Wang(2017)</label><mixed-citation>
Kieu, C. and Wang, Q.: Stability of the tropical cyclone intensity equilibrium, J. Atmos. Sci., 74, 3591–3608, <a href="https://doi.org/10.1175/JAS-D-17-0028.1" target="_blank">https://doi.org/10.1175/JAS-D-17-0028.1</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Kieu and Zhang(2018)</label><mixed-citation>
Kieu, C. and Zhang, D.-L.: The Control of Environmental Stratification on the Hurricane Maximum Potential Intensity, Geophys. Res. Lett., 45, 6272–6280, <a href="https://doi.org/10.1029/2018GL078070" target="_blank">https://doi.org/10.1029/2018GL078070</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Kossin et al.(2020)</label><mixed-citation>
Kossin, J. P., Knapp, K. R., Olander, T. L., and Velden, C. S.: Global
increase in major tropical cyclone exceedance probability over the past
40 years, P. Natl. Acad. Sci. USA, 117, 11975–11980, <a href="https://doi.org/10.1073/pnas.1920849117" target="_blank">https://doi.org/10.1073/pnas.1920849117</a>,
2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Lam et al.(2015)</label><mixed-citation>
Lam, S. K., Pitrou, A., and Seibert, S.: Numba: a LLVM-based Python JIT
compiler, Proceedings of the Second Workshop on the LLVM Compiler
Infrastructure in HPC – LLVM '15, Austin, TX, USA, 15–20 November 2015, 1–6, <a href="https://doi.org/10.1145/2833157.2833162" target="_blank">https://doi.org/10.1145/2833157.2833162</a>,
2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Lin et al.(2013)</label><mixed-citation>
Lin, I.-I., Black, P., Price, J. F., Yang, C.-Y., Chen, S. S., Lien, C.-C., Harr, P., Chi, N.-H., Wu, C.-C., and D'Asaro, E. A.: An ocean coupling potential intensity index for tropical cyclones, Geophys. Res. Lett., 40, 1878–1882, <a href="https://doi.org/10.1002/grl.50091" target="_blank">https://doi.org/10.1002/grl.50091</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Lin and Emanuel(2016)</label><mixed-citation>
Lin, N. and Emanuel, K.: Grey swan tropical cyclones, Nat. Clim. Change, 6, 106–111, <a href="https://doi.org/10.1038/nclimate2777" target="_blank">https://doi.org/10.1038/nclimate2777</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Manabe and Strickler(1964)</label><mixed-citation>
Manabe, S. and Strickler, R. F.: Thermal Equilibrium of the Atmosphere with a Convective Adjustment, J. Atmos. Sci., 21, 361–385, <a href="https://doi.org/10.1175/1520-0469(1964)021&lt;0361:TEOTAW&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1964)021&lt;0361:TEOTAW&gt;2.0.CO;2</a>, 1964.
</mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>May and Bruick(2019)</label><mixed-citation>
May, R. and Bruick, Z.: MetPy: An Community-Driven, Open-Source Python Toolkit for Meteorology,  AGU Fall Meeting Abstracts, vol. 2019, pp. NS21A–16, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>McTaggart-Cowan et al.(2008)</label><mixed-citation>
McTaggart-Cowan, R., Deane, G. D., Bosart, L. F., Davis, C. A., and Galarneau, T. J.: Climatology of tropical cyclogenesis in the North Atlantic (1948-2004), Mon. Weather Rev., 136, 1284–1304, <a href="https://doi.org/10.1175/2007MWR2245.1" target="_blank">https://doi.org/10.1175/2007MWR2245.1</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Millman and Aivazis(2011)</label><mixed-citation>
Millman, K. J. and Aivazis, M.: Python for Scientists and Engineers, Comput. Sci. Eng., 13, 9–12, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Murnane and Elsner(2012)</label><mixed-citation> Murnane, R. J. and Elsner, J. B.: Maximum wind speeds and US hurricane losses, Geophysical Research Letters, 39, 6–10, <a href="https://doi.org/10.1029/2012GL052740" target="_blank">https://doi.org/10.1029/2012GL052740</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Nystrom et al.(2020)</label><mixed-citation>
Nystrom, R. G., Chen, X., Zhang, F., and Davis, C. A.: Nonlinear Impacts of Surface Exchange Coefficient Uncertainty on Tropical Cyclone Intensity and Air-Sea Interactions, Geophys. Res. Lett., 47, 1–10, <a href="https://doi.org/10.1029/2019GL085783" target="_blank">https://doi.org/10.1029/2019GL085783</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Pielke et al.(2008)</label><mixed-citation>
Pielke, R. A., Gratz, J., Landsea, C. W., Collins, D., Saunders, M. A., and Musulin, R.: Normalized hurricane damage in the United States: 1900–2005, Nat. Hazards Rev., 9, 29–42, <a href="https://doi.org/10.1061/(ASCE)1527-6988(2008)9:1(29)" target="_blank">https://doi.org/10.1061/(ASCE)1527-6988(2008)9:1(29)</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Polvani et al.(2016)</label><mixed-citation>
Polvani, L. M., Camargo, S. J., and Garcia, R. R.: The Importance of the Montreal Protocol in Mitigating the Potential Intensity of Tropical Cyclones, J. Climate, 29, 2275–2289, <a href="https://doi.org/10.1175/JCLI-D-15-0232.1" target="_blank">https://doi.org/10.1175/JCLI-D-15-0232.1</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Powell(1980)</label><mixed-citation>
Powell, M. D.: Evaluations of Diagnostic Marine Boundary-Layer Models Applied to Hurricanes, Mon. Weather Rev., 108, 757–766, <a href="https://doi.org/10.1175/1520-0493(1980)108&lt;0757:EODMBL&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0493(1980)108&lt;0757:EODMBL&gt;2.0.CO;2</a>, 1980.
</mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Ramsay(2013)</label><mixed-citation>
Ramsay, H. A.: The Effects of Imposed Stratospheric Cooling on the Maximum Intensity of Tropical Cyclones in Axisymmetric Radiative–Convective Equilibrium, J. Climate, 26, 9977–9985, <a href="https://doi.org/10.1175/JCLI-D-13-00195.1" target="_blank">https://doi.org/10.1175/JCLI-D-13-00195.1</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Randel and Jensen(2013)</label><mixed-citation>
Randel, W. J. and Jensen, E. J.: Physical processes in the tropical tropopause
layer and their roles in a changing climate, Nat. Geosci., 6, 169–176,
<a href="https://doi.org/10.1038/NGEO1733" target="_blank">https://doi.org/10.1038/NGEO1733</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Randel and Wu(2014)</label><mixed-citation>
Randel, W. J. and Wu, F.: Variability of zonal mean tropical temperatures derived from a decade of GPS radio occultation data, J. Atmos. Sci., 72, 1261–1275, <a href="https://doi.org/10.1175/JAS-D-14-0216.1" target="_blank">https://doi.org/10.1175/JAS-D-14-0216.1</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Rappaport(2014)</label><mixed-citation>
Rappaport, E. N.: Fatalities in the united states from atlantic tropical cyclones: New data and interpretation, B. Am. Meteorol. Soc., 95, 341–346, <a href="https://doi.org/10.1175/BAMS-D-12-00074.1" target="_blank">https://doi.org/10.1175/BAMS-D-12-00074.1</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Rashed and Ahsan(2018)</label><mixed-citation>
Rashed, M. G. and Ahsan, R.: Python in Computational Science: Applications and Possibilities, Int. J. Comput. Appl., 46, 26–30, <a href="https://doi.org/10.5120/7058-9799" target="_blank">https://doi.org/10.5120/7058-9799</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Romps(2017)</label><mixed-citation>
Romps, D. M.: Exact Expression for the Lifting Condensation Level, J. Atmos. Sci., 74, 3891–3900, <a href="https://doi.org/10.1175/JAS-D-17-0102.1" target="_blank">https://doi.org/10.1175/JAS-D-17-0102.1</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Rotunno and Emanuel(1987)</label><mixed-citation>
Rotunno, R. and Emanuel, K. A.: An Air–Sea Interaction Theory for Tropical Cyclones. Part II: Evolutionary Study Using a Nonhydrostatic Axisymmetric Numerical Model, J. Atmos. Sci., 44, 542–561, <a href="https://doi.org/10.1175/1520-0469(1987)044&lt;0542:AAITFT&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1987)044&lt;0542:AAITFT&gt;2.0.CO;2</a>, 1987.
</mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Rousseau-Rizzi and Emanuel(2019)</label><mixed-citation>
Rousseau-Rizzi, R. and Emanuel, K.: An evaluation of hurricane superintensity in axisymmetric numerical models, J. Atmos. Sci., 76, 1697–1708, <a href="https://doi.org/10.1175/JAS-D-18-0238.1" target="_blank">https://doi.org/10.1175/JAS-D-18-0238.1</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Santer et al.(2013)</label><mixed-citation>
Santer, B. D., Painter, J. F., Bonfils, C., Mears, C. A., Solomon, S.,
Wigley, T. M., Gleckler, P. J., Schmidt, G. A., Doutriaux, C., Gillett, N. P.,
Taylor, K. E., Thorne, P. W., and Wentz, F. J.: Human and natural influences
on the changing thermal structure of the atmosphere, P. Natl. Acad. Sci. USA, 110, 17235–17240, <a href="https://doi.org/10.1073/pnas.1305332110" target="_blank">https://doi.org/10.1073/pnas.1305332110</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Shields et al.(2019)</label><mixed-citation>
Shields, S., Gilford, D. M., and Wing, A.: A Global Analysis of Interannual
Variability of Potential and Actual Tropical Cyclone Intensities,
Geophys. Res. Lett., 47, e2020GL089512, <a href="https://doi.org/10.1029/2020GL089512" target="_blank">https://doi.org/10.1029/2020GL089512</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Sobel and Camargo(2011)</label><mixed-citation>
Sobel, A. H. and Camargo, S. J.: Projected Future Seasonal Changes in Tropical Summer Climate, J. Climate, 24, 473–487, <a href="https://doi.org/10.1175/2010JCLI3748.1" target="_blank">https://doi.org/10.1175/2010JCLI3748.1</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Sobel et al.(2016)</label><mixed-citation>
Sobel, A. H., Camargo, S. J., Hall, T. M., Lee, C.-y., Tippett, M. K., and Wing, A. A.: Human influence on tropical cyclone intensity, Science, 353, 242–246, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Strazzo et al.(2015)</label><mixed-citation>
Strazzo, S. E., Elsner, J. B., and LaRow, T. E.: Quantifying the sensitivity ofmaximum, limiting, and potential tropical cyclone intensity to SST: Observations versus the FSU/ COAPS global climate model, J. Adv. Model. Earth Syst., 7, 586–599, <a href="https://doi.org/10.1002/2015MS000432" target="_blank">https://doi.org/10.1002/2015MS000432</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Strazzo et al.(2016)</label><mixed-citation>
Strazzo, S. E., Elsner, J. B., LaRow, T. E., Murakami, H., Wehner, M., and Zhao, M.: The
influence of model resolution on the simulated sensitivity of North Atlantic
tropical cyclone maximum intensity to sea surface temperature,
J. Adv. Model. Earth Syst., 8, 1037–1054, <a href="https://doi.org/10.1002/2016MS000635" target="_blank">https://doi.org/10.1002/2016MS000635</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>Tang and Emanuel(2012)</label><mixed-citation>
Tang, B. and Emanuel, K.: A ventilation index for tropical cyclones, B. Am. Meteorol. Soc., 93, 1901–1912, <a href="https://doi.org/10.1175/BAMS-D-11-00165.1" target="_blank">https://doi.org/10.1175/BAMS-D-11-00165.1</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>Tippett et al.(2011)</label><mixed-citation>
Tippett, M. K., Camargo, S. J., and Sobel, A. H.: A poisson regression index for tropical cyclone genesis and the role of large-scale vorticity in genesis, J. Climate, 24, 2335–2357, <a href="https://doi.org/10.1175/2010JCLI3811.1" target="_blank">https://doi.org/10.1175/2010JCLI3811.1</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Tonkin et al.(2000)</label><mixed-citation>
Tonkin, H., Holland, G. J., Holbrook, N., and Henderson-Sellers, A.: An Evaluation of Thermodynamic Estimates of Climatological Maximum Potential Tropical Cyclone Intensity, Mon. Weather Rev., 128, 746–762, <a href="https://doi.org/10.1175/1520-0493(2000)128&lt;0746:AEOTEO&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0493(2000)128&lt;0746:AEOTEO&gt;2.0.CO;2</a>, 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib70"><label>Tsuboki et al.(2015)</label><mixed-citation>
Tsuboki, K., Yoshioka, M. K., Shinoda, T., Kato, M., Kanada, S., and Kitoh, A.: Future increase of supertyphoon intensity associated with climate change, Geophys. Res. Lett., 42, 646–652, <a href="https://doi.org/10.1002/2014GL061793" target="_blank">https://doi.org/10.1002/2014GL061793</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib71"><label>Vecchi et al.(2013)</label><mixed-citation>
Vecchi, G. A., Fueglistaler, S., Held, I. M., Knutson, T. R., and Zhao, M.: Impacts of atmospheric temperature trends on tropical cyclone activity, J. Climate, 26, 3877–3891, <a href="https://doi.org/10.1175/JCLI-D-12-00503.1" target="_blank">https://doi.org/10.1175/JCLI-D-12-00503.1</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib72"><label>Vecchi et al.(2014)</label><mixed-citation>
Vecchi, G. A., Delworth, T., Gudgel, R., Kapnick, S., Rosati, A., Wittenberg, A. T., Zeng, F., Anderson, W., Balaji, V., Dixon, K., Jia, L., Kim, H. S., Krishnamurthy, L., Msadek, R., Stern, W. F., Underwood, S. D., Villarini, G., Yang, X., and Zhang, S.: On the seasonal forecasting of regional tropical cyclone activity, J. Climate, 27, 7994–8016, <a href="https://doi.org/10.1175/JCLI-D-14-00158.1" target="_blank">https://doi.org/10.1175/JCLI-D-14-00158.1</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib73"><label>Wallis(1685)</label><mixed-citation>
Wallis, J.: A treatise of algebra, both historical and practical, printed by John
Playford, <a href="https://doi.org/10.3931/E-RARA-8842" target="_blank">https://doi.org/10.3931/E-RARA-8842</a>, 1685.
</mixed-citation></ref-html>
<ref-html id="bib1.bib74"><label>Wang et al.(2014)</label><mixed-citation>
Wang, S., Camargo, S. J., Sobel, A. H., and Polvani, L. M.: Impact of the Tropopause Temperature on the Intensity of Tropical Cyclones: An Idealized Study Using a Mesoscale Model, J. Atmos. Sci., 71, 4333–4348, <a href="https://doi.org/10.1175/JAS-D-14-0029.1" target="_blank">https://doi.org/10.1175/JAS-D-14-0029.1</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib75"><label>Wehner et al.(2018)</label><mixed-citation>
Wehner, M. F., Reed, K. A., Loring,
B., Stone, D., and Krishnan, H.: Changes in tropical cyclones under stabilized
1.5 and 2.0&thinsp;°C global warming scenarios as simulated by the Community Atmospheric Model under the HAPPI protocols, Earth Syst. Dynam., 9, 187–195, <a href="https://doi.org/10.5194/esd-9-187-2018" target="_blank">https://doi.org/10.5194/esd-9-187-2018</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib76"><label>Wing et al.(2007)</label><mixed-citation>
Wing, A. A., Sobel, A. H., and Camargo, S. J.: Relationship between the potential and actual intensities of tropical cyclones on interannual time scales, Geophys. Res. Lett., 34, 1–5, <a href="https://doi.org/10.1029/2006GL028581" target="_blank">https://doi.org/10.1029/2006GL028581</a>, 2007.
</mixed-citation></ref-html>
<ref-html id="bib1.bib77"><label>Wing et al.(2015)</label><mixed-citation>
Wing, A. A., Emanuel, K., and Solomon, S.: On the factors affecting trends and variability in tropical cyclone potential intensity, Geophys. Res. Lett., 42, 8669–8677, <a href="https://doi.org/10.1002/2015GL066145" target="_blank">https://doi.org/10.1002/2015GL066145</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib78"><label>Xu et al.(2019)</label><mixed-citation>
Xu, J., Wang, Y., and Yang, C.: Factors Affecting the Variability of Maximum Potential Intensity (MPI) of Tropical Cyclones Over the North Atlantic, J. Geophys. Res.-Atmos., 6654–6668, <a href="https://doi.org/10.1029/2019JD030283" target="_blank">https://doi.org/10.1029/2019JD030283</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib79"><label>Yulaeva et al.(1994)</label><mixed-citation>
Yulaeva, E., Holton, J. R., and Wallace, J. M.: On the Cause of the Annual Cycle in Tropical Lower-Stratospheric Temperatures, J. Atmos. Sci., 51, 169–174, <a href="https://doi.org/10.1175/1520-0469(1994)051&lt;0169:OTCOTA&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0469(1994)051&lt;0169:OTCOTA&gt;2.0.CO;2</a>, 1994.

</mixed-citation></ref-html>
<ref-html id="bib1.bib80"><label>Zhang et al.(2016)</label><mixed-citation>
Zhang, K., Randel, W. J., and Fu, R.: Relationships between outgoing longwave
radiation and diabatic heating in reanalyses, Clim. Dynam., 49, 2911–2929,
<a href="https://doi.org/10.1007/s00382-016-3501-0" target="_blank">https://doi.org/10.1007/s00382-016-3501-0</a>, 2016.
</mixed-citation></ref-html>--></article>
