<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-19-8349-2026</article-id><title-group><article-title>SeapoPym v0.1: implementation of the SEAPODYM low and mid trophic levels in Python with a flexible optimization framework</article-title><alt-title>SeapoPym v0.1</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2 aff3">
          <name><surname>Lehodey</surname><given-names>Jules Victor</given-names></name>
          <email>lehodey.jules@gmail.com</email>
        <ext-link>https://orcid.org/0009-0003-0095-9748</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff4">
          <name><surname>Mignot</surname><given-names>Alexandre</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Ganachaud</surname><given-names>Alexandre</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff4">
          <name><surname>Albernhe</surname><given-names>Sarah</given-names></name>
          
        <ext-link>https://orcid.org/0009-0005-7361-8375</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff5">
          <name><surname>Nicol</surname><given-names>Simon</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>LEGOS, University of Toulouse, CNRS, IRD, CNES, UT, Toulouse, France</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>MARBEC, University of Montpellier, CNRS, IRD, IFREMER, Sète, France</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>ISEA – Institut des Sciences Exactes et Appliquées (EA 7484), Université de la Nouvelle-Calédonie,  Noumea, New Caledonia</institution>
        </aff>
        <aff id="aff4"><label>4</label><institution>Mercator Ocean International, Toulouse, France</institution>
        </aff>
        <aff id="aff5"><label>5</label><institution>Pacific Community (SPC), Noumea, New Caledonia</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Jules Victor Lehodey (lehodey.jules@gmail.com)</corresp></author-notes><pub-date><day>9</day><month>September</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>17</issue>
      <fpage>8349</fpage><lpage>8366</lpage>
      <history>
        <date date-type="received"><day>5</day><month>February</month><year>2026</year></date>
           <date date-type="rev-request"><day>1</day><month>April</month><year>2026</year></date>
           <date date-type="rev-recd"><day>30</day><month>August</month><year>2026</year></date>
           <date date-type="accepted"><day>31</day><month>August</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Jules Victor Lehodey et al.</copyright-statement>
        <copyright-year>2026</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/19/8349/2026/gmd-19-8349-2026.html">This article is available from https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e147">SEAPODYM-LMTL, the low and mid trophic level component of SEAPODYM, simulates mesozooplankton and micronekton biomass globally as an advection-diffusion-reaction system driven by physical and biogeochemical forcing. Its mesozooplankton parameterization remains incompletely calibrated, and its operational implementation couples the biological equations to spatial transport, so evaluating a parameter set requires running the full spatial model, which makes automated calibration costly. We present SeapoPym v0.1, an open-source Python re-implementation of the SEAPODYM-LMTL biological model that solves the dynamics locally, without transport. We apply it to the single epipelagic mesozooplankton group and estimate its five biological parameters with a covariance matrix adaptation evolution strategy (CMA-ES). Comparison with the operational product shows that omitting transport matters most in strongly advective regions and in cold high-latitude waters, where the long zooplankton life cycle keeps the biomass exposed to advection. At six contrasting stations the difference between the two models stays between 6 % and 12 % of the simulated biomass, five to seven times smaller than the model-observation gap where in-situ records allow that comparison. A Sobol analysis attributes the magnitude of the biomass to the energy-transfer and mortality parameters, and the timing of the seasonal peak to the recruitment parameters. Twin experiments then show that parameter identifiability depends on the environmental regime sampled. Wherever the search converged, energy transfer and mortality were recovered, whereas recruitment was recovered only in cold water. A single cold station constrained all five parameters as well as the six stations combined, so recovery follows the information content of the sampled regime rather than the number of stations. These results hold for noise-free synthetic observations generated by the transport-free model itself and driven by the exact forcing. The next step is to repeat them under realistic sampling and forcing error, then calibrate the model against in-situ records.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Ministry of Foreign Affairs and Trade, New Zealand</funding-source>
<award-id>WPG-0103601</award-id>
<award-id>DOC-4119683</award-id>
<award-id>ACT-0103048</award-id>
</award-group>
<award-group id="gs2">
<funding-source>European Commission</funding-source>
<award-id>101136748</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e159">Mesozooplankton connect primary production to higher trophic levels and contribute to ocean carbon export. They are conventionally defined as planktonic organisms ranging from 0.2 to 20 mm <xref ref-type="bibr" rid="bib1.bibx47" id="paren.1"/>, dominated by copepods, although the size class is taxonomically diverse <xref ref-type="bibr" rid="bib1.bibx38 bib1.bibx11" id="paren.2"/>. They provide a major food source for micronekton (2–20 cm), including mesopelagic fish, euphausiids and gelatinous organisms <xref ref-type="bibr" rid="bib1.bibx5 bib1.bibx55" id="paren.3"/>. Mesozooplankton also contribute to the transformation and export of organic matter <xref ref-type="bibr" rid="bib1.bibx52 bib1.bibx54 bib1.bibx56 bib1.bibx48" id="paren.4"/>. Changes in their biomass or seasonal timing can therefore affect both prey availability and carbon export, making their representation a leading source of uncertainty in global biogeochemical models <xref ref-type="bibr" rid="bib1.bibx42" id="paren.5"/>.</p>
      <p id="d2e177">The SEAPODYM-LMTL model provides operational global simulations of mesozooplankton and micronekton biomass. It is the Low and Mid-Trophic Levels (LMTL) component of SEAPODYM, a model developed to simulate tuna and tuna-like populations <xref ref-type="bibr" rid="bib1.bibx32" id="paren.6"/>. SEAPODYM-LMTL represents their prey environment through one mesozooplankton and six micronekton functional groups <xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx6" id="paren.7"/>. It couples biological processes with advection and diffusion and is driven by currents, temperature, euphotic depth and net primary production (NPP). The resulting biomass fields are distributed through the Copernicus Marine Service for ecosystem and fisheries applications <xref ref-type="bibr" rid="bib1.bibx58" id="paren.8"/>.</p>
      <p id="d2e189">The mesozooplankton parameterization of the SEAPODYM-LMTL model remains incompletely calibrated, and its operational product shows substantial differences from observations. Of its five biological parameters, only the energy-transfer coefficient has been formally calibrated against mesozooplankton observations. The four parameters controlling the temperature dependence of recruitment and mortality are derived from the literature or manual tuning <xref ref-type="bibr" rid="bib1.bibx23 bib1.bibx14 bib1.bibx15 bib1.bibx6 bib1.bibx58" id="paren.9"/>. When compared to in-situ observations (direct mesozooplankton biomass measurements) from the COPEPOD database <xref ref-type="bibr" rid="bib1.bibx39" id="paren.10"/>, the operational SEAPODYM-LMTL product yields a coefficient of determination of <inline-formula><mml:math id="M1" 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">0.11</mml:mn></mml:mrow></mml:math></inline-formula>, while its global mean biomass is 1.19 g C m<sup>−2</sup>, compared with 0.76 g C m<sup>−2</sup> in the observations <xref ref-type="bibr" rid="bib1.bibx58" id="paren.11"/>. These differences motivate a systematic recalibration of the biological component.</p>
      <p id="d2e241">The operational SEAPODYM-LMTL implementation does not provide a practical route for automated parameter calibration. Its biological equations are embedded in a non-public C<inline-formula><mml:math id="M4" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:math></inline-formula> code and tightly coupled to the spatial transport component through an implicit solver. Evaluating each parameter set would therefore require running the full spatial model, whereas an optimization typically requires thousands of such evaluations. This makes systematic calibration computationally impractical at global scale or at fine resolution, and prevents the biological component from being tested independently.</p>
      <p id="d2e255">An open and lightweight implementation that separates the biological equations from spatial transport and can be coupled directly to optimization algorithms is therefore needed. For this, we developed SeapoPym, an open-source Python re-implementation of the SEAPODYM-LMTL biological model, together with a flexible framework for automated parameter optimization. SeapoPym isolates the biological equations from spatial transport and solves the temperature- and NPP-driven dynamics locally in a zero-dimensional configuration, allowing many parameter sets to be evaluated efficiently. Two experiments establish whether SeapoPym is a valid basis for parameter optimization. We verify that it converges to the analytical steady state of the reference equations, and we quantify how far it departs from the operational SEAPODYM-LMTL product.</p>
      <p id="d2e258">Two further experiments, under controlled conditions, establish whether the five biological parameters can be recovered, and from which observations. The first, a Sobol sensitivity analysis, determines what each parameter controls, the magnitude of the biomass or the timing of its seasonal peak. The second, a set of twin experiments, measures identifiability, the capacity to recover the true parameter values from the data. The optimization framework must recover known parameter values from synthetic biomass time series the model generated itself, across contrasting environmental regimes from cold and productive to warm and oligotrophic. These experiments are a prerequisite to any real-data calibration.</p>
      <p id="d2e261">All abbreviations used in this paper are listed in Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/>.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Material and methods</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>SEAPODYM-LMTL (the reference model)</title>
      <p id="d2e281">SEAPODYM (Spatial Ecosystem and Populations Dynamics Model) was originally developed to simulate the dynamics of tuna and tuna-like populations under the combined influence of fishing and the environment <xref ref-type="bibr" rid="bib1.bibx32" id="paren.12"/>. Its lower trophic levels are represented by a dedicated component, SEAPODYM-LMTL (Low and Mid-Trophic Levels), which the SeapoPym model re-implements and which we describe here. In its first versions, SEAPODYM-LMTL represented the lower trophic levels as a single biomass pool, the prey (“forage”) available to tuna <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx30" id="paren.13"/>. That pool was later split into one mesozooplankton group and six micronekton groups <xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx6" id="paren.14"/>. It simulates their biomass as a system of advection-diffusion-reaction equations driven by physical and biogeochemical forcing <xref ref-type="bibr" rid="bib1.bibx33" id="paren.15"/>. Its operational hindcast is distributed through the Copernicus Marine Service (product GLOBAL_MULTIYEAR_BGC_001_033) as a set of Essential Ocean Variables for downstream ecosystem and fisheries applications <xref ref-type="bibr" rid="bib1.bibx13 bib1.bibx58" id="paren.16"/>. The operational implementation is written in C++, with the biological reaction terms tightly coupled to both advection and diffusion terms within the numerical solver.</p>
      <p id="d2e299">SEAPODYM-LMTL represents the pelagic habitat with three vertical layers whose boundaries follow the euphotic depth <inline-formula><mml:math id="M5" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">eu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>: an epipelagic layer (down to <inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.5</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">eu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), an upper mesopelagic layer (to <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.5</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">eu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), and a lower mesopelagic layer (to <inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:mn mathvariant="normal">10.5</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">eu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, capped at 1000 m) <xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx34" id="paren.17"/>. The six micronekton groups are defined by their diel vertical migration between these layers: three stay in a single layer over the day-night cycle, and three migrate, tracking the light field <xref ref-type="bibr" rid="bib1.bibx33" id="paren.18"/>. For the migrating groups, the temperature and currents they experience are averaged over the layers they occupy by day and by night, weighted by day length <xref ref-type="bibr" rid="bib1.bibx33" id="paren.19"/>. Mesozooplankton, which are the focus of this study, are represented by a single group which inhabits the epipelagic layer, does not migrate <xref ref-type="bibr" rid="bib1.bibx6" id="paren.20"/>, and is independent of other groups (see also Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>). Diel vertical migration therefore does not apply to it, and the vertical structure reduces to the epipelagic layer alone.</p>
      <p id="d2e370">The biology of the mesozooplankton group rests on three coupled processes: energy intake from primary production, aging through an age-structured zooplankton production (<inline-formula><mml:math id="M9" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>), and its recruitment (<inline-formula><mml:math id="M10" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula>) into a zooplankton biomass (<inline-formula><mml:math id="M11" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula>) pool that is subject to mortality. A fixed fraction <inline-formula><mml:math id="M12" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> of NPP enters the youngest production class, and this production ages as a daily cohort until it is recruited into the biomass pool at a temperature-dependent recruitment age <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx6" id="paren.21"/>. The biomass pool then declines through a temperature-dependent mortality rate <inline-formula><mml:math id="M14" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula>, so that at steady state the biomass equals the recruitment flux divided by the mortality rate, <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx30" id="paren.22"/>. The recruitment age and the mortality timescale <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:math></inline-formula> both shorten with temperature, following the exponential form expressed in the normalized temperature <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi>T</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">273</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx33" id="paren.23"/>, after the metabolic theory of <xref ref-type="bibr" rid="bib1.bibx14 bib1.bibx15" id="text.24"/>. Production ages by one class per day and the model resolves at most eleven daily cohorts, set by the maximum recruitment age (<inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10.38</mml:mn></mml:mrow></mml:math></inline-formula> d, reached at the reference temperature <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> °C). The full equations and their numerical solution are given in Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>. The spatial transport that SeapoPym omits, an advection-diffusion scheme shared with the upper-trophic-level model, is described in <xref ref-type="bibr" rid="bib1.bibx46" id="text.25"/> and <xref ref-type="bibr" rid="bib1.bibx32" id="text.26"/>.</p>
      <p id="d2e538">The reference values of the five biological parameters are listed in Table <xref ref-type="table" rid="T1"/>. The recruitment and mortality temperature relationships are taken from the literature on copepod development and metabolism <xref ref-type="bibr" rid="bib1.bibx23 bib1.bibx14 bib1.bibx15" id="paren.27"/>, whereas the energy-transfer coefficient was estimated by maximum likelihood against the COPEPOD mesozooplankton database, where it reaches <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:mi>E</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.167</mml:mn></mml:mrow></mml:math></inline-formula>, above the canonical 10 % trophic-transfer efficiency <xref ref-type="bibr" rid="bib1.bibx58" id="paren.28"/>. These values have been refined across successive versions of the operational SEAPODYM-LMTL product, but the five parameters have never been estimated jointly: the micronekton energy-transfer coefficients were optimized separately against acoustic data <xref ref-type="bibr" rid="bib1.bibx34" id="paren.29"/> and in a synthetic observing-system experiment <xref ref-type="bibr" rid="bib1.bibx10" id="paren.30"/>, while the zooplankton recruitment and mortality parameters were manually tuned <xref ref-type="bibr" rid="bib1.bibx6" id="paren.31"/>.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e575">Biological parameters of the mesozooplankton group: symbol, meaning, operational reference value with its unit, the range explored in the sensitivity and twin experiments (Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/> and <xref ref-type="sec" rid="Ch1.S2.SS6"/>), the origin of the reference value, and the Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/> equation in which each parameter appears. The reference temperature is <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> °C. The recruitment age <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the mortality rate <inline-formula><mml:math id="M23" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula> both vary with temperature as <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:mi>exp⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">γ</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>), so <inline-formula><mml:math id="M25" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula> rises and <inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> falls as temperature increases.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="justify" colwidth="4cm"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="justify" colwidth="5cm"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Symbol</oasis:entry>
         <oasis:entry colname="col2" align="left">Meaning</oasis:entry>
         <oasis:entry colname="col3">Reference</oasis:entry>
         <oasis:entry colname="col4">Range</oasis:entry>
         <oasis:entry colname="col5" align="left">Origin</oasis:entry>
         <oasis:entry colname="col6">Eq.</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M27" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Energy-transfer coefficient, the fraction of NPP entering the youngest production class</oasis:entry>
         <oasis:entry colname="col3">0.1668</oasis:entry>
         <oasis:entry colname="col4">0 to 0.5</oasis:entry>
         <oasis:entry colname="col5" align="left">Maximum-likelihood estimate against the COPEPOD database <xref ref-type="bibr" rid="bib1.bibx58" id="paren.32"/></oasis:entry>
         <oasis:entry colname="col6">(<xref ref-type="disp-formula" rid="App1.Ch1.S1.E8"/>)</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Recruitment age at the reference temperature</oasis:entry>
         <oasis:entry colname="col3">10.38 d</oasis:entry>
         <oasis:entry colname="col4">0.001 to 300 d</oasis:entry>
         <oasis:entry colname="col5" align="left">Copepod development and temperature relationship <xref ref-type="bibr" rid="bib1.bibx23 bib1.bibx15 bib1.bibx33" id="paren.33"/></oasis:entry>
         <oasis:entry colname="col6">(<xref ref-type="disp-formula" rid="App1.Ch1.S1.E9"/>)</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Temperature coefficient of the recruitment age</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.11</mml:mn></mml:mrow></mml:math></inline-formula> °C<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.25</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.001</mml:mn></mml:mrow></mml:math></inline-formula> °C<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5" align="left">As above</oasis:entry>
         <oasis:entry colname="col6">(<xref ref-type="disp-formula" rid="App1.Ch1.S1.E9"/>)</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M35" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Mortality rate at the reference temperature</oasis:entry>
         <oasis:entry colname="col3">0.0067 d<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col4">0.001 to 0.1 <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">d</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" align="left">Operational value manually tuned <xref ref-type="bibr" rid="bib1.bibx6" id="paren.34"/>, temperature form from metabolic theory <xref ref-type="bibr" rid="bib1.bibx15" id="paren.35"/></oasis:entry>
         <oasis:entry colname="col6">(<xref ref-type="disp-formula" rid="App1.Ch1.S1.E5"/>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Temperature coefficient of the mortality rate</oasis:entry>
         <oasis:entry colname="col3">0.15 °C<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col4">0.001 to 0.25 °C<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5" align="left">As above</oasis:entry>
         <oasis:entry colname="col6">(<xref ref-type="disp-formula" rid="App1.Ch1.S1.E5"/>)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>SeapoPym (the model and its optimization framework)</title>
      <p id="d2e986">The SeapoPym model is an open-source Python re-implementation of the SEAPODYM-LMTL biological reaction terms, that was developed for this study and released under the GPLv3 license <xref ref-type="bibr" rid="bib1.bibx28" id="paren.36"/>. It reproduces the recruitment, aging and mortality described above (see also Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>), driven by the same temperature and NPP forcing, but omits spatial transport: the dynamics are solved locally, in a zero-dimensional (0D) configuration. The quantity SeapoPym computes is the time evolution of zooplankton carbon biomass, in g C m<sup>−2</sup>. The model is run independently at each grid point. Because the dynamics are time-dependent and age-structured, two cells with the same mean temperature and mean NPP produce different biomass, so the local forcing cannot be reduced to its mean. The formulation is identical across the functional groups of the SEAPODYM-LMTL model, which differ in their vertical-layer occupancy. We restrict this study to the single epipelagic mesozooplankton group.</p>
      <p id="d2e1006">In the SeapoPym code, each biological process is implemented as an independent function (a kernel), and a simulation is assembled by chaining these kernels into a pipeline, while a configuration layer enforces data integrity and dimensional consistency through the Pint library (<uri>https://pint.readthedocs.io/</uri>, last access: 7 September 2026). Processes that do not depend on the previous time step (temperature normalization and layer averaging, day length, energy intake defined as a fraction <inline-formula><mml:math id="M42" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> of primary production, temperature-dependent mortality rates, and recruitment window) are calculated directly and vectorized over the entire simulation period using NumPy <xref ref-type="bibr" rid="bib1.bibx19" id="paren.37"/>. The two recursive processes, the aging and recruitment of production cohorts and the biomass update from one step to the next, are evaluated as time loops compiled with Numba <xref ref-type="bibr" rid="bib1.bibx27" id="paren.38"/>, given that each step depends on the preceding one. Thanks to this near-universal vectorization and compilation limited to the recursive parts, a single run is fast, while multiple simulations (covering grid cells, sensitivity analysis or optimization parameters sets) can be launched in parallel via Xarray <xref ref-type="bibr" rid="bib1.bibx22" id="paren.39"/> and Dask <xref ref-type="bibr" rid="bib1.bibx9" id="paren.40"/>, whether on a laptop or a computing cluster.</p>
      <p id="d2e1032">The SeapoPym framework includes a parameter-estimation component (optimizer) built on the same principle of modularity. The model definition, the observations to be fitted, the cost function and the optimization algorithm constitute independent components, each defined by a minimal interface and thus interchangeable. The component handling observations accepts various data types (time series or spatial fields), and the cost function itself is a replaceable module, allowing the minimized metric to be changed without altering the rest of the framework. The optimization algorithm is interchangeable based on the same principle. The framework currently offers a genetic algorithm as well as CMA-ES. The present study employs CMA-ES (Sect. <xref ref-type="sec" rid="Ch1.S2.SS6"/>). It is this separation of model, data, cost function and optimizer that makes SeapoPym a general-purpose experimental framework rather than a rigid processing pipeline.</p>
      <p id="d2e1037">An overview of the full modeling and experimental workflow, including the experiments described below, is given in Fig. <xref ref-type="fig" rid="FD1"/> (Appendix <xref ref-type="sec" rid="App1.Ch1.S4"/>).</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Forcing, CMEMS product, stations and observations</title>
      <p id="d2e1052">SeapoPym is forced with the same temperature and NPP fields as the operational SEAPODYM-LMTL product, the Copernicus Marine Service “Global Ocean Low and Mid Trophic Levels Biomass Content Hindcast” (GLOBAL_MULTIYEAR_BGC_001_033, <ext-link xlink:href="https://doi.org/10.48670/moi-00020" ext-link-type="DOI">10.48670/moi-00020</ext-link>, <xref ref-type="bibr" rid="bib1.bibx13" id="altparen.41"/>; <xref ref-type="bibr" rid="bib1.bibx58" id="altparen.42"/>). The temperature is the layer average over the epipelagic layer (named <inline-formula><mml:math id="M43" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">env</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>) from the GLORYS12 reanalysis <xref ref-type="bibr" rid="bib1.bibx35" id="paren.43"/> whose depth is set by the euphotic depth (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>). The NPP and euphotic depth come from the same satellite ocean-color product, in which the NPP is computed with the VGPM algorithm <xref ref-type="bibr" rid="bib1.bibx2" id="paren.44"/> and is supplied as a vertically integrated value. This preparation is done within the product, not by SeapoPym, and the fields cover 1998 to 2019. These fields are provided at daily resolution, matching the model's one-day time step. The first two years are discarded as spin-up, justified by the model's equilibration time (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>). The global mean distributions of the temperature and primary-production forcing, together with the reference SEAPODYM-LMTL biomass and the current field, are shown in Fig. <xref ref-type="fig" rid="F1"/>.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e1092">Global ocean maps of the time-mean forcing and the reference biomass, averaged over 2000 to 2019. <bold>(a)</bold> Mean mesozooplankton biomass of the operational SEAPODYM-LMTL product, the two-dimensional reference that SeapoPym is compared against in Fig. <xref ref-type="fig" rid="F4"/>. <bold>(b)</bold> Mean vertically integrated NPP. <bold>(c)</bold> Mean temperature of the epipelagic layer. <bold>(d)</bold> Mean current norm of the epipelagic layer.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f01.png"/>

        </fig>

      <p id="d2e1115">For the sensitivity and twin experiments, the model is run at the location of six existing observation stations chosen to span a large temperature and primary-production range (Fig. <xref ref-type="fig" rid="F2"/>). In order of increasing temperature, these are the Barents Sea (BARENTS, 75° N, 40° E), a subarctic northeast Pacific location in the Line P region (PAPA, 50° N, 132° W), the Bay of Biscay (BISCAY, 45.5° N, 4° W), the Canary region (CANARY, 30° N, 13° W), the Bermuda Atlantic Time-series Study site (BATS, 32° N, 64° W) and the Hawaii Ocean Time-series station ALOHA (HOT, 23° N, 158° W). Seasonality does not follow mean temperature alone across these stations. HOT and BATS share a similar mean temperature and productivity, yet the seasonal range of their forcing differs, with a primary-production inter-quartile range about twice as wide at BATS as at HOT (Fig. <xref ref-type="fig" rid="F2"/>).</p>

      <fig id="F2"><label>Figure 2</label><caption><p id="d2e1125">The six stations placed in the global temperature and primary-production space. The color field is a two-dimensional histogram of the ocean grid cells, binned by their 2000 to 2019 mean temperature and mean NPP, the color giving the number of cells in each bin. Each marker is the mean position of one station, and the bars span its interquartile range (25th to 75th percentile) in temperature (horizontal) and in production (vertical) over the same period. Station color encodes mean temperature from cold blue to warm red, a convention kept across every figure.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f02.png"/>

        </fig>

      <p id="d2e1134">SeapoPym does not simulate transport. It is therefore necessary to verify whether this simplification is acceptable. To determine whether the resulting error is significant or negligible, we compare it to the existing discrepancy between the operational SEAPODYM-LMTL product and in-situ observations. For this purpose, we use long-term in-situ zooplankton observational data from the two stations for which these time series are freely available: HOT (Station ALOHA) and BATS. These data originate from the Hawaii Ocean Time-series (HOT) and the Bermuda Atlantic Time-series Study (BATS) programs, in the form of total mesozooplankton net samples (200 <inline-formula><mml:math id="M44" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>m). We retain the epipelagic zooplankton samples and exclude the larger size fraction (<inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> mm), consistent with the single epipelagic mesozooplankton group modeled here. The samples are reported as dry-weight biomass per unit volume (mg m<sup>−3</sup>). Dry-weight biomass is converted to carbon using a uniform factor of 0.4, since carbon represents approximately 40 % of zooplankton dry weight <xref ref-type="bibr" rid="bib1.bibx40" id="paren.45"/>. This conversion factor is used for both stations. This value is then multiplied by the epipelagic-layer thickness (<inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.5</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">eu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>), taken from the product's time-varying euphotic depth, to obtain carbon biomass per unit area (in g C m<sup>−2</sup>), which is directly comparable to the model results. These observations serve only to compare the models' order of magnitude to the in-situ zooplankton observations (Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/>) rather than for calibration.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Implementation validation and inter-model differences</title>
      <p id="d2e1209">The first validation experiment for the SeapoPym model compares the model's convergence toward the analytical solution <inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:math></inline-formula> (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>, Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>) under constant forcing. This experiment is conducted at four different temperatures (0, 10, 20 and 30 °C) and a fixed NPP of 300 mg C m<sup>−2</sup> d<sup>−1</sup>, and we analyze both the absolute difference at equilibrium and the time required to reach that equilibrium. The biomass starts from zero, and we take the time to equilibrium as the time to come within 1 % of the analytical steady state.</p>

      <fig id="F3"><label>Figure 3</label><caption><p id="d2e1261">Convergence of the SeapoPym biomass to its analytical steady state under constant forcing. Each solid line is the simulated biomass at one of four constant temperatures (0, 10, 20 and 30 °C), with NPP held at 300 mg C m<sup>−2</sup> d<sup>−1</sup>, and the matching dashed line is the analytical equilibrium <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:math></inline-formula> (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>). Line color encodes temperature. Both axes are logarithmic. The biomass reaches the analytical value at every temperature, within 0.01 %. The time to approach it lengthens as temperature falls, reaching within 1 % in about fifteen days at 30 °C and about two years at 0 °C.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f03.png"/>

        </fig>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e1317">Effect of neglecting transport, shown as SeapoPym (0D) against the operational SEAPODYM-LMTL product (2D), as time means over 2000 to 2019. <bold>(a)</bold> SeapoPym mean biomass, on the same scale as the reference biomass in Fig. <xref ref-type="fig" rid="F1"/>a. <bold>(b)</bold> Root mean square error between the two models. <bold>(c)</bold> Mean absolute percentage error, the difference taken relative to the local biomass. <bold>(d)</bold> Bias, the mean signed difference of SeapoPym minus the 2D reference. The difference is largest along the western-boundary currents and the Antarctic Circumpolar Current and in cold high-latitude waters, and smallest in the warm subtropical gyres.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f04.png"/>

        </fig>

      <p id="d2e1341">The second experiment compares SeapoPym with the operational SEAPODYM-LMTL product, which includes transport, over the global ocean and the 2000 to 2019 period (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>). This comparison does not separate the effect of transport from that of the re-implementation. We quantify this difference at each grid cell with three complementary metrics (Eqs. <xref ref-type="disp-formula" rid="Ch1.E1"/>–<xref ref-type="disp-formula" rid="Ch1.E3"/>), mapped over the global ocean in Fig. <xref ref-type="fig" rid="F4"/>. Each metric compares the SeapoPym biomass <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with the reference biomass <inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> from SEAPODYM-LMTL, at time step <inline-formula><mml:math id="M57" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> among the <inline-formula><mml:math id="M58" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> steps of the series. The bias is the mean signed error, so opposite differences cancel and it can stay near zero even where the two models differ most. The root mean square error (RMSE) does not cancel in this way and measures the magnitude of the difference, giving more weight to large errors. The mean absolute percentage error (MAPE) expresses the difference relative to the local biomass, which matters where biomass is low.</p>
      <p id="d2e1392"><disp-formula specific-use="gather" content-type="numbered"><mml:math id="M59" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E1"><mml:mtd><mml:mtext>1</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">bias</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo>(</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E2"><mml:mtd><mml:mtext>2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">RMSE</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo>(</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E3"><mml:mtd><mml:mtext>3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">MAPE</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">100</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d2e1561">To assess whether this difference is significant, we compare it to the discrepancy already existing between the operational SEAPODYM-LMTL product and in-situ observations. At the HOT and BATS stations, where in-situ time series are available, we use the root mean square error to quantify the two discrepancies of the operational SEAPODYM-LMTL product, one with the SeapoPym model and one with the in-situ observations (Fig. <xref ref-type="fig" rid="F5"/>). We then calculate their ratio, allowing us to place the inter-model difference in the context of the gap between the operational SEAPODYM-LMTL product and the in-situ observations. This comparison focuses solely on the order of magnitude.</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e1568">Model biomass against in-situ observations at the two stations with open long-term records, HOT (top) and BATS (bottom). Grey dots are the daily-mean in-situ mesozooplankton biomass, clipped to the 5th to 95th percentile. The solid blue line is the operational SEAPODYM-LMTL product and the dashed orange line is SeapoPym (without transport), both driven by the same forcing and parameters. The dotted horizontal lines mark the time-mean of each series, with their values printed at the right. The <inline-formula><mml:math id="M60" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-axis is logarithmic and biomass is in g C m<sup>−2</sup>. The two model means nearly coincide while the observed mean sits apart, so the difference between the models, which is due to transport and a different implementation, is five to seven times smaller than the gap between the operational SEAPODYM-LMTL product and the observations.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f05.png"/>

        </fig>

</sec>
<sec id="Ch1.S2.SS5">
  <label>2.5</label><title>Sobol sensitivity analysis</title>
      <p id="d2e1605">A Sobol sensitivity analysis makes it possible to determine what each parameter controls prior to calibration. It is a global, variance-based method that apportions the variance of a model output among the parameters. It is widely used to identify and rank the driving factors of environmental models <xref ref-type="bibr" rid="bib1.bibx41 bib1.bibx51" id="paren.46"/>. For each parameter, it provides a first-order index <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, representing the fraction of output variance attributable to that parameter alone, as well as a total index <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, that represents the fraction attributable to that parameter and all its interactions with others. The difference <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> corresponds to the portion of a parameter's influence exerted only in combination with other parameters, isolated through variance decomposition <xref ref-type="bibr" rid="bib1.bibx43" id="paren.47"/>. The analysis relies on output variance, a quantity independent of the cost function minimized during the optimization (Sect. <xref ref-type="sec" rid="Ch1.S2.SS6"/>).</p>
      <p id="d2e1657">We run SeapoPym at the six station locations (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>), with the two-year spin-up used throughout, and we vary the five biological parameters over the same ranges as the twin experiments (Sect. <xref ref-type="sec" rid="Ch1.S2.SS6"/>). The result of a sensitivity analysis depends on the chosen descriptors <xref ref-type="bibr" rid="bib1.bibx41" id="paren.48"/>, so we reduce each simulation to two complementary scalars. The first descriptor is the base-10 logarithm of the mean biomass, which measures the overall level, taken in logarithm because the mean spans several orders of magnitude across parameters sets. The second descriptor is the day of year of the biomass maximum, which measures the timing of the seasonal peak. We compute the indices separately at each station location, so that any dependence of the sensitivity on the environment is visible.</p>
      <p id="d2e1667">We compute the Sobol indices with the SALib library <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx24" id="paren.49"/>. Its Saltelli sampler <monospace>sample_sobol</monospace> generates the sets of parameter values at which the model is run, and its estimator <monospace>sobol.analyze</monospace> returns <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with 95 % bootstrap confidence intervals. For the <inline-formula><mml:math id="M67" display="inline"><mml:mrow><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> parameters, a base sample size <inline-formula><mml:math id="M68" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> yields <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> parameter sets, one per model run. Only first- and total-order indices are computed, which is what fixes the count to <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The Saltelli sample and the bootstrap confidence intervals both use a fixed random seed, so the design and the reported intervals are reproducible. Rather than fixing <inline-formula><mml:math id="M71" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> in advance, we choose it by a convergence test on the indices. We raise <inline-formula><mml:math id="M72" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> through a doubling sequence, re-estimate the indices at each value, and stop at the smallest <inline-formula><mml:math id="M73" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> that meets two conditions. The first follows <xref ref-type="bibr" rid="bib1.bibx44" id="text.50"/> and requires precision: the half-width of the 95 % bootstrap confidence interval of each index must stay below 0.05. The second requires stability: each index must change by less than 0.05 from the previous <inline-formula><mml:math id="M74" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula>. Both conditions are first met at <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8192</mml:mn></mml:mrow></mml:math></inline-formula>, that is <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M77" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 57 344 model runs.</p>
</sec>
<sec id="Ch1.S2.SS6">
  <label>2.6</label><title>CMA-ES: parameter optimization</title>
      <p id="d2e1834">We assess identifiability with twin experiments. From the reference parameters (Table <xref ref-type="table" rid="T1"/>) we simulate the synthetic observations at each station over the 2000 to 2019 analysis period, then we use the optimizer to recover those parameters by fitting these synthetic observations either separately or together. Each candidate runs its own two-year spin-up over 1998 and 1999 within a full 1998 to 2019 integration, and the cost is scored on the 2000 to 2019 analysis window (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>). Because the synthetic observations are produced by the transport-free model itself and used without added noise, the target contains no transport signal, and an exact recovery is possible in principle. Twin experiments of this kind were used on the same model family by <xref ref-type="bibr" rid="bib1.bibx10" id="text.51"/> for the micronekton energy-transfer coefficients.</p>
      <p id="d2e1844">We recover the parameters with CMA-ES, that is an algorithm of adaptation evolution strategy using the covariance matrix <xref ref-type="bibr" rid="bib1.bibx17 bib1.bibx16" id="paren.52"/>. CMA-ES is a derivative-free method that adapts a multivariate normal search distribution to the local shape of the cost, which suits a smooth but possibly ill-conditioned cost without requiring its gradient. We use pycma, its reference implementation <xref ref-type="bibr" rid="bib1.bibx18" id="paren.53"/>, with the five parameters mapped to the unit box (linearly normalized between 0 and 1) from the search ranges of Table <xref ref-type="table" rid="T1"/> and the standard CMA-ES settings. The default population size, i.e. the number of parameter sets to test in one iteration, is defined by <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mo>⌊</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mi>ln⁡</mml:mi><mml:mi>D</mml:mi><mml:mo>⌋</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> parameters <xref ref-type="bibr" rid="bib1.bibx16" id="paren.54"/>. The initial step size is <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.30</mml:mn></mml:mrow></mml:math></inline-formula>, and candidate solutions that leave the unit box are mapped back into it by a smooth transformation, pycma's default boundary handling. The search stops on the standard CMA-ES convergence criteria, when the step size and the spread of the cost fall below pycma's default tolerances (step-size tolerance <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>). A generation cap is used solely as a safety measure, as it is never reached during the experiments.</p>
      <p id="d2e1924">A single optimization can settle in a local optimum that depends on its starting point, so we repeat the search from twenty random starts (seeds 0 to 19), hereafter called restarts, and keep the best. We assess identifiability by comparing the parameters recovered by the run achieving the best score with the reference. Parameters matching the reference are well constrained by the synthetic observations, whereas a recovered parameter set that departs from the reference while it gets the best score suggests a problem of equifinality <xref ref-type="bibr" rid="bib1.bibx3" id="paren.55"/>.</p>
      <p id="d2e1930">The cost function is the root mean square error normalized by the mean of the synthetic observations (NRMSE). Following Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>), <inline-formula><mml:math id="M82" display="inline"><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> refers to the simulated biomass and <inline-formula><mml:math id="M83" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> refers to the synthetic observations, so that stations with different biomasses enter on a comparable scale. For the joint experiment, the cost function is the mean of the per-station NRMSE. We conduct seven experiments, each of the six stations individually and one joint experiment (MERGED) that combines all six. The recovered parameter values are reported with the results.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Results</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Implementation validation and the impact of transport</title>
      <p id="d2e1968">Under constant forcing, the simulated biomass converges to the analytical steady state <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:math></inline-formula> at every temperature tested, the relative departure falling below 0.01 % given a long enough integration (Fig. <xref ref-type="fig" rid="F3"/>). It reaches within 1 % of this equilibrium in about fifteen days at 30 °C and about two years at 0 °C, the adjustment slowing as temperature falls. This slow adjustment in cold water sets the two-year spin-up used throughout the study, which brings even the coldest water to within about 1 % of equilibrium, so the analysis at every station begins from a near-equilibrium state.</p>
      <p id="d2e1992">The difference between SeapoPym and the operational SEAPODYM-LMTL product measures the combined effect of omitting transport and the re-implementation. As Fig. <xref ref-type="fig" rid="F4"/> shows, it is non-uniform across the ocean. In absolute terms, the RMSE is largest where currents and gradients are strong, along the Gulf Stream, the Kuroshio and the Antarctic Circumpolar Current, and in cold high-latitude waters where the long life cycle of zooplankton leaves the biomass exposed to advection for a longer period. The MAPE, calculated relative to local biomass, reduces the weights of these high-biomass currents and instead highlights regions of lower biomass, particularly around the equator in the Pacific, Indian and Atlantic Oceans. The bias introduces a directional dimension. Its opposite-signed fronts mark neighboring areas where the 0D model shows higher and lower biomass than the two-dimensional (2D) reference, a dipole consistent with biomass displaced by currents, such as at the confluence in the South Atlantic between the warm Brazil Current and the cold Malvinas Current. This signed pattern is consistent with transport redistributing biomass between adjacent regions, although a static difference map does not resolve the displacement itself.</p>
      <p id="d2e1997">To assess the significance of this difference, we compare it to the discrepancy already existing between the operational SEAPODYM-LMTL product and the in-situ observations. At HOT and BATS stations the difference between the 0D and 2D models is five to seven times smaller than the gap between the operational SEAPODYM-LMTL product and the observations (Fig. <xref ref-type="fig" rid="F5"/>, see Table <xref ref-type="table" rid="TB1"/> for station-specific values). The two models yield similar results, yet both deviate from the observations in terms of amplitude: they underestimate values at HOT and overestimate them at BATS. This justifies the use of local 0D optimization in these regimes. This finding applies to both HOT and BATS, which are warm-water oligotrophic stations with in-situ measurement series. The comparison focuses solely on magnitude, as the observations are not used for calibration.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Sobol sensitivity analysis</title>
      <p id="d2e2012">Sensitivity analysis of biomass magnitude reveals a distribution of roles (Fig. <xref ref-type="fig" rid="F6"/>). This magnitude is determined by energy transfer <inline-formula><mml:math id="M85" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> and the two mortality parameters, with the balance between these factors shifting along the temperature gradient. First-order indices for <inline-formula><mml:math id="M86" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> decrease from the coldest station to the warmest station, whereas the index for <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> rises from a value near zero at BARENTS to approximately 0.6 at HOT. The thermal term <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is inactive near the reference temperature but dominant in warm waters. Recruitment parameters have no impact on this magnitude, and for this descriptor, the indices are additive, summing to one at each station.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e2067">Sobol sensitivity indices of the biomass to the five biological parameters at the six stations, ordered from coldest to warmest. The rows are the two output descriptors, the magnitude (base-10 logarithm of the mean biomass, top) and the seasonal peak timing (day of year of the maximum, bottom). The columns are the five parameters <inline-formula><mml:math id="M90" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. In each panel the blue bars are the first-order index <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, the share of output variance due to that parameter alone, and the orange bars the total-order index <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which adds its interactions with the other parameters. Error bars are 95 % bootstrap confidence intervals. The indices are computed from a Saltelli design of <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8192</mml:mn></mml:mrow></mml:math></inline-formula> base samples, that is 57 344 model runs at each station. The magnitude is governed by the energy transfer and the two mortality parameters, the peak timing by the two recruitment parameters.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f06.png"/>

        </fig>

      <p id="d2e2170">The peak timing is governed by the recruitment parameters, while energy transfer has no effect. At BARENTS, BISCAY, CANARY and BATS the first-order indices sum to 0.6 to 0.8, so recruitment acts mostly directly, whereas that sum falls to 0.33 at PAPA and 0.17 at HOT, so interactions carry most of the timing variance. The two recruitment parameters respond to temperature differently. At BARENTS the first-order index of <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> reaches 0.72, and its total-order index falls with warming, from 0.96 at BARENTS to 0.40 at BATS. The first-order index of <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> rises over the same gradient, from near zero at BARENTS to 0.60 at BATS. HOT departs from both trends: the first-order indices of <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> fall below 0.1 while their total-order indices reach 0.68 and 0.82, so recruitment acts on the timing almost entirely through interactions.</p>
      <p id="d2e2234">Taken together, these two descriptors distinguish the respective roles of the parameters: magnitude is determined by energy transfer and mortality, whereas timing is determined by recruitment. At steady state, biomass results from a multiplicative combination of the parameters (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>). Therefore, its logarithm is expressed as a sum of distinct terms: <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mi>log⁡</mml:mi><mml:mi>E</mml:mi><mml:mo>-</mml:mo><mml:mi>log⁡</mml:mi><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:mi>log⁡</mml:mi><mml:mi mathvariant="normal">NPP</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M103" display="inline"><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> and NPP are fixed by the station and where recruitment does not appear. The sensitivity analysis confirms this simplified scheme, showing additive indices for magnitude and a negligible effect of recruitment. However, sensitivity does not imply identifiability: knowing what each parameter controls does not determine whether it can be estimated from the data. This is a point that is demonstrated by the twin experiments presented in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Twin experiments: convergence and parameter recovery</title>
      <p id="d2e2303">We read parameter recovery from the best restart of each experiment (Table <xref ref-type="table" rid="T2"/>). At the cold stations BARENTS, PAPA and BISCAY, and in the joint MERGED experiment, all five parameters are recovered to better than 0.1 % of the reference, recruitment included. At the warm stations CANARY and BATS the energy transfer and the two mortality parameters are recovered to the same precision, but the two recruitment parameters <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> miss the reference by 40 % to 160 %.</p>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e2341">Parameter recovery in the twin experiments, where the optimizer recovers known parameters from synthetic observations that the model generated itself, taking the best of twenty CMA-ES restarts. Each entry is the signed relative divergence of a recovered parameter against its synthetic-observation reference, in percent. The last column is the achieved cost (mean-normalized NRMSE). The cold stations and MERGED recover all five parameters, CANARY and BATS miss the two recruitment parameters, and HOT does not reach the optimum. A large error next to a near-zero cost is equifinality.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="7">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Synthetic observation</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M106" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7">NRMSE</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">(station)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M111" display="inline"><mml:mn mathvariant="normal">0.1668</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M112" display="inline"><mml:mn mathvariant="normal">10.38</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.11</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M114" display="inline"><mml:mn mathvariant="normal">0.006667</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M115" display="inline"><mml:mn mathvariant="normal">0.15</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"/>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">MERGED</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M116" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M117" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M118" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M119" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M120" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.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">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BARENTS</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M122" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M123" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M124" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M125" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M126" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.9</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">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">PAPA</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M128" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M129" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M130" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M131" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M132" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.5</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></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BISCAY</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M134" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M136" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M137" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M138" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.4</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></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CANARY</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M140" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">77</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">78</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M143" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M144" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.9</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">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BATS</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M146" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">158</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">41</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M149" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M150" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.7</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">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">HOT</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">27</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.4</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.3</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">2</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="d2e2989">To validate convergence we use the cost reached by the experiments that recover the parameters as a benchmark. The cold stations and MERGED reach an NRMSE of order <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> (Table <xref ref-type="table" rid="T2"/>), and CANARY and BATS reach it as well, so both converged (Fig. <xref ref-type="fig" rid="F7"/>). HOT's best restart, by contrast, stays near <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, two orders of magnitude above, so none of its twenty restarts converged and we leave HOT out of the recovery analysis.</p>

      <fig id="F7"><label>Figure 7</label><caption><p id="d2e3027">CMA-ES convergence for the seven twin experiments, each the best of twenty random restarts. Each line is the best-so-far cost against the number of model evaluations, for the six single-station experiments and the joint MERGED experiment. The cost is the NRMSE between the recovered and the synthetic biomass, normalized by the mean of the target series. The <inline-formula><mml:math id="M160" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-axis is logarithmic. Station color follows the cold-to-warm convention and MERGED is black. Every experiment drives the cost to near zero, about <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, except HOT, which floors near <inline-formula><mml:math id="M162" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. Because the target is the model's own output a zero cost is attainable, so the HOT residual likely reflects an incomplete search rather than a structural floor.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f07.png"/>

        </fig>

      <p id="d2e3071">Three conclusions follow. At CANARY and BATS the search reaches the cost of a full recovery yet leaves the recruitment parameters far from the reference, so a good fit does not identify the parameters, the equifinality of <xref ref-type="bibr" rid="bib1.bibx3" id="text.56"/>. At the cold stations, by contrast, the search both converges and recovers all five parameters. In MERGED, the joint search over the six stations converges and recovers every parameter to better than 0.1 % of the reference, so the non-identifiable warm stations do not degrade the joint estimate.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Discussion</title>
      <p id="d2e3086">The first question this study addressed is whether a transport-free re-implementation is a valid basis for parameter optimization. SeapoPym converges to the analytical steady state of the reference equations, and its departure from the operational SEAPODYM-LMTL product is small enough for local 0D optimization to be valid, at least at the two warm stations where in-situ observations allow that comparison. The second question is whether zooplankton observations carry enough information to recover the five biological parameters of the SEAPODYM-LMTL model. Using the SeapoPym model coupled to a CMA-ES optimizer, we found that the answer depends on the environmental regime sampled. The energy-transfer and mortality parameters were recovered at every station where the search converged, whereas the recruitment parameters were recovered only in cold water.</p>
      <p id="d2e3089">The influence of advection on zooplankton distribution has long been recognized and is often pronounced, particularly in regions characterized by intense physical dynamics, such as frontal zones, upwelling systems, and areas with strong currents <xref ref-type="bibr" rid="bib1.bibx1 bib1.bibx12 bib1.bibx36" id="paren.57"><named-content content-type="pre">e.g.,</named-content></xref>. Our comparison with the operational SEAPODYM-LMTL product confirms that transport cannot be ignored in such areas, especially when these conditions prevail in cold-water environments. This result aligns with theoretical predictions stating that physical transport becomes significant when biological timescales exceed physical retention timescales. This scenario is more likely in cold waters, where zooplankton generation times can exceed one year <xref ref-type="bibr" rid="bib1.bibx7 bib1.bibx26 bib1.bibx8" id="paren.58"/>. Nevertheless, the version of our model that omits transport remains suitable for simulating and estimating mesozooplankton parameters in most warm- and temperate-water regions, outside of localized dynamic zones. This is the case at our six stations, where the 0D-to-2D difference stays between 6 % and 12 % (Table <xref ref-type="table" rid="TB1"/>). This difference is smaller than the model-observation gap only where we could measure that gap, at the two warm stations HOT and BATS. Confirming it in cold water would require in-situ series there.</p>
      <p id="d2e3102">The Sobol sensitivity analysis assigns a distinct role to each parameter: energy transfer and the two mortality parameters govern the magnitude of the biomass, while the two recruitment parameters govern the timing of the seasonal peak, with their relative predominance depending on the temperature regime. This division shapes what a calibration against real data can and cannot separate. At steady state the mean biomass depends on the energy transfer <inline-formula><mml:math id="M163" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>, the mortality <inline-formula><mml:math id="M164" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula>, and the primary production through the ratio <inline-formula><mml:math id="M165" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi>E</mml:mi><mml:mo>×</mml:mo><mml:mi mathvariant="normal">NPP</mml:mi></mml:mrow><mml:mi mathvariant="italic">λ</mml:mi></mml:mfrac></mml:mstyle></mml:math></inline-formula> (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>), so these three are confounded in the magnitude. A bias in the NPP forcing magnitude could therefore be absorbed into biased estimates of <inline-formula><mml:math id="M166" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M167" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula>, indistinguishable in the mean biomass from a genuine parameter error. The recruitment parameters play an analogous role for timing, absorbing errors in the seasonal phase of the forcing. Our twin experiments recover <inline-formula><mml:math id="M168" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> and the mortality parameters because the forcing is identical for the target and the candidates. Against uncertain forcing these same parameters could instead take values that compensate for it, so their calibrated estimates should be interpreted as effective quantities rather than independently identified ones.</p>
      <p id="d2e3159">The same reasoning applies to transport. Since the synthetic observations are generated by SeapoPym, they contain no transport signal to be absorbed. These twin experiments therefore do not allow us to assess whether the optimized parameters would take biased values to compensate for the omission of transport. Assessing this would require the same experiment with a target that carries a transport signal, such as the operational product. The recovery presented here should not be interpreted as proof that the estimates would remain unbiased in that case.</p>
      <p id="d2e3163">At the cold stations the mean recruitment age exceeds two daily cohorts (Table <xref ref-type="table" rid="TB1"/>), and the two recruitment parameters are recovered. At CANARY and BATS, where the mean recruitment age is close to one daily cohort, the recruitment parameters are not recovered, even though the fit reaches the same cost as at the cold stations. Consequently, the quality of the fit alone does not guarantee the validity of the calibration. Sensitivity does not imply identifiability either, since at BATS the first-order index of <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> on the peak timing reaches 0.60. A likely reason lies in how recruitment is discretized. Age classes are one time step wide, and a class is completely absorbed into the biomass (Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>), so two recruitment ages within the same age class produce the same recruitment and the cost changes in steps rather than continuously. The recruitment age also decreases exponentially with temperature, so only one or two age classes are resolved in warm water. Crossing a class boundary there demands either a wider temperature range or a larger parameter change than at the cold stations. This warm-water equifinality would therefore stem from both the exponential behavior of recruitment and the numerical solution the model uses. A smoother recruitment, or a finer time and age step, would smooth the cost function, but we have not tested whether either restores identifiability. Recruitment parameters must therefore be determined from independent data or estimated in conjunction with an informative cold station, as demonstrated by the MERGED experiment.</p>
      <p id="d2e3185">These results have direct implications for observing-system design. Recovering all five parameters requires sampling at least one cold-water regime, because recruitment is identifiable there. A single cold station, sampled across its full seasonal range, constrained the five parameters as well as the six stations combined. What matters is the information content of the regime, not the number of stations. The cold station must also have weak enough currents for the 0D approximation to hold, as at BARENTS, PAPA and BISCAY, where the 0D-to-2D difference is of the same order, in relative terms (MAPE), as at the warm stations. Cold but strongly advective regions carry the same seasonal signal, but exploiting it would require a version of the model that resolves transport.</p>
      <p id="d2e3188">These findings are a best case. The synthetic observations are noise-free, complete at every time step, and driven by the exact forcing, whereas in-situ series are sparse and irregular and the forcing carries its own error. All three will lower identifiability and widen parameter uncertainty in real applications. Working with such observations will also require a cost function that represents their error, such as a Gaussian likelihood that weights the misfit by the observation-error variance, or a log-normal likelihood suited to the positive, skewed distribution of plankton biomass <xref ref-type="bibr" rid="bib1.bibx45" id="paren.59"/>. A second limitation is our diagnosis of equifinality. We identified it from the best restart alone, which showed that parameter sets far from the reference reached the same cost, but this single optimum does not reveal the whole family of parameter sets that fit the observations equally well. Mapping that family would require sampling the parameter space rather than a single optimum, either as a behavioral ensemble drawn by random sampling <xref ref-type="bibr" rid="bib1.bibx4" id="paren.60"/> or as a Bayesian estimate of the parameter posterior <xref ref-type="bibr" rid="bib1.bibx57" id="paren.61"/>.</p>
      <p id="d2e3200">The first step beyond this study is to repeat these experiments under realistic conditions, as an observing system simulation experiment in which measurement error, temporal gaps, and forcing uncertainty are added to the synthetic observations <xref ref-type="bibr" rid="bib1.bibx21" id="paren.62"/>. Such an experiment would show how much of the identifiability reported here still holds under those conditions. It would also let us vary the sampling effort, which we held fixed, since every station used the same complete twenty-year record. We do not know whether a long continuous record outperforms shorter records spread over several stations, nor where along the temperature gradient recruitment identifiability breaks down. The second step is to calibrate the model against real data. The long-term series at HOT and BATS are complete, but this study shows that they cannot constrain recruitment. A cold and weakly advective station is needed as well. The COPEPOD database is a logical candidate, although a long-term series in cold water would constrain recruitment more directly. The SeapoPym framework is built for both steps.</p>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusions</title>
      <p id="d2e3215">We presented here SeapoPym, an open-source Python re-implementation of the SEAPODYM-LMTL model for mesozooplankton biology. It is coupled with a modular framework in which the model, observations, cost function, and optimizer are interchangeable components. We validated this re-implementation against the operational SEAPODYM-LMTL product and its analytical steady state. We determined the roles of the five parameters using a Sobol analysis, then tested their identifiability using twin experiments at six station locations with different environmental conditions. The difference between the 0D and 2D models, which combines the omission of transport and the re-implementation, ranges from 6 % to 12 % of the simulated biomass at all six stations (Table <xref ref-type="table" rid="TB1"/>). At HOT and BATS, the only stations with in-situ records, it is five to seven times smaller than the discrepancy between the model and the observations, so it is second-order there. The 0D model therefore serves as a valid test bed for assessing parameter identifiability where transport is a second-order effect.</p>
      <p id="d2e3220">The identifiability of the parameters depends on the environmental conditions observed. In the twin experiments, the energy-transfer and mortality parameters were correctly estimated at every station where the search converged, while the recruitment parameters were estimated only under cold-water conditions. At warm stations, the optimization reaches parameter sets far from the reference that minimize the cost as well as at the cold stations. Cost convergence, therefore, does not imply that the parameters are correctly estimated. A single cold station constrained all five parameters as well as the six stations combined. Parameter recovery is therefore determined by the information content of the sampled regime, not by the number of stations. In locations where the difference between the 0D and 2D models is second-order, the 0D model can be calibrated using observations made under cold, low-current conditions, where recruitment is informative. In the absence of such cold observations, recruitment parameters must be set or constrained based on independent, process-based knowledge.</p>
      <p id="d2e3223">The twin experiments use noise-free observations, complete at every time step, generated by the transport-free model itself and driven by the exact forcing. The identifiability they show is therefore a best case, and it leaves open whether the parameters would absorb the missing transport once the target contains it. In-situ series are sparse and irregular, and the forcing carries its own error, so real conditions will reduce the identifiability. One warm station, HOT, did not converge to the low cost reached at the other stations and departed from them for reasons that remain open. Calibrating the model against real data will require a cold, weakly advective station with a long time series, where recruitment is informative and the 0D approximation holds, and a cost function that represents observational error.</p>
</sec>

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

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title>Underlying model equations</title>
      <p id="d2e3239">The full SEAPODYM-LMTL model resolves several functional groups across three vertical layers, with diel vertical migration linking the layers (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>, <xref ref-type="bibr" rid="bib1.bibx33" id="altparen.63"/>). The equations below describe the single epipelagic mesozooplankton group studied here. The functional groups are not coupled to one another, each driven independently by primary production, and the epipelagic group does not migrate, so neither inter-group terms nor diel vertical migration appear here. The group is represented by two coupled state variables, an age-structured production field <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and an age-aggregated biomass pool <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. All equations are written in continuous form, the discretization of time and age being introduced only in the numerical-solution part.</p>
<sec id="App1.Ch1.S1.SS1">
  <label>A1</label><title>Biomass</title>
      <p id="d2e3286">The biomass <inline-formula><mml:math id="M172" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> [g C m<inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> follows the balance between the recruitment flux <inline-formula><mml:math id="M174" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> and mortality:

            <disp-formula id="App1.Ch1.S1.E4" content-type="numbered"><label>A1</label><mml:math id="M175" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M176" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> [g C m<sup>−2</sup> d<sup>−1</sup>] is the recruitment flux from the aging production field (defined below) and <inline-formula><mml:math id="M179" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula> [d<sup>−1</sup>] is the mortality rate. At steady state this gives the equilibrium biomass <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:math></inline-formula>. Mortality rises exponentially with temperature:

            <disp-formula id="App1.Ch1.S1.E5" content-type="numbered"><label>A2</label><mml:math id="M182" display="block"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi>exp⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the mortality rate at the reference temperature and <inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="italic">λ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> [°C<sup>−1</sup>] its thermal sensitivity. The temperature entering the metabolic terms is the normalized temperature of the SEAPODYM-LMTL model <xref ref-type="bibr" rid="bib1.bibx33" id="paren.64"/>, after the metabolic theory of <xref ref-type="bibr" rid="bib1.bibx14" id="text.65"/> and <xref ref-type="bibr" rid="bib1.bibx15" id="text.66"/>,

            <disp-formula id="App1.Ch1.S1.E6" content-type="numbered"><label>A3</label><mml:math id="M186" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">273</mml:mn></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo movablelimits="false">max⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">env</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="italic">°</mml:mi><mml:mi mathvariant="normal">C</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">env</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the temperature forcing (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>) and <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the reference temperature, with <inline-formula><mml:math id="M189" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> floored at <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> so that the recruitment age cannot exceed the maximum age the model resolves (below).</p>
</sec>
<sec id="App1.Ch1.S1.SS2">
  <label>A2</label><title>Production</title>
      <p id="d2e3689">The production field <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> [g C m<sup>−2</sup> d<sup>−1</sup>] describes how production is distributed across age <inline-formula><mml:math id="M194" display="inline"><mml:mi mathvariant="italic">τ</mml:mi></mml:math></inline-formula>. It ages at unit velocity and is conserved while it ages, following the loss-free McKendrick-Von Foerster transport equation <xref ref-type="bibr" rid="bib1.bibx37 bib1.bibx59" id="paren.67"/>:

            <disp-formula id="App1.Ch1.S1.E7" content-type="numbered"><label>A4</label><mml:math id="M195" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">τ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e3780">Its dynamics are set by two boundaries, a source at age zero and a sink at the recruitment age. At age zero, a fraction <inline-formula><mml:math id="M196" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> of NPP is injected (the source):

            <disp-formula id="App1.Ch1.S1.E8" content-type="numbered"><label>A5</label><mml:math id="M197" display="block"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">NPP</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with NPP the net primary production [g C m<sup>−2</sup> d<sup>−1</sup>] and <inline-formula><mml:math id="M200" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> the dimensionless transfer efficiency between primary production and zooplankton production. The sink at the recruitment age is described next.</p>
</sec>
<sec id="App1.Ch1.S1.SS3">
  <label>A3</label><title>Recruitment</title>
      <p id="d2e3867">Production is recruited into the biomass pool when it reaches the temperature-dependent recruitment age <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>:

            <disp-formula id="App1.Ch1.S1.E9" content-type="numbered"><label>A6</label><mml:math id="M202" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mi>exp⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the recruitment age at the reference temperature (hence the maximum age represented in the model) and <inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> [°C<sup>−1</sup>] its thermal sensitivity. This sink is an absorbing boundary, <inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>&gt;</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and the recruitment flux feeding the biomass is the production reaching that age:

            <disp-formula id="App1.Ch1.S1.E10" content-type="numbered"><label>A7</label><mml:math id="M208" display="block"><mml:mrow><mml:mi>R</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e4070">Recruitment moves production from the field <inline-formula><mml:math id="M209" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> into the pool <inline-formula><mml:math id="M210" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula>, a transfer and not a loss. Mortality acts only on <inline-formula><mml:math id="M211" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula>, through <inline-formula><mml:math id="M212" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula>, and any loss during development is absorbed into the efficiency <inline-formula><mml:math id="M213" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="App1.Ch1.S1.SS4">
  <label>A4</label><title>Numerical solution</title>
      <p id="d2e4117">Age and time are discretized into steps <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M215" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula>, and production is carried in discrete cohorts (age classes) indexed by <inline-formula><mml:math id="M216" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula>, advanced over time steps indexed by <inline-formula><mml:math id="M217" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>. Because production ages at unit velocity, we set <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>≡</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> d, a Courant number of one, so one time step moves a cohort up by exactly one age class. The number of resolved age classes is set by the maximum recruitment age, about eleven daily classes at the reference temperature (<inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10.38</mml:mn></mml:mrow></mml:math></inline-formula> d). Each step then reduces to three operations on the production field, by region of age:

            <disp-formula id="App1.Ch1.S1.E11" content-type="numbered"><label>A8</label><mml:math id="M220" display="block"><mml:mrow><mml:msubsup><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="array" columnalign="left left left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>E</mml:mi><mml:msup><mml:mi mathvariant="normal">NPP</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd><mml:mtd><mml:mtext>(source at age zero)</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>p</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>&lt;</mml:mo><mml:mi>a</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>&lt;</mml:mo><mml:msubsup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mtext>(loss-free aging)</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>a</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>≥</mml:mo><mml:msubsup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mtext>(recruitment)</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e4316">The production that crosses the recruitment age (the classes set to zero) feeds the biomass, giving the recruitment flux <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mo>∑</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi>p</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. At a Courant number of one these operations are exact, so the production needs no integration scheme. Only the biomass does, because of its mortality term.</p>
      <p id="d2e4377">The biomass is integrated with an implicit (backward Euler) scheme, evaluating the right-hand side at the new time step:

            <disp-formula id="App1.Ch1.S1.E12" content-type="numbered"><label>A9</label><mml:math id="M222" display="block"><mml:mrow><mml:msup><mml:mi>B</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>B</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi>R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="italic">λ</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e4440">This scheme is unconditionally stable. A fully explicit update is not: in warm water and over the high mortality rates explored during the experiments (Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/> and <xref ref-type="sec" rid="Ch1.S2.SS6"/>), it produces spurious oscillations and negative biomass. The implicit form lets the whole parameter range be integrated with a single time step.</p>
</sec>
</app>

<app id="App1.Ch1.S2">
  <label>Appendix B</label><title>Per-station summary</title>
      <p id="d2e4456">Table <xref ref-type="table" rid="TB1"/> gathers, for each of the six stations, the mean temperature, the recruitment age at the mean and warmest points of its forcing, the difference between the 0D and 2D models, and, where in-situ records exist, the structural gap between the operational SEAPODYM-LMTL product and the observations.</p>

<table-wrap id="TB1"><label>Table B1</label><caption><p id="d2e4465">Per-station summary, stations ordered by increasing mean temperature. For each station: position, mean temperature of the epipelagic layer, the recruitment age <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mi>exp⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (Table <xref ref-type="table" rid="T1"/>, Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>) at the mean and at the warmest point of the forcing series, in days and equivalently in daily cohorts, the difference between the 0D SeapoPym and the operational SEAPODYM-LMTL product (RMSE and MAPE sampled from the maps of Fig. <xref ref-type="fig" rid="F4"/> over 2000 to 2019), and, at the two stations with in-situ records, the structural gap between the 2D reference and the observations (RMSE) with its ratio to the 0D-to-2D difference. RMSE in g C m<sup>−2</sup>, MAPE in percent. The ratio is computed from the daily series as in Fig. <xref ref-type="fig" rid="F5"/>, with the observations clipped to their 5th–95th percentiles.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="9">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right" colsep="1"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right" colsep="1"/>
     <oasis:colspec colnum="8" colname="col8" align="right"/>
     <oasis:colspec colnum="9" colname="col9" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M225" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry rowsep="1" namest="col4" nameend="col5" align="center" colsep="1"><inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (d) </oasis:entry>
         <oasis:entry rowsep="1" namest="col6" nameend="col7" align="center" colsep="1">0D–2D </oasis:entry>
         <oasis:entry rowsep="1" namest="col8" nameend="col9" align="center">obs–2D </oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Station</oasis:entry>
         <oasis:entry colname="col2">Position</oasis:entry>
         <oasis:entry colname="col3">(°C)</oasis:entry>
         <oasis:entry colname="col4">mean</oasis:entry>
         <oasis:entry colname="col5">min</oasis:entry>
         <oasis:entry colname="col6">RMSE</oasis:entry>
         <oasis:entry colname="col7">MAPE</oasis:entry>
         <oasis:entry colname="col8">RMSE</oasis:entry>
         <oasis:entry colname="col9">ratio</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">BARENTS</oasis:entry>
         <oasis:entry colname="col2">75° N, 40° E</oasis:entry>
         <oasis:entry colname="col3">1.1</oasis:entry>
         <oasis:entry colname="col4">9.18</oasis:entry>
         <oasis:entry colname="col5">6.59</oasis:entry>
         <oasis:entry colname="col6">0.133</oasis:entry>
         <oasis:entry colname="col7">8.5</oasis:entry>
         <oasis:entry colname="col8">–</oasis:entry>
         <oasis:entry colname="col9">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">PAPA</oasis:entry>
         <oasis:entry colname="col2">50° N, 132° W</oasis:entry>
         <oasis:entry colname="col3">9.4</oasis:entry>
         <oasis:entry colname="col4">3.90</oasis:entry>
         <oasis:entry colname="col5">2.50</oasis:entry>
         <oasis:entry colname="col6">0.402</oasis:entry>
         <oasis:entry colname="col7">11.4</oasis:entry>
         <oasis:entry colname="col8">–</oasis:entry>
         <oasis:entry colname="col9">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BISCAY</oasis:entry>
         <oasis:entry colname="col2">45.5° N, 4° W</oasis:entry>
         <oasis:entry colname="col3">13.9</oasis:entry>
         <oasis:entry colname="col4">2.45</oasis:entry>
         <oasis:entry colname="col5">1.72</oasis:entry>
         <oasis:entry colname="col6">0.176</oasis:entry>
         <oasis:entry colname="col7">6.6</oasis:entry>
         <oasis:entry colname="col8">–</oasis:entry>
         <oasis:entry colname="col9">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CANARY</oasis:entry>
         <oasis:entry colname="col2">30° N, 13° W</oasis:entry>
         <oasis:entry colname="col3">19.0</oasis:entry>
         <oasis:entry colname="col4">1.48</oasis:entry>
         <oasis:entry colname="col5">1.11</oasis:entry>
         <oasis:entry colname="col6">0.083</oasis:entry>
         <oasis:entry colname="col7">6.9</oasis:entry>
         <oasis:entry colname="col8">–</oasis:entry>
         <oasis:entry colname="col9">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BATS</oasis:entry>
         <oasis:entry colname="col2">32° N, 64° W</oasis:entry>
         <oasis:entry colname="col3">21.4</oasis:entry>
         <oasis:entry colname="col4">1.18</oasis:entry>
         <oasis:entry colname="col5">0.78</oasis:entry>
         <oasis:entry colname="col6">0.058</oasis:entry>
         <oasis:entry colname="col7">10.8</oasis:entry>
         <oasis:entry colname="col8">0.316</oasis:entry>
         <oasis:entry colname="col9">5.5</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">HOT</oasis:entry>
         <oasis:entry colname="col2">23° N, 158° W</oasis:entry>
         <oasis:entry colname="col3">23.6</oasis:entry>
         <oasis:entry colname="col4">0.96</oasis:entry>
         <oasis:entry colname="col5">0.77</oasis:entry>
         <oasis:entry colname="col6">0.026</oasis:entry>
         <oasis:entry colname="col7">9.8</oasis:entry>
         <oasis:entry colname="col8">0.183</oasis:entry>
         <oasis:entry colname="col9">7.1</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</app>

<app id="App1.Ch1.S3">
  <label>Appendix C</label><title>Abbreviations</title>
      <p id="d2e4823">The abbreviations and acronyms used in this paper are listed below.</p>
      <p id="d2e4827"><table-wrap position="anchor"><oasis:table><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><bold>Abbreviation</bold></oasis:entry>
         <oasis:entry colname="col2"><bold>Definition</bold></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">0D</oasis:entry>
         <oasis:entry colname="col2">Zero-dimensional, the local SeapoPym model with transport neglected</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2D</oasis:entry>
         <oasis:entry colname="col2">Two-dimensional, the operational SEAPODYM-LMTL product with transport resolved</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CMA-ES</oasis:entry>
         <oasis:entry colname="col2">Covariance matrix adaptation evolution strategy</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CMEMS</oasis:entry>
         <oasis:entry colname="col2">Copernicus Marine Environment Monitoring Service</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">COPEPOD</oasis:entry>
         <oasis:entry colname="col2">Coastal and Oceanic Plankton Ecology, Production and Observation Database</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">GLORYS12</oasis:entry>
         <oasis:entry colname="col2">Global ocean reanalysis at <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:math></inline-formula>° resolution, the source of the temperature forcing</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">LMTL</oasis:entry>
         <oasis:entry colname="col2">The component of SEAPODYM which models the Low and Mid-Trophic Levels</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">MAPE</oasis:entry>
         <oasis:entry colname="col2">Mean absolute percentage error</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NPP</oasis:entry>
         <oasis:entry colname="col2">Net primary production</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NRMSE</oasis:entry>
         <oasis:entry colname="col2">Normalized root mean square error, here normalized by the mean</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">RMSE</oasis:entry>
         <oasis:entry colname="col2">Root mean square error</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SEAPODYM</oasis:entry>
         <oasis:entry colname="col2">Spatial Ecosystem and Populations Dynamics Model</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SeapoPym</oasis:entry>
         <oasis:entry colname="col2">The open Python re-implementation of the SEAPODYM-LMTL biology presented here</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">VGPM</oasis:entry>
         <oasis:entry colname="col2">Vertically Generalized Production Model</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap></p>
</app>

<app id="App1.Ch1.S4">
  <label>Appendix D</label><title>Workflow overview</title>
      <p id="d2e5000">Figure <xref ref-type="fig" rid="FD1"/> gives an overview of the modeling and experimental workflow. Temperature and NPP drive both models, whereas the currents drive only the SEAPODYM-LMTL model (with transport), SeapoPym being transport-free. The figure also shows the in-situ observations, the CMA-ES optimizer, and the four experiments together with the components each one uses.</p>

      <fig id="FD1"><label>Figure D1</label><caption><p id="d2e5007">Overview of the SeapoPym modeling and experimental workflow. Temperature and NPP drive both models, whereas the currents drive only the SEAPODYM-LMTL model (with transport, C<inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:math></inline-formula>). The dashed link marks that SeapoPym (without transport, Python) omits the currents. Each experiment is color-coded and linked to the components it uses, with the figures that report it. E1 (analytical validation, Fig. <xref ref-type="fig" rid="F3"/>) and E3 (Sobol sensitivity analysis, Fig. <xref ref-type="fig" rid="F6"/>) exercise the SeapoPym model. E2 (impact of transport and re-implementation, Figs. <xref ref-type="fig" rid="F4"/>–<xref ref-type="fig" rid="F5"/>) compares SeapoPym with the operational SEAPODYM-LMTL product and with the in-situ observations at HOT and BATS. E4 (twin experiments, Fig. <xref ref-type="fig" rid="F7"/> and Table <xref ref-type="table" rid="T2"/>) recovers the SeapoPym parameters with the CMA-ES optimizer from synthetic observations generated by SeapoPym itself.</p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/8349/2026/gmd-19-8349-2026-f08.png"/>

      </fig>


</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e5047">The SeapoPym model code is open-source, distributed under the GPLv3 license, and available at <uri>https://github.com/SeapoPym/seapopym</uri> (last access: 7 September 2026). The exact version described in this paper is SeapoPym v0.1.1, archived on Zenodo (<ext-link xlink:href="https://doi.org/10.5281/zenodo.21838667" ext-link-type="DOI">10.5281/zenodo.21838667</ext-link>, <xref ref-type="bibr" rid="bib1.bibx28" id="altparen.68"/>). The repository includes the source code, installation instructions, and a user manual. A dedicated reproducibility deposit accompanying this paper, providing the scripts, data and configuration necessary to reproduce the experiments and figures presented here, is openly available at <uri>https://github.com/SeapoPym/SeapoPym-v0.1-Reproducibility</uri> (last access: 7 September 2026, release v2.0.0) and archived on Zenodo (<ext-link xlink:href="https://doi.org/10.5281/zenodo.21849337" ext-link-type="DOI">10.5281/zenodo.21849337</ext-link>, <xref ref-type="bibr" rid="bib1.bibx29" id="altparen.69"/>). Its frozen experiment outputs are included, so every figure and table can be redrawn without repeating a calibration or a sensitivity analysis. The deposit also pins the complete software environment used for the results in this paper, which were produced with Python 3.12, pycma 4.4.4 for the optimization, and SALib 1.5.2 for the sensitivity analysis.</p>

      <p id="d2e5069">The temperature and NPP fields forcing the model, together with the mesozooplankton biomass from the operational SEAPODYM-LMTL product and the epipelagic current field, are distributed by the Copernicus Marine Service (CMEMS) in the product <italic>Global Ocean Low and Mid Trophic Levels Biomass Content Hindcast</italic> (GLOBAL_MULTIYEAR_BGC_001_033, <ext-link xlink:href="https://doi.org/10.48670/moi-00020" ext-link-type="DOI">10.48670/moi-00020</ext-link>, <xref ref-type="bibr" rid="bib1.bibx13" id="altparen.70"/>). The quality of this product is documented in <xref ref-type="bibr" rid="bib1.bibx58" id="text.71"/>. Within this product, the epipelagic-layer temperature derives from the GLORYS12 reanalysis <xref ref-type="bibr" rid="bib1.bibx35" id="paren.72"/> and the vertically integrated NPP from satellite ocean color through the VGPM algorithm <xref ref-type="bibr" rid="bib1.bibx2" id="paren.73"/>. These fields cover the period 1998 to 2019. The in-situ mesozooplankton observations, used only for the magnitude comparison of Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/> and Fig. <xref ref-type="fig" rid="F5"/> and not for calibration, are openly available. The Bermuda Atlantic Time-series Study zooplankton biomass <xref ref-type="bibr" rid="bib1.bibx53" id="paren.74"/> is available at <uri>https://www.bco-dmo.org/dataset/881861</uri> (last access: 7 September 2026) and archived at <ext-link xlink:href="https://doi.org/10.5281/zenodo.10182499" ext-link-type="DOI">10.5281/zenodo.10182499</ext-link> <xref ref-type="bibr" rid="bib1.bibx49" id="paren.75"/>, and the Hawaii Ocean Time-series macrozooplankton record <xref ref-type="bibr" rid="bib1.bibx25" id="paren.76"/> through the HOT-DOGS system (<uri>https://hahana.soest.hawaii.edu/hot/hot-dogs/</uri>, last access: 7 September 2026) and archived at <ext-link xlink:href="https://doi.org/10.5281/zenodo.10850539" ext-link-type="DOI">10.5281/zenodo.10850539</ext-link> <xref ref-type="bibr" rid="bib1.bibx50" id="paren.77"/>. Both in-situ datasets were obtained through the Simons Collaborative Marine Atlas Project (Simons CMAP, <uri>https://simonscmap.com/</uri>, last access: 7 September 2026) as the datasets <monospace>BATS_Zooplankton_Biomass</monospace> and <monospace>HOT_Macrozooplankton_v2022</monospace>.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e5133">JVL led the development of the SeapoPym software, designed the methodology, performed the simulations and sensitivity analyses, and wrote and revised the manuscript. AM and AG supervised the PhD work, provided guidance on the methodology, and contributed to the review and revision of the manuscript. SA tested new functionalities, provided feedback on the optimization framework, and contributed to the software validation. SN conceptualized the project, secured funding, supervised the overall research direction, and reviewed the manuscript. All authors approved the final version.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e5139">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e5145">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e5151">We gratefully acknowledge the support and assistance of the Pacific Community (SPC) and the Institut de Recherche pour le Développement (IRD). We also thank the Mercator Ocean International for hosting JVL and providing computational resources, and the Copernicus Marine Service for providing the physical and biogeochemical data products. Finally, the authors are grateful to Patrick Lehodey for his careful proofreading of the manuscript and for his insightful discussions. AI-assisted tools were used for code development, code documentation, and language editing of the manuscript. All code was reviewed and validated by the authors. All scientific content, analyses, and interpretations were produced by the authors.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e5156">Financial support for this work was provided by the Government of New Zealand via a grant from the Ministry of Foreign Affairs and Trade to the Pacific Community (WPG-0103601, DOC-4119683, ACT-0103048) to implement the Climate Science for Ensuring Pacific Tuna Access project. Sarah Albernhe's contribution was funded by the European Union under grant agreement no. 101136748 (BioEcoOcean).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e5162">This paper was edited by Heather Kim and reviewed by three anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Banse(1964)</label><mixed-citation>Banse, K.: On the vertical distribution of Zooplankton in the sea, Prog. Oceanogr., 2, 53–125, <ext-link xlink:href="https://doi.org/10.1016/0079-6611(64)90003-5" ext-link-type="DOI">10.1016/0079-6611(64)90003-5</ext-link>, 1964.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Behrenfeld and Falkowski(1997)</label><mixed-citation>Behrenfeld, M. J. and Falkowski, P. G.: Photosynthetic rates derived from satellite‐based chlorophyll concentration, Limnol. Oceanogr., 42, 1–20, <ext-link xlink:href="https://doi.org/10.4319/lo.1997.42.1.0001" ext-link-type="DOI">10.4319/lo.1997.42.1.0001</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Beven(2006)</label><mixed-citation>Beven, K.: A manifesto for the equifinality thesis, J. Hydrol., 320, 18–36, <ext-link xlink:href="https://doi.org/10.1016/j.jhydrol.2005.07.007" ext-link-type="DOI">10.1016/j.jhydrol.2005.07.007</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Beven and Binley(1992)</label><mixed-citation>Beven, K. and Binley, A.: The future of distributed models: Model calibration and uncertainty prediction, Hydrol. Process., 6, 279–298, <ext-link xlink:href="https://doi.org/10.1002/hyp.3360060305" ext-link-type="DOI">10.1002/hyp.3360060305</ext-link>, 1992.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Brodeur et al.(2005)Brodeur, Seki, Pakhomov, and Suntsov</label><mixed-citation> Brodeur, R. D., Seki, M. P., Pakhomov, E. A., and Suntsov, A. V.: Micronekton – What are they and why are they important?, PICES Press, 13, 7–11, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Conchon(2016)</label><mixed-citation>Conchon, A.: Modélisation du zooplancton et du micronecton marins, PhD thesis, Université de La Rochelle, nNT: 2016LAROS011, <uri>https://theses.hal.science/tel-01661554</uri> (last access: 7 September 2026), 2016.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Conover(1988)</label><mixed-citation>Conover, R. J.: Comparative life histories in the genera Calanus and Neocalanus in high latitudes of the northern hemisphere, Hydrobiologia, 167–168, 127–142, <ext-link xlink:href="https://doi.org/10.1007/bf00026299" ext-link-type="DOI">10.1007/bf00026299</ext-link>, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Daase et al.(2013)Daase, Falk-Petersen, Varpe, Darnis, Søreide, Wold, Leu, Berge, Philippe, and Fortier</label><mixed-citation>Daase, M., Falk-Petersen, S., Varpe, Ø., Darnis, G., Søreide, J. E., Wold, A., Leu, E., Berge, J., Philippe, B., and Fortier, L.: Timing of reproductive events in the marine copepod Calanus glacialis: a pan-Arctic perspective, Can. J. Fish. Aquat. Sci., 70, 871–884, <ext-link xlink:href="https://doi.org/10.1139/cjfas-2012-0401" ext-link-type="DOI">10.1139/cjfas-2012-0401</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Dask Development Team(2016)</label><mixed-citation>Dask Development Team: Dask: Library for dynamic task scheduling, software, <uri>https://dask.org</uri> (last access: 7 September 2026), 2016.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Delpech et al.(2020)Delpech, Conchon, Titaud, and Lehodey</label><mixed-citation>Delpech, A., Conchon, A., Titaud, O., and Lehodey, P.: Influence of oceanic conditions in the energy transfer efficiency estimation of a micronekton model, Biogeosciences, 17, 833–850, <ext-link xlink:href="https://doi.org/10.5194/bg-17-833-2020" ext-link-type="DOI">10.5194/bg-17-833-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Drago et al.(2022)Drago, Panaïotis, Irisson, Babin, Biard, Carlotti, Coppola, Guidi, Hauss, Karp-Boss, Lombard, McDonnell, Picheral, Rogge, Waite, Stemmann, and Kiko</label><mixed-citation>Drago, L., Panaïotis, T., Irisson, J.-O., Babin, M., Biard, T., Carlotti, F., Coppola, L., Guidi, L., Hauss, H., Karp-Boss, L., Lombard, F., McDonnell, A. M. P., Picheral, M., Rogge, A., Waite, A. M., Stemmann, L., and Kiko, R.: Global Distribution of Zooplankton Biomass Estimated by In Situ Imaging and Machine Learning, Front. Mar. Sci., 9, <ext-link xlink:href="https://doi.org/10.3389/fmars.2022.894372" ext-link-type="DOI">10.3389/fmars.2022.894372</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Edvardsen et al.(2006)Edvardsen, Pedersen, Slagstad, Semenova, and Timonin</label><mixed-citation>Edvardsen, A., Pedersen, J. M., Slagstad, D., Semenova, T., and Timonin, A.: Distribution of overwintering Calanus in the North Norwegian Sea, Ocean Sci., 2, 87–96, <ext-link xlink:href="https://doi.org/10.5194/os-2-87-2006" ext-link-type="DOI">10.5194/os-2-87-2006</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>E.U. Copernicus Marine Service Information(2024)</label><mixed-citation>E.U. Copernicus Marine Service Information (CMEMS): Global Ocean Low and Mid Trophic Levels Biomass Content Hindcast, product GLOBAL_MULTIYEAR_BGC_001_033, CMEMS [data set], <ext-link xlink:href="https://doi.org/10.48670/moi-00020" ext-link-type="DOI">10.48670/moi-00020</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Gillooly(2000)</label><mixed-citation>Gillooly, J. F.: Effect of body size and temperature on generation time in zooplankton, J. Plankton Res., 22, 241–251, <ext-link xlink:href="https://doi.org/10.1093/plankt/22.2.241" ext-link-type="DOI">10.1093/plankt/22.2.241</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Gillooly et al.(2002)Gillooly, Charnov, West, Savage, and Brown</label><mixed-citation>Gillooly, J. F., Charnov, E. L., West, G. B., Savage, V. M., and Brown, J. H.: Effects of size and temperature on developmental time, Nature, 417, 70–73, <ext-link xlink:href="https://doi.org/10.1038/417070a" ext-link-type="DOI">10.1038/417070a</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Hansen(2016)</label><mixed-citation>Hansen, N.: The CMA Evolution Strategy: A Tutorial, arXiv [preprint], <ext-link xlink:href="https://doi.org/10.48550/arXiv.1604.00772" ext-link-type="DOI">10.48550/arXiv.1604.00772</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Hansen and Ostermeier(2001)</label><mixed-citation>Hansen, N. and Ostermeier, A.: Completely Derandomized Self-Adaptation in Evolution Strategies, Evol. Comput., 9, 159–195, <ext-link xlink:href="https://doi.org/10.1162/106365601750190398" ext-link-type="DOI">10.1162/106365601750190398</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Hansen et al.(2019)Hansen, Akimoto, and Baudis</label><mixed-citation>Hansen, N., Akimoto, Y., and Baudis, P.: CMA-ES/pycma on Github, Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.2559634" ext-link-type="DOI">10.5281/zenodo.2559634</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Harris et al.(2020)Harris, Millman, van der Walt, Gommers, Virtanen, Cournapeau, Wieser, Taylor, Berg, Smith, Kern, Picus, Hoyer, van Kerkwijk, Brett, Haldane, del Río, Wiebe, Peterson, Gérard-Marchant, Sheppard, Reddy, Weckesser, Abbasi, Gohlke, and Oliphant</label><mixed-citation>Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río, J. F., Wiebe, M., Peterson, P., Gérard-Marchant, P., Sheppard, K., Reddy, T., Weckesser, W., Abbasi, H., Gohlke, C., and Oliphant, T. E.: Array programming with NumPy, Nature, 585, 357–362, <ext-link xlink:href="https://doi.org/10.1038/s41586-020-2649-2" ext-link-type="DOI">10.1038/s41586-020-2649-2</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Herman and Usher(2017)</label><mixed-citation>Herman, J. and Usher, W.: SALib: An open-source Python library for Sensitivity Analysis, J. Open Source Softw., 2, 97, <ext-link xlink:href="https://doi.org/10.21105/joss.00097" ext-link-type="DOI">10.21105/joss.00097</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Hoffman and Atlas(2016)</label><mixed-citation>Hoffman, R. N. and Atlas, R.: Future Observing System Simulation Experiments, B. Am. Meteorol. Soc., 97, 1601–1616, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-15-00200.1" ext-link-type="DOI">10.1175/BAMS-D-15-00200.1</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Hoyer and Hamman(2017)</label><mixed-citation>Hoyer, S. and Hamman, J.: xarray: N-D labeled Arrays and Datasets in Python, J. Open Res. Softw., 5, 10, <ext-link xlink:href="https://doi.org/10.5334/jors.148" ext-link-type="DOI">10.5334/jors.148</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Huntley and Lopez(1992)</label><mixed-citation>Huntley, M. E. and Lopez, M. D. G.: Temperature-Dependent Production of Marine Copepods: A Global Synthesis, Am. Nat., 140, 201–242, <ext-link xlink:href="https://doi.org/10.1086/285410" ext-link-type="DOI">10.1086/285410</ext-link>, 1992.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Iwanaga et al.(2022)Iwanaga, Usher, and Herman</label><mixed-citation>Iwanaga, T., Usher, W., and Herman, J.: Toward SALib 2.0: Advancing the accessibility and interpretability of global sensitivity analyses, Socio-Environ. Syst. Model., 4, 18155, <ext-link xlink:href="https://doi.org/10.18174/sesmo.18155" ext-link-type="DOI">10.18174/sesmo.18155</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Karl and Lukas(1996)</label><mixed-citation>Karl, D. M. and Lukas, R.: The Hawaii Ocean Time-series (HOT) program: Background, rationale and field implementation, Deep-Sea Res. Pt. II, 43, 129–156, <ext-link xlink:href="https://doi.org/10.1016/0967-0645(96)00005-7" ext-link-type="DOI">10.1016/0967-0645(96)00005-7</ext-link>, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Kosobokova(1999)</label><mixed-citation>Kosobokova, K. N.: The reproductive cycle and life history of the Arctic copepod Calanus glacialis in the White Sea, Polar Biol., 22, 254–263, <ext-link xlink:href="https://doi.org/10.1007/s003000050418" ext-link-type="DOI">10.1007/s003000050418</ext-link>, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Lam et al.(2015)Lam, Pitrou, and Seibert</label><mixed-citation>Lam, S. K., Pitrou, A., and Seibert, S.: Numba: a LLVM-based Python JIT compiler, in: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC, SC15, 1–6, ACM, <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.bibx28"><label>Lehodey(2026)</label><mixed-citation>Lehodey, J. V.: SeapoPym/seapopym: SeapoPym v0.1.1, Zenodo [software], <ext-link xlink:href="https://doi.org/10.5281/zenodo.21838667" ext-link-type="DOI">10.5281/zenodo.21838667</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Lehodey et al.(2026)Lehodey, Mignot, Ganachaud, Albernhe, and Nicol</label><mixed-citation>Lehodey, J. V., Mignot, A., Ganachaud, A., Albernhe, S., and Nicol, S.: Reproducibility deposit for SeapoPym v0.1: Implementation of the SEAPODYM low and mid trophic levels in Python with a flexible optimization framework, Zenodo [software], <ext-link xlink:href="https://doi.org/10.5281/zenodo.21849337" ext-link-type="DOI">10.5281/zenodo.21849337</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Lehodey(2001)</label><mixed-citation>Lehodey, P.: The pelagic ecosystem of the tropical Pacific Ocean: dynamic spatial modelling and biological consequences of ENSO, Prog. Oceanogr., 49, 439–468, <ext-link xlink:href="https://doi.org/10.1016/s0079-6611(01)00035-0" ext-link-type="DOI">10.1016/s0079-6611(01)00035-0</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Lehodey et al.(1998)Lehodey, André, Bertignac, Hampton, Stoens, Menkes, Memery, and Grima</label><mixed-citation>Lehodey, P., André, J.-M., Bertignac, M., Hampton, J., Stoens, A., Menkes, C., Memery, L., and Grima, N.: Predicting skipjack tuna forage distributions in the equatorial Pacific using a coupled dynamical bio-geochemical model, Fish. Oceanogr., 7, 317–325, <ext-link xlink:href="https://doi.org/10.1046/j.1365-2419.1998.00063.x" ext-link-type="DOI">10.1046/j.1365-2419.1998.00063.x</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Lehodey et al.(2008)Lehodey, Senina, and Murtugudde</label><mixed-citation>Lehodey, P., Senina, I., and Murtugudde, R.: A spatial ecosystem and populations dynamics model (SEAPODYM) – Modeling of tuna and tuna-like populations, Prog. Oceanogr., 78, 304–318, <ext-link xlink:href="https://doi.org/10.1016/j.pocean.2008.06.004" ext-link-type="DOI">10.1016/j.pocean.2008.06.004</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Lehodey et al.(2010)Lehodey, Murtugudde, and Senina</label><mixed-citation>Lehodey, P., Murtugudde, R., and Senina, I.: Bridging the gap from ocean models to population dynamics of large marine predators: A model of mid-trophic functional groups, Prog. Oceanogr., 84, 69–84, <ext-link xlink:href="https://doi.org/10.1016/j.pocean.2009.09.008" ext-link-type="DOI">10.1016/j.pocean.2009.09.008</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Lehodey et al.(2015)Lehodey, Conchon, Senina, Domokos, Calmettes, Jouanno, Hernandez, and Kloser</label><mixed-citation>Lehodey, P., Conchon, A., Senina, I., Domokos, R., Calmettes, B., Jouanno, J., Hernandez, O., and Kloser, R.: Optimization of a micronekton model with acoustic data, ICES J. Mar. Sci., 72, 1399–1412, <ext-link xlink:href="https://doi.org/10.1093/icesjms/fsu233" ext-link-type="DOI">10.1093/icesjms/fsu233</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Lellouche et al.(2021)Lellouche, Greiner, Bourdallé-Badie et al.</label><mixed-citation>Lellouche, J.-M., Greiner, E., Bourdallé-Badie, R., Garric, G., Melet, A., Drévillon, M., Bricaud, C., Hamon, M., Le Galloudec, O., Regnier, C., Candela, T., Testut, C.-E., Gasparin, F., Ruggiero, G., Benkiran, M., Drillet, Y., and Le Traon, P.-Y.: The Copernicus Global <inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:math></inline-formula>° Oceanic and Sea Ice GLORYS12 Reanalysis, Front. Earth Sci., 9, 698876, <ext-link xlink:href="https://doi.org/10.3389/feart.2021.698876" ext-link-type="DOI">10.3389/feart.2021.698876</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Mackas and Coyle(2005)</label><mixed-citation>Mackas, D. and Coyle, K.: Shelf–offshore exchange processes, and their effects on mesozooplankton biomass and community composition patterns in the northeast Pacific, Deep-Sea Res. Pt. II, 52, 707–725, <ext-link xlink:href="https://doi.org/10.1016/j.dsr2.2004.12.020" ext-link-type="DOI">10.1016/j.dsr2.2004.12.020</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>McKendrick(1926)</label><mixed-citation>McKendrick, A. G.: Applications of Mathematics to Medical Problems, P. Edinburgh Math. Soc., 44, 98–130, <ext-link xlink:href="https://doi.org/10.1017/s0013091500034428" ext-link-type="DOI">10.1017/s0013091500034428</ext-link>, 1926.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Moriarty and O'Brien(2013)</label><mixed-citation>Moriarty, R. and O'Brien, T. D.: Distribution of mesozooplankton biomass in the global ocean, Earth Syst. Sci. Data, 5, 45–55, <ext-link xlink:href="https://doi.org/10.5194/essd-5-45-2013" ext-link-type="DOI">10.5194/essd-5-45-2013</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>O'Brien(2014)</label><mixed-citation>O'Brien, T. D.: COPEPOD: The Global Plankton Database. An overview of the 2014 database contents, processing methods, and access interface, Tech. Rep. NOAA Tech. Memo. NMFS-F/ST-37, U.S. Department of Commerce, NOAA, <uri>https://www.st.nmfs.noaa.gov/copepod/</uri> (last access: 7 September 2026), 2014.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Omori(1969)</label><mixed-citation>Omori, M.: Weight and chemical composition of some important oceanic zooplankton in the North Pacific Ocean, Mar. Biol., 3, 4–10, <ext-link xlink:href="https://doi.org/10.1007/BF00355587" ext-link-type="DOI">10.1007/BF00355587</ext-link>, 1969.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Pianosi et al.(2016)Pianosi, Beven, Freer, Hall, Rougier, Stephenson, and Wagener</label><mixed-citation>Pianosi, F., Beven, K., Freer, J., Hall, J. W., Rougier, J., Stephenson, D. B., and Wagener, T.: Sensitivity analysis of environmental models: A systematic review with practical workflow, Environ. Model. Softw., 79, 214–232, <ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2016.02.008" ext-link-type="DOI">10.1016/j.envsoft.2016.02.008</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Rohr et al.(2023)Rohr, Richardson, Lenton, Chamberlain, and Shadwick</label><mixed-citation>Rohr, T., Richardson, A. J., Lenton, A., Chamberlain, M. A., and Shadwick, E. H.: Zooplankton grazing is the largest source of uncertainty for marine carbon cycling in CMIP6 models, Commun. Earth  Environ., 4, 212, <ext-link xlink:href="https://doi.org/10.1038/s43247-023-00871-w" ext-link-type="DOI">10.1038/s43247-023-00871-w</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Saltelli(2002)</label><mixed-citation>Saltelli, A.: Making best use of model evaluations to compute sensitivity indices, Comput. Phys. Commun., 145, 280–297, <ext-link xlink:href="https://doi.org/10.1016/s0010-4655(02)00280-1" ext-link-type="DOI">10.1016/s0010-4655(02)00280-1</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Sarrazin et al.(2016)Sarrazin, Pianosi, and Wagener</label><mixed-citation>Sarrazin, F., Pianosi, F., and Wagener, T.: Global Sensitivity Analysis of environmental models: Convergence and validation, Environ. Model. Softw., 79, 135–152, <ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2016.02.005" ext-link-type="DOI">10.1016/j.envsoft.2016.02.005</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Schartau et al.(2017)Schartau, Wallhead, Hemmings, Löptien, Kriest, Krishna, Ward, Slawig, and Oschlies</label><mixed-citation>Schartau, M., Wallhead, P., Hemmings, J., Löptien, U., Kriest, I., Krishna, S., Ward, B. A., Slawig, T., and Oschlies, A.: Reviews and syntheses: parameter identification in marine planktonic ecosystem modelling, Biogeosciences, 14, 1647–1701, <ext-link xlink:href="https://doi.org/10.5194/bg-14-1647-2017" ext-link-type="DOI">10.5194/bg-14-1647-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Sibert et al.(1999)Sibert, Hampton, Fournier, and Bills</label><mixed-citation>Sibert, J. R., Hampton, J., Fournier, D. A., and Bills, P. J.: An advection-diffusion-reaction model for the estimation of fish movement parameters from tagging data, with application to skipjack tuna (Katsuwonus pelamis), Can. J. Fish. Aquat. Sci., 56, 925–938, <ext-link xlink:href="https://doi.org/10.1139/f99-017" ext-link-type="DOI">10.1139/f99-017</ext-link>, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Sieburth et al.(1978)Sieburth, Smetacek, and Lenz</label><mixed-citation>Sieburth, J. M., Smetacek, V., and Lenz, J.: Pelagic ecosystem structure: Heterotrophic compartments of the plankton and their relationship to plankton size fractions 1, Limnol. Oceanogr., 23, 1256–1263, <ext-link xlink:href="https://doi.org/10.4319/lo.1978.23.6.1256" ext-link-type="DOI">10.4319/lo.1978.23.6.1256</ext-link>, 1978.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Siegel et al.(2023)Siegel, DeVries, Cetinić, and Bisson</label><mixed-citation>Siegel, D. A., DeVries, T., Cetinić, I., and Bisson, K. M.: Quantifying the Ocean’s Biological Pump and Its Carbon Cycle Impacts on Global Scales, Annu. Rev. Mar. Sci., 15, 329–356, <ext-link xlink:href="https://doi.org/10.1146/annurev-marine-040722-115226" ext-link-type="DOI">10.1146/annurev-marine-040722-115226</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Simons CMAP and Bermuda Atlantic Time-series Study (BATS)(2023)</label><mixed-citation>Simons CMAP and Bermuda Atlantic Time-series Study (BATS): Bermuda Atlantic Time-Series Study (BATS) Zooplankton Biomass, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.10182499" ext-link-type="DOI">10.5281/zenodo.10182499</ext-link>,  2023.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Simons CMAP and Hawaii Ocean Time Series(2024)</label><mixed-citation>Simons CMAP and Hawaii Ocean Time Series: Zooplankton Community Structure HOT v2022, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.10850539" ext-link-type="DOI">10.5281/zenodo.10850539</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Sobol'(2001)</label><mixed-citation>Sobol', I.: Global sensitivity indices for nonlinear mathematical models and their Monte Carlo estimates, Math. Comput. Simul., 55, 271–280, <ext-link xlink:href="https://doi.org/10.1016/s0378-4754(00)00270-6" ext-link-type="DOI">10.1016/s0378-4754(00)00270-6</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Steinberg et al.(2000)Steinberg, Carlson, Bates, Goldthwait, Madin, and Michaels</label><mixed-citation>Steinberg, D. K., Carlson, C. A., Bates, N. R., Goldthwait, S. A., Madin, L. P., and Michaels, A. F.: Zooplankton vertical migration and the active transport of dissolved organic and inorganic carbon in the Sargasso Sea, Deep-Sea Res. Pt. I, 47, 137–158, <ext-link xlink:href="https://doi.org/10.1016/s0967-0637(99)00052-7" ext-link-type="DOI">10.1016/s0967-0637(99)00052-7</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Steinberg et al.(2001)Steinberg, Carlson, Bates, Johnson, Michaels, and Knap</label><mixed-citation>Steinberg, D. K., Carlson, C. A., Bates, N. R., Johnson, R. J., Michaels, A. F., and Knap, A. H.: Overview of the US JGOFS Bermuda Atlantic Time-series Study (BATS): a decade-scale look at ocean biology and biogeochemistry, Deep-Sea Res. Pt. II, 48, 1405–1447, <ext-link xlink:href="https://doi.org/10.1016/S0967-0645(00)00148-X" ext-link-type="DOI">10.1016/S0967-0645(00)00148-X</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Steinberg et al.(2002)Steinberg, Goldthwait, and Hansell</label><mixed-citation>Steinberg, D. K., Goldthwait, S. A., and Hansell, D. A.: Zooplankton vertical migration and the active transport of dissolved organic and inorganic nitrogen in the Sargasso Sea, Deep-Sea Res. Pt. I, 49, 1445–1461, <ext-link xlink:href="https://doi.org/10.1016/s0967-0637(02)00037-7" ext-link-type="DOI">10.1016/s0967-0637(02)00037-7</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>St. John et al.(2016)St. John, Borja, Chust, Heath, Grigorov, Mariani, Martin, and Santos</label><mixed-citation>St. John, M. A., Borja, A., Chust, G., Heath, M., Grigorov, I., Mariani, P., Martin, A. P., and Santos, R. S.: A Dark Hole in Our Understanding of Marine Ecosystems and Their Services: Perspectives from the Mesopelagic Community, Front. Mar. Sci., 3, <ext-link xlink:href="https://doi.org/10.3389/fmars.2016.00031" ext-link-type="DOI">10.3389/fmars.2016.00031</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>Stukel et al.(2022)Stukel, Décima, and Landry</label><mixed-citation>Stukel, M. R., Décima, M., and Landry, M. R.: Quantifying biological carbon pump pathways with a data-constrained mechanistic model ensemble approach, Biogeosciences, 19, 3595–3624, <ext-link xlink:href="https://doi.org/10.5194/bg-19-3595-2022" ext-link-type="DOI">10.5194/bg-19-3595-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx57"><label>Tarantola(2005)</label><mixed-citation>Tarantola, A.: Inverse Problem Theory and Methods for Model Parameter Estimation, Society for Industrial and Applied Mathematics, Philadelphia, PA, ISBN 978-0-89871-572-9, <ext-link xlink:href="https://doi.org/10.1137/1.9780898717921" ext-link-type="DOI">10.1137/1.9780898717921</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx58"><label>Titaud et al.(2024)Titaud, Conchon, Mérillet, Goeman, and Magliano</label><mixed-citation>Titaud, O., Conchon, A., Mérillet, L., Goeman, N., and Magliano, H.: Quality Information Document, Global Ocean Low and Mid Trophic Levels Biomass Content Hindcast (GLOBAL_MULTIYEAR_BGC_001_033), Tech. Rep. CMEMS-GLO-QUID-001-033, Issue 4.2, Copernicus Marine Service, <uri>https://documentation.marine.copernicus.eu/QUID/CMEMS-GLO-QUID-001-033.pdf</uri> (last access: 7 September 2026), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Von Foerster(1959)</label><mixed-citation>Von Foerster, H.: Some Remarks on Changing Populations, in: The Kinetics of Cellular Proliferation, edited by: Stohlman, J. F.,  382–407, Grune and Stratton, New York, <uri>https://lccn.loc.gov/59010474</uri> (last access: 7 September 2026), 1959.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>SeapoPym v0.1: implementation of the SEAPODYM low and mid trophic levels in Python with a flexible optimization framework</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Banse(1964)</label><mixed-citation>
      
Banse, K.: On the vertical distribution of Zooplankton in the sea, Prog.
Oceanogr., 2, 53–125, <a href="https://doi.org/10.1016/0079-6611(64)90003-5" target="_blank">https://doi.org/10.1016/0079-6611(64)90003-5</a>, 1964.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Behrenfeld and Falkowski(1997)</label><mixed-citation>
      
Behrenfeld, M. J. and Falkowski, P. G.: Photosynthetic rates derived from
satellite‐based chlorophyll concentration, Limnol. Oceanogr., 42, 1–20,
<a href="https://doi.org/10.4319/lo.1997.42.1.0001" target="_blank">https://doi.org/10.4319/lo.1997.42.1.0001</a>, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Beven(2006)</label><mixed-citation>
      
Beven, K.: A manifesto for the equifinality thesis, J. Hydrol., 320, 18–36,
<a href="https://doi.org/10.1016/j.jhydrol.2005.07.007" target="_blank">https://doi.org/10.1016/j.jhydrol.2005.07.007</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Beven and Binley(1992)</label><mixed-citation>
      
Beven, K. and Binley, A.: The future of distributed models: Model calibration
and uncertainty prediction, Hydrol. Process., 6, 279–298,
<a href="https://doi.org/10.1002/hyp.3360060305" target="_blank">https://doi.org/10.1002/hyp.3360060305</a>, 1992.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Brodeur et al.(2005)Brodeur, Seki, Pakhomov, and
Suntsov</label><mixed-citation>
      
Brodeur, R. D., Seki, M. P., Pakhomov, E. A., and Suntsov, A. V.: Micronekton –
What are they and why are they important?, PICES Press, 13, 7–11, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Conchon(2016)</label><mixed-citation>
      
Conchon, A.: Modélisation du zooplancton et du micronecton marins, PhD
thesis, Université de La Rochelle, nNT: 2016LAROS011,
<a href="https://theses.hal.science/tel-01661554" target="_blank"/> (last access: 7 September 2026),
2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Conover(1988)</label><mixed-citation>
      
Conover, R. J.: Comparative life histories in the genera Calanus and Neocalanus
in high latitudes of the northern hemisphere, Hydrobiologia, 167–168,
127–142, <a href="https://doi.org/10.1007/bf00026299" target="_blank">https://doi.org/10.1007/bf00026299</a>, 1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Daase et al.(2013)Daase, Falk-Petersen, Varpe, Darnis, Søreide,
Wold, Leu, Berge, Philippe, and Fortier</label><mixed-citation>
      
Daase, M., Falk-Petersen, S., Varpe, Ø., Darnis, G., Søreide, J. E.,
Wold, A., Leu, E., Berge, J., Philippe, B., and Fortier, L.: Timing of
reproductive events in the marine copepod Calanus glacialis: a pan-Arctic
perspective, Can. J. Fish. Aquat. Sci., 70, 871–884,
<a href="https://doi.org/10.1139/cjfas-2012-0401" target="_blank">https://doi.org/10.1139/cjfas-2012-0401</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Dask Development Team(2016)</label><mixed-citation>
      
Dask Development Team: Dask: Library for dynamic task scheduling, software,
<a href="https://dask.org" target="_blank"/> (last access: 7 September 2026), 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Delpech et al.(2020)Delpech, Conchon, Titaud, and
Lehodey</label><mixed-citation>
      
Delpech, A., Conchon, A., Titaud, O., and Lehodey, P.: Influence of oceanic conditions in the energy transfer efficiency estimation of a micronekton model, Biogeosciences, 17, 833–850, <a href="https://doi.org/10.5194/bg-17-833-2020" target="_blank">https://doi.org/10.5194/bg-17-833-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Drago et al.(2022)Drago, Panaïotis, Irisson, Babin, Biard, Carlotti,
Coppola, Guidi, Hauss, Karp-Boss, Lombard, McDonnell, Picheral, Rogge, Waite,
Stemmann, and Kiko</label><mixed-citation>
      
Drago, L., Panaïotis, T., Irisson, J.-O., Babin, M., Biard, T., Carlotti, F.,
Coppola, L., Guidi, L., Hauss, H., Karp-Boss, L., Lombard, F., McDonnell, A.
M. P., Picheral, M., Rogge, A., Waite, A. M., Stemmann, L., and Kiko, R.:
Global Distribution of Zooplankton Biomass Estimated by In Situ Imaging and
Machine Learning, Front. Mar. Sci., 9, <a href="https://doi.org/10.3389/fmars.2022.894372" target="_blank">https://doi.org/10.3389/fmars.2022.894372</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Edvardsen et al.(2006)Edvardsen, Pedersen, Slagstad, Semenova, and
Timonin</label><mixed-citation>
      
Edvardsen, A., Pedersen, J. M., Slagstad, D., Semenova, T., and Timonin, A.: Distribution of overwintering Calanus in the North Norwegian Sea, Ocean Sci., 2, 87–96, <a href="https://doi.org/10.5194/os-2-87-2006" target="_blank">https://doi.org/10.5194/os-2-87-2006</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>E.U. Copernicus Marine Service Information(2024)</label><mixed-citation>
      
E.U. Copernicus Marine Service Information (CMEMS): Global Ocean Low and Mid
Trophic Levels Biomass Content Hindcast, product
GLOBAL_MULTIYEAR_BGC_001_033, CMEMS [data set], <a href="https://doi.org/10.48670/moi-00020" target="_blank">https://doi.org/10.48670/moi-00020</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Gillooly(2000)</label><mixed-citation>
      
Gillooly, J. F.: Effect of body size and temperature on generation time in
zooplankton, J. Plankton Res., 22, 241–251, <a href="https://doi.org/10.1093/plankt/22.2.241" target="_blank">https://doi.org/10.1093/plankt/22.2.241</a>,
2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Gillooly et al.(2002)Gillooly, Charnov, West, Savage, and
Brown</label><mixed-citation>
      
Gillooly, J. F., Charnov, E. L., West, G. B., Savage, V. M., and Brown, J. H.:
Effects of size and temperature on developmental time, Nature, 417, 70–73,
<a href="https://doi.org/10.1038/417070a" target="_blank">https://doi.org/10.1038/417070a</a>, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Hansen(2016)</label><mixed-citation>
      
Hansen, N.: The CMA Evolution Strategy: A Tutorial, arXiv [preprint],
<a href="https://doi.org/10.48550/arXiv.1604.00772" target="_blank">https://doi.org/10.48550/arXiv.1604.00772</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Hansen and Ostermeier(2001)</label><mixed-citation>
      
Hansen, N. and Ostermeier, A.: Completely Derandomized Self-Adaptation in
Evolution Strategies, Evol. Comput., 9, 159–195,
<a href="https://doi.org/10.1162/106365601750190398" target="_blank">https://doi.org/10.1162/106365601750190398</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Hansen et al.(2019)Hansen, Akimoto, and Baudis</label><mixed-citation>
      
Hansen, N., Akimoto, Y., and Baudis, P.: CMA-ES/pycma on Github, Zenodo,
<a href="https://doi.org/10.5281/zenodo.2559634" target="_blank">https://doi.org/10.5281/zenodo.2559634</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Harris et al.(2020)Harris, Millman, van der Walt, Gommers, Virtanen,
Cournapeau, Wieser, Taylor, Berg, Smith, Kern, Picus, Hoyer, van Kerkwijk,
Brett, Haldane, del Río, Wiebe, Peterson, Gérard-Marchant, Sheppard, Reddy,
Weckesser, Abbasi, Gohlke, and Oliphant</label><mixed-citation>
      
Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P.,
Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R.,
Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río,
J. F., Wiebe, M., Peterson, P., Gérard-Marchant, P., Sheppard, K., Reddy,
T., Weckesser, W., Abbasi, H., Gohlke, C., and Oliphant, T. E.: Array
programming with NumPy, Nature, 585, 357–362,
<a href="https://doi.org/10.1038/s41586-020-2649-2" target="_blank">https://doi.org/10.1038/s41586-020-2649-2</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Herman and Usher(2017)</label><mixed-citation>
      
Herman, J. and Usher, W.: SALib: An open-source Python library for Sensitivity
Analysis, J. Open Source Softw., 2, 97, <a href="https://doi.org/10.21105/joss.00097" target="_blank">https://doi.org/10.21105/joss.00097</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Hoffman and Atlas(2016)</label><mixed-citation>
      
Hoffman, R. N. and Atlas, R.: Future Observing System Simulation Experiments,
B. Am. Meteorol. Soc., 97, 1601–1616, <a href="https://doi.org/10.1175/BAMS-D-15-00200.1" target="_blank">https://doi.org/10.1175/BAMS-D-15-00200.1</a>,
2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Hoyer and Hamman(2017)</label><mixed-citation>
      
Hoyer, S. and Hamman, J.: xarray: N-D labeled Arrays and Datasets in Python, J.
Open Res. Softw., 5, 10, <a href="https://doi.org/10.5334/jors.148" target="_blank">https://doi.org/10.5334/jors.148</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Huntley and Lopez(1992)</label><mixed-citation>
      
Huntley, M. E. and Lopez, M. D. G.: Temperature-Dependent Production of Marine
Copepods: A Global Synthesis, Am. Nat., 140, 201–242, <a href="https://doi.org/10.1086/285410" target="_blank">https://doi.org/10.1086/285410</a>,
1992.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Iwanaga et al.(2022)Iwanaga, Usher, and Herman</label><mixed-citation>
      
Iwanaga, T., Usher, W., and Herman, J.: Toward SALib 2.0: Advancing the
accessibility and interpretability of global sensitivity analyses,
Socio-Environ. Syst. Model., 4, 18155, <a href="https://doi.org/10.18174/sesmo.18155" target="_blank">https://doi.org/10.18174/sesmo.18155</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Karl and Lukas(1996)</label><mixed-citation>
      
Karl, D. M. and Lukas, R.: The Hawaii Ocean Time-series (HOT) program:
Background, rationale and field implementation, Deep-Sea Res. Pt. II, 43,
129–156, <a href="https://doi.org/10.1016/0967-0645(96)00005-7" target="_blank">https://doi.org/10.1016/0967-0645(96)00005-7</a>, 1996.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Kosobokova(1999)</label><mixed-citation>
      
Kosobokova, K. N.: The reproductive cycle and life history of the Arctic
copepod Calanus glacialis in the White Sea, Polar Biol., 22, 254–263,
<a href="https://doi.org/10.1007/s003000050418" target="_blank">https://doi.org/10.1007/s003000050418</a>, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Lam et al.(2015)Lam, Pitrou, and Seibert</label><mixed-citation>
      
Lam, S. K., Pitrou, A., and Seibert, S.: Numba: a LLVM-based Python JIT
compiler, in: Proceedings of the Second Workshop on the LLVM Compiler
Infrastructure in HPC, SC15, 1–6, ACM, <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.bib28"><label>Lehodey(2026)</label><mixed-citation>
      
Lehodey, J. V.: SeapoPym/seapopym: SeapoPym v0.1.1, Zenodo [software],
<a href="https://doi.org/10.5281/zenodo.21838667" target="_blank">https://doi.org/10.5281/zenodo.21838667</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Lehodey et al.(2026)Lehodey, Mignot, Ganachaud, Albernhe, and
Nicol</label><mixed-citation>
      
Lehodey, J. V., Mignot, A., Ganachaud, A., Albernhe, S., and Nicol, S.:
Reproducibility deposit for SeapoPym v0.1: Implementation of the SEAPODYM
low and mid trophic levels in Python with a flexible optimization framework,
Zenodo [software], <a href="https://doi.org/10.5281/zenodo.21849337" target="_blank">https://doi.org/10.5281/zenodo.21849337</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Lehodey(2001)</label><mixed-citation>
      
Lehodey, P.: The pelagic ecosystem of the tropical Pacific Ocean: dynamic
spatial modelling and biological consequences of ENSO, Prog. Oceanogr., 49,
439–468, <a href="https://doi.org/10.1016/s0079-6611(01)00035-0" target="_blank">https://doi.org/10.1016/s0079-6611(01)00035-0</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Lehodey et al.(1998)Lehodey, André, Bertignac, Hampton, Stoens,
Menkes, Memery, and Grima</label><mixed-citation>
      
Lehodey, P., André, J.-M., Bertignac, M., Hampton, J., Stoens, A., Menkes,
C., Memery, L., and Grima, N.: Predicting skipjack tuna forage distributions
in the equatorial Pacific using a coupled dynamical bio-geochemical model,
Fish. Oceanogr., 7, 317–325, <a href="https://doi.org/10.1046/j.1365-2419.1998.00063.x" target="_blank">https://doi.org/10.1046/j.1365-2419.1998.00063.x</a>, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Lehodey et al.(2008)Lehodey, Senina, and Murtugudde</label><mixed-citation>
      
Lehodey, P., Senina, I., and Murtugudde, R.: A spatial ecosystem and
populations dynamics model (SEAPODYM) – Modeling of tuna and tuna-like
populations, Prog. Oceanogr., 78, 304–318,
<a href="https://doi.org/10.1016/j.pocean.2008.06.004" target="_blank">https://doi.org/10.1016/j.pocean.2008.06.004</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Lehodey et al.(2010)Lehodey, Murtugudde, and
Senina</label><mixed-citation>
      
Lehodey, P., Murtugudde, R., and Senina, I.: Bridging the gap from ocean models
to population dynamics of large marine predators: A model of mid-trophic
functional groups, Prog. Oceanogr., 84, 69–84,
<a href="https://doi.org/10.1016/j.pocean.2009.09.008" target="_blank">https://doi.org/10.1016/j.pocean.2009.09.008</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Lehodey et al.(2015)Lehodey, Conchon, Senina, Domokos, Calmettes,
Jouanno, Hernandez, and Kloser</label><mixed-citation>
      
Lehodey, P., Conchon, A., Senina, I., Domokos, R., Calmettes, B., Jouanno, J.,
Hernandez, O., and Kloser, R.: Optimization of a micronekton model with
acoustic data, ICES J. Mar. Sci., 72, 1399–1412,
<a href="https://doi.org/10.1093/icesjms/fsu233" target="_blank">https://doi.org/10.1093/icesjms/fsu233</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Lellouche et al.(2021)Lellouche, Greiner, Bourdallé-Badie
et al.</label><mixed-citation>
      
Lellouche, J.-M., Greiner, E., Bourdallé-Badie, R., Garric, G., Melet, A., Drévillon, M., Bricaud, C., Hamon, M., Le Galloudec, O., Regnier, C., Candela, T., Testut, C.-E., Gasparin, F., Ruggiero, G., Benkiran, M., Drillet, Y., and Le Traon, P.-Y.: The Copernicus
Global 1∕12° Oceanic and Sea Ice GLORYS12 Reanalysis, Front.
Earth Sci., 9, 698876, <a href="https://doi.org/10.3389/feart.2021.698876" target="_blank">https://doi.org/10.3389/feart.2021.698876</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Mackas and Coyle(2005)</label><mixed-citation>
      
Mackas, D. and Coyle, K.: Shelf–offshore exchange processes, and their
effects on mesozooplankton biomass and community composition patterns in the
northeast Pacific, Deep-Sea Res. Pt. II, 52, 707–725,
<a href="https://doi.org/10.1016/j.dsr2.2004.12.020" target="_blank">https://doi.org/10.1016/j.dsr2.2004.12.020</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>McKendrick(1926)</label><mixed-citation>
      
McKendrick, A. G.: Applications of Mathematics to Medical Problems, P. Edinburgh Math. Soc., 44, 98–130,
<a href="https://doi.org/10.1017/s0013091500034428" target="_blank">https://doi.org/10.1017/s0013091500034428</a>, 1926.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Moriarty and O'Brien(2013)</label><mixed-citation>
      
Moriarty, R. and O'Brien, T. D.: Distribution of mesozooplankton biomass in the global ocean, Earth Syst. Sci. Data, 5, 45–55, <a href="https://doi.org/10.5194/essd-5-45-2013" target="_blank">https://doi.org/10.5194/essd-5-45-2013</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>O'Brien(2014)</label><mixed-citation>
      
O'Brien, T. D.: COPEPOD: The Global Plankton Database. An overview of the
2014 database contents, processing methods, and access interface, Tech. Rep.
NOAA Tech. Memo. NMFS-F/ST-37, U.S. Department of Commerce, NOAA,
<a href="https://www.st.nmfs.noaa.gov/copepod/" target="_blank"/> (last access: 7 September 2026), 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Omori(1969)</label><mixed-citation>
      
Omori, M.: Weight and chemical composition of some important oceanic
zooplankton in the North Pacific Ocean, Mar. Biol., 3, 4–10,
<a href="https://doi.org/10.1007/BF00355587" target="_blank">https://doi.org/10.1007/BF00355587</a>, 1969.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Pianosi et al.(2016)Pianosi, Beven, Freer, Hall, Rougier, Stephenson,
and Wagener</label><mixed-citation>
      
Pianosi, F., Beven, K., Freer, J., Hall, J. W., Rougier, J., Stephenson, D. B.,
and Wagener, T.: Sensitivity analysis of environmental models: A systematic
review with practical workflow, Environ. Model. Softw., 79, 214–232,
<a href="https://doi.org/10.1016/j.envsoft.2016.02.008" target="_blank">https://doi.org/10.1016/j.envsoft.2016.02.008</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Rohr et al.(2023)Rohr, Richardson, Lenton, Chamberlain, and
Shadwick</label><mixed-citation>
      
Rohr, T., Richardson, A. J., Lenton, A., Chamberlain, M. A., and Shadwick,
E. H.: Zooplankton grazing is the largest source of uncertainty for marine
carbon cycling in CMIP6 models, Commun. Earth  Environ., 4, 212,
<a href="https://doi.org/10.1038/s43247-023-00871-w" target="_blank">https://doi.org/10.1038/s43247-023-00871-w</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Saltelli(2002)</label><mixed-citation>
      
Saltelli, A.: Making best use of model evaluations to compute sensitivity
indices, Comput. Phys. Commun., 145, 280–297,
<a href="https://doi.org/10.1016/s0010-4655(02)00280-1" target="_blank">https://doi.org/10.1016/s0010-4655(02)00280-1</a>, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Sarrazin et al.(2016)Sarrazin, Pianosi, and Wagener</label><mixed-citation>
      
Sarrazin, F., Pianosi, F., and Wagener, T.: Global Sensitivity Analysis of
environmental models: Convergence and validation, Environ. Model. Softw., 79,
135–152, <a href="https://doi.org/10.1016/j.envsoft.2016.02.005" target="_blank">https://doi.org/10.1016/j.envsoft.2016.02.005</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Schartau et al.(2017)Schartau, Wallhead, Hemmings, Löptien, Kriest,
Krishna, Ward, Slawig, and Oschlies</label><mixed-citation>
      
Schartau, M., Wallhead, P., Hemmings, J., Löptien, U., Kriest, I., Krishna, S., Ward, B. A., Slawig, T., and Oschlies, A.: Reviews and syntheses: parameter identification in marine planktonic ecosystem modelling, Biogeosciences, 14, 1647–1701, <a href="https://doi.org/10.5194/bg-14-1647-2017" target="_blank">https://doi.org/10.5194/bg-14-1647-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Sibert et al.(1999)Sibert, Hampton, Fournier, and Bills</label><mixed-citation>
      
Sibert, J. R., Hampton, J., Fournier, D. A., and Bills, P. J.: An
advection-diffusion-reaction model for the estimation of fish movement
parameters from tagging data, with application to skipjack tuna (Katsuwonus
pelamis), Can. J. Fish. Aquat. Sci., 56, 925–938, <a href="https://doi.org/10.1139/f99-017" target="_blank">https://doi.org/10.1139/f99-017</a>,
1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Sieburth et al.(1978)Sieburth, Smetacek, and Lenz</label><mixed-citation>
      
Sieburth, J. M., Smetacek, V., and Lenz, J.: Pelagic ecosystem structure:
Heterotrophic compartments of the plankton and their relationship to plankton
size fractions 1, Limnol. Oceanogr., 23, 1256–1263,
<a href="https://doi.org/10.4319/lo.1978.23.6.1256" target="_blank">https://doi.org/10.4319/lo.1978.23.6.1256</a>, 1978.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Siegel et al.(2023)Siegel, DeVries, Cetinić, and
Bisson</label><mixed-citation>
      
Siegel, D. A., DeVries, T., Cetinić, I., and Bisson, K. M.: Quantifying the
Ocean’s Biological Pump and Its Carbon Cycle Impacts on Global Scales,
Annu. Rev. Mar. Sci., 15, 329–356,
<a href="https://doi.org/10.1146/annurev-marine-040722-115226" target="_blank">https://doi.org/10.1146/annurev-marine-040722-115226</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Simons CMAP and Bermuda Atlantic Time-series Study
(BATS)(2023)</label><mixed-citation>
      
Simons CMAP and Bermuda Atlantic Time-series Study (BATS): Bermuda
Atlantic Time-Series Study (BATS) Zooplankton Biomass, Zenodo [data set],
<a href="https://doi.org/10.5281/zenodo.10182499" target="_blank">https://doi.org/10.5281/zenodo.10182499</a>,  2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Simons CMAP and Hawaii Ocean Time
Series(2024)</label><mixed-citation>
      
Simons CMAP and Hawaii Ocean Time Series: Zooplankton Community Structure
HOT v2022, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.10850539" target="_blank">https://doi.org/10.5281/zenodo.10850539</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Sobol'(2001)</label><mixed-citation>
      
Sobol', I.: Global sensitivity indices for nonlinear mathematical models and
their Monte Carlo estimates, Math. Comput. Simul., 55, 271–280,
<a href="https://doi.org/10.1016/s0378-4754(00)00270-6" target="_blank">https://doi.org/10.1016/s0378-4754(00)00270-6</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Steinberg et al.(2000)Steinberg, Carlson, Bates, Goldthwait, Madin,
and Michaels</label><mixed-citation>
      
Steinberg, D. K., Carlson, C. A., Bates, N. R., Goldthwait, S. A., Madin,
L. P., and Michaels, A. F.: Zooplankton vertical migration and the active
transport of dissolved organic and inorganic carbon in the Sargasso Sea,
Deep-Sea Res. Pt. I, 47, 137–158, <a href="https://doi.org/10.1016/s0967-0637(99)00052-7" target="_blank">https://doi.org/10.1016/s0967-0637(99)00052-7</a>,
2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Steinberg et al.(2001)Steinberg, Carlson, Bates, Johnson, Michaels,
and Knap</label><mixed-citation>
      
Steinberg, D. K., Carlson, C. A., Bates, N. R., Johnson, R. J., Michaels,
A. F., and Knap, A. H.: Overview of the US JGOFS Bermuda Atlantic
Time-series Study (BATS): a decade-scale look at ocean biology and
biogeochemistry, Deep-Sea Res. Pt. II, 48, 1405–1447,
<a href="https://doi.org/10.1016/S0967-0645(00)00148-X" target="_blank">https://doi.org/10.1016/S0967-0645(00)00148-X</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Steinberg et al.(2002)Steinberg, Goldthwait, and
Hansell</label><mixed-citation>
      
Steinberg, D. K., Goldthwait, S. A., and Hansell, D. A.: Zooplankton vertical
migration and the active transport of dissolved organic and inorganic
nitrogen in the Sargasso Sea, Deep-Sea Res. Pt. I, 49, 1445–1461,
<a href="https://doi.org/10.1016/s0967-0637(02)00037-7" target="_blank">https://doi.org/10.1016/s0967-0637(02)00037-7</a>, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>St. John et al.(2016)St. John, Borja, Chust, Heath, Grigorov,
Mariani, Martin, and Santos</label><mixed-citation>
      
St. John, M. A., Borja, A., Chust, G., Heath, M., Grigorov, I., Mariani, P.,
Martin, A. P., and Santos, R. S.: A Dark Hole in Our Understanding of Marine
Ecosystems and Their Services: Perspectives from the Mesopelagic Community,
Front. Mar. Sci., 3, <a href="https://doi.org/10.3389/fmars.2016.00031" target="_blank">https://doi.org/10.3389/fmars.2016.00031</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Stukel et al.(2022)Stukel, Décima, and Landry</label><mixed-citation>
      
Stukel, M. R., Décima, M., and Landry, M. R.: Quantifying biological carbon pump pathways with a data-constrained mechanistic model ensemble approach, Biogeosciences, 19, 3595–3624, <a href="https://doi.org/10.5194/bg-19-3595-2022" target="_blank">https://doi.org/10.5194/bg-19-3595-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Tarantola(2005)</label><mixed-citation>
      
Tarantola, A.: Inverse Problem Theory and Methods for Model Parameter
Estimation, Society for Industrial and Applied Mathematics, Philadelphia, PA,
ISBN 978-0-89871-572-9, <a href="https://doi.org/10.1137/1.9780898717921" target="_blank">https://doi.org/10.1137/1.9780898717921</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Titaud et al.(2024)Titaud, Conchon, Mérillet, Goeman, and
Magliano</label><mixed-citation>
      
Titaud, O., Conchon, A., Mérillet, L., Goeman, N., and Magliano, H.:
Quality Information Document, Global Ocean Low and Mid Trophic Levels Biomass
Content Hindcast (GLOBAL_MULTIYEAR_BGC_001_033), Tech. Rep.
CMEMS-GLO-QUID-001-033, Issue 4.2, Copernicus Marine Service,
<a href="https://documentation.marine.copernicus.eu/QUID/CMEMS-GLO-QUID-001-033.pdf" target="_blank"/> (last access: 7 September 2026),
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Von Foerster(1959)</label><mixed-citation>
      
Von Foerster, H.: Some Remarks on Changing Populations, in: The Kinetics of
Cellular Proliferation, edited by: Stohlman, J. F.,  382–407, Grune and
Stratton, New York, <a href="https://lccn.loc.gov/59010474" target="_blank"/> (last access: 7 September 2026), 1959.

    </mixed-citation></ref-html>--></article>
